Organisationsahrefsocannld49bc9 ()ubuntu-20.04-5.3_opam-2.3

ubuntu-20.04-5.3_opam-2.3

Link Copied
Code Copied

Logs

2025-05-31 10:11.36: New job: test ahrefs/ocannl https://github.com/ahrefs/ocannl.git#refs/heads/master (d49bc965f5fe7c717cd2c17c3b7f5b0a883d11fb) (linux-x86_64:ubuntu-20.04-5.3_opam-2.3)
Base: ocaml/opam:ubuntu-20.04-ocaml-5.3@sha256:b556a4c047d8b58d6832b1e4d9d72f2e657f9bebfa62f6169aa7f61ae05da6bd
Opam project build


To reproduce locally:


git clone --recursive "https://github.com/ahrefs/ocannl.git" -b "master" && cd "ocannl" && git reset --hard d49bc965
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:ubuntu-20.04-ocaml-5.3@sha256:b556a4c047d8b58d6832b1e4d9d72f2e657f9bebfa62f6169aa7f61ae05da6bd
# ubuntu-20.04-5.3_opam-2.3
USER 1000:1000
ENV CLICOLOR_FORCE="1"
ENV OPAMCOLOR="always"
WORKDIR /src
RUN sudo ln -f /usr/bin/opam-2.3 /usr/bin/opam
RUN opam init --reinit -ni
RUN uname -rs && opam exec -- ocaml -version && opam --version
WORKDIR /src
RUN sudo chown opam /src
RUN cd ~/opam-repository && (git cat-file -e 5d2fb3923b40a5570824690009441d947b823e8f || git fetch origin master) && git reset -q --hard 5d2fb3923b40a5570824690009441d947b823e8f && git log --no-decorate -n1 --oneline && opam update -u
COPY --chown=1000:1000 neural_nets_lib.opam arrayjit.opam ./
RUN opam pin add -yn neural_nets_lib.dev './' && \
opam pin add -yn arrayjit.dev './'
RUN echo '(lang dune 3.0)' > './dune-project'
ENV DEPS="angstrom.0.16.1 astring.0.8.5 backoff.0.1.1 base.v0.17.2 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bigarray-compat.1.1.0 bigstringaf.0.10.0 camlp-streams.5.0.1 cmdliner.1.3.0 conf-libffi.2.0.0 conf-pkg-config.4 cppo.1.8.0 csexp.1.5.2 ctypes.0.23.0 ctypes-foreign.0.23.0 dune.3.19.0 dune-configurator.3.19.0 fieldslib.v0.17.0 fmt.0.10.0 integers.0.7.0 jane-street-headers.v0.17.0 jst-config.v0.17.0 logs.0.8.0 mdx.2.5.0 mtime.2.1.0 multicore-magic.2.3.1 num.1.5-1 ocaml.5.3.0 ocaml-base-compiler.5.3.0 ocaml-compiler.5.3.0 ocaml-compiler-libs.v0.17.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.1 ocaml_intrinsics_kernel.v0.17.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 parsexp.v0.17.0 pprint.20230830 ppx_assert.v0.17.0 ppx_base.v0.17.0 ppx_cold.v0.17.0 ppx_compare.v0.17.0 ppx_derivers.1.2.1 ppx_deriving.6.0.3 ppx_enumerate.v0.17.0 ppx_expect.v0.17.2 ppx_fields_conv.v0.17.0 ppx_globalize.v0.17.0 ppx_hash.v0.17.0 ppx_here.v0.17.0 ppx_inline_test.v0.17.0 ppx_minidebug.2.2.0 ppx_optcomp.v0.17.0 ppx_sexp_conv.v0.17.0 ppx_string.v0.17.0 ppx_variants_conv.v0.17.0 ppxlib.0.35.0 ppxlib_jane.v0.17.2 printbox.0.12 printbox-ext-plot.0.12 printbox-html.0.12 printbox-md.0.12 printbox-text.0.12 ptime.1.2.0 re.1.12.0 result.1.5 saturn_lockfree.0.5.0 seq.base sexplib.v0.17.0 sexplib0.v0.17.0 stdio.v0.17.0 stdlib-shims.0.3.0 thread-local-storage.0.2 time_now.v0.17.0 topkg.1.0.8 tyxml.4.6.0 uucp.16.0.0 uutf.1.0.4 variantslib.v0.17.0"
ENV CI="true"
ENV OCAMLCI="true"
RUN opam update --depexts && opam install --cli=2.3 --depext-only -y neural_nets_lib.dev arrayjit.dev $DEPS
RUN opam install $DEPS
COPY --chown=1000:1000 . /src
RUN opam exec -- dune build @install @check @runtest && rm -rf _build


END-OF-DOCKERFILE
docker build .
END-REPRO-BLOCK


2025-05-31 10:11.36: Using cache hint "ahrefs/ocannl-ocaml/opam:ubuntu-20.04-ocaml-5.3@sha256:b556a4c047d8b58d6832b1e4d9d72f2e657f9bebfa62f6169aa7f61ae05da6bd-ubuntu-20.04-5.3_opam-2.3-835eddc584e7df6f658cedd74acb2691"
2025-05-31 10:11.36: Using OBuilder spec:
((from ocaml/opam:ubuntu-20.04-ocaml-5.3@sha256:b556a4c047d8b58d6832b1e4d9d72f2e657f9bebfa62f6169aa7f61ae05da6bd)
(comment ubuntu-20.04-5.3_opam-2.3)
(user (uid 1000) (gid 1000))
(env CLICOLOR_FORCE 1)
(env OPAMCOLOR always)
(workdir /src)
(run (shell "sudo ln -f /usr/bin/opam-2.3 /usr/bin/opam"))
(run (shell "opam init --reinit -ni"))
(run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
(workdir /src)
(run (shell "sudo chown opam /src"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "cd ~/opam-repository && (git cat-file -e 5d2fb3923b40a5570824690009441d947b823e8f || git fetch origin master) && git reset -q --hard 5d2fb3923b40a5570824690009441d947b823e8f && git log --no-decorate -n1 --oneline && opam update -u"))
(copy (src neural_nets_lib.opam arrayjit.opam) (dst ./))
(run (network host)
(shell  "opam pin add -yn neural_nets_lib.dev './' && \
\nopam pin add -yn arrayjit.dev './'"))
(run (network host)
(shell "echo '(lang dune 3.0)' > './dune-project'"))
(env DEPS "angstrom.0.16.1 astring.0.8.5 backoff.0.1.1 base.v0.17.2 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bigarray-compat.1.1.0 bigstringaf.0.10.0 camlp-streams.5.0.1 cmdliner.1.3.0 conf-libffi.2.0.0 conf-pkg-config.4 cppo.1.8.0 csexp.1.5.2 ctypes.0.23.0 ctypes-foreign.0.23.0 dune.3.19.0 dune-configurator.3.19.0 fieldslib.v0.17.0 fmt.0.10.0 integers.0.7.0 jane-street-headers.v0.17.0 jst-config.v0.17.0 logs.0.8.0 mdx.2.5.0 mtime.2.1.0 multicore-magic.2.3.1 num.1.5-1 ocaml.5.3.0 ocaml-base-compiler.5.3.0 ocaml-compiler.5.3.0 ocaml-compiler-libs.v0.17.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.1 ocaml_intrinsics_kernel.v0.17.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 parsexp.v0.17.0 pprint.20230830 ppx_assert.v0.17.0 ppx_base.v0.17.0 ppx_cold.v0.17.0 ppx_compare.v0.17.0 ppx_derivers.1.2.1 ppx_deriving.6.0.3 ppx_enumerate.v0.17.0 ppx_expect.v0.17.2 ppx_fields_conv.v0.17.0 ppx_globalize.v0.17.0 ppx_hash.v0.17.0 ppx_here.v0.17.0 ppx_inline_test.v0.17.0 ppx_minidebug.2.2.0 ppx_optcomp.v0.17.0 ppx_sexp_conv.v0.17.0 ppx_string.v0.17.0 ppx_variants_conv.v0.17.0 ppxlib.0.35.0 ppxlib_jane.v0.17.2 printbox.0.12 printbox-ext-plot.0.12 printbox-html.0.12 printbox-md.0.12 printbox-text.0.12 ptime.1.2.0 re.1.12.0 result.1.5 saturn_lockfree.0.5.0 seq.base sexplib.v0.17.0 sexplib0.v0.17.0 stdio.v0.17.0 stdlib-shims.0.3.0 thread-local-storage.0.2 time_now.v0.17.0 topkg.1.0.8 tyxml.4.6.0 uucp.16.0.0 uutf.1.0.4 variantslib.v0.17.0")
(env CI true)
(env OCAMLCI true)
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam update --depexts && opam install --cli=2.3 --depext-only -y neural_nets_lib.dev arrayjit.dev $DEPS"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam install $DEPS"))
(copy (src .) (dst /src))
(run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build"))
)


2025-05-31 10:11.36: Waiting for resource in pool OCluster
2025-05-31 10:11.36: Waiting for worker…
2025-05-31 10:11.36: Got resource from pool OCluster
Building on phoebe.caelum.ci.dev
HEAD is now at 367ff3b7 Claude's third pass at adding BF16, FP8: proper conversions in pure C Claude decided to provide full definitions to inline rather than just headers for jitted C sources, for performance.
HEAD is now at d49bc965 Fixes #204 and #319: fix emulation of FP8, BF16 via single prec floats in Pure_C_config numerics


(from ocaml/opam:ubuntu-20.04-ocaml-5.3@sha256:b556a4c047d8b58d6832b1e4d9d72f2e657f9bebfa62f6169aa7f61ae05da6bd)
2025-05-31 10:11.37 ---> using "44eca1e621c9d2ae5a7cb226bf9535627e9ad4eb1a4298fb05ee7eee3e942c25" from cache


/: (comment ubuntu-20.04-5.3_opam-2.3)


/: (user (uid 1000) (gid 1000))


/: (env CLICOLOR_FORCE 1)


/: (env OPAMCOLOR always)


/: (workdir /src)


/src: (run (shell "sudo ln -f /usr/bin/opam-2.3 /usr/bin/opam"))
2025-05-31 10:11.37 ---> using "fa6bcd6b9c901a593f7b9d47c80af8d06da035f3432897bc320e3a051c19bc35" from cache


/src: (run (shell "opam init --reinit -ni"))
Configuring from /home/opam/.opamrc and then from built-in defaults.
Checking for available remotes: rsync and local, git.
- you won't be able to use mercurial repositories unless you install the hg command on your system.
- you won't be able to use darcs repositories unless you install the darcs command on your system.


This development version of opam requires an update to the layout of /home/opam/.opam from version 2.0 to version 2.2, which can't be reverted.
You may want to back it up before going further.


Continue? [y/n] y
[NOTE] The 'jobs' option was reset, its value was 31 and its new value will vary according to the current number of cores on your machine. You can restore the fixed value using:
opam option jobs=31 --global
Format upgrade done.


<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2025-05-31 10:11.37 ---> using "3ed00003605ea7bf8b9cf301a035a6c9a5062664f670f326408915fcc59a9187" from cache


/src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
Linux 5.15.0-134-generic
The OCaml toplevel, version 5.3.0
2.3.0
2025-05-31 10:11.37 ---> using "62bcf27bafb9be53fe068d3f9224a78a299c16e5d45763b9fbdbf92e9947cc2a" from cache


/src: (workdir /src)


/src: (run (shell "sudo chown opam /src"))
2025-05-31 10:11.37 ---> using "18932cafbba93cc50c838b74db5bedd4bef29c1fd0ea06f40b9ce878c25e00c4" from cache


/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "cd ~/opam-repository && (git cat-file -e 5d2fb3923b40a5570824690009441d947b823e8f || git fetch origin master) && git reset -q --hard 5d2fb3923b40a5570824690009441d947b823e8f && git log --no-decorate -n1 --oneline && opam update -u"))
From https://github.com/ocaml/opam-repository
* branch                  master     -> FETCH_HEAD
35eb2f107a..5d2fb3923b  master     -> origin/master
5d2fb3923b Merge pull request #27963 from mseri/base-ppxlib


<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>
[default] synchronised from git+file:///home/opam/opam-repository


Everything as up-to-date as possible (run with --verbose to show unavailable upgrades).
However, you may "opam upgrade" these packages explicitly, which will ask permission to downgrade or uninstall the conflicting packages.
Nothing to do.
# To update the current shell environment, run: eval $(opam env)
2025-05-31 10:11.37 ---> using "e45410ed8010b522e19d1db0d4ad4b51b42b7101deb84ba82bc93433ca326d9b" from cache


/src: (copy (src neural_nets_lib.opam arrayjit.opam) (dst ./))
2025-05-31 10:11.37 ---> using "4a4fd46fe3427f54aa3038069f381b01071f82fa984380cc687af8483404fbf1" from cache


/src: (run (network host)
(shell  "opam pin add -yn neural_nets_lib.dev './' && \
\nopam pin add -yn arrayjit.dev './'"))
[neural_nets_lib.dev] synchronised (file:///src)
neural_nets_lib is now pinned to file:///src (version dev)
[arrayjit.dev] synchronised (file:///src)
arrayjit is now pinned to file:///src (version dev)
2025-05-31 10:11.37 ---> using "ff511bb67952ea857d47d3daec1431669077201c2e1451685e614cb0b86055be" from cache


/src: (run (network host)
(shell "echo '(lang dune 3.0)' > './dune-project'"))
2025-05-31 10:11.37 ---> using "a98f8fab8580c2337c126ca87e61d9a325897828e7eb04dd66f4eeb19be839b2" from cache


/src: (env DEPS "angstrom.0.16.1 astring.0.8.5 backoff.0.1.1 base.v0.17.2 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bigarray-compat.1.1.0 bigstringaf.0.10.0 camlp-streams.5.0.1 cmdliner.1.3.0 conf-libffi.2.0.0 conf-pkg-config.4 cppo.1.8.0 csexp.1.5.2 ctypes.0.23.0 ctypes-foreign.0.23.0 dune.3.19.0 dune-configurator.3.19.0 fieldslib.v0.17.0 fmt.0.10.0 integers.0.7.0 jane-street-headers.v0.17.0 jst-config.v0.17.0 logs.0.8.0 mdx.2.5.0 mtime.2.1.0 multicore-magic.2.3.1 num.1.5-1 ocaml.5.3.0 ocaml-base-compiler.5.3.0 ocaml-compiler.5.3.0 ocaml-compiler-libs.v0.17.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.1 ocaml_intrinsics_kernel.v0.17.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 parsexp.v0.17.0 pprint.20230830 ppx_assert.v0.17.0 ppx_base.v0.17.0 ppx_cold.v0.17.0 ppx_compare.v0.17.0 ppx_derivers.1.2.1 ppx_deriving.6.0.3 ppx_enumerate.v0.17.0 ppx_expect.v0.17.2 ppx_fields_conv.v0.17.0 ppx_globalize.v0.17.0 ppx_hash.v0.17.0 ppx_here.v0.17.0 ppx_inline_test.v0.17.0 ppx_minidebug.2.2.0 ppx_optcomp.v0.17.0 ppx_sexp_conv.v0.17.0 ppx_string.v0.17.0 ppx_variants_conv.v0.17.0 ppxlib.0.35.0 ppxlib_jane.v0.17.2 printbox.0.12 printbox-ext-plot.0.12 printbox-html.0.12 printbox-md.0.12 printbox-text.0.12 ptime.1.2.0 re.1.12.0 result.1.5 saturn_lockfree.0.5.0 seq.base sexplib.v0.17.0 sexplib0.v0.17.0 stdio.v0.17.0 stdlib-shims.0.3.0 thread-local-storage.0.2 time_now.v0.17.0 topkg.1.0.8 tyxml.4.6.0 uucp.16.0.0 uutf.1.0.4 variantslib.v0.17.0")


/src: (env CI true)


/src: (env OCAMLCI true)


/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam update --depexts && opam install --cli=2.3 --depext-only -y neural_nets_lib.dev arrayjit.dev $DEPS"))
+ /usr/bin/sudo "apt-get" "update"
- Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease
- Get:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease [128 kB]
- Get:3 http://archive.ubuntu.com/ubuntu focal-backports InRelease [128 kB]
- Get:4 http://security.ubuntu.com/ubuntu focal-security InRelease [128 kB]
- Get:5 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1599 kB]
- Get:6 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [4919 kB]
- Get:7 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [4998 kB]
- Get:8 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [33.1 kB]
- Get:9 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [4801 kB]
- Get:10 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [4431 kB]
- Get:11 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [1308 kB]
- Fetched 22.5 MB in 2s (9602 kB/s)
- Reading package lists...
- 


<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[arrayjit.dev] synchronised (file:///src)
[neural_nets_lib.dev] synchronised (file:///src)


[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
[NOTE] Package ocaml-config is already installed (current version is 3).
[NOTE] Package ocaml-compiler is already installed (current version is 5.3.0).
[NOTE] Package ocaml-base-compiler is already installed (current version is 5.3.0).
[NOTE] Package ocaml is already installed (current version is 5.3.0).
[NOTE] Package base-unix is already installed (current version is base).
[NOTE] Package base-threads is already installed (current version is base).
[NOTE] Package base-nnp is already installed (current version is base).
[NOTE] Package base-effects is already installed (current version is base).
[NOTE] Package base-domains is already installed (current version is base).
[NOTE] Package base-bigarray is already installed (current version is base).


The following system packages will first need to be installed:
libffi-dev pkg-config


<><> Handling external dependencies <><><><><><><><><><><><><><><><><><><><><><>


+ /usr/bin/sudo "apt-get" "install" "-qq" "-yy" "libffi-dev" "pkg-config"
- debconf: delaying package configuration, since apt-utils is not installed
- Selecting previously unselected package libglib2.0-0:amd64.
- (Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 14727 files and directories currently installed.)
- Preparing to unpack .../0-libglib2.0-0_2.64.6-1~ubuntu20.04.9_amd64.deb ...
- Unpacking libglib2.0-0:amd64 (2.64.6-1~ubuntu20.04.9) ...
- Selecting previously unselected package libglib2.0-data.
- Preparing to unpack .../1-libglib2.0-data_2.64.6-1~ubuntu20.04.9_all.deb ...
- Unpacking libglib2.0-data (2.64.6-1~ubuntu20.04.9) ...
- Selecting previously unselected package tzdata.
- Preparing to unpack .../2-tzdata_2025b-0ubuntu0.20.04.1_all.deb ...
- Unpacking tzdata (2025b-0ubuntu0.20.04.1) ...
- Selecting previously unselected package libicu66:amd64.
- Preparing to unpack .../3-libicu66_66.1-2ubuntu2.1_amd64.deb ...
- Unpacking libicu66:amd64 (66.1-2ubuntu2.1) ...
- Selecting previously unselected package libxml2:amd64.
- Preparing to unpack .../4-libxml2_2.9.10+dfsg-5ubuntu0.20.04.10_amd64.deb ...
- Unpacking libxml2:amd64 (2.9.10+dfsg-5ubuntu0.20.04.10) ...
- Selecting previously unselected package shared-mime-info.
- Preparing to unpack .../5-shared-mime-info_1.15-1_amd64.deb ...
- Unpacking shared-mime-info (1.15-1) ...
- Selecting previously unselected package xdg-user-dirs.
- Preparing to unpack .../6-xdg-user-dirs_0.17-2ubuntu1_amd64.deb ...
- Unpacking xdg-user-dirs (0.17-2ubuntu1) ...
- Selecting previously unselected package pkg-config.
- Preparing to unpack .../7-pkg-config_0.29.1-0ubuntu4_amd64.deb ...
- Unpacking pkg-config (0.29.1-0ubuntu4) ...
- Selecting previously unselected package libffi-dev:amd64.
- Preparing to unpack .../8-libffi-dev_3.3-4_amd64.deb ...
- Unpacking libffi-dev:amd64 (3.3-4) ...
- Setting up xdg-user-dirs (0.17-2ubuntu1) ...
- Setting up libglib2.0-0:amd64 (2.64.6-1~ubuntu20.04.9) ...
- No schema files found: doing nothing.
- Setting up libffi-dev:amd64 (3.3-4) ...
- Setting up tzdata (2025b-0ubuntu0.20.04.1) ...
- 
- Current default time zone: 'Europe/London'
- Local time is now:      Fri May 30 17:00:38 BST 2025.
- Universal Time is now:  Fri May 30 16:00:38 UTC 2025.
- Run 'dpkg-reconfigure tzdata' if you wish to change it.
- 
- Setting up libglib2.0-data (2.64.6-1~ubuntu20.04.9) ...
- Setting up pkg-config (0.29.1-0ubuntu4) ...
- Setting up libicu66:amd64 (66.1-2ubuntu2.1) ...
- Setting up libxml2:amd64 (2.9.10+dfsg-5ubuntu0.20.04.10) ...
- Setting up shared-mime-info (1.15-1) ...
- Processing triggers for libc-bin (2.31-0ubuntu9.17) ...
2025-05-31 10:11.37 ---> using "9a36834079c19c8025fc03f8d367db5b62c410d514fac6cbafebf63a6d71a3f5" from cache


/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam install $DEPS"))
[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
[NOTE] Package ocaml-config is already installed (current version is 3).
[NOTE] Package ocaml-compiler is already installed (current version is 5.3.0).
[NOTE] Package ocaml-base-compiler is already installed (current version is 5.3.0).
[NOTE] Package ocaml is already installed (current version is 5.3.0).
[NOTE] Package base-unix is already installed (current version is base).
[NOTE] Package base-threads is already installed (current version is base).
[NOTE] Package base-nnp is already installed (current version is base).
[NOTE] Package base-effects is already installed (current version is base).
[NOTE] Package base-domains is already installed (current version is base).
[NOTE] Package base-bigarray is already installed (current version is base).
The following actions will be performed:
=== install 75 packages
- install angstrom                0.16.1
- install astring                 0.8.5
- install backoff                 0.1.1
- install base                    v0.17.2
- install bigarray-compat         1.1.0
- install bigstringaf             0.10.0
- install camlp-streams           5.0.1
- install cmdliner                1.3.0
- install conf-libffi             2.0.0
- install conf-pkg-config         4
- install cppo                    1.8.0
- install csexp                   1.5.2
- install ctypes                  0.23.0
- install ctypes-foreign          0.23.0
- install dune                    3.19.0
- install dune-configurator       3.19.0
- install fieldslib               v0.17.0
- install fmt                     0.10.0
- install integers                0.7.0
- install jane-street-headers     v0.17.0
- install jst-config              v0.17.0
- install logs                    0.8.0
- install mdx                     2.5.0
- install mtime                   2.1.0
- install multicore-magic         2.3.1
- install num                     1.5-1
- install ocaml-compiler-libs     v0.17.0
- install ocaml-syntax-shims      1.0.0
- install ocaml-version           4.0.1
- install ocaml_intrinsics_kernel v0.17.1
- install ocamlbuild              0.16.1
- install ocamlfind               1.9.8
- install parsexp                 v0.17.0
- install pprint                  20230830
- install ppx_assert              v0.17.0
- install ppx_base                v0.17.0
- install ppx_cold                v0.17.0
- install ppx_compare             v0.17.0
- install ppx_derivers            1.2.1
- install ppx_deriving            6.0.3
- install ppx_enumerate           v0.17.0
- install ppx_expect              v0.17.2
- install ppx_fields_conv         v0.17.0
- install ppx_globalize           v0.17.0
- install ppx_hash                v0.17.0
- install ppx_here                v0.17.0
- install ppx_inline_test         v0.17.0
- install ppx_minidebug           2.2.0
- install ppx_optcomp             v0.17.0
- install ppx_sexp_conv           v0.17.0
- install ppx_string              v0.17.0
- install ppx_variants_conv       v0.17.0
- install ppxlib                  0.35.0
- install ppxlib_jane             v0.17.2
- install printbox                0.12
- install printbox-ext-plot       0.12
- install printbox-html           0.12
- install printbox-md             0.12
- install printbox-text           0.12
- install ptime                   1.2.0
- install re                      1.12.0
- install result                  1.5
- install saturn_lockfree         0.5.0
- install seq                     base
- install sexplib                 v0.17.0
- install sexplib0                v0.17.0
- install stdio                   v0.17.0
- install stdlib-shims            0.3.0
- install thread-local-storage    0.2
- install time_now                v0.17.0
- install topkg                   1.0.8
- install tyxml                   4.6.0
- install uucp                    16.0.0
- install uutf                    1.0.4
- install variantslib             v0.17.0


<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved backoff.0.1.1  (cached)
-> retrieved astring.0.8.5  (cached)
-> retrieved angstrom.0.16.1  (cached)
-> retrieved base.v0.17.2  (cached)
-> retrieved bigarray-compat.1.1.0  (cached)
-> retrieved bigstringaf.0.10.0  (cached)
-> retrieved camlp-streams.5.0.1  (cached)
-> retrieved cmdliner.1.3.0  (cached)
-> retrieved cppo.1.8.0  (cached)
-> installed conf-pkg-config.4
-> retrieved csexp.1.5.2  (cached)
-> retrieved ctypes.0.23.0, ctypes-foreign.0.23.0  (cached)
-> installed conf-libffi.2.0.0
-> retrieved fieldslib.v0.17.0  (cached)
-> retrieved fmt.0.10.0  (cached)
-> retrieved integers.0.7.0  (cached)
-> retrieved jane-street-headers.v0.17.0  (cached)
-> retrieved jst-config.v0.17.0  (cached)
-> retrieved logs.0.8.0  (cached)
-> retrieved mtime.2.1.0  (cached)
-> retrieved mdx.2.5.0  (cached)
-> retrieved multicore-magic.2.3.1  (cached)
-> retrieved num.1.5-1  (cached)
-> retrieved ocaml-compiler-libs.v0.17.0  (cached)
-> retrieved ocaml-syntax-shims.1.0.0  (cached)
-> retrieved ocaml-version.4.0.1  (cached)
-> retrieved ocaml_intrinsics_kernel.v0.17.1  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved parsexp.v0.17.0  (cached)
-> retrieved pprint.20230830  (cached)
-> retrieved ppx_assert.v0.17.0  (cached)
-> retrieved ppx_base.v0.17.0  (cached)
-> retrieved ppx_cold.v0.17.0  (cached)
-> retrieved ppx_compare.v0.17.0  (cached)
-> retrieved ppx_derivers.1.2.1  (cached)
-> retrieved ppx_enumerate.v0.17.0  (cached)
-> retrieved ppx_deriving.6.0.3  (cached)
-> retrieved ppx_fields_conv.v0.17.0  (cached)
-> retrieved ppx_expect.v0.17.2  (cached)
-> retrieved ppx_globalize.v0.17.0  (cached)
-> retrieved ppx_hash.v0.17.0  (cached)
-> retrieved ppx_here.v0.17.0  (cached)
-> retrieved ppx_inline_test.v0.17.0  (cached)
-> retrieved ppx_optcomp.v0.17.0  (cached)
-> retrieved dune.3.19.0, dune-configurator.3.19.0  (cached)
-> retrieved ppx_minidebug.2.2.0  (cached)
-> retrieved ppx_sexp_conv.v0.17.0  (cached)
-> retrieved ppx_string.v0.17.0  (cached)
-> retrieved ppx_variants_conv.v0.17.0  (cached)
-> retrieved ppxlib_jane.v0.17.2  (cached)
-> retrieved ptime.1.2.0  (cached)
-> installed cmdliner.1.3.0
-> installed num.1.5-1
-> retrieved re.1.12.0  (cached)
-> retrieved result.1.5  (cached)
-> retrieved saturn_lockfree.0.5.0  (cached)
-> retrieved seq.base  (cached)
-> installed seq.base
-> retrieved sexplib.v0.17.0  (cached)
-> retrieved sexplib0.v0.17.0  (cached)
-> retrieved stdio.v0.17.0  (cached)
-> retrieved stdlib-shims.0.3.0  (cached)
-> retrieved ppxlib.0.35.0  (cached)
-> retrieved printbox.0.12, printbox-ext-plot.0.12, printbox-html.0.12, printbox-md.0.12, printbox-text.0.12  (cached)
-> retrieved thread-local-storage.0.2  (cached)
-> retrieved time_now.v0.17.0  (cached)
-> retrieved topkg.1.0.8  (cached)
-> retrieved tyxml.4.6.0  (cached)
-> retrieved uutf.1.0.4  (cached)
-> retrieved variantslib.v0.17.0  (cached)
-> retrieved uucp.16.0.0  (cached)
-> installed ocamlbuild.0.16.1
-> installed ocamlfind.1.9.8
-> installed topkg.1.0.8
-> installed uutf.1.0.4
-> installed mtime.2.1.0
-> installed fmt.0.10.0
-> installed ptime.1.2.0
-> installed astring.0.8.5
-> installed logs.0.8.0
-> installed dune.3.19.0
-> installed csexp.1.5.2
-> installed backoff.0.1.1
-> installed bigarray-compat.1.1.0
-> installed camlp-streams.5.0.1
-> installed jane-street-headers.v0.17.0
-> installed multicore-magic.2.3.1
-> installed ocaml-version.4.0.1
-> installed ocaml_intrinsics_kernel.v0.17.1
-> installed pprint.20230830
-> installed ppx_derivers.1.2.1
-> installed printbox.0.12
-> installed result.1.5
-> installed sexplib0.v0.17.0
-> installed stdlib-shims.0.3.0
-> installed thread-local-storage.0.2
-> installed cppo.1.8.0
-> installed ocaml-syntax-shims.1.0.0
-> installed ocaml-compiler-libs.v0.17.0
-> installed re.1.12.0
-> installed integers.0.7.0
-> installed saturn_lockfree.0.5.0
-> installed parsexp.v0.17.0
-> installed dune-configurator.3.19.0
-> installed bigstringaf.0.10.0
-> installed sexplib.v0.17.0
-> installed angstrom.0.16.1
-> installed mdx.2.5.0
-> installed tyxml.4.6.0
-> installed printbox-html.0.12
-> installed uucp.16.0.0
-> installed ctypes.0.23.0
-> installed printbox-text.0.12
-> installed printbox-md.0.12
-> installed printbox-ext-plot.0.12
-> installed base.v0.17.2
-> installed ctypes-foreign.0.23.0
-> installed variantslib.v0.17.0
-> installed fieldslib.v0.17.0
-> installed stdio.v0.17.0
-> installed ppxlib.0.35.0
-> installed ppxlib_jane.v0.17.2
-> installed ppx_optcomp.v0.17.0
-> installed ppx_variants_conv.v0.17.0
-> installed ppx_cold.v0.17.0
-> installed ppx_here.v0.17.0
-> installed ppx_fields_conv.v0.17.0
-> installed ppx_enumerate.v0.17.0
-> installed ppx_globalize.v0.17.0
-> installed ppx_deriving.6.0.3
-> installed ppx_compare.v0.17.0
-> installed ppx_sexp_conv.v0.17.0
-> installed ppx_hash.v0.17.0
-> installed ppx_assert.v0.17.0
-> installed ppx_minidebug.2.2.0
-> installed ppx_base.v0.17.0
-> installed jst-config.v0.17.0
-> installed ppx_string.v0.17.0
-> installed time_now.v0.17.0
-> installed ppx_inline_test.v0.17.0
-> installed ppx_expect.v0.17.2
Done.
# To update the current shell environment, run: eval $(opam env)
2025-05-31 10:11.37 ---> using "b12fb1b84e3747b2c23cd5bae05ffeeb7a8c7171e54ccaf4c4de174d20b2d57f" from cache


/src: (copy (src .) (dst /src))
2025-05-31 10:11.38 ---> saved as "16e54fc27541be7ff399c5b02a0d7bb15db13128328298e122fa0f2ff7c47e9d"


/src: (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build"))
File "arrayjit/test/dune", line 6, characters 7-15:
6 |   (pps ppx_jane)))
^^^^^^^^
Error: Library "ppx_jane" not found.
-> required by
_build/default/arrayjit/test/.merlin-conf/exe-test_numerical_types
-> required by alias arrayjit/test/check
(cd _build/default/test/config && ../../arrayjit/bin/read_config.exe --read=backend)


Welcome to OCANNL! Reading configuration defaults from /src/_build/default/test/config/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
Wrote value of 'backend' to ocannl_backend.txt
(cd _build/default/test_ppx && ./test_ppx_op_expected.exe)


Welcome to OCANNL! Reading configuration defaults from /src/_build/default/test_ppx/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
(cd _build/default/test_ppx && ./test_ppx_op.exe)


Welcome to OCANNL! Reading configuration defaults from /src/_build/default/test_ppx/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
(cd _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition '' -source-tree-root .. -diff-cmd -)


Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
(cd _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition 'Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/ee5fac5ab25fd659263db346d98bdfaa/default/test/ocannl_config.' -source-tree-root .. -diff-cmd -)


Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
(cd _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition 'Retrieving commandline, environment, or config file variable ocannl_log_level' -source-tree-root .. -diff-cmd -)


Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
(cd _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition 'Found 0, in the config file' -source-tree-root .. -diff-cmd -)


Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
File "test/dune", lines 30-40, characters 0-281:
30 | (rule
31 |  (alias runtest)
32 |  (target
33 |   (dir log_files))
34 |  (action
35 |   (run
36 |    %{dep:micrograd_demo_logging.exe}
37 |    "--ocannl_debug_backend=text"
38 |    "--ocannl_log_file_stem=micrograd_demo_logging"
39 |    "--ocannl_log_main_domain_to_stdout=false"
40 |    "--ocannl_debug_log_to_stream_files=true")))
(cd _build/default/test && ./micrograd_demo_logging.exe --ocannl_debug_backend=text --ocannl_log_file_stem=micrograd_demo_logging --ocannl_log_main_domain_to_stdout=false --ocannl_debug_log_to_stream_files=true)


Welcome to OCANNL! Reading configuration defaults from /src/_build/default/test/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
Retrieving commandline, environment, or config file variable ocannl_backend
Found multicore_cc, in the config file
Retrieving commandline, environment, or config file variable ocannl_cd_ident_style
Not found, using default heuristic
Retrieving commandline, environment, or config file variable ocannl_ll_ident_style
Not found, using default heuristic
Retrieving commandline, environment, or config file variable ocannl_prefer_backend_uniformity
Found true, in the config file
Retrieving commandline, environment, or config file variable ocannl_debug_log_to_stream_files
Found true, commandline --ocannl_debug_log_to_stream_files=true
Retrieving commandline, environment, or config file variable ocannl_cc_backend_optimization_level
Not found, using default 3
Retrieving commandline, environment, or config file variable ocannl_cc_backend_compiler_command
Not found, using default gcc
Fatal error: exception File "src/printbox-text/PrintBox_text.ml", line 212, characters 6-12: Assertion failed
Raised at PrintBox_text.Output.Make_out.to_buf_aux_ in file "src/printbox-text/PrintBox_text.ml", line 212, characters 6-50
Called from Stdlib__Map.Make.fold in file "map.ml", line 329, characters 19-42
Called from Stdlib__Map.Make.fold in file "map.ml", line 329, characters 26-41
Called from Stdlib__Map.Make.fold in file "map.ml", line 329, characters 26-41
Called from Stdlib__Map.Make.fold in file "map.ml", line 329, characters 26-41
Called from PrintBox_text.Output.Make_out.render in file "src/printbox-text/PrintBox_text.ml", line 242, characters 14-64
Called from PrintBox_text.output in file "src/printbox-text/PrintBox_text.ml", line 851, characters 2-31
Called from Minidebug_runtime.PrintBox.output_box in file "minidebug_runtime.ml", line 1527, characters 19-59
Called from Minidebug_runtime.PrintBox.close_log_impl.close_tree in file "minidebug_runtime.ml", line 1572, characters 6-38
Called from Backends.Add_buffer_retrieval_and_syncing.sync_routine in file "arrayjit/lib/backends.ml", lines 144-172, characters 31-82
Called from Backends.Raise_backend.link in file "arrayjit/lib/backends.ml", lines 454-455, characters 4-92
Re-raised at Backends.Raise_backend.link in file "arrayjit/lib/backends.ml", lines 441-455, characters 23-92
Called from Dune__exe__Micrograd_demo_logging in file "test/micrograd_demo_logging.ml", line 34, characters 13-77
(cd _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition primitive_ops.ml -source-tree-root .. -diff-cmd -)


Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
(cd _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition zero2hero_1of7.ml -source-tree-root .. -diff-cmd -)


Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
(cd _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition hello_world_op.ml -source-tree-root .. -diff-cmd -)


Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
(cd _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition einsum_trivia.ml -source-tree-root .. -diff-cmd -)


Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
(cd _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition micrograd_demo.ml -source-tree-root .. -diff-cmd -)


Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
(cd _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition moons_demo_parallel.ml -source-tree-root .. -diff-cmd -)


Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
File "test/zero2hero_1of7.ml", line 1, characters 0-0:
/usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/zero2hero_1of7.ml _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/zero2hero_1of7.ml.corrected
diff --git a/_build/default/test/zero2hero_1of7.ml b/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/zero2hero_1of7.ml.corrected
index 13e90be..138e4eb 100644
--- a/_build/default/test/zero2hero_1of7.ml
+++ b/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/zero2hero_1of7.ml.corrected
@@ -226,10 +226,10 @@ let%expect_test "Graph drawing fetch" =
│(        │                      # #                                                                ##         │
│x        │                         ##                                                             #           │
│)        │                           #                                                          #             │
-    │         │                            # #                                                    ###            **│
-    │         │                               ##                                                #         * ****   │
+    │         │                            # #                                                     ##            **│
+    │         │                               ##                                                # #       * ****   │
│         │                                 # #                                           ##     * ****        │
-    │         │                                    ###                                     ##   * ***              │
+    │         │                                    ###                                     ##   * ****             │
│         │                                      # #                               # ##** **                   │
│         │                                          ####                     # ###* *                         │
│         │                                             # #### # #    ## # ####                                │
@@ -328,11 +328,11 @@ let%expect_test "Simple gradients hosted" =
#9 grad_+_d         │#11 grad_f
-2.00              │ 4.00
#4 *._e         │#6 c     │
-        -6.00          │ 1.02e+1 │
+        -6.00          │ 1.01e+1 │
#5 grad_*._e    │#7 grad_c│
-2.00          │ -2.00   │
#0 a     │#2 b     │         │
-     1.40    │ -2.60   │         │
+     1.39    │ -2.59   │         │
#1 grad_a│#3 grad_b│         │
6.00    │ -4.00   │         │
|}];
@@ -344,7 +344,7 @@ let%expect_test "Simple gradients hosted" =
[%expect
{|
#12 *._l
-                  -1.57e+1
+                  -1.58e+1
#13 grad_*._l
1.00
#8 +_d              │#10 f
@@ -352,13 +352,13 @@ let%expect_test "Simple gradients hosted" =
#9 grad_+_d         │#11 grad_f
-2.40              │ 6.56
#4 *._e         │#6 c     │
-        -3.64          │ 1.02e+1 │
+        -3.62          │ 1.01e+1 │
#5 grad_*._e    │#7 grad_c│
-2.40          │ -2.40   │
#0 a     │#2 b     │         │
-     1.40    │ -2.60   │         │
+     1.39    │ -2.59   │         │
#1 grad_a│#3 grad_b│         │
-     6.24    │ -3.36   │         │
+     6.25    │ -3.35   │         │
|}]


let%expect_test "Simple gradients virtual" =
@@ -460,11 +460,11 @@ let%expect_test "Simple gradients virtual" =
#9 grad_+_d Virt/40                          │#11 grad_f Dev-stream/41
<void>                                       │<void>
#4 *._e Virt/152                  │#6 c                   │
-                 <void>                            │ 1.02e+1               │
+                 <void>                            │ 1.01e+1               │
#5 grad_*._e Virt/40              │#7 grad_c Dev-stream/41│
<void>                            │<void>                 │
#0 a                   │#2 b                   │                       │
-     1.40                  │ -2.60                 │                       │
+     1.39                  │ -2.59                 │                       │
#1 grad_a Dev-stream/41│#3 grad_b Dev-stream/41│                       │
<void>                 │<void>                 │                       │
|}];
@@ -475,7 +475,7 @@ let%expect_test "Simple gradients virtual" =
[%expect
{|
#12 *._l
-                                          -1.57e+1
+                                          -1.58e+1
#13 grad_*._l Virt/40
<void>
#8 +_d Local/46                              │#10 f
@@ -483,11 +483,11 @@ let%expect_test "Simple gradients virtual" =
#9 grad_+_d Virt/40                          │#11 grad_f Dev-stream/41
<void>                                       │<void>
#4 *._e Virt/152                  │#6 c                   │
-                 <void>                            │ 1.02e+1               │
+                 <void>                            │ 1.01e+1               │
#5 grad_*._e Virt/40              │#7 grad_c Dev-stream/41│
<void>                            │<void>                 │
#0 a                   │#2 b                   │                       │
-     1.40                  │ -2.60                 │                       │
+     1.39                  │ -2.59                 │                       │
#1 grad_a Dev-stream/41│#3 grad_b Dev-stream/41│                       │
<void>                 │<void>                 │                       │
|}]
@@ -512,11 +512,11 @@ let%expect_test "2D neuron hosted" =
[%expect
{|
#8 +_v
-                  7.00e-1
+                  6.87e-1
#9 grad_+_v
1.00
#6 *              │#0 b
-              -6.00            │ 6.70
+              -6.00            │ 6.68
#7 grad_*         │#1 grad_b
1.00             │ 1.00
#2 w         │#4 x         │
@@ -539,11 +539,11 @@ let%expect_test "2D neuron virtual" =
[%expect
{|
#8 +_v
-                       7.00e-1
+                       6.87e-1
#9 grad_+_v Virt/40
<void>
#6 * Local/46              │#0 b
-              <void>                     │ 6.70
+              <void>                     │ 6.68
#7 grad_* Virt/40          │#1 grad_b Local/46
<void>                     │<void>
#2 w              │#4 x              │
File "test/primitive_ops.ml", line 1, characters 0-0:
/usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/primitive_ops.ml _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/primitive_ops.ml.corrected
diff --git a/_build/default/test/primitive_ops.ml b/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/primitive_ops.ml.corrected
index 71c4c28..395f014 100644
--- a/_build/default/test/primitive_ops.ml
+++ b/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/primitive_ops.ml.corrected
@@ -177,8 +177,8 @@ let%expect_test "exp(x)" =
│     │                                                                                             *      │
│     │                                                                                                    │
│     │                                                                                            *       │
-    │     │                                                                                           *        │
│     │                                                                                                    │
+    │     │                                                                                           *        │
│     │                                                                                          *         │
│f    │                                                                                         *          │
│(    │                                                                                        *           │
@@ -242,19 +242,19 @@ let%expect_test "log(x)" =
│        │      *                                                                                             │
│        │       *                                                                                            │
│        │        **                                                                                          │
-    │        │          **                                                                           #############│
-    │        │            ***                                                ################### ####             │
+    │        │          **                                                                            ############│
+    │        │            ***                                                ################### #####            │
│        │                ******                        ######### #### ##                                     │
│        │                      ******** *****##### ####                                                      │
-    │        │                        ###### ##   ***** ************* **** ********************* *******          │
-    │        │-    -    -    - ####### -    -    -    -    -    -    -    -    -    -    -    -    -    **********│
+    │        │                        ###### ##   ***** ************* **** ********************* *****            │
+    │        │-    -    -    - ####### -    -    -    -    -    -    -    -    -    -    -    -    -  ************│
│        │            ### #                                                                                   │
│        │        ####                                                                                        │
│        │      ##                                                                                            │
│        │    ##                                                                                              │
│        │  ##                                                                                                │
│        │ #                                                                                                  │
-    │ -2.30  │#                                                                                                   │
+    │ -2.29  │#                                                                                                   │
├────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│        │1.00e-1                                                                                         5.00│
│        │                                                 x                                                  │
@@ -299,8 +299,8 @@ let%expect_test "log2(x)" =
│        │            ***                                                ################### ####             │
│        │                ******                        ######### #### ##                                     │
│        │                      ******** *****##### ####                                                      │
-    │        │                        ###### ##   ***** ************* **** ********************* *******          │
-    │        │-    -    -    - ####### -    -    -    -    -    -    -    -    -    -    -    -    -    **********│
+    │        │                        ###### ##   ***** ************* **** ********************* ********         │
+    │        │-    -    -    - ####### -    -    -    -    -    -    -    -    -    -    -    -    -    -*********│
│        │            ### #                                                                                   │
│        │        ####                                                                                        │
│        │      ##                                                                                            │
@@ -320,51 +320,51 @@ let%expect_test "sin(x)" =
PrintBox_text.output Stdio.stdout plot_box;
[%expect
{|
-    ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
-    │ 9.99e-1 │                                                                 #                                  │
-    │         │#### ##                                        *** **         ### ###                               │
-    │         │      #                                      **      **      #       #                              │
-    │         │       #                                    *          *    #         #                             │
-    │         │         #                                                 #           #                            │
-    │         │          #                                *            * #             #                           │
-    │         │                                          *              *               #                          │
-    │         │           #                            *                #*                                         │
-    │         │           #                                            #                 #                         │
-    │         │                                        *                  *                                        │
-    │         │             #                         *               #    *              #                        │
-    │         │                                                      #                     #                       │
-    │         │              #                       *                      *                                      │
-    │         │               #                                     #                       #                      │
-    │         │*                                    *                        *                                    *│
-    │         │               #                                    #                         #                     │
-    │         │ *                                  *                          *                                  * │
-    │         │                 #                                 #                           #                    │
-    │f        │  *                                *                            *                                *  │
-    │(        │                  #                              #                              #                   │
-    │x        │- *  -    -    -    -    -    -   *-    -    -    -    -    -    *    -    -    -    -    -    -*   │
-    │)        │                   #                             #                               #                  │
-    │         │   *                             *                                *                           *     │
-    │         │                    #                           #                                #                  │
-    │         │     *                          *                                  *                          *     │
-    │         │                     #                         #                                   #                │
-    │         │      *                        *                                    *                        *      │
-    │         │                      #                       #                                     #               │
-    │         │      *                       *                                      *               #      *       │
-    │         │                       #     *               #                        *                             │
-    │         │       *                #                   #                                         #    *        │
-    │         │         *                  *                                          *                  *         │
-    │         │                        #                  #                                          #             │
-    │         │          *                *              #                             *               #*          │
-    │         │           *              *                                              *              *           │
-    │         │                        *  #            #                                 *              #          │
-    │         │           *            *   #           #                                  *          *   #         │
-    │         │             *         *     #         #                                    *         *    #        │
-    │         │              **      *       #       #                                      *      **      #       │
-    │ -9.99e-1│               * *****         #######                                        **** *         ## ####│
-    ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
-    │         │-5.00                                                                                           5.00│
-    │         │                                                 x                                                  │
-    └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘
+    ┌──────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
+    │ 1.00 │  #                                              *               #                                  │
+    │      │#### ##                                        **  **         ### ###                               │
+    │      │      #                                      **      **      #       #                              │
+    │      │       #                                    *          *    #         #                             │
+    │      │         #                                                 #           #                            │
+    │      │          #                                *            * #             #                           │
+    │      │                                          *              *               #                          │
+    │      │           #                            *                #*                                         │
+    │      │           #                                            #                 #                         │
+    │      │                                        *                  *                                        │
+    │      │             #                                         #                   #                        │
+    │      │                                       *              #     *               #                       │
+    │      │              #                       *                      *                                      │
+    │      │               #                                     #                       #                      │
+    │      │*                                    *                        *                                    *│
+    │      │               #                                    #                         #                     │
+    │      │ *                                  *                          *                                  * │
+    │      │                 #                                 #                           #                    │
+    │f     │  *                                *                            *                                *  │
+    │(     │                  #                              #                              #                   │
+    │x     │- *  -    -    -    -    -    -   *-    -    -    -    -    -    *    -    -    -    -    -    -*   │
+    │)     │                   #                             #                               #                  │
+    │      │   *                             *                                *                           *     │
+    │      │                    #                           #                                #                  │
+    │      │     *                          *                                  *                          *     │
+    │      │                     #                         #                                   #                │
+    │      │      *                        *                                    *                        *      │
+    │      │                      #                       #                                     #               │
+    │      │      *                       *                                      *               #      *       │
+    │      │                       #     *               #                        *                             │
+    │      │       *                #                   #                                         #    *        │
+    │      │         *                  *                                          *                  *         │
+    │      │                        #  *               #                            *             #             │
+    │      │          *                               #                                             #*          │
+    │      │           *              *                                              *              *           │
+    │      │                        *  #            #                                 *              #          │
+    │      │           *            *   #           #                                  *          *   #         │
+    │      │             *         *     #         #                                    *         *    #        │
+    │      │              **      *       #       #                                      *      **      #       │
+    │ -1.00│               * *****         #######                                        **** *         ## ####│
+    ├──────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
+    │      │-5.00                                                                                           5.00│
+    │      │                                                 x                                                  │
+    └──────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘
|}]


let%expect_test "cos(x)" =
@@ -373,51 +373,51 @@ let%expect_test "cos(x)" =
PrintBox_text.output Stdio.stdout plot_box;
[%expect
{|
-    ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
-    │ 9.99e-1 │                                  *                                                                 │
-    │         │                               *** ***         ### ##                                        ** ****│
-    │         │                              *       *      ##      ##                                     *       │
-    │         │                             *         *    #          #                                   *        │
-    │         │                            *           *                                                 *         │
-    │         │                           *            *  #            #                                *          │
-    │         │                          *               #              #                                          │
-    │         │                                        # *               #                             *           │
-    │         │                        *                  *                                          *             │
-    │         │                                        #                  #                                        │
-    │         │                        *              #    *               #                         *             │
-    │         │                       *                     *                                                      │
-    │         │                                      #                      #                       *              │
-    │         │                      *                       *                                     *               │
-    │         │#                                    #                        #                                    #│
-    │         │                     *                         *                                   *                │
-    │         │ #                                  #                          #                                  # │
-    │         │                    *                           *                                *                  │
-    │f        │  #                                #                            #                                #  │
-    │(        │                   *                             *                               *                  │
-    │x        │- #  -    -    -    -    -    -   #-    -    -    -    -    -    #    -    -    -    -    -    -#   │
-    │)        │                  *                              *                              *                   │
-    │         │   #                             #                                #                           #     │
-    │         │                 *                                 *                           *                    │
-    │         │     #                          #                                  #                          #     │
-    │         │               *                                    *                         *                     │
-    │         │      #                        #                                    #                        #      │
-    │         │               *                                     *                       *                      │
-    │         │      #       *               #                                      #                      #       │
-    │         │                             #                        *               #     *                       │
-    │         │       #     *                                         *                   *               #        │
-    │         │         #                  #                                          #                  #         │
-    │         │           *                                            *                 *                         │
-    │         │          #*               #                             *              #                #          │
-    │         │           #              #                                              *              #           │
-    │         │          *             #                                 *             * #                         │
-    │         │         * #            #                                  *           *   #          #             │
-    │         │       *     #         #                                    *         *     #         #             │
-    │         │      *       ##      #                                      *       *       #      ##              │
-    │ -9.99e-1│**** **        # #####                                        *******         #### #                │
-    ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
-    │         │-5.00                                                                                           5.00│
-    │         │                                                 x                                                  │
-    └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘
+    ┌──────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
+    │ 1.00 │                                  *              #                                              *   │
+    │      │                               *** ***         ##  ##                                        **  ***│
+    │      │                              *       *      ##      ##                                     *       │
+    │      │                             *         *    #          #                                   *        │
+    │      │                            *           *                                                 *         │
+    │      │                           *            *  #            #                                *          │
+    │      │                          *               #              #                                          │
+    │      │                                        # *               #                             *           │
+    │      │                        *                  *                                          *             │
+    │      │                                        #                  #                                        │
+    │      │                        *                   *                                         *             │
+    │      │                       *               #     *              #                                       │
+    │      │                                      #                      #                       *              │
+    │      │                      *                       *                                     *               │
+    │      │#                                    #                        #                                    #│
+    │      │                     *                         *                                   *                │
+    │      │ #                                  #                          #                                  # │
+    │      │                    *                           *                                *                  │
+    │f     │  #                                #                            #                                #  │
+    │(     │                   *                             *                               *                  │
+    │x     │- #  -    -    -    -    -    -   #-    -    -    -    -    -    #    -    -    -    -    -    -#   │
+    │)     │                  *                              *                              *                   │
+    │      │   #                             #                                #                           #     │
+    │      │                 *                                 *                           *                    │
+    │      │     #                          #                                  #                          #     │
+    │      │               *                                    *                         *                     │
+    │      │      #                        #                                    #                        #      │
+    │      │               *                                     *                       *                      │
+    │      │      #       *               #                                      #                      #       │
+    │      │                             #                        *               #     *                       │
+    │      │       #     *                                         *                   *               #        │
+    │      │         #                  #                                          #                  #         │
+    │      │           *               #                            *               # *                         │
+    │      │          #*                                             *                               #          │
+    │      │           #              #                                              *              #           │
+    │      │          *             #                                 *             * #                         │
+    │      │         * #            #                                  *           *   #          #             │
+    │      │       *     #         #                                    *         *     #         #             │
+    │      │      *       ##      #                                      *       *       #      ##              │
+    │ -1.00│**** **        # #####                                        *******         #### #                │
+    ├──────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
+    │      │-5.00                                                                                           5.00│
+    │      │                                                 x                                                  │
+    └──────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘
|}]


let%expect_test "neg(x)" =
@@ -534,27 +534,27 @@ let%expect_test "sqrt(x)" =
{|
┌─────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ 2.23│                                                                                                   #│
-    │     │                                                                                              ##### │
-    │     │                                                                                         #####      │
-    │     │                                                                                     ####           │
-    │     │                                                                                ## ##               │
+    │     │                                                                                               #### │
+    │     │                                                                                         ######     │
+    │     │                                                                                    #####           │
+    │     │                                                                                ## #                │
│     │                                                                           #####                    │
-    │     │                                                                       ####                         │
-    │     │                                                                  #####                             │
+    │     │                                                                      #####                         │
+    │     │                                                                  ####                              │
│     │                                                              ####                                  │
│     │                                                          ## #                                      │
│     │                                                      # ##                                          │
-    │     │                                                   ###                                              │
-    │     │*                                              ####                                                 │
+    │     │                                                  ####                                              │
+    │     │*                                              ###                                                  │
│     │                                           ####                                                     │
│     │                                        # #                                                         │
-    │     │                                     ###                                                            │
-    │     │                                  ###                                                               │
-    │     │ *                             ###                                                                  │
+    │     │                                    ####                                                            │
+    │     │                                 ###                                                                │
+    │     │ *                             ##                                                                   │
│f    │                            ##                                                                      │
│(    │                         ###                                                                        │
-    │x    │  *                   ###                                                                           │
-    │)    │                    ##                                                                              │
+    │x    │  *                    ##                                                                           │
+    │)    │                    ###                                                                             │
│     │   *              ##                                                                                │
│     │              # ##                                                                                  │
│     │    *        ##                                                                                     │
@@ -563,9 +563,9 @@ let%expect_test "sqrt(x)" =
│     │        *#                                                                                          │
│     │       # **                                                                                         │
│     │     ##    ***                                                                                      │
-    │     │    #         * *                                                                                   │
-    │     │   #             *****                                                                              │
-    │     │  #                   ********                                                                      │
+    │     │    #         * **                                                                                  │
+    │     │   #              *****                                                                             │
+    │     │  #                    *******                                                                      │
│     │ #                           * **********                                                           │
│     │#                                       * ************* ****                                        │
│     │                                                           * ********************* ************     │
@@ -639,23 +639,23 @@ let%expect_test "recip_sqrt(x)" =
[%expect
{|
┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
-    │ 3.16    │#                                                                                                   │
+    │ 3.15    │#                                                                                                   │
│         │                                                                                                    │
│         │ ##                                                                                                 │
│         │   ##                                                                                               │
│         │     #######                                                                                        │
-    │         │            ### ############## #####                                                                │
-    │         │                                    ##### ############# #### ##################### #################│
-    │         │-    -    -    -    -    -    -********** *************-****-********************* *****************│
-    │         │              * **************                                                                      │
-    │         │          ****                                                                                      │
+    │         │            ### ############## ####                                                                 │
+    │         │                                   ###### ############# #### ##################### #################│
+    │         │-    -    -    -    -    -    -  ******** *************-****-********************* *****************│
+    │         │              * ************** **                                                                   │
+    │         │          *****                                                                                     │
│         │       ***                                                                                          │
│         │      *                                                                                             │
│         │     *                                                                                              │
│         │    *                                                                                               │
│         │                                                                                                    │
-    │         │   *                                                                                                │
│         │                                                                                                    │
+    │         │   *                                                                                                │
│         │                                                                                                    │
│f        │                                                                                                    │
│(        │  *                                                                                                 │
@@ -678,7 +678,7 @@ let%expect_test "recip_sqrt(x)" =
│         │                                                                                                    │
│         │                                                                                                    │
│         │                                                                                                    │
-    │ -1.58e+1│*                                                                                                   │
+    │ -1.56e+1│*                                                                                                   │
├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│         │1.00e-1                                                                                         5.00│
│         │                                                 x                                                  │
@@ -691,51 +691,51 @@ let%expect_test "tanh(x)" =
PrintBox_text.output Stdio.stdout plot_box;
[%expect
{|
-    ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
-    │ 9.99e-1 │                                                                                                   #│
-    │         │                                                ** *                ############## #### ####### ### │
-    │         │                                               *    *           ####                                │
-    │         │                                              *      *        ##                                    │
-    │         │                                             *        *      #                                      │
-    │         │                                            *          *   ##                                       │
-    │         │                                                          #                                         │
-    │         │                                           *            *                                           │
-    │         │                                          *              *                                          │
-    │         │                                                        #                                           │
-    │         │                                        *              #  *                                         │
-    │         │                                        *                  *                                        │
-    │         │                                                      #                                             │
-    │         │                                       *             #      *                                       │
-    │         │                                      *                      *                                      │
-    │         │                                     *              #         *                                     │
-    │         │                                   **                          **                                   │
-    │         │                                 **                #             **                                 │
-    │f        │                               **                                  **                               │
-    │(        │                        * *****                  #                   ******                         │
-    │x        │**** *** *** *** ********-    -    -    -    -    -    -    -    -    -    ******* **** *******-****│
-    │)        │                                                 #                                                  │
-    │         │                                                                                                    │
-    │         │                                                #                                                   │
-    │         │                                                                                                    │
-    │         │                                               #                                                    │
-    │         │                                                                                                    │
-    │         │                                              #                                                     │
-    │         │                                             #                                                      │
-    │         │                                                                                                    │
-    │         │                                            #                                                       │
-    │         │                                           #                                                        │
-    │         │                                          #                                                         │
-    │         │                                                                                                    │
-    │         │                                        #                                                           │
-    │         │                                       ##                                                           │
-    │         │                                      #                                                             │
-    │         │                                    ##                                                              │
-    │         │                                ####                                                                │
-    │ -9.99e-1│#### ### ### ### ######## ######                                                                    │
-    ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
-    │         │-5.00                                                                                           5.00│
-    │         │                                                 x                                                  │
-    └─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────┘
+    ┌──────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
+    │ 1.00 │                                                                                    ### ####### ####│
+    │      │                                                ** *                ############## #                │
+    │      │                                               *    *           ####                                │
+    │      │                                              *      *        ##                                    │
+    │      │                                             *        *      #                                      │
+    │      │                                            *          *   ##                                       │
+    │      │                                                          #                                         │
+    │      │                                           *            *                                           │
+    │      │                                          *              *                                          │
+    │      │                                                        #                                           │
+    │      │                                        *              #  *                                         │
+    │      │                                        *                  *                                        │
+    │      │                                                      #                                             │
+    │      │                                       *             #      *                                       │
+    │      │                                      *                      *                                      │
+    │      │                                     *              #         *                                     │
+    │      │                                   **                          **                                   │
+    │      │                                 **                #             **                                 │
+    │f     │                              ***                                  ***                              │
+    │(     │                        * ****                   #                    *****                         │
+    │x     │**** *** *** *** ********-    -    -    -    -    -    -    -    -    -    ******* **** *******-****│
+    │)     │                                                 #                                                  │
+    │      │                                                                                                    │
+    │      │                                                #                                                   │
+    │      │                                                                                                    │
+    │      │                                               #                                                    │
+    │      │                                                                                                    │
+    │      │                                              #                                                     │
+    │      │                                             #                                                      │
+    │      │                                                                                                    │
+    │      │                                            #                                                       │
+    │      │                                           #                                                        │
+    │      │                                          #                                                         │
+    │      │                                                                                                    │
+    │      │                                        #                                                           │
+    │      │                                       ##                                                           │
+    │      │                                      #                                                             │
+    │      │                                    ##                                                              │
+    │      │                                ####                                                                │
+    │ -1.00│#### ### ### ### ######## ######                                                                    │
+    ├──────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
+    │      │-5.00                                                                                           5.00│
+    │      │                                                 x                                                  │
+    └──────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘
|}]


let%expect_test "where(x < 0, sin(x), cos(x))" =
@@ -744,49 +744,49 @@ let%expect_test "where(x < 0, sin(x), cos(x))" =
PrintBox_text.output Stdio.stdout plot_box;
[%expect
{|
-    ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
-    │ 9.99e-1 │  #                                                                                             *   │
-    │         │#### ##                                        *** ##                                        **  ***│
-    │         │      #                                      **      ##                                     *       │
-    │         │       #                                    *          #                                   *        │
-    │         │         #                                                                                *         │
-    │         │          #                                *            #                                *          │
-    │         │                                          *              #                                          │
-    │         │           #                            *                 #                             *           │
-    │         │           #                                                                          *             │
-    │         │                                        *                  #                                        │
-    │         │             #                         *                    #                         *             │
-    │         │                                                                                                    │
-    │         │              #                       *                      #                       *              │
-    │         │               #                                                                    *               │
-    │         │*                                    *                        #                                    #│
-    │         │               #                                                                   *                │
-    │         │ *                                  *                          #                                  # │
-    │         │                 #                                                               *                  │
-    │f        │  *                                *                            #                                #  │
-    │(        │                  #                                                              *                  │
-    │x        │- *  -    -    -    -    -    -   *-    -    -    -    -    -    #    -    -    -    -    -    -#   │
-    │)        │                   #                             *                              *                   │
-    │         │   *                             *                                #                           #     │
-    │         │                    #                           #  *                           *                    │
-    │         │     *                          *                                  #                          #     │
-    │         │                     #                         #    *                         *                     │
-    │         │      *                        *                                    #                        #      │
-    │         │                      #                       #      *                       *                      │
-    │         │      *                       *                                      #                      #       │
-    │         │                       #     *               #        *               #     *                       │
-    │         │       *                #                   #          *                   *               #        │
-    │         │         *                  *                                          #                  #         │
-    │         │                        #                  #            *                 *                         │
-    │         │          *                *              #              *              #                #          │
-    │         │           *              *                                              *              #           │
-    │         │                        *  #            #                 *             * #                         │
-    │         │           *            *   #           #                  *           *   #          #             │
-    │         │             *         *     #         #                    *         *     #         #             │
-    │         │              **      *       #       #                      *       *       #      ##              │
-    │ -9.99e-1│               * *****         #######                        *******         #### #                │
-    ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
-    │         │-5.00                                                                                           5.00│
-    │         │                                                 x                                                  │
-    └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘
+    ┌──────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
+    │ 1.00 │  #                                              *                                              *   │
+    │      │#### ##                                        **  ##                                        **  ***│
+    │      │      #                                      **      ##                                     *       │
+    │      │       #                                    *          #                                   *        │
+    │      │         #                                                                                *         │
+    │      │          #                                *            #                                *          │
+    │      │                                          *              #                                          │
+    │      │           #                            *                 #                             *           │
+    │      │           #                                                                          *             │
+    │      │                                        *                  #                                        │
+    │      │             #                                                                        *             │
+    │      │                                       *                    #                                       │
+    │      │              #                       *                      #                       *              │
+    │      │               #                                                                    *               │
+    │      │*                                    *                        #                                    #│
+    │      │               #                                                                   *                │
+    │      │ *                                  *                          #                                  # │
+    │      │                 #                                                               *                  │
+    │f     │  *                                *                            #                                #  │
+    │(     │                  #                                                              *                  │
+    │x     │- *  -    -    -    -    -    -   *-    -    -    -    -    -    #    -    -    -    -    -    -#   │
+    │)     │                   #                             *                              *                   │
+    │      │   *                             *                                #                           #     │
+    │      │                    #                           #  *                           *                    │
+    │      │     *                          *                                  #                          #     │
+    │      │                     #                         #    *                         *                     │
+    │      │      *                        *                                    #                        #      │
+    │      │                      #                       #      *                       *                      │
+    │      │      *                       *                                      #                      #       │
+    │      │                       #     *               #        *               #     *                       │
+    │      │       *                #                   #          *                   *               #        │
+    │      │         *                  *                                          #                  #         │
+    │      │                        #  *               #            *               # *                         │
+    │      │          *                               #              *                               #          │
+    │      │           *              *                                              *              #           │
+    │      │                        *  #            #                 *             * #                         │
+    │      │           *            *   #           #                  *           *   #          #             │
+    │      │             *         *     #         #                    *         *     #         #             │
+    │      │              **      *       #       #                      *       *       #      ##              │
+    │ -1.00│               * *****         #######                        *******         #### #                │
+    ├──────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
+    │      │-5.00                                                                                           5.00│
+    │      │                                                 x                                                  │
+    └──────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘
|}]
File "test/micrograd_demo.ml", line 1, characters 0-0:
/usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/micrograd_demo.ml _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/micrograd_demo.ml.corrected
diff --git a/_build/default/test/micrograd_demo.ml b/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/micrograd_demo.ml.corrected
index 62a1f34..5040ca9 100644
--- a/_build/default/test/micrograd_demo.ml
+++ b/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/micrograd_demo.ml.corrected
@@ -78,7 +78,7 @@ let%expect_test "Micrograd README basic example" =
│┌┬─────────┐            │
│││axis 0   │            │
│├┼─────────┤            │
-    │││ 6.45e+2 │            │
+    │││ 6.44e+2 │            │
│└┴─────────┘            │
└────────────────────────┘
|}]
@@ -191,44 +191,44 @@ let%expect_test "Micrograd half-moons example" =
┌────────────────────────────────────────────────────────────────────────────────────────────────────┐
│****************************#***********************************************************************│
│****************************###***###***#***********************************************************│
-    │***************************#********#***#***********************************************************│
-    │********************#*********************##*#*#****************************************************│
-    │******************#***#*****##*#*#*#****#*#*#*##****************************************************│
-    │**************#*#**###**#*##**##********#**#****###**#**********************************************│
-    │***********#***##***#**##*****************#*#*##*###**********************************************..│
-    │***************#**###******************************##*#******************************************...│
-    │*************#*****#******************************#*#***#*#*************************************....│
-    │*********#***#******************......************##*###**#************************************.....│
-    │******#***#*#*#****************........******************#*#*********************************.......│
-    │*****###****#****************...........****************#***********************************........│
-    │*******#*###****************.............******************#*#*****************************.........│
-    │**********##***************.......%%......***************#**##****************************..........│
-    │*****#***#****************......%..%%......*********************************************..........%.│
-    │**####*******************......%..%..........****************##*#**********************........%...%│
-    │****#*******************.......%%..%..........***************#*#**********************.........%....│
-    │*#****##***************.........%....%.........************##***#********************.......%...%%..│
-    │****#*#***************.........%..%.%...........*************#**#*******************..........%.%...│
-    │##*##****************............%...............**************#*##****************.........%.%.%%%.│
-    │**#####************............%...%%.............*******************************...........%..%.%..│
-    │******************...............%.%.%%............*********#*#*#*#*************................%%..│
-    │***##************................%..%..%............************#*#************.............%...%...│
-    │##**#***********...................%...%.............********#**###***********...........%.%%.......│
-    │###************..................%.%.%................***********##**********..................%....│
-    │**##**********.........................................**********#*********.............%%.%..%.....│
-    │**#**********......................%%...................********##********..............%%.%........│
-    │************..........................%..................****#**#********...................%.......│
-    │***********.........................%%.%..................*****##******...............%..%..........│
-    │**********.............................%%..................***********.................%%.%%........│
-    │*********..............................%...%................*******.....................%%%.........│
-    │********...................................%..%....................................%.....%..........│
-    │*******.................................%%..%.%................................%.%.%.%%.............│
-    │******.....................................%%.%...%%.%.......................%%%....%.%.%...........│
-    │*****....................................%.....%.%..%....................%.....%%.%.%...............│
-    │****........................................%%...%.%%%%..%.......%.........%%.%%....................│
-    │***...............................................%..%.......%..%%%%...%.%..%.%.....................│
-    │**.................................................%.%.%............%..%...%........................│
-    │*.................................................%....%.%......%%...%.%............................│
-    │..........................................................%..%......%%%.............................│
+    │***************************#********#***#*#*********************************************************│
+    │********************#**********************#*#*#****************************************************│
+    │******************##**#*****##*#*#*#****#*#*#*#*#***************************************************│
+    │**************#*#***#***#*##*#*#********#**#****###**#**********************************************│
+    │***********#***##*#*#**##*****************#*#*##*###***********************************************.│
+    │***************#***##******************************##*#*******************************************..│
+    │*************#*****#******************************#*#**#**#**************************************...│
+    │*********#***#*****************......*************##*###*#*#************************************....│
+    │******#***#*#*#***************........*******************#*************************************.....│
+    │*****###****#****************...........****************#*************************************......│
+    │******####*#****************.............******************#*#*******************************.......│
+    │**********##***************.......%%......***************#**##*****************************.........│
+    │*****#***#****************......%..%%......***********************************************.........%│
+    │**####*******************......%.%%.........****************###*#************************......%...%│
+    │****#*******************.......%%..%.........****************#*#************************.......%....│
+    │##****##***************.........%....%........*************##***#**********************.....%...%%..│
+    │***##*#***************.........%..%.%..........**************#**#*********************........%.%...│
+    │##*##****************...........%...............***************#*##******************.......%.%.%%%.│
+    │**####**************...........%..%.%............**********************************.........%...%%..│
+    │*******************..............%.%.%%...........**********#*#*#*#***************..............%%..│
+    │***##*************...............%..%..%...........*************#*#***************..........%...%...│
+    │##**#*************.................%...%............********#***###*************.........%.%%.......│
+    │##***************................%.%.%...............************##************................%....│
+    │**##************......................................***********#************..........%%.%..%.....│
+    │*#*************....................%%..................*********##***********...........%..%........│
+    │**************........................%.................*****#**#***********.............%.%........│
+    │**************......................%%.%.................******##*********.............%.%..........│
+    │************...........................%%.................***************..............%%.%%........│
+    │************...........................%...%...............*************................%%%.........│
+    │***********................................%..%.............***********............%.....%..........│
+    │**********..............................%%..%.%..............*******...........%%%.%.%%.............│
+    │*********..................................%%.%...%%.%........****...........%%%....%.%.%...........│
+    │********.................................%....%%.%..%..........................%%.%.%...............│
+    │********....................................%%..%..%%%%..%.......%.......%.%%.%%....................│
+    │******............................................%..%.......%..%%%....%.%..%%......................│
+    │******.............................................%.%.%............%..%...%........................│
+    │*****.............................................%....%.%.......%...%.%............................│
+    │****......................................................%..%..%...%%..............................│
└────────────────────────────────────────────────────────────────────────────────────────────────────┘
|}];
Stdio.printf "Loss:\n%!";
@@ -241,7 +241,7 @@ let%expect_test "Micrograd half-moons example" =
{|
Loss:
┌────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
-    │ 3.79e+1│-                                                                                                   │
+    │ 3.80e+1│-                                                                                                   │
│        │                                                                                                    │
│        │                                                                                                    │
│        │                                                                                                    │
@@ -279,7 +279,7 @@ let%expect_test "Micrograd half-moons example" =
│        │                                                                                                    │
│        │                                                                                                    │
│        │                                                                                                    │
-    │        │-       -         -                                                                                 │
+    │        │-  -    -                                                                                           │
│ 0.00   │----------------------------------------------------------------------------------------------------│
├────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│        │0.00                                                                                         3.99e+2│
@@ -306,36 +306,36 @@ let%expect_test "Micrograd half-moons example" =
│         │                                                                                                    │
│         │                                                                                                    │
│         │-                                                                                                   │
-    │         │        -         -                                                                                 │
-    │         │ -  -                        -                                                                      │
-    │         │------       -                                                                                      │
-    │         │ ---- -  - --- -   - - -    -                                                                       │
-    │         │   --  -  - - ---     --  -  --            -                                                        │
-    │         │  -  -- - -    ---  - - ---  -----       - --                                                       │
-    │l        │       --  -      - -      -     ---  -    -         -                                              │
-    │o        │       - -  -   --            -  --  - -  -     -                        -                          │
-    │g        │               -     -   -      -  --     - -    -  -     -                   -          -          │
-    │         │     - -     -   --      -                  -      -  --       - -         -                        │
-    │l        │            -             -            --    --            -  -         -  -                       -│
-    │o        │        -        -                           -       -  -       -   -           - -          -    - │
-    │s        │                               -     -        -      -                             --   -           │
-    │s        │                      -                                                   -                         │
-    │         │                       -   -                          -    -           -        -       -    -    - │
-    │         │                   -               - -  -                               -                           │
-    │         │                                                                             -   -                  │
-    │         │                                                  -    -              -                             │
-    │         │                                      -                                        -                    │
+    │         │   -                                                                                                │
+    │         │ -      -         -                                                                                 │
+    │         │-----    -   -                                                                                      │
+    │         │ - ----  - --- -   -        --               -                                                      │
+    │         │  --  --  - - ---- - ---      -                  -                                                  │
+    │         │    ---   -     -   -   ---  -----        - -   -                                                   │
+    │l        │       ---      -     - -  -     ---  --                  -                                         │
+    │o        │           --    - --    -        -        -                                                        │
+    │g        │  -            -          -   - - -         --   -   - -                      -                     │
+    │         │     - -       -  -  -   -       -  -               -          -    -                               │
+    │l        │             -   -    -                  ---  -             -      -             -      -   -       │
+    │o        │     -                         -       --                       -        -     -     - -            │
+    │s        │                      -           --           -      -    -  -     -             -- -              │
+    │s        │       -  -                 -       --      -      -     -   -        --  -               -         │
+    │         │                           -                          -                 -      -                    │
+    │         │                       -   -               -               -    -            -               -    - │
+    │         │                                                       -                            -               │
+    │         │                                                      - -   -                       -               │
+    │         │        -                            -                   -                                          │
+    │         │                                                    --                    -                         │
│         │                                                                                                    │
-    │         │                            -                                                                       │
-    │         │                                                                -                                   │
│         │                                                                                                    │
│         │                                                                                                    │
│         │                                                                                                    │
│         │                                                                                                    │
-    │         │          -                                                                                         │
│         │                                                                                                    │
│         │                                                                                                    │
-    │ -1.00e+1│     -   - -  -   ----- -- --------------- ---------------------------------------------------------│
+    │         │                                                                                                    │
+    │         │                                                                                                    │
+    │ -1.00e+1│        -- -  -  -----  -- ------- -----------------------------------------------------------------│
├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│         │0.00                                                                                         3.99e+2│
│         │                                                step                                                │
@@ -356,38 +356,38 @@ let%expect_test "Micrograd half-moons example" =
│         │                                                                                              ----  │
│         │                                                                                            ---     │
│         │                                                                                         ----       │
-    │         │                                                                                       ---          │
+    │         │                                                                                      ----          │
│         │                                                                                    ---             │
│         │                                                                                  ---               │
-    │         │                                                                               ---                  │
+    │         │                                                                               ----                 │
│         │                                                                            ----                    │
│         │                                                                          ---                       │
│         │                                                                       ----                         │
-    │         │                                                                     ---                            │
-    │l        │                                                                  ----                              │
-    │e        │                                                                ---                                 │
+    │         │                                                                    ----                            │
+    │l        │                                                                  ---                               │
+    │e        │                                                               ----                                 │
│a        │                                                             ---                                    │
-    │r        │                                                           ---                                      │
-    │n        │                                                        ---                                         │
-    │i        │                                                     ----                                           │
-    │n        │                                                   ---                                              │
-    │g        │                                                ----                                                │
+    │r        │                                                          ----                                      │
+    │n        │                                                       ----                                         │
+    │i        │                                                     ---                                            │
+    │n        │                                                  ----                                              │
+    │g        │                                                ---                                                 │
│         │                                              ---                                                   │
│r        │                                           ----                                                     │
│a        │                                         ---                                                        │
-    │t        │                                      ---                                                           │
-    │e        │                                    ---                                                             │
+    │t        │                                      ----                                                          │
+    │e        │                                   ----                                                             │
│         │                                 ---                                                                │
│         │                              ----                                                                  │
-    │         │                            ---                                                                     │
-    │         │                         ----                                                                       │
-    │         │                       ---                                                                          │
-    │         │                    ----                                                                            │
-    │         │                  ---                                                                               │
-    │         │               ---                                                                                  │
-    │         │             ---                                                                                    │
-    │         │          ---                                                                                       │
-    │         │       ----                                                                                         │
+    │         │                           ----                                                                     │
+    │         │                         ---                                                                        │
+    │         │                      ----                                                                          │
+    │         │                    ---                                                                             │
+    │         │                 ----                                                                               │
+    │         │              ----                                                                                  │
+    │         │            ---                                                                                     │
+    │         │         ----                                                                                       │
+    │         │       ---                                                                                          │
│         │     ---                                                                                            │
│         │  ----                                                                                              │
│ -2.00e-1│---                                                                                                 │
File "test/hello_world_op.ml", line 1, characters 0-0:
/usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/hello_world_op.ml _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/hello_world_op.ml.corrected
diff --git a/_build/default/test/hello_world_op.ml b/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/hello_world_op.ml.corrected
index 0cea005..72e1505 100644
--- a/_build/default/test/hello_world_op.ml
+++ b/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/hello_world_op.ml.corrected
@@ -604,45 +604,45 @@ let%expect_test "Very big tensor" =
││      │axis 5                                   │axis 5                                   │axis 5│axis 5                                   │axis 5                                   ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││0 @ 1 │ 0.00     1.00     ...  7.00     8.00    │ 9.00     1.00e+1  ...  1.60e+1  1.70e+1 │ ...  │ 5.40e+1  5.50e+1  ...  6.10e+1  6.20e+1 │ 6.30e+1  6.40e+1  ...  7.00e+1  7.10e+1 ││
-    ││axis 2│ 5.04e+2  5.05e+2  ...  5.11e+2  5.12e+2 │ 5.13e+2  5.14e+2  ...  5.20e+2  5.21e+2 │      │ 5.58e+2  5.59e+2  ...  5.65e+2  5.66e+2 │ 5.67e+2  5.68e+2  ...  5.74e+2  5.75e+2 ││
+    ││axis 2│ 5.04e+2  5.04e+2  ...  5.12e+2  5.12e+2 │ 5.12e+2  5.12e+2  ...  5.20e+2  5.20e+2 │      │ 5.60e+2  5.60e+2  ...  5.64e+2  5.68e+2 │ 5.68e+2  5.68e+2  ...  5.76e+2  5.76e+2 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
-    ││      │ 4.53e+3  4.53e+3  ...  4.54e+3  4.54e+3 │ 4.54e+3  4.54e+3  ...  4.55e+3  4.55e+3 │      │ 4.59e+3  4.59e+3  ...  4.59e+3  4.59e+3 │ 4.59e+3  4.60e+3  ...  4.60e+3  4.60e+3 ││
-    ││      │ 5.04e+3  5.04e+3  ...  5.04e+3  5.04e+3 │ 5.04e+3  5.05e+3  ...  5.05e+3  5.05e+3 │      │ 5.09e+3  5.09e+3  ...  5.10e+3  5.10e+3 │ 5.10e+3  5.10e+3  ...  5.11e+3  5.11e+3 ││
+    ││      │ 4.54e+3  4.54e+3  ...  4.54e+3  4.54e+3 │ 4.54e+3  4.54e+3  ...  4.54e+3  4.54e+3 │      │ 4.57e+3  4.57e+3  ...  4.60e+3  4.60e+3 │ 4.60e+3  4.60e+3  ...  4.60e+3  4.60e+3 ││
+    ││      │ 5.05e+3  5.05e+3  ...  5.05e+3  5.05e+3 │ 5.05e+3  5.05e+3  ...  5.05e+3  5.05e+3 │      │ 5.08e+3  5.08e+3  ...  5.08e+3  5.08e+3 │ 5.08e+3  5.12e+3  ...  5.12e+3  5.12e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││1 @ 1 │ 5.54e+3  5.54e+3  ...  5.55e+3  5.55e+3 │ 5.55e+3  5.55e+3  ...  5.56e+3  5.56e+3 │ ...  │ 5.59e+3  5.59e+3  ...  5.60e+3  5.60e+3 │ 5.60e+3  5.60e+3  ...  5.61e+3  5.61e+3 ││
-    ││axis 2│ 6.04e+3  6.04e+3  ...  6.05e+3  6.05e+3 │ 6.05e+3  6.05e+3  ...  6.06e+3  6.06e+3 │      │ 6.10e+3  6.10e+3  ...  6.10e+3  6.11e+3 │ 6.11e+3  6.11e+3  ...  6.11e+3  6.11e+3 ││
+    ││1 @ 1 │ 5.53e+3  5.53e+3  ...  5.53e+3  5.56e+3 │ 5.56e+3  5.56e+3  ...  5.56e+3  5.56e+3 │ ...  │ 5.60e+3  5.60e+3  ...  5.60e+3  5.60e+3 │ 5.60e+3  5.60e+3  ...  5.60e+3  5.60e+3 ││
+    ││axis 2│ 6.04e+3  6.04e+3  ...  6.04e+3  6.04e+3 │ 6.04e+3  6.04e+3  ...  6.08e+3  6.08e+3 │      │ 6.11e+3  6.11e+3  ...  6.11e+3  6.11e+3 │ 6.11e+3  6.11e+3  ...  6.11e+3  6.11e+3 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
-    ││      │ 1.00e+4  1.00e+4  ...  1.00e+4  1.00e+4 │ 1.00e+4  1.00e+4  ...  1.00e+4  1.00e+4 │      │ 1.01e+4  1.01e+4  ...  1.01e+4  1.01e+4 │ 1.01e+4  1.01e+4  ...  1.01e+4  1.01e+4 ││
-    ││      │ 1.05e+4  1.05e+4  ...  1.05e+4  1.05e+4 │ 1.05e+4  1.05e+4  ...  1.06e+4  1.06e+4 │      │ 1.06e+4  1.06e+4  ...  1.06e+4  1.06e+4 │ 1.06e+4  1.06e+4  ...  1.06e+4  1.06e+4 ││
+    ││      │ 1.01e+4  1.01e+4  ...  1.01e+4  1.01e+4 │ 1.01e+4  1.01e+4  ...  1.01e+4  1.01e+4 │      │ 1.01e+4  1.01e+4  ...  1.01e+4  1.01e+4 │ 1.01e+4  1.01e+4  ...  1.01e+4  1.01e+4 ││
+    ││      │ 1.05e+4  1.05e+4  ...  1.05e+4  1.06e+4 │ 1.06e+4  1.06e+4  ...  1.06e+4  1.06e+4 │      │ 1.06e+4  1.06e+4  ...  1.06e+4  1.06e+4 │ 1.06e+4  1.06e+4  ...  1.06e+4  1.06e+4 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││~~~~~ │ ...                                     │ ...                                     │ ...  │ ...                                     │ ...                                     ││
││axis 2│                                         │                                         │      │                                         │                                         ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││8 @ 1 │ 4.43e+4  4.43e+4  ...  4.43e+4  4.43e+4 │ 4.43e+4  4.43e+4  ...  4.43e+4  4.43e+4 │ ...  │ 4.44e+4  4.44e+4  ...  4.44e+4  4.44e+4 │ 4.44e+4  4.44e+4  ...  4.44e+4  4.44e+4 ││
-    ││axis 2│ 4.48e+4  4.48e+4  ...  4.48e+4  4.48e+4 │ 4.48e+4  4.48e+4  ...  4.48e+4  4.48e+4 │      │ 4.49e+4  4.49e+4  ...  4.49e+4  4.49e+4 │ 4.49e+4  4.49e+4  ...  4.49e+4  4.49e+4 ││
+    ││8 @ 1 │ 4.42e+4  4.42e+4  ...  4.42e+4  4.42e+4 │ 4.42e+4  4.42e+4  ...  4.42e+4  4.42e+4 │ ...  │ 4.42e+4  4.42e+4  ...  4.42e+4  4.42e+4 │ 4.42e+4  4.45e+4  ...  4.45e+4  4.45e+4 ││
+    ││axis 2│ 4.48e+4  4.48e+4  ...  4.48e+4  4.48e+4 │ 4.48e+4  4.48e+4  ...  4.48e+4  4.48e+4 │      │ 4.48e+4  4.48e+4  ...  4.48e+4  4.48e+4 │ 4.48e+4  4.48e+4  ...  4.48e+4  4.48e+4 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
-    ││      │ 4.88e+4  4.88e+4  ...  4.88e+4  4.88e+4 │ 4.88e+4  4.88e+4  ...  4.89e+4  4.89e+4 │      │ 4.89e+4  4.89e+4  ...  4.89e+4  4.89e+4 │ 4.89e+4  4.89e+4  ...  4.89e+4  4.89e+4 ││
-    ││      │ 4.93e+4  4.93e+4  ...  4.93e+4  4.94e+4 │ 4.94e+4  4.94e+4  ...  4.94e+4  4.94e+4 │      │ 4.94e+4  4.94e+4  ...  4.94e+4  4.94e+4 │ 4.94e+4  4.94e+4  ...  4.94e+4  4.94e+4 ││
+    ││      │ 4.88e+4  4.88e+4  ...  4.88e+4  4.88e+4 │ 4.88e+4  4.88e+4  ...  4.88e+4  4.88e+4 │      │ 4.88e+4  4.88e+4  ...  4.88e+4  4.88e+4 │ 4.88e+4  4.88e+4  ...  4.88e+4  4.88e+4 ││
+    ││      │ 4.94e+4  4.94e+4  ...  4.94e+4  4.94e+4 │ 4.94e+4  4.94e+4  ...  4.94e+4  4.94e+4 │      │ 4.94e+4  4.94e+4  ...  4.94e+4  4.94e+4 │ 4.94e+4  4.94e+4  ...  4.94e+4  4.94e+4 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││9 @ 1 │ 4.98e+4  4.98e+4  ...  4.99e+4  4.99e+4 │ 4.99e+4  4.99e+4  ...  4.99e+4  4.99e+4 │ ...  │ 4.99e+4  4.99e+4  ...  4.99e+4  4.99e+4 │ 4.99e+4  4.99e+4  ...  4.99e+4  4.99e+4 ││
+    ││9 @ 1 │ 4.99e+4  4.99e+4  ...  4.99e+4  4.99e+4 │ 4.99e+4  4.99e+4  ...  4.99e+4  4.99e+4 │ ...  │ 4.99e+4  4.99e+4  ...  4.99e+4  4.99e+4 │ 4.99e+4  4.99e+4  ...  4.99e+4  4.99e+4 ││
││axis 2│ 5.04e+4  5.04e+4  ...  5.04e+4  5.04e+4 │ 5.04e+4  5.04e+4  ...  5.04e+4  5.04e+4 │      │ 5.04e+4  5.04e+4  ...  5.04e+4  5.04e+4 │ 5.04e+4  5.04e+4  ...  5.04e+4  5.04e+4 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
-    ││      │ 5.44e+4  5.44e+4  ...  5.44e+4  5.44e+4 │ 5.44e+4  5.44e+4  ...  5.44e+4  5.44e+4 │      │ 5.44e+4  5.44e+4  ...  5.44e+4  5.44e+4 │ 5.44e+4  5.44e+4  ...  5.45e+4  5.45e+4 ││
-    ││      │ 5.49e+4  5.49e+4  ...  5.49e+4  5.49e+4 │ 5.49e+4  5.49e+4  ...  5.49e+4  5.49e+4 │      │ 5.49e+4  5.49e+4  ...  5.49e+4  5.49e+4 │ 5.49e+4  5.50e+4  ...  5.50e+4  5.50e+4 ││
+    ││      │ 5.45e+4  5.45e+4  ...  5.45e+4  5.45e+4 │ 5.45e+4  5.45e+4  ...  5.45e+4  5.45e+4 │      │ 5.45e+4  5.45e+4  ...  5.45e+4  5.45e+4 │ 5.45e+4  5.45e+4  ...  5.45e+4  5.45e+4 ││
+    ││      │ 5.50e+4  5.50e+4  ...  5.50e+4  5.50e+4 │ 5.50e+4  5.50e+4  ...  5.50e+4  5.50e+4 │      │ 5.50e+4  5.50e+4  ...  5.50e+4  5.50e+4 │ 5.50e+4  5.50e+4  ...  5.50e+4  5.50e+4 ││
│└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴──────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│┌──────┬─────────────────────────────────────────┬─────────────────────────────────────────┬──────┬─────────────────────────────────────────┬─────────────────────────────────────────┐│
││1 @ 0 │0 @ 4                                    │1 @ 4                                    │~~~~~ │6 @ 4                                    │7 @ 4                                    ││
││      │axis 5                                   │axis 5                                   │axis 5│axis 5                                   │axis 5                                   ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││0 @ 1 │ 5.54e+4  5.54e+4  ...  5.54e+4  5.54e+4 │ 5.54e+4  5.54e+4  ...  5.54e+4  5.54e+4 │ ...  │ 5.54e+4  5.54e+4  ...  5.55e+4  5.55e+4 │ 5.55e+4  5.55e+4  ...  5.55e+4  5.55e+4 ││
-    ││axis 2│ 5.59e+4  5.59e+4  ...  5.59e+4  5.59e+4 │ 5.59e+4  5.59e+4  ...  5.59e+4  5.59e+4 │      │ 5.59e+4  5.59e+4  ...  5.60e+4  5.60e+4 │ 5.60e+4  5.60e+4  ...  5.60e+4  5.60e+4 ││
+    ││0 @ 1 │ 5.55e+4  5.55e+4  ...  5.55e+4  5.55e+4 │ 5.55e+4  5.55e+4  ...  5.55e+4  5.55e+4 │ ...  │ 5.55e+4  5.55e+4  ...  5.55e+4  5.55e+4 │ 5.55e+4  5.55e+4  ...  5.55e+4  5.55e+4 ││
+    ││axis 2│ 5.60e+4  5.60e+4  ...  5.60e+4  5.60e+4 │ 5.60e+4  5.60e+4  ...  5.60e+4  5.60e+4 │      │ 5.60e+4  5.60e+4  ...  5.60e+4  5.60e+4 │ 5.60e+4  5.60e+4  ...  5.60e+4  5.60e+4 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
-    ││      │ 5.99e+4  5.99e+4  ...  5.99e+4  5.99e+4 │ 5.99e+4  5.99e+4  ...  5.99e+4  5.99e+4 │      │ 6.00e+4  6.00e+4  ...  6.00e+4  6.00e+4 │ 6.00e+4  6.00e+4  ...  6.00e+4  6.00e+4 ││
-    ││      │ 6.04e+4  6.04e+4  ...  6.04e+4  6.04e+4 │ 6.04e+4  6.04e+4  ...  6.04e+4  6.04e+4 │      │ 6.05e+4  6.05e+4  ...  6.05e+4  6.05e+4 │ 6.05e+4  6.05e+4  ...  6.05e+4  6.05e+4 ││
+    ││      │ 5.99e+4  5.99e+4  ...  5.99e+4  5.99e+4 │ 5.99e+4  5.99e+4  ...  5.99e+4  5.99e+4 │      │ 5.99e+4  5.99e+4  ...  6.01e+4  6.01e+4 │ 6.01e+4  6.01e+4  ...  6.01e+4  6.01e+4 ││
+    ││      │ 6.04e+4  6.04e+4  ...  6.04e+4  6.04e+4 │ 6.04e+4  6.04e+4  ...  6.04e+4  6.04e+4 │      │ 6.04e+4  6.04e+4  ...  6.04e+4  6.04e+4 │ 6.04e+4  6.04e+4  ...  6.06e+4  6.06e+4 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││1 @ 1 │ 6.09e+4  6.09e+4  ...  6.09e+4  6.09e+4 │ 6.09e+4  6.09e+4  ...  6.10e+4  6.10e+4 │ ...  │ 6.10e+4  6.10e+4  ...  6.10e+4  6.10e+4 │ 6.10e+4  6.10e+4  ...  6.10e+4  6.10e+4 ││
-    ││axis 2│ 6.14e+4  6.14e+4  ...  6.14e+4  6.14e+4 │ 6.14e+4  6.14e+4  ...  6.15e+4  6.15e+4 │      │ 6.15e+4  6.15e+4  ...  6.15e+4  6.15e+4 │ 6.15e+4  6.15e+4  ...  6.15e+4  6.15e+4 ││
+    ││1 @ 1 │ 6.09e+4  6.09e+4  ...  6.09e+4  6.09e+4 │ 6.09e+4  6.09e+4  ...  6.09e+4  6.09e+4 │ ...  │ 6.09e+4  6.09e+4  ...  6.09e+4  6.09e+4 │ 6.09e+4  6.09e+4  ...  6.09e+4  6.09e+4 ││
+    ││axis 2│ 6.14e+4  6.14e+4  ...  6.14e+4  6.14e+4 │ 6.14e+4  6.14e+4  ...  6.14e+4  6.14e+4 │      │ 6.14e+4  6.14e+4  ...  6.14e+4  6.14e+4 │ 6.14e+4  6.14e+4  ...  6.14e+4  6.14e+4 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
││      │ 6.55e+4  6.55e+4  ...  6.55e+4  6.55e+4 │ 6.55e+4  6.55e+4  ...  6.55e+4  6.55e+4 │      │ 6.55e+4  6.55e+4  ...  6.55e+4  6.55e+4 │ 6.55e+4  6.55e+4  ...  6.55e+4  6.55e+4 ││
││      │ 6.60e+4  6.60e+4  ...  6.60e+4  6.60e+4 │ 6.60e+4  6.60e+4  ...  6.60e+4  6.60e+4 │      │ 6.60e+4  6.60e+4  ...  6.60e+4  6.60e+4 │ 6.60e+4  6.60e+4  ...  6.60e+4  6.60e+4 ││
@@ -650,7 +650,7 @@ let%expect_test "Very big tensor" =
││~~~~~ │ ...                                     │ ...                                     │ ...  │ ...                                     │ ...                                     ││
││axis 2│                                         │                                         │      │                                         │                                         ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││8 @ 1 │ 9.97e+4  9.97e+4  ...  9.97e+4  9.98e+4 │ 9.98e+4  9.98e+4  ...  9.98e+4  9.98e+4 │ ...  │ 9.98e+4  9.98e+4  ...  9.98e+4  9.98e+4 │ 9.98e+4  9.98e+4  ...  9.98e+4  9.98e+4 ││
+    ││8 @ 1 │ 9.98e+4  9.98e+4  ...  9.98e+4  9.98e+4 │ 9.98e+4  9.98e+4  ...  9.98e+4  9.98e+4 │ ...  │ 9.98e+4  9.98e+4  ...  9.98e+4  9.98e+4 │ 9.98e+4  9.98e+4  ...  9.98e+4  9.98e+4 ││
││axis 2│ 1.00e+5  1.00e+5  ...  1.00e+5  1.00e+5 │ 1.00e+5  1.00e+5  ...  1.00e+5  1.00e+5 │      │ 1.00e+5  1.00e+5  ...  1.00e+5  1.00e+5 │ 1.00e+5  1.00e+5  ...  1.00e+5  1.00e+5 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
││      │ 1.04e+5  1.04e+5  ...  1.04e+5  1.04e+5 │ 1.04e+5  1.04e+5  ...  1.04e+5  1.04e+5 │      │ 1.04e+5  1.04e+5  ...  1.04e+5  1.04e+5 │ 1.04e+5  1.04e+5  ...  1.04e+5  1.04e+5 ││
@@ -659,7 +659,7 @@ let%expect_test "Very big tensor" =
││9 @ 1 │ 1.05e+5  1.05e+5  ...  1.05e+5  1.05e+5 │ 1.05e+5  1.05e+5  ...  1.05e+5  1.05e+5 │ ...  │ 1.05e+5  1.05e+5  ...  1.05e+5  1.05e+5 │ 1.05e+5  1.05e+5  ...  1.05e+5  1.05e+5 ││
││axis 2│ 1.05e+5  1.05e+5  ...  1.05e+5  1.05e+5 │ 1.05e+5  1.05e+5  ...  1.05e+5  1.05e+5 │      │ 1.05e+5  1.05e+5  ...  1.05e+5  1.05e+5 │ 1.05e+5  1.05e+5  ...  1.05e+5  1.05e+5 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
-    ││      │ 1.09e+5  1.09e+5  ...  1.09e+5  1.09e+5 │ 1.09e+5  1.09e+5  ...  1.09e+5  1.09e+5 │      │ 1.09e+5  1.09e+5  ...  1.09e+5  1.09e+5 │ 1.09e+5  1.09e+5  ...  1.09e+5  1.09e+5 ││
+    ││      │ 1.10e+5  1.10e+5  ...  1.10e+5  1.10e+5 │ 1.10e+5  1.10e+5  ...  1.10e+5  1.10e+5 │      │ 1.10e+5  1.10e+5  ...  1.10e+5  1.10e+5 │ 1.10e+5  1.10e+5  ...  1.10e+5  1.10e+5 ││
││      │ 1.10e+5  1.10e+5  ...  1.10e+5  1.10e+5 │ 1.10e+5  1.10e+5  ...  1.10e+5  1.10e+5 │      │ 1.10e+5  1.10e+5  ...  1.10e+5  1.10e+5 │ 1.10e+5  1.10e+5  ...  1.10e+5  1.10e+5 ││
│└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴──────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
@@ -669,14 +669,14 @@ let%expect_test "Very big tensor" =
││4 @ 0 │0 @ 4                                    │1 @ 4                                    │~~~~~ │6 @ 4                                    │7 @ 4                                    ││
││      │axis 5                                   │axis 5                                   │axis 5│axis 5                                   │axis 5                                   ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││0 @ 1 │ 2.21e+5  2.21e+5  ...  2.21e+5  2.21e+5 │ 2.21e+5  2.21e+5  ...  2.21e+5  2.21e+5 │ ...  │ 2.21e+5  2.21e+5  ...  2.21e+5  2.21e+5 │ 2.21e+5  2.21e+5  ...  2.21e+5  2.21e+5 ││
+    ││0 @ 1 │ 2.22e+5  2.22e+5  ...  2.22e+5  2.22e+5 │ 2.22e+5  2.22e+5  ...  2.22e+5  2.22e+5 │ ...  │ 2.22e+5  2.22e+5  ...  2.22e+5  2.22e+5 │ 2.22e+5  2.22e+5  ...  2.22e+5  2.22e+5 ││
││axis 2│ 2.22e+5  2.22e+5  ...  2.22e+5  2.22e+5 │ 2.22e+5  2.22e+5  ...  2.22e+5  2.22e+5 │      │ 2.22e+5  2.22e+5  ...  2.22e+5  2.22e+5 │ 2.22e+5  2.22e+5  ...  2.22e+5  2.22e+5 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
││      │ 2.26e+5  2.26e+5  ...  2.26e+5  2.26e+5 │ 2.26e+5  2.26e+5  ...  2.26e+5  2.26e+5 │      │ 2.26e+5  2.26e+5  ...  2.26e+5  2.26e+5 │ 2.26e+5  2.26e+5  ...  2.26e+5  2.26e+5 ││
-    ││      │ 2.26e+5  2.26e+5  ...  2.26e+5  2.26e+5 │ 2.26e+5  2.26e+5  ...  2.26e+5  2.26e+5 │      │ 2.26e+5  2.26e+5  ...  2.26e+5  2.26e+5 │ 2.26e+5  2.26e+5  ...  2.26e+5  2.26e+5 ││
+    ││      │ 2.26e+5  2.26e+5  ...  2.26e+5  2.26e+5 │ 2.26e+5  2.26e+5  ...  2.27e+5  2.27e+5 │      │ 2.27e+5  2.27e+5  ...  2.27e+5  2.27e+5 │ 2.27e+5  2.27e+5  ...  2.27e+5  2.27e+5 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││1 @ 1 │ 2.27e+5  2.27e+5  ...  2.27e+5  2.27e+5 │ 2.27e+5  2.27e+5  ...  2.27e+5  2.27e+5 │ ...  │ 2.27e+5  2.27e+5  ...  2.27e+5  2.27e+5 │ 2.27e+5  2.27e+5  ...  2.27e+5  2.27e+5 ││
-    ││axis 2│ 2.27e+5  2.27e+5  ...  2.27e+5  2.27e+5 │ 2.27e+5  2.27e+5  ...  2.27e+5  2.27e+5 │      │ 2.27e+5  2.27e+5  ...  2.27e+5  2.27e+5 │ 2.27e+5  2.27e+5  ...  2.27e+5  2.27e+5 ││
+    ││axis 2│ 2.27e+5  2.27e+5  ...  2.27e+5  2.27e+5 │ 2.27e+5  2.27e+5  ...  2.27e+5  2.27e+5 │      │ 2.28e+5  2.28e+5  ...  2.28e+5  2.28e+5 │ 2.28e+5  2.28e+5  ...  2.28e+5  2.28e+5 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
││      │ 2.31e+5  2.31e+5  ...  2.31e+5  2.31e+5 │ 2.31e+5  2.31e+5  ...  2.31e+5  2.31e+5 │      │ 2.31e+5  2.31e+5  ...  2.31e+5  2.31e+5 │ 2.31e+5  2.31e+5  ...  2.31e+5  2.31e+5 ││
││      │ 2.32e+5  2.32e+5  ...  2.32e+5  2.32e+5 │ 2.32e+5  2.32e+5  ...  2.32e+5  2.32e+5 │      │ 2.32e+5  2.32e+5  ...  2.32e+5  2.32e+5 │ 2.32e+5  2.32e+5  ...  2.32e+5  2.32e+5 ││
@@ -688,9 +688,9 @@ let%expect_test "Very big tensor" =
││axis 2│ 2.66e+5  2.66e+5  ...  2.66e+5  2.66e+5 │ 2.66e+5  2.66e+5  ...  2.66e+5  2.66e+5 │      │ 2.66e+5  2.66e+5  ...  2.66e+5  2.66e+5 │ 2.66e+5  2.66e+5  ...  2.66e+5  2.66e+5 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
││      │ 2.70e+5  2.70e+5  ...  2.70e+5  2.70e+5 │ 2.70e+5  2.70e+5  ...  2.70e+5  2.70e+5 │      │ 2.70e+5  2.70e+5  ...  2.70e+5  2.70e+5 │ 2.70e+5  2.70e+5  ...  2.70e+5  2.70e+5 ││
-    ││      │ 2.71e+5  2.71e+5  ...  2.71e+5  2.71e+5 │ 2.71e+5  2.71e+5  ...  2.71e+5  2.71e+5 │      │ 2.71e+5  2.71e+5  ...  2.71e+5  2.71e+5 │ 2.71e+5  2.71e+5  ...  2.71e+5  2.71e+5 ││
+    ││      │ 2.70e+5  2.70e+5  ...  2.70e+5  2.70e+5 │ 2.70e+5  2.70e+5  ...  2.70e+5  2.70e+5 │      │ 2.70e+5  2.70e+5  ...  2.70e+5  2.70e+5 │ 2.70e+5  2.70e+5  ...  2.70e+5  2.70e+5 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││9 @ 1 │ 2.71e+5  2.71e+5  ...  2.71e+5  2.71e+5 │ 2.71e+5  2.71e+5  ...  2.71e+5  2.71e+5 │ ...  │ 2.71e+5  2.71e+5  ...  2.71e+5  2.71e+5 │ 2.71e+5  2.71e+5  ...  2.71e+5  2.71e+5 ││
+    ││9 @ 1 │ 2.72e+5  2.72e+5  ...  2.72e+5  2.72e+5 │ 2.72e+5  2.72e+5  ...  2.72e+5  2.72e+5 │ ...  │ 2.72e+5  2.72e+5  ...  2.72e+5  2.72e+5 │ 2.72e+5  2.72e+5  ...  2.72e+5  2.72e+5 ││
││axis 2│ 2.72e+5  2.72e+5  ...  2.72e+5  2.72e+5 │ 2.72e+5  2.72e+5  ...  2.72e+5  2.72e+5 │      │ 2.72e+5  2.72e+5  ...  2.72e+5  2.72e+5 │ 2.72e+5  2.72e+5  ...  2.72e+5  2.72e+5 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
││      │ 2.76e+5  2.76e+5  ...  2.76e+5  2.76e+5 │ 2.76e+5  2.76e+5  ...  2.76e+5  2.76e+5 │      │ 2.76e+5  2.76e+5  ...  2.76e+5  2.76e+5 │ 2.76e+5  2.76e+5  ...  2.76e+5  2.76e+5 ││
@@ -701,32 +701,32 @@ let%expect_test "Very big tensor" =
││5 @ 0 │0 @ 4                                    │1 @ 4                                    │~~~~~ │6 @ 4                                    │7 @ 4                                    ││
││      │axis 5                                   │axis 5                                   │axis 5│axis 5                                   │axis 5                                   ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││0 @ 1 │ 2.77e+5  2.77e+5  ...  2.77e+5  2.77e+5 │ 2.77e+5  2.77e+5  ...  2.77e+5  2.77e+5 │ ...  │ 2.77e+5  2.77e+5  ...  2.77e+5  2.77e+5 │ 2.77e+5  2.77e+5  ...  2.77e+5  2.77e+5 ││
-    ││axis 2│ 2.77e+5  2.77e+5  ...  2.77e+5  2.77e+5 │ 2.77e+5  2.77e+5  ...  2.77e+5  2.77e+5 │      │ 2.77e+5  2.77e+5  ...  2.77e+5  2.77e+5 │ 2.77e+5  2.77e+5  ...  2.77e+5  2.77e+5 ││
+    ││0 @ 1 │ 2.76e+5  2.76e+5  ...  2.76e+5  2.76e+5 │ 2.76e+5  2.76e+5  ...  2.76e+5  2.76e+5 │ ...  │ 2.76e+5  2.76e+5  ...  2.76e+5  2.76e+5 │ 2.76e+5  2.76e+5  ...  2.76e+5  2.76e+5 ││
+    ││axis 2│ 2.78e+5  2.78e+5  ...  2.78e+5  2.78e+5 │ 2.78e+5  2.78e+5  ...  2.78e+5  2.78e+5 │      │ 2.78e+5  2.78e+5  ...  2.78e+5  2.78e+5 │ 2.78e+5  2.78e+5  ...  2.78e+5  2.78e+5 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
-    ││      │ 2.81e+5  2.81e+5  ...  2.81e+5  2.81e+5 │ 2.81e+5  2.81e+5  ...  2.81e+5  2.81e+5 │      │ 2.81e+5  2.81e+5  ...  2.81e+5  2.81e+5 │ 2.81e+5  2.81e+5  ...  2.81e+5  2.81e+5 ││
+    ││      │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 │      │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 ││
││      │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 │      │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││1 @ 1 │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 │ ...  │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 ││
-    ││axis 2│ 2.83e+5  2.83e+5  ...  2.83e+5  2.83e+5 │ 2.83e+5  2.83e+5  ...  2.83e+5  2.83e+5 │      │ 2.83e+5  2.83e+5  ...  2.83e+5  2.83e+5 │ 2.83e+5  2.83e+5  ...  2.83e+5  2.83e+5 ││
+    ││axis 2│ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 │      │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 │ 2.82e+5  2.82e+5  ...  2.82e+5  2.82e+5 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
-    ││      │ 2.87e+5  2.87e+5  ...  2.87e+5  2.87e+5 │ 2.87e+5  2.87e+5  ...  2.87e+5  2.87e+5 │      │ 2.87e+5  2.87e+5  ...  2.87e+5  2.87e+5 │ 2.87e+5  2.87e+5  ...  2.87e+5  2.87e+5 ││
-    ││      │ 2.87e+5  2.87e+5  ...  2.87e+5  2.87e+5 │ 2.87e+5  2.87e+5  ...  2.87e+5  2.87e+5 │      │ 2.87e+5  2.87e+5  ...  2.87e+5  2.87e+5 │ 2.87e+5  2.87e+5  ...  2.87e+5  2.87e+5 ││
+    ││      │ 2.86e+5  2.86e+5  ...  2.86e+5  2.86e+5 │ 2.86e+5  2.86e+5  ...  2.86e+5  2.86e+5 │      │ 2.86e+5  2.86e+5  ...  2.86e+5  2.86e+5 │ 2.86e+5  2.86e+5  ...  2.86e+5  2.86e+5 ││
+    ││      │ 2.88e+5  2.88e+5  ...  2.88e+5  2.88e+5 │ 2.88e+5  2.88e+5  ...  2.88e+5  2.88e+5 │      │ 2.88e+5  2.88e+5  ...  2.88e+5  2.88e+5 │ 2.88e+5  2.88e+5  ...  2.88e+5  2.88e+5 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││~~~~~ │ ...                                     │ ...                                     │ ...  │ ...                                     │ ...                                     ││
││axis 2│                                         │                                         │      │                                         │                                         ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││8 @ 1 │ 3.21e+5  3.21e+5  ...  3.21e+5  3.21e+5 │ 3.21e+5  3.21e+5  ...  3.21e+5  3.21e+5 │ ...  │ 3.21e+5  3.21e+5  ...  3.21e+5  3.21e+5 │ 3.21e+5  3.21e+5  ...  3.21e+5  3.21e+5 ││
-    ││axis 2│ 3.22e+5  3.22e+5  ...  3.22e+5  3.22e+5 │ 3.22e+5  3.22e+5  ...  3.22e+5  3.22e+5 │      │ 3.22e+5  3.22e+5  ...  3.22e+5  3.22e+5 │ 3.22e+5  3.22e+5  ...  3.22e+5  3.22e+5 ││
+    ││axis 2│ 3.21e+5  3.21e+5  ...  3.21e+5  3.21e+5 │ 3.21e+5  3.21e+5  ...  3.21e+5  3.21e+5 │      │ 3.21e+5  3.21e+5  ...  3.21e+5  3.21e+5 │ 3.21e+5  3.21e+5  ...  3.21e+5  3.21e+5 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
-    ││      │ 3.26e+5  3.26e+5  ...  3.26e+5  3.26e+5 │ 3.26e+5  3.26e+5  ...  3.26e+5  3.26e+5 │      │ 3.26e+5  3.26e+5  ...  3.26e+5  3.26e+5 │ 3.26e+5  3.26e+5  ...  3.26e+5  3.26e+5 ││
-    ││      │ 3.26e+5  3.26e+5  ...  3.26e+5  3.26e+5 │ 3.26e+5  3.26e+5  ...  3.26e+5  3.26e+5 │      │ 3.26e+5  3.26e+5  ...  3.26e+5  3.26e+5 │ 3.26e+5  3.26e+5  ...  3.26e+5  3.26e+5 ││
+    ││      │ 3.25e+5  3.25e+5  ...  3.25e+5  3.25e+5 │ 3.25e+5  3.25e+5  ...  3.25e+5  3.25e+5 │      │ 3.25e+5  3.25e+5  ...  3.25e+5  3.25e+5 │ 3.25e+5  3.25e+5  ...  3.25e+5  3.25e+5 ││
+    ││      │ 3.25e+5  3.25e+5  ...  3.25e+5  3.25e+5 │ 3.25e+5  3.25e+5  ...  3.25e+5  3.25e+5 │      │ 3.25e+5  3.25e+5  ...  3.25e+5  3.25e+5 │ 3.25e+5  3.27e+5  ...  3.27e+5  3.27e+5 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││9 @ 1 │ 3.27e+5  3.27e+5  ...  3.27e+5  3.27e+5 │ 3.27e+5  3.27e+5  ...  3.27e+5  3.27e+5 │ ...  │ 3.27e+5  3.27e+5  ...  3.27e+5  3.27e+5 │ 3.27e+5  3.27e+5  ...  3.27e+5  3.27e+5 ││
││axis 2│ 3.27e+5  3.27e+5  ...  3.27e+5  3.27e+5 │ 3.27e+5  3.27e+5  ...  3.27e+5  3.27e+5 │      │ 3.27e+5  3.27e+5  ...  3.27e+5  3.27e+5 │ 3.27e+5  3.27e+5  ...  3.27e+5  3.27e+5 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
││      │ 3.31e+5  3.31e+5  ...  3.31e+5  3.31e+5 │ 3.31e+5  3.31e+5  ...  3.31e+5  3.31e+5 │      │ 3.31e+5  3.31e+5  ...  3.31e+5  3.31e+5 │ 3.31e+5  3.31e+5  ...  3.31e+5  3.31e+5 ││
-    ││      │ 3.32e+5  3.32e+5  ...  3.32e+5  3.32e+5 │ 3.32e+5  3.32e+5  ...  3.32e+5  3.32e+5 │      │ 3.32e+5  3.32e+5  ...  3.32e+5  3.32e+5 │ 3.32e+5  3.32e+5  ...  3.32e+5  3.32e+5 ││
+    ││      │ 3.31e+5  3.31e+5  ...  3.31e+5  3.31e+5 │ 3.31e+5  3.31e+5  ...  3.31e+5  3.31e+5 │      │ 3.31e+5  3.31e+5  ...  3.31e+5  3.31e+5 │ 3.31e+5  3.31e+5  ...  3.31e+5  3.31e+5 ││
│└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴──────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|}];
@@ -740,11 +740,11 @@ let%expect_test "Very big tensor" =
││      │0 @ 0                                    │1 @ 0                                    │~~~~~ │4 @ 0                                    │5 @ 0                                    ││
││      │axis 2                                   │axis 2                                   │axis 2│axis 2                                   │axis 2                                   ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││axis 1│ 2.53e+5  7.61e+5  ...  4.82e+6  5.33e+6 │ 5.61e+7  5.66e+7  ...  6.07e+7  6.12e+7 │ ...  │ 2.23e+8  2.24e+8  ...  2.28e+8  2.28e+8 │ 2.79e+8  2.80e+8  ...  2.84e+8  2.84e+8 ││
-    ││      │ 5.84e+6  6.34e+6  ...  1.04e+7  1.09e+7 │ 6.17e+7  6.22e+7  ...  6.62e+7  6.68e+7 │      │ 2.29e+8  2.29e+8  ...  2.33e+8  2.34e+8 │ 2.85e+8  2.85e+8  ...  2.89e+8  2.90e+8 ││
+    ││axis 1│ 2.59e+5  5.24e+5  ...  4.19e+6  4.19e+6 │ 3.35e+7  3.35e+7  ...  3.35e+7  3.35e+7 │ ...  │ 1.34e+8  1.34e+8  ...  1.34e+8  1.34e+8 │ 2.68e+8  2.68e+8  ...  2.68e+8  2.68e+8 ││
+    ││      │ 4.19e+6  4.19e+6  ...  8.38e+6  8.38e+6 │ 3.35e+7  3.35e+7  ...  6.71e+7  6.71e+7 │      │ 1.34e+8  1.34e+8  ...  1.34e+8  1.34e+8 │ 2.68e+8  2.68e+8  ...  2.68e+8  2.68e+8 ││
││      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     │      │ ...      ...      ...  ...      ...     │ ...      ...      ...  ...      ...     ││
-    ││      │ 4.49e+7  4.54e+7  ...  4.95e+7  5.00e+7 │ 1.00e+8  1.01e+8  ...  1.05e+8  1.05e+8 │      │ 2.68e+8  2.69e+8  ...  2.73e+8  2.73e+8 │ 3.24e+8  3.24e+8  ...  3.28e+8  3.29e+8 ││
-    ││      │ 5.05e+7  5.10e+7  ...  5.51e+7  5.56e+7 │ 1.06e+8  1.06e+8  ...  1.11e+8  1.11e+8 │      │ 2.74e+8  2.74e+8  ...  2.78e+8  2.79e+8 │ 3.29e+8  3.30e+8  ...  3.34e+8  3.35e+8 ││
+    ││      │ 3.35e+7  3.35e+7  ...  3.35e+7  3.35e+7 │ 6.71e+7  6.71e+7  ...  6.71e+7  6.71e+7 │      │ 2.68e+8  2.68e+8  ...  2.68e+8  2.68e+8 │ 2.68e+8  2.68e+8  ...  2.68e+8  2.68e+8 ││
+    ││      │ 3.35e+7  3.35e+7  ...  3.35e+7  3.35e+7 │ 6.71e+7  6.71e+7  ...  6.71e+7  6.71e+7 │      │ 2.68e+8  2.68e+8  ...  2.68e+8  2.68e+8 │ 2.68e+8  2.68e+8  ...  2.68e+8  2.68e+8 ││
│└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴──────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|}]
File "test/einsum_trivia.ml", line 1, characters 0-0:
/usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/einsum_trivia.ml _build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/einsum_trivia.ml.corrected
diff --git a/_build/default/test/einsum_trivia.ml b/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/einsum_trivia.ml.corrected
index 162aa57..ed9a15a 100644
--- a/_build/default/test/einsum_trivia.ml
+++ b/_build/.sandbox/603cadaea9d1353529a866c96a784b27/default/test/einsum_trivia.ml.corrected
@@ -79,87 +79,87 @@ let%expect_test "einsum1 permute axes" =
││1 @ 2 │ 1.40e+2  1.41e+2  1.42e+2  1.43e+2  1.44e+2 │ 1.45e+2  1.46e+2  1.47e+2  1.48e+2  1.49e+2 │ 1.50e+2  1.51e+2  1.52e+2  1.53e+2  1.54e+2 │ 1.55e+2  1.56e+2  1.57e+2  1.58e+2  1.59e+2 ││
││axis 3│ 1.60e+2  1.61e+2  1.62e+2  1.63e+2  1.64e+2 │ 1.65e+2  1.66e+2  1.67e+2  1.68e+2  1.69e+2 │ 1.70e+2  1.71e+2  1.72e+2  1.73e+2  1.74e+2 │ 1.75e+2  1.76e+2  1.77e+2  1.78e+2  1.79e+2 ││
││      │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     ││
-    ││      │ 2.40e+2  2.41e+2  2.42e+2  2.43e+2  2.44e+2 │ 2.45e+2  2.46e+2  2.47e+2  2.48e+2  2.49e+2 │ 2.50e+2  2.51e+2  2.52e+2  2.53e+2  2.54e+2 │ 2.55e+2  2.56e+2  2.57e+2  2.58e+2  2.59e+2 ││
-    ││      │ 2.60e+2  2.61e+2  2.62e+2  2.63e+2  2.64e+2 │ 2.65e+2  2.66e+2  2.67e+2  2.68e+2  2.69e+2 │ 2.70e+2  2.71e+2  2.72e+2  2.73e+2  2.74e+2 │ 2.75e+2  2.76e+2  2.77e+2  2.78e+2  2.79e+2 ││
+    ││      │ 2.40e+2  2.41e+2  2.42e+2  2.43e+2  2.44e+2 │ 2.45e+2  2.46e+2  2.47e+2  2.48e+2  2.49e+2 │ 2.50e+2  2.51e+2  2.52e+2  2.53e+2  2.54e+2 │ 2.55e+2  2.56e+2  2.56e+2  2.58e+2  2.60e+2 ││
+    ││      │ 2.60e+2  2.60e+2  2.62e+2  2.64e+2  2.64e+2 │ 2.64e+2  2.66e+2  2.68e+2  2.68e+2  2.68e+2 │ 2.70e+2  2.72e+2  2.72e+2  2.72e+2  2.74e+2 │ 2.76e+2  2.76e+2  2.76e+2  2.78e+2  2.80e+2 ││
│├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│
││~~~~~ │ ...                                         │ ...                                         │ ...                                         │ ...                                         ││
││axis 3│                                             │                                             │                                             │                                             ││
│├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│
-    ││4 @ 2 │ 5.60e+2  5.61e+2  5.62e+2  5.63e+2  5.64e+2 │ 5.65e+2  5.66e+2  5.67e+2  5.68e+2  5.69e+2 │ 5.70e+2  5.71e+2  5.72e+2  5.73e+2  5.74e+2 │ 5.75e+2  5.76e+2  5.77e+2  5.78e+2  5.79e+2 ││
-    ││axis 3│ 5.80e+2  5.81e+2  5.82e+2  5.83e+2  5.84e+2 │ 5.85e+2  5.86e+2  5.87e+2  5.88e+2  5.89e+2 │ 5.90e+2  5.91e+2  5.92e+2  5.93e+2  5.94e+2 │ 5.95e+2  5.96e+2  5.97e+2  5.98e+2  5.99e+2 ││
+    ││4 @ 2 │ 5.60e+2  5.60e+2  5.60e+2  5.64e+2  5.64e+2 │ 5.64e+2  5.68e+2  5.68e+2  5.68e+2  5.68e+2 │ 5.68e+2  5.72e+2  5.72e+2  5.72e+2  5.76e+2 │ 5.76e+2  5.76e+2  5.76e+2  5.76e+2  5.80e+2 ││
+    ││axis 3│ 5.80e+2  5.80e+2  5.84e+2  5.84e+2  5.84e+2 │ 5.84e+2  5.84e+2  5.88e+2  5.88e+2  5.88e+2 │ 5.92e+2  5.92e+2  5.92e+2  5.92e+2  5.92e+2 │ 5.96e+2  5.96e+2  5.96e+2  6.00e+2  6.00e+2 ││
││      │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     ││
-    ││      │ 6.60e+2  6.61e+2  6.62e+2  6.63e+2  6.64e+2 │ 6.65e+2  6.66e+2  6.67e+2  6.68e+2  6.69e+2 │ 6.70e+2  6.71e+2  6.72e+2  6.73e+2  6.74e+2 │ 6.75e+2  6.76e+2  6.77e+2  6.78e+2  6.79e+2 ││
-    ││      │ 6.80e+2  6.81e+2  6.82e+2  6.83e+2  6.84e+2 │ 6.85e+2  6.86e+2  6.87e+2  6.88e+2  6.89e+2 │ 6.90e+2  6.91e+2  6.92e+2  6.93e+2  6.94e+2 │ 6.95e+2  6.96e+2  6.97e+2  6.98e+2  6.99e+2 ││
+    ││      │ 6.60e+2  6.60e+2  6.64e+2  6.64e+2  6.64e+2 │ 6.64e+2  6.64e+2  6.68e+2  6.68e+2  6.68e+2 │ 6.72e+2  6.72e+2  6.72e+2  6.72e+2  6.72e+2 │ 6.76e+2  6.76e+2  6.76e+2  6.80e+2  6.80e+2 ││
+    ││      │ 6.80e+2  6.80e+2  6.80e+2  6.84e+2  6.84e+2 │ 6.84e+2  6.88e+2  6.88e+2  6.88e+2  6.88e+2 │ 6.88e+2  6.92e+2  6.92e+2  6.92e+2  6.96e+2 │ 6.96e+2  6.96e+2  6.96e+2  6.96e+2  7.00e+2 ││
│├─────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│
-    ││5 @ 2 │ 7.00e+2  7.01e+2  7.02e+2  7.03e+2  7.04e+2 │ 7.05e+2  7.06e+2  7.07e+2  7.08e+2  7.09e+2 │ 7.10e+2  7.11e+2  7.12e+2  7.13e+2  7.14e+2 │ 7.15e+2  7.16e+2  7.17e+2  7.18e+2  7.19e+2 ││
-    ││axis 3│ 7.20e+2  7.21e+2  7.22e+2  7.23e+2  7.24e+2 │ 7.25e+2  7.26e+2  7.27e+2  7.28e+2  7.29e+2 │ 7.30e+2  7.31e+2  7.32e+2  7.33e+2  7.34e+2 │ 7.35e+2  7.36e+2  7.37e+2  7.38e+2  7.39e+2 ││
+    ││5 @ 2 │ 7.00e+2  7.00e+2  7.04e+2  7.04e+2  7.04e+2 │ 7.04e+2  7.04e+2  7.08e+2  7.08e+2  7.08e+2 │ 7.12e+2  7.12e+2  7.12e+2  7.12e+2  7.12e+2 │ 7.16e+2  7.16e+2  7.16e+2  7.20e+2  7.20e+2 ││
+    ││axis 3│ 7.20e+2  7.20e+2  7.20e+2  7.24e+2  7.24e+2 │ 7.24e+2  7.28e+2  7.28e+2  7.28e+2  7.28e+2 │ 7.28e+2  7.32e+2  7.32e+2  7.32e+2  7.36e+2 │ 7.36e+2  7.36e+2  7.36e+2  7.36e+2  7.40e+2 ││
││      │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     ││
-    ││      │ 8.00e+2  8.01e+2  8.02e+2  8.03e+2  8.04e+2 │ 8.05e+2  8.06e+2  8.07e+2  8.08e+2  8.09e+2 │ 8.10e+2  8.11e+2  8.12e+2  8.13e+2  8.14e+2 │ 8.15e+2  8.16e+2  8.17e+2  8.18e+2  8.19e+2 ││
-    ││      │ 8.20e+2  8.21e+2  8.22e+2  8.23e+2  8.24e+2 │ 8.25e+2  8.26e+2  8.27e+2  8.28e+2  8.29e+2 │ 8.30e+2  8.31e+2  8.32e+2  8.33e+2  8.34e+2 │ 8.35e+2  8.36e+2  8.37e+2  8.38e+2  8.39e+2 ││
+    ││      │ 8.00e+2  8.00e+2  8.00e+2  8.04e+2  8.04e+2 │ 8.04e+2  8.08e+2  8.08e+2  8.08e+2  8.08e+2 │ 8.08e+2  8.12e+2  8.12e+2  8.12e+2  8.16e+2 │ 8.16e+2  8.16e+2  8.16e+2  8.16e+2  8.20e+2 ││
+    ││      │ 8.20e+2  8.20e+2  8.24e+2  8.24e+2  8.24e+2 │ 8.24e+2  8.24e+2  8.28e+2  8.28e+2  8.28e+2 │ 8.32e+2  8.32e+2  8.32e+2  8.32e+2  8.32e+2 │ 8.36e+2  8.36e+2  8.36e+2  8.40e+2  8.40e+2 ││
│└──────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┘│
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│┌──────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┐│
││1 @ 1 │0 @ 4                                        │1 @ 4                                        │2 @ 4                                        │3 @ 4                                        ││
││      │axis 5                                       │axis 5                                       │axis 5                                       │axis 5                                       ││
│├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│
-    ││0 @ 2 │ 8.40e+2  8.41e+2  8.42e+2  8.43e+2  8.44e+2 │ 8.45e+2  8.46e+2  8.47e+2  8.48e+2  8.49e+2 │ 8.50e+2  8.51e+2  8.52e+2  8.53e+2  8.54e+2 │ 8.55e+2  8.56e+2  8.57e+2  8.58e+2  8.59e+2 ││
-    ││axis 3│ 8.60e+2  8.61e+2  8.62e+2  8.63e+2  8.64e+2 │ 8.65e+2  8.66e+2  8.67e+2  8.68e+2  8.69e+2 │ 8.70e+2  8.71e+2  8.72e+2  8.73e+2  8.74e+2 │ 8.75e+2  8.76e+2  8.77e+2  8.78e+2  8.79e+2 ││
+    ││0 @ 2 │ 8.40e+2  8.40e+2  8.40e+2  8.44e+2  8.44e+2 │ 8.44e+2  8.48e+2  8.48e+2  8.48e+2  8.48e+2 │ 8.48e+2  8.52e+2  8.52e+2  8.52e+2  8.56e+2 │ 8.56e+2  8.56e+2  8.56e+2  8.56e+2  8.60e+2 ││
+    ││axis 3│ 8.60e+2  8.60e+2  8.64e+2  8.64e+2  8.64e+2 │ 8.64e+2  8.64e+2  8.68e+2  8.68e+2  8.68e+2 │ 8.72e+2  8.72e+2  8.72e+2  8.72e+2  8.72e+2 │ 8.76e+2  8.76e+2  8.76e+2  8.80e+2  8.80e+2 ││
││      │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     ││
-    ││      │ 9.40e+2  9.41e+2  9.42e+2  9.43e+2  9.44e+2 │ 9.45e+2  9.46e+2  9.47e+2  9.48e+2  9.49e+2 │ 9.50e+2  9.51e+2  9.52e+2  9.53e+2  9.54e+2 │ 9.55e+2  9.56e+2  9.57e+2  9.58e+2  9.59e+2 ││
-    ││      │ 9.60e+2  9.61e+2  9.62e+2  9.63e+2  9.64e+2 │ 9.65e+2  9.66e+2  9.67e+2  9.68e+2  9.69e+2 │ 9.70e+2  9.71e+2  9.72e+2  9.73e+2  9.74e+2 │ 9.75e+2  9.76e+2  9.77e+2  9.78e+2  9.79e+2 ││
+    ││      │ 9.40e+2  9.40e+2  9.44e+2  9.44e+2  9.44e+2 │ 9.44e+2  9.44e+2  9.48e+2  9.48e+2  9.48e+2 │ 9.52e+2  9.52e+2  9.52e+2  9.52e+2  9.52e+2 │ 9.56e+2  9.56e+2  9.56e+2  9.60e+2  9.60e+2 ││
+    ││      │ 9.60e+2  9.60e+2  9.60e+2  9.64e+2  9.64e+2 │ 9.64e+2  9.68e+2  9.68e+2  9.68e+2  9.68e+2 │ 9.68e+2  9.72e+2  9.72e+2  9.72e+2  9.76e+2 │ 9.76e+2  9.76e+2  9.76e+2  9.76e+2  9.80e+2 ││
│├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│
-    ││1 @ 2 │ 9.80e+2  9.81e+2  9.82e+2  9.83e+2  9.84e+2 │ 9.85e+2  9.86e+2  9.87e+2  9.88e+2  9.89e+2 │ 9.90e+2  9.91e+2  9.92e+2  9.93e+2  9.94e+2 │ 9.95e+2  9.96e+2  9.97e+2  9.98e+2  9.99e+2 ││
-    ││axis 3│ 1.00e+3  1.00e+3  1.00e+3  1.00e+3  1.00e+3 │ 1.00e+3  1.00e+3  1.00e+3  1.00e+3  1.00e+3 │ 1.01e+3  1.01e+3  1.01e+3  1.01e+3  1.01e+3 │ 1.01e+3  1.01e+3  1.01e+3  1.01e+3  1.01e+3 ││
+    ││1 @ 2 │ 9.80e+2  9.80e+2  9.84e+2  9.84e+2  9.84e+2 │ 9.84e+2  9.84e+2  9.88e+2  9.88e+2  9.88e+2 │ 9.92e+2  9.92e+2  9.92e+2  9.92e+2  9.92e+2 │ 9.96e+2  9.96e+2  9.96e+2  1.00e+3  1.00e+3 ││
+    ││axis 3│ 1.00e+3  1.00e+3  1.00e+3  1.00e+3  1.00e+3 │ 1.00e+3  1.00e+3  1.00e+3  1.00e+3  1.00e+3 │ 1.00e+3  1.01e+3  1.01e+3  1.01e+3  1.01e+3 │ 1.01e+3  1.01e+3  1.01e+3  1.01e+3  1.02e+3 ││
││      │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     ││
-    ││      │ 1.08e+3  1.08e+3  1.08e+3  1.08e+3  1.08e+3 │ 1.08e+3  1.08e+3  1.08e+3  1.08e+3  1.08e+3 │ 1.09e+3  1.09e+3  1.09e+3  1.09e+3  1.09e+3 │ 1.09e+3  1.09e+3  1.09e+3  1.09e+3  1.09e+3 ││
-    ││      │ 1.10e+3  1.10e+3  1.10e+3  1.10e+3  1.10e+3 │ 1.10e+3  1.10e+3  1.10e+3  1.10e+3  1.10e+3 │ 1.11e+3  1.11e+3  1.11e+3  1.11e+3  1.11e+3 │ 1.11e+3  1.11e+3  1.11e+3  1.11e+3  1.11e+3 ││
+    ││      │ 1.08e+3  1.08e+3  1.08e+3  1.08e+3  1.08e+3 │ 1.08e+3  1.08e+3  1.08e+3  1.08e+3  1.08e+3 │ 1.08e+3  1.08e+3  1.08e+3  1.09e+3  1.09e+3 │ 1.09e+3  1.09e+3  1.09e+3  1.09e+3  1.09e+3 ││
+    ││      │ 1.10e+3  1.10e+3  1.10e+3  1.10e+3  1.10e+3 │ 1.10e+3  1.10e+3  1.10e+3  1.10e+3  1.11e+3 │ 1.11e+3  1.11e+3  1.11e+3  1.11e+3  1.11e+3 │ 1.11e+3  1.12e+3  1.12e+3  1.12e+3  1.12e+3 ││
│├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│
││~~~~~ │ ...                                         │ ...                                         │ ...                                         │ ...                                         ││
││axis 3│                                             │                                             │                                             │                                             ││
│├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│
-    ││4 @ 2 │ 1.40e+3  1.40e+3  1.40e+3  1.40e+3  1.40e+3 │ 1.40e+3  1.40e+3  1.40e+3  1.40e+3  1.40e+3 │ 1.41e+3  1.41e+3  1.41e+3  1.41e+3  1.41e+3 │ 1.41e+3  1.41e+3  1.41e+3  1.41e+3  1.41e+3 ││
-    ││axis 3│ 1.42e+3  1.42e+3  1.42e+3  1.42e+3  1.42e+3 │ 1.42e+3  1.42e+3  1.42e+3  1.42e+3  1.42e+3 │ 1.43e+3  1.43e+3  1.43e+3  1.43e+3  1.43e+3 │ 1.43e+3  1.43e+3  1.43e+3  1.43e+3  1.43e+3 ││
+    ││4 @ 2 │ 1.40e+3  1.40e+3  1.40e+3  1.40e+3  1.40e+3 │ 1.40e+3  1.40e+3  1.40e+3  1.40e+3  1.40e+3 │ 1.40e+3  1.40e+3  1.40e+3  1.41e+3  1.41e+3 │ 1.41e+3  1.41e+3  1.41e+3  1.41e+3  1.41e+3 ││
+    ││axis 3│ 1.42e+3  1.42e+3  1.42e+3  1.42e+3  1.42e+3 │ 1.42e+3  1.42e+3  1.42e+3  1.42e+3  1.43e+3 │ 1.43e+3  1.43e+3  1.43e+3  1.43e+3  1.43e+3 │ 1.43e+3  1.44e+3  1.44e+3  1.44e+3  1.44e+3 ││
││      │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     ││
-    ││      │ 1.50e+3  1.50e+3  1.50e+3  1.50e+3  1.50e+3 │ 1.50e+3  1.50e+3  1.50e+3  1.50e+3  1.50e+3 │ 1.51e+3  1.51e+3  1.51e+3  1.51e+3  1.51e+3 │ 1.51e+3  1.51e+3  1.51e+3  1.51e+3  1.51e+3 ││
-    ││      │ 1.52e+3  1.52e+3  1.52e+3  1.52e+3  1.52e+3 │ 1.52e+3  1.52e+3  1.52e+3  1.52e+3  1.52e+3 │ 1.53e+3  1.53e+3  1.53e+3  1.53e+3  1.53e+3 │ 1.53e+3  1.53e+3  1.53e+3  1.53e+3  1.53e+3 ││
+    ││      │ 1.50e+3  1.50e+3  1.50e+3  1.50e+3  1.50e+3 │ 1.50e+3  1.50e+3  1.50e+3  1.50e+3  1.51e+3 │ 1.51e+3  1.51e+3  1.51e+3  1.51e+3  1.51e+3 │ 1.51e+3  1.52e+3  1.52e+3  1.52e+3  1.52e+3 ││
+    ││      │ 1.52e+3  1.52e+3  1.52e+3  1.52e+3  1.52e+3 │ 1.52e+3  1.52e+3  1.52e+3  1.52e+3  1.52e+3 │ 1.52e+3  1.52e+3  1.53e+3  1.53e+3  1.53e+3 │ 1.53e+3  1.53e+3  1.53e+3  1.53e+3  1.53e+3 ││
│├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│
-    ││5 @ 2 │ 1.54e+3  1.54e+3  1.54e+3  1.54e+3  1.54e+3 │ 1.54e+3  1.54e+3  1.54e+3  1.54e+3  1.54e+3 │ 1.55e+3  1.55e+3  1.55e+3  1.55e+3  1.55e+3 │ 1.55e+3  1.55e+3  1.55e+3  1.55e+3  1.55e+3 ││
-    ││axis 3│ 1.56e+3  1.56e+3  1.56e+3  1.56e+3  1.56e+3 │ 1.56e+3  1.56e+3  1.56e+3  1.56e+3  1.56e+3 │ 1.57e+3  1.57e+3  1.57e+3  1.57e+3  1.57e+3 │ 1.57e+3  1.57e+3  1.57e+3  1.57e+3  1.57e+3 ││
+    ││5 @ 2 │ 1.53e+3  1.54e+3  1.54e+3  1.54e+3  1.54e+3 │ 1.54e+3  1.54e+3  1.54e+3  1.55e+3  1.55e+3 │ 1.55e+3  1.55e+3  1.55e+3  1.55e+3  1.55e+3 │ 1.55e+3  1.55e+3  1.56e+3  1.56e+3  1.56e+3 ││
+    ││axis 3│ 1.56e+3  1.56e+3  1.56e+3  1.56e+3  1.56e+3 │ 1.56e+3  1.56e+3  1.56e+3  1.56e+3  1.56e+3 │ 1.56e+3  1.56e+3  1.56e+3  1.57e+3  1.57e+3 │ 1.57e+3  1.57e+3  1.57e+3  1.57e+3  1.57e+3 ││
││      │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     ││
-    ││      │ 1.64e+3  1.64e+3  1.64e+3  1.64e+3  1.64e+3 │ 1.64e+3  1.64e+3  1.64e+3  1.64e+3  1.64e+3 │ 1.65e+3  1.65e+3  1.65e+3  1.65e+3  1.65e+3 │ 1.65e+3  1.65e+3  1.65e+3  1.65e+3  1.65e+3 ││
-    ││      │ 1.66e+3  1.66e+3  1.66e+3  1.66e+3  1.66e+3 │ 1.66e+3  1.66e+3  1.66e+3  1.66e+3  1.66e+3 │ 1.67e+3  1.67e+3  1.67e+3  1.67e+3  1.67e+3 │ 1.67e+3  1.67e+3  1.67e+3  1.67e+3  1.67e+3 ││
+    ││      │ 1.64e+3  1.64e+3  1.64e+3  1.64e+3  1.64e+3 │ 1.64e+3  1.64e+3  1.64e+3  1.64e+3  1.64e+3 │ 1.64e+3  1.64e+3  1.64e+3  1.65e+3  1.65e+3 │ 1.65e+3  1.65e+3  1.65e+3  1.65e+3  1.65e+3 ││
+    ││      │ 1.66e+3  1.66e+3  1.66e+3  1.66e+3  1.66e+3 │ 1.66e+3  1.66e+3  1.66e+3  1.66e+3  1.67e+3 │ 1.67e+3  1.67e+3  1.67e+3  1.67e+3  1.67e+3 │ 1.67e+3  1.68e+3  1.68e+3  1.68e+3  1.68e+3 ││
│└──────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┘│
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│┌──────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┐│
││2 @ 1 │0 @ 4                                        │1 @ 4                                        │2 @ 4                                        │3 @ 4                                        ││
││      │axis 5                                       │axis 5                                       │axis 5                                       │axis 5                                       ││
│├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│
-    ││0 @ 2 │ 1.68e+3  1.68e+3  1.68e+3  1.68e+3  1.68e+3 │ 1.68e+3  1.68e+3  1.68e+3  1.68e+3  1.68e+3 │ 1.69e+3  1.69e+3  1.69e+3  1.69e+3  1.69e+3 │ 1.69e+3  1.69e+3  1.69e+3  1.69e+3  1.69e+3 ││
-    ││axis 3│ 1.70e+3  1.70e+3  1.70e+3  1.70e+3  1.70e+3 │ 1.70e+3  1.70e+3  1.70e+3  1.70e+3  1.70e+3 │ 1.71e+3  1.71e+3  1.71e+3  1.71e+3  1.71e+3 │ 1.71e+3  1.71e+3  1.71e+3  1.71e+3  1.71e+3 ││
+    ││0 @ 2 │ 1.68e+3  1.68e+3  1.68e+3  1.68e+3  1.68e+3 │ 1.68e+3  1.68e+3  1.68e+3  1.68e+3  1.68e+3 │ 1.68e+3  1.68e+3  1.69e+3  1.69e+3  1.69e+3 │ 1.69e+3  1.69e+3  1.69e+3  1.69e+3  1.69e+3 ││
+    ││axis 3│ 1.69e+3  1.70e+3  1.70e+3  1.70e+3  1.70e+3 │ 1.70e+3  1.70e+3  1.70e+3  1.71e+3  1.71e+3 │ 1.71e+3  1.71e+3  1.71e+3  1.71e+3  1.71e+3 │ 1.71e+3  1.71e+3  1.72e+3  1.72e+3  1.72e+3 ││
││      │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     ││
-    ││      │ 1.78e+3  1.78e+3  1.78e+3  1.78e+3  1.78e+3 │ 1.78e+3  1.78e+3  1.78e+3  1.78e+3  1.78e+3 │ 1.79e+3  1.79e+3  1.79e+3  1.79e+3  1.79e+3 │ 1.79e+3  1.79e+3  1.79e+3  1.79e+3  1.79e+3 ││
-    ││      │ 1.80e+3  1.80e+3  1.80e+3  1.80e+3  1.80e+3 │ 1.80e+3  1.80e+3  1.80e+3  1.80e+3  1.80e+3 │ 1.81e+3  1.81e+3  1.81e+3  1.81e+3  1.81e+3 │ 1.81e+3  1.81e+3  1.81e+3  1.81e+3  1.81e+3 ││
+    ││      │ 1.77e+3  1.78e+3  1.78e+3  1.78e+3  1.78e+3 │ 1.78e+3  1.78e+3  1.78e+3  1.79e+3  1.79e+3 │ 1.79e+3  1.79e+3  1.79e+3  1.79e+3  1.79e+3 │ 1.79e+3  1.79e+3  1.80e+3  1.80e+3  1.80e+3 ││
+    ││      │ 1.80e+3  1.80e+3  1.80e+3  1.80e+3  1.80e+3 │ 1.80e+3  1.80e+3  1.80e+3  1.80e+3  1.80e+3 │ 1.80e+3  1.80e+3  1.80e+3  1.81e+3  1.81e+3 │ 1.81e+3  1.81e+3  1.81e+3  1.81e+3  1.81e+3 ││
│├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│
-    ││1 @ 2 │ 1.82e+3  1.82e+3  1.82e+3  1.82e+3  1.82e+3 │ 1.82e+3  1.82e+3  1.82e+3  1.82e+3  1.82e+3 │ 1.83e+3  1.83e+3  1.83e+3  1.83e+3  1.83e+3 │ 1.83e+3  1.83e+3  1.83e+3  1.83e+3  1.83e+3 ││
-    ││axis 3│ 1.84e+3  1.84e+3  1.84e+3  1.84e+3  1.84e+3 │ 1.84e+3  1.84e+3  1.84e+3  1.84e+3  1.84e+3 │ 1.85e+3  1.85e+3  1.85e+3  1.85e+3  1.85e+3 │ 1.85e+3  1.85e+3  1.85e+3  1.85e+3  1.85e+3 ││
+    ││1 @ 2 │ 1.82e+3  1.82e+3  1.82e+3  1.82e+3  1.82e+3 │ 1.82e+3  1.82e+3  1.82e+3  1.82e+3  1.83e+3 │ 1.83e+3  1.83e+3  1.83e+3  1.83e+3  1.83e+3 │ 1.83e+3  1.84e+3  1.84e+3  1.84e+3  1.84e+3 ││
+    ││axis 3│ 1.84e+3  1.84e+3  1.84e+3  1.84e+3  1.84e+3 │ 1.84e+3  1.84e+3  1.84e+3  1.84e+3  1.84e+3 │ 1.84e+3  1.84e+3  1.85e+3  1.85e+3  1.85e+3 │ 1.85e+3  1.85e+3  1.85e+3  1.85e+3  1.85e+3 ││
││      │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     ││
-    ││      │ 1.92e+3  1.92e+3  1.92e+3  1.92e+3  1.92e+3 │ 1.92e+3  1.92e+3  1.92e+3  1.92e+3  1.92e+3 │ 1.93e+3  1.93e+3  1.93e+3  1.93e+3  1.93e+3 │ 1.93e+3  1.93e+3  1.93e+3  1.93e+3  1.93e+3 ││
-    ││      │ 1.94e+3  1.94e+3  1.94e+3  1.94e+3  1.94e+3 │ 1.94e+3  1.94e+3  1.94e+3  1.94e+3  1.94e+3 │ 1.95e+3  1.95e+3  1.95e+3  1.95e+3  1.95e+3 │ 1.95e+3  1.95e+3  1.95e+3  1.95e+3  1.95e+3 ││
+    ││      │ 1.92e+3  1.92e+3  1.92e+3  1.92e+3  1.92e+3 │ 1.92e+3  1.92e+3  1.92e+3  1.92e+3  1.92e+3 │ 1.92e+3  1.92e+3  1.93e+3  1.93e+3  1.93e+3 │ 1.93e+3  1.93e+3  1.93e+3  1.93e+3  1.93e+3 ││
+    ││      │ 1.93e+3  1.94e+3  1.94e+3  1.94e+3  1.94e+3 │ 1.94e+3  1.94e+3  1.94e+3  1.95e+3  1.95e+3 │ 1.95e+3  1.95e+3  1.95e+3  1.95e+3  1.95e+3 │ 1.95e+3  1.95e+3  1.96e+3  1.96e+3  1.96e+3 ││
│├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│
││~~~~~ │ ...                                         │ ...                                         │ ...                                         │ ...                                         ││
││axis 3│                                             │                                             │                                             │                                             ││
│├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│
-    ││4 @ 2 │ 2.24e+3  2.24e+3  2.24e+3  2.24e+3  2.24e+3 │ 2.24e+3  2.24e+3  2.24e+3  2.24e+3  2.24e+3 │ 2.25e+3  2.25e+3  2.25e+3  2.25e+3  2.25e+3 │ 2.25e+3  2.25e+3  2.25e+3  2.25e+3  2.25e+3 ││
-    ││axis 3│ 2.26e+3  2.26e+3  2.26e+3  2.26e+3  2.26e+3 │ 2.26e+3  2.26e+3  2.26e+3  2.26e+3  2.26e+3 │ 2.27e+3  2.27e+3  2.27e+3  2.27e+3  2.27e+3 │ 2.27e+3  2.27e+3  2.27e+3  2.27e+3  2.27e+3 ││
+    ││4 @ 2 │ 2.24e+3  2.24e+3  2.24e+3  2.24e+3  2.24e+3 │ 2.24e+3  2.24e+3  2.24e+3  2.24e+3  2.25e+3 │ 2.25e+3  2.25e+3  2.25e+3  2.25e+3  2.25e+3 │ 2.25e+3  2.25e+3  2.25e+3  2.25e+3  2.25e+3 ││
+    ││axis 3│ 2.25e+3  2.25e+3  2.25e+3  2.25e+3  2.27e+3 │ 2.27e+3  2.27e+3  2.27e+3  2.27e+3  2.27e+3 │ 2.27e+3  2.27e+3  2.27e+3  2.27e+3  2.27e+3 │ 2.27e+3  2.27e+3  2.27e+3  2.27e+3  2.27e+3 ││
││      │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     ││
-    ││      │ 2.34e+3  2.34e+3  2.34e+3  2.34e+3  2.34e+3 │ 2.34e+3  2.34e+3  2.34e+3  2.34e+3  2.34e+3 │ 2.35e+3  2.35e+3  2.35e+3  2.35e+3  2.35e+3 │ 2.35e+3  2.35e+3  2.35e+3  2.35e+3  2.35e+3 ││
-    ││      │ 2.36e+3  2.36e+3  2.36e+3  2.36e+3  2.36e+3 │ 2.36e+3  2.36e+3  2.36e+3  2.36e+3  2.36e+3 │ 2.37e+3  2.37e+3  2.37e+3  2.37e+3  2.37e+3 │ 2.37e+3  2.37e+3  2.37e+3  2.37e+3  2.37e+3 ││
+    ││      │ 2.33e+3  2.33e+3  2.33e+3  2.33e+3  2.33e+3 │ 2.35e+3  2.35e+3  2.35e+3  2.35e+3  2.35e+3 │ 2.35e+3  2.35e+3  2.35e+3  2.35e+3  2.35e+3 │ 2.35e+3  2.35e+3  2.35e+3  2.35e+3  2.35e+3 ││
+    ││      │ 2.36e+3  2.36e+3  2.36e+3  2.36e+3  2.36e+3 │ 2.36e+3  2.36e+3  2.36e+3  2.36e+3  2.36e+3 │ 2.36e+3  2.36e+3  2.36e+3  2.36e+3  2.36e+3 │ 2.36e+3  2.36e+3  2.38e+3  2.38e+3  2.38e+3 ││
│├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│
-    ││5 @ 2 │ 2.38e+3  2.38e+3  2.38e+3  2.38e+3  2.38e+3 │ 2.38e+3  2.38e+3  2.38e+3  2.38e+3  2.38e+3 │ 2.39e+3  2.39e+3  2.39e+3  2.39e+3  2.39e+3 │ 2.39e+3  2.39e+3  2.39e+3  2.39e+3  2.39e+3 ││
-    ││axis 3│ 2.40e+3  2.40e+3  2.40e+3  2.40e+3  2.40e+3 │ 2.40e+3  2.40e+3  2.40e+3  2.40e+3  2.40e+3 │ 2.41e+3  2.41e+3  2.41e+3  2.41e+3  2.41e+3 │ 2.41e+3  2.41e+3  2.41e+3  2.41e+3  2.41e+3 ││
+    ││5 @ 2 │ 2.38e+3  2.38e+3  2.38e+3  2.38e+3  2.38e+3 │ 2.38e+3  2.38e+3  2.38e+3  2.38e+3  2.38e+3 │ 2.38e+3  2.38e+3  2.40e+3  2.40e+3  2.40e+3 │ 2.40e+3  2.40e+3  2.40e+3  2.40e+3  2.40e+3 ││
+    ││axis 3│ 2.40e+3  2.40e+3  2.40e+3  2.40e+3  2.40e+3 │ 2.40e+3  2.40e+3  2.40e+3  2.40e+3  2.41e+3 │ 2.41e+3  2.41e+3  2.41e+3  2.41e+3  2.41e+3 │ 2.41e+3  2.41e+3  2.41e+3  2.41e+3  2.41e+3 ││
││      │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     │ ...      ...      ...      ...      ...     ││
-    ││      │ 2.48e+3  2.48e+3  2.48e+3  2.48e+3  2.48e+3 │ 2.48e+3  2.48e+3  2.48e+3  2.48e+3  2.48e+3 │ 2.49e+3  2.49e+3  2.49e+3  2.49e+3  2.49e+3 │ 2.49e+3  2.49e+3  2.49e+3  2.49e+3  2.49e+3 ││
-    ││      │ 2.50e+3  2.50e+3  2.50e+3  2.50e+3  2.50e+3 │ 2.50e+3  2.50e+3  2.50e+3  2.50e+3  2.50e+3 │ 2.51e+3  2.51e+3  2.51e+3  2.51e+3  2.51e+3 │ 2.51e+3  2.51e+3  2.51e+3  2.51e+3  2.51e+3 ││
+    ││      │ 2.48e+3  2.48e+3  2.48e+3  2.48e+3  2.48e+3 │ 2.48e+3  2.48e+3  2.48e+3  2.49e+3  2.49e+3 │ 2.49e+3  2.49e+3  2.49e+3  2.49e+3  2.49e+3 │ 2.49e+3  2.49e+3  2.49e+3  2.49e+3  2.49e+3 ││
+    ││      │ 2.49e+3  2.49e+3  2.49e+3  2.49e+3  2.49e+3 │ 2.51e+3  2.51e+3  2.51e+3  2.51e+3  2.51e+3 │ 2.51e+3  2.51e+3  2.51e+3  2.51e+3  2.51e+3 │ 2.51e+3  2.51e+3  2.51e+3  2.51e+3  2.51e+3 ││
│└──────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┘│
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|}];
@@ -172,50 +172,50 @@ let%expect_test "einsum1 permute axes" =
││0 @ 1 │0 @ 4                                    │1 @ 4                                    ││
││      │axis 5                                   │axis 5                                   ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││0 @ 2 │ 0.00     1.40e+2  ...  5.60e+2  7.00e+2 │ 2.52e+3  2.66e+3  ...  3.08e+3  3.22e+3 ││
-    ││axis 3│ 8.40e+2  9.80e+2  ...  1.40e+3  1.54e+3 │ 3.36e+3  3.50e+3  ...  3.92e+3  4.06e+3 ││
-    ││      │ 1.68e+3  1.82e+3  ...  2.24e+3  2.38e+3 │ 4.20e+3  4.34e+3  ...  4.76e+3  4.90e+3 ││
+    ││0 @ 2 │ 0.00     1.40e+2  ...  5.60e+2  7.00e+2 │ 2.52e+3  2.65e+3  ...  3.07e+3  3.21e+3 ││
+    ││axis 3│ 8.40e+2  9.80e+2  ...  1.40e+3  1.53e+3 │ 3.36e+3  3.50e+3  ...  3.92e+3  4.06e+3 ││
+    ││      │ 1.68e+3  1.82e+3  ...  2.24e+3  2.38e+3 │ 4.19e+3  4.35e+3  ...  4.76e+3  4.89e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││1 @ 2 │ 1.00     1.41e+2  ...  5.61e+2  7.01e+2 │ 2.52e+3  2.66e+3  ...  3.08e+3  3.22e+3 ││
-    ││axis 3│ 8.41e+2  9.81e+2  ...  1.40e+3  1.54e+3 │ 3.36e+3  3.50e+3  ...  3.92e+3  4.06e+3 ││
-    ││      │ 1.68e+3  1.82e+3  ...  2.24e+3  2.38e+3 │ 4.20e+3  4.34e+3  ...  4.76e+3  4.90e+3 ││
+    ││1 @ 2 │ 1.00     1.41e+2  ...  5.60e+2  7.00e+2 │ 2.52e+3  2.65e+3  ...  3.08e+3  3.21e+3 ││
+    ││axis 3│ 8.40e+2  9.80e+2  ...  1.40e+3  1.54e+3 │ 3.36e+3  3.50e+3  ...  3.92e+3  4.06e+3 ││
+    ││      │ 1.68e+3  1.82e+3  ...  2.24e+3  2.38e+3 │ 4.19e+3  4.35e+3  ...  4.76e+3  4.89e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││2 @ 2 │ 2.00     1.42e+2  ...  5.62e+2  7.02e+2 │ 2.52e+3  2.66e+3  ...  3.08e+3  3.22e+3 ││
-    ││axis 3│ 8.42e+2  9.82e+2  ...  1.40e+3  1.54e+3 │ 3.36e+3  3.50e+3  ...  3.92e+3  4.06e+3 ││
-    ││      │ 1.68e+3  1.82e+3  ...  2.24e+3  2.38e+3 │ 4.20e+3  4.34e+3  ...  4.76e+3  4.90e+3 ││
+    ││2 @ 2 │ 2.00     1.42e+2  ...  5.60e+2  7.04e+2 │ 2.52e+3  2.65e+3  ...  3.08e+3  3.21e+3 ││
+    ││axis 3│ 8.40e+2  9.84e+2  ...  1.40e+3  1.54e+3 │ 3.36e+3  3.50e+3  ...  3.92e+3  4.06e+3 ││
+    ││      │ 1.68e+3  1.82e+3  ...  2.24e+3  2.38e+3 │ 4.19e+3  4.35e+3  ...  4.76e+3  4.89e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││3 @ 2 │ 3.00     1.43e+2  ...  5.63e+2  7.03e+2 │ 2.52e+3  2.66e+3  ...  3.08e+3  3.22e+3 ││
-    ││axis 3│ 8.43e+2  9.83e+2  ...  1.40e+3  1.54e+3 │ 3.36e+3  3.50e+3  ...  3.92e+3  4.06e+3 ││
-    ││      │ 1.68e+3  1.82e+3  ...  2.24e+3  2.38e+3 │ 4.20e+3  4.34e+3  ...  4.76e+3  4.90e+3 ││
+    ││3 @ 2 │ 3.00     1.43e+2  ...  5.64e+2  7.04e+2 │ 2.52e+3  2.65e+3  ...  3.08e+3  3.21e+3 ││
+    ││axis 3│ 8.44e+2  9.84e+2  ...  1.40e+3  1.54e+3 │ 3.36e+3  3.50e+3  ...  3.92e+3  4.06e+3 ││
+    ││      │ 1.68e+3  1.82e+3  ...  2.24e+3  2.38e+3 │ 4.19e+3  4.35e+3  ...  4.76e+3  4.89e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││4 @ 2 │ 4.00     1.44e+2  ...  5.64e+2  7.04e+2 │ 2.52e+3  2.66e+3  ...  3.08e+3  3.22e+3 ││
+    ││4 @ 2 │ 4.00     1.44e+2  ...  5.64e+2  7.04e+2 │ 2.52e+3  2.65e+3  ...  3.08e+3  3.23e+3 ││
││axis 3│ 8.44e+2  9.84e+2  ...  1.40e+3  1.54e+3 │ 3.36e+3  3.50e+3  ...  3.92e+3  4.06e+3 ││
-    ││      │ 1.68e+3  1.82e+3  ...  2.24e+3  2.38e+3 │ 4.20e+3  4.34e+3  ...  4.76e+3  4.90e+3 ││
+    ││      │ 1.68e+3  1.82e+3  ...  2.24e+3  2.38e+3 │ 4.19e+3  4.35e+3  ...  4.76e+3  4.89e+3 ││
│└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│
├────────────────────────────────────────────────────────────────────────────────────────────┤
│┌──────┬─────────────────────────────────────────┬─────────────────────────────────────────┐│
││1 @ 1 │0 @ 4                                    │1 @ 4                                    ││
││      │axis 5                                   │axis 5                                   ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││0 @ 2 │ 2.00e+1  1.60e+2  ...  5.80e+2  7.20e+2 │ 2.54e+3  2.68e+3  ...  3.10e+3  3.24e+3 ││
-    ││axis 3│ 8.60e+2  1.00e+3  ...  1.42e+3  1.56e+3 │ 3.38e+3  3.52e+3  ...  3.94e+3  4.08e+3 ││
-    ││      │ 1.70e+3  1.84e+3  ...  2.26e+3  2.40e+3 │ 4.22e+3  4.36e+3  ...  4.78e+3  4.92e+3 ││
+    ││0 @ 2 │ 2.00e+1  1.60e+2  ...  5.80e+2  7.20e+2 │ 2.54e+3  2.68e+3  ...  3.10e+3  3.23e+3 ││
+    ││axis 3│ 8.60e+2  1.00e+3  ...  1.42e+3  1.56e+3 │ 3.37e+3  3.52e+3  ...  3.93e+3  4.08e+3 ││
+    ││      │ 1.69e+3  1.84e+3  ...  2.25e+3  2.40e+3 │ 4.22e+3  4.35e+3  ...  4.76e+3  4.92e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││1 @ 2 │ 2.10e+1  1.61e+2  ...  5.81e+2  7.21e+2 │ 2.54e+3  2.68e+3  ...  3.10e+3  3.24e+3 ││
-    ││axis 3│ 8.61e+2  1.00e+3  ...  1.42e+3  1.56e+3 │ 3.38e+3  3.52e+3  ...  3.94e+3  4.08e+3 ││
-    ││      │ 1.70e+3  1.84e+3  ...  2.26e+3  2.40e+3 │ 4.22e+3  4.36e+3  ...  4.78e+3  4.92e+3 ││
+    ││1 @ 2 │ 2.10e+1  1.61e+2  ...  5.80e+2  7.20e+2 │ 2.54e+3  2.68e+3  ...  3.10e+3  3.24e+3 ││
+    ││axis 3│ 8.60e+2  1.00e+3  ...  1.42e+3  1.56e+3 │ 3.37e+3  3.52e+3  ...  3.93e+3  4.08e+3 ││
+    ││      │ 1.70e+3  1.84e+3  ...  2.25e+3  2.40e+3 │ 4.22e+3  4.35e+3  ...  4.76e+3  4.92e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││2 @ 2 │ 2.20e+1  1.62e+2  ...  5.82e+2  7.22e+2 │ 2.54e+3  2.68e+3  ...  3.10e+3  3.24e+3 ││
-    ││axis 3│ 8.62e+2  1.00e+3  ...  1.42e+3  1.56e+3 │ 3.38e+3  3.52e+3  ...  3.94e+3  4.08e+3 ││
-    ││      │ 1.70e+3  1.84e+3  ...  2.26e+3  2.40e+3 │ 4.22e+3  4.36e+3  ...  4.78e+3  4.92e+3 ││
+    ││2 @ 2 │ 2.20e+1  1.62e+2  ...  5.84e+2  7.20e+2 │ 2.54e+3  2.68e+3  ...  3.10e+3  3.24e+3 ││
+    ││axis 3│ 8.64e+2  1.00e+3  ...  1.42e+3  1.56e+3 │ 3.37e+3  3.52e+3  ...  3.93e+3  4.08e+3 ││
+    ││      │ 1.70e+3  1.84e+3  ...  2.25e+3  2.40e+3 │ 4.22e+3  4.35e+3  ...  4.76e+3  4.92e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││3 @ 2 │ 2.30e+1  1.63e+2  ...  5.83e+2  7.23e+2 │ 2.54e+3  2.68e+3  ...  3.10e+3  3.24e+3 ││
-    ││axis 3│ 8.63e+2  1.00e+3  ...  1.42e+3  1.56e+3 │ 3.38e+3  3.52e+3  ...  3.94e+3  4.08e+3 ││
-    ││      │ 1.70e+3  1.84e+3  ...  2.26e+3  2.40e+3 │ 4.22e+3  4.36e+3  ...  4.78e+3  4.92e+3 ││
+    ││3 @ 2 │ 2.30e+1  1.63e+2  ...  5.84e+2  7.24e+2 │ 2.54e+3  2.68e+3  ...  3.10e+3  3.24e+3 ││
+    ││axis 3│ 8.64e+2  1.00e+3  ...  1.42e+3  1.56e+3 │ 3.37e+3  3.52e+3  ...  3.93e+3  4.08e+3 ││
+    ││      │ 1.70e+3  1.84e+3  ...  2.25e+3  2.40e+3 │ 4.22e+3  4.35e+3  ...  4.76e+3  4.92e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││4 @ 2 │ 2.40e+1  1.64e+2  ...  5.84e+2  7.24e+2 │ 2.54e+3  2.68e+3  ...  3.10e+3  3.24e+3 ││
-    ││axis 3│ 8.64e+2  1.00e+3  ...  1.42e+3  1.56e+3 │ 3.38e+3  3.52e+3  ...  3.94e+3  4.08e+3 ││
-    ││      │ 1.70e+3  1.84e+3  ...  2.26e+3  2.40e+3 │ 4.22e+3  4.36e+3  ...  4.78e+3  4.92e+3 ││
+    ││axis 3│ 8.64e+2  1.00e+3  ...  1.42e+3  1.56e+3 │ 3.39e+3  3.52e+3  ...  3.93e+3  4.08e+3 ││
+    ││      │ 1.70e+3  1.84e+3  ...  2.27e+3  2.40e+3 │ 4.22e+3  4.35e+3  ...  4.80e+3  4.92e+3 ││
│└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│
├────────────────────────────────────────────────────────────────────────────────────────────┤
│ ...                                                                                        │
@@ -224,25 +224,25 @@ let%expect_test "einsum1 permute axes" =
││5 @ 1 │0 @ 4                                    │1 @ 4                                    ││
││      │axis 5                                   │axis 5                                   ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││0 @ 2 │ 1.00e+2  2.40e+2  ...  6.60e+2  8.00e+2 │ 2.62e+3  2.76e+3  ...  3.18e+3  3.32e+3 ││
-    ││axis 3│ 9.40e+2  1.08e+3  ...  1.50e+3  1.64e+3 │ 3.46e+3  3.60e+3  ...  4.02e+3  4.16e+3 ││
...TRUNCATED BY DUNE...
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││4 @ 2 │ 5.60e+2  5.80e+2  ...  6.60e+2  6.80e+2 │ 5.65e+2  5.85e+2  ...  6.65e+2  6.85e+2 │ 5.70e+2  5.90e+2  ...  6.70e+2  6.90e+2 │ 5.75e+2  5.95e+2  ...  6.75e+2  6.95e+2 ││
-    ││axis 3│ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.41e+3  1.43e+3  ...  1.51e+3  1.53e+3 │ 1.41e+3  1.43e+3  ...  1.51e+3  1.53e+3 ││
-    ││      │ 2.24e+3  2.26e+3  ...  2.34e+3  2.36e+3 │ 2.24e+3  2.26e+3  ...  2.34e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.37e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.37e+3 ││
+    ││4 @ 2 │ 5.60e+2  5.80e+2  ...  6.60e+2  6.80e+2 │ 5.64e+2  5.84e+2  ...  6.64e+2  6.84e+2 │ 5.68e+2  5.92e+2  ...  6.72e+2  6.88e+2 │ 5.76e+2  5.96e+2  ...  6.76e+2  6.96e+2 ││
+    ││axis 3│ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.40e+3  1.43e+3  ...  1.51e+3  1.52e+3 │ 1.41e+3  1.43e+3  ...  1.51e+3  1.53e+3 ││
+    ││      │ 2.24e+3  2.25e+3  ...  2.33e+3  2.36e+3 │ 2.24e+3  2.27e+3  ...  2.35e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.36e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││5 @ 2 │ 7.00e+2  7.20e+2  ...  8.00e+2  8.20e+2 │ 7.05e+2  7.25e+2  ...  8.05e+2  8.25e+2 │ 7.10e+2  7.30e+2  ...  8.10e+2  8.30e+2 │ 7.15e+2  7.35e+2  ...  8.15e+2  8.35e+2 ││
-    ││axis 3│ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.55e+3  1.57e+3  ...  1.65e+3  1.67e+3 │ 1.55e+3  1.57e+3  ...  1.65e+3  1.67e+3 ││
-    ││      │ 2.38e+3  2.40e+3  ...  2.48e+3  2.50e+3 │ 2.38e+3  2.40e+3  ...  2.48e+3  2.50e+3 │ 2.39e+3  2.41e+3  ...  2.49e+3  2.51e+3 │ 2.39e+3  2.41e+3  ...  2.49e+3  2.51e+3 ││
+    ││5 @ 2 │ 7.00e+2  7.20e+2  ...  8.00e+2  8.20e+2 │ 7.04e+2  7.24e+2  ...  8.04e+2  8.24e+2 │ 7.12e+2  7.28e+2  ...  8.08e+2  8.32e+2 │ 7.16e+2  7.36e+2  ...  8.16e+2  8.36e+2 ││
+    ││axis 3│ 1.53e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.55e+3  1.56e+3  ...  1.64e+3  1.67e+3 │ 1.55e+3  1.57e+3  ...  1.65e+3  1.67e+3 ││
+    ││      │ 2.38e+3  2.40e+3  ...  2.48e+3  2.49e+3 │ 2.38e+3  2.40e+3  ...  2.48e+3  2.51e+3 │ 2.38e+3  2.41e+3  ...  2.49e+3  2.51e+3 │ 2.40e+3  2.41e+3  ...  2.49e+3  2.51e+3 ││
│└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│┌──────┬─────────────────────────────────────────┬─────────────────────────────────────────┬─────────────────────────────────────────┬─────────────────────────────────────────┐│
@@ -905,23 +905,23 @@ let%expect_test "einsum1 broadcast or sum out prefix axes" =
││      │axis 5                                   │axis 5                                   │axis 5                                   │axis 5                                   ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││0 @ 2 │ 1.00     2.10e+1  ...  1.01e+2  1.21e+2 │ 6.00     2.60e+1  ...  1.06e+2  1.26e+2 │ 1.10e+1  3.10e+1  ...  1.11e+2  1.31e+2 │ 1.60e+1  3.60e+1  ...  1.16e+2  1.36e+2 ││
-    ││axis 3│ 8.41e+2  8.61e+2  ...  9.41e+2  9.61e+2 │ 8.46e+2  8.66e+2  ...  9.46e+2  9.66e+2 │ 8.51e+2  8.71e+2  ...  9.51e+2  9.71e+2 │ 8.56e+2  8.76e+2  ...  9.56e+2  9.76e+2 ││
-    ││      │ 1.68e+3  1.70e+3  ...  1.78e+3  1.80e+3 │ 1.68e+3  1.70e+3  ...  1.78e+3  1.80e+3 │ 1.69e+3  1.71e+3  ...  1.79e+3  1.81e+3 │ 1.69e+3  1.71e+3  ...  1.79e+3  1.81e+3 ││
+    ││axis 3│ 8.40e+2  8.60e+2  ...  9.40e+2  9.60e+2 │ 8.48e+2  8.64e+2  ...  9.44e+2  9.68e+2 │ 8.52e+2  8.72e+2  ...  9.52e+2  9.72e+2 │ 8.56e+2  8.76e+2  ...  9.56e+2  9.76e+2 ││
+    ││      │ 1.68e+3  1.70e+3  ...  1.78e+3  1.80e+3 │ 1.68e+3  1.70e+3  ...  1.78e+3  1.80e+3 │ 1.68e+3  1.71e+3  ...  1.79e+3  1.80e+3 │ 1.69e+3  1.71e+3  ...  1.79e+3  1.81e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││1 @ 2 │ 1.41e+2  1.61e+2  ...  2.41e+2  2.61e+2 │ 1.46e+2  1.66e+2  ...  2.46e+2  2.66e+2 │ 1.51e+2  1.71e+2  ...  2.51e+2  2.71e+2 │ 1.56e+2  1.76e+2  ...  2.56e+2  2.76e+2 ││
-    ││axis 3│ 9.81e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.86e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.91e+2  1.01e+3  ...  1.09e+3  1.11e+3 │ 9.96e+2  1.01e+3  ...  1.09e+3  1.11e+3 ││
-    ││      │ 1.82e+3  1.84e+3  ...  1.92e+3  1.94e+3 │ 1.82e+3  1.84e+3  ...  1.92e+3  1.94e+3 │ 1.83e+3  1.85e+3  ...  1.93e+3  1.95e+3 │ 1.83e+3  1.85e+3  ...  1.93e+3  1.95e+3 ││
+    ││1 @ 2 │ 1.41e+2  1.61e+2  ...  2.41e+2  2.60e+2 │ 1.46e+2  1.66e+2  ...  2.46e+2  2.66e+2 │ 1.51e+2  1.71e+2  ...  2.51e+2  2.72e+2 │ 1.56e+2  1.76e+2  ...  2.56e+2  2.76e+2 ││
+    ││axis 3│ 9.80e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.84e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.92e+2  1.01e+3  ...  1.08e+3  1.11e+3 │ 9.96e+2  1.01e+3  ...  1.09e+3  1.12e+3 ││
+    ││      │ 1.82e+3  1.84e+3  ...  1.92e+3  1.94e+3 │ 1.82e+3  1.84e+3  ...  1.92e+3  1.94e+3 │ 1.83e+3  1.84e+3  ...  1.92e+3  1.95e+3 │ 1.84e+3  1.85e+3  ...  1.93e+3  1.95e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││~~~~~ │ ...                                     │ ...                                     │ ...                                     │ ...                                     ││
││axis 3│                                         │                                         │                                         │                                         ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││4 @ 2 │ 5.61e+2  5.81e+2  ...  6.61e+2  6.81e+2 │ 5.66e+2  5.86e+2  ...  6.66e+2  6.86e+2 │ 5.71e+2  5.91e+2  ...  6.71e+2  6.91e+2 │ 5.76e+2  5.96e+2  ...  6.76e+2  6.96e+2 ││
-    ││axis 3│ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.41e+3  1.43e+3  ...  1.51e+3  1.53e+3 │ 1.41e+3  1.43e+3  ...  1.51e+3  1.53e+3 ││
-    ││      │ 2.24e+3  2.26e+3  ...  2.34e+3  2.36e+3 │ 2.24e+3  2.26e+3  ...  2.34e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.37e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.37e+3 ││
+    ││4 @ 2 │ 5.60e+2  5.80e+2  ...  6.60e+2  6.80e+2 │ 5.68e+2  5.84e+2  ...  6.64e+2  6.88e+2 │ 5.72e+2  5.92e+2  ...  6.72e+2  6.92e+2 │ 5.76e+2  5.96e+2  ...  6.76e+2  6.96e+2 ││
+    ││axis 3│ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.40e+3  1.43e+3  ...  1.51e+3  1.52e+3 │ 1.41e+3  1.44e+3  ...  1.52e+3  1.53e+3 ││
+    ││      │ 2.24e+3  2.25e+3  ...  2.33e+3  2.36e+3 │ 2.24e+3  2.27e+3  ...  2.35e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.36e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││5 @ 2 │ 7.01e+2  7.21e+2  ...  8.01e+2  8.21e+2 │ 7.06e+2  7.26e+2  ...  8.06e+2  8.26e+2 │ 7.11e+2  7.31e+2  ...  8.11e+2  8.31e+2 │ 7.16e+2  7.36e+2  ...  8.16e+2  8.36e+2 ││
-    ││axis 3│ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.55e+3  1.57e+3  ...  1.65e+3  1.67e+3 │ 1.55e+3  1.57e+3  ...  1.65e+3  1.67e+3 ││
-    ││      │ 2.38e+3  2.40e+3  ...  2.48e+3  2.50e+3 │ 2.38e+3  2.40e+3  ...  2.48e+3  2.50e+3 │ 2.39e+3  2.41e+3  ...  2.49e+3  2.51e+3 │ 2.39e+3  2.41e+3  ...  2.49e+3  2.51e+3 ││
+    ││5 @ 2 │ 7.00e+2  7.20e+2  ...  8.00e+2  8.20e+2 │ 7.04e+2  7.28e+2  ...  8.08e+2  8.24e+2 │ 7.12e+2  7.32e+2  ...  8.12e+2  8.32e+2 │ 7.16e+2  7.36e+2  ...  8.16e+2  8.36e+2 ││
+    ││axis 3│ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.55e+3  1.56e+3  ...  1.64e+3  1.67e+3 │ 1.55e+3  1.57e+3  ...  1.65e+3  1.68e+3 ││
+    ││      │ 2.38e+3  2.40e+3  ...  2.48e+3  2.49e+3 │ 2.38e+3  2.40e+3  ...  2.48e+3  2.51e+3 │ 2.38e+3  2.41e+3  ...  2.49e+3  2.51e+3 │ 2.40e+3  2.41e+3  ...  2.49e+3  2.51e+3 ││
│└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│┌──────┬─────────────────────────────────────────┬─────────────────────────────────────────┬─────────────────────────────────────────┬─────────────────────────────────────────┐│
@@ -929,23 +929,23 @@ let%expect_test "einsum1 broadcast or sum out prefix axes" =
││      │axis 5                                   │axis 5                                   │axis 5                                   │axis 5                                   ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││0 @ 2 │ 2.00     2.20e+1  ...  1.02e+2  1.22e+2 │ 7.00     2.70e+1  ...  1.07e+2  1.27e+2 │ 1.20e+1  3.20e+1  ...  1.12e+2  1.32e+2 │ 1.70e+1  3.70e+1  ...  1.17e+2  1.37e+2 ││
-    ││axis 3│ 8.42e+2  8.62e+2  ...  9.42e+2  9.62e+2 │ 8.47e+2  8.67e+2  ...  9.47e+2  9.67e+2 │ 8.52e+2  8.72e+2  ...  9.52e+2  9.72e+2 │ 8.57e+2  8.77e+2  ...  9.57e+2  9.77e+2 ││
-    ││      │ 1.68e+3  1.70e+3  ...  1.78e+3  1.80e+3 │ 1.68e+3  1.70e+3  ...  1.78e+3  1.80e+3 │ 1.69e+3  1.71e+3  ...  1.79e+3  1.81e+3 │ 1.69e+3  1.71e+3  ...  1.79e+3  1.81e+3 ││
+    ││axis 3│ 8.40e+2  8.64e+2  ...  9.44e+2  9.60e+2 │ 8.48e+2  8.68e+2  ...  9.48e+2  9.68e+2 │ 8.52e+2  8.72e+2  ...  9.52e+2  9.72e+2 │ 8.56e+2  8.76e+2  ...  9.56e+2  9.76e+2 ││
+    ││      │ 1.68e+3  1.70e+3  ...  1.78e+3  1.80e+3 │ 1.68e+3  1.70e+3  ...  1.78e+3  1.80e+3 │ 1.69e+3  1.71e+3  ...  1.79e+3  1.80e+3 │ 1.69e+3  1.72e+3  ...  1.80e+3  1.81e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││1 @ 2 │ 1.42e+2  1.62e+2  ...  2.42e+2  2.62e+2 │ 1.47e+2  1.67e+2  ...  2.47e+2  2.67e+2 │ 1.52e+2  1.72e+2  ...  2.52e+2  2.72e+2 │ 1.57e+2  1.77e+2  ...  2.57e+2  2.77e+2 ││
-    ││axis 3│ 9.82e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.87e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.92e+2  1.01e+3  ...  1.09e+3  1.11e+3 │ 9.97e+2  1.01e+3  ...  1.09e+3  1.11e+3 ││
-    ││      │ 1.82e+3  1.84e+3  ...  1.92e+3  1.94e+3 │ 1.82e+3  1.84e+3  ...  1.92e+3  1.94e+3 │ 1.83e+3  1.85e+3  ...  1.93e+3  1.95e+3 │ 1.83e+3  1.85e+3  ...  1.93e+3  1.95e+3 ││
+    ││1 @ 2 │ 1.42e+2  1.62e+2  ...  2.42e+2  2.62e+2 │ 1.47e+2  1.67e+2  ...  2.47e+2  2.68e+2 │ 1.52e+2  1.72e+2  ...  2.52e+2  2.72e+2 │ 1.57e+2  1.77e+2  ...  2.56e+2  2.76e+2 ││
+    ││axis 3│ 9.84e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.88e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.92e+2  1.01e+3  ...  1.08e+3  1.11e+3 │ 9.96e+2  1.01e+3  ...  1.09e+3  1.12e+3 ││
+    ││      │ 1.82e+3  1.84e+3  ...  1.92e+3  1.94e+3 │ 1.82e+3  1.84e+3  ...  1.92e+3  1.94e+3 │ 1.83e+3  1.85e+3  ...  1.93e+3  1.95e+3 │ 1.84e+3  1.85e+3  ...  1.93e+3  1.96e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││~~~~~ │ ...                                     │ ...                                     │ ...                                     │ ...                                     ││
││axis 3│                                         │                                         │                                         │                                         ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││4 @ 2 │ 5.62e+2  5.82e+2  ...  6.62e+2  6.82e+2 │ 5.67e+2  5.87e+2  ...  6.67e+2  6.87e+2 │ 5.72e+2  5.92e+2  ...  6.72e+2  6.92e+2 │ 5.77e+2  5.97e+2  ...  6.77e+2  6.97e+2 ││
-    ││axis 3│ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.41e+3  1.43e+3  ...  1.51e+3  1.53e+3 │ 1.41e+3  1.43e+3  ...  1.51e+3  1.53e+3 ││
-    ││      │ 2.24e+3  2.26e+3  ...  2.34e+3  2.36e+3 │ 2.24e+3  2.26e+3  ...  2.34e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.37e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.37e+3 ││
+    ││4 @ 2 │ 5.60e+2  5.84e+2  ...  6.64e+2  6.80e+2 │ 5.68e+2  5.88e+2  ...  6.68e+2  6.88e+2 │ 5.72e+2  5.92e+2  ...  6.72e+2  6.92e+2 │ 5.76e+2  5.96e+2  ...  6.76e+2  6.96e+2 ││
+    ││axis 3│ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.40e+3  1.43e+3  ...  1.51e+3  1.53e+3 │ 1.41e+3  1.44e+3  ...  1.52e+3  1.53e+3 ││
+    ││      │ 2.24e+3  2.25e+3  ...  2.33e+3  2.36e+3 │ 2.24e+3  2.27e+3  ...  2.35e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.38e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││5 @ 2 │ 7.02e+2  7.22e+2  ...  8.02e+2  8.22e+2 │ 7.07e+2  7.27e+2  ...  8.07e+2  8.27e+2 │ 7.12e+2  7.32e+2  ...  8.12e+2  8.32e+2 │ 7.17e+2  7.37e+2  ...  8.17e+2  8.37e+2 ││
-    ││axis 3│ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.55e+3  1.57e+3  ...  1.65e+3  1.67e+3 │ 1.55e+3  1.57e+3  ...  1.65e+3  1.67e+3 ││
-    ││      │ 2.38e+3  2.40e+3  ...  2.48e+3  2.50e+3 │ 2.38e+3  2.40e+3  ...  2.48e+3  2.50e+3 │ 2.39e+3  2.41e+3  ...  2.49e+3  2.51e+3 │ 2.39e+3  2.41e+3  ...  2.49e+3  2.51e+3 ││
+    ││5 @ 2 │ 7.04e+2  7.20e+2  ...  8.00e+2  8.24e+2 │ 7.08e+2  7.28e+2  ...  8.08e+2  8.28e+2 │ 7.12e+2  7.32e+2  ...  8.12e+2  8.32e+2 │ 7.16e+2  7.36e+2  ...  8.16e+2  8.36e+2 ││
+    ││axis 3│ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.55e+3  1.56e+3  ...  1.64e+3  1.67e+3 │ 1.56e+3  1.57e+3  ...  1.65e+3  1.68e+3 ││
+    ││      │ 2.38e+3  2.40e+3  ...  2.48e+3  2.49e+3 │ 2.38e+3  2.40e+3  ...  2.48e+3  2.51e+3 │ 2.40e+3  2.41e+3  ...  2.49e+3  2.51e+3 │ 2.40e+3  2.41e+3  ...  2.49e+3  2.51e+3 ││
│└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│┌──────┬─────────────────────────────────────────┬─────────────────────────────────────────┬─────────────────────────────────────────┬─────────────────────────────────────────┐│
@@ -953,23 +953,23 @@ let%expect_test "einsum1 broadcast or sum out prefix axes" =
││      │axis 5                                   │axis 5                                   │axis 5                                   │axis 5                                   ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││0 @ 2 │ 3.00     2.30e+1  ...  1.03e+2  1.23e+2 │ 8.00     2.80e+1  ...  1.08e+2  1.28e+2 │ 1.30e+1  3.30e+1  ...  1.13e+2  1.33e+2 │ 1.80e+1  3.80e+1  ...  1.18e+2  1.38e+2 ││
-    ││axis 3│ 8.43e+2  8.63e+2  ...  9.43e+2  9.63e+2 │ 8.48e+2  8.68e+2  ...  9.48e+2  9.68e+2 │ 8.53e+2  8.73e+2  ...  9.53e+2  9.73e+2 │ 8.58e+2  8.78e+2  ...  9.58e+2  9.78e+2 ││
-    ││      │ 1.68e+3  1.70e+3  ...  1.78e+3  1.80e+3 │ 1.68e+3  1.70e+3  ...  1.78e+3  1.80e+3 │ 1.69e+3  1.71e+3  ...  1.79e+3  1.81e+3 │ 1.69e+3  1.71e+3  ...  1.79e+3  1.81e+3 ││
+    ││axis 3│ 8.44e+2  8.64e+2  ...  9.44e+2  9.64e+2 │ 8.48e+2  8.68e+2  ...  9.48e+2  9.68e+2 │ 8.52e+2  8.72e+2  ...  9.52e+2  9.72e+2 │ 8.56e+2  8.80e+2  ...  9.60e+2  9.76e+2 ││
+    ││      │ 1.68e+3  1.70e+3  ...  1.78e+3  1.80e+3 │ 1.68e+3  1.71e+3  ...  1.79e+3  1.80e+3 │ 1.69e+3  1.71e+3  ...  1.79e+3  1.81e+3 │ 1.69e+3  1.72e+3  ...  1.80e+3  1.81e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││1 @ 2 │ 1.43e+2  1.63e+2  ...  2.43e+2  2.63e+2 │ 1.48e+2  1.68e+2  ...  2.48e+2  2.68e+2 │ 1.53e+2  1.73e+2  ...  2.53e+2  2.73e+2 │ 1.58e+2  1.78e+2  ...  2.58e+2  2.78e+2 ││
-    ││axis 3│ 9.83e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.88e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.93e+2  1.01e+3  ...  1.09e+3  1.11e+3 │ 9.98e+2  1.01e+3  ...  1.09e+3  1.11e+3 ││
-    ││      │ 1.82e+3  1.84e+3  ...  1.92e+3  1.94e+3 │ 1.82e+3  1.84e+3  ...  1.92e+3  1.94e+3 │ 1.83e+3  1.85e+3  ...  1.93e+3  1.95e+3 │ 1.83e+3  1.85e+3  ...  1.93e+3  1.95e+3 ││
+    ││1 @ 2 │ 1.43e+2  1.63e+2  ...  2.43e+2  2.64e+2 │ 1.48e+2  1.68e+2  ...  2.48e+2  2.68e+2 │ 1.53e+2  1.73e+2  ...  2.53e+2  2.72e+2 │ 1.58e+2  1.78e+2  ...  2.58e+2  2.78e+2 ││
+    ││axis 3│ 9.84e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.88e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.92e+2  1.01e+3  ...  1.09e+3  1.11e+3 │ 1.00e+3  1.01e+3  ...  1.09e+3  1.12e+3 ││
+    ││      │ 1.82e+3  1.84e+3  ...  1.92e+3  1.94e+3 │ 1.82e+3  1.84e+3  ...  1.92e+3  1.95e+3 │ 1.83e+3  1.85e+3  ...  1.93e+3  1.95e+3 │ 1.84e+3  1.85e+3  ...  1.93e+3  1.96e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││~~~~~ │ ...                                     │ ...                                     │ ...                                     │ ...                                     ││
││axis 3│                                         │                                         │                                         │                                         ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││4 @ 2 │ 5.63e+2  5.83e+2  ...  6.63e+2  6.83e+2 │ 5.68e+2  5.88e+2  ...  6.68e+2  6.88e+2 │ 5.73e+2  5.93e+2  ...  6.73e+2  6.93e+2 │ 5.78e+2  5.98e+2  ...  6.78e+2  6.98e+2 ││
-    ││axis 3│ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.41e+3  1.43e+3  ...  1.51e+3  1.53e+3 │ 1.41e+3  1.43e+3  ...  1.51e+3  1.53e+3 ││
-    ││      │ 2.24e+3  2.26e+3  ...  2.34e+3  2.36e+3 │ 2.24e+3  2.26e+3  ...  2.34e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.37e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.37e+3 ││
+    ││4 @ 2 │ 5.64e+2  5.84e+2  ...  6.64e+2  6.84e+2 │ 5.68e+2  5.88e+2  ...  6.68e+2  6.88e+2 │ 5.72e+2  5.92e+2  ...  6.72e+2  6.92e+2 │ 5.76e+2  6.00e+2  ...  6.80e+2  6.96e+2 ││
+    ││axis 3│ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.41e+3  1.43e+3  ...  1.51e+3  1.53e+3 │ 1.41e+3  1.44e+3  ...  1.52e+3  1.53e+3 ││
+    ││      │ 2.24e+3  2.25e+3  ...  2.33e+3  2.36e+3 │ 2.24e+3  2.27e+3  ...  2.35e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.38e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││5 @ 2 │ 7.03e+2  7.23e+2  ...  8.03e+2  8.23e+2 │ 7.08e+2  7.28e+2  ...  8.08e+2  8.28e+2 │ 7.13e+2  7.33e+2  ...  8.13e+2  8.33e+2 │ 7.18e+2  7.38e+2  ...  8.18e+2  8.38e+2 ││
-    ││axis 3│ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.55e+3  1.57e+3  ...  1.65e+3  1.67e+3 │ 1.55e+3  1.57e+3  ...  1.65e+3  1.67e+3 ││
-    ││      │ 2.38e+3  2.40e+3  ...  2.48e+3  2.50e+3 │ 2.38e+3  2.40e+3  ...  2.48e+3  2.50e+3 │ 2.39e+3  2.41e+3  ...  2.49e+3  2.51e+3 │ 2.39e+3  2.41e+3  ...  2.49e+3  2.51e+3 ││
+    ││5 @ 2 │ 7.04e+2  7.24e+2  ...  8.04e+2  8.24e+2 │ 7.08e+2  7.28e+2  ...  8.08e+2  8.28e+2 │ 7.12e+2  7.32e+2  ...  8.12e+2  8.32e+2 │ 7.20e+2  7.36e+2  ...  8.16e+2  8.40e+2 ││
+    ││axis 3│ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.55e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.55e+3  1.57e+3  ...  1.65e+3  1.67e+3 │ 1.56e+3  1.57e+3  ...  1.65e+3  1.68e+3 ││
+    ││      │ 2.38e+3  2.40e+3  ...  2.48e+3  2.49e+3 │ 2.38e+3  2.40e+3  ...  2.49e+3  2.51e+3 │ 2.40e+3  2.41e+3  ...  2.49e+3  2.51e+3 │ 2.40e+3  2.41e+3  ...  2.49e+3  2.51e+3 ││
│└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│┌──────┬─────────────────────────────────────────┬─────────────────────────────────────────┬─────────────────────────────────────────┬─────────────────────────────────────────┐│
@@ -977,23 +977,23 @@ let%expect_test "einsum1 broadcast or sum out prefix axes" =
││      │axis 5                                   │axis 5                                   │axis 5                                   │axis 5                                   ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││0 @ 2 │ 4.00     2.40e+1  ...  1.04e+2  1.24e+2 │ 9.00     2.90e+1  ...  1.09e+2  1.29e+2 │ 1.40e+1  3.40e+1  ...  1.14e+2  1.34e+2 │ 1.90e+1  3.90e+1  ...  1.19e+2  1.39e+2 ││
-    ││axis 3│ 8.44e+2  8.64e+2  ...  9.44e+2  9.64e+2 │ 8.49e+2  8.69e+2  ...  9.49e+2  9.69e+2 │ 8.54e+2  8.74e+2  ...  9.54e+2  9.74e+2 │ 8.59e+2  8.79e+2  ...  9.59e+2  9.79e+2 ││
-    ││      │ 1.68e+3  1.70e+3  ...  1.78e+3  1.80e+3 │ 1.68e+3  1.70e+3  ...  1.78e+3  1.80e+3 │ 1.69e+3  1.71e+3  ...  1.79e+3  1.81e+3 │ 1.69e+3  1.71e+3  ...  1.79e+3  1.81e+3 ││
+    ││axis 3│ 8.44e+2  8.64e+2  ...  9.44e+2  9.64e+2 │ 8.48e+2  8.68e+2  ...  9.48e+2  9.68e+2 │ 8.56e+2  8.72e+2  ...  9.52e+2  9.76e+2 │ 8.60e+2  8.80e+2  ...  9.60e+2  9.80e+2 ││
+    ││      │ 1.68e+3  1.70e+3  ...  1.78e+3  1.80e+3 │ 1.68e+3  1.71e+3  ...  1.79e+3  1.80e+3 │ 1.69e+3  1.71e+3  ...  1.79e+3  1.81e+3 │ 1.69e+3  1.72e+3  ...  1.80e+3  1.81e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││1 @ 2 │ 1.44e+2  1.64e+2  ...  2.44e+2  2.64e+2 │ 1.49e+2  1.69e+2  ...  2.49e+2  2.69e+2 │ 1.54e+2  1.74e+2  ...  2.54e+2  2.74e+2 │ 1.59e+2  1.79e+2  ...  2.59e+2  2.79e+2 ││
-    ││axis 3│ 9.84e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.89e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.94e+2  1.01e+3  ...  1.09e+3  1.11e+3 │ 9.99e+2  1.01e+3  ...  1.09e+3  1.11e+3 ││
-    ││      │ 1.82e+3  1.84e+3  ...  1.92e+3  1.94e+3 │ 1.82e+3  1.84e+3  ...  1.92e+3  1.94e+3 │ 1.83e+3  1.85e+3  ...  1.93e+3  1.95e+3 │ 1.83e+3  1.85e+3  ...  1.93e+3  1.95e+3 ││
+    ││1 @ 2 │ 1.44e+2  1.64e+2  ...  2.44e+2  2.64e+2 │ 1.49e+2  1.69e+2  ...  2.49e+2  2.68e+2 │ 1.54e+2  1.74e+2  ...  2.54e+2  2.74e+2 │ 1.59e+2  1.79e+2  ...  2.60e+2  2.80e+2 ││
+    ││axis 3│ 9.84e+2  1.00e+3  ...  1.08e+3  1.10e+3 │ 9.88e+2  1.00e+3  ...  1.08e+3  1.11e+3 │ 9.92e+2  1.01e+3  ...  1.09e+3  1.11e+3 │ 1.00e+3  1.02e+3  ...  1.09e+3  1.12e+3 ││
+    ││      │ 1.82e+3  1.84e+3  ...  1.92e+3  1.94e+3 │ 1.83e+3  1.84e+3  ...  1.92e+3  1.95e+3 │ 1.83e+3  1.85e+3  ...  1.93e+3  1.95e+3 │ 1.84e+3  1.85e+3  ...  1.93e+3  1.96e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
││~~~~~ │ ...                                     │ ...                                     │ ...                                     │ ...                                     ││
││axis 3│                                         │                                         │                                         │                                         ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││4 @ 2 │ 5.64e+2  5.84e+2  ...  6.64e+2  6.84e+2 │ 5.69e+2  5.89e+2  ...  6.69e+2  6.89e+2 │ 5.74e+2  5.94e+2  ...  6.74e+2  6.94e+2 │ 5.79e+2  5.99e+2  ...  6.79e+2  6.99e+2 ││
-    ││axis 3│ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.41e+3  1.43e+3  ...  1.51e+3  1.53e+3 │ 1.41e+3  1.43e+3  ...  1.51e+3  1.53e+3 ││
-    ││      │ 2.24e+3  2.26e+3  ...  2.34e+3  2.36e+3 │ 2.24e+3  2.26e+3  ...  2.34e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.37e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.37e+3 ││
+    ││4 @ 2 │ 5.64e+2  5.84e+2  ...  6.64e+2  6.84e+2 │ 5.68e+2  5.88e+2  ...  6.68e+2  6.88e+2 │ 5.76e+2  5.92e+2  ...  6.72e+2  6.96e+2 │ 5.80e+2  6.00e+2  ...  6.80e+2  7.00e+2 ││
+    ││axis 3│ 1.40e+3  1.42e+3  ...  1.50e+3  1.52e+3 │ 1.40e+3  1.43e+3  ...  1.51e+3  1.52e+3 │ 1.41e+3  1.43e+3  ...  1.51e+3  1.53e+3 │ 1.41e+3  1.44e+3  ...  1.52e+3  1.53e+3 ││
+    ││      │ 2.24e+3  2.27e+3  ...  2.33e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.36e+3 │ 2.25e+3  2.27e+3  ...  2.35e+3  2.38e+3 ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││5 @ 2 │ 7.04e+2  7.24e+2  ...  8.04e+2  8.24e+2 │ 7.09e+2  7.29e+2  ...  8.09e+2  8.29e+2 │ 7.14e+2  7.34e+2  ...  8.14e+2  8.34e+2 │ 7.19e+2  7.39e+2  ...  8.19e+2  8.39e+2 ││
-    ││axis 3│ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.55e+3  1.57e+3  ...  1.65e+3  1.67e+3 │ 1.55e+3  1.57e+3  ...  1.65e+3  1.67e+3 ││
-    ││      │ 2.38e+3  2.40e+3  ...  2.48e+3  2.50e+3 │ 2.38e+3  2.40e+3  ...  2.48e+3  2.50e+3 │ 2.39e+3  2.41e+3  ...  2.49e+3  2.51e+3 │ 2.39e+3  2.41e+3  ...  2.49e+3  2.51e+3 ││
+    ││5 @ 2 │ 7.04e+2  7.24e+2  ...  8.04e+2  8.24e+2 │ 7.08e+2  7.28e+2  ...  8.08e+2  8.28e+2 │ 7.12e+2  7.36e+2  ...  8.16e+2  8.32e+2 │ 7.20e+2  7.40e+2  ...  8.20e+2  8.40e+2 ││
+    ││axis 3│ 1.54e+3  1.56e+3  ...  1.64e+3  1.66e+3 │ 1.55e+3  1.56e+3  ...  1.64e+3  1.67e+3 │ 1.55e+3  1.57e+3  ...  1.65e+3  1.67e+3 │ 1.56e+3  1.57e+3  ...  1.65e+3  1.68e+3 ││
+    ││      │ 2.38e+3  2.40e+3  ...  2.48e+3  2.49e+3 │ 2.38e+3  2.41e+3  ...  2.49e+3  2.51e+3 │ 2.40e+3  2.41e+3  ...  2.49e+3  2.51e+3 │ 2.40e+3  2.41e+3  ...  2.49e+3  2.51e+3 ││
│└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|}];
@@ -1009,9 +1009,9 @@ let%expect_test "einsum1 broadcast or sum out prefix axes" =
││      │0 @ 0                                    │1 @ 0                                    │2 @ 0                                    │3 @ 0                                    │4 @ 0                                    ││
││      │axis 2                                   │axis 2                                   │axis 2                                   │axis 2                                   │axis 2                                   ││
│├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│
-    ││axis 1│ 7.76e+4  7.86e+4  ...  8.24e+4  8.34e+4 │ 7.76e+4  7.86e+4  ...  8.24e+4  8.34e+4 │ 7.77e+4  7.86e+4  ...  8.25e+4  8.34e+4 │ 7.77e+4  7.87e+4  ...  8.25e+4  8.35e+4 │ 7.78e+4  7.87e+4  ...  8.26e+4  8.35e+4 ││
-    ││      │ 1.17e+5  1.18e+5  ...  1.22e+5  1.23e+5 │ 1.18e+5  1.18e+5  ...  1.22e+5  1.23e+5 │ 1.18e+5  1.19e+5  ...  1.22e+5  1.23e+5 │ 1.18e+5  1.19e+5  ...  1.22e+5  1.23e+5 │ 1.18e+5  1.19e+5  ...  1.22e+5  1.23e+5 ││
-    ││      │ 1.58e+5  1.59e+5  ...  1.63e+5  1.64e+5 │ 1.58e+5  1.59e+5  ...  1.63e+5  1.64e+5 │ 1.58e+5  1.59e+5  ...  1.63e+5  1.64e+5 │ 1.58e+5  1.59e+5  ...  1.63e+5  1.64e+5 │ 1.58e+5  1.59e+5  ...  1.63e+5  1.64e+5 ││
+    ││axis 1│ 7.73e+4  7.83e+4  ...  8.08e+4  8.34e+4 │ 7.73e+4  7.83e+4  ...  8.08e+4  8.34e+4 │ 7.73e+4  7.83e+4  ...  8.14e+4  8.34e+4 │ 7.78e+4  7.83e+4  ...  8.24e+4  8.34e+4 │ 7.78e+4  7.83e+4  ...  8.24e+4  8.39e+4 ││
+    ││      │ 1.18e+5  1.18e+5  ...  1.23e+5  1.24e+5 │ 1.18e+5  1.18e+5  ...  1.23e+5  1.24e+5 │ 1.18e+5  1.18e+5  ...  1.23e+5  1.24e+5 │ 1.18e+5  1.18e+5  ...  1.23e+5  1.24e+5 │ 1.18e+5  1.18e+5  ...  1.23e+5  1.24e+5 ││
+    ││      │ 1.58e+5  1.59e+5  ...  1.64e+5  1.64e+5 │ 1.58e+5  1.60e+5  ...  1.64e+5  1.64e+5 │ 1.58e+5  1.60e+5  ...  1.64e+5  1.64e+5 │ 1.58e+5  1.60e+5  ...  1.64e+5  1.64e+5 │ 1.58e+5  1.60e+5  ...  1.64e+5  1.64e+5 ││
│└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴─────────────────────────────────────────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|}];
@@ -1692,9 +1692,9 @@ let%expect_test "einsum with a leftmost input axis preserved as output axis" =
││      │axis 2            │axis 2            │axis 2            ││
│├──────┼──────────────────┼──────────────────┼──────────────────┤│
││axis 1│ 1.20e+1  4.80e+1 │ 9.00e+2  1.00e+3 │ 2.94e+3  3.12e+3 ││
-    ││      │ 1.05e+2  1.50e+2 │ 1.20e+3  1.32e+3 │ 3.46e+3  3.65e+3 ││
-    ││      │ 2.34e+2  2.88e+2 │ 1.55e+3  1.68e+3 │ 4.02e+3  4.22e+3 ││
-    ││      │ 3.99e+2  4.62e+2 │ 1.93e+3  2.07e+3 │ 4.62e+3  4.83e+3 ││
+    ││      │ 1.05e+2  1.50e+2 │ 1.20e+3  1.32e+3 │ 3.45e+3  3.64e+3 ││
+    ││      │ 2.34e+2  2.88e+2 │ 1.55e+3  1.68e+3 │ 4.01e+3  4.22e+3 ││
+    ││      │ 4.00e+2  4.60e+2 │ 1.93e+3  2.08e+3 │ 4.60e+3  4.83e+3 ││
│└──────┴──────────────────┴──────────────────┴──────────────────┘│
└─────────────────────────────────────────────────────────────────┘
|}]
(cd _build/default/test && ./moons_demo_parallel_run.exe)


Welcome to OCANNL! Reading configuration defaults from /src/_build/default/test/ocannl_config.
Retrieving commandline, environment, or config file variable ocannl_log_level
Found 0, in the config file
("Set log_level to" 1)
└─{orphaned from #2}
Retrieving commandline, environment, or config file variable ocannl_backend
Found multicore_cc, in the config file
Properties of devices:
(multicore_devices
(device ((device_name CPU) (device_ordinal 0) (num_domains 72))))
@!Retrieving commandline, environment, or config file variable ocannl_prefer_backend_uniformity
Found true, in the config file
Retrieving commandline, environment, or config file variable ocannl_debug_log_to_stream_files
Not found, using default false
Retrieving commandline, environment, or config file variable ocannl_ll_ident_style
Not found, using default heuristic
Retrieving commandline, environment, or config file variable ocannl_cc_backend_optimization_level
Not found, using default 3
Retrieving commandline, environment, or config file variable ocannl_cc_backend_compiler_command
Not found, using default gcc
Retrieving commandline, environment, or config file variable ocannl_never_capture_stdout
Not found, using default false
Batch=59, step=60, lr=0.200000, batch loss=23.500000, epoch loss=23.500000
Batch=119, step=120, lr=0.199750, batch loss=8.750000, epoch loss=32.250000
Batch=179, step=180, lr=0.199500, batch loss=2.546875, epoch loss=34.796875
Batch=239, step=240, lr=0.199250, batch loss=0.851562, epoch loss=35.648438
Batch=299, step=300, lr=0.199000, batch loss=1.406250, epoch loss=37.054688
Batch=359, step=360, lr=0.198750, batch loss=1.335938, epoch loss=38.390625
Batch=419, step=420, lr=0.198500, batch loss=0.617188, epoch loss=39.007812
Batch=479, step=480, lr=0.198250, batch loss=0.769531, epoch loss=39.777344
Batch=539, step=540, lr=0.198000, batch loss=0.679688, epoch loss=40.457031
Batch=599, step=600, lr=0.197750, batch loss=1.101562, epoch loss=41.558594
Batch=659, step=660, lr=0.197500, batch loss=0.484375, epoch loss=42.042969
Batch=719, step=720, lr=0.197250, batch loss=0.412109, epoch loss=42.455078
Batch=779, step=780, lr=0.197000, batch loss=0.470703, epoch loss=42.925781
Batch=839, step=840, lr=0.196750, batch loss=0.447266, epoch loss=43.373047
Batch=899, step=900, lr=0.196500, batch loss=0.386719, epoch loss=43.759766
Batch=959, step=960, lr=0.196250, batch loss=0.239258, epoch loss=43.999023
Batch=1019, step=1020, lr=0.196000, batch loss=0.443359, epoch loss=44.442383
Batch=1079, step=1080, lr=0.195750, batch loss=0.255859, epoch loss=44.698242
Batch=1139, step=1140, lr=0.195500, batch loss=0.345703, epoch loss=45.043945
Batch=1199, step=1200, lr=0.195250, batch loss=0.257812, epoch loss=45.301758
Epoch=0, step=1200, lr=0.195250, epoch loss=45.301758
Batch=59, step=1260, lr=0.195000, batch loss=0.263672, epoch loss=0.263672
Batch=119, step=1320, lr=0.194750, batch loss=0.203125, epoch loss=0.466797
Batch=179, step=1380, lr=0.194500, batch loss=0.244141, epoch loss=0.710938
Batch=239, step=1440, lr=0.194250, batch loss=0.349609, epoch loss=1.060547
Batch=299, step=1500, lr=0.194000, batch loss=0.240234, epoch loss=1.300781
Batch=359, step=1560, lr=0.193750, batch loss=0.312500, epoch loss=1.613281
Batch=419, step=1620, lr=0.193500, batch loss=0.306641, epoch loss=1.919922
Batch=479, step=1680, lr=0.193250, batch loss=0.275391, epoch loss=2.195312
Batch=539, step=1740, lr=0.193000, batch loss=0.210938, epoch loss=2.406250
Batch=599, step=1800, lr=0.192750, batch loss=0.250000, epoch loss=2.656250
Batch=659, step=1860, lr=0.192500, batch loss=0.367188, epoch loss=3.023438
Batch=719, step=1920, lr=0.192250, batch loss=0.355469, epoch loss=3.378906
Batch=779, step=1980, lr=0.192000, batch loss=0.380859, epoch loss=3.759766
Batch=839, step=2040, lr=0.191750, batch loss=0.343750, epoch loss=4.103516
Batch=899, step=2100, lr=0.191500, batch loss=0.302734, epoch loss=4.406250
Batch=959, step=2160, lr=0.191250, batch loss=0.220703, epoch loss=4.626953
Batch=1019, step=2220, lr=0.191000, batch loss=0.332031, epoch loss=4.958984
Batch=1079, step=2280, lr=0.190750, batch loss=0.214844, epoch loss=5.173828
Batch=1139, step=2340, lr=0.190500, batch loss=0.287109, epoch loss=5.460938
Batch=1199, step=2400, lr=0.190250, batch loss=0.223633, epoch loss=5.684570
Epoch=1, step=2400, lr=0.190250, epoch loss=5.684570
Batch=59, step=2460, lr=0.190000, batch loss=0.233398, epoch loss=0.233398
Batch=119, step=2520, lr=0.189750, batch loss=0.194336, epoch loss=0.427734
Batch=179, step=2580, lr=0.189500, batch loss=0.222656, epoch loss=0.650391
Batch=239, step=2640, lr=0.189250, batch loss=0.330078, epoch loss=0.980469
Batch=299, step=2700, lr=0.189000, batch loss=0.203125, epoch loss=1.183594
Batch=359, step=2760, lr=0.188750, batch loss=0.294922, epoch loss=1.478516
Batch=419, step=2820, lr=0.188500, batch loss=0.279297, epoch loss=1.757812
Batch=479, step=2880, lr=0.188250, batch loss=0.255859, epoch loss=2.013672
Batch=539, step=2940, lr=0.188000, batch loss=0.195312, epoch loss=2.208984
Batch=599, step=3000, lr=0.187750, batch loss=0.237305, epoch loss=2.446289
Batch=659, step=3060, lr=0.187500, batch loss=0.343750, epoch loss=2.790039
Batch=719, step=3120, lr=0.187250, batch loss=0.341797, epoch loss=3.131836
Batch=779, step=3180, lr=0.187000, batch loss=0.365234, epoch loss=3.497070
Batch=839, step=3240, lr=0.186750, batch loss=0.322266, epoch loss=3.819336
Batch=899, step=3300, lr=0.186500, batch loss=0.289062, epoch loss=4.108398
Batch=959, step=3360, lr=0.186250, batch loss=0.211914, epoch loss=4.320312
Batch=1019, step=3420, lr=0.186000, batch loss=0.306641, epoch loss=4.626953
Batch=1079, step=3480, lr=0.185750, batch loss=0.187500, epoch loss=4.814453
Batch=1139, step=3540, lr=0.185500, batch loss=0.234375, epoch loss=5.048828
Batch=1199, step=3600, lr=0.185250, batch loss=0.199219, epoch loss=5.248047
Epoch=2, step=3600, lr=0.185250, epoch loss=5.248047
Batch=59, step=3660, lr=0.185000, batch loss=0.241211, epoch loss=0.241211
Batch=119, step=3720, lr=0.184750, batch loss=0.204102, epoch loss=0.445312
Batch=179, step=3780, lr=0.184500, batch loss=0.210938, epoch loss=0.656250
Batch=239, step=3840, lr=0.184250, batch loss=0.316406, epoch loss=0.972656
Batch=299, step=3900, lr=0.184000, batch loss=0.207031, epoch loss=1.179688
Batch=359, step=3960, lr=0.183750, batch loss=0.285156, epoch loss=1.464844
Batch=419, step=4020, lr=0.183500, batch loss=0.271484, epoch loss=1.736328
Batch=479, step=4080, lr=0.183250, batch loss=0.246094, epoch loss=1.982422
Batch=539, step=4140, lr=0.183000, batch loss=0.196289, epoch loss=2.178711
Batch=599, step=4200, lr=0.182750, batch loss=0.250000, epoch loss=2.428711
Batch=659, step=4260, lr=0.182500, batch loss=0.333984, epoch loss=2.762695
Batch=719, step=4320, lr=0.182250, batch loss=0.351562, epoch loss=3.114258
Batch=779, step=4380, lr=0.182000, batch loss=0.347656, epoch loss=3.461914
Batch=839, step=4440, lr=0.181750, batch loss=0.316406, epoch loss=3.778320
Batch=899, step=4500, lr=0.181500, batch loss=0.283203, epoch loss=4.061523
Batch=959, step=4560, lr=0.181250, batch loss=0.240234, epoch loss=4.301758
Batch=1019, step=4620, lr=0.181000, batch loss=0.355469, epoch loss=4.657227
Batch=1079, step=4680, lr=0.180750, batch loss=0.218750, epoch loss=4.875977
Batch=1139, step=4740, lr=0.180500, batch loss=0.253906, epoch loss=5.129883
Batch=1199, step=4800, lr=0.180250, batch loss=0.192383, epoch loss=5.322266
Epoch=3, step=4800, lr=0.180250, epoch loss=5.322266
Batch=59, step=4860, lr=0.180000, batch loss=0.222656, epoch loss=0.222656
Batch=119, step=4920, lr=0.179750, batch loss=0.191406, epoch loss=0.414062
Batch=179, step=4980, lr=0.179500, batch loss=0.207031, epoch loss=0.621094
Batch=239, step=5040, lr=0.179250, batch loss=0.306641, epoch loss=0.927734
Batch=299, step=5100, lr=0.179000, batch loss=0.201172, epoch loss=1.128906
Batch=35, step=5160, lr=0.178750, batch loss=0.275391, epoch loss=1.404297
Batch=419, step=5220, lr=0.178500, batch loss=0.265625, epoch loss=1.669922
Batch=479, step=5280, lr=0.178250, batch loss=0.241211, epoch loss=1.911133
Batch=539, step=5340, lr=0.178000, batch loss=0.189453, epoch loss=2.100586
Batch=599, step=5400, lr=0.177750, batch loss=0.235352, epoch loss=2.335938
Batch=659, step=5460, lr=0.177500, batch loss=0.324219, epoch loss=2.660156
Batch=719, step=5520, lr=0.177250, batch loss=0.324219, epoch loss=2.984375
Batch=779, step=5580, lr=0.177000, batch loss=0.343750, epoch loss=3.328125
Batch=839, step=5640, lr=0.176750, batch loss=0.310547, epoch loss=3.638672
Batch=899, step=5700, lr=0.176500, batch loss=0.275391, epoch loss=3.914062
Batch=959, step=5760, lr=0.176250, batch loss=0.220703, epoch loss=4.134766
Batch=1019, step=5820, lr=0.176000, batch loss=0.333984, epoch loss=4.468750
Batch=1079, step=5880, lr=0.175750, batch loss=0.197266, epoch loss=4.666016
Batch=1139, step=5940, lr=0.175500, batch loss=0.229492, epoch loss=4.895508
Batch=1199, step=6000, lr=0.175250, batch loss=0.186523, epoch loss=5.082031
Epoch=4, step=6000, lr=0.175250, epoch loss=5.082031
Batch=59, step=6060, lr=0.175000, batch loss=0.226562, epoch loss=0.226562
Batch=119, step=6120, lr=0.174750, batch loss=0.187500, epoch loss=0.414062
Batch=179, step=6180, lr=0.174500, batch loss=0.202148, epoch loss=0.616211
Batch=239, step=6240, lr=0.174250, batch loss=0.306641, epoch loss=0.922852
Batch=299, step=6300, lr=0.174000, batch loss=0.210938, epoch loss=1.133789
Batch=359, step=6360, lr=0.173750, batch loss=0.275391, epoch loss=1.409180
Batch=419, step=6420, lr=0.173500, batch loss=0.269531, epoch loss=1.678711
Batch=479, step=6480, lr=0.173250, batch loss=0.241211, epoch loss=1.919922
Batch=539, step=6540, lr=0.173000, batch loss=0.198242, epoch loss=2.118164
Batch=599, step=6600, lr=0.172750, batch loss=0.241211, epoch loss=2.359375
Batch=659, step=6660, lr=0.172500, batch loss=0.322266, epoch loss=2.681641
Batch=719, step=6720, lr=0.172250, batch loss=0.330078, epoch loss=3.011719
Batch=779, step=6780, lr=0.172000, batch loss=0.339844, epoch loss=3.351562
Batch=839, step=6840, lr=0.171750, batch loss=0.304688, epoch loss=3.656250
Batch=899, step=6900, lr=0.171500, batch loss=0.273438, epoch loss=3.929688
Batch=959, step=6960, lr=0.171250, batch loss=0.213867, epoch loss=4.143555
Batch=1019, step=7020, lr=0.171000, batch loss=0.328125, epoch loss=4.471680
Batch=1079, step=7080, lr=0.170750, batch loss=0.179688, epoch loss=4.651367
Batch=1139, step=7140, lr=0.170500, batch loss=0.212891, epoch loss=4.864258
Batch=1199, step=7200, lr=0.170250, batch loss=0.188477, epoch loss=5.052734
Epoch=5, step=7200, lr=0.170250, epoch loss=5.052734
Batch=59, step=7260, lr=0.170000, batch loss=0.236328, epoch loss=0.236328
Batch=119, step=7320, lr=0.169750, batch loss=0.185547, epoch loss=0.421875
Batch=179, step=7380, lr=0.169500, batch loss=0.198242, epoch loss=0.620117
Batch=239, step=7440, lr=0.169250, batch loss=0.292969, epoch loss=0.913086
Batch=299, step=7500, lr=0.169000, batch loss=0.202148, epoch loss=1.115234
Batch=359, step=7560, lr=0.168750, batch loss=0.263672, epoch loss=1.378906
Batch=419, step=7620, lr=0.168500, batch loss=0.261719, epoch loss=1.640625
Batch=479, step=7680, lr=0.168250, batch loss=0.239258, epoch loss=1.879883
Batch=539, step=7740, lr=0.168000, batch loss=0.188477, epoch loss=2.068359
Batch=599, step=7800, lr=0.167750, batch loss=0.227539, epoch loss=2.295898
Batch=659, step=7860, lr=0.167500, batch loss=0.310547, epoch loss=2.606445
Batch=719, step=7920, lr=0.167250, batch loss=0.314453, epoch loss=2.920898
Batch=779, step=7980, lr=0.167000, batch loss=0.330078, epoch loss=3.250977
Batch=839, step=8040, lr=0.166750, batch loss=0.302734, epoch loss=3.553711
Batch=899, step=8100, lr=0.166500, batch loss=0.265625, epoch loss=3.819336
Batch=959, step=8160, lr=0.166250, batch loss=0.207031, epoch loss=4.026367
Batch=1019, step=8220, lr=0.166000, batch loss=0.328125, epoch loss=4.354492
Batch=1079, step=8280, lr=0.165750, batch loss=0.180664, epoch loss=4.535156
Batch=1139, step=8340, lr=0.165500, batch loss=0.210938, epoch loss=4.746094
Batch=1199, step=8400, lr=0.165250, batch loss=0.179688, epoch loss=4.925781
Epoch=6, step=8400, lr=0.165250, epoch loss=4.925781
Batch=59, step=8460, lr=0.165000, batch loss=0.231445, epoch loss=0.231445
Batch=119, step=8520, lr=0.164750, batch loss=0.177734, epoch loss=0.409180
Batch=179, step=8580, lr=0.164500, batch loss=0.191406, epoch loss=0.600586
Batch=239, step=8640, lr=0.164250, batch loss=0.289062, epoch loss=0.889648
Batch=299, step=8700, lr=0.164000, batch loss=0.201172, epoch loss=1.090820
Batch=359, step=8760, lr=0.163750, batch loss=0.257812, epoch loss=1.348633
Batch=419, step=8820, lr=0.163500, batch loss=0.247070, epoch loss=1.595703
Batch=479, step=8880, lr=0.163250, batch loss=0.227539, epoch loss=1.823242
Batch=539, step=8940, lr=0.163000, batch loss=0.177734, epoch loss=2.000977
Batch=599, step=9000, lr=0.162750, batch loss=0.227539, epoch loss=2.228516
Batch=659, step=9060, lr=0.162500, batch loss=0.300781, epoch loss=2.529297
Batch=719, step=9120, lr=0.162250, batch loss=0.298828, epoch loss=2.828125
Batch=779, step=9180, lr=0.162000, batch loss=0.320312, epoch loss=3.148438
Batch=839, step=9240, lr=0.161750, batch loss=0.289062, epoch loss=3.437500
Batch=899, step=9300, lr=0.161500, batch loss=0.257812, epoch loss=3.695312
Batch=959, step=9360, lr=0.161250, batch loss=0.221680, epoch loss=3.916992
Batch=1019, step=9420, lr=0.161000, batch loss=0.302734, epoch loss=4.219727
Batch=1079, step=9480, lr=0.160750, batch loss=0.176758, epoch loss=4.396484
Batch=1139, step=9540, lr=0.160500, batch loss=0.211914, epoch loss=4.608398
Batch=1199, step=9600, lr=0.160250, batch loss=0.167969, epoch loss=4.776367
Epoch=7, step=9600, lr=0.160250, epoch loss=4.776367
Batch=59, step=9660, lr=0.160000, batch loss=0.200195, epoch loss=0.200195
Batch=119, step=9720, lr=0.159750, batch loss=0.166016, epoch loss=0.366211
Batch=179, step=9780, lr=0.159500, batch loss=0.183594, epoch loss=0.549805
Batch=239, step=9840, lr=0.159250, batch loss=0.271484, epoch loss=0.821289
Batch=299, step=9900, lr=0.159000, batch loss=0.192383, epoch loss=1.013672
Batch=359, step=9960, lr=0.158750, batch loss=0.248047, epoch loss=1.261719
Batch=419, step=10020, lr=0.158500, batch loss=0.240234, epoch loss=1.501953
Batch=479, step=10080, lr=0.158250, batch loss=0.217773, epoch loss=1.719727
Batch=539, step=10140, lr=0.158000, batch loss=0.177734, epoch loss=1.897461
Batch=599, step=10200, lr=0.157750, batch loss=0.208008, epoch loss=2.105469
Batch=659, step=10260, lr=0.157500, batch loss=0.289062, epoch loss=2.394531
Batch=719, step=10320, lr=0.157250, batch loss=0.292969, epoch loss=2.687500
Batch=779, step=10380, lr=0.157000, batch loss=0.300781, epoch loss=2.988281
Batch=839, step=10440, lr=0.156750, batch loss=0.275391, epoch loss=3.263672
Batch=899, step=10500, lr=0.156500, batch loss=0.251953, epoch loss=3.515625
Batch=959, step=10560, lr=0.156250, batch loss=0.202148, epoch loss=3.717773
Batch=1019, step=10620, lr=0.156000, batch loss=0.291016, epoch loss=4.008789
Batch=1079, step=10680, lr=0.155750, batch loss=0.199219, epoch loss=4.208008
Batch=1139, step=10740, lr=0.155500, batch loss=0.210938, epoch loss=4.418945
Batch=1199, step=10800, lr=0.155250, batch loss=0.162109, epoch loss=4.581055
Epoch=8, step=10800, lr=0.155250, epoch loss=4.581055
Batch=59, step=10860, lr=0.155000, batch loss=0.188477, epoch loss=0.188477
Batch=119, step=10920, lr=0.154750, batch loss=0.155273, epoch loss=0.343750
Batch=179, step=10980, lr=0.154500, batch loss=0.170898, epoch loss=0.514648
Batch=239, step=11040, lr=0.154250, batch loss=0.251953, epoch loss=0.766602
Batch=299, step=11100, lr=0.154000, batch loss=0.180664, epoch loss=0.947266
Batch=359, step=11160, lr=0.153750, batch loss=0.226562, epoch loss=1.173828
Batch=419, step=11220, lr=0.153500, batch loss=0.219727, epoch loss=1.393555
Batch=479, step=11280, lr=0.153250, batch loss=0.199219, epoch loss=1.592773
Batch=539, step=11340, lr=0.153000, batch loss=0.162109, epoch loss=1.754883
Batch=599, step=11400, lr=0.152750, batch loss=0.191406, epoch loss=1.946289
Batch=659, step=11460, lr=0.152500, batch loss=0.275391, epoch loss=2.221680
Batch=719, step=11520, lr=0.152250, batch loss=0.267578, epoch loss=2.489258
Batch=779, step=11580, lr=0.152000, batch loss=0.283203, epoch loss=2.772461
Batch=839, step=11640, lr=0.151750, batch loss=0.259766, epoch loss=3.032227
Batch=899, step=11700, lr=0.151500, batch loss=0.226562, epoch loss=3.258789
Batch=959, step=11760, lr=0.151250, batch loss=0.173828, epoch loss=3.432617
Batch=1019, step=11820, lr=0.151000, batch loss=0.277344, epoch loss=3.709961
Batch=1079, step=11880, lr=0.150750, batch loss=0.163086, epoch loss=3.873047
Batch=1139, step=11940, lr=0.150500, batch loss=0.199219, epoch loss=4.072266
Batch=1199, step=12000, lr=0.150250, batch loss=0.148438, epoch loss=4.220703
Epoch=9, step=12000, lr=0.150250, epoch loss=4.220703
Batch=59, step=12060, lr=0.150000, batch loss=0.166016, epoch loss=0.166016
Batch=119, step=12120, lr=0.149750, batch loss=0.134766, epoch loss=0.300781
Batch=179, step=12180, lr=0.149500, batch loss=0.160156, epoch loss=0.460938
Batch=239, step=12240, lr=0.149250, batch loss=0.233398, epoch loss=0.694336
Batch=299, step=12300, lr=0.149000, batch loss=0.152344, epoch loss=0.846680
Batch=359, step=12360, lr=0.148750, batch loss=0.203125, epoch loss=1.049805
Batch=419, step=12420, lr=0.148500, batch loss=0.212891, epoch loss=1.262695
Batch=479, step=12480, lr=0.148250, batch loss=0.194336, epoch loss=1.457031
Batch=539, step=12540, lr=0.148000, batch loss=0.147461, epoch loss=1.604492
Batch=599, step=12600, lr=0.147750, batch loss=0.165039, epoch loss=1.769531
Batch=659, step=12660, lr=0.147500, batch loss=0.248047, epoch loss=2.017578
Batch=719, step=12720, lr=0.147250, batch loss=0.240234, epoch loss=2.257812
Batch=779, step=12780, lr=0.147000, batch loss=0.250000, epoch loss=2.507812
Batch=839, step=12840, lr=0.146750, batch loss=0.248047, epoch loss=2.755859
Batch=899, step=12900, lr=0.146500, batch loss=0.246094, epoch loss=3.001953
Batch=959, step=12960, lr=0.146250, batch loss=0.151367, epoch loss=3.153320
Batch=1019, step=13020, lr=0.146000, batch loss=0.232422, epoch loss=3.385742
Batch=1079, step=13080, lr=0.145750, batch loss=0.121094, epoch loss=3.506836
Batch=1139, step=13140, lr=0.145500, batch loss=0.152344, epoch loss=3.659180
Batch=1199, step=13200, lr=0.145250, batch loss=0.128906, epoch loss=3.788086
Epoch=10, step=13200, lr=0.145250, epoch loss=3.788086
Batch=59, step=13260, lr=0.145000, batch loss=0.153320, epoch loss=0.153320
Batch=119, step=13320, lr=0.144750, batch loss=0.129883, epoch loss=0.283203
Batch=179, step=13380, lr=0.144500, batch loss=0.136719, epoch loss=0.419922
Batch=239, step=13440, lr=0.144250, batch loss=0.200195, epoch loss=0.620117
Batch=299, step=13500, lr=0.144000, batch loss=0.129883, epoch loss=0.750000
Batch=359, step=13560, lr=0.143750, batch loss=0.173828, epoch loss=0.923828
Batch=419, step=13620, lr=0.143500, batch loss=0.170898, epoch loss=1.094727
Batch=479, step=13680, lr=0.143250, batch loss=0.170898, epoch loss=1.265625
Batch=539, step=13740, lr=0.143000, batch loss=0.141602, epoch loss=1.407227
Batch=599, step=13800, lr=0.142750, batch loss=0.133789, epoch loss=1.541016
Batch=659, step=13860, lr=0.142500, batch loss=0.214844, epoch loss=1.755859
Batch=719, step=13920, lr=0.142250, batch loss=0.217773, epoch loss=1.973633
Batch=779, step=13980, lr=0.142000, batch loss=0.238281, epoch loss=2.211914
Batch=839, step=14040, lr=0.141750, batch loss=0.218750, epoch loss=2.430664
Batch=899, step=14100, lr=0.141500, batch loss=0.213867, epoch loss=2.644531
Batch=959, step=14160, lr=0.141250, batch loss=0.125977, epoch loss=2.770508
Batch=1019, step=14220, lr=0.141000, batch loss=0.212891, epoch loss=2.983398
Batch=1079, step=14280, lr=0.140750, batch loss=0.083008, epoch loss=3.066406
Batch=1139, step=14340, lr=0.140500, batch loss=0.119141, epoch loss=3.185547
Batch=1199, step=14400, lr=0.140250, batch loss=0.104004, epoch loss=3.289551
Epoch=11, step=14400, lr=0.140250, epoch loss=3.289551
Batch=59, step=14460, lr=0.140000, batch loss=0.133789, epoch loss=0.133789
Batch=119, step=14520, lr=0.139750, batch loss=0.118652, epoch loss=0.252441
Batch=179, step=14580, lr=0.139500, batch loss=0.111328, epoch loss=0.363770
Batch=239, step=14640, lr=0.139250, batch loss=0.162109, epoch loss=0.525879
Batch=299, step=14700, lr=0.139000, batch loss=0.089355, epoch loss=0.615234
Batch=359, step=14760, lr=0.138750, batch loss=0.142578, epoch loss=0.757812
Batch=419, step=14820, lr=0.138500, batch loss=0.182617, epoch loss=0.940430
Batch=479, step=14880, lr=0.138250, batch loss=0.105469, epoch loss=1.045898
Batch=539, step=14940, lr=0.138000, batch loss=0.093750, epoch loss=1.139648
Batch=599, step=15000, lr=0.137750, batch loss=0.096680, epoch loss=1.236328
Batch=659, step=15060, lr=0.137500, batch loss=0.148438, epoch loss=1.384766
Batch=719, step=15120, lr=0.137250, batch loss=0.170898, epoch loss=1.555664
Batch=779, step=15180, lr=0.137000, batch loss=0.219727, epoch loss=1.775391
Batch=839, step=15240, lr=0.136750, batch loss=0.171875, epoch loss=1.947266
Batch=899, step=15300, lr=0.136500, batch loss=0.216797, epoch loss=2.164062
Batch=959, step=15360, lr=0.136250, batch loss=0.070312, epoch loss=2.234375
Batch=1019, step=15420, lr=0.136000, batch loss=0.156250, epoch loss=2.390625
Batch=1079, step=15480, lr=0.135750, batch loss=0.071289, epoch loss=2.461914
Batch=1139, step=15540, lr=0.135500, batch loss=0.136719, epoch loss=2.598633
Batch=1199, step=15600, lr=0.135250, batch loss=0.074707, epoch loss=2.673340
Epoch=12, step=15600, lr=0.135250, epoch loss=2.673340
Batch=59, step=15660, lr=0.135000, batch loss=0.090332, epoch loss=0.090332
Batch=119, step=15720, lr=0.134750, batch loss=0.107422, epoch loss=0.197754
Batch=179, step=15780, lr=0.134500, batch loss=0.096680, epoch loss=0.294434
Batch=239, step=15840, lr=0.134250, batch loss=0.108398, epoch loss=0.402832
Batch=299, step=15900, lr=0.134000, batch loss=0.046143, epoch loss=0.448975
Batch=359, step=15960, lr=0.133750, batch loss=0.091797, epoch loss=0.540771
Batch=419, step=16020, lr=0.133500, batch loss=0.114746, epoch loss=0.655518
Batch=479, step=16080, lr=0.133250, batch loss=0.064941, epoch loss=0.720459
Batch=539, step=16140, lr=0.133000, batch loss=0.106934, epoch loss=0.827393
Batch=599, step=16200, lr=0.132750, batch loss=0.070312, epoch loss=0.897705
Batch=659, step=16260, lr=0.132500, batch loss=0.095703, epoch loss=0.993408
Batch=719, step=16320, lr=0.132250, batch loss=0.086426, epoch loss=1.079834
Batch=779, step=16380, lr=0.132000, batch loss=0.084473, epoch loss=1.164307
Batch=839, step=16440, lr=0.131750, batch loss=0.098145, epoch loss=1.262451
Batch=899, step=16500, lr=0.131500, batch loss=0.122070, epoch loss=1.384521
Batch=959, step=16560, lr=0.131250, batch loss=0.149414, epoch loss=1.533936
Batch=1019, step=16620, lr=0.131000, batch loss=0.121582, epoch loss=1.655518
Batch=1079, step=16680, lr=0.130750, batch loss=0.034180, epoch loss=1.689697
Batch=1139, step=16740, lr=0.130500, batch loss=0.081055, epoch loss=1.770752
Batch=1199, step=16800, lr=0.130250, batch loss=0.042480, epoch loss=1.813232
Epoch=13, step=16800, lr=0.130250, epoch loss=1.813232
Batch=59, step=16860, lr=0.130000, batch loss=0.044189, epoch loss=0.044189
Batch=119, step=16920, lr=0.129750, batch loss=0.046143, epoch loss=0.090332
Batch=179, step=16980, lr=0.129500, batch loss=0.049805, epoch loss=0.140137
Batch=239, step=17040, lr=0.129250, batch loss=0.075684, epoch loss=0.215820
Batch=299, step=17100, lr=0.129000, batch loss=0.088379, epoch loss=0.304199
Batch=359, step=17160, lr=0.128750, batch loss=0.073242, epoch loss=0.377441
Batch=419, step=17220, lr=0.128500, batch loss=0.121094, epoch loss=0.498535
Batch=479, step=17280, lr=0.128250, batch loss=0.033447, epoch loss=0.531982
Batch=539, step=17340, lr=0.128000, batch loss=0.032227, epoch loss=0.564209
Batch=599, step=17400, lr=0.127750, batch loss=0.042969, epoch loss=0.607178
Batch=659, step=17460, lr=0.127500, batch loss=0.054688, epoch loss=0.661865
Batch=719, step=17520, lr=0.127250, batch loss=0.049561, epoch loss=0.711426
Batch=779, step=17580, lr=0.127000, batch loss=0.056152, epoch loss=0.767578
Batch=839, step=17640, lr=0.126750, batch loss=0.113281, epoch loss=0.880859
Batch=899, step=17700, lr=0.126500, batch loss=0.155273, epoch loss=1.036133
Batch=959, step=17760, lr=0.126250, batch loss=0.037109, epoch loss=1.073242
Batch=1019, step=17820, lr=0.126000, batch loss=0.081543, epoch loss=1.154785
Batch=1079, step=17880, lr=0.125750, batch loss=0.026245, epoch loss=1.181030
Batch=1139, step=17940, lr=0.125500, batch loss=0.053223, epoch loss=1.234253
Batch=1199, step=18000, lr=0.125250, batch loss=0.024902, epoch loss=1.259155
Epoch=14, step=18000, lr=0.125250, epoch loss=1.259155
Batch=59, step=18060, lr=0.125000, batch loss=0.018311, epoch loss=0.018311
Batch=119, step=18120, lr=0.124750, batch loss=0.022949, epoch loss=0.041260
Batch=179, step=18180, lr=0.124500, batch loss=0.032471, epoch loss=0.073730
Batch=239, step=18240, lr=0.124250, batch loss=0.041504, epoch loss=0.115234
Batch=299, step=18300, lr=0.124000, batch loss=0.010559, epoch loss=0.125793
Batch=359, step=18360, lr=0.123750, batch loss=0.029907, epoch loss=0.155701
Batch=419, step=18420, lr=0.123500, batch loss=0.035645, epoch loss=0.191345
Batch=479, step=18480, lr=0.123250, batch loss=0.029297, epoch loss=0.220642
Batch=539, step=18540, lr=0.123000, batch loss=0.051758, epoch loss=0.272400
Batch=599, step=18600, lr=0.122750, batch loss=0.028564, epoch loss=0.300964
Batch=659, step=18660, lr=0.122500, batch loss=0.037109, epoch loss=0.338074
Batch=719, step=18720, lr=0.122250, batch loss=0.027832, epoch loss=0.365906
Batch=779, step=18780, lr=0.122000, batch loss=0.047363, epoch loss=0.413269
Batch=839, step=18840, lr=0.121750, batch loss=0.081543, epoch loss=0.494812
Batch=899, step=18900, lr=0.121500, batch loss=0.135742, epoch loss=0.630554
Batch=959, step=18960, lr=0.121250, batch loss=0.023804, epoch loss=0.654358
Batch=1019, step=19020, lr=0.121000, batch loss=0.046387, epoch loss=0.700745
Batch=1079, step=19080, lr=0.120750, batch loss=0.010498, epoch loss=0.711243
Batch=1139, step=19140, lr=0.120500, batch loss=0.029785, epoch loss=0.741028
Batch=1199, step=19200, lr=0.120250, batch loss=0.014282, epoch loss=0.755310
Epoch=15, step=19200, lr=0.120250, epoch loss=0.755310
Batch=59, step=19260, lr=0.120000, batch loss=0.010010, epoch loss=0.010010
Batch=119, step=19320, lr=0.119750, batch loss=0.016846, epoch loss=0.026855
Batch=179, step=19380, lr=0.119500, batch loss=0.032715, epoch loss=0.059570
Batch=239, step=19440, lr=0.119250, batch loss=0.026611, epoch loss=0.086182
Batch=299, step=19500, lr=0.119000, batch loss=0.007416, epoch loss=0.093597
Batch=359, step=19560, lr=0.118750, batch loss=0.017578, epoch loss=0.111176
Batch=419, step=19620, lr=0.118500, batch loss=0.021729, epoch loss=0.132904
Batch=479, step=19680, lr=0.118250, batch loss=0.014221, epoch loss=0.147125
Batch=539, step=19740, lr=0.118000, batch loss=0.020020, epoch loss=0.167145
Batch=599, step=19800, lr=0.117750, batch loss=0.022217, epoch loss=0.189362
Batch=659, step=19860, lr=0.117500, batch loss=0.022095, epoch loss=0.211456
Batch=719, step=19920, lr=0.117250, batch loss=0.026733, epoch loss=0.238190
Batch=779, step=19980, lr=0.117000, batch loss=0.058350, epoch loss=0.296539
Batch=839, step=20040, lr=0.116750, batch loss=0.041992, epoch loss=0.338531
Batch=899, step=20100, lr=0.116500, batch loss=0.055908, epoch loss=0.394440
Batch=959, step=20160, lr=0.116250, batch loss=0.014282, epoch loss=0.408722
Batch=1019, step=20220, lr=0.116000, batch loss=0.024780, epoch loss=0.433502
Batch=1079, step=20280, lr=0.115750, batch loss=0.005707, epoch loss=0.439209
Batch=1139, step=20340, lr=0.115500, batch loss=0.018555, epoch loss=0.457764
Batch=1199, step=20400, lr=0.115250, batch loss=0.007263, epoch loss=0.465027
Epoch=16, step=20400, lr=0.115250, epoch loss=0.465027
Batch=59, step=20460, lr=0.115000, batch loss=0.003723, epoch loss=0.003723
Batch=119, step=20520, lr=0.114750, batch loss=0.009583, epoch loss=0.013306
Batch=179, step=20580, lr=0.114500, batch loss=0.020264, epoch loss=0.033569
Batch=239, step=20640, lr=0.114250, batch loss=0.024292, epoch loss=0.057861
Batch=299, step=20700, lr=0.114000, batch loss=0.015991, epoch loss=0.073853
Batch=359, step=20760, lr=0.113750, batch loss=0.016968, epoch loss=0.090820
Batch=419, step=20820, lr=0.113500, batch loss=0.016479, epoch loss=0.107300
Batch=479, step=20880, lr=0.113250, batch loss=0.003937, epoch loss=0.111237
Batch=539, step=20940, lr=0.113000, batch loss=0.018311, epoch loss=0.129547
Batch=599, step=21000, lr=0.112750, batch loss=0.022949, epoch loss=0.152496
Batch=659, step=21060, lr=0.112500, batch loss=0.014282, epoch loss=0.166779
Batch=719, step=21120, lr=0.112250, batch loss=0.031982, epoch loss=0.198761
Batch=779, step=21180, lr=0.112000, batch loss=0.050781, epoch loss=0.249542
Batch=839, step=21240, lr=0.111750, batch loss=0.029297, epoch loss=0.278839
Batch=899, step=21300, lr=0.111500, batch loss=0.033203, epoch loss=0.312042
Batch=959, step=21360, lr=0.111250, batch loss=0.016357, epoch loss=0.328400
Batch=1019, step=21420, lr=0.111000, batch loss=0.014465, epoch loss=0.342865
Batch=1079, step=21480, lr=0.110750, batch loss=0.001694, epoch loss=0.344559
Batch=1139, step=21540, lr=0.110500, batch loss=0.013977, epoch loss=0.358536
Batch=1199, step=21600, lr=0.110250, batch loss=0.006104, epoch loss=0.364639
Epoch=17, step=21600, lr=0.110250, epoch loss=0.364639
Batch=59, step=21660, lr=0.110000, batch loss=0.002930, epoch loss=0.002930
Batch=119, step=21720, lr=0.109750, batch loss=0.007935, epoch loss=0.010864
Batch=179, step=21780, lr=0.109500, batch loss=0.013550, epoch loss=0.024414
Batch=239, step=21840, lr=0.109250, batch loss=0.011841, epoch loss=0.036255
Batch=299, step=21900, lr=0.109000, batch loss=0.002731, epoch loss=0.038986
Batch=359, step=21960, lr=0.108750, batch loss=0.016357, epoch loss=0.055344
Batch=419, step=22020, lr=0.108500, batch loss=0.013367, epoch loss=0.068710
Batch=479, step=22080, lr=0.108250, batch loss=0.005157, epoch loss=0.073868
Batch=539, step=22140, lr=0.108000, batch loss=0.015747, epoch loss=0.089615
Batch=599, step=22200, lr=0.107750, batch loss=0.018555, epoch loss=0.108170
Batch=659, step=22260, lr=0.107500, batch loss=0.015198, epoch loss=0.123367
Batch=719, step=22320, lr=0.107250, batch loss=0.024658, epoch loss=0.148026
Batch=779, step=22380, lr=0.107000, batch loss=0.042725, epoch loss=0.190750
Batch=839, step=22440, lr=0.106750, batch loss=0.022217, epoch loss=0.212967
Batch=899, step=22500, lr=0.106500, batch loss=0.023193, epoch loss=0.236160
Batch=959, step=22560, lr=0.106250, batch loss=0.011475, epoch loss=0.247635
Batch=1019, step=22620, lr=0.106000, batch loss=0.009583, epoch loss=0.257217
Batch=1079, step=22680, lr=0.105750, batch loss=0.000652, epoch loss=0.257870
Batch=1139, step=22740, lr=0.105500, batch loss=0.013062, epoch loss=0.270931
Batch=1199, step=22800, lr=0.105250, batch loss=0.004883, epoch loss=0.275814
Epoch=18, step=22800, lr=0.105250, epoch loss=0.275814
Batch=59, step=22860, lr=0.105000, batch loss=0.001694, epoch loss=0.001694
Batch=119, step=22920, lr=0.104750, batch loss=0.006409, epoch loss=0.008102
Batch=179, step=22980, lr=0.104500, batch loss=0.012451, epoch loss=0.020554
Batch=239, step=23040, lr=0.104250, batch loss=0.009583, epoch loss=0.030136
Batch=299, step=23100, lr=0.104000, batch loss=0.008545, epoch loss=0.038681
Batch=359, step=23160, lr=0.103750, batch loss=0.014648, epoch loss=0.053329
Batch=419, step=23220, lr=0.103500, batch loss=0.012634, epoch loss=0.065964
Batch=479, step=23280, lr=0.103250, batch loss=0.002991, epoch loss=0.068954
Batch=539, step=23340, lr=0.103000, batch loss=0.019165, epoch loss=0.088120
Batch=599, step=23400, lr=0.102750, batch loss=0.015381, epoch loss=0.103500
Batch=659, step=23460, lr=0.102500, batch loss=0.013794, epoch loss=0.117294
Batch=719, step=23520, lr=0.102250, batch loss=0.015137, epoch loss=0.132431
Batch=779, step=23580, lr=0.102000, batch loss=0.022583, epoch loss=0.155014
Batch=839, step=23640, lr=0.101750, batch loss=0.026611, epoch loss=0.181625
Batch=899, step=23700, lr=0.101500, batch loss=0.025024, epoch loss=0.206650
Batch=959, step=23760, lr=0.101250, batch loss=0.009399, epoch loss=0.216049
Batch=1019, step=23820, lr=0.101000, batch loss=0.008118, epoch loss=0.224167
Batch=1079, step=23880, lr=0.100750, batch loss=0.001434, epoch loss=0.225601
Batch=1139, step=23940, lr=0.100500, batch loss=0.009766, epoch loss=0.235367
Batch=1199, step=24000, lr=0.100250, batch loss=0.005676, epoch loss=0.241043
Epoch=19, step=24000, lr=0.100250, epoch loss=0.241043


Half-moons scatterplot and decision boundary:
┌────────────────────────────────────────────────────────────────────────────────────────────────────┐
│*********************************#******************************************************************│
│***********************##*#######*###**####*********************************************************│
│*********************##########################*****************************************************│
│*****************#**########*######*################************************************************│
│***************#############*#######################************************************************│
│************######*#################*#################**********************************************│
│**********#*#####*########*#**************##*#########*#********************************************│
│***********###########*#******************#*****########*#******************************************│
│***********#######*###*************************############***************************************..│
│********###########*********************************###**##*#**********************************.....│
│*******######**##**********************************#*######*#*********************************......│
│*****#*##*##**##***********..........***************##*########****************************.........│
│*****#######************.......%...%.%..***************#########*************************.........%.│
│******######***********.........%........****************#*#####************************......%.%.%.│
│***#########**********.........%%%.%%......*************#*#######***********************.....%.%%%%%│
│****#######***********.........%%%%.........************#########*********************.......%%.%%.%│
│**#######************..........%%%%%%%........*************###*###*******************........%%.%%%.│
│**#*####*************..........%%%%%%%.........***********########******************.........%%%%%%.│
│*#######************...........%%%%%%%..........************#######***************...........%%%%%%.│
│*##*####************...........%%.%%%%%...........***********####****************..........%.%%%%%%.│
│*#######***********.............%%%%%%%............**********##*##*#************.............%%%%%..│
│########***********.............%%%%%%%.............*********#######**********.............%%%%%%%..│
│#######***********..............%%%%%%%...............*******#######*********..............%%%%%%%%.│
│###*#**#*********................%%%%%%%%..............*******#######*******...............%%%%%%...│
│#######**********................%%%%%%%%................****###*###******................%%%%%%....│
│#######*********.................%%%%%%%%%................***#*####******................%%%%%%%%...│
│*#*####*********..................%%%%%%%%%%...............***######****.................%%%%%%.....│
│#****##********....................%%.%%%%%%.................**###*##**...............%.%%%%%%%.....│
│***************....................%.%%%%%%...................********.................%.%%.%%......│
│**************.......................%..%%%%%%%................*****...............%%%%%.%%%%.......│
│**************.........................%%%%.%%%%.................**...............%%%%%%%.%.%.......│
│*************...........................%..%%%%..%................................%%%%%%%%..........│
│*************............................%%%%%%%%%%%........................%%..%%%%%%%%.%..........│
│************.............................%%.%%%%%%%%..%.....................%.%%%.%%%%%%%...........│
│***********.................................%%%%.%%%%%%%%...............%.%%%%%%%%%%%%.%............│
│***********..................................%%%%%%.%%%%%%%%%%%%%%%.%%%%.%%%%%%%%%%%%%..............│
│**********....................................%%.%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%................│
│**********........................................%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%...................│
│*********.........................................%..%%%.%%%%%%%%%%%%%%%%%%%%%......................│
│*********...............................................%...%%%%.%%.%%%%..%.........................│
└────────────────────────────────────────────────────────────────────────────────────────────────────┘
"/usr/bin/env" "bash" "-c" "opam exec -- dune build @install @check @runtest && rm -rf _build" failed with exit status 1
2025-05-31 10:12.15: Job failed: Failed: Build failed