From 842f125ac07f12cf844bb530b1e3755ea65af7da Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Thu, 24 Sep 2026 14:03:31 +0200 Subject: [PATCH 1/6] profiling(point_source): static step-0 lattice A/B cell + RAL CPU/A100 submits (PyAutoArray#568 phase 3) scripts/point_source/likelihood_breakdown/static_lattice_ab.py: interleaved in-process A/B of AbstractSolver._initial_triangles with four routes -- control (flat 3N table, 69 849 rows), exact (28 665 exact-float rows), lattice (11 859 geometric vertices), library (self-labels from the traced step-0 deflection row count). Fresh closures + jax.clear_caches(); 20 x 20 default protocol; records FLOPs, memory_analysis, RSS delta, compile/lower/ first-call, table build + cache-hit time, observed XLA thread count and affinity. Tolerance gates (log L rel 1e-12, image counts + positions 1e-10, non-zero grad, vmap, step-0 containing sets). --constant-folding re-enables folding in a separate process via a dummy pass name and refuses (CPU) unless an HLO probe confirms folding ran. Submits: RAL CPU pinned to euclid-ral-compute-1 (phase-2 EPYC host), folding off + on, branch clones of PyAutoArray/PyAutoLens with import-origin refusal; A100 regression leg. Co-Authored-By: Claude Opus 5.5 --- ...oint_source_static_lattice_ab_ral_cpu_fp64 | 165 ++ ...n_point_source_static_lattice_ab_a100_fp64 | 125 ++ .../likelihood_breakdown/static_lattice_ab.py | 1577 +++++++++++++++++ 3 files changed, 1867 insertions(+) create mode 100755 hpc/batch_cpu/submit_breakdown_point_source_static_lattice_ab_ral_cpu_fp64 create mode 100755 hpc/batch_gpu/submit_breakdown_point_source_static_lattice_ab_a100_fp64 create mode 100644 scripts/point_source/likelihood_breakdown/static_lattice_ab.py diff --git a/hpc/batch_cpu/submit_breakdown_point_source_static_lattice_ab_ral_cpu_fp64 b/hpc/batch_cpu/submit_breakdown_point_source_static_lattice_ab_ral_cpu_fp64 new file mode 100755 index 000000000..cab0fc2e5 --- /dev/null +++ b/hpc/batch_cpu/submit_breakdown_point_source_static_lattice_ab_ral_cpu_fp64 @@ -0,0 +1,165 @@ +#!/bin/bash -l +# +# 2026-09 point-source CPU speed-up campaign, phase 3: the static step-0 +# lattice A/B (PyAutoArray#568). +# +# WHAT THIS MEASURES. One interleaved, in-process A/B of the JAX PointSolver's +# step-0 tiling (AbstractSolver._initial_triangles) inside the production +# point-source likelihoods, on ONE pinned, quiet RAL CPU node: +# +# scripts/point_source/likelihood_breakdown/static_lattice_ab.py +# control = the flat (3N, 2) per-triangle table (phase-2 main path; +# 69 849 step-0 rows for the simple lattice) -- the IN-JOB control; +# exact = the 28 665 exact-float distinct rows + inverse map (cell-built); +# lattice = the 11 859 geometric lattice vertices (cell-built, same +# arithmetic as the library's static_vertex_table); +# library = no substitution -- the imported PyAutoLens/PyAutoArray. HERE +# those are the FEATURE BRANCH clones (see LIBRARY below), so it +# must self-label library_matches = lattice. +# Rows: simple solved + plain + vmap-4 of solved; cluster solved + plain. +# Protocol: 20 rounds x 20 calls, route order rotated each round. +# Gates (tolerance, recorded in gate_summary): log L rel <= 1e-12, image +# counts identical + positions <= 1e-10, simple-solved grad allclose 1e-10, +# finite and NON-zero, vmap-vs-scalar rtol 1e-12, simple-plain step-0 +# containing_indices sets identical. +# +# TWO RUNS, TWO PROCESSES. (1) constant folding DISABLED (the flags every PyAuto +# submit uses); (2) --constant-folding: the cell swaps the disable flag for the +# dummy pass name constant_folding_probe_disabled before jax is imported +# (PyAutoNerves re-adds the real flag only when the substring is missing), and +# refuses to run unless its HLO probe shows that folding actually ran. +# +# HOST PINNING. Phase 1 landed on euclid-ral-compute-10-2 (Xeon 8490H) and +# phase 2 on euclid-ral-compute-1 (EPYC 7763); cluster control differed 15-20 % +# between them (host, not drift). This job is pinned to the phase-2 host with +# --nodelist so phase-2 and phase-3 numbers share a CPU; the control route is +# measured in the same job regardless, and only in-job ratios are quoted. +# If euclid-ral-compute-1 is down or saturated (sinfo -p ral -N -o "%N %t %C"), +# edit --nodelist to another node and say so in the campaign note. +# +# LIBRARY. The shared /mnt/ral/jnightin/PyAuto mirror is main. This submit +# PREPENDS git clones of PyAutoArray and PyAutoLens feature/point-source-cpu-p3 +# to PYTHONPATH. Prepare them once: +# +# for r in PyAutoArray PyAutoLens; do +# git clone --shared /mnt/ral/jnightin/PyAuto/$r /mnt/ral/jnightin/autolens_profiling_wt/${r}_point-source-cpu-p3 +# git -C /mnt/ral/jnightin/autolens_profiling_wt/${r}_point-source-cpu-p3 fetch \ +# https://github.com/PyAutoLabs/$r.git feature/point-source-cpu-p3 +# git -C /mnt/ral/jnightin/autolens_profiling_wt/${r}_point-source-cpu-p3 checkout --detach FETCH_HEAD +# done +# +# The job refuses to run unless autoarray AND autolens import from those clones; +# the JSON's source_revisions record their HEADs. +# +# THREADS. OMP/MKL/OPENBLAS pinned to 1 (BLAS family only); the JAX CPU pool +# sizes from the 8 CPUs of --cpus-per-task=8. The JSON records thread_environment, +# the observed process thread count after the first compile, sched_affinity, +# os_cpu_count and loadavg at start and end. +# +# Writes results/breakdown/point_source/static_lattice_ab_hpc_ral_cpu_fp64.{json,png} +# and static_lattice_ab_constant_folding_hpc_ral_cpu_fp64.{json,png}. +# +# WALL-BASIS: +# Laptop witness (WSL2, 8 cores, loaded, 2026-09-24), this cell at 20 x 20, simple + +# cluster: 975 s wall folding off (static_lattice_ab_laptop_cpu_fp64, first run) and +# 1571 s folding on (static_lattice_ab_constant_folding_laptop_cpu_fp64; the cluster +# plain control compile alone took 555 s with folding on). This job runs both: 2546 s, +# x 2.0 headroom = 5092 s, inside the 3-hour request. +# cell: point_source/static_lattice_ab/simple device: cpu precision: fp64 +# source: measured-wall wall: 2546 ref: laptop-point_source-static_lattice_ab_laptop_cpu_fp64 headroom: 2.0 + +#SBATCH -J static_lattice_ab +#SBATCH --partition=ral +#SBATCH --nodelist=euclid-ral-compute-1 +#SBATCH --ntasks=1 +#SBATCH --cpus-per-task=8 +#SBATCH --mem=32gb +#SBATCH --time=3:00:00 +#SBATCH -o output/output.%A.out +#SBATCH -e error/error.%A.err +#SBATCH --mail-type=END,FAIL +#SBATCH --mail-user=james.w.nightingale@durham.ac.uk + +# Repo root from where this was submitted (hpc/batch_cpu/../..), so it runs from +# a worktree of the feature branch. sbatch from inside hpc/batch_cpu/. +export AP_ROOT="$(cd "${SLURM_SUBMIT_DIR:-$(dirname "$0")}/../.." && pwd)" +echo "AP_ROOT=$AP_ROOT" +source $AP_ROOT/activate.sh + +export AA_BRANCH_SRC="${AA_BRANCH_SRC:-/mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_point-source-cpu-p3}" +export AL_BRANCH_SRC="${AL_BRANCH_SRC:-/mnt/ral/jnightin/autolens_profiling_wt/PyAutoLens_point-source-cpu-p3}" +for src in "$AA_BRANCH_SRC/autoarray" "$AL_BRANCH_SRC/autolens"; do + if [ ! -f "$src/__init__.py" ]; then + echo "FATAL: $src is not a library checkout (see LIBRARY in the header)" >&2 + exit 2 + fi +done +export PYTHONPATH="$AA_BRANCH_SRC:$AL_BRANCH_SRC:$PYTHONPATH" + +export OMP_NUM_THREADS=1 +export MKL_NUM_THREADS=1 +export OPENBLAS_NUM_THREADS=1 +export NPROC=${SLURM_CPUS_PER_TASK:-8} +export JAX_PLATFORMS=cpu +export JAX_ENABLE_X64=1 +export XLA_FLAGS="--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false" +export NUMBA_CACHE_DIR=$AP_ROOT/output/numba_cache_${SLURM_JOB_ID:-local} +export MPLCONFIGDIR=/tmp/matplotlib_${SLURM_JOB_ID:-local} +mkdir -p "$NUMBA_CACHE_DIR" "$MPLCONFIGDIR" +# NO persistent JAX compile cache: the two runs differ only in XLA_FLAGS, and +# compile_s is a gate (+20 % stop rule), so every compile must be cold. +unset JAX_COMPILATION_CACHE_DIR + +echo "==========================================" +date +hostname +lscpu | grep 'Model name' || true +echo "partition: ${SLURM_JOB_PARTITION:-unset}" +echo "nodelist: ${SLURM_JOB_NODELIST:-unset}" +echo "cpus-per-task: ${SLURM_CPUS_PER_TASK:-unset}" +echo "sched_affinity: $(python3 -c 'import os; print(len(os.sched_getaffinity(0)))')" +echo "loadavg: $(cat /proc/loadavg)" +echo "Cell: point_source/likelihood_breakdown/static_lattice_ab" +echo "Precision: fp64 (JAX_ENABLE_X64=$JAX_ENABLE_X64)" +echo "Thread env: OMP=$OMP_NUM_THREADS MKL=$MKL_NUM_THREADS OPENBLAS=$OPENBLAS_NUM_THREADS NPROC=$NPROC" +echo "XLA_FLAGS: $XLA_FLAGS" + +echo "=== source revisions ===" +for r in PyAutoNerves PyAutoFit PyAutoArray PyAutoGalaxy PyAutoLens; do + printf '%-14s %s\n' "$r (shared)" "$(git -C /mnt/ral/jnightin/PyAuto/$r rev-parse HEAD 2>&1)" +done +echo "PyAutoArray (branch clone, IMPORTED): $(git -C $AA_BRANCH_SRC rev-parse HEAD 2>&1)" +echo "PyAutoLens (branch clone, IMPORTED): $(git -C $AL_BRANCH_SRC rev-parse HEAD 2>&1)" +echo "AP_ROOT rev: $(git -C $AP_ROOT rev-parse HEAD 2>&1)" +echo "AP_ROOT branch: $(git -C $AP_ROOT rev-parse --abbrev-ref HEAD 2>&1)" + +cd $AP_ROOT + +echo "=== import provenance (refuses unless both libraries come from the branch clones) ===" +python3 -c " +import os, autoarray, autolens, autofit, autogalaxy, jax +for m in (autoarray, autolens, autofit, autogalaxy): + print(f'{m.__name__}.__file__ =', m.__file__) +print('jax', jax.__version__, jax.devices()) +assert os.path.realpath(autoarray.__file__).startswith(os.path.realpath(os.environ['AA_BRANCH_SRC'])), 'autoarray not imported from the branch clone' +assert os.path.realpath(autolens.__file__).startswith(os.path.realpath(os.environ['AL_BRANCH_SRC'])), 'autolens not imported from the branch clone' +from autoarray.structures.triangles.coordinate_array import static_vertex_table +print('ASSERT OK: autoarray + autolens from the branch clones; static_vertex_table present') +" || exit 3 + +echo "==========================================" +echo "run 1/2: constant folding DISABLED (20 x 20, simple + cluster)" +date +echo "loadavg: $(cat /proc/loadavg)" +python3 -u scripts/point_source/likelihood_breakdown/static_lattice_ab.py --config-name hpc_ral_cpu_fp64 --rounds 20 --calls 20 + +echo "==========================================" +echo "run 2/2: constant folding ENABLED, separate process (20 x 20, simple + cluster)" +date +echo "loadavg: $(cat /proc/loadavg)" +python3 -u scripts/point_source/likelihood_breakdown/static_lattice_ab.py --config-name hpc_ral_cpu_fp64 --rounds 20 --calls 20 --constant-folding + +echo "==========================================" +echo "loadavg: $(cat /proc/loadavg)" +echo "Finished." +date diff --git a/hpc/batch_gpu/submit_breakdown_point_source_static_lattice_ab_a100_fp64 b/hpc/batch_gpu/submit_breakdown_point_source_static_lattice_ab_a100_fp64 new file mode 100755 index 000000000..eb6b87fae --- /dev/null +++ b/hpc/batch_gpu/submit_breakdown_point_source_static_lattice_ab_a100_fp64 @@ -0,0 +1,125 @@ +#!/bin/bash -l +# +# 2026-09 point-source CPU speed-up campaign, phase 3: the GPU regression leg +# for the static step-0 lattice (PyAutoArray#568). +# +# WHAT THIS MEASURES. The same interleaved, in-process four-route A/B as the RAL +# CPU submit (hpc/batch_cpu/submit_breakdown_point_source_static_lattice_ab_ral_cpu_fp64) +# on ONE RAL A100, constant folding disabled only (the production flags): +# +# scripts/point_source/likelihood_breakdown/static_lattice_ab.py +# control = flat 69 849-row step-0 table (phase-2 main path, in-job control); +# exact = 28 665 exact-float rows; lattice = 11 859 geometric vertices; +# library = the FEATURE BRANCH clones (LIBRARY below) -- must self-label +# library_matches = lattice. +# Rows: simple solved + plain + vmap-4 of solved; cluster solved + plain. +# Protocol: 20 rounds x 20 calls. The stop rule rejects phase 3 on any GPU +# regression, so the question here is lattice/library vs control >= 1. +# +# PRECISION. fp64 only (the PointSolver has no mixed-precision switch). +# +# LIBRARY. Prepends git clones of PyAutoArray and PyAutoLens +# feature/point-source-cpu-p3 to PYTHONPATH (prepare them as in the CPU submit's +# LIBRARY block). The job refuses to run unless autoarray and autolens import +# from those clones. +# +# BACKEND. JAX_PLATFORMS=cuda (NOT "cuda,cpu": a list can silently fall back to +# CPU) and JAX_PLATFORM_NAME=cuda; the job asserts jax.default_backend()=="gpu". +# XLA_FLAGS are byte-identical to the CPU submit's run 1. +# +# WALL-BASIS: +# Phase-2 A100 job 350587 ran the three-route vertex_dedup_ab cell (20 x 20, +# simple + cluster); this cell adds a fourth route and a step-0 gate row, so the +# laptop witness of THIS cell (975 s wall, folding off, 20 x 20, simple + cluster) is +# the basis, with 2.0 headroom for slower GPU compiles of the cluster HLO. +# cell: point_source/static_lattice_ab/simple device: gpu precision: fp64 +# source: measured-wall wall: 975 ref: laptop-point_source-static_lattice_ab_laptop_cpu_fp64 headroom: 2.0 + +#SBATCH -J static_lattice_ab_gpu +#SBATCH --partition=gpu +#SBATCH --gres=gpu:1 +#SBATCH --ntasks=1 +#SBATCH --cpus-per-task=8 +#SBATCH --mem=32gb +#SBATCH --time=3:00:00 +#SBATCH -o output/output.%A.out +#SBATCH -e error/error.%A.err +#SBATCH --mail-type=END,FAIL +#SBATCH --mail-user=james.w.nightingale@durham.ac.uk + +# Repo root from where this was submitted (hpc/batch_gpu/../..). sbatch from +# inside hpc/batch_gpu/. +export AP_ROOT="$(cd "${SLURM_SUBMIT_DIR:-$(dirname "$0")}/../.." && pwd)" +echo "AP_ROOT=$AP_ROOT" +source $AP_ROOT/activate.sh + +export AA_BRANCH_SRC="${AA_BRANCH_SRC:-/mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_point-source-cpu-p3}" +export AL_BRANCH_SRC="${AL_BRANCH_SRC:-/mnt/ral/jnightin/autolens_profiling_wt/PyAutoLens_point-source-cpu-p3}" +for src in "$AA_BRANCH_SRC/autoarray" "$AL_BRANCH_SRC/autolens"; do + if [ ! -f "$src/__init__.py" ]; then + echo "FATAL: $src is not a library checkout (see LIBRARY in the header)" >&2 + exit 2 + fi +done +export PYTHONPATH="$AA_BRANCH_SRC:$AL_BRANCH_SRC:$PYTHONPATH" + +export OMP_NUM_THREADS=1 +export MKL_NUM_THREADS=1 +export OPENBLAS_NUM_THREADS=1 +export NPROC=${SLURM_CPUS_PER_TASK:-8} +export JAX_PLATFORM_NAME=cuda +export JAX_PLATFORMS=cuda +export XLA_PYTHON_CLIENT_PREALLOCATE=false +export JAX_ENABLE_X64=1 +export XLA_FLAGS="--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false" +export NUMBA_CACHE_DIR=$AP_ROOT/output/numba_cache_${SLURM_JOB_ID:-local} +export MPLCONFIGDIR=/tmp/matplotlib_${SLURM_JOB_ID:-local} +mkdir -p "$NUMBA_CACHE_DIR" "$MPLCONFIGDIR" +# No persistent compile cache: compile_s is a gate and must be cold per route. +unset JAX_COMPILATION_CACHE_DIR + +echo "==========================================" +date +hostname +lscpu | grep 'Model name' || true +nvidia-smi --query-gpu=name,driver_version,memory.total,utilization.gpu --format=csv || true +echo "partition: ${SLURM_JOB_PARTITION:-unset}" +echo "gpus: ${CUDA_VISIBLE_DEVICES:-unset}" +echo "cpus-per-task: ${SLURM_CPUS_PER_TASK:-unset}" +echo "loadavg: $(cat /proc/loadavg)" +echo "Cell: point_source/likelihood_breakdown/static_lattice_ab" +echo "Backend: JAX_PLATFORMS=$JAX_PLATFORMS JAX_PLATFORM_NAME=$JAX_PLATFORM_NAME" +echo "XLA_FLAGS: $XLA_FLAGS" + +echo "=== source revisions ===" +for r in PyAutoNerves PyAutoFit PyAutoArray PyAutoGalaxy PyAutoLens; do + printf '%-14s %s\n' "$r (shared)" "$(git -C /mnt/ral/jnightin/PyAuto/$r rev-parse HEAD 2>&1)" +done +echo "PyAutoArray (branch clone, IMPORTED): $(git -C $AA_BRANCH_SRC rev-parse HEAD 2>&1)" +echo "PyAutoLens (branch clone, IMPORTED): $(git -C $AL_BRANCH_SRC rev-parse HEAD 2>&1)" +echo "AP_ROOT rev: $(git -C $AP_ROOT rev-parse HEAD 2>&1)" +echo "AP_ROOT branch: $(git -C $AP_ROOT rev-parse --abbrev-ref HEAD 2>&1)" + +cd $AP_ROOT + +echo "=== import provenance + backend assertion ===" +python3 -c " +import os, autoarray, autolens, autofit, autogalaxy, jax +for m in (autoarray, autolens, autofit, autogalaxy): + print(f'{m.__name__}.__file__ =', m.__file__) +print('jax', jax.__version__, jax.devices(), jax.default_backend()) +assert jax.default_backend() == 'gpu', 'JAX is not on the GPU' +assert os.path.realpath(autoarray.__file__).startswith(os.path.realpath(os.environ['AA_BRANCH_SRC'])), 'autoarray not imported from the branch clone' +assert os.path.realpath(autolens.__file__).startswith(os.path.realpath(os.environ['AL_BRANCH_SRC'])), 'autolens not imported from the branch clone' +print('ASSERT OK: GPU backend, autoarray + autolens from the branch clones') +" || exit 3 + +echo "==========================================" +echo "static-lattice A/B on A100 (20 x 20, simple + cluster)" +date +python3 -u scripts/point_source/likelihood_breakdown/static_lattice_ab.py --config-name hpc_ral_a100_fp64 --rounds 20 --calls 20 + +echo "==========================================" +nvidia-smi --query-gpu=name,memory.used --format=csv || true +echo "Finished." +date diff --git a/scripts/point_source/likelihood_breakdown/static_lattice_ab.py b/scripts/point_source/likelihood_breakdown/static_lattice_ab.py new file mode 100644 index 000000000..6b6704122 --- /dev/null +++ b/scripts/point_source/likelihood_breakdown/static_lattice_ab.py @@ -0,0 +1,1577 @@ +""" +JAX Profiling: PointSolver Static Step-0 Lattice A/B (point-source CPU campaign, phase 3) +======================================================================================== + +An interleaved, in-process A/B of the JAX ``PointSolver``'s step-0 triangle tiling +inside the production point-source likelihoods (PyAutoArray #568, phase 3). + +The mechanism +------------- + +``AbstractSolver.steps`` builds the step-0 tiling with +``AbstractSolver._initial_triangles`` and ray-traces ``triangles.vertices``. After +phase 2 (PyAutoArray ``681938ae``) the JAX ``vertices`` table is the flat ``(3N, 2)`` +per-triangle table: for the simple solver's +-9.9" / 0.2" lattice that is 69 849 +rows, of which only 28 665 are exact-float distinct and only **11 859** are +geometrically distinct (a lattice point shared by up to six triangles is computed +from each triangle's centre and the copies differ by ~1 ulp). The lattice depends +only on the solver geometry (static pytree aux data), so the unique table is a +compile-time constant: deflecting it and gathering back cuts the step-0 deflections +5.9x. After phase 2 deflections are 70 % of the simple call's FLOPs, and step 0 is +about half of them. + +The four routes +--------------- + +Each route swaps ``AbstractSolver._initial_triangles`` for the duration of +**tracing** only (:func:`route_injected`: signature check, call counters, restore by +identity): + +- ``control`` -- the flat ``(3N, 2)`` table: ``CoordinateArrayTriangles + .for_limits_and_scale`` with no table, i.e. the phase-2 main path (69 849 rows + for the simple lattice). +- ``exact`` -- a table of the exact-float distinct vertex rows (28 665) and the + inverse index map, built by this cell in NumPy. +- ``lattice`` -- the geometric table keyed on integer lattice positions (11 859), + built by this cell in NumPy with the same arithmetic as the library's + ``static_vertex_table``. +- ``library`` -- no substitution: whatever the imported PyAutoLens / PyAutoArray do. + It **self-labels** from the row count of the grid its step 0 deflects while + tracing: ``library_matches = control | exact | lattice | neither``. On the phase-3 + branch it must read ``lattice``; on main, ``control``. + +``exact`` and ``lattice`` are carried as a subclass of the library's +``CoordinateArrayTriangles`` whose ``_vertices_and_indices`` returns the cell's table, +so both routes run on PyAutoArray main as well as on the branch. Derived lattices +(``for_indexes`` / ``up_sample`` / ``neighborhood``) are built as the base class, so +steps >= 1 are identical in every route. + +Every route records the row count of its step-0 deflection grid (from a wrapper of +``AbstractSolver._plane_grid`` armed by the injected ``_initial_triangles``); a route +whose count is not its expected one, or whose substitute never ran while tracing, is a +FAIL, not a number. + +The measurement trap +-------------------- + +``jax`` caches traced jaxprs on function identity. Every route lowers a **fresh** +closure from a factory (fresh ``PointSolver`` and ``AnalysisPoint`` too) after +``jax.clear_caches()``. Once compiled an executable no longer depends on the patch, +so the four executables coexist and the timed calls run with nothing patched. + +The A/B protocol +---------------- + +Rows (``--models``): ``simple`` = the phase-1 harness model, dataset and solver (SIE, +``PointSolver.for_grid`` 100x100 @ 0.2", precision 0.001") with the fused +``FitPositionsImagePairAllSolved`` (``solved``) and ``FitPositionsImagePairAll`` +(``plain``) likelihoods, plus a ``vmap`` batch row of the solved likelihood; +``cluster`` = the two-source 13-component model (200x200 @ 0.7", precision 0.01") +with ``FitPositionsImagePairRepeat`` / ``...Solved`` summed over both systems. + +Each compiled likelihood takes the physical parameter vector and builds the instance +inside the trace. Per row: compile each route once, warm >= 3 calls, then +``--rounds`` (default 20) round-robin rounds, route order rotating, ``--calls`` +(default 20) calls per route per round. Per route: median / p10 / p90 / min / max +per-call ms; bootstrap 90 % intervals of the median ratios ``control / lattice``, +``control / exact``, ``exact / lattice`` and ``library / lattice``; the minimum +detectable improvement ``(p90 - p10) / median`` of the control route. + +Per route and row the cell also records: lower / compile / first-call seconds; +``cost_analysis`` FLOPs; ``compiled.memory_analysis()`` (argument / output / temp / +generated-code bytes); the process RSS before and after the lower + compile; the +HLO line count and hash; and, once per run, the cell table build time (cold and +cache hit), the table sizes in MB, the library ``static_vertex_table`` build and +cache-hit time when it exists, and the XLA CPU thread count observed after the +first compile (threads of this process), the scheduler affinity and ``os.cpu_count``. + +Correctness gates (the tolerance gate the human chose, 2026-09-24; recorded, never +asserted): log likelihood relative difference <= 1e-12 vs control on every streamed +instance; solved image positions: identical finite-image counts per instance and max +|delta| <= 1e-10; for the simple solved likelihood ``jax.grad`` finite, NON-zero and +``allclose(rtol=1e-10, atol=1e-12)``; ``vmap`` values equal to the per-instance scalar +values (rtol 1e-12); for simple plain, the step-0 ``containing_indices`` set of each +gate instance is identical across routes. + +Constant folding +---------------- + +Every PyAuto submit runs with ``--xla_disable_hlo_passes=constant_folding`` (set by +PyAutoNerves ``jax_wrapper`` whenever the substring is missing). With a constant +table, folding could pre-evaluate the control route's lattice arithmetic too, so the +comparison is re-run with folding ENABLED in a separate process: ``--constant-folding`` +replaces the flag, before ``jax`` is imported, with the dummy pass name +``--xla_disable_hlo_passes=constant_folding_probe_disabled`` -- it contains the +substring, so Nerves does not re-add the real flag, and names no real pass, so XLA +folds. The JSON's ``constant_folding.probe`` compiles a dot of two 1000-element +constants and records whether the optimised HLO entry still carries a computation +(folding off) or only a literal (folding on): the probe, not the flag string, is the evidence, and +the cell refuses to run when the probe disagrees with the request. (Elementwise +arithmetic on constants is folded in both modes, so it is no probe.) + +Output +------ + +``results/breakdown/point_source/static_lattice_ab_.{json,png}`` +(``..._constant_folding`` suffix for the folding run). As in the phase-2 cell the JSON +carries no top-level ``autolens_version``, so ``build_readme.py`` does not auto-table +it. A ``laptop_*`` config is load-inflated and is recorded ``quotable: false``. +""" + +import os +import sys +import time +from pathlib import Path + +# --constant-folding must act BEFORE jax (or autonerves) is imported. +CONSTANT_FOLDING = "--constant-folding" in sys.argv +_FOLDING_DISABLE = "--xla_disable_hlo_passes=constant_folding" +_FOLDING_DUMMY = "--xla_disable_hlo_passes=constant_folding_probe_disabled" +_XLA_FLAGS_REQUESTED = os.environ.get("XLA_FLAGS") +if CONSTANT_FOLDING: + _flags = [f for f in (_XLA_FLAGS_REQUESTED or "").split() if f != _FOLDING_DISABLE] + os.environ["XLA_FLAGS"] = " ".join(_flags + [_FOLDING_DUMMY]) + + +def _profiling_root() -> Path: + for parent in Path(__file__).resolve().parents: + if (parent / "ruff.toml").exists(): + return parent + raise RuntimeError("autolens_profiling root (ruff.toml) not found") + + +_ROOT = _profiling_root() +_MISC = str(_ROOT / "scripts" / "misc") +if _MISC not in sys.path: + sys.path.insert(0, _MISC) +if str(_ROOT) not in sys.path: + sys.path.insert(0, str(_ROOT)) + +import argparse +import contextlib +import functools +import hashlib +import inspect +import json +import re + +import jax +import jax.numpy as jnp +import jaxlib +import matplotlib +import numpy as np + +if os.environ.get("AUTOLENS_PROFILING_SMOKE") == "1": + print(f"[smoke] {__file__}: imports + module setup OK; exiting.") + sys.exit(0) + +from likelihood_breakdown.provenance import source_revisions, thread_environment # noqa: E402 +from likelihood_breakdown.timing import block # noqa: E402 + +from _profile_cli import ( # noqa: E402 + auto_simulate_if_missing, + device_info_dict, + machine_info_dict, + parse_profile_cli, + resolve_output_paths, +) + +_WALL_START = time.perf_counter() +_LOADAVG_START = os.getloadavg() + +_cli = parse_profile_cli() +_cell_parser = argparse.ArgumentParser(add_help=False, allow_abbrev=False) +_cell_parser.add_argument("--rounds", type=int, default=None) +_cell_parser.add_argument("--calls", type=int, default=None) +_cell_parser.add_argument("--vmap-batch", type=int, default=4) +_cell_parser.add_argument("--n-stream", type=int, default=16) +_cell_parser.add_argument("--warm", type=int, default=3) +_cell_parser.add_argument("--gate-instances", type=int, default=3) +_cell_parser.add_argument("--seed", type=int, default=568) +_cell_parser.add_argument("--models", default=None, help="comma list of simple,cluster") +_cell_parser.add_argument( + "--constant-folding", + action="store_true", + help="re-enable XLA constant folding (acted on before jax is imported; see docstring)", +) +_cell_parser.add_argument( + "--quick", action="store_true", help="rounds=5, calls=3, simple model only" +) +_args = _cli.parse_cell_args(_cell_parser) + +QUICK = bool(_args.quick) +N_ROUNDS = _args.rounds if _args.rounds is not None else (5 if QUICK else 20) +N_CALLS = _args.calls if _args.calls is not None else (3 if QUICK else 20) +N_STREAM = _args.n_stream +N_WARM = max(3, _args.warm) +N_GATE = max(3, _args.gate_instances) +VMAP_BATCH = _args.vmap_batch +SEED = _args.seed +MODELS = tuple( + m.strip() + for m in (_args.models or ("simple" if QUICK else "simple,cluster")).split(",") + if m.strip() +) +for _m in MODELS: + if _m not in ("simple", "cluster"): + raise SystemExit(f"--models: unknown model {_m!r} (expected simple / cluster)") +if N_ROUNDS < 1 or N_CALLS < 1 or VMAP_BATCH < 1: + raise SystemExit("--rounds, --calls and --vmap-batch must be positive") + +matplotlib.use("Agg") +import autoarray as aa # noqa: E402 +import autofit as af # noqa: E402 +import autolens as al # noqa: E402 +import matplotlib.pyplot as plt # noqa: E402 +from autoarray.structures.triangles import coordinate_array as _coordinate_array # noqa: E402 +from autoarray.structures.triangles.abstract import HEIGHT_FACTOR # noqa: E402 +from autoarray.structures.triangles.shape import Point # noqa: E402 +from autofit.jax import register_model as register_model_pytrees # noqa: E402 +from autolens.point.solver import shape_solver as _shape_solver # noqa: E402 + +ROUTES = ("control", "exact", "lattice", "library") +TARGET_DOTTED = "autolens.point.solver.shape_solver.AbstractSolver._initial_triangles" +BOOTSTRAP_SAMPLES = 2000 +BOOTSTRAP_SEED = 12345 +LOGL_RTOL = 1.0e-12 +POSITIONS_ATOL = 1.0e-10 +GRAD_RTOL = 1.0e-10 +GRAD_ATOL = 1.0e-12 +VMAP_RTOL = 1.0e-12 +RATIOS = ( + ("control", "lattice"), + ("control", "exact"), + ("exact", "lattice"), + ("library", "lattice"), + ("control", "library"), +) + + +# --------------------------------------------------------------------------- +# The cell's own step-0 tables (NumPy, never staged into a trace) +# --------------------------------------------------------------------------- + + +def _lattice_coordinates(y_min, y_max, x_min, x_max, scale) -> np.ndarray: + """The integer (y, x) lattice ``CoordinateArrayTriangles.for_limits_and_scale`` tiles.""" + y_shift = int(2 * y_min / scale) + x_shift = int(x_min / (HEIGHT_FACTOR * scale)) + coordinates = [] + for y in range(y_shift, int(2 * y_max / scale) + 1): + for x in range(x_shift - 1, int(x_max / (HEIGHT_FACTOR * scale)) + 2): + coordinates.append([y, x]) + return np.array(coordinates) + + +_TABLE_BUILD_S: dict = {} + + +@functools.lru_cache(maxsize=16) +def _cell_tables(y_min, y_max, x_min, x_max, scale) -> dict: + """``{"exact": (V, I), "lattice": (V, I), "coordinates": C}`` for one geometry.""" + t0 = time.perf_counter() + coordinates = _lattice_coordinates(y_min, y_max, x_min, x_max, scale) + flip = np.where((coordinates[:, 0] + coordinates[:, 1]) % 2 != 0, -1, 1)[:, None] + scaling = np.array([0.5 * scale, HEIGHT_FACTOR * scale]) + centres = scaling * coordinates + np.array([0.0, 0.0]) + triangles = np.stack( + ( + centres + flip * np.array([0.0, 0.5 * scale * HEIGHT_FACTOR]), + centres + flip * np.array([0.5 * scale, -0.5 * scale * HEIGHT_FACTOR]), + centres + flip * np.array([-0.5 * scale, -0.5 * scale * HEIGHT_FACTOR]), + ), + axis=1, + ) + flat = triangles.reshape(-1, 2) + + exact_vertices, exact_inverse = np.unique(flat, axis=0, return_inverse=True) + + offsets = np.array([[0, 1], [1, -1], [-1, -1]]) + keys = np.stack( + ( + coordinates[:, None, 0] + flip * offsets[None, :, 0], + 2 * coordinates[:, None, 1] + flip * offsets[None, :, 1], + ), + axis=-1, + ).reshape(-1, 2) + _, first, lattice_inverse = np.unique(keys, axis=0, return_index=True, return_inverse=True) + + tables = { + "coordinates": coordinates, + "exact": (exact_vertices, exact_inverse.reshape(-1, 3)), + "lattice": (flat[first].copy(), lattice_inverse.reshape(-1, 3)), + } + _TABLE_BUILD_S[(y_min, y_max, x_min, x_max, scale)] = time.perf_counter() - t0 + return tables + + +class _TableTriangles(_coordinate_array.CoordinateArrayTriangles): + """The library lattice with a cell-supplied ``(vertices, indices)`` table. + + Only ``_vertices_and_indices`` changes; every derived lattice is built as the base + class by the library's own methods, so steps >= 1 are untouched. + """ + + def __init__(self, coordinates, side_length, table): + super().__init__(coordinates=coordinates, side_length=side_length) + self._cell_table = table + + @property + def _vertices_and_indices(self): + vertices, indices = self._cell_table + return jnp.asarray(vertices), jnp.asarray(indices) + + +def _geometry(solver) -> tuple: + return ( + float(solver.y_min), + float(solver.y_max), + float(solver.x_min), + float(solver.x_max), + float(solver.scale), + ) + + +def _control_initial_triangles(self, xp): + """The phase-2 main path: the flat (3N, 2) per-triangle table, no table attached.""" + return _coordinate_array.CoordinateArrayTriangles.for_limits_and_scale( + y_min=self.y_min, y_max=self.y_max, x_min=self.x_min, x_max=self.x_max, scale=self.scale + ) + + +def _table_initial_triangles(kind): + def initial_triangles(self, xp): + tables = _cell_tables(*_geometry(self)) + return _TableTriangles( + coordinates=jnp.array(tables["coordinates"]), + side_length=self.scale, + table=tables[kind], + ) + + initial_triangles.__name__ = f"_{kind}_initial_triangles" + return initial_triangles + + +_exact_initial_triangles = _table_initial_triangles("exact") +_lattice_initial_triangles = _table_initial_triangles("lattice") + +_ROUTE_BODIES = { + "control": _control_initial_triangles, + "exact": _exact_initial_triangles, + "lattice": _lattice_initial_triangles, + "library": None, +} + + +def _body_provenance(fn) -> dict: + """Source text + bytecode hash of *fn*, captured at import (phase-2 provenance fix).""" + code = fn.__code__ + digest = hashlib.sha256(code.co_code + repr(code.co_consts).encode()).hexdigest()[:16] + source = inspect.getsource(fn) + return {"name": fn.__name__, "body": source, "bytecode_sha256": digest} + + +_BODY_PROVENANCE = { + "control": _body_provenance(_control_initial_triangles), + "table_factory": _body_provenance(_table_initial_triangles), + "tables": _body_provenance(_cell_tables.__wrapped__), + "table_triangles": { + "body": inspect.getsource(_TableTriangles), + "bytecode_sha256": hashlib.sha256( + _TableTriangles._vertices_and_indices.fget.__code__.co_code + ).hexdigest()[:16], + }, +} + + +@contextlib.contextmanager +def route_injected(route: str): + """Swap ``AbstractSolver._initial_triangles`` for *route* and record step-0 rows. + + Yields ``{"calls": n, "step0_rows": [...]}``: how often the route's tiling ran while + tracing and the row count of the grid each step 0 deflected. ``library`` wraps the + installed method only to count and record. Both patches are restored by identity. + """ + cls = _shape_solver.AbstractSolver + original = cls.__dict__["_initial_triangles"] + original_plane_grid = cls.__dict__["_plane_grid"] + params = list(inspect.signature(original).parameters) + if params != ["self", "xp"]: + raise TypeError( + f"{TARGET_DOTTED} now takes {params}; the substituted bodies take (self, xp). " + "The library changed under the injection -- update this harness, not the library." + ) + body = _ROUTE_BODIES[route] or original + record = {"calls": 0, "step0_rows": []} + armed = {"next": False} + + def counted(self, xp): + record["calls"] += 1 + armed["next"] = True + return body(self, xp) + + def plane_grid(self, tracer, grid, xp, plane_redshift=None): + if armed["next"]: + record["step0_rows"].append(int(np.shape(grid)[0])) + armed["next"] = False + return original_plane_grid(self, tracer, grid, xp, plane_redshift) + + cls._initial_triangles = counted + cls._plane_grid = plane_grid + try: + yield record + finally: + cls._initial_triangles = original + cls._plane_grid = original_plane_grid + if ( + cls.__dict__["_initial_triangles"] is not original + or cls.__dict__["_plane_grid"] is not original_plane_grid + ): + raise RuntimeError(f"{TARGET_DOTTED} was not restored by identity") + + +# --------------------------------------------------------------------------- +# Structural readouts +# --------------------------------------------------------------------------- + + +def _rss_bytes() -> int | None: + try: + with open("/proc/self/status") as f: + for line in f: + if line.startswith("VmRSS:"): + return int(line.split()[1]) * 1024 + except OSError: + return None + return None + + +def _thread_count() -> int | None: + try: + return len(os.listdir("/proc/self/task")) + except OSError: + return None + + +def _memory_analysis(compiled) -> dict | str: + try: + stats = compiled.memory_analysis() + except Exception as exc: # noqa: BLE001 -- optional on some backends + return f"unavailable: {type(exc).__name__}" + if stats is None: + return "unavailable: None" + out = {} + for name in ( + "argument_size_in_bytes", + "output_size_in_bytes", + "temp_size_in_bytes", + "alias_size_in_bytes", + "generated_code_size_in_bytes", + "host_temp_size_in_bytes", + ): + value = getattr(stats, name, None) + if value is not None: + out[name] = int(value) + return out + + +def _flops(compiled): + try: + cost = compiled.cost_analysis() + if isinstance(cost, list | tuple): + cost = cost[0] if cost else {} + value = (cost or {}).get("flops") + return float(value) if value is not None else None + except Exception as exc: # noqa: BLE001 -- cost analysis is optional on some backends + return f"unavailable: {type(exc).__name__}" + + +_HLO_CONSTANT = re.compile(r"=\s*(\w+)\[([\d,]*)\][^=]*\bconstant\(") + + +def _hlo_readout(compiled) -> dict: + hlo = compiled.as_text() + big = 0 + for m in _HLO_CONSTANT.finditer(hlo): + dims = [int(d) for d in m.group(2).split(",") if d] + if dims and int(np.prod(dims)) >= 1000: + big += 1 + return { + "hlo_sha256": hashlib.sha256(hlo.encode()).hexdigest()[:16], + "hlo_lines": hlo.count("\n"), + "hlo_large_constants": big, + } + + +_THREADS_AFTER_FIRST_COMPILE: dict = {} + + +def _compile_route(route: str, factory, example, *, label: str, expected_rows=None) -> dict: + """Lower a FRESH closure under *route* after ``jax.clear_caches()``; compile it.""" + jax.clear_caches() + fn = factory() + rss0 = _rss_bytes() + with route_injected(route) as record: + t0 = time.perf_counter() + lowered = jax.jit(fn).lower(example) + lower_s = time.perf_counter() - t0 + if route != "library" and record["calls"] == 0: + raise RuntimeError( + f"FAIL [{label}/{route}]: the substituted {TARGET_DOTTED} never ran while tracing." + ) + if expected_rows is not None and route != "library": + bad = [r for r in record["step0_rows"] if r != expected_rows[route]] + if bad or not record["step0_rows"]: + raise RuntimeError( + f"FAIL [{label}/{route}]: step-0 rows {record['step0_rows']} but the route's " + f"table has {expected_rows[route]} rows -- the injection did not take." + ) + t0 = time.perf_counter() + compiled = lowered.compile() + compile_s = time.perf_counter() - t0 + rss1 = _rss_bytes() + t0 = time.perf_counter() + first = block(compiled(example)) + first_call_s = time.perf_counter() - t0 + if not _THREADS_AFTER_FIRST_COMPILE: + _THREADS_AFTER_FIRST_COMPILE["threads"] = _thread_count() + _THREADS_AFTER_FIRST_COMPILE["label"] = f"{label}/{route}" + readout = _hlo_readout(compiled) + print( + f" [{label}/{route}] lower {lower_s:6.1f} s compile {compile_s:6.1f} s " + f"first {first_call_s * 1e3:8.2f} ms trace_calls {record['calls']:3d} " + f"step0_rows {sorted(set(record['step0_rows']))}" + ) + return { + "executable": compiled, + "first": first, + "record": { + "lower_s": float(lower_s), + "compile_s": float(compile_s), + "first_call_s": float(first_call_s), + "trace_calls": int(record["calls"]), + "step0_rows": record["step0_rows"], + "flops": _flops(compiled), + "memory_analysis": _memory_analysis(compiled), + "rss_before_lower_bytes": rss0, + "rss_after_compile_bytes": rss1, + "rss_delta_bytes": (rss1 - rss0) if rss0 is not None and rss1 is not None else None, + **readout, + }, + } + + +def _constant_folding_probe() -> dict: + """Does XLA fold constants in THIS process? Read from the optimised HLO, not the flags. + + The probe is a dot of two 1000-element constants. Elementwise arithmetic on + constants (``c * 2 + 1``, ``sin(c)``) comes back as a literal whether or not the + constant-folding pass is disabled, so it cannot tell the two modes apart; the + dot is live with ``--xla_disable_hlo_passes=constant_folding`` and folded to a + literal without it (measured on the laptop, jax 0.10.2 CPU, 2026-09-24). + """ + c = np.linspace(0.1, 1.0, 1000) + compiled = jax.jit(lambda: jnp.asarray(c) @ jnp.asarray(c)).lower().compile() + hlo = compiled.as_text() + entry = hlo[hlo.find("ENTRY") :] + # XLA may rewrite the dot (e.g. multiply + reduce-window), so "live" is any + # computation left in the entry; folded, the entry is only a constant. + live = bool(re.search(r"\b(fusion|dot|multiply|add|reduce|reduce-window)\(", entry)) + return { + "probe": "jit(lambda: c @ c), c = linspace(0.1, 1, 1000) constant", + "entry_has_computation": live, + "folding_ran": not live, + "entry_hlo": entry[:2000], + } + + +# --------------------------------------------------------------------------- +# Statistics +# --------------------------------------------------------------------------- + + +def _stats_ms(seconds) -> dict: + ms = np.asarray(seconds, dtype=float) * 1.0e3 + return { + "n": int(ms.size), + "median_ms": float(np.median(ms)), + "p10_ms": float(np.percentile(ms, 10)), + "p90_ms": float(np.percentile(ms, 90)), + "min_ms": float(ms.min()), + "max_ms": float(ms.max()), + "mean_ms": float(ms.mean()), + } + + +def _median_ratio(numerator, denominator, seed: int) -> dict: + num = np.asarray(numerator, dtype=float) + den = np.asarray(denominator, dtype=float) + rng = np.random.default_rng(seed) + boots = np.empty(BOOTSTRAP_SAMPLES) + for i in range(BOOTSTRAP_SAMPLES): + boots[i] = np.median(rng.choice(num, num.size)) / np.median(rng.choice(den, den.size)) + return { + "ratio": float(np.median(num) / np.median(den)), + "ci90_low": float(np.percentile(boots, 5)), + "ci90_high": float(np.percentile(boots, 95)), + "bootstrap_samples": BOOTSTRAP_SAMPLES, + } + + +def _array_delta(a, b) -> dict: + a = np.asarray(a, dtype=float) + b = np.asarray(b, dtype=float) + # Equal entries (including matching NaN / inf padding) contribute zero; an + # inf-vs-finite mismatch reports inf, never a NaN that nanmax would hide. + same = (a == b) | (np.isnan(a) & np.isnan(b)) + with np.errstate(invalid="ignore", over="ignore"): + diff = np.where(same, 0.0, np.abs(a - b)) + diff = np.where(np.isnan(diff), np.inf, diff) + scale = np.where(same, 1.0, np.maximum(np.abs(a), np.abs(b))) + rel = np.where(scale > 0, diff / np.where(scale > 0, scale, 1.0), diff) + return { + "bit_identical": bool(np.array_equal(a, b, equal_nan=True)), + "max_abs_delta": float(np.nanmax(diff)) if diff.size else 0.0, + "max_rel_delta": float(np.nanmax(rel)) if rel.size else 0.0, + "nan_pattern_equal": bool(np.array_equal(np.isnan(a), np.isnan(b))), + } + + +# --------------------------------------------------------------------------- +# Instance streams +# --------------------------------------------------------------------------- + + +def _vector_stream(model, n: int, seed: int) -> np.ndarray: + """Fixed-seed physical vectors: entry 0 the prior medians, the rest U(0.25,0.75) draws.""" + rng = np.random.default_rng(seed) + vectors = [np.asarray(model.physical_values_from_prior_medians, dtype=float)] + for _ in range(n - 1): + unit = rng.uniform(0.25, 0.75, size=model.prior_count) + vectors.append(np.asarray(model.vector_from_unit_vector(unit), dtype=float)) + return np.stack(vectors) + + +# --------------------------------------------------------------------------- +# The two models +# --------------------------------------------------------------------------- + + +def _simple_setup() -> dict: + """Phase-1 harness model, dataset and solver (image_plane.py).""" + instrument = "simple" + dataset_path = _ROOT / "dataset" / "point_source" / instrument + auto_simulate_if_missing( + dataset_path, dataset_type="point_source", instrument=instrument, workspace_root=_ROOT + ) + dataset = al.from_json(file_path=dataset_path / "point_dataset_positions_only.json") + + def mass_model(): + mass = af.Model(al.mp.Isothermal) + mass.centre.centre_0 = af.GaussianPrior(mean=0.0, sigma=0.005) + mass.centre.centre_1 = af.GaussianPrior(mean=0.0, sigma=0.005) + mass.einstein_radius = af.GaussianPrior(mean=1.6, sigma=0.05) + mass.ell_comps.ell_comps_0 = af.GaussianPrior(mean=0.05263158, sigma=0.01) + mass.ell_comps.ell_comps_1 = af.GaussianPrior(mean=0.0, sigma=0.01) + return mass + + def model(solved: bool): + lens = af.Model(al.Galaxy, redshift=0.5, mass=mass_model()) + if solved: + point = af.Model(al.ps.PointSolved) + else: + point = af.Model(al.ps.PointFlux) + point.centre.centre_0 = af.GaussianPrior(mean=0.07, sigma=0.005) + point.centre.centre_1 = af.GaussianPrior(mean=0.07, sigma=0.005) + source = af.Model(al.Galaxy, redshift=1.0, point_0=point) + return af.Collection(galaxies=af.Collection(lens=lens, source=source)) + + def solver(): + return al.PointSolver.for_grid( + grid=al.Grid2D.uniform(shape_native=(100, 100), pixel_scales=0.2), + pixel_scale_precision=0.001, + magnification_threshold=0.1, + ) + + fit_cls = { + "solved": al.FitPositionsImagePairAllSolved, + "plain": al.FitPositionsImagePairAll, + } + return { + "datasets": [dataset], + "models": {"solved": model(True), "plain": model(False)}, + "fit_cls": fit_cls, + "solver": solver, + "configuration": { + "dataset": "dataset/point_source/simple/point_dataset_positions_only.json", + "solver_grid_shape": [100, 100], + "solver_grid_pixel_scale": 0.2, + "solver_pixel_scale_precision": 0.001, + "magnification_threshold": 0.1, + "likelihoods": { + "solved": "FitPositionsImagePairAllSolved", + "plain": "FitPositionsImagePairAll", + }, + }, + } + + +def _cluster_setup() -> dict: + """The cluster cell's two-source 13-component model (image_plane.py step 5).""" + dataset_path = _ROOT / "dataset" / "cluster" / "simple" + auto_simulate_if_missing( + dataset_path, dataset_type="cluster", instrument="simple", workspace_root=_ROOT + ) + dataset_list = al.list_from_csv(file_path=dataset_path / "point_datasets.csv") + redshift_lens = 0.5 + main_lens_params = [((0.0, 0.0), 8.0, 20.0, 3.0), ((10.0, 8.0), 5.0, 12.0, 1.2)] + scaling_table = al.galaxy_table_from_csv(file_path=dataset_path / "scaling_galaxies.csv") + b0_ref, rs_ref, ra_scaling, exponent = 0.12, 10.0, 0.1, 0.5 + lum_ref = max(scaling_table.luminosities) + z_source_max = max(float(d.redshift) for d in dataset_list) + + # Step 1 of the cluster cell: back-trace the observed images through the + # fiducial tracer and take each system's centroid as its model source centre. + tracer = al.Tracer( + galaxies=[ + al.Galaxy( + redshift=redshift_lens, + mass=al.mp.dPIEMassB0Sph(centre=centre, ra=ra, rs=rs, b0=b0), + ) + for centre, ra, rs, b0 in main_lens_params + ] + + [ + al.Galaxy( + redshift=redshift_lens, + mass=al.mp.dPIEMassB0Sph( + centre=tuple(centre), + ra=ra_scaling, + rs=rs_ref * (lum / lum_ref) ** exponent, + b0=b0_ref * (lum / lum_ref) ** exponent, + ), + ) + for centre, lum in zip(scaling_table.centres, scaling_table.luminosities) + ] + + [ + al.Galaxy( + redshift=redshift_lens, + dark=al.mp.NFWMCRLudlowSph( + centre=(0.0, 0.0), + mass_at_200=10**15.3, + redshift_object=redshift_lens, + redshift_source=z_source_max, + ), + ) + ] + + [ + al.Galaxy(redshift=float(d.redshift), **{d.name: al.ps.Point(centre=(0.0, 0.0))}) + for d in dataset_list + ] + ) + source_centres = [] + for d in dataset_list: + plane_index = tracer.plane_index_via_redshift_from(redshift=float(d.redshift)) + traced = np.asarray( + tracer.traced_grid_2d_list_from( + grid=al.Grid2DIrregular(np.atleast_2d(np.asarray(d.positions))) + )[plane_index] + ) + source_centres.append(tuple(traced.mean(axis=0))) + + def gaussian(mean, fraction=0.01, floor=0.01): + return af.GaussianPrior(mean=float(mean), sigma=max(abs(float(mean)) * fraction, floor)) + + def model(solved: bool): + galaxies = {} + for i, (centre, ra, rs, b0) in enumerate(main_lens_params): + mass = af.Model(al.mp.dPIEMassB0Sph) + mass.centre.centre_0 = gaussian(centre[0]) + mass.centre.centre_1 = gaussian(centre[1]) + mass.ra = gaussian(ra) + mass.rs = gaussian(rs) + mass.b0 = gaussian(b0) + galaxies[f"main_{i}"] = af.Model(al.Galaxy, redshift=redshift_lens, mass=mass) + scaling_b0 = gaussian(b0_ref, floor=0.001) + for i, (centre, lum) in enumerate(zip(scaling_table.centres, scaling_table.luminosities)): + ratio = (lum / lum_ref) ** exponent + mass = af.Model(al.mp.dPIEMassB0Sph) + mass.centre = tuple(centre) + mass.ra = ra_scaling + mass.rs = rs_ref * ratio + mass.b0 = scaling_b0 * ratio + galaxies[f"scaling_{i}"] = af.Model(al.Galaxy, redshift=redshift_lens, mass=mass) + dark = af.Model( + al.mp.NFWMCRLudlowSph, + mass_at_200=10**15.3, + redshift_object=redshift_lens, + redshift_source=z_source_max, + ) + dark.centre.centre_0 = gaussian(0.0) + dark.centre.centre_1 = gaussian(0.0) + galaxies["host_halo"] = af.Model(al.Galaxy, redshift=redshift_lens, dark=dark) + for i, (d, centre) in enumerate(zip(dataset_list, source_centres)): + if solved: + point = af.Model(al.ps.PointSolved) + else: + point = af.Model(al.ps.Point) + point.centre.centre_0 = gaussian(centre[0]) + point.centre.centre_1 = gaussian(centre[1]) + galaxies[f"source_{i}"] = af.Model( + al.Galaxy, redshift=float(d.redshift), **{d.name: point} + ) + return af.Collection(galaxies=af.Collection(**galaxies)) + + def solver(): + return al.PointSolver.for_grid( + grid=al.Grid2D.uniform(shape_native=(200, 200), pixel_scales=0.7), + pixel_scale_precision=0.01, + use_jax=True, + ) + + fit_cls = { + "solved": al.FitPositionsImagePairRepeatSolved, + "plain": al.FitPositionsImagePairRepeat, + } + return { + "datasets": list(dataset_list), + "models": {"solved": model(True), "plain": model(False)}, + "fit_cls": fit_cls, + "solver": solver, + "configuration": { + "dataset": "dataset/cluster/simple/point_datasets.csv", + "n_systems": len(dataset_list), + "n_mass_profiles": len(main_lens_params) + len(scaling_table.luminosities) + 1, + "solver_grid_shape": [200, 200], + "solver_grid_pixel_scale": 0.7, + "solver_pixel_scale_precision": 0.01, + "source_centres_from": "back-traced observed-image centroids (cluster cell step 1)", + "likelihoods": { + "solved": "FitPositionsImagePairRepeatSolved (summed over systems)", + "plain": "FitPositionsImagePairRepeat (summed over systems)", + }, + }, + } + + +def _likelihood_factory(setup: dict, variant: str): + """A factory of FRESH ``vector -> log L`` closures (fresh solver + analyses per call).""" + model = setup["models"][variant] + + def factory(): + solver = setup["solver"]() + analyses = [ + al.AnalysisPoint( + dataset=d, solver=solver, fit_positions_cls=setup["fit_cls"][variant], use_jax=True + ) + for d in setup["datasets"] + ] + + def log_likelihood(vector): + instance = model.instance_from_vector(vector=vector, xp=jnp) + total = 0.0 + for analysis in analyses: + total = total + analysis.log_likelihood_function(instance=instance) + return total + + return log_likelihood + + return factory + + +def _positions_factory(setup: dict, variant: str): + """A factory of FRESH ``vector -> tuple(model positions per system)`` closures.""" + model = setup["models"][variant] + + def factory(): + solver = setup["solver"]() + analyses = [ + al.AnalysisPoint( + dataset=d, solver=solver, fit_positions_cls=setup["fit_cls"][variant], use_jax=True + ) + for d in setup["datasets"] + ] + + def positions(vector): + instance = model.instance_from_vector(vector=vector, xp=jnp) + out = [] + for analysis in analyses: + model_data = analysis.fit_from(instance=instance).positions.model_data + out.append(jnp.asarray(getattr(model_data, "array", model_data))) + return tuple(out) + + return positions + + return factory + + +def _step0_containing_factory(setup: dict): + """FRESH ``vector -> step-0 containing_indices`` closures (simple plain model).""" + model = setup["models"]["plain"] + + def factory(): + solver = setup["solver"]() + + def containing(vector): + instance = model.instance_from_vector(vector=vector, xp=jnp) + galaxies = list(instance.galaxies) + tracer = al.Tracer(galaxies=galaxies) + centre = instance.galaxies.source.point_0.centre + shape = Point(centre[0], centre[1]) + step = next(solver.steps(tracer=tracer, shape=shape, xp=jnp)) + return step.plane_triangles.containing_indices(shape=shape) + + return containing + + return factory + + +def _expected_rows(setup: dict) -> dict: + """Step-0 row count of each substituted route for this model's solver geometry.""" + solver = setup["solver"]() + geometry = _geometry(solver) + tables = _cell_tables(*geometry) + n = tables["coordinates"].shape[0] + library_lattice = _coordinate_array.CoordinateArrayTriangles.for_limits_and_scale( + y_min=solver.y_min, + y_max=solver.y_max, + x_min=solver.x_min, + x_max=solver.x_max, + scale=solver.scale, + ) + if not np.array_equal(np.asarray(library_lattice.coordinates), tables["coordinates"]): + raise RuntimeError("the cell's lattice coordinates differ from the library's") + return { + "geometry": list(geometry), + "n_triangles": int(n), + "rows": { + "control": 3 * int(n), + "exact": int(tables["exact"][0].shape[0]), + "lattice": int(tables["lattice"][0].shape[0]), + }, + } + + +def _table_provenance(setup: dict) -> dict: + """Table build time, cache-hit time and size, cell and (if present) library.""" + solver = setup["solver"]() + geometry = _geometry(solver) + tables = _cell_tables(*geometry) + t0 = time.perf_counter() + _cell_tables(*geometry) + hit_s = time.perf_counter() - t0 + out = { + "cell_build_ms": 1e3 * _TABLE_BUILD_S.get(geometry, float("nan")), + "cell_cache_hit_us": 1e6 * hit_s, + "exact_table_mb": (tables["exact"][0].nbytes + tables["exact"][1].nbytes) / 1e6, + "lattice_table_mb": (tables["lattice"][0].nbytes + tables["lattice"][1].nbytes) / 1e6, + } + builder = getattr(_coordinate_array, "static_vertex_table", None) + if builder is None: + out["library_static_vertex_table"] = "absent (library predates phase 3)" + return out + builder.cache_clear() + t0 = time.perf_counter() + vertices, indices = builder(*geometry) + cold = time.perf_counter() - t0 + t0 = time.perf_counter() + builder(*geometry) + hit = time.perf_counter() - t0 + lattice_vertices = tables["lattice"][0] + out["library_static_vertex_table"] = { + "build_ms": 1e3 * cold, + "cache_hit_us": 1e6 * hit, + "rows": int(vertices.shape[0]), + "mb": (vertices.nbytes + indices.nbytes) / 1e6, + "equals_cell_lattice_table": bool( + np.array_equal(vertices, lattice_vertices) + and np.array_equal(indices, tables["lattice"][1]) + ), + } + return out + + +# --------------------------------------------------------------------------- +# One interleaved timing row +# --------------------------------------------------------------------------- + + +def _timed_call(executable, argument): + t0 = time.perf_counter() + out = block(executable(argument)) + return time.perf_counter() - t0, out + + +def _run_row(label, factory, stream, *, expected_rows, batch=None) -> dict: + """Compile four routes, warm, interleave; return timings, values and structure.""" + print(f"\n--- row {label} ---") + if batch is None: + arguments = [jnp.asarray(v) for v in stream] + instance_ids = [[i] for i in range(len(stream))] + else: + n_batches = max(1, len(stream) // batch) + instance_ids = [ + [(b * batch + k) % len(stream) for k in range(batch)] for b in range(n_batches) + ] + arguments = [jnp.asarray(stream[ids]) for ids in instance_ids] + compiled = { + route: _compile_route( + route, factory, arguments[0], label=label, expected_rows=expected_rows + ) + for route in ROUTES + } + executables = {route: compiled[route]["executable"] for route in ROUTES} + + warm_s = {route: [] for route in ROUTES} + for route in ROUTES: + for w in range(N_WARM): + dt, _ = _timed_call(executables[route], arguments[w % len(arguments)]) + warm_s[route].append(dt) + + times = {route: [] for route in ROUTES} + per_round = {route: [] for route in ROUTES} + values = {route: {} for route in ROUTES} + deterministic = {route: True for route in ROUTES} + call_index = 0 + for r in range(N_ROUNDS): + order = ROUTES[r % len(ROUTES) :] + ROUTES[: r % len(ROUTES)] + start = call_index + for route in order: + round_times = [] + for c in range(N_CALLS): + k = (start + c) % len(arguments) + dt, out = _timed_call(executables[route], arguments[k]) + round_times.append(dt) + value = np.asarray(out, dtype=float) + if k in values[route]: + if not np.array_equal(values[route][k], value, equal_nan=True): + deterministic[route] = False + else: + values[route][k] = value + times[route].extend(round_times) + per_round[route].append(float(np.median(round_times))) + call_index = start + N_CALLS + + seen = sorted(set.intersection(*(set(values[r]) for r in ROUTES))) + value_arrays = {route: np.stack([values[route][k] for k in seen]) for route in ROUTES} + stats = {route: _stats_ms(times[route]) for route in ROUTES} + control = stats["control"] + ratios = { + f"{a}_over_{b}": _median_ratio(times[a], times[b], BOOTSTRAP_SEED + i) + for i, (a, b) in enumerate(RATIOS) + } + paired = np.asarray(per_round["control"]) / np.asarray(per_round["lattice"]) + row = { + "label": label, + "batch": batch, + "n_rounds": N_ROUNDS, + "n_calls_per_round": N_CALLS, + "n_warm": N_WARM, + "route_order": "round-robin, start rotated each round", + "per_call_ms": {route: [t * 1e3 for t in times[route]] for route in ROUTES}, + "warm_ms": {route: [t * 1e3 for t in warm_s[route]] for route in ROUTES}, + "stats": stats, + "ratios": ratios, + "paired_round_ratio_control_over_lattice": { + "median": float(np.median(paired)), + "p10": float(np.percentile(paired, 10)), + "p90": float(np.percentile(paired, 90)), + }, + "minimum_detectable_improvement": float( + (control["p90_ms"] - control["p10_ms"]) / control["median_ms"] + ), + "compile": {route: compiled[route]["record"] for route in ROUTES}, + "instances_compared": [instance_ids[k] for k in seen], + "values": {route: value_arrays[route].tolist() for route in ROUTES}, + "deterministic_within_route": deterministic, + "likelihood_gate": { + f"control_vs_{route}": _logl_gate(value_arrays["control"], value_arrays[route]) + for route in ROUTES[1:] + }, + } + if batch is None: + row["fiducial_log_likelihood"] = { + route: float(values[route][0]) for route in ROUTES if 0 in values[route] + } + r = ratios["control_over_lattice"] + print( + " median ms " + + " ".join(f"{route} {stats[route]['median_ms']:9.3f}" for route in ROUTES) + + f" control/lattice {r['ratio']:.3f} [{r['ci90_low']:.3f}, {r['ci90_high']:.3f}]" + ) + return row + + +def _logl_gate(a, b) -> dict: + delta = _array_delta(a, b) + delta["pass"] = bool(delta["nan_pattern_equal"] and delta["max_rel_delta"] <= LOGL_RTOL) + delta["rtol"] = LOGL_RTOL + return delta + + +def _positions_gate(label, factory, stream, *, expected_rows) -> dict: + print(f"\n--- positions gate {label} ---") + arguments = [jnp.asarray(v) for v in stream[:N_GATE]] + per_route = {} + compile_records = {} + for route in ROUTES: + compiled = _compile_route( + route, factory, arguments[0], label=f"{label}_positions", expected_rows=expected_rows + ) + compile_records[route] = compiled["record"] + per_route[route] = [ + [np.asarray(p, dtype=float) for p in block(compiled["executable"](a))] + for a in arguments + ] + + def finite_sorted(p): + p = p[np.all(np.isfinite(p), axis=-1)] + return p[np.lexsort((p[:, 1], p[:, 0]))] if p.size else p.reshape(0, 2) + + counts = { + route: [[int(np.isfinite(p).all(axis=-1).sum()) for p in inst] for inst in rows] + for route, rows in per_route.items() + } + pairs = {} + for route in ROUTES[1:]: + same_counts = counts[route] == counts["control"] + max_delta = 0.0 + if same_counts: + for inst_a, inst_b in zip(per_route["control"], per_route[route]): + for pa, pb in zip(inst_a, inst_b): + fa, fb = finite_sorted(pa), finite_sorted(pb) + if fa.size: + max_delta = max(max_delta, float(np.abs(fa - fb).max())) + flat_a = np.concatenate([np.ravel(p) for inst in per_route["control"] for p in inst]) + flat_b = np.concatenate([np.ravel(p) for inst in per_route[route] for p in inst]) + pairs[f"control_vs_{route}"] = { + "image_counts_identical": bool(same_counts), + "max_abs_delta_finite_sorted": max_delta if same_counts else None, + "padded_array_equal_nan_aware": bool(np.array_equal(flat_a, flat_b, equal_nan=True)), + "pass": bool(same_counts and max_delta <= POSITIONS_ATOL), + "atol": POSITIONS_ATOL, + } + return { + "n_instances": len(arguments), + "compile": compile_records, + "positions": { + route: [[p.tolist() for p in inst] for inst in per_route[route]] for route in ROUTES + }, + "finite_positions": counts, + "pairs": pairs, + } + + +def _grad_gate(label, factory, stream, *, expected_rows) -> dict: + print(f"\n--- gradient gate {label} ---") + arguments = [jnp.asarray(v) for v in stream[:N_GATE]] + + def grad_factory(): + return jax.grad(factory()) + + grads = {} + records = {} + for route in ROUTES: + compiled = _compile_route( + route, grad_factory, arguments[0], label=f"{label}_grad", expected_rows=expected_rows + ) + records[route] = compiled["record"] + grads[route] = np.stack( + [np.asarray(block(compiled["executable"](a)), dtype=float) for a in arguments] + ) + pairs = {} + for route in ROUTES[1:]: + delta = _array_delta(grads["control"], grads[route]) + delta["allclose"] = bool( + np.allclose(grads["control"], grads[route], rtol=GRAD_RTOL, atol=GRAD_ATOL) + ) + pairs[f"control_vs_{route}"] = delta + return { + "n_instances": len(arguments), + "rtol": GRAD_RTOL, + "atol": GRAD_ATOL, + "compile": records, + "all_finite": {route: bool(np.isfinite(g).all()) for route, g in grads.items()}, + "any_nonzero_per_instance": { + route: [bool(np.any(row != 0.0)) for row in g] for route, g in grads.items() + }, + "gradients": {route: g.tolist() for route, g in grads.items()}, + "pairs": pairs, + } + + +def _step0_gate(factory, stream, *, expected_rows) -> dict: + print("\n--- step-0 containing_indices gate simple_plain ---") + arguments = [jnp.asarray(v) for v in stream[:N_GATE]] + sets = {} + for route in ROUTES: + compiled = _compile_route( + route, factory, arguments[0], label="simple_plain_step0", expected_rows=expected_rows + ) + sets[route] = [] + for a in arguments: + idx = np.asarray(block(compiled["executable"](a))) + sets[route].append(sorted(int(i) for i in idx[idx >= 0])) + return { + "n_instances": len(arguments), + "sets": sets, + "pairs": { + f"control_vs_{route}": {"identical": sets[route] == sets["control"]} + for route in ROUTES[1:] + }, + } + + +def _vmap_gate(vmap_row: dict, scalar_row: dict) -> dict: + """``vmap`` batch values vs the scalar row's per-instance values, per route.""" + scalar_values = { + route: dict( + zip( + [ids[0] for ids in scalar_row["instances_compared"]], + np.asarray(scalar_row["values"][route]).ravel(), + ) + ) + for route in ROUTES + } + within = {} + for route in ROUTES: + batched, reference = [], [] + for ids, vals in zip(vmap_row["instances_compared"], vmap_row["values"][route]): + for i, v in zip(ids, np.ravel(vals)): + if i in scalar_values[route]: + batched.append(v) + reference.append(scalar_values[route][i]) + delta = _array_delta(batched, reference) + delta["allclose"] = bool( + np.allclose(batched, reference, rtol=VMAP_RTOL, atol=0.0, equal_nan=True) + ) + delta["n_compared"] = len(batched) + within[route] = delta + return {"vmap_vs_scalar_within_route": within, "across_routes": vmap_row["likelihood_gate"]} + + +def _library_label(rows: dict, expected: dict) -> dict: + per_row = {} + for label, row in rows.items(): + model_name = label.split("_")[0] + rows_expected = expected[model_name]["rows"] + library_rows = sorted(set(row["compile"]["library"]["step0_rows"])) + match = "neither" + if len(library_rows) == 1: + for route in ("control", "exact", "lattice"): + if library_rows[0] == rows_expected[route]: + match = route + hashes = {route: row["compile"][route]["hlo_sha256"] for route in ROUTES} + per_row[label] = { + "library_step0_rows": library_rows, + "expected_rows": rows_expected, + "library_matches": match, + "library_hlo_identical_to": [ + route for route in ROUTES[:3] if hashes[route] == hashes["library"] + ], + } + labels = {entry["library_matches"] for entry in per_row.values()} + overall = labels.pop() if len(labels) == 1 else "inconsistent" + return {"per_row": per_row, "library_matches": overall} + + +# =========================================================================== +# Run +# =========================================================================== + +constant_folding_probe = _constant_folding_probe() +print( + f"constant folding: requested={'ENABLED' if CONSTANT_FOLDING else 'disabled'} " + f"probe folding_ran={constant_folding_probe['folding_ran']} XLA_FLAGS={os.environ.get('XLA_FLAGS')}" +) +constant_folding_probe["agrees_with_request"] = ( + CONSTANT_FOLDING == constant_folding_probe["folding_ran"] +) +if not constant_folding_probe["agrees_with_request"]: + message = ( + f"constant folding requested={CONSTANT_FOLDING} but the HLO probe says " + f"folding_ran={constant_folding_probe['folding_ran']} (XLA_FLAGS={os.environ.get('XLA_FLAGS')})" + ) + # The probe was calibrated on the CPU backend; elsewhere record, do not refuse. + if jax.default_backend() == "cpu": + raise RuntimeError(f"FAIL: {message}") + print(f"WARNING: {message} -- probe calibrated on CPU only; recorded in the JSON") + +rows: dict[str, dict] = {} +gates: dict[str, dict] = {} +model_configurations: dict[str, dict] = {} +free_parameters: dict[str, int] = {} +expected: dict[str, dict] = {} +tables_provenance: dict[str, dict] = {} + +for model_name in MODELS: + setup = _simple_setup() if model_name == "simple" else _cluster_setup() + model_configurations[model_name] = setup["configuration"] + expected[model_name] = _expected_rows(setup) + tables_provenance[model_name] = _table_provenance(setup) + expected_rows = expected[model_name]["rows"] + print( + f"\n=== {model_name}: step-0 rows {expected_rows}; tables {tables_provenance[model_name]}" + ) + # Load-bearing for the gradient gate: without it jax.grad of this likelihood + # comes back identically ZERO (forward values unaffected). + for _model in setup["models"].values(): + register_model_pytrees(_model) + for variant in ("solved", "plain"): + model = setup["models"][variant] + free_parameters[f"{model_name}_{variant}"] = int(model.prior_count) + stream = _vector_stream(model, N_STREAM, SEED + (0 if variant == "solved" else 1)) + factory = _likelihood_factory(setup, variant) + label = f"{model_name}_{variant}" + rows[label] = _run_row(label, factory, stream, expected_rows=expected_rows) + if variant == "solved": + gates[f"{label}_positions"] = _positions_gate( + label, _positions_factory(setup, variant), stream, expected_rows=expected_rows + ) + if label == "simple_solved": + gates[f"{label}_grad"] = _grad_gate(label, factory, stream, expected_rows=expected_rows) + vlabel = f"{label}_vmap{VMAP_BATCH}" + rows[vlabel] = _run_row( + vlabel, + lambda f=factory: jax.vmap(f()), + stream, + expected_rows=expected_rows, + batch=VMAP_BATCH, + ) + gates[vlabel] = _vmap_gate(rows[vlabel], rows[label]) + if label == "simple_plain": + gates["simple_plain_step0_containing"] = _step0_gate( + _step0_containing_factory(setup), stream, expected_rows=expected_rows + ) + +library_label = _library_label(rows, expected) + + +def _gate_summary() -> dict: + """One flat verdict table: every gate, control vs each other route.""" + summary = {} + for label, row in rows.items(): + for pair, g in row["likelihood_gate"].items(): + summary[f"{label}.log_likelihood.{pair}"] = { + "pass": g["pass"], + "bit_identical": g["bit_identical"], + "max_rel_delta": g["max_rel_delta"], + } + for label, gate in gates.items(): + if label.endswith("_positions"): + for pair, g in gate["pairs"].items(): + summary[f"{label}.{pair}"] = { + "pass": g["pass"], + "image_counts_identical": g["image_counts_identical"], + "max_abs_delta": g["max_abs_delta_finite_sorted"], + } + elif label.endswith("_grad"): + nonzero = all(all(v) for v in gate["any_nonzero_per_instance"].values()) + for pair, g in gate["pairs"].items(): + summary[f"{label}.{pair}"] = { + "pass": g["allclose"] and all(gate["all_finite"].values()) and nonzero, + "non_zero": nonzero, + "bit_identical": g["bit_identical"], + "max_rel_delta": g["max_rel_delta"], + } + elif label.endswith("_step0_containing"): + for pair, g in gate["pairs"].items(): + summary[f"{label}.{pair}"] = {"pass": g["identical"]} + else: + for route, g in gate["vmap_vs_scalar_within_route"].items(): + summary[f"{label}.vmap_vs_scalar.{route}"] = { + "pass": g["allclose"], + "bit_identical": g["bit_identical"], + "max_abs_delta": g["max_abs_delta"], + } + return summary + + +gate_summary = _gate_summary() +all_gates_pass = all(v["pass"] for v in gate_summary.values()) + +config_name = _cli.config_name or ( + "local_cpu_fp64" if jax.default_backend() == "cpu" else "unlabelled_device_fp64" +) +_home = str(Path.home()) + + +def _scrub(obj): + """Replace the home directory in every string (no /home/ in a committed JSON).""" + if isinstance(obj, dict): + return {k: _scrub(v) for k, v in obj.items()} + if isinstance(obj, list | tuple): + return [_scrub(v) for v in obj] + if isinstance(obj, str) and _home and _home != "/": + return obj.replace(_home, "~") + return obj + + +device = device_info_dict() +if device.get("jax_compilation_cache_dir"): + device["jax_compilation_cache_dir"] = ( + "/" + Path(device["jax_compilation_cache_dir"]).name + ) + +summary = { + "cell": "static_lattice_ab", + "issue": "PyAutoLabs/PyAutoArray#568", + "phase": 3, + "config_name": config_name, + "quotable": not config_name.startswith(("laptop", "local")), + "host_note": ( + "laptop witness: WSL2, interactive load, NOT quotable -- ratios indicative only" + if config_name.startswith(("laptop", "local")) + else None + ), + "quick": QUICK, + "models": list(MODELS), + "constant_folding": { + "requested": CONSTANT_FOLDING, + "xla_flags_requested": _XLA_FLAGS_REQUESTED, + "xla_flags_effective": os.environ.get("XLA_FLAGS"), + "probe": constant_folding_probe, + }, + "library_versions": { + "autolens": al.__version__, + "autoarray": aa.__version__, + "autofit": af.__version__, + }, + "package_versions": {"jax": jax.__version__, "jaxlib": jaxlib.__version__}, + "source_revisions": source_revisions(_ROOT), + "autoarray_imported_from": str(Path(aa.__file__).resolve().parent.parent), + "autolens_imported_from": str(Path(al.__file__).resolve().parent.parent), + "target": TARGET_DOTTED, + "route_bodies": _BODY_PROVENANCE, + "body_provenance_captured": "import time", + "expected_step0_rows": expected, + "tables": tables_provenance, + "device": device, + "jax_devices": [str(d) for d in jax.devices()], + "machine": machine_info_dict(), + "thread_environment": thread_environment(), + "xla_threads_observed_after_first_compile": _THREADS_AFTER_FIRST_COMPILE, + "threads_at_end": _thread_count(), + "sched_affinity": len(os.sched_getaffinity(0)), + "os_cpu_count": os.cpu_count(), + "xla_flags": os.environ.get("XLA_FLAGS"), + "jax_platforms": os.environ.get("JAX_PLATFORMS"), + "jax_enable_x64": bool(jax.config.jax_enable_x64), + "loadavg_start": list(_LOADAVG_START), + "loadavg_end": list(os.getloadavg()), + "protocol": { + "routes": list(ROUTES), + "n_rounds": N_ROUNDS, + "n_calls_per_round": N_CALLS, + "n_warm": N_WARM, + "n_stream": N_STREAM, + "n_gate_instances": N_GATE, + "vmap_batch": VMAP_BATCH, + "instance_seed": SEED, + "instance_stream": "entry 0 = prior medians; rest = vector_from_unit_vector(U(0.25,0.75))", + "argument": "physical parameter vector; instance_from_vector(xp=jnp) inside the trace", + "cache_trap_guard": "fresh closure + fresh solver/analyses per route; jax.clear_caches()", + "bootstrap": {"samples": BOOTSTRAP_SAMPLES, "seed": BOOTSTRAP_SEED, "interval": "90%"}, + "gates": { + "log_likelihood_rtol": LOGL_RTOL, + "positions_atol": POSITIONS_ATOL, + "grad_rtol": GRAD_RTOL, + "grad_atol": GRAD_ATOL, + "vmap_rtol": VMAP_RTOL, + "cluster": "log-likelihood and positions only (no cluster grad/vmap/step-0 sets)", + }, + "pytrees": "autofit.jax.register_model(model) for every model before any trace", + }, + "free_parameters": free_parameters, + "model_configuration": model_configurations, + "library_label": library_label, + "library_matches": library_label["library_matches"], + "all_gates_pass": all_gates_pass, + "gate_summary": gate_summary, + "rows": rows, + "gates": gates, + "wall_s": float(time.perf_counter() - _WALL_START), +} + +dict_path, chart_path = resolve_output_paths( + _cli, + default_dir=_ROOT / "results" / "breakdown" / "point_source", + default_basename="static_lattice_ab_local", + cell="static_lattice_ab" + ("_constant_folding" if CONSTANT_FOLDING else ""), +) +dict_path.write_text(json.dumps(_scrub(summary), indent=2)) + +# --------------------------------------------------------------------------- +# PNG: per-row boxplots, the four routes +# --------------------------------------------------------------------------- +colours = {"control": "#C44E52", "exact": "#DD8452", "lattice": "#4C72B0", "library": "#8C8C8C"} +fig, axes = plt.subplots( + nrows=1, ncols=len(rows), figsize=(4.4 * len(rows), 5.0), constrained_layout=True +) +axes = np.atleast_1d(axes) +for ax, (label, row) in zip(axes, rows.items()): + data = [row["per_call_ms"][route] for route in ROUTES] + box = ax.boxplot(data, whis=(10, 90), showfliers=True, patch_artist=True) + for patch, route in zip(box["boxes"], ROUTES): + patch.set_facecolor(colours[route]) + patch.set_alpha(0.6) + ax.set_xticks(range(1, len(ROUTES) + 1)) + ax.set_xticklabels(ROUTES) + ax.set_ylabel("ms per call" + (f" (batch of {row['batch']})" if row["batch"] else "")) + r = row["ratios"]["control_over_lattice"] + e = row["ratios"]["control_over_exact"] + ax.set_title( + f"{label}\ncontrol/lattice {r['ratio']:.2f}x [{r['ci90_low']:.2f}, {r['ci90_high']:.2f}]" + f"\ncontrol/exact {e['ratio']:.2f}x", + fontsize=9, + ) + ax.set_ylim(bottom=0) +fig.suptitle( + f"PointSolver static step-0 lattice A/B ({config_name}" + f"{', constant folding ON' if CONSTANT_FOLDING else ''}); " + f"library_matches={library_label['library_matches']}; all_gates_pass={all_gates_pass}; " + "whiskers p10/p90", + fontsize=10, +) +fig.savefig(chart_path, dpi=150) +plt.close(fig) + +print("\n" + "=" * 110) +print( + f"STATIC-LATTICE A/B ({config_name}, rounds={N_ROUNDS}, calls/round={N_CALLS}, " + f"constant_folding={'ON' if CONSTANT_FOLDING else 'off'})" +) +print("=" * 110) +print( + f" {'row':<22} {'route':<8} {'median':>9} {'p10':>9} {'p90':>9} {'min':>9}" + f" {'step0':>6} {'MFLOP':>8} {'temp_MB':>8} {'compile_s':>9}" +) +for label, row in rows.items(): + for route in ROUTES: + s = row["stats"][route] + c = row["compile"][route] + flops = c["flops"] / 1e6 if isinstance(c["flops"], float) else float("nan") + mem = c["memory_analysis"] + temp = ( + mem.get("temp_size_in_bytes", float("nan")) / 1e6 + if isinstance(mem, dict) + else float("nan") + ) + step0 = c["step0_rows"][0] if c["step0_rows"] else -1 + print( + f" {label:<22} {route:<8} {s['median_ms']:9.3f} {s['p10_ms']:9.3f} {s['p90_ms']:9.3f}" + f" {s['min_ms']:9.3f} {step0:6d} {flops:8.2f} {temp:8.2f} {c['compile_s']:9.1f}" + ) + for name, r in row["ratios"].items(): + print( + f" {'':<22} {name:<22} {r['ratio']:.3f} [90% {r['ci90_low']:.3f}, {r['ci90_high']:.3f}]" + ) + print(f" {'':<22} MDI {row['minimum_detectable_improvement']:.3f}") +print("-" * 110) +print(f" library_matches: {library_label['library_matches']}") +print(f" all_gates_pass: {all_gates_pass}") +for name, verdict in gate_summary.items(): + if not verdict["pass"]: + print(f" GATE NOT PASSED: {name}: {verdict}") +print(f" wall: {summary['wall_s']:.0f} s") +print(f" Results JSON: {dict_path}") +print(f" Results PNG: {chart_path}") From 3da2583d46b80f72793caf11a16433ca05f00d20 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Thu, 24 Sep 2026 14:19:54 +0200 Subject: [PATCH 2/6] profiling(point_source): pin the phase-3 RAL CPU submit to euclid-ral-compute-10-2 (compute-1..19 not responding) Co-Authored-By: Claude Opus 5.5 --- ...wn_point_source_static_lattice_ab_ral_cpu_fp64 | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/hpc/batch_cpu/submit_breakdown_point_source_static_lattice_ab_ral_cpu_fp64 b/hpc/batch_cpu/submit_breakdown_point_source_static_lattice_ab_ral_cpu_fp64 index cab0fc2e5..7e4288eb4 100755 --- a/hpc/batch_cpu/submit_breakdown_point_source_static_lattice_ab_ral_cpu_fp64 +++ b/hpc/batch_cpu/submit_breakdown_point_source_static_lattice_ab_ral_cpu_fp64 @@ -31,11 +31,14 @@ # # HOST PINNING. Phase 1 landed on euclid-ral-compute-10-2 (Xeon 8490H) and # phase 2 on euclid-ral-compute-1 (EPYC 7763); cluster control differed 15-20 % -# between them (host, not drift). This job is pinned to the phase-2 host with -# --nodelist so phase-2 and phase-3 numbers share a CPU; the control route is -# measured in the same job regardless, and only in-job ratios are quoted. -# If euclid-ral-compute-1 is down or saturated (sinfo -p ral -N -o "%N %t %C"), -# edit --nodelist to another node and say so in the campaign note. +# between them (host, not drift). The phase-2 host was the intended pin, but on +# 2026-09-24 euclid-ral-compute-1..19 were all IDLE+NOT_RESPONDING in sinfo and +# only the euclid-ral-compute-10-* (Xeon 8490H) nodes answered, so this job is +# pinned with --nodelist to euclid-ral-compute-10-2 -- the PHASE-1 host. The +# control route is measured in the same job regardless, and only in-job ratios +# are quoted; phase-2 EPYC milliseconds are not comparable to these. +# Check before submitting: sinfo -p ral -N -o "%N %t %C" (a trailing * = not +# responding). If 10-2 is busy, pin another 10-* node and say so in the note. # # LIBRARY. The shared /mnt/ral/jnightin/PyAuto mirror is main. This submit # PREPENDS git clones of PyAutoArray and PyAutoLens feature/point-source-cpu-p3 @@ -70,7 +73,7 @@ #SBATCH -J static_lattice_ab #SBATCH --partition=ral -#SBATCH --nodelist=euclid-ral-compute-1 +#SBATCH --nodelist=euclid-ral-compute-10-2 #SBATCH --ntasks=1 #SBATCH --cpus-per-task=8 #SBATCH --mem=32gb From 93aac9bb354148160f6eac0c1850467b262c224a Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Thu, 24 Sep 2026 14:49:21 +0200 Subject: [PATCH 3/6] results(point_source): phase-3 static-lattice laptop witness (folding off/on) + campaign note section + README line Laptop, load-inflated, not quotable: simple 1.9x, cluster 2.7x (folding on 2.0x / 2.1x), library_matches=lattice, 31/31 gates bit-identical. Compile effect unresolved on the laptop; RAL CPU (pinned) and A100 legs pending. Co-Authored-By: Claude Opus 5.5 --- README.md | 6 + ...e_ab_constant_folding_laptop_cpu_fp64.json | 13576 ++++++++++++++++ ...ce_ab_constant_folding_laptop_cpu_fp64.png | Bin 0 -> 167322 bytes .../static_lattice_ab_laptop_cpu_fp64.json | 13576 ++++++++++++++++ .../static_lattice_ab_laptop_cpu_fp64.png | Bin 0 -> 173681 bytes results/notes/point_source_cpu_campaign.md | 98 +- 6 files changed, 27252 insertions(+), 4 deletions(-) create mode 100644 results/breakdown/point_source/static_lattice_ab_constant_folding_laptop_cpu_fp64.json create mode 100644 results/breakdown/point_source/static_lattice_ab_constant_folding_laptop_cpu_fp64.png create mode 100644 results/breakdown/point_source/static_lattice_ab_laptop_cpu_fp64.json create mode 100644 results/breakdown/point_source/static_lattice_ab_laptop_cpu_fp64.png diff --git a/README.md b/README.md index 259e21b22..1ac8b817d 100644 --- a/README.md +++ b/README.md @@ -264,6 +264,12 @@ separately per likelihood × transform. Standing conclusions: (simple solved 1.70 → 0.84 ms, cluster 4.21 → 2.46 ms), every gate bit-identical. Accepted; the post-fix call is deflection-dominated (70 % of FLOPs), so phase 3 is the static initial-lattice precompute. Findings: [`results/notes/point_source_cpu_campaign.md`](./results/notes/point_source_cpu_campaign.md). +- **Point-source CPU speed-up, phase 3 (2026-09, in progress)** — precompute the JAX PointSolver's + static step-0 lattice: deflect the 11 859 geometrically unique vertices instead of the 69 849 flat + slots (PyAutoArray #568). Four-route A/B cell `static_lattice_ab.py`. Laptop witness only + (load-inflated, not quotable): simple 1.9×, cluster 2.7×, FLOPs −52 % / −72 %, every gate + bit-identical; compile-time effect unresolved on the laptop. RAL CPU (pinned) and A100 legs pending. + Findings: [`results/notes/point_source_cpu_campaign.md`](./results/notes/point_source_cpu_campaign.md). ## How to read this repo diff --git a/results/breakdown/point_source/static_lattice_ab_constant_folding_laptop_cpu_fp64.json b/results/breakdown/point_source/static_lattice_ab_constant_folding_laptop_cpu_fp64.json new file mode 100644 index 000000000..3004c4701 --- /dev/null +++ b/results/breakdown/point_source/static_lattice_ab_constant_folding_laptop_cpu_fp64.json @@ -0,0 +1,13576 @@ +{ + "cell": "static_lattice_ab", + "issue": "PyAutoLabs/PyAutoArray#568", + "phase": 3, + "config_name": "laptop_cpu_fp64", + "quotable": false, + "host_note": "laptop witness: WSL2, interactive load, NOT quotable -- ratios indicative only", + "quick": false, + "models": [ + "simple", + "cluster" + ], + "constant_folding": { + "requested": true, + "xla_flags_requested": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "xla_flags_effective": "--xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false --xla_disable_hlo_passes=constant_folding_probe_disabled", + "probe": { + "probe": "jit(lambda: c @ c), c = linspace(0.1, 1, 1000) constant", + "entry_has_computation": false, + "folding_ran": true, + "entry_hlo": "ENTRY %main.1 () -> f64[] {\n %constant.4 = f64[] constant(370.13513513513516), metadata={op_name=\"jit()/dot_general\" stack_frame_id=3}\n ROOT %copy = f64[] copy(%constant.4)\n}\n\n", + "agrees_with_request": true + } + }, + "library_versions": { + "autolens": "2026.8.17.1", + "autoarray": "2026.8.17.1", + "autofit": "2026.8.17.1" + }, + "package_versions": { + "jax": "0.10.2", + "jaxlib": "0.10.2" + }, + "source_revisions": { + "autolens_profiling": "3da2583d46b80f72793caf11a16433ca05f00d20", + "PyAutoNerves": "1fa613aa8d89a79613009fb66f5b4e2d21deb57a", + "PyAutoFit": "a736840127be7a3c21e15a5c945e94d8f1082983", + "PyAutoArray": "ad0bf97b45d572effa5d428a101d32ac4893b950", + "PyAutoGalaxy": "70a61e26cd715cefe7012a38285698091246a8a4", + "PyAutoLens": "b346b6a0a092098f23964e274edb220ea9757ad0" + }, + "autoarray_imported_from": "~/Code/PyAutoLabs-wt/point-source-cpu-p3/PyAutoArray", + "autolens_imported_from": "~/Code/PyAutoLabs-wt/point-source-cpu-p3/PyAutoLens", + "target": "autolens.point.solver.shape_solver.AbstractSolver._initial_triangles", + "route_bodies": { + "control": { + "name": "_control_initial_triangles", + "body": "def _control_initial_triangles(self, xp):\n \"\"\"The phase-2 main path: the flat (3N, 2) per-triangle table, no table attached.\"\"\"\n return _coordinate_array.CoordinateArrayTriangles.for_limits_and_scale(\n y_min=self.y_min, y_max=self.y_max, x_min=self.x_min, x_max=self.x_max, scale=self.scale\n )\n", + "bytecode_sha256": "decd881cb4e376c8" + }, + "table_factory": { + "name": "_table_initial_triangles", + "body": "def _table_initial_triangles(kind):\n def initial_triangles(self, xp):\n tables = _cell_tables(*_geometry(self))\n return _TableTriangles(\n coordinates=jnp.array(tables[\"coordinates\"]),\n side_length=self.scale,\n table=tables[kind],\n )\n\n initial_triangles.__name__ = f\"_{kind}_initial_triangles\"\n return initial_triangles\n", + "bytecode_sha256": "244334b9dfb14504" + }, + "tables": { + "name": "_cell_tables", + "body": "@functools.lru_cache(maxsize=16)\ndef _cell_tables(y_min, y_max, x_min, x_max, scale) -> dict:\n \"\"\"``{\"exact\": (V, I), \"lattice\": (V, I), \"coordinates\": C}`` for one geometry.\"\"\"\n t0 = time.perf_counter()\n coordinates = _lattice_coordinates(y_min, y_max, x_min, x_max, scale)\n flip = np.where((coordinates[:, 0] + coordinates[:, 1]) % 2 != 0, -1, 1)[:, None]\n scaling = np.array([0.5 * scale, HEIGHT_FACTOR * scale])\n centres = scaling * coordinates + np.array([0.0, 0.0])\n triangles = np.stack(\n (\n centres + flip * np.array([0.0, 0.5 * scale * HEIGHT_FACTOR]),\n centres + flip * np.array([0.5 * scale, -0.5 * scale * HEIGHT_FACTOR]),\n centres + flip * np.array([-0.5 * scale, -0.5 * scale * HEIGHT_FACTOR]),\n ),\n axis=1,\n )\n flat = triangles.reshape(-1, 2)\n\n exact_vertices, exact_inverse = np.unique(flat, axis=0, return_inverse=True)\n\n offsets = np.array([[0, 1], [1, -1], [-1, -1]])\n keys = np.stack(\n (\n coordinates[:, None, 0] + flip * offsets[None, :, 0],\n 2 * coordinates[:, None, 1] + flip * offsets[None, :, 1],\n ),\n axis=-1,\n ).reshape(-1, 2)\n _, first, lattice_inverse = np.unique(keys, axis=0, return_index=True, return_inverse=True)\n\n tables = {\n \"coordinates\": coordinates,\n \"exact\": (exact_vertices, exact_inverse.reshape(-1, 3)),\n \"lattice\": (flat[first].copy(), lattice_inverse.reshape(-1, 3)),\n }\n _TABLE_BUILD_S[(y_min, y_max, x_min, x_max, scale)] = time.perf_counter() - t0\n return tables\n", + "bytecode_sha256": "3b7bdf752e1994f7" + }, + "table_triangles": { + "body": "class _TableTriangles(_coordinate_array.CoordinateArrayTriangles):\n \"\"\"The library lattice with a cell-supplied ``(vertices, indices)`` table.\n\n Only ``_vertices_and_indices`` changes; every derived lattice is built as the base\n class by the library's own methods, so steps >= 1 are untouched.\n \"\"\"\n\n def __init__(self, coordinates, side_length, table):\n super().__init__(coordinates=coordinates, side_length=side_length)\n self._cell_table = table\n\n @property\n def _vertices_and_indices(self):\n vertices, indices = self._cell_table\n return jnp.asarray(vertices), jnp.asarray(indices)\n", + "bytecode_sha256": "6308d3338aa3791a" + } + }, + "body_provenance_captured": "import time", + "expected_step0_rows": { + "simple": { + "geometry": [ + -9.9, + 9.9, + -9.9, + 9.9, + 0.2 + ], + "n_triangles": 23283, + "rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + } + }, + "cluster": { + "geometry": [ + -69.64999999999999, + 69.64999999999999, + -69.64999999999999, + 69.64999999999999, + 0.7 + ], + "n_triangles": 92169, + "rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + } + } + }, + "tables": { + "simple": { + "cell_build_ms": 147.54220000031637, + "cell_cache_hit_us": 0.8999995770864189, + "exact_table_mb": 1.017432, + "lattice_table_mb": 0.748536, + "library_static_vertex_table": { + "build_ms": 170.2930000028573, + "cache_hit_us": 2.7999994927085936, + "rows": 11859, + "mb": 0.748536, + "equals_cell_lattice_table": true + } + }, + "cluster": { + "cell_build_ms": 550.0634999989416, + "cell_cache_hit_us": 0.700001692166552, + "exact_table_mb": 3.973416, + "lattice_table_mb": 2.956312, + "library_static_vertex_table": { + "build_ms": 280.04190000137896, + "cache_hit_us": 3.0999981390777975, + "rows": 46516, + "mb": 2.956312, + "equals_cell_lattice_table": true + } + } + }, + "device": { + "backend": "cpu", + "device": "cpu:0", + "hostname": "DESKTOP-H143S82", + "xla_flags": "--xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false --xla_disable_hlo_passes=constant_folding_probe_disabled", + "omp_num_threads": "1", + "cpu_count": 8, + "jax_compilation_cache_dir": null, + "autotune_cache_entries_at_start": 0, + "cache_fresh": false + }, + "jax_devices": [ + "cpu:0" + ], + "machine": { + "cpu_model": "Intel(R) Core(TM) i9-10885H CPU @ 2.40GHz", + "cpu_count_os": 8, + "nproc": 1, + "nproc_all": 8, + "nproc_note": "GNU nproc honours OMP_NUM_THREADS, so `nproc` can print 1 on a multi-core host; `nproc_all` is the core count.", + "ram_total": "16392692 kB", + "kernel": "5.10.16.3-microsoft-standard-WSL2", + "platform": "Linux-5.10.16.3-microsoft-standard-WSL2-x86_64-with-glibc2.35", + "python": "3.12.10", + "jax_thread_env": { + "NPROC": "8" + }, + "blas_thread_env": { + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1", + "VECLIB_MAXIMUM_THREADS": "1", + "NUMEXPR_NUM_THREADS": "1" + }, + "thread_env_note": "NPROC sizes XLA's CPU intra-op pool (the JAX rows); the BLAS knobs pin OpenBLAS/MKL/OpenMP (the numpy/scipy rows) and do not touch JAX. Two disjoint families; both are recorded on every CPU timing.", + "gpu": "NVIDIA GeForce RTX 2060 with Max-Q Design, 6144 MiB, 580.97" + }, + "thread_environment": { + "NPROC": "8", + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1" + }, + "xla_threads_observed_after_first_compile": { + "threads": 50, + "label": "simple_solved/control" + }, + "threads_at_end": 50, + "sched_affinity": 8, + "os_cpu_count": 8, + "xla_flags": "--xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false --xla_disable_hlo_passes=constant_folding_probe_disabled", + "jax_platforms": "cpu", + "jax_enable_x64": true, + "loadavg_start": [ + 5.64404296875, + 4.427734375, + 3.0703125 + ], + "loadavg_end": [ + 5.7548828125, + 4.25048828125, + 3.552734375 + ], + "protocol": { + "routes": [ + "control", + "exact", + "lattice", + "library" + ], + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "n_stream": 16, + "n_gate_instances": 3, + "vmap_batch": 4, + "instance_seed": 568, + "instance_stream": "entry 0 = prior medians; rest = vector_from_unit_vector(U(0.25,0.75))", + "argument": "physical parameter vector; instance_from_vector(xp=jnp) inside the trace", + "cache_trap_guard": "fresh closure + fresh solver/analyses per route; jax.clear_caches()", + "bootstrap": { + "samples": 2000, + "seed": 12345, + "interval": "90%" + }, + "gates": { + "log_likelihood_rtol": 1e-12, + "positions_atol": 1e-10, + "grad_rtol": 1e-10, + "grad_atol": 1e-12, + "vmap_rtol": 1e-12, + "cluster": "log-likelihood and positions only (no cluster grad/vmap/step-0 sets)" + }, + "pytrees": "autofit.jax.register_model(model) for every model before any trace" + }, + "free_parameters": { + "simple_solved": 5, + "simple_plain": 8, + "cluster_solved": 13, + "cluster_plain": 17 + }, + "model_configuration": { + "simple": { + "dataset": "dataset/point_source/simple/point_dataset_positions_only.json", + "solver_grid_shape": [ + 100, + 100 + ], + "solver_grid_pixel_scale": 0.2, + "solver_pixel_scale_precision": 0.001, + "magnification_threshold": 0.1, + "likelihoods": { + "solved": "FitPositionsImagePairAllSolved", + "plain": "FitPositionsImagePairAll" + } + }, + "cluster": { + "dataset": "dataset/cluster/simple/point_datasets.csv", + "n_systems": 2, + "n_mass_profiles": 13, + "solver_grid_shape": [ + 200, + 200 + ], + "solver_grid_pixel_scale": 0.7, + "solver_pixel_scale_precision": 0.01, + "source_centres_from": "back-traced observed-image centroids (cluster cell step 1)", + "likelihoods": { + "solved": "FitPositionsImagePairRepeatSolved (summed over systems)", + "plain": "FitPositionsImagePairRepeat (summed over systems)" + } + } + }, + "library_label": { + "per_row": { + "simple_solved": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "simple_solved_vmap4": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "simple_plain": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "cluster_solved": { + "library_step0_rows": [ + 46516 + ], + "expected_rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [] + }, + "cluster_plain": { + "library_step0_rows": [ + 46516 + ], + "expected_rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [] + } + }, + "library_matches": "lattice" + }, + "library_matches": "lattice", + "all_gates_pass": true, + "gate_summary": { + "simple_solved.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_positions.control_vs_exact": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_positions.control_vs_lattice": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_positions.control_vs_library": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_grad.control_vs_exact": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_grad.control_vs_lattice": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_grad.control_vs_library": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.control": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.exact": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.lattice": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.library": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_plain_step0_containing.control_vs_exact": { + "pass": true + }, + "simple_plain_step0_containing.control_vs_lattice": { + "pass": true + }, + "simple_plain_step0_containing.control_vs_library": { + "pass": true + }, + "cluster_solved_positions.control_vs_exact": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "cluster_solved_positions.control_vs_lattice": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "cluster_solved_positions.control_vs_library": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + } + }, + "rows": { + "simple_solved": { + "label": "simple_solved", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 8.550200000172481, + 7.846699998481199, + 8.41500000024098, + 7.911000000603963, + 11.317799999233102, + 7.745200000499608, + 7.284199997229734, + 7.524399999965681, + 7.202099997812184, + 7.5679999972635414, + 8.260899998276727, + 11.565599997993559, + 11.911699999473058, + 7.384800002910197, + 7.378400001471164, + 8.626200000435347, + 7.29249999858439, + 7.196899998234585, + 7.121700000425335, + 7.9336999988299794, + 6.952200001251185, + 10.524599998461781, + 7.553399998869281, + 10.507900002266979, + 11.781000001064967, + 14.73499999701744, + 12.011499999061925, + 11.900500001502223, + 11.06209999852581, + 13.310199999978067, + 11.733200000890065, + 13.659399999596644, + 12.125100001867395, + 11.787499999627471, + 12.640600001759594, + 13.198000000556931, + 14.71289999972214, + 14.542400000209454, + 13.526300001103664, + 14.779400000406895, + 16.09920000191778, + 11.186899999302113, + 16.634400002658367, + 17.118399999162648, + 18.386499999905936, + 10.37949999954435, + 12.619499997526873, + 17.015099998388905, + 16.35780000287923, + 15.03469999806839, + 16.90460000099847, + 18.90329999878304, + 11.03290000173729, + 9.679400001914473, + 12.474000002839603, + 11.646299997664755, + 11.571699997148244, + 10.166199997911463, + 20.963700000720564, + 14.464500000030966, + 8.79010000062408, + 9.918200001266086, + 11.109499999292893, + 8.942899999965448, + 12.66129999930854, + 8.237100002588704, + 12.654999998630956, + 10.346200000640238, + 11.679999999614665, + 8.824900000035996, + 9.611899997253204, + 8.504999997967388, + 10.31660000080592, + 9.827400001086062, + 9.886499999993248, + 9.360500000184402, + 7.704200001171557, + 11.887100001331419, + 11.444799998571398, + 7.567900000140071, + 8.99800000115647, + 7.8431000001728535, + 11.485899998660898, + 10.500000000320142, + 8.174300000973744, + 7.98660000145901, + 9.922699999151519, + 11.981400002696319, + 13.93620000089868, + 13.90479999827221, + 10.513299999729497, + 14.187599997967482, + 13.598300000012387, + 13.857199999620207, + 13.06970000223373, + 15.014999997220002, + 12.38290000037523, + 13.005900000280235, + 9.421000002475921, + 12.121299998398172, + 9.143600000243168, + 7.012300000496907, + 7.1026999976311345, + 11.091899999883026, + 10.780000000522705, + 10.282399998686742, + 10.37710000309744, + 6.892999997944571, + 7.02369999999064, + 6.841899998107692, + 7.477499999367865, + 10.895999999775086, + 11.232799999561394, + 10.805699999764329, + 10.439500001666602, + 7.04069999846979, + 10.9701999972458, + 6.876899999042507, + 7.338999999774387, + 10.208700001385296, + 12.145500000769971, + 9.664799999882234, + 10.850099999515805, + 11.93069999862928, + 13.194700000894954, + 11.315100000501843, + 14.198999997461215, + 12.46030000038445, + 12.008500001684297, + 13.599500001873821, + 12.741399998049019, + 12.777100000676, + 10.518899998714915, + 9.537299996736692, + 13.95789999878616, + 11.726500000804663, + 8.342199998878641, + 13.335600000573322, + 12.46490000266931, + 12.374900001304923, + 11.28190000235918, + 13.99920000039856, + 10.01880000330857, + 13.085499998851446, + 12.13600000119186, + 10.112800002389122, + 8.731099998840364, + 13.281600000482285, + 8.171400000719586, + 9.909399999742163, + 9.199100000842009, + 8.144600000377977, + 13.204599999880884, + 8.224200002587168, + 10.883099999773549, + 9.830599999986589, + 8.226500001910608, + 11.647199997241842, + 10.809600000357023, + 8.711999998922693, + 13.445700002193917, + 8.769200001552235, + 7.66029999795137, + 12.38300000113668, + 12.9175000001851, + 7.9030000015336554, + 11.087800001405412, + 11.957899998378707, + 9.025100000144448, + 9.275399999751244, + 8.462199999485165, + 11.419700000260491, + 8.658800001285272, + 8.632599998236401, + 10.273899999447167, + 8.365900001081172, + 8.989500001916895, + 8.796399997663684, + 10.501099997782148, + 7.825700002285885, + 6.376900000759633, + 6.432099999074126, + 6.851500002085231, + 6.457200001023011, + 6.003300000884337, + 6.010299999616109, + 6.051899999874877, + 6.303099999058759, + 6.115299998782575, + 6.1181000019132625, + 6.43829999899026, + 7.170599998062244, + 8.987999997771112, + 5.967499997495906, + 5.995000003167661, + 6.086699999286793, + 5.867500000022119, + 5.823100000270642, + 6.246699998882832, + 5.872899997484637, + 5.617500002699671, + 5.7047000009333715, + 5.705300001864089, + 5.925800000113668, + 5.848499997227918, + 5.786100002296735, + 5.759100000432227, + 6.046899998182198, + 6.102799998188857, + 6.320599997707177, + 5.947499998001149, + 5.949700000201119, + 6.076100002246676, + 7.402600000204984, + 7.232800002384465, + 5.9595999991870485, + 5.742299999837996, + 7.158199998229975, + 5.790499999420717, + 5.929799997829832, + 6.515199998830212, + 5.748599996877601, + 5.8327000006102026, + 5.8523000006971415, + 5.952600000455277, + 5.823800001962809, + 5.911400003242306, + 5.824500000016997, + 9.323700000095414, + 5.6990999983099755, + 5.447800002002623, + 6.142899997939821, + 5.5578999999852385, + 5.489400002261391, + 7.007000000157859, + 5.630099996778881, + 5.871800000022631, + 6.672200001048623, + 5.673899999237619, + 5.884800000785617, + 5.763500001194188, + 5.948800000624033, + 5.843799997819588, + 6.074900000385242, + 7.165800001530442, + 5.868599997484125, + 6.071899999369634, + 5.960399998002686, + 6.011999998008832, + 6.151199999294477, + 5.908799997996539, + 7.042599998385413, + 7.033900001260918, + 7.717600001342362, + 6.321200002275873, + 7.693700001254911, + 7.31150000137859, + 6.116900000051828, + 6.73340000139433, + 5.902399996557506, + 12.476600000809412, + 19.616400000813883, + 11.646899998595472, + 10.35290000072564, + 11.003499999787891, + 11.443699997471413, + 9.386799996718764, + 7.366900001215981, + 11.456899999757297, + 13.111599997500889, + 11.017499997251434, + 9.957900001609232, + 7.8528999983973335, + 9.88589999906253, + 10.449299999891082, + 10.621800000080839, + 8.585100000345847, + 8.273499999631895, + 10.07220000246889, + 12.026299998979084, + 9.301599999162136, + 7.916200000181561, + 9.996000000683125, + 8.851099999446888, + 7.491899999877205, + 7.196900001872564, + 6.897000002936693, + 7.042299999739043, + 6.9511000001512, + 11.481700003059814, + 7.237500001792796, + 7.241100000101142, + 7.452399997418979, + 7.298600001377054, + 7.126599997718586, + 7.130599999072729, + 6.928299997525755, + 7.04319999931613, + 6.973600000492297, + 6.841799997346243, + 11.525700003403472, + 8.064800000283867, + 7.695500000409083, + 6.829899997683242, + 8.121099999698345, + 6.918399998539826, + 7.435800001985626, + 6.897200000821613, + 6.778499999199994, + 10.755299997981638, + 10.266299999784678, + 10.475999999471242, + 7.1776999975554645, + 7.2049999980663415, + 6.883399997605011, + 6.849100002000341, + 6.848099998023827, + 6.587799998669652, + 6.778700000722893, + 6.579299999430077, + 7.576899999548914, + 6.0647999998764135, + 5.9884999973292, + 6.119999998190906, + 6.311500001174863, + 5.918399998336099, + 6.231899998965673, + 7.809000002453104, + 6.0843999999633525, + 6.0374999993655365, + 6.01999999707914, + 5.989099998259917, + 6.1606999988725875, + 5.958100002317224, + 6.2250999981188215, + 6.010900000546826, + 6.035299997165566, + 6.111300001066411, + 5.984599996736506, + 5.841599999257596, + 6.337499999062857, + 6.402099999831989, + 8.428100001765415, + 10.545400000410154, + 9.588500000973, + 9.01990000056685, + 10.264200001984136, + 6.673600000794977, + 7.287499996891711, + 11.185999999725027, + 7.003200000326615, + 6.216800000402145, + 8.00840000010794, + 6.8082999969192315, + 8.094199998595286, + 6.409499997971579, + 6.3405999972019345, + 7.520899998780806, + 9.494300000369549, + 9.265699998650234, + 6.497099999251077, + 6.607300001633121, + 6.360600000334671, + 6.827699999121251, + 6.466500002716202, + 6.738500000210479, + 6.61710000349558, + 7.342500000959262, + 6.952399999136105, + 10.165600000618724, + 7.236499997816281, + 6.703800001560012, + 6.514499997138046, + 6.369800001266412, + 6.184699999721488, + 6.1189000007289, + 6.094399999710731, + 6.445200000598561, + 8.282700000563636, + 7.711499998549698, + 6.671700000879355, + 6.0945000004721805, + 7.039599997369805, + 7.469299998774659, + 6.21550000141724, + 6.652899999608053, + 6.125799998699222, + 6.038499999704072, + 6.277399999817135, + 5.81880000027013, + 5.94709999859333, + 5.891500000871019, + 6.582199999684235, + 6.045300000550924, + 6.042600001819665, + 6.0937000016565435, + 6.010900000546826, + 5.915800000366289, + 6.210299998201663, + 5.851399997482076 + ], + "exact": [ + 7.387199999357108, + 5.013099998905091, + 6.949599999643397, + 7.644500001333654, + 5.936900000961032, + 6.355599998641992, + 4.856899999140296, + 5.3776999993715435, + 9.745200000907062, + 4.5956999965710565, + 5.264100000204053, + 4.998800002795178, + 4.746200000226963, + 6.005999999615597, + 6.892600002174731, + 4.891900000075111, + 5.04469999941648, + 4.924199998640688, + 6.146600000647595, + 7.657099999050843, + 5.914200002735015, + 5.452900000818772, + 7.922799999505514, + 5.762499997217674, + 7.797100002790103, + 8.739300003071548, + 9.680799998022849, + 5.7536999993317295, + 5.812399998831097, + 5.637500002194429, + 8.230300001741853, + 5.213500000536442, + 5.720900000596885, + 5.321999997249804, + 8.140400001138914, + 5.7173999994120095, + 5.507699999725446, + 7.351200001721736, + 5.106600001454353, + 7.941600000776816, + 9.044899998116307, + 10.738500001025386, + 9.626600000046892, + 10.772199999337317, + 7.887200001277961, + 8.45149999804562, + 8.312400001159403, + 9.570199999870965, + 7.685500000661705, + 8.355300000403076, + 7.017299998551607, + 6.398000001354376, + 8.583099999668775, + 7.140599998820107, + 7.646300000487827, + 7.436300002154894, + 6.222500000149012, + 8.775299997068942, + 6.27130000066245, + 8.857099997840123, + 5.203900000196882, + 7.375799999863375, + 6.943799999135081, + 5.049399998824811, + 5.076500001450768, + 6.312500001513399, + 5.25990000096499, + 6.083899999794085, + 5.761899999924935, + 4.818500001420034, + 4.894399997283472, + 5.5877999984659255, + 4.7717000015836675, + 6.575100000191014, + 4.9319999998260755, + 4.858999996940838, + 5.069900002126815, + 7.657300000573741, + 5.020900000090478, + 5.7480999967083335, + 9.045099999639206, + 9.515100002317922, + 10.543999997025821, + 9.96359999771812, + 8.644300000014482, + 7.830499998817686, + 8.982999999716412, + 8.662600001116516, + 8.135899999615503, + 8.208199997170595, + 7.27280000137398, + 6.646899997576838, + 7.904800000687828, + 8.172499998181593, + 8.696199998666998, + 8.517600002960535, + 6.292099998972844, + 7.156499999837251, + 6.504499997390667, + 8.822399999189656, + 7.561800000985386, + 8.163099999364931, + 8.40010000320035, + 8.38859999930719, + 5.838900000526337, + 5.157999999937601, + 5.562000002100831, + 5.262999999104068, + 8.196400001907023, + 4.985600000509294, + 8.853600000293227, + 6.423700000596, + 5.5461999982071575, + 5.485199999384349, + 5.444900001748465, + 5.23819999943953, + 5.415999999968335, + 5.934000000706874, + 5.716499999834923, + 5.257399996480672, + 8.963799999037292, + 12.558900001749862, + 22.290000000793952, + 18.82090000071912, + 20.569600001181243, + 10.31670000156737, + 6.333400000585243, + 6.671200000710087, + 7.4337000005471054, + 6.052400000044145, + 7.302499998331768, + 9.392100000695791, + 6.116699998528929, + 5.831799997395137, + 6.3319000000774395, + 6.459399999585003, + 9.10690000091563, + 8.91090000004624, + 6.579100001545157, + 9.11679999990156, + 5.781500000011874, + 11.33260000278824, + 7.6180999967618845, + 8.235500001319451, + 7.654199998796685, + 5.90580000061891, + 7.215800000267336, + 8.118999998259824, + 8.387400001083734, + 7.137299999158131, + 6.620300002396107, + 6.359599999996135, + 5.527699999220204, + 5.618499999400228, + 8.738399999856483, + 5.39310000021942, + 5.6231000016850885, + 5.163500001799548, + 5.019999996875413, + 7.578000000648899, + 9.43849999748636, + 6.042000000888947, + 10.000700000091456, + 5.312599998433143, + 9.770600001502316, + 5.04709999950137, + 7.497599999624072, + 5.503899999894202, + 5.362500000046566, + 6.66579999960959, + 5.584999998973217, + 6.846100000984734, + 6.044199999450939, + 6.407400000171037, + 6.095000000641448, + 5.679500001861015, + 5.374899999878835, + 5.725600000005215, + 5.343600001651794, + 5.028100000345148, + 5.80660000196076, + 6.715400002576644, + 4.896899998129811, + 6.525300002977019, + 5.0922999980684835, + 4.775800000061281, + 6.022900000971276, + 4.984800001693657, + 8.149600002070656, + 5.760399999417132, + 4.98900000093272, + 5.7137000003422145, + 5.470899999636458, + 4.782600000908133, + 5.384399999456946, + 5.692200000339653, + 4.7904999992169905, + 5.481500000314554, + 5.566799998632632, + 4.908999999315711, + 4.108699999051169, + 4.022199998871656, + 4.237599998305086, + 6.347099999402417, + 4.134099999646423, + 4.040200001327321, + 4.061100000399165, + 5.067900001449743, + 4.245999996783212, + 4.471200001717079, + 6.26879999981611, + 3.989299999375362, + 4.065799999807496, + 4.0193999993789475, + 4.086299999471521, + 4.211399998894194, + 4.101800001080846, + 4.422199999680743, + 4.247400000167545, + 4.038399998535169, + 4.061800002091331, + 4.090499998710584, + 3.972400001657661, + 4.715099999884842, + 4.611100001056911, + 4.0720999968471006, + 4.771600000822218, + 4.579100001137704, + 3.9940000024216715, + 6.453000001783948, + 5.3393000016512815, + 4.201499999908265, + 4.143999998632353, + 4.365799999504816, + 4.170299998804694, + 4.116099997190759, + 4.037100003188243, + 6.78890000199317, + 4.078100002516294, + 4.042399999889312, + 3.940499998861924, + 4.151099998125574, + 4.675000000133878, + 4.364200001873542, + 4.3138000000908505, + 5.215900000621332, + 4.406900003232295, + 4.594099998939782, + 7.311999997909879, + 3.94610000148532, + 3.993800000898773, + 4.658400001062546, + 4.665700002078665, + 4.528800000116462, + 5.832499999087304, + 4.636399997252738, + 4.366900000604801, + 6.924299999809591, + 6.30280000041239, + 4.33329999941634, + 4.520400001638336, + 6.769499999791151, + 5.0665999988268595, + 5.014700000174344, + 5.119200002809521, + 4.85580000167829, + 4.499000002397224, + 4.503700001805555, + 4.732899997179629, + 4.6308000019053, + 4.657399997086031, + 5.263500002911314, + 4.722699999547331, + 4.55589999910444, + 4.4850000012957025, + 4.231300001265481, + 4.350499999418389, + 4.368499998236075, + 4.565999999613268, + 4.36719999925117, + 4.727499999717111, + 6.049999999959255, + 4.7847000023466535, + 4.809599999134662, + 4.782300002261763, + 4.877999999735039, + 5.053299999417504, + 7.053500001347857, + 4.777599999215454, + 5.109899997478351, + 7.20999999975902, + 5.057400001533097, + 5.318300001817988, + 5.2084000017202925, + 7.8487000027962495, + 8.01310000315425, + 4.976399999577552, + 4.938999998557847, + 7.898299998487346, + 8.904300000722287, + 4.660699996748008, + 4.501800001889933, + 5.277400003251387, + 4.88000000041211, + 4.835700001422083, + 5.230599999777041, + 4.834600000322098, + 4.546900003333576, + 5.571400000917492, + 4.734500002086861, + 4.852100002608495, + 5.123899998579873, + 4.868100000749109, + 5.868000000191387, + 4.720600001746789, + 5.036200000176905, + 4.528800000116462, + 4.397400000016205, + 4.329999999754364, + 4.820499998459127, + 4.09649999710382, + 4.111500002181856, + 4.0962999992189, + 4.0855999977793545, + 3.976400003011804, + 4.256000000168569, + 4.11809999786783, + 4.0919999992183875, + 4.090700000233483, + 4.089400001248578, + 4.607200000464218, + 6.3004000003275, + 4.200700001092628, + 4.1772999975364655, + 4.530800000793533, + 3.9709000011498574, + 3.9180999992822763, + 4.016099999716971, + 3.9152999997895677, + 4.0740000004007015, + 4.160399999818765, + 4.045999998197658, + 3.9371999991999473, + 4.030500000226311, + 4.080899998371024, + 3.8664999992761295, + 4.014100002677878, + 4.902799999399576, + 4.318800001783529, + 4.180100000667153, + 4.686799999035429, + 4.302999997889856, + 4.063100001076236, + 4.024400001071626, + 4.028600000310689, + 4.022799999802373, + 3.9915999986988027, + 3.9422999980160967, + 3.979799999797251, + 4.041799998958595, + 5.754400001023896, + 4.554300001473166, + 4.286899998987792, + 6.49409999823547, + 5.481400003191084, + 4.913299999316223, + 5.8898999996017665, + 4.988299999240553, + 4.631299998436589, + 5.3736999980174005, + 4.910800002107862, + 4.471199998079101, + 4.824100000405451, + 5.048499999247724, + 5.9445000006235205, + 5.177399998501642, + 5.311600001732586, + 4.800200000318, + 4.68909999835887, + 5.035700000007637, + 4.057999998622108, + 4.794200001924764, + 4.096399999980349, + 4.167200000665616, + 4.1775999998208135, + 6.714900002407376, + 4.163100002188003, + 4.143700003623962, + 4.285800001525786, + 4.281499997887295, + 4.121900001337053, + 3.996199997345684, + 4.71780000225408, + 4.184999997960404, + 4.2424999992363155, + 4.285799997887807, + 4.391099999338621, + 4.392099999677157, + 4.12520000099903, + 4.065099998115329 + ], + "lattice": [ + 7.887600000685779, + 6.351399999402929, + 6.202900000062073, + 6.163399997603847, + 6.465999998908956, + 4.3007999993278645, + 5.081100000097649, + 6.485699999757344, + 5.768200000602519, + 5.738399999245303, + 3.965800002333708, + 5.3723999990324955, + 6.918999999470543, + 7.12059999932535, + 4.797699999471661, + 6.2813000004098285, + 5.83080000069458, + 5.9535000000323635, + 10.64559999940684, + 7.603599999129074, + 4.004499998700339, + 3.9402000002155546, + 3.8170000007085036, + 3.8453000015579164, + 6.09460000123363, + 3.96069999987958, + 5.905099998926744, + 4.38159999976051, + 5.167200000869343, + 4.927800000587013, + 4.073700001754332, + 3.5826999992423225, + 4.765099998621736, + 3.631100000347942, + 5.478600000060396, + 3.643300002295291, + 3.664200001367135, + 3.6583000000973698, + 5.022000001190463, + 3.518400000757538, + 7.528699999966193, + 6.361399999150308, + 6.246000000828644, + 5.723400001443224, + 12.782699999661418, + 6.874700000480516, + 5.367599998862715, + 6.64409999808413, + 5.40019999971264, + 6.1064000001351815, + 6.43330000093556, + 7.231400002638111, + 5.150400000275113, + 7.3064999996859115, + 7.491700001992285, + 10.088800001540221, + 7.709199999226257, + 7.213500000943895, + 6.062500000552973, + 5.8136000006925315, + 5.689199999324046, + 4.246099997544661, + 4.523099996731617, + 5.783200002042577, + 5.841300000611227, + 5.921300002228236, + 4.280900000594556, + 6.066299996746238, + 5.492099997354671, + 8.580599998822436, + 5.604099998890888, + 5.938500002230285, + 5.786900001112372, + 5.893499997910112, + 3.7558000003627967, + 5.068900001788279, + 4.861600002186606, + 6.345900001178961, + 3.9972000013221987, + 3.8612000025750604, + 4.296099999919534, + 4.069499998877291, + 4.200300001684809, + 4.2421999969519675, + 4.142600002523977, + 3.9832999973441474, + 4.367800000181887, + 6.015899998601526, + 4.317300001275726, + 4.521599999861792, + 5.73420000000624, + 5.393999999796506, + 5.935299999691779, + 4.634000000805827, + 4.60929999826476, + 5.816699998831609, + 5.456599999888567, + 4.148299998632865, + 4.049199997098185, + 4.397699998662574, + 3.9288000007218216, + 5.313200003001839, + 3.7774999982502777, + 4.625100002158433, + 5.283700000290992, + 3.8107999971543904, + 4.044399996928405, + 4.302699999243487, + 4.128199998376658, + 4.169199997704709, + 4.498599999351427, + 6.549800000357209, + 5.381999999372056, + 4.033999997773208, + 6.284199997026008, + 4.141100002016174, + 3.978400000050897, + 4.328899998654379, + 5.378500001825159, + 3.979000000981614, + 3.8501000017276965, + 3.5654999992402736, + 3.683199996885378, + 3.686399999423884, + 4.7952000022633, + 3.9698000000498723, + 5.858299999090377, + 3.946200002246769, + 5.482100001245271, + 7.2725999998510815, + 6.891700002597645, + 6.886600000143517, + 6.981499998801155, + 7.241800001793308, + 7.701099999394501, + 5.126000000018394, + 6.017300001985859, + 6.5031000012822915, + 6.016200000885874, + 7.0940000005066395, + 3.9111999976739753, + 3.9819999983592425, + 4.079799997271039, + 6.26650000049267, + 4.251700000168057, + 4.273900001862785, + 4.731599998194724, + 4.987699998309836, + 4.541999998764368, + 7.720000001427252, + 5.433700000139652, + 5.8563000020512845, + 7.492700002330821, + 6.421800000680378, + 7.22210000094492, + 5.3805999996257015, + 5.260900001303526, + 7.058200000756187, + 4.472200002055615, + 4.224799999064999, + 4.869000000326196, + 4.20260000100825, + 3.966299998864997, + 4.9136999987240415, + 4.482200001802994, + 4.436800001712982, + 3.8715000009688083, + 4.932600000756793, + 3.923899999790592, + 4.264399998646695, + 3.757800001039868, + 5.730500000936445, + 4.155300001002615, + 4.274600003554951, + 5.191100000956794, + 4.539499997918028, + 4.622000000381377, + 3.884900001139613, + 4.556500000035157, + 4.241700000420678, + 3.524800002196571, + 4.68429999818909, + 4.163699999480741, + 3.56380000084755, + 3.424899998208275, + 5.711499998142244, + 3.735399997822242, + 3.799400001298636, + 3.667099997983314, + 4.615699999703793, + 4.082499999640277, + 3.70180000027176, + 3.518899997288827, + 4.73259999853326, + 3.5713000033865683, + 3.4677000003284775, + 3.4137000002374407, + 4.65500000063912, + 3.4518000029493123, + 3.3117000020865817, + 3.2505000017408747, + 3.4545000016805716, + 3.431600001931656, + 3.2019000027503353, + 3.3150999988720287, + 3.0985999983386137, + 3.3881999988807365, + 3.1452000002900604, + 3.329199997097021, + 3.0440000009548385, + 3.0251999996835366, + 3.389099998457823, + 4.11309999981313, + 3.124500002741115, + 2.8453000013541896, + 3.3511000001453795, + 4.733500001748325, + 3.0181000001903158, + 3.035899997485103, + 2.9451000009430572, + 3.3174999989569187, + 3.4019999984593596, + 3.159400002914481, + 3.0393999986699782, + 3.086799999437062, + 3.1033000013849232, + 3.330100000312086, + 3.209999998944113, + 3.3937999978661537, + 3.2547000009799376, + 3.130199998850003, + 3.4551999997347593, + 3.40660000074422, + 2.95429999823682, + 3.0960000003688037, + 3.106399999524001, + 3.426499999477528, + 3.059200000279816, + 2.870600001187995, + 3.4453999978723004, + 3.106399999524001, + 3.0930000029911753, + 3.4727000020211563, + 3.1116000027395785, + 4.43000000086613, + 3.315699999802746, + 3.3629999998083804, + 3.282700003182981, + 2.982099998916965, + 3.134999999019783, + 3.230700000131037, + 3.2676000009814743, + 3.3143000000563916, + 3.093899998930283, + 5.038299997977447, + 3.2080000019050203, + 3.360200000315672, + 3.5428999981377274, + 3.422499998123385, + 4.730299999209819, + 3.3415999969292898, + 3.3997999998973683, + 3.455400001257658, + 3.4149999992223457, + 3.4729999970295466, + 3.39209999947343, + 3.4574000019347295, + 3.4845999980461784, + 4.0243999974336475, + 5.175999998755287, + 3.354899999976624, + 3.346699999383418, + 3.419399999984307, + 6.295200000749901, + 3.574599999410566, + 5.150299999513663, + 5.411300000560004, + 3.8968999979260843, + 4.558199998427881, + 7.314499998756219, + 4.05279999904451, + 3.6744000026374124, + 5.0315999978920445, + 3.705300001456635, + 3.660800000943709, + 3.6363999970490113, + 3.5509000008460134, + 5.839000001287786, + 4.257300002791453, + 5.929400002059992, + 5.617700000584591, + 3.606899997976143, + 5.4849999978614505, + 5.273800001305062, + 6.0750999982701614, + 5.404499999713153, + 6.2230000003182795, + 5.511999999725958, + 4.4030999997630715, + 5.198700000619283, + 3.3927000004041474, + 3.3417999984521884, + 3.4359000019321684, + 3.3645999974396545, + 3.2715999986976385, + 3.4887000001617707, + 3.5105999995721504, + 3.332899999804795, + 3.708500000357162, + 3.998499996669125, + 3.693599999678554, + 3.2575999975961167, + 3.682999999000458, + 3.277100000559585, + 3.5070000012638047, + 3.303999998024665, + 3.642199997557327, + 5.06169999789563, + 3.4099000004061963, + 3.158400002575945, + 3.061899999011075, + 3.0755000007047784, + 3.0280999999376945, + 2.8913999994983897, + 3.103000002738554, + 3.1928999997035135, + 3.071200000704266, + 2.981599998747697, + 3.2558000020799227, + 3.0414000029850286, + 3.2047999993665144, + 3.043100001377752, + 2.8225000023667235, + 3.131299999949988, + 3.192000000126427, + 2.912899999500951, + 3.062400002818322, + 3.1892000006337184, + 3.115200001047924, + 3.1082000023161527, + 3.1495000002905726, + 3.040399999008514, + 3.077499997743871, + 2.8667000005953014, + 3.113499999017222, + 2.7856000015162863, + 2.875400001357775, + 2.963799997814931, + 2.8214000012667384, + 2.881899999920279, + 2.979000000777887, + 2.9924000009486917, + 2.850699998816708, + 3.0102999990049284, + 3.039600000192877, + 3.061400002479786, + 3.1808000021555927, + 3.0225000009522773, + 3.1245999998645857, + 3.100300000369316, + 3.4961000019393396, + 5.218799997237511, + 4.100299996935064, + 3.6693000001832843, + 3.5629000012704637, + 4.135299997869879, + 4.332500000600703, + 3.7150000025576446, + 4.121900001337053, + 5.290400000376394, + 3.879100000631297, + 3.637699999671895, + 3.3231000015803147, + 5.706299998564646, + 3.7579000018013176, + 3.6340000006021, + 3.5926999989897013, + 3.7415999977383763, + 4.264300001523225, + 3.6776000015379395, + 3.364000000146916, + 3.265600000304403, + 4.476800000702497, + 3.051499999855878, + 3.659199999674456, + 3.1519000003754627, + 3.1870999991951976, + 3.220799997507129, + 3.339300001243828, + 3.2470000005559996, + 3.252400001656497, + 3.1774999988556374, + 3.158100000291597, + 3.1811999979254324, + 3.061600000364706, + 3.0204000031517353, + 3.2215999999607448, + 3.011299999343464, + 3.052599997317884, + 2.9761000005237292 + ], + "library": [ + 7.125199997972231, + 8.620299999165582, + 10.277299999870593, + 6.965099997614743, + 8.991399998194538, + 8.737100000871578, + 7.811399998900015, + 8.39319999795407, + 4.52190000214614, + 3.774699998757569, + 7.837099998141639, + 5.800800001452444, + 7.174099999247119, + 5.5941999999049585, + 4.335900001024129, + 4.390000001876615, + 4.100499998457963, + 4.414700000779703, + 4.0932999982032925, + 4.117199998290744, + 3.9642999981879257, + 3.6751000006916, + 4.261799997038906, + 3.71399999858113, + 3.6599000013666227, + 3.628399997978704, + 3.661300001112977, + 3.708399999595713, + 3.7611000007018447, + 3.5768999987340067, + 3.808599998592399, + 3.7474999990081415, + 3.6993000030633993, + 3.665799998998409, + 3.759100000024773, + 3.8819000001240056, + 3.904600001988001, + 3.8454999994428363, + 3.690699999424396, + 3.6556000013661105, + 7.299199998669792, + 7.832799998141127, + 9.11650000125519, + 9.909299998980714, + 12.360700002318481, + 9.318200001871446, + 7.91899999967427, + 5.987100001220824, + 7.408299999951851, + 5.582000001595588, + 6.7070999975840095, + 6.2956000001577195, + 5.1391999986662995, + 6.036900002072798, + 5.067000001872657, + 5.728800002543721, + 6.64870000036899, + 6.081999999878462, + 7.39149999935762, + 9.892399997625034, + 4.808500001672655, + 7.20539999747416, + 5.9819000016432256, + 5.904499997996027, + 7.1490999980596825, + 5.358800000976771, + 4.551899997750297, + 4.816099997697165, + 4.431500001373934, + 4.494799999520183, + 4.377199998998549, + 5.842200000188313, + 4.043699998874217, + 5.9045000016340055, + 4.576900002575712, + 4.492199997912394, + 4.946999997628154, + 4.595499998686137, + 4.315199999837205, + 4.712500001915032, + 4.234500000166008, + 4.058499998791376, + 4.049499999382533, + 5.262099999526981, + 4.155499998887535, + 4.868400003033457, + 4.966499996953644, + 4.071500003192341, + 3.8978000011411496, + 3.6295999998401385, + 5.814600001031067, + 3.895500001817709, + 5.611900000076275, + 4.063399999722606, + 6.382100000337232, + 4.420900000695838, + 5.0049000019498635, + 5.943800002569333, + 5.452000001241686, + 5.986699998175027, + 3.6909000009472948, + 3.9942000003065914, + 3.8363000021490734, + 4.973999999492662, + 5.2986999980930705, + 3.8944000007177237, + 3.749499999685213, + 3.428899999562418, + 3.5365999974601436, + 3.8267999989329837, + 3.818900000624126, + 3.715599999850383, + 3.737299997737864, + 3.7159999992582016, + 3.576499999326188, + 3.6547999989124946, + 3.7057000008644536, + 3.641400002379669, + 3.537600001436658, + 3.629800001363037, + 6.136899999546586, + 5.921299998590257, + 6.862800000817515, + 8.091100000456208, + 4.546600001049228, + 8.746700001211138, + 9.626399998523993, + 12.792999998055166, + 8.897800002159784, + 8.094699998764554, + 6.274299998040078, + 5.5052000025170855, + 6.410000001778826, + 6.803399999625981, + 8.411999999225372, + 4.7844000000623055, + 6.192699998791795, + 8.674699998664437, + 7.077500002196757, + 7.631100001162849, + 6.439600001613144, + 4.723499998362968, + 4.789600003277883, + 8.108000001811888, + 4.365400000096997, + 5.604500001936685, + 7.404399999359157, + 7.294999999430729, + 5.783500000688946, + 7.576200001494726, + 6.453399997553788, + 6.503399999928661, + 5.719800003134878, + 5.491700001584832, + 6.523700001707766, + 4.670899998018285, + 4.4949999974051025, + 6.44089999696007, + 5.581100002018502, + 4.27529999797116, + 4.006899998785229, + 3.787699999520555, + 5.080599999928381, + 3.5908999998355284, + 3.5860999996657483, + 3.995200000645127, + 4.468099999940023, + 3.8390000008803327, + 3.8535000021511223, + 4.438799998752074, + 4.6082000008027535, + 4.300800002965843, + 4.109899997274624, + 5.611599997791927, + 4.2728000007628, + 4.129000000830274, + 4.328299997723661, + 5.263600000034785, + 3.928599999198923, + 3.799099999014288, + 3.3823999983724207, + 3.9857000010670163, + 3.4113000001525506, + 3.38249999913387, + 3.466000001935754, + 3.3471999995526858, + 3.520599999319529, + 3.4360999998170882, + 3.2935999988694675, + 3.4453999978723004, + 3.60010000076727, + 3.564599999663187, + 3.431000001000939, + 3.3215000003110617, + 3.204199998435797, + 3.816600001300685, + 3.3671999990474433, + 3.3727999980328605, + 3.2395999987784307, + 3.3647000018390827, + 3.0673000001115724, + 3.3843000019260217, + 3.162799999699928, + 3.108799999608891, + 3.0096000009507407, + 3.278899999713758, + 3.5828999971272424, + 3.2215999999607448, + 2.9437999983201735, + 3.134700000373414, + 3.15989999944577, + 3.4248000010848045, + 3.127100000710925, + 2.962999998999294, + 2.866100003302563, + 3.1860000017331913, + 3.4868000002461486, + 3.1932000019878615, + 3.143000001728069, + 3.122599999187514, + 3.027999999176245, + 2.962499998830026, + 3.756900001462782, + 3.1069999968167394, + 3.1727999994473066, + 3.238299999793526, + 2.9462000020430423, + 3.235700001823716, + 3.1448999980057124, + 4.611199998180382, + 3.8671000002068467, + 3.0762999995204154, + 3.0483999980788212, + 3.0613999988418072, + 3.1638000000384636, + 3.8519000008818693, + 3.2146000012289733, + 3.0617000011261553, + 3.021600001375191, + 3.161799999361392, + 3.386000000318745, + 4.530899997917004, + 3.3220000004803296, + 3.294100002676714, + 3.321499996673083, + 3.4331999995629303, + 3.331100000650622, + 3.3115999976871535, + 3.2465000003867317, + 3.6111000008531846, + 4.54610000087996, + 3.4009000009973533, + 3.2815999984450173, + 3.1921000008878764, + 3.4492000013415236, + 3.232999999454478, + 3.242300001147669, + 3.419100001337938, + 3.2771999976830557, + 4.497300000366522, + 4.9695999987307005, + 5.367999998270534, + 7.871099998737918, + 3.9472999997087754, + 6.33160000143107, + 5.926900001213653, + 4.247000000759726, + 4.429599997820333, + 6.137599997600773, + 6.340600000839913, + 6.455700000515208, + 20.056499997735955, + 6.047599999874365, + 5.423599999630824, + 5.40510000064387, + 5.468200000905199, + 4.808599998796126, + 5.673499999829801, + 6.216900001163594, + 5.582000001595588, + 5.481099997268757, + 4.568100001051789, + 3.890800002409378, + 4.387799999676645, + 5.092199997307034, + 3.4932000016851816, + 5.144399998243898, + 5.5219000023498666, + 5.283899998175912, + 5.4788999987067655, + 5.188699997233925, + 4.470800002309261, + 3.930999999283813, + 3.6773000028915703, + 5.735500002629124, + 4.9915999989025295, + 5.535299998882692, + 7.072999997035367, + 4.957799999829149, + 4.424800001288531, + 4.8177999997278675, + 4.102399998373585, + 4.289299999072682, + 6.551599999511382, + 4.039100000227336, + 4.351199997472577, + 4.034899997350294, + 5.0645000010263175, + 4.089800000656396, + 3.8749999985157046, + 5.93490000028396, + 4.393999999592779, + 3.9438999992853496, + 4.61649999851943, + 3.8543000009667594, + 4.734500002086861, + 3.993499998614425, + 5.227399997238535, + 4.209000002447283, + 3.8358000019798055, + 3.081999999267282, + 3.082199997152202, + 3.079099999013124, + 3.066400000534486, + 3.127600000880193, + 3.262499998527346, + 2.9732000002695713, + 3.250000001571607, + 3.0686999998579267, + 3.086499997152714, + 3.184599998348858, + 3.0977999995229766, + 2.9553000022133347, + 2.9562999989138916, + 3.056300000025658, + 4.231299997627502, + 3.039600000192877, + 2.9222999983176123, + 2.892000000429107, + 2.8679999995802063, + 3.0143000003590714, + 2.9300999995029997, + 3.1662000001233537, + 2.998500000103377, + 3.2477999993716367, + 3.299600000900682, + 3.4496999978728127, + 3.0972999993537087, + 4.542300001048716, + 2.9628999982378446, + 3.315800000564195, + 2.7984000007563736, + 3.01930000205175, + 3.0488000011246186, + 3.1308999969041906, + 3.066100001888117, + 3.0494999991788063, + 3.047100002731895, + 2.9982000014570076, + 3.0767999996896833, + 3.628399997978704, + 4.362600000604289, + 3.6336000011942815, + 3.3704999987094197, + 3.3409999996365514, + 3.694099999847822, + 3.7125999988347758, + 3.5755999997491017, + 3.418500000407221, + 3.316999998787651, + 5.020000000513392, + 3.7347999968915246, + 3.636899997218279, + 5.238499998085899, + 4.138600001169834, + 3.3917000000656117, + 3.180299998348346, + 3.4740999981295317, + 4.98909999805619, + 3.6486999997578096, + 3.6688000000140164, + 3.6099999997531995, + 3.5322999974596314, + 4.375700002128724, + 3.7609999999403954, + 3.696499999932712, + 3.442400000494672, + 3.9270000015676487, + 3.9400000023306347, + 3.630800001701573, + 3.3178000012412667, + 3.802800001722062, + 3.9293000008910894, + 3.537800002959557, + 3.7563000005320646, + 3.5529999986465555, + 4.344600001786603, + 3.5262999990663957, + 3.755400000954978, + 3.488199999992503 + ] + }, + "warm_ms": { + "control": [ + 10.831300001882482, + 9.188400003040442, + 7.703899998887209 + ], + "exact": [ + 5.825799999001902, + 5.624600002192892, + 6.424100000003818 + ], + "lattice": [ + 4.419699998834403, + 4.070200000569457, + 5.016400002205046 + ], + "library": [ + 4.916800000501098, + 3.96550000004936, + 4.323099998146063 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 7.817350002369494, + "p10_ms": 5.948670000361744, + "p90_ms": 12.791140000626914, + "min_ms": 5.447800002002623, + "max_ms": 20.963700000720564, + "mean_ms": 8.82453149986759 + }, + "exact": { + "n": 400, + "median_ms": 5.210950001128367, + "p10_ms": 4.085129997838521, + "p90_ms": 8.389749999696505, + "min_ms": 3.8664999992761295, + "max_ms": 22.290000000793952, + "mean_ms": 5.853398250073951 + }, + "lattice": { + "n": 400, + "median_ms": 3.9534500010631746, + "p10_ms": 3.0703200009156717, + "p90_ms": 6.2679800004843855, + "min_ms": 2.7856000015162863, + "max_ms": 12.782699999661418, + "mean_ms": 4.375939250030569 + }, + "library": { + "n": 400, + "median_ms": 3.9455999994970625, + "p10_ms": 3.09774999950605, + "p90_ms": 6.809339999745136, + "min_ms": 2.7984000007563736, + "max_ms": 20.056499997735955, + "mean_ms": 4.590635749909779 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 1.977348897865719, + "ci90_low": 1.8759673644848878, + "ci90_high": 2.1134119899804755, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.500177510948434, + "ci90_low": 1.425325743393791, + "ci90_high": 1.5913351297825526, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.3180766165569369, + "ci90_low": 1.2662800759264397, + "ci90_high": 1.387687636705205, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 0.9980143920970289, + "ci90_low": 0.9652547700372286, + "ci90_high": 1.0614825439189797, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 1.9812829489471704, + "ci90_low": 1.8628208440676297, + "ci90_high": 2.089071305205275, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.9666184909241224, + "p10": 1.6352199024778546, + "p90": 2.7776011338760025 + }, + "minimum_detectable_improvement": 0.8752927780118798, + "compile": { + "control": { + "lower_s": 5.763743700001214, + "compile_s": 5.954076300000452, + "first_call_s": 0.008261900002253242, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 6793096.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 4692376, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 325447680, + "rss_after_compile_bytes": 565145600, + "rss_delta_bytes": 239697920, + "hlo_sha256": "700f3b0d06f5944f", + "hlo_lines": 22684, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 4.105543099998613, + "compile_s": 6.957670899999357, + "first_call_s": 0.005542399998375913, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 3772039.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1774808, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 592023552, + "rss_after_compile_bytes": 630476800, + "rss_delta_bytes": 38453248, + "hlo_sha256": "af3ddfdf069ee58c", + "hlo_lines": 22607, + "hlo_large_constants": 4 + }, + "lattice": { + "lower_s": 4.258496400001604, + "compile_s": 5.4121446999997715, + "first_call_s": 0.004222799998387927, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3099799.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1691672, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 632610816, + "rss_after_compile_bytes": 664498176, + "rss_delta_bytes": 31887360, + "hlo_sha256": "9812cc135e333846", + "hlo_lines": 22607, + "hlo_large_constants": 4 + }, + "library": { + "lower_s": 3.5565072999997938, + "compile_s": 5.267196699998749, + "first_call_s": 0.006003899998177076, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3099799.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1691672, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 664498176, + "rss_after_compile_bytes": 693571584, + "rss_delta_bytes": 29073408, + "hlo_sha256": "9812cc135e333846", + "hlo_lines": 22607, + "hlo_large_constants": 4 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ], + "exact": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ], + "lattice": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ], + "library": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 7.743201200876812, + "exact": 7.743201200876812, + "lattice": 7.743201200876812, + "library": 7.743201200876812 + } + }, + "simple_solved_vmap4": { + "label": "simple_solved_vmap4", + "batch": 4, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 21.207400001003407, + 23.04789999834611, + 19.920399998227367, + 22.26430000155233, + 24.50739999767393, + 23.656400000618305, + 23.50020000085351, + 23.155200000473997, + 16.62880000003497, + 18.39490000202204, + 24.335899997822708, + 15.484200001083082, + 15.591499999572989, + 24.916900001699105, + 22.422199999709846, + 15.553599998384016, + 14.45140000214451, + 15.0565000003553, + 15.524300000834046, + 15.817299998161616, + 13.578499998402549, + 13.819100000546314, + 13.932600002590334, + 13.682400000107009, + 13.461300000926713, + 12.880500002211193, + 13.259999999718275, + 13.448800000332994, + 13.666200000443496, + 13.426599998638267, + 13.334700000996236, + 12.955599999258993, + 13.253199998871423, + 13.075399998342618, + 13.491900001099566, + 13.522900000680238, + 13.211800000135554, + 13.105300000461284, + 14.013899999554269, + 13.821600001392653, + 11.767299998609815, + 11.68110000071465, + 11.885700001585064, + 11.88679999904707, + 11.6980999991938, + 11.658700001135003, + 11.72710000173538, + 11.484200000268174, + 11.789899999712361, + 11.849599999550264, + 11.888499997439794, + 16.545799997402355, + 11.536599999089958, + 12.655399998038774, + 11.709000002156245, + 11.682899999868823, + 11.45350000297185, + 13.138599999365397, + 11.604100000113249, + 11.531400003150338, + 18.96370000031311, + 13.112100001308136, + 14.242899997043423, + 12.789000000339001, + 12.607299999217503, + 13.50770000135526, + 13.215999999374617, + 14.507699997921009, + 13.804399997752625, + 17.144700002972968, + 18.69300000180374, + 12.827399998059263, + 13.012300001719268, + 13.022099999943748, + 12.60069999989355, + 12.764099999913014, + 12.307500001043081, + 12.424399999872549, + 12.330499997915467, + 12.320999998337356, + 12.64179999998305, + 17.297800000960706, + 18.275399997946806, + 12.033900002279552, + 11.939500000153203, + 11.858400001074187, + 12.0320999994874, + 12.369200001558056, + 12.386200000037206, + 12.10720000017318, + 11.85299999997369, + 11.910199998965254, + 12.067200001183664, + 12.048599997797282, + 11.967900001764065, + 14.723000000230968, + 13.531299999158364, + 12.97820000036154, + 12.634999999136198, + 12.834299999667564, + 13.163299998268485, + 13.268700000480749, + 13.234800000645919, + 18.90839999759919, + 15.727400001196656, + 13.258300001325551, + 13.109100000292528, + 13.356600000406615, + 13.233999998192303, + 13.203599999542348, + 13.624700000946177, + 13.56139999916195, + 12.971100000868319, + 12.916100000438746, + 13.034899999183835, + 12.92489999832469, + 12.517299997853115, + 12.945599999511614, + 12.938899999426212, + 13.050099998508813, + 14.631999998528045, + 13.304300002346281, + 13.230299999122508, + 13.059599998086924, + 13.277999998535961, + 13.74500000019907, + 13.193800001317868, + 13.524199999665143, + 13.487299998814706, + 13.087499999528518, + 13.080600001558196, + 14.558700000634417, + 16.629500001727138, + 13.200000001234002, + 13.55159999729949, + 13.081799999781651, + 13.401100000919541, + 13.445699998555938, + 13.480599998729303, + 15.092399997229222, + 16.548200001125224, + 13.905699997849297, + 13.72550000087358, + 12.71660000202246, + 15.99290000012843, + 13.264099998195888, + 12.758400000166148, + 12.927600000693928, + 12.947399998665787, + 18.75809999910416, + 13.179599998693448, + 14.06180000049062, + 13.165299998945557, + 13.239600000815699, + 13.344599999982165, + 13.125400000717491, + 14.887600002111867, + 14.849700000922894, + 13.426200002868427, + 13.45709999804967, + 12.541299998702016, + 12.454499999876134, + 12.17999999789754, + 12.390599997161189, + 12.21590000204742, + 12.591700000484707, + 12.595699998200871, + 12.710899998637615, + 18.76830000037444, + 12.446500000805827, + 11.911500001588138, + 12.0853000007628, + 11.984499997197418, + 11.760399997001514, + 12.015799999062438, + 12.071299999661278, + 12.260100000275997, + 11.787200000981102, + 11.684900000545895, + 11.204399997950532, + 11.777700001402991, + 14.026299999386538, + 12.033300001348834, + 11.987999998382293, + 12.091199998394586, + 11.835400000563823, + 11.609900000621565, + 12.236199996550567, + 11.604299997998169, + 18.29569999972591, + 12.247800001205178, + 14.375700000528013, + 13.201099998696009, + 13.00930000070366, + 12.78459999957704, + 14.119299998128554, + 12.515099999291124, + 14.271800002461532, + 13.647399999172194, + 14.28949999899487, + 12.40949999919394, + 12.219100000947947, + 17.136500002379762, + 12.491000001318753, + 12.569999998959247, + 12.65840000269236, + 12.177900000096997, + 12.547899998025969, + 12.809700001525925, + 12.889800000266405, + 12.265000001207227, + 12.070500000845641, + 12.298500001634238, + 11.97890000184998, + 12.224399997649016, + 12.09999999991851, + 12.026100001094164, + 11.76310000300873, + 11.861599999974715, + 11.690599996654782, + 12.545899997348897, + 12.997199999517761, + 16.89729999998235, + 12.286400000448339, + 12.447799999790732, + 12.24519999959739, + 12.558599999465514, + 12.395400000968948, + 12.769500001013512, + 12.924799997563241, + 11.78299999810406, + 11.98120000117342, + 11.741499998606741, + 11.955599999055266, + 12.449299996660557, + 11.968499999056803, + 15.58600000134902, + 12.214999998832354, + 12.355399998341454, + 12.10459999856539, + 14.392299999599345, + 12.049199998728, + 12.177999997220468, + 11.831600000732578, + 12.024199997540563, + 12.494599999627098, + 12.271800002054079, + 12.093299999833107, + 12.107600003218977, + 12.477000000217231, + 12.20130000001518, + 11.875399999553338, + 12.149000001954846, + 11.845299999549752, + 12.238600000273436, + 11.900099998456426, + 12.063900001521688, + 11.943500001507346, + 11.965800000325544, + 12.001399998553097, + 11.708300000464078, + 12.212300000101095, + 11.870199999975739, + 17.980099997657817, + 12.02959999864106, + 11.931299999559997, + 13.887199998862343, + 12.69029999821214, + 14.004500000737607, + 15.360900000814581, + 11.791400000220165, + 11.721300001227064, + 13.594300002296222, + 18.797999997332226, + 12.465600000723498, + 12.539499999547843, + 13.652500001626322, + 17.435500001738546, + 12.266599998838501, + 30.26809999937541, + 20.52460000049905, + 13.204999999288702, + 13.426599998638267, + 13.191599999117898, + 18.99799999955576, + 12.953400000697002, + 12.899599998490885, + 13.068299998849398, + 12.681799998972565, + 12.642300000152318, + 18.994400001247413, + 12.730500002362533, + 12.791300003300421, + 13.043199996900512, + 13.052800000878051, + 14.20249999864609, + 12.767299998813542, + 14.372499997989507, + 13.835599998856196, + 13.95810000030906, + 13.475300002028234, + 13.54910000009113, + 13.429800001176773, + 16.104700000141747, + 14.01810000243131, + 13.893300001655007, + 15.604700001858873, + 13.397300001088297, + 13.344899998628534, + 12.866200002463302, + 13.259100000141189, + 12.964599998667836, + 12.850499999331078, + 13.420900002529379, + 13.083400001050904, + 13.519500000256812, + 13.54900000296766, + 20.60889999847859, + 13.151499999366933, + 13.426900000922615, + 13.08969999809051, + 13.368300002184696, + 13.69449999765493, + 13.853200001904042, + 14.94019999881857, + 16.221600002609193, + 14.660999997431645, + 13.723000000027241, + 13.624999999592546, + 13.811800003168173, + 21.748200000729412, + 22.570599998289254, + 20.943800001987256, + 14.453299998422153, + 13.785300001472933, + 13.66010000128881, + 13.50070000262349, + 13.701100000616862, + 13.953400000900729, + 19.768400001339614, + 20.42019999862532, + 17.175000000861473, + 15.149499999097316, + 15.266000002156943, + 15.060300000186544, + 15.447800000401912, + 20.81700000053388, + 15.207000000373228, + 14.915299998392584, + 21.522899998672074, + 14.448600002651801, + 14.493299997411668, + 14.30880000043544, + 14.12230000278214, + 13.883400002669077, + 14.046500000404194, + 13.910699999541976, + 14.38380000035977, + 15.11690000188537, + 13.792500001727603, + 13.37509999939357, + 13.022999999520835, + 13.508700001693796, + 13.996199999382952, + 14.212100002623629, + 18.333700001676334, + 14.176900000165915, + 14.98409999840078, + 14.699499999551335, + 14.426500001718523, + 14.595199998439057, + 14.989900002547074, + 14.80720000108704, + 14.449499998590909, + 14.610000001994194, + 14.664700000139419, + 19.89509999839356, + 17.648299999564188, + 14.815399998042267, + 16.458400001283735, + 19.02960000006715, + 14.991600000939798, + 14.157600002363324, + 14.931199999409728, + 18.2213000007323, + 20.259199998690747, + 21.975399999064393, + 18.836600000213366, + 22.429600001487415, + 20.549699998809956, + 16.274600002361694, + 17.416299997421447, + 16.018399997847155, + 23.262599999725353, + 16.464099997392623, + 23.9049999981944, + 16.415799997048452, + 16.401000000769272, + 22.20149999993737, + 15.206799998850329 + ], + "exact": [ + 12.006200002360856, + 11.834899996756576, + 11.408500002289657, + 11.824700002762256, + 11.26740000108839, + 11.153399998875102, + 11.507899998832727, + 11.609399996814318, + 11.609999997745035, + 16.359599998395424, + 15.874800003075507, + 11.293100000330014, + 11.531700001796708, + 12.231500000780215, + 11.121699997602263, + 11.230299998715054, + 10.806099999172147, + 10.86829999985639, + 10.737200002040481, + 14.572899999620859, + 9.973899999749847, + 9.83049999922514, + 9.865600000921404, + 9.97300000017276, + 9.927400002197828, + 9.872200000245357, + 9.901500001433305, + 9.990599999582628, + 10.027600001194514, + 10.131099999853177, + 10.59950000126264, + 11.02800000080606, + 9.885500003292691, + 15.413099998113466, + 10.138300000107847, + 9.966800000256626, + 9.97770000321907, + 10.021199999755481, + 9.942700002284255, + 9.989499998482643, + 8.713600000191946, + 8.975500000815373, + 9.229700001014862, + 11.994000000413507, + 9.208399998897221, + 9.398800000781193, + 8.771299999352777, + 8.802399999694899, + 8.853999999701045, + 8.514700002706377, + 11.650699998426717, + 8.943799999542534, + 8.876700001565041, + 8.589700002630707, + 8.743100002902793, + 13.220699998782948, + 10.424600000987994, + 8.956699999544071, + 8.645799996884307, + 8.56750000093598, + 9.230999999999767, + 9.500600001047133, + 9.265500000765314, + 10.262600000714883, + 9.25699999788776, + 9.028200001921505, + 9.101400002691662, + 10.167300002649426, + 8.984000000054948, + 8.989699999801815, + 9.141500002442626, + 8.8504000013927, + 9.236400001100264, + 9.084099998290185, + 9.28109999949811, + 14.518699998006923, + 9.120799997617723, + 10.194499998760875, + 8.916400001908187, + 9.469200002058642, + 9.330400000180816, + 10.03119999950286, + 10.128900001291186, + 9.609000000637025, + 9.666599999036407, + 9.57620000190218, + 9.330900000350084, + 9.242000000085682, + 9.234599998308113, + 12.864600001194049, + 9.292000002460554, + 10.380700001405785, + 11.108699996839277, + 13.423799999145558, + 9.323499998572515, + 9.515000001556473, + 9.405100001458777, + 9.142300001258263, + 10.552100000495557, + 10.334800001146505, + 20.326500001829118, + 25.30520000073011, + 20.46640000116895, + 17.874400000437163, + 12.25210000120569, + 12.326799998845672, + 13.054099999862956, + 14.475500000116881, + 13.221600001998013, + 15.046399999846471, + 16.199599998799386, + 19.04099999956088, + 13.01930000045104, + 12.379400002828334, + 11.92549999905168, + 11.692000000039116, + 11.266699999396224, + 11.929200001759455, + 11.476799998490606, + 11.460600002465071, + 9.995799999160226, + 9.788400002435083, + 10.141200000362005, + 10.115699999005301, + 10.272899999108631, + 9.947800001100404, + 9.990300000936259, + 10.10619999942719, + 10.134899999684421, + 10.099399998580338, + 9.981399998650886, + 9.712099999887869, + 10.63369999974384, + 10.243299999274313, + 10.12560000162921, + 9.905099999741651, + 12.018299999908777, + 9.773300000233576, + 9.782900000573136, + 15.079999997396953, + 9.637200000724988, + 10.132499999599531, + 9.917800001858268, + 15.600399998220382, + 10.081000000354834, + 10.159099998418242, + 10.02860000153305, + 9.863300001597963, + 11.018099998182151, + 9.788399998797104, + 10.951500000373926, + 11.393600001611048, + 9.889500001008855, + 9.908100000757258, + 9.874700001091696, + 10.165499999857275, + 10.046399998827837, + 9.956500001862878, + 9.999099998822203, + 9.955499997886363, + 9.118300000409363, + 13.131900002917973, + 9.062299999641255, + 8.762000001297565, + 8.937000002333662, + 8.737500000279397, + 9.369700001116144, + 8.757399999012705, + 8.993700001155958, + 9.030699999129865, + 8.893599999282742, + 8.849100002407795, + 9.208399998897221, + 9.910999997373438, + 8.655600002384745, + 8.802199998172, + 8.997000000817934, + 8.760100001381943, + 10.64089999999851, + 8.793000000878237, + 8.732999998755986, + 8.479999996779952, + 8.636999998998363, + 8.674699998664437, + 8.832200001052115, + 8.75620000078925, + 8.7149999999383, + 8.626799997728085, + 8.43900000108988, + 8.438599998044083, + 8.581499998399522, + 8.411900002101902, + 8.379299997613998, + 8.462800000415882, + 8.506400001351722, + 8.419199999480043, + 8.644199999253033, + 8.791400003246963, + 8.755099999689264, + 8.8192999974126, + 9.404799999174429, + 8.782100001553772, + 13.005799999518786, + 9.15789999999106, + 9.212099997967016, + 9.07290000031935, + 8.745300001464784, + 8.747299998503877, + 8.75359999918146, + 8.803500000794884, + 8.928399998694658, + 8.792000000539701, + 8.575099996960489, + 8.817500001896406, + 8.680399998411303, + 8.763000001636101, + 8.80449999749544, + 8.842499999445863, + 8.600099998147925, + 8.812699998088647, + 10.448800003359793, + 8.639199997560354, + 11.392599997634534, + 9.137800003372831, + 8.807899997918867, + 9.213199999067001, + 8.534900000086054, + 8.839400001306785, + 8.667300000524847, + 8.70750000103726, + 8.811599996988662, + 8.78500000180793, + 8.604700000432786, + 8.76580000112881, + 8.720599998923717, + 8.723999999347143, + 8.58910000169999, + 10.507499999221181, + 8.854499999870313, + 8.83090000206721, + 9.140199999819743, + 9.447799999179551, + 9.706200002256082, + 9.014399998704903, + 9.040700002515223, + 9.482800000114366, + 10.05280000026687, + 9.461800000281073, + 9.192600002279505, + 9.503199999016942, + 9.38500000120257, + 9.219999999913853, + 9.494600002653897, + 9.352799999760464, + 9.141700000327546, + 9.159700002783211, + 9.937399998307228, + 9.867400000075577, + 10.01919999907841, + 9.823799999139737, + 12.754900002619252, + 10.097600003064144, + 9.926800001267111, + 10.017000000516418, + 9.918899999320274, + 9.947299997293158, + 9.990800001105526, + 9.764200000063283, + 12.821799999073846, + 11.17050000175368, + 9.77229999989504, + 9.353299999929732, + 10.88510000045062, + 9.66849999895203, + 10.050700002466328, + 9.535600001981948, + 9.684299999207724, + 11.14650000090478, + 10.588600001938175, + 10.370500000135507, + 10.380600000644336, + 11.597699998674216, + 11.938799998461036, + 15.089199998328695, + 15.08339999782038, + 10.58799999736948, + 11.072699999203905, + 11.361100001522573, + 10.870300000533462, + 10.345200000301702, + 14.798299998801667, + 14.846599999145838, + 14.226999999664258, + 11.691499999869848, + 11.281700000836281, + 11.051499997847714, + 10.706500001106178, + 10.4786999982025, + 10.334599999623606, + 10.295700001734076, + 9.99020000017481, + 9.891699999570847, + 9.908599997288547, + 9.81099999989965, + 9.737799999129493, + 9.887000000162516, + 10.05539999823668, + 10.003999999753432, + 10.035300001618452, + 10.129599999345373, + 9.917899998981738, + 9.792299999389797, + 9.713499999634223, + 9.691499999462394, + 9.894499999063555, + 9.54970000020694, + 9.793499997613253, + 10.095000001456356, + 9.750299999723211, + 9.980599999835249, + 10.623000001942273, + 10.450899997522356, + 10.460700003022794, + 13.65810000061174, + 10.31169999987469, + 10.41350000014063, + 10.227999999187887, + 10.06039999992936, + 10.34550000258605, + 10.602799997286638, + 10.308600001735613, + 9.911099998134887, + 9.572499999194406, + 9.99479999882169, + 10.075800000777235, + 9.973500000342028, + 10.054999998828862, + 10.015399999247165, + 9.838099998887628, + 10.05030000305851, + 9.737000000313856, + 9.637099999963539, + 10.09429999976419, + 10.37739999810583, + 10.109700000612065, + 11.42009999966831, + 10.734200001024874, + 10.351100001571467, + 11.470299999928102, + 10.418699999718228, + 10.283399999025278, + 10.153600000194274, + 9.913599998981226, + 9.987299999920651, + 10.4838999977801, + 12.278599999262951, + 10.50559999930556, + 11.909900000318885, + 15.049699999508448, + 13.243599998531863, + 11.058099997171666, + 10.988999998517102, + 12.081500000931555, + 11.63770000130171, + 11.672700002236525, + 11.190400000486989, + 11.048599997593556, + 10.826499998074723, + 11.140999999042833, + 11.001700000633718, + 11.27479999922798, + 11.42959999924642, + 10.933100002148421, + 10.75459999992745, + 14.42279999901075, + 10.948499999358319, + 12.551599997095764, + 10.758299998997245, + 10.711899998568697, + 10.704700001952006, + 11.004500000126427, + 15.7772999991721, + 11.111399999208516, + 15.43360000141547, + 15.122000000701519, + 12.15779999984079, + 11.842100000649225, + 11.69099999970058, + 11.447299999417737, + 11.568000001716428, + 11.484499998914544, + 11.503099998662947, + 11.58439999926486, + 11.403799999243347, + 11.560700000700308, + 12.277599998924416, + 11.810800002422184, + 12.214100002893247, + 13.980100000480888, + 16.705599999113474 + ], + "lattice": [ + 10.431099999550497, + 9.66800000242074, + 9.564600000885548, + 9.832300002017291, + 10.190200002398342, + 9.434600000531645, + 9.743800001160707, + 9.35360000221408, + 9.287099997891346, + 10.674200002540601, + 9.381899999425514, + 9.27370000135852, + 9.15990000066813, + 9.184599999571219, + 9.375800000270829, + 9.439000001293607, + 9.126799999648938, + 9.009000001242384, + 9.226899997884175, + 12.115900000935653, + 8.64009999713744, + 8.81669999944279, + 8.45850000041537, + 8.910200001992052, + 8.845299998938572, + 9.247800000593998, + 8.629500000097323, + 8.646099999168655, + 8.651200001622783, + 8.665299999847775, + 8.941000000049826, + 8.407400000578491, + 8.916800001316005, + 8.500600000843406, + 8.666800000355579, + 8.84800000130781, + 9.644400000979658, + 8.595700001023943, + 8.72950000120909, + 8.545000000594882, + 8.62079999933485, + 8.712899998499779, + 8.570000001782319, + 8.452199999737786, + 8.21630000064033, + 8.342000000993721, + 8.276699998532422, + 8.151500001986278, + 8.332000001246342, + 8.17059999826597, + 8.477300001686672, + 7.975600001373095, + 8.529399998224108, + 9.69029999760096, + 8.87460000012652, + 8.243500000389758, + 8.799199997156393, + 7.998299999599112, + 8.145099996909266, + 11.020199999620672, + 7.719299999735085, + 8.772799999860581, + 7.982600000104867, + 9.009000001242384, + 8.067099999607308, + 8.099999999103602, + 7.920299998659175, + 8.18749999962165, + 8.175700000720099, + 7.822400002623908, + 8.241999999881955, + 8.129000001645181, + 10.387399997853208, + 8.179500000551343, + 7.897999999840977, + 7.699599998886697, + 7.986800002981909, + 8.341900000232272, + 8.197899998776847, + 8.33250000141561, + 8.421399998042034, + 8.348200000909856, + 8.463899997877888, + 8.513700002367841, + 8.03259999884176, + 8.075300000200514, + 8.17290000122739, + 8.208100000047125, + 8.398699999816017, + 8.121299997583264, + 8.214400000724709, + 10.928299998340663, + 8.195299997169059, + 8.012599999347003, + 8.536500001355307, + 9.46269999985816, + 9.633400000893744, + 8.498399998643436, + 8.20690000182367, + 11.565799999516457, + 10.063399997306988, + 10.216900001978502, + 9.860500002105255, + 9.84020000032615, + 9.652600001572864, + 9.59309999961988, + 9.226400001352886, + 14.002899999468355, + 9.286399999837158, + 9.095299999898998, + 8.960000002844026, + 8.746600000449689, + 9.088499999052146, + 8.980599999631522, + 10.338099997170502, + 9.458699998504017, + 9.18170000295504, + 9.41919999968377, + 8.523699998477241, + 8.721700000023702, + 8.402499999647262, + 8.211200001824182, + 9.212900000420632, + 9.38529999984894, + 9.03449999896111, + 8.166799998434726, + 9.530999999697087, + 8.936700000049314, + 8.67139999900246, + 8.544900003471412, + 8.761400000366848, + 8.733200000278885, + 8.484600002702791, + 8.392699997784803, + 8.582700000260957, + 8.792799999355339, + 8.341100001416635, + 8.36669999989681, + 8.379699997021817, + 8.742199999687728, + 8.355499998287996, + 8.277999997517327, + 8.582300000853138, + 8.556699998734985, + 8.822499999951106, + 8.69550000061281, + 8.76550000248244, + 8.609900000010384, + 8.840000002237502, + 8.607700001448393, + 8.622499997727573, + 8.605500002886401, + 8.444200000667479, + 8.483999998134095, + 8.446600000752369, + 8.213000000978354, + 8.128299999953015, + 8.732599999348167, + 8.078800001385389, + 8.780899999692338, + 7.436599997163285, + 7.966500001202803, + 7.935400000860682, + 8.17319999987376, + 8.354099998541642, + 9.890000001178123, + 8.619799998996314, + 8.249399998021545, + 7.8977000011946075, + 7.940399998915382, + 7.931500000267988, + 7.7994000021135435, + 7.779799998388626, + 7.83170000067912, + 7.949199996801326, + 7.52690000081202, + 7.527199999458389, + 7.571799997094786, + 7.5010000000474975, + 7.634499997948296, + 7.608699997945223, + 7.461299999704352, + 7.610900000145193, + 7.442599999194499, + 7.787099999404745, + 7.96480000281008, + 7.937100002891384, + 7.75699999940116, + 7.854400002543116, + 7.504900000640191, + 7.569999997940613, + 7.6632000018435065, + 7.642799999302952, + 8.047400002396898, + 7.999400000699097, + 8.070200001384364, + 7.830600003217114, + 7.799900002282811, + 8.031400000618305, + 7.6379999991331715, + 8.78769999690121, + 10.090100000525126, + 8.741300000110641, + 8.810899998934474, + 8.61799999984214, + 8.769700001721503, + 8.671600000525359, + 8.747299998503877, + 8.677400001033675, + 8.542100000340724, + 8.482700002787169, + 8.177900002920069, + 8.568000001105247, + 8.449299999483628, + 8.619599997473415, + 8.398500001931097, + 8.636000002297806, + 9.69960000293213, + 8.280399997602217, + 8.533000000170432, + 7.801599997037556, + 7.418099998176331, + 7.435600000462728, + 7.347300001129042, + 7.389499998680549, + 7.58259999929578, + 7.300500001292676, + 7.222899999760557, + 7.893999998486834, + 7.944500001030974, + 7.5800000013259705, + 10.47150000158581, + 7.813499996700557, + 7.51749999835738, + 7.50289999996312, + 7.838500001525972, + 7.957499998155981, + 7.807399997545872, + 7.643400000233669, + 7.923000001028413, + 10.271200000715908, + 8.140999998431653, + 8.01369999680901, + 8.252100000390783, + 8.120700000290526, + 8.008099997823592, + 8.194300000468502, + 8.135100000799866, + 8.094000000710366, + 7.926300000690389, + 8.178100000804989, + 8.038200001465157, + 8.058799998252653, + 8.233600001403829, + 8.025999999517808, + 8.147100001224317, + 8.06179999926826, + 8.019400000193855, + 8.233900000050198, + 9.265500000765314, + 13.040599998930702, + 8.359800001926487, + 8.394500000576954, + 8.351799999218201, + 8.329899999807822, + 8.202699998946628, + 8.370800002012402, + 8.485800000926247, + 8.365500001673354, + 8.035999999265186, + 8.082899999863002, + 8.03989999985788, + 8.284099996672012, + 8.321500001329696, + 8.35670000014943, + 8.095000001048902, + 8.21170000199345, + 8.170299999619601, + 8.343700003024423, + 8.43170000007376, + 8.120599999529077, + 8.198499999707565, + 8.193699999537785, + 8.176800001820084, + 8.348900002602022, + 9.994300002290402, + 8.186600000044564, + 8.195200000045588, + 8.230100000218954, + 8.417799999733688, + 8.640500000183238, + 11.368399998900713, + 8.3859999976994, + 8.062500000960426, + 8.042800000112038, + 8.28199999887147, + 8.420699999987846, + 8.69819999934407, + 8.38859999930719, + 8.293700000649551, + 8.72239999807789, + 8.904899998015026, + 8.722599999600789, + 8.656499998323852, + 8.852200000546873, + 8.843499999784399, + 8.722999999008607, + 8.895000002667075, + 8.817800000542775, + 8.761200002481928, + 8.933099998102989, + 8.804999997664709, + 8.835300002829172, + 11.483199999929639, + 8.93970000106492, + 8.97600000098464, + 8.666199999424862, + 9.218600000167498, + 8.72969999909401, + 8.901899996999418, + 8.800699997664196, + 8.640500000183238, + 8.571499998652143, + 8.896199997252552, + 10.51519999964512, + 8.887800002412405, + 9.05849999981001, + 9.200799999234732, + 9.028099997522077, + 9.897599997202633, + 11.453200000687502, + 8.776999999099644, + 9.62000000072294, + 8.987499997601844, + 9.015799998451257, + 9.150800000497838, + 8.93490000089514, + 8.859599998686463, + 8.911600001738407, + 9.16009999855305, + 13.523699999495875, + 9.998300000006566, + 10.041999998065876, + 9.920899999997346, + 10.072500001115259, + 9.852300001512049, + 9.81070000125328, + 10.105699999257922, + 9.987299999920651, + 12.890099998912774, + 10.63369999974384, + 9.96830000076443, + 9.85439999931259, + 9.725500000058673, + 9.43570000163163, + 10.07940000272356, + 9.5714000017324, + 9.833899999648565, + 10.034200000518467, + 9.642399996664608, + 8.854899999278132, + 9.209800002281554, + 8.99070000014035, + 8.895099999790546, + 9.130400001595262, + 9.072500000911532, + 9.182199999486329, + 9.101299998292234, + 8.890799999790033, + 9.624300000723451, + 9.08770000023651, + 9.43120000010822, + 9.173400001600385, + 10.63620000059018, + 10.412900002847891, + 8.9668000000529, + 9.532100000797072, + 9.018000000651227, + 9.024099999805912, + 9.551899998768931, + 11.00840000071912, + 10.587700002361089, + 14.690899999550311, + 10.476700001163408, + 10.476700001163408, + 10.821899999427842, + 10.603899998386623, + 10.44960000217543, + 12.856000001193024, + 12.490200002503116, + 14.064099999814061, + 10.645000002114102, + 12.397700000292389, + 14.054100000066683, + 12.423299998772563, + 10.117099998751655, + 10.091299998748582, + 10.076000002300134, + 9.913999998389045, + 10.208899999270216 + ], + "library": [ + 9.011500002088724, + 9.12880000032601, + 9.140199999819743, + 9.079199997358955, + 9.122100000240607, + 8.95219999802066, + 9.110499999223975, + 9.163800001260825, + 12.107100003049709, + 9.030999997776235, + 9.262900002795504, + 8.929800002078991, + 8.575799998652656, + 8.87950000105775, + 9.443599999940488, + 8.926000002247747, + 8.798200000455836, + 9.096900001168251, + 8.39550000091549, + 8.800700001302175, + 8.755299997574184, + 8.909299998776987, + 8.973399999376852, + 9.059600000909995, + 12.346999999863328, + 8.603199999924982, + 9.137000000919215, + 9.337499999674037, + 9.31000000127824, + 10.06509999933769, + 9.98990000152844, + 8.825400000205263, + 8.905099999537924, + 9.215100002620602, + 9.139000001596287, + 9.136699998634867, + 9.04660000014701, + 9.065199999895412, + 9.130399997957284, + 9.09959999989951, + 8.205699999962235, + 8.24329999886686, + 8.269300000392832, + 8.127900000545196, + 8.18500000241329, + 7.918699997389922, + 7.948300000862218, + 7.81490000008489, + 10.381100000813603, + 7.988699999259552, + 8.053700003074482, + 8.055900001636473, + 8.081200001470279, + 7.338499999605119, + 8.04950000019744, + 7.70840000041062, + 7.765499998640735, + 7.61899999997695, + 7.760299999063136, + 7.915900001535192, + 12.125799999921583, + 11.220100001082756, + 8.9375999996264, + 13.066999999864493, + 10.992199997417629, + 11.053700000047684, + 8.469899999909103, + 8.268600002338644, + 10.158599998248974, + 8.948499998950865, + 8.156600000802428, + 8.290000001579756, + 8.520900002622511, + 8.45860000117682, + 20.716999999422114, + 13.242699998954777, + 12.460500001907349, + 8.600299999670824, + 8.741999998164829, + 8.252699997683521, + 8.235899997089291, + 8.57469999755267, + 12.396800000715302, + 8.94730000072741, + 9.135200001765043, + 9.723799998027971, + 11.952099997870391, + 8.848699999361997, + 8.81659999868134, + 9.345399997982895, + 8.534000000508968, + 11.231999997107778, + 11.783899997681146, + 10.678499998903135, + 10.33340000140015, + 10.113600001204759, + 11.092199998529395, + 13.378600000578444, + 16.255800001090392, + 20.208899997669505, + 8.712099999684142, + 8.48269999914919, + 8.849799996824004, + 8.722800001123687, + 8.48779999796534, + 8.512000000337139, + 10.818099999596598, + 8.546600001864135, + 8.313900001667207, + 8.562200000596931, + 8.440100002189865, + 8.625700000266079, + 8.6397000013676, + 8.65459999840823, + 10.317700001905905, + 8.912099998269696, + 8.786499998677755, + 8.907400002499344, + 8.720399997400818, + 8.508599999913713, + 8.870900001056725, + 8.868900000379654, + 13.342199999897275, + 8.5335000003397, + 8.830899998429231, + 8.617100000265054, + 8.982800001831492, + 8.743000002141343, + 8.78740000189282, + 8.834399999614106, + 9.627699997508898, + 8.526599998731399, + 8.836999997583916, + 9.956400001101429, + 8.64010000077542, + 8.592000001954148, + 8.49460000245017, + 8.913699999538949, + 8.428199998888886, + 8.604300001024967, + 10.697499998059357, + 8.676099998410791, + 8.911900000384776, + 8.88920000215876, + 8.752400000958005, + 9.185800001432654, + 8.765200000198092, + 9.450600002310239, + 10.529099999985192, + 8.75580000138143, + 8.700200000021141, + 8.726199997909134, + 8.76579999749083, + 8.712800001376309, + 8.534000000508968, + 8.452099998976337, + 8.48490000134916, + 11.980999999650521, + 8.24540000030538, + 8.269399997516302, + 7.787700000335462, + 7.600600001751445, + 7.800899998983368, + 7.663799999136245, + 7.913800000096671, + 7.7627999999094754, + 7.629400002770126, + 7.818800000677584, + 7.486499998776708, + 7.720300000073621, + 7.590000001073349, + 7.672399999137269, + 7.723700000497047, + 7.848199998989003, + 7.5217000012344215, + 7.724900002358481, + 8.302299997012597, + 7.674399999814341, + 7.581399997434346, + 7.7982999973755796, + 7.81730000016978, + 7.956399997055996, + 9.002399998280453, + 7.972600000357488, + 7.9470000018773135, + 7.637900002009701, + 7.857900000090012, + 7.8814999978931155, + 7.717299999058014, + 7.967800000187708, + 7.8757000010227785, + 7.940199997392483, + 7.905200000095647, + 7.910100001026876, + 7.939800001622643, + 8.036800001718802, + 8.30340000175056, + 8.267899997008499, + 8.092100000794744, + 8.019199998670956, + 8.44389999838313, + 8.645699999760836, + 8.291399997688131, + 8.357900002010865, + 8.77050000053714, + 8.6397000013676, + 8.62559999950463, + 8.515199999237666, + 8.554399999411544, + 8.407000001170672, + 10.546800000156509, + 8.39339999947697, + 8.744300001126248, + 8.451900001091417, + 8.354199999303091, + 8.340300002600998, + 8.36880000133533, + 8.009400000446476, + 7.985299998836126, + 11.325999999826308, + 7.700199999817414, + 7.991399997990811, + 7.374499997240491, + 8.175099999789381, + 10.07210000170744, + 10.253100001136772, + 9.590400000888621, + 8.534100001270417, + 7.95529999959399, + 7.85139999788953, + 7.709100002102787, + 7.972699997480959, + 7.944499997392995, + 8.268399997177767, + 8.124899999529589, + 8.046699997066753, + 7.904900001449278, + 7.978499997989275, + 7.8038999999989755, + 7.789999999658903, + 7.811400002537994, + 7.975000000442378, + 7.913099998404505, + 8.352599998033838, + 8.107300000119722, + 8.109600003081141, + 8.515199999237666, + 9.004200001072604, + 8.211099997424753, + 8.028200001717778, + 8.770199998252792, + 8.457399999315385, + 8.581199999753153, + 8.204000001569511, + 8.328100000653649, + 8.083299999270821, + 8.190500000637257, + 8.848800000123447, + 9.058200001163641, + 10.462999998708256, + 8.042699999350589, + 8.716300002561184, + 8.194099998945603, + 8.000800000445452, + 8.226800000556977, + 8.054699999775039, + 7.72069999948144, + 7.794400000420865, + 8.237699999881443, + 7.863400001951959, + 7.816699999239063, + 7.779100000334438, + 7.9703000010340475, + 7.815400000254158, + 8.07110000096145, + 7.752100002107909, + 8.012700000108453, + 8.604899998317705, + 8.110800001304597, + 7.930899999337271, + 8.477200000925222, + 8.464499998808606, + 8.692100000189384, + 9.067200000572484, + 10.649700001522433, + 11.844900000141934, + 8.590400000684895, + 8.66400000086287, + 8.606799998233328, + 8.321899997099536, + 8.483600002364255, + 9.494999998423737, + 9.053900001163129, + 9.044499998708488, + 8.59120000313851, + 11.338100001012208, + 8.570100002543768, + 8.45370000024559, + 8.30839999980526, + 9.336699997220421, + 9.064599998964695, + 9.191100001771701, + 9.19400000202586, + 9.487399998761248, + 9.088800001336494, + 8.822699997836025, + 8.5986000012781, + 11.245199999393662, + 9.197799998219125, + 8.935600002587307, + 9.099099999730242, + 9.28820000262931, + 9.233100001438288, + 8.993600000394508, + 9.17699999990873, + 10.787100000015926, + 8.8383000002068, + 10.442700000567129, + 9.959700000763405, + 8.897800002159784, + 8.87949999741977, + 9.05340000099386, + 9.154499999567633, + 9.085400000913069, + 9.855100001004757, + 9.207400002196664, + 9.261200000764802, + 9.343499998067273, + 9.030299999722047, + 9.215000001859153, + 8.94719999996596, + 8.76119999884395, + 9.641299999202602, + 8.917800001654541, + 10.115599998243852, + 8.47040000007837, + 11.272100000496721, + 8.658299997478025, + 8.900000000721775, + 8.666999998240499, + 9.448799999518087, + 9.657999999035383, + 9.425100000953535, + 9.49400000172318, + 9.81820000015432, + 9.654800000134856, + 9.609700002329191, + 9.77200000124867, + 12.887700002465863, + 9.798300001421012, + 9.701799997856142, + 9.301300000515766, + 9.650100000726525, + 9.125600001425482, + 9.739000000990927, + 9.522200001811143, + 15.87420000214479, + 15.070399997057393, + 14.958799998566974, + 15.309399997931905, + 8.778200000961078, + 8.928799998102477, + 9.00050000200281, + 9.553799998684553, + 11.49720000103116, + 8.443700000498211, + 8.599299999332288, + 8.920299998862902, + 8.457600000838283, + 8.539100002963096, + 8.805700002994854, + 8.68560000162688, + 8.823500000289641, + 9.054699999978766, + 8.915499998693122, + 8.56250000288128, + 8.776800001214724, + 8.918300001823809, + 9.033900001668371, + 9.296000000176718, + 9.222199998475844, + 9.335899998404784, + 9.37049999993178, + 9.397800000442658, + 9.490299999015406, + 10.580699999991339, + 9.188100000756094, + 9.014600000227802, + 8.893799997167662, + 9.3176999980642, + 8.974500000476837, + 9.003200000734068, + 9.088700000575045, + 9.101700001338031, + 9.072499997273553, + 10.432400002173381, + 10.046100000181468, + 13.723699998081429, + 15.791499998158542, + 9.870800000499003 + ] + }, + "warm_ms": { + "control": [ + 17.705399997794302, + 23.56119999967632, + 14.412199998332653 + ], + "exact": [ + 10.890300000028219, + 11.491799999930663, + 9.98280000203522 + ], + "lattice": [ + 9.119300000747899, + 8.89899999674526, + 10.579800000414252 + ], + "library": [ + 11.989799997536466, + 9.36100000035367, + 10.037700001703342 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 13.255750000098487, + "p10_ms": 11.909189998914371, + "p90_ms": 18.339820001710905, + "min_ms": 11.204399997950532, + "max_ms": 30.26809999937541, + "mean_ms": 14.177251499977501 + }, + "exact": { + "n": 400, + "median_ms": 9.995299998990959, + "p10_ms": 8.75983000114502, + "p90_ms": 12.39662000225508, + "min_ms": 8.379299997613998, + "max_ms": 25.30520000073011, + "mean_ms": 10.493340500052 + }, + "lattice": { + "n": 400, + "median_ms": 8.625999998912448, + "p10_ms": 7.852810002441402, + "p90_ms": 10.106839999207295, + "min_ms": 7.222899999760557, + "max_ms": 14.690899999550311, + "mean_ms": 8.874669250071747 + }, + "library": { + "n": 400, + "median_ms": 8.76319999952102, + "p10_ms": 7.857249999869964, + "p90_ms": 10.530870000002324, + "min_ms": 7.338499999605119, + "max_ms": 20.716999999422114, + "mean_ms": 9.078290000061315 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 1.5367203804509333, + "ci90_low": 1.517715114826783, + "ci90_high": 1.5583955339258282, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.3261983133509425, + "ci90_low": 1.3126044553502696, + "ci90_high": 1.3424514481609089, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.1587410155635463, + "ci90_low": 1.14712196432041, + "ci90_high": 1.1722839512005463, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 1.0159054023447567, + "ci90_low": 1.0029515376571319, + "ci90_high": 1.027694894400337, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 1.512660900221725, + "ci90_low": 1.4962379959836347, + "ci90_high": 1.5349328563965499, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.5469061306216862, + "p10": 1.418250421986549, + "p90": 1.6325621471041831 + }, + "minimum_detectable_improvement": 0.4851200424531811, + "compile": { + "control": { + "lower_s": 4.484374100000423, + "compile_s": 5.174569999999221, + "first_call_s": 0.014541900000040187, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 23024386.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 15340056, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 865656832, + "rss_after_compile_bytes": 867819520, + "rss_delta_bytes": 2162688, + "hlo_sha256": "d00348ffb35ad3a7", + "hlo_lines": 24619, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 4.591450399999303, + "compile_s": 6.68915719999859, + "first_call_s": 0.013605500000267057, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 14223061.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 7092952, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 868081664, + "rss_after_compile_bytes": 869974016, + "rss_delta_bytes": 1892352, + "hlo_sha256": "6befc5ca3731b73b", + "hlo_lines": 24541, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 5.653682899999694, + "compile_s": 6.0633567000004405, + "first_call_s": 0.010634799997205846, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 11534101.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6761176, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 871575552, + "rss_after_compile_bytes": 874549248, + "rss_delta_bytes": 2973696, + "hlo_sha256": "5d4c9e666fa5f870", + "hlo_lines": 24541, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 4.666336100002809, + "compile_s": 6.002475900000718, + "first_call_s": 0.010653699999238597, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 11534101.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6761176, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 874549248, + "rss_after_compile_bytes": 878604288, + "rss_delta_bytes": 4055040, + "hlo_sha256": "5d4c9e666fa5f870", + "hlo_lines": 24541, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0, + 1, + 2, + 3 + ], + [ + 4, + 5, + 6, + 7 + ], + [ + 8, + 9, + 10, + 11 + ], + [ + 12, + 13, + 14, + 15 + ] + ], + "values": { + "control": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ], + "exact": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ], + "lattice": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ], + "library": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + } + }, + "simple_plain": { + "label": "simple_plain", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 6.8219000022509135, + 7.722799997281982, + 6.870899997011293, + 6.413899998733541, + 7.4177999995299615, + 7.210499999928288, + 6.5607999968051445, + 6.668300000455929, + 8.716000000276836, + 7.3647999997774605, + 11.273300002358155, + 15.992200002074242, + 11.839200000395067, + 11.73460000063642, + 10.670400002709357, + 11.430900001869304, + 7.0833999998285435, + 6.869999997434206, + 6.603400001040427, + 6.8371999986993615, + 7.010699999227654, + 7.010400000581285, + 6.62440000087372, + 10.433899999043206, + 7.34079999892856, + 6.940800001757452, + 6.959900001675123, + 10.091399999510031, + 10.673299999325536, + 10.501299999305047, + 10.880600002565188, + 10.913500002061483, + 10.723300001700409, + 10.056499999336665, + 10.780299999169074, + 8.069600000453647, + 7.126699998480035, + 10.171900001296308, + 10.784300000523217, + 9.297399999923073, + 8.333600002515595, + 10.615999999572523, + 7.0593000018561725, + 6.917599999724189, + 7.007299998804228, + 7.308099997317186, + 7.22489999679965, + 10.690399998566136, + 11.121300001832424, + 7.855600000766572, + 6.873000002087792, + 8.762099998421036, + 7.150600002205465, + 8.787099999608472, + 7.239899998239707, + 7.145800002035685, + 7.042099998216145, + 7.977600002050167, + 6.861499998194631, + 6.953999996767379, + 10.405900000478141, + 7.257200002641184, + 10.393300002760952, + 10.1810000014666, + 8.632400000351481, + 8.716000000276836, + 10.960699997667689, + 10.14220000070054, + 7.767400002194336, + 8.8093000013032, + 7.271900001796894, + 8.985699998447672, + 8.19019999835291, + 9.111900002608309, + 7.1180999984790105, + 8.04479999715113, + 11.283899999398272, + 7.932299999083625, + 11.13919999988866, + 11.119300001155352, + 11.289999998552958, + 7.5537999982771, + 7.274299998243805, + 7.729299999482464, + 7.104399999661837, + 7.25619999866467, + 7.349999999860302, + 7.185599999502301, + 7.41560000096797, + 7.253100000525592, + 7.131999998819083, + 8.78020000163815, + 9.51809999969555, + 8.87959999818122, + 9.66809999954421, + 9.049800002685515, + 7.208900002297014, + 7.329899999604095, + 7.519999999203719, + 11.150400001497474, + 7.271800001035444, + 7.897600000433158, + 7.219099999929313, + 7.86339999831398, + 7.2309999995923135, + 8.080700001301011, + 7.287400003406219, + 7.204800000181422, + 6.666699999186676, + 6.688800000119954, + 6.91230000302312, + 6.604299996979535, + 6.981899998208974, + 6.864899998618057, + 7.298900000023423, + 6.584899998415494, + 6.606800001463853, + 6.719100001646439, + 10.959999999613501, + 6.545699998241616, + 10.854799998924136, + 10.50279999981285, + 8.384799999475945, + 10.31169999987469, + 10.265299999446142, + 6.832999999460299, + 10.917899999185465, + 10.710099999414524, + 7.7092999999877065, + 8.53800000186311, + 7.333999998081708, + 8.523399999830872, + 7.223000000522006, + 7.218199996714247, + 7.6872999998158775, + 8.789199997409014, + 8.153999999194639, + 7.3529000001144595, + 10.051500001281966, + 7.276199998159427, + 7.155600000260165, + 7.149000000936212, + 6.921399999555433, + 6.629800001974218, + 6.807400000980124, + 6.831399998191046, + 6.668300000455929, + 6.851400001323782, + 7.0357000004150905, + 6.75279999995837, + 6.8810000011581, + 6.545700001879595, + 6.9928000011714175, + 6.3286999975389335, + 6.534699998155702, + 6.613099998503458, + 6.368400001520058, + 6.748100000550039, + 6.35090000287164, + 6.702999999106396, + 7.859999997890554, + 7.580900000903057, + 6.463499998062616, + 6.799399998271838, + 6.649999999353895, + 6.483599998318823, + 8.107199999358272, + 6.403100000170525, + 6.394000000000233, + 9.977099998650374, + 9.711000002425862, + 7.649800001672702, + 10.35540000157198, + 6.440299999667332, + 6.431199999497039, + 8.190100001229439, + 9.904899998218752, + 6.5961000000243075, + 6.352199998218566, + 6.382299998222152, + 10.809100000187755, + 11.738500001229113, + 7.61649999913061, + 7.0540000015171245, + 7.829800000763498, + 10.157200002140598, + 6.654799999523675, + 10.289400001056492, + 6.876700001157587, + 7.989599998836638, + 10.858900001039729, + 6.840199999714969, + 9.214900001097703, + 11.191800000233343, + 7.048899999062996, + 7.336300001043128, + 8.214400000724709, + 6.8760000031034, + 10.6021999999939, + 7.4438000010559335, + 6.5157999997609295, + 10.055800001282478, + 6.695299998682458, + 6.730600001901621, + 10.617299998557428, + 6.594099999347236, + 6.45029999941471, + 6.395399999746587, + 6.5704000007826835, + 6.582899997738423, + 6.60049999714829, + 6.633900000451831, + 6.6303000021434855, + 6.515900000522379, + 6.480999996711034, + 6.2217000013333745, + 6.41879999966477, + 6.736900002579205, + 6.281400001171278, + 6.1773999987053685, + 5.772399999841582, + 5.866100000275765, + 5.927999998675659, + 5.689099998562597, + 9.022599999298109, + 8.24780000039027, + 6.0260999998718034, + 6.0778000006393995, + 5.979800000204705, + 5.861799996637274, + 5.751500000769738, + 5.8779999999387655, + 5.941699997492833, + 5.932399999437621, + 6.1410999987856485, + 6.2866000007488765, + 5.9029000003647525, + 5.884099999093451, + 6.051500000467058, + 5.723599999328144, + 5.734700000175508, + 6.053099998098332, + 5.803299998660805, + 5.811899998661829, + 7.425799998600269, + 6.065199999284232, + 9.485099999437807, + 7.341200001974357, + 9.064800000487594, + 9.453899998334236, + 10.487600000487873, + 7.678500001929933, + 6.065499997930601, + 6.079299997509224, + 9.75280000056955, + 6.294999999227002, + 6.124200001067948, + 6.148899999971036, + 6.544899999425979, + 6.137899999885121, + 7.988800000021001, + 9.832100000494393, + 7.900800002971664, + 6.496099998912541, + 10.1810000014666, + 6.407600001693936, + 6.915099998877849, + 6.466200000431854, + 6.800300001486903, + 6.998799999564653, + 6.403999999747612, + 6.669499998679385, + 6.338200000755023, + 6.572700000106124, + 6.651399999100249, + 6.573000002390472, + 10.114300002896925, + 6.356399997457629, + 6.2160999987099785, + 6.299000000581145, + 7.953700001962716, + 8.180900000297697, + 6.576600000698818, + 6.187899998622015, + 6.252200000744779, + 6.3852000021142885, + 5.977199998596916, + 6.195199999638135, + 6.053200002497761, + 6.064500001230044, + 6.140499997854931, + 5.9665000007953495, + 6.103700001403922, + 5.993300001136959, + 6.209600000147475, + 5.788200000097277, + 5.9465999984240625, + 7.679700000153389, + 6.088699999963865, + 6.183199999213684, + 9.453499998926418, + 7.092699997883756, + 10.076899998239242, + 6.409500001609558, + 6.295700000919169, + 6.075699999200879, + 6.2397000001510605, + 5.867700001545018, + 6.040000000211876, + 6.309699998382712, + 5.936099998507416, + 5.923500000790227, + 5.939900001976639, + 5.854999999428401, + 6.018899999617133, + 7.874200000514975, + 5.773400000180118, + 6.5598000001045875, + 5.989500001305714, + 5.81179999790038, + 5.938599999353755, + 5.760500000178581, + 5.776399997557746, + 6.077400001231581, + 5.962899998849025, + 5.819999998493586, + 5.677500001183944, + 5.89860000036424, + 8.669400001963368, + 6.081399998947745, + 5.856699997821124, + 5.642000000079861, + 5.8792000018002, + 5.819000001793029, + 5.955800002993783, + 5.848699998750817, + 5.674600000929786, + 5.799800001113908, + 5.854499999259133, + 5.884300000616349, + 9.727399999974295, + 8.747200001380406, + 9.57629999902565, + 7.31900000027963, + 9.279099998821039, + 9.471100001974264, + 6.7209000008006115, + 6.582500001968583, + 10.216099999524886, + 7.160600001952844, + 11.19489999837242, + 12.27899999867077, + 10.67960000000312, + 7.651600000826875, + 9.280599999328842, + 10.86579999901005, + 7.260000002133893, + 8.241800001997035, + 8.631999997305684, + 8.159900000464404, + 8.040799999434967, + 11.27009999981965, + 7.860699999582721, + 9.383199998410419, + 7.059700001263991, + 7.310100001632236, + 6.765699999959907, + 6.9632000013371, + 6.7515999980969355, + 7.103900003130548, + 6.869000000733649, + 8.255600001575658, + 6.938999998965301, + 8.271999999124091, + 7.378700000117533, + 8.57729999916046, + 11.714200001733843, + 10.951600001135375, + 7.773099998303223, + 8.686299999681069, + 6.396500000846572, + 6.244200001674471, + 6.514100001368206, + 6.338700000924291, + 6.477799997810507, + 6.518399997730739, + 6.429799999750685, + 6.199799998285016, + 6.062500000552973, + 6.122699996922165, + 6.345599998894613, + 6.33890000244719, + 6.158399999549147, + 6.188399998791283, + 7.53150000309688, + 6.117700002505444, + 5.894800000532996, + 7.392999999865424, + 6.18640000175219, + 6.513899999845307 + ], + "exact": [ + 4.985100000340026, + 4.634499997337116, + 5.444700000225566, + 5.1587999987532385, + 4.8940999986371025, + 6.857699998363387, + 6.935100002010586, + 7.53650000115158, + 6.8802000023424625, + 6.954199998290278, + 5.063299999164883, + 5.154999998921994, + 5.216800000198418, + 4.879600001004292, + 4.951099999743747, + 4.924699998809956, + 4.655700002331287, + 4.7244999987015035, + 6.78429999970831, + 7.7521999992313795, + 6.183600002259482, + 8.807399997749599, + 7.6432999994722195, + 5.638300001010066, + 4.9356999988958705, + 4.728899999463465, + 4.989299999579089, + 7.932799999252893, + 4.949399997713044, + 7.248099998832913, + 4.870199998549651, + 4.91390000024694, + 7.135799998650327, + 4.85589999880176, + 6.302499998128042, + 7.598799998959294, + 5.0139000013587065, + 5.287899999530055, + 4.693699997005751, + 5.027200000768062, + 4.643100000976119, + 4.84620000133873, + 5.065599998488324, + 4.653899999539135, + 4.711300000053598, + 5.5848999982117675, + 5.074799999420065, + 4.712799996923422, + 4.960500002198387, + 4.985100000340026, + 4.699400000390597, + 4.839200002606958, + 5.063000000518514, + 4.736900002171751, + 4.769999999552965, + 4.734699999971781, + 5.440599998109974, + 5.35449999733828, + 5.33289999657427, + 4.824600000574719, + 5.274500002997229, + 4.918200000247452, + 7.674000000406522, + 7.382700001471676, + 5.582099998719059, + 8.492199998727301, + 5.87219999943045, + 7.60440000158269, + 5.304199999955017, + 5.220699997153133, + 8.464899998216424, + 5.296700001053978, + 5.718799999158364, + 6.0431000019889325, + 5.073399999673711, + 8.770200001890771, + 4.848299999139272, + 5.650899998727255, + 5.971599999611499, + 5.370899998524692, + 5.050699997809716, + 4.637699999875622, + 5.162500001461012, + 5.133799997565802, + 5.0951999983226415, + 4.8994999997376, + 5.295899998600362, + 5.571199999394594, + 8.090200000879122, + 8.831600000121398, + 5.305200000293553, + 7.738899999822024, + 4.965700001775986, + 8.015299998078262, + 5.191899999772431, + 7.566299998870818, + 7.751799999823561, + 5.085000000690343, + 5.084000000351807, + 5.3760999981022906, + 5.193999997572973, + 6.822200000897283, + 8.733700000448152, + 6.020600001647836, + 7.286700001714053, + 7.7072000021871645, + 7.458500000211643, + 8.667899997817585, + 6.442099998821504, + 5.396799999289215, + 5.3327000023273285, + 5.528900001081638, + 6.899600000906503, + 5.577899999479996, + 8.522999996785074, + 5.190300002141157, + 5.919699997321004, + 7.714300001680385, + 5.114499999763211, + 5.767099999502534, + 5.181200001970865, + 5.412200000137091, + 4.912500000500586, + 5.273700000543613, + 5.313499998010229, + 5.020900000090478, + 5.570600002101855, + 4.959400001098402, + 4.938300000503659, + 7.735700000921497, + 7.632599998032674, + 4.8296999993908685, + 5.70990000051097, + 4.936500001349486, + 4.794399999809684, + 6.9867000020167325, + 4.8349999997299165, + 5.09559999773046, + 7.481599997845478, + 4.922299998725066, + 4.617700000380864, + 4.335199999331962, + 4.5136000007914845, + 5.12229999731062, + 4.550100002234103, + 7.491000000300119, + 4.964200001268182, + 4.495999997743638, + 4.464199999347329, + 4.372600000351667, + 4.446299997653114, + 4.368000001704786, + 4.35039999865694, + 6.118699999206001, + 4.483699998672819, + 5.326700000296114, + 4.192399999737972, + 4.242200000589946, + 4.214599997794721, + 4.157399998803157, + 4.339700000855373, + 4.552599999442464, + 4.754800000227988, + 4.48080000205664, + 6.734800001140684, + 4.80500000048778, + 7.196999998996034, + 4.365099997812649, + 6.050600000889972, + 4.9980000003415626, + 4.413300001033349, + 5.733499998314073, + 4.565200000797631, + 4.500099999859231, + 7.025999999314081, + 6.725200000801124, + 4.6775999981036875, + 5.226100001891609, + 4.418700002133846, + 4.50279999859049, + 4.554600000119535, + 4.256600001099287, + 5.157700001291232, + 4.16409999888856, + 4.230599999573315, + 4.449299998668721, + 4.314699999667937, + 4.293800000596093, + 4.121699999814155, + 4.924400000163587, + 4.452699999092147, + 4.327400001784554, + 4.332099997554906, + 4.2893999998341314, + 4.295999999158084, + 4.369300000689691, + 4.350600000179838, + 4.520700000284705, + 4.466800000955118, + 4.640999999537598, + 4.320899999584071, + 4.372600000351667, + 4.510799997660797, + 4.398199998831842, + 4.522499999438878, + 4.363000000012107, + 4.596400001901202, + 4.539900000963826, + 4.477599999518134, + 4.465699999855133, + 4.474499997741077, + 4.691900001489557, + 4.378300000098534, + 4.411199999594828, + 4.343500000686618, + 4.546599997411249, + 5.250700000033248, + 4.492000000027474, + 4.250800000590971, + 4.50020000062068, + 3.9992999991227407, + 4.078300000401214, + 4.0133000002242625, + 4.1988000011770055, + 4.140799999731826, + 4.090800000994932, + 3.967799999372801, + 4.02629999734927, + 4.112099999474594, + 4.132100002607331, + 4.151199998887023, + 4.3244000007689465, + 4.509300000790972, + 4.083299998455914, + 3.8969999986875337, + 4.308400002628332, + 4.578500000206986, + 4.3847999986610375, + 4.347299996879883, + 4.325300000346033, + 4.418399999849498, + 4.273999998986255, + 4.453199999261415, + 4.270800000085728, + 4.470600000786362, + 4.350199997134041, + 4.0936000004876405, + 4.072699997777818, + 4.218400001263944, + 4.181399999652058, + 4.194299999653595, + 5.168499999854248, + 4.271100002370076, + 4.221300001518102, + 4.709799999545794, + 4.956700002367143, + 4.53669999842532, + 4.428399999596877, + 4.4333000005281065, + 4.209300001093652, + 4.454699999769218, + 6.32680000126129, + 4.920700001093792, + 5.6554000002506655, + 6.253800002014032, + 6.783500000892673, + 4.312600001867395, + 4.337100002885563, + 5.544900002860231, + 4.495900000620168, + 4.477000002225395, + 4.3154000013601035, + 4.6804999983578455, + 4.368500001874054, + 6.2706999997317325, + 4.398900000524009, + 4.533600000286242, + 4.3607000006886665, + 4.640099999960512, + 4.519000001891982, + 4.050999999890337, + 4.018400002678391, + 4.136300001846394, + 4.055999997945037, + 4.048699996928917, + 4.254999999830034, + 4.45419999959995, + 4.058800001075724, + 4.034199999296106, + 6.482699998741737, + 6.006600000546314, + 4.044699999212753, + 4.351100000349106, + 4.057699999975739, + 4.032500000903383, + 4.289000000426313, + 5.413599999883445, + 4.23410000075819, + 4.082400002516806, + 4.0932999982032925, + 4.041799998958595, + 4.068799997185124, + 4.182699998636963, + 4.0960000005725306, + 4.131900001084432, + 5.819999998493586, + 4.246899999998277, + 4.156200000579702, + 4.070899998623645, + 4.00660000013886, + 3.989499997260282, + 4.2146000014327, + 4.021500000817468, + 4.162899997027125, + 4.453400000784313, + 4.693300001235912, + 4.092899998795474, + 3.952499999286374, + 4.425799997989088, + 4.152500001509907, + 4.0842999987944495, + 4.085500000655884, + 4.072699997777818, + 4.031799999211216, + 4.16150000091875, + 4.180799998721341, + 4.3248999973002356, + 4.073000000062166, + 4.431999997905223, + 4.293999998481013, + 4.034900000988273, + 4.031399999803398, + 4.304699999920558, + 4.374700001790188, + 4.133899998123525, + 4.386799999338109, + 4.218699999910314, + 4.411500001879176, + 4.100199999811593, + 4.210499999317108, + 3.739200001291465, + 3.9404000017384533, + 4.247699998813914, + 4.030600000987761, + 4.09610000133398, + 4.362499999842839, + 3.8400000012188684, + 3.909300001396332, + 4.002800000307616, + 3.9867999985290226, + 4.388400000607362, + 3.9705999988655094, + 4.134599999815691, + 5.157400002644863, + 3.9496999997936655, + 3.9271999994525686, + 4.050700001243968, + 4.4826000012108125, + 5.968299999949522, + 6.9304999997257255, + 4.7068000021681655, + 4.767499998706626, + 7.379000002401881, + 4.971400001522852, + 4.774699998961296, + 4.875099999480881, + 6.190199997945456, + 5.159799999091774, + 4.9422999982198235, + 4.885499998636078, + 4.9939999989874195, + 4.496199999266537, + 5.145099999936065, + 4.571000001305947, + 4.550400000880472, + 4.624299999704817, + 4.748800001834752, + 4.661299997678725, + 4.683000002842164, + 4.537400000117486, + 4.119799999898532, + 4.4410000009520445, + 4.196900001261383, + 4.502599997067591, + 4.36479999916628, + 4.4573999985004775, + 4.53189999825554, + 4.351600000518374, + 4.9866999979713, + 4.489099999773316, + 4.579399999784073, + 4.499400001805043, + 4.380999998829793, + 4.504700002144091, + 4.234899999573827, + 4.239699999743607, + 4.325000001699664, + 4.333199998654891, + 4.141400000662543, + 4.159799998888047 + ], + "lattice": [ + 4.57520000054501, + 3.945299999031704, + 3.783399999520043, + 5.567700001847697, + 3.9986999981920235, + 3.7435000012919772, + 3.7402000016300008, + 3.7565000020549633, + 4.388500001368811, + 3.682999999000458, + 3.9407000003848225, + 4.648400001315167, + 4.956000000674976, + 6.025200000294717, + 4.628800001228228, + 8.818300000712043, + 7.74489999821526, + 4.654399999708403, + 4.767599999468075, + 5.25289999859524, + 3.6031000017828774, + 5.53339999896707, + 3.6153000000922475, + 3.7378999986685812, + 3.699199998663971, + 4.966700002114521, + 3.5446000001684297, + 3.6849999996775296, + 3.5836999995808583, + 3.657100001873914, + 5.47030000234372, + 5.102399998577312, + 5.210200000874465, + 3.726399998413399, + 3.7890999992669094, + 3.671299997222377, + 3.5773999989032745, + 3.526200001942925, + 3.9560000004712492, + 3.738600000360748, + 3.4988999977940693, + 3.8654999989375938, + 3.865599999699043, + 3.7010999985795934, + 3.648000001703622, + 3.8471000007120892, + 3.6236999985703733, + 3.5616999994090293, + 3.5554000023694243, + 3.7288999992597383, + 4.044599998451304, + 3.7875000016356353, + 3.5540999997465406, + 3.440299999056151, + 4.281699999410193, + 3.575200000341283, + 3.4837999992305413, + 3.6760000002686866, + 3.9958000015758444, + 3.704999999172287, + 5.903199999011122, + 5.8339999995951075, + 5.611100001260638, + 5.9791999992739875, + 3.792200001043966, + 6.088699999963865, + 4.629399998520967, + 4.103999999642838, + 5.005299997719703, + 3.8395000010496005, + 6.655599998339312, + 4.48320000214153, + 3.8381999984267168, + 4.520299997238908, + 6.351899999572197, + 3.8984999991953373, + 6.069600000046194, + 4.244399999151938, + 5.2757000012206845, + 3.8318000006256625, + 5.737400002544746, + 4.874599999311613, + 4.58019999859971, + 4.722000001493143, + 5.824299998494098, + 4.593300000124145, + 6.745399998180801, + 6.6520000000309665, + 5.8030000000144355, + 6.950699997105403, + 5.234500000369735, + 5.761000000347849, + 4.137899999477668, + 5.374099997425219, + 4.5303000006242655, + 4.251699996530078, + 4.542800001217984, + 6.654200002230937, + 4.201900002954062, + 4.435499999090098, + 3.8647000001219567, + 3.9087000004656147, + 4.020799999125302, + 4.199099999823375, + 3.7401000008685514, + 4.0496000001439825, + 6.0178999992785975, + 4.159899999649497, + 3.9936999964993447, + 3.811600003245985, + 6.526000001031207, + 4.1845000014291145, + 4.081499999301741, + 5.991300000459887, + 5.771600001025945, + 6.034300000465009, + 4.9356000017724, + 3.8591000011365395, + 5.4412999998021405, + 4.491499999858206, + 3.533300001436146, + 3.467499998805579, + 3.5774000025412533, + 4.5189000011305325, + 3.2372000023315195, + 4.8181000020122156, + 3.4943999999086373, + 3.4554999983811285, + 3.522400002111681, + 3.422000001592096, + 3.5110000026179478, + 3.595800000766758, + 3.7971000019751955, + 3.599199997552205, + 3.822399998171022, + 3.621000003477093, + 3.588700001273537, + 3.8382000020646956, + 3.7892000000283588, + 4.714699996839045, + 3.3438999998907093, + 3.5613999971246812, + 3.4924000028695446, + 3.283400001237169, + 3.2809000003908295, + 3.231700000469573, + 4.5209999989310745, + 3.19619999936549, + 3.144900001643691, + 3.1927000018185936, + 3.2604999978502747, + 3.2278999970003497, + 3.0775999985053204, + 3.253399998357054, + 3.4268999988853466, + 3.4487000011722557, + 3.2816999992064666, + 3.6446999984036665, + 3.3627999982854817, + 4.268200002115918, + 3.6593000004359055, + 3.575899998395471, + 3.2143999997060746, + 3.2022000013967045, + 3.362899999046931, + 3.4044000021822285, + 3.3434000033594202, + 3.3581999996386003, + 3.2720999988669064, + 3.4221000023535453, + 3.4986999999091495, + 3.256700001657009, + 3.4588999988045543, + 3.277100000559585, + 3.338499998790212, + 3.4147000005759764, + 3.4142000004067086, + 3.42619999719318, + 3.4328000001551118, + 3.3189999994647224, + 3.5700000007636845, + 3.5473999996611383, + 5.069700000603916, + 3.670000001875451, + 3.6091999972995836, + 3.52769999881275, + 3.4302999993087724, + 3.8055000004533213, + 3.9752000011503696, + 3.7072000013722572, + 3.410100001929095, + 3.505199998471653, + 4.681300000811461, + 5.565899999055546, + 4.991399997379631, + 3.3516000003146473, + 3.4742999996524304, + 3.744000001461245, + 3.749000003153924, + 4.49079999816604, + 3.5888000020349864, + 3.6153000000922475, + 3.7386999974842183, + 4.856899999140296, + 3.8098000004538335, + 3.7569999985862523, + 3.600600000936538, + 6.73070000266307, + 3.9211000002978835, + 3.9395999992848374, + 5.638599999656435, + 5.647999998473097, + 5.2961000001232605, + 4.779599999892525, + 3.942899998946814, + 3.764900000533089, + 3.996000003098743, + 4.462400000193156, + 3.935800003091572, + 3.7451999996847007, + 3.362299998116214, + 3.364500000316184, + 3.0523000023094937, + 3.144599999359343, + 3.221700000722194, + 3.069800000957912, + 3.1464999992749654, + 2.9015000000072177, + 3.097900000284426, + 3.1031000035000034, + 3.1161000006250106, + 3.20599999758997, + 3.054199998587137, + 3.1973999975889456, + 3.065900000365218, + 3.1304000003729016, + 2.913699998316588, + 3.0756999985896982, + 3.093100000114646, + 3.1493999995291233, + 3.469399998721201, + 3.3471000024292152, + 4.063199998199707, + 3.5056000015174504, + 3.1877999972493853, + 3.1209000007947907, + 3.5785000000032596, + 3.783899999689311, + 3.8176999987626914, + 3.3121000014944, + 4.347199999756413, + 3.345599998283433, + 3.272499998274725, + 3.296099999715807, + 5.126600000949111, + 4.319699997722637, + 3.296700000646524, + 3.1210999986797106, + 5.6500999999116175, + 3.102099999523489, + 3.4837000021070708, + 3.5037000016018283, + 3.360000002430752, + 5.027300001529511, + 3.399199998966651, + 3.352100000483915, + 3.4522999994806014, + 3.437100000155624, + 3.3543000026838854, + 3.2682000019121915, + 3.4071000009134877, + 3.559500000847038, + 3.2905000007303897, + 3.5625999989861157, + 3.2811999990371987, + 3.6055000018677674, + 3.370299997186521, + 3.5223000013502315, + 3.3024000003933907, + 3.365000000485452, + 3.286099999968428, + 3.3922000002348796, + 3.333000000566244, + 3.267799998866394, + 3.2652000008965842, + 3.2850999996298924, + 3.10429999808548, + 3.2096000031742733, + 3.193299999111332, + 3.0902000034984667, + 3.2576000012340955, + 3.397600001335377, + 3.3956000006583054, + 3.4085999977833126, + 3.7225999985821545, + 3.1369999996968545, + 3.4900000027846545, + 4.267200001777383, + 3.0903999977454077, + 3.2492000027559698, + 3.1823000026633963, + 3.0442999996012077, + 3.271800000220537, + 4.250899997714441, + 3.227799999876879, + 3.342799998790724, + 3.374300002178643, + 3.383100000064587, + 3.385399999388028, + 3.285800001322059, + 3.01469999976689, + 3.144599999359343, + 3.1348999982583337, + 3.340400002343813, + 3.28579999768408, + 3.1625000010535587, + 3.2821999993757345, + 3.200700000888901, + 3.221400002075825, + 3.1242999975802377, + 3.261099998780992, + 3.213200001482619, + 3.080400001636008, + 3.509199999825796, + 3.088100002059946, + 2.9490999986592215, + 3.244199997425312, + 3.1620999980077613, + 3.173500001139473, + 3.1890000027487986, + 3.009200001542922, + 3.131900000880705, + 3.0977999995229766, + 3.1286999983421993, + 2.9141000013623852, + 2.977899999677902, + 3.090199999860488, + 3.0307999986689538, + 2.9968000017106533, + 2.7886000025318936, + 3.143199999612989, + 3.1132000003708526, + 3.1904999996186234, + 3.375899999809917, + 3.2752999977674335, + 3.350200000568293, + 3.5476999983075075, + 3.11140000121668, + 3.15730000147596, + 3.1406999987666495, + 3.512600000249222, + 3.0791999997745734, + 3.0055999995965976, + 3.1219000011333264, + 3.090800000791205, + 4.4386000008671544, + 3.322100001241779, + 4.160799999226583, + 3.2350000001315493, + 3.6688000000140164, + 3.727800001797732, + 3.767699996387819, + 3.821599999355385, + 3.606700000091223, + 3.5991000004287343, + 3.760299998248229, + 3.8724999976693653, + 4.045699999551289, + 3.595599999243859, + 3.7285999969753902, + 3.7711000004492234, + 3.5514000010152813, + 3.593500001443317, + 4.40570000137086, + 4.610500000126194, + 3.5494999974616803, + 5.4535000017494895, + 3.44510000286391, + 4.940399998304201, + 3.2954999987850897, + 3.3672999998088926, + 3.3261999997193925, + 3.134500002488494, + 3.257500000472646, + 4.951399998390116, + 3.4455000022717286, + 3.1937999992806, + 3.258500000811182, + 3.2291999996232335, + 3.2743000010668766, + 2.988800002640346, + 2.985800001624739, + 3.096600001299521, + 3.175499998178566, + 3.358400001161499, + 3.2159999973373488, + 3.0378999981621746, + 3.2763999988674186, + 3.3985000009124633, + 3.2690000007278286 + ], + "library": [ + 3.899999999703141, + 6.08250000004773, + 4.093599996849662, + 3.729400003066985, + 4.782699998031603, + 6.913899997016415, + 3.878600000462029, + 6.075699999200879, + 5.567699998209719, + 3.80330000189133, + 3.9127000018197577, + 4.37679999959073, + 3.8088000001152977, + 3.783399999520043, + 4.268100001354469, + 5.987600001390092, + 4.062500000145519, + 4.607099999702768, + 4.825300002266886, + 3.9926999997987878, + 3.768599999602884, + 4.033799999888288, + 3.8683999991917517, + 3.840400000626687, + 3.904600001988001, + 3.906899997673463, + 3.4761999995680526, + 3.4950000008393545, + 3.579899999749614, + 5.033000001276378, + 3.77420000222628, + 3.604300000006333, + 3.700000001117587, + 3.7345999990066048, + 3.4245000024384353, + 3.379599998879712, + 3.5373999999137595, + 3.5649999990710057, + 5.4755000019213185, + 3.53009999889764, + 3.587600000173552, + 3.447999999480089, + 4.676299999118783, + 3.58570000025793, + 3.526599997712765, + 3.8115999996080063, + 3.832899998087669, + 3.707700001541525, + 3.730699998413911, + 3.745800000615418, + 4.025400001410162, + 3.9361999988614116, + 4.33329999941634, + 5.658199999743374, + 4.1702000016812235, + 3.7821999976586085, + 3.773399999772664, + 3.8937999997870065, + 5.461400000058347, + 4.301099997974234, + 3.643199997895863, + 6.18880000183708, + 4.477700000279583, + 4.827599997952348, + 3.7087999990035314, + 3.5846000027959235, + 7.6832999984617345, + 3.817400000116322, + 4.007800002000295, + 5.151100001967279, + 5.112899998493958, + 4.002900001069065, + 4.4283000024734065, + 4.401900001539616, + 3.506799999740906, + 4.050599996844539, + 3.9050999985192902, + 5.109400000947062, + 3.7247000000206754, + 3.502300001855474, + 5.574399998295121, + 4.340299998148112, + 4.054099998029415, + 4.734899997856701, + 5.79959999959101, + 4.507500001636799, + 5.456300001242198, + 4.312400000344496, + 4.284299997380003, + 5.223000000114553, + 4.961499998898944, + 3.9763999993738253, + 3.89069999800995, + 6.106500000896631, + 4.7424999975191895, + 4.456300001038471, + 6.866199997602962, + 4.329699997470016, + 6.380499999067979, + 6.212899999809451, + 6.023399997502565, + 5.762199998571305, + 5.9122000020579435, + 5.157399999006884, + 3.828200002317317, + 3.9472999997087754, + 3.8037000012991484, + 3.756599999178434, + 3.70439999824157, + 3.912199998012511, + 4.160400003456743, + 3.9379999980155844, + 4.2012000012618955, + 4.249300000083167, + 4.164400001172908, + 4.520099999353988, + 4.329100000177277, + 4.35980000111158, + 3.6003000022901688, + 3.8349999995261896, + 3.558500000508502, + 5.4662000002281275, + 3.7383000017143786, + 4.654899999877671, + 3.58310000228812, + 3.49879999703262, + 3.9384999981848523, + 4.698000000644242, + 3.587799998058472, + 4.6951000003900845, + 3.6075999996683095, + 3.988299999036826, + 4.069300000992371, + 3.6814999984926544, + 3.611200001614634, + 3.887599999870872, + 3.6986999984947033, + 3.885199999785982, + 3.789999998843996, + 4.198300001007738, + 3.8366000007954426, + 5.736800001614029, + 3.6497000000963453, + 3.4754000007524155, + 3.8095000018074643, + 3.838600001472514, + 3.6676999989140313, + 3.6551000011968426, + 5.721199999243254, + 4.077500001585577, + 3.467599999567028, + 3.591799999412615, + 3.422300000238465, + 3.9757000013196375, + 3.475000001344597, + 6.322500001260778, + 3.9606000027561095, + 3.620999999839114, + 3.4353999981249217, + 3.481299998384202, + 3.3932000005734153, + 3.6245999981474597, + 3.2567999987804797, + 3.302199998870492, + 3.2780000001366716, + 3.4457000001566485, + 4.798600002686726, + 3.3530000000610016, + 3.3437000020057894, + 4.47590000112541, + 3.374799998709932, + 3.219300000637304, + 3.342200001497986, + 3.8580000000365544, + 3.257800002756994, + 3.367099998285994, + 3.22030000097584, + 3.3750000002328306, + 3.5296999994898215, + 3.582600002118852, + 3.336700003274018, + 5.069400001957547, + 3.2731999999668915, + 3.1511000015598256, + 3.0866999986756127, + 3.4665999992284924, + 3.300700002000667, + 3.320499999972526, + 4.459700001461897, + 3.3710000025166664, + 4.7957999995560385, + 3.6508000011963304, + 3.49139999889303, + 4.483500000787899, + 3.643000000010943, + 3.668399996968219, + 3.5434999990684446, + 5.181599997740705, + 5.541000002267538, + 4.7231999997165985, + 3.850000000966247, + 4.0551999991294, + 3.6763000025530346, + 3.7871999993512873, + 3.7618000023940112, + 3.737299997737864, + 3.704499999003019, + 3.638000001956243, + 3.6612999974749982, + 5.235299999185372, + 3.744800000276882, + 3.7841000012122095, + 3.6957999982405454, + 3.730200001882622, + 3.8850999990245327, + 3.788199999689823, + 3.7374999992607627, + 3.899500003171852, + 4.028100000141421, + 3.5867000005964655, + 3.353600000991719, + 3.2553999990341254, + 3.175599998940015, + 3.3448999965912662, + 3.2034999967436306, + 3.2766000003903173, + 3.124399998341687, + 3.356299999722978, + 3.2430000028398354, + 4.247500000928994, + 3.2083000005513895, + 3.229099998861784, + 3.295299997262191, + 4.118799999559997, + 3.1649000011384487, + 3.358599999046419, + 3.098199998930795, + 3.4211000020150095, + 3.2766000003903173, + 3.2191999998758547, + 3.277799998613773, + 3.080200000113109, + 4.159399999480229, + 3.222800001822179, + 3.1350999997812323, + 3.0556999990949407, + 3.335400000651134, + 3.1248000013874844, + 3.0417000016313978, + 3.2902000020840205, + 3.587599996535573, + 3.3798000004026107, + 3.2987000013235956, + 3.29770000098506, + 3.366299999470357, + 3.2582999992882833, + 3.321600001072511, + 3.2333999988622963, + 3.1963000001269393, + 3.6000999971292913, + 3.1271999978343956, + 3.2619000012346078, + 3.315999998449115, + 3.2945000020845328, + 3.193299999111332, + 3.2309999987774063, + 3.186099998856662, + 3.356299999722978, + 3.286300001491327, + 3.2486000018252525, + 3.093399998761015, + 3.647199999250006, + 3.330100000312086, + 3.185400000802474, + 3.1436000026587863, + 3.0870999980834313, + 3.3520999968459364, + 4.742900000564987, + 4.37919999967562, + 3.0989000006229617, + 3.2742999974288978, + 3.177700000378536, + 3.2609999980195425, + 3.2896000011533033, + 3.1323999974119943, + 3.391199999896344, + 3.178999999363441, + 3.3451000017521437, + 3.2089999986055773, + 3.0551000018022023, + 3.113799997663591, + 3.1753999974171165, + 3.252700000302866, + 3.0141000024741516, + 3.2233999991149176, + 3.400799996597925, + 3.5152000018570106, + 3.89530000029481, + 3.277600000728853, + 3.120199999102624, + 3.1804999998712447, + 3.102400001807837, + 3.12599999961094, + 2.937400000519119, + 3.117799999017734, + 3.1159000027400907, + 3.0274000018835068, + 3.1577000008837786, + 3.0015999982424546, + 3.112499998678686, + 3.2592000025033485, + 3.194400000211317, + 2.9972999982419424, + 3.1611000013072044, + 3.2778999993752223, + 3.357900000992231, + 3.3279999988735653, + 3.490299997793045, + 3.373999999894295, + 3.3039000009011943, + 2.9446000007737894, + 3.1702999986009672, + 3.1525999984296504, + 2.9352999990805984, + 2.8197999999974854, + 2.9506999999284744, + 2.9765999970550183, + 3.0650000007881317, + 3.0808000010438263, + 2.8359999996609986, + 2.9859999995096587, + 3.036199999769451, + 2.7776999995694496, + 3.0618000018876046, + 2.733799999987241, + 3.001999997650273, + 3.2261000014841557, + 3.656699998828117, + 3.354399999807356, + 3.0039999983273447, + 4.206300000078045, + 3.151099997921847, + 3.2731999999668915, + 3.212100000382634, + 3.4890999995695893, + 3.393399998458335, + 3.3307000012428034, + 3.411900001083268, + 3.816299999016337, + 3.541999998560641, + 3.552900001523085, + 3.280000000813743, + 3.362100000231294, + 3.924100001313491, + 3.506500001094537, + 3.568299998732982, + 3.889399999025045, + 4.538500001217471, + 4.675000000133878, + 3.9372999999613967, + 3.1414999975822866, + 3.3130000010714866, + 4.435200000443729, + 3.283699999883538, + 3.26360000326531, + 4.5866999971622135, + 4.174599998805206, + 3.6131999986537267, + 3.4398999996483326, + 5.017499999667052, + 3.9397000000462867, + 3.6560999978973996, + 4.583599999023136, + 3.7235999989206903, + 3.9121000008890405, + 3.7032000000181142, + 3.847500000119908, + 3.9100000030884985, + 3.8810999976703897, + 3.8284000002022367, + 3.449199997703545, + 3.4292999989702366, + 3.537600001436658, + 3.5675999970408157, + 3.4646000021893997, + 3.2501999994565267, + 3.4161000003223307, + 3.6897999998473097, + 3.495900000416441, + 3.5936000022047665, + 3.4206000018457416, + 3.64379999882658, + 3.3492000002297573, + 3.4551999997347593, + 3.395499999896856, + 3.3292000007349998, + 4.610300002241274, + 3.514200001518475, + 3.547899999830406, + 3.3159000013256446 + ] + }, + "warm_ms": { + "control": [ + 9.403000000020256, + 7.824700001947349, + 10.828100002981955 + ], + "exact": [ + 5.628900002193404, + 5.021000000851927, + 5.209599999943748 + ], + "lattice": [ + 4.5882999984314665, + 3.7491000002773944, + 3.6263999973016325 + ], + "library": [ + 3.845700000965735, + 3.9487999965786003, + 4.2224000026180875 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 7.01054999990447, + "p10_ms": 5.954880002536811, + "p90_ms": 10.48897000036959, + "min_ms": 5.642000000079861, + "max_ms": 15.992200002074242, + "mean_ms": 7.597004750014094 + }, + "exact": { + "n": 400, + "median_ms": 4.587900000842637, + "p10_ms": 4.083209998862003, + "p90_ms": 6.859949998761295, + "min_ms": 3.739200001291465, + "max_ms": 8.831600000121398, + "mean_ms": 4.999290249907062 + }, + "lattice": { + "n": 400, + "median_ms": 3.5547500010579824, + "p10_ms": 3.121820000887965, + "p90_ms": 5.134960000941648, + "min_ms": 2.7886000025318936, + "max_ms": 8.818300000712043, + "mean_ms": 3.8505382500716223 + }, + "library": { + "n": 400, + "median_ms": 3.60019999970973, + "p10_ms": 3.1348299995443085, + "p90_ms": 4.784009998184047, + "min_ms": 2.733799999987241, + "max_ms": 7.6832999984617345, + "mean_ms": 3.808914499959428 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 1.972164005293749, + "ci90_low": 1.929042731662756, + "ci90_high": 2.022459971898747, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.5280520496560248, + "ci90_low": 1.4819775317961463, + "ci90_high": 1.568511829661422, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.2906392853160318, + "ci90_low": 1.2657607208204857, + "ci90_high": 1.3276510741848893, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 1.0127857088791674, + "ci90_low": 0.9962793864870053, + "ci90_high": 1.036443417036409, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 1.9472668186405484, + "ci90_low": 1.9001306262359052, + "ci90_high": 1.9933081362536802, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.925013303274595, + "p10": 1.6615162566472548, + "p90": 2.389415028092598 + }, + "minimum_detectable_improvement": 0.6467523943049496, + "compile": { + "control": { + "lower_s": 3.104753999999957, + "compile_s": 4.57001659999878, + "first_call_s": 0.007220499999675667, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 6792228.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 4691864, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 891166720, + "rss_after_compile_bytes": 893399040, + "rss_delta_bytes": 2232320, + "hlo_sha256": "1b88125f19a87a7d", + "hlo_lines": 19834, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 2.6038918000012927, + "compile_s": 4.294701300001179, + "first_call_s": 0.004746300000988413, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 3771171.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1774296, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 893399040, + "rss_after_compile_bytes": 894750720, + "rss_delta_bytes": 1351680, + "hlo_sha256": "913907ca09ea788e", + "hlo_lines": 19757, + "hlo_large_constants": 4 + }, + "lattice": { + "lower_s": 2.565672699998686, + "compile_s": 5.960491599998932, + "first_call_s": 0.003953899999032728, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3098931.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1691672, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 894750720, + "rss_after_compile_bytes": 896102400, + "rss_delta_bytes": 1351680, + "hlo_sha256": "c22b6d8226bd4905", + "hlo_lines": 19757, + "hlo_large_constants": 4 + }, + "library": { + "lower_s": 2.950891100001172, + "compile_s": 5.22674189999816, + "first_call_s": 0.007769299998471979, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3098931.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1691672, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 896102400, + "rss_after_compile_bytes": 897724416, + "rss_delta_bytes": 1622016, + "hlo_sha256": "c22b6d8226bd4905", + "hlo_lines": 19757, + "hlo_large_constants": 4 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ], + "exact": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ], + "lattice": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ], + "library": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 7.196577317761015, + "exact": 7.196577317761015, + "lattice": 7.196577317761015, + "library": 7.196577317761015 + } + }, + "cluster_solved": { + "label": "cluster_solved", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 79.0614999968966, + 69.61510000110138, + 77.20420000259764, + 80.9661999992386, + 75.63939999818103, + 73.16640000135521, + 73.1500000001688, + 80.94780000101309, + 79.9963999997999, + 78.31480000095326, + 72.22430000183522, + 76.83429999815417, + 77.9685999987123, + 83.59259999997448, + 80.58519999758573, + 81.81969999714056, + 73.02049999998417, + 76.86499999908847, + 72.66159999926458, + 67.36409999939497, + 71.18430000264198, + 79.6675999990839, + 82.00980000037816, + 78.3300999974017, + 86.46359999693232, + 86.16080000138027, + 80.99260000017239, + 86.98390000063227, + 69.93070000316948, + 78.05590000134544, + 81.5879000001587, + 76.60820000091917, + 85.52250000138883, + 75.96460000058869, + 76.01179999983287, + 88.21410000018659, + 71.08899999730056, + 69.81420000010985, + 79.04039999993984, + 72.66429999799584, + 83.3171999984188, + 78.24810000238358, + 74.45150000057765, + 71.16010000027018, + 77.41359999999986, + 68.9390999978059, + 74.63669999924605, + 76.25969999935478, + 77.38169999720412, + 63.70809999862104, + 74.70910000120057, + 70.75970000005327, + 73.85070000236738, + 74.10659999732161, + 76.9793999970716, + 75.94009999957052, + 92.99739999914891, + 76.17820000086795, + 79.3852999995579, + 65.30140000177198, + 72.30130000243662, + 79.6383999986574, + 69.93729999885545, + 85.52910000071279, + 72.52110000263201, + 71.56380000014906, + 63.307299998996314, + 68.19130000076257, + 79.72009999866714, + 78.89509999949951, + 78.02800000354182, + 80.53239999935613, + 81.92080000299029, + 89.53249999831314, + 69.5523000031244, + 73.83519999712007, + 73.10230000075535, + 80.80909999989672, + 75.58540000172798, + 80.8273000002373, + 79.91649999894435, + 72.77379999868572, + 76.8169000002672, + 75.93090000227676, + 64.0754999985802, + 80.73510000031092, + 76.48690000132774, + 66.8710000027204, + 70.08119999954943, + 74.90499999767053, + 72.7506999974139, + 93.98339999825112, + 85.4804000009608, + 92.10380000149598, + 92.03830000114976, + 76.37269999759155, + 85.91259999957401, + 72.26670000090962, + 78.82969999991474, + 74.79170000078739, + 72.59830000111833, + 82.36500000202795, + 85.3276999987429, + 74.46039999922505, + 71.92740000027698, + 87.47620000212919, + 88.47140000216314, + 72.81860000148299, + 68.3084999982384, + 75.74139999996987, + 74.49910000286764, + 76.73399999839603, + 67.86879999708617, + 70.59369999842602, + 72.76909999927739, + 69.23089999691001, + 64.92120000257273, + 79.3491999975231, + 76.82130000102916, + 86.77959999840823, + 85.8010000010836, + 79.28810000157682, + 68.67490000149701, + 71.93010000264621, + 74.69839999976102, + 69.92039999749977, + 67.35650000337046, + 74.0297999982431, + 80.71860000200104, + 74.84269999986282, + 73.5233999985212, + 74.08949999808101, + 68.24670000059996, + 69.53779999821563, + 83.32379999774275, + 68.70710000293911, + 77.6471000026504, + 65.88330000158749, + 70.05760000174632, + 76.44670000081533, + 76.04609999907552, + 68.10460000269813, + 72.19629999963217, + 83.46499999970547, + 70.14930000150343, + 77.08379999894532, + 93.82339999865508, + 68.34879999951227, + 81.91509999960545, + 68.97680000110995, + 80.22559999881196, + 62.87099999826751, + 73.0848999992304, + 69.42590000107884, + 74.20909999927972, + 77.41369999712333, + 63.287699998909375, + 77.5632000004407, + 84.0542000005371, + 66.76900000093156, + 71.85570000001462, + 73.32580000002054, + 62.447700001939666, + 76.89249999748426, + 62.58200000229408, + 71.41819999742438, + 81.89180000044871, + 65.4050000011921, + 73.5662000006414, + 72.36770000235992, + 79.08500000121421, + 67.55390000034822, + 71.49389999904088, + 76.57819999803905, + 72.07360000029439, + 72.55010000153561, + 72.29369999913615, + 76.457199997094, + 77.07079999818234, + 78.19150000068475, + 67.18419999742764, + 66.14079999781097, + 62.47809999695164, + 79.40469999812194, + 95.95550000085495, + 82.65840000240132, + 85.19429999796557, + 68.52509999953327, + 74.91999999911059, + 69.46400000015274, + 68.18719999864697, + 68.67200000124285, + 66.84150000000955, + 59.08809999891673, + 56.24539999917033, + 62.59049999789568, + 67.05089999741176, + 67.14330000249902, + 69.07589999900665, + 68.7316000003193, + 72.24320000022999, + 66.84490000043297, + 56.94729999959236, + 72.22659999752068, + 58.73510000310489, + 74.51790000050096, + 68.0657999982941, + 57.59399999806192, + 61.23250000018743, + 70.78719999844907, + 68.60549999692012, + 70.60910000291187, + 66.47090000114986, + 69.21100000181468, + 67.00030000138213, + 58.308299998316215, + 56.873799996537855, + 63.93870000101742, + 69.22630000190111, + 65.19029999981285, + 67.65060000179801, + 69.65429999763728, + 68.17280000177561, + 66.83980000161682, + 70.03590000022086, + 67.57700000162004, + 80.75329999701353, + 71.11790000271867, + 67.69290000011097, + 64.75259999933769, + 69.16329999876325, + 58.02369999946677, + 74.20439999987138, + 74.78300000002491, + 74.89499999792315, + 77.44180000008782, + 79.36930000141729, + 69.60959999923944, + 90.79089999795542, + 71.37040000088746, + 73.48160000037751, + 78.51980000123149, + 88.88759999899776, + 89.48439999949187, + 81.08960000026855, + 85.69619999980205, + 95.47559999919031, + 134.8641000004136, + 177.39699999947334, + 192.0097000001988, + 241.66970000078436, + 128.50649999745656, + 100.27999999874737, + 95.21430000313558, + 87.40590000161319, + 99.81930000139982, + 96.97579999919981, + 91.25409999978729, + 83.30080000087037, + 86.18819999901461, + 63.55009999970207, + 71.44740000148886, + 55.47669999941718, + 56.67800000082934, + 66.32820000231732, + 86.34389999861014, + 89.07520000138902, + 83.73869999923045, + 64.13229999816394, + 73.15050000033807, + 71.42979999844101, + 63.55660000190255, + 84.21749999979511, + 64.90449999910197, + 68.72520000251825, + 81.60670000143, + 66.92760000078124, + 80.18119999906048, + 90.11050000117393, + 78.47440000114148, + 75.39120000001276, + 64.52929999795742, + 75.17619999998715, + 73.58580000072834, + 69.57150000016554, + 71.60599999770056, + 64.53920000058133, + 57.29340000107186, + 60.25279999812483, + 70.59900000240305, + 66.81300000127521, + 63.536699999531265, + 74.1535000015574, + 73.58130000284291, + 72.95479999811505, + 62.99620000208961, + 67.1838000016578, + 80.42980000027455, + 72.01910000003409, + 66.9092999996792, + 68.84089999948628, + 68.62840000030701, + 52.796399999351706, + 58.12069999956293, + 58.62839999826974, + 66.43299999996088, + 67.45519999822136, + 66.75729999915347, + 75.60809999995399, + 62.808700000459794, + 64.43790000048466, + 74.74449999790522, + 75.13570000082836, + 82.76710000063758, + 65.90510000023642, + 61.99270000070101, + 65.63480000113486, + 67.72940000155359, + 59.61409999872558, + 66.6626999991422, + 68.42440000036731, + 53.74099999971804, + 64.89700000020093, + 63.779000000067754, + 56.137799998396076, + 74.87079999918933, + 58.34610000238172, + 65.59910000214586, + 58.119400000578025, + 55.31639999753679, + 67.79100000130711, + 68.35430000137421, + 63.48249999791733, + 66.95380000019213, + 56.275800001458265, + 68.41079999867361, + 73.9214000022912, + 66.22819999756757, + 54.55950000032317, + 73.52819999869098, + 65.95519999973476, + 58.77719999989495, + 64.50730000142357, + 73.53140000122949, + 64.83440000010887, + 63.35699999908684, + 62.29979999989155, + 59.7630999982357, + 67.0600999983435, + 65.02879999970901, + 65.20699999964563, + 66.80449999839766, + 64.22329999986687, + 59.065400000690715, + 71.77210000008927, + 67.32969999939087, + 58.24140000186162, + 59.55720000201836, + 78.67170000099577, + 68.34510000044247, + 65.44389999908162, + 62.83319999783998, + 68.8246000026993, + 59.09040000187815, + 65.51559999934398, + 65.75969999903464, + 64.26099999953294, + 72.64149999900837, + 59.47620000006282, + 60.42339999839896, + 77.29190000100061, + 67.65549999909126, + 57.841400001052534, + 65.265699999145, + 73.70190000074217, + 58.87720000100671, + 66.1325000000943, + 68.96220000271569, + 74.98540000233334, + 63.623600002756575, + 123.8441999994393, + 132.9959000031522, + 117.95070000152919, + 121.40229999931762, + 125.272599998425, + 127.3378000005323, + 123.59629999991739, + 114.56639999960316, + 122.59009999979753, + 104.45700000127545, + 109.95209999964572, + 102.59559999758494, + 91.31859999979497, + 97.01020000284188, + 75.68559999708668, + 93.75530000033905, + 82.13600000090082, + 79.98689999658382, + 71.113999998488, + 73.44200000079582 + ], + "exact": [ + 47.38350000116043, + 45.19630000140751, + 53.35629999899538, + 43.69740000038291, + 43.09149999971851, + 44.59510000015143, + 43.04480000064359, + 44.72460000033607, + 45.56439999942086, + 50.62360000010813, + 39.86510000322596, + 50.30529999930877, + 46.951100001024315, + 43.49789999832865, + 44.9518999994325, + 42.697700002463534, + 45.34549999880255, + 52.133900000626454, + 53.592300002492266, + 47.253799999452895, + 48.73009999937494, + 48.006199998781085, + 44.38849999860395, + 41.03860000032, + 44.93039999942994, + 41.42969999884372, + 44.82990000178688, + 47.12690000087605, + 53.696499999205116, + 39.21019999688724, + 43.24909999922966, + 47.788799998670584, + 42.14930000307504, + 43.90559999956167, + 44.394000000465894, + 47.485999999480555, + 40.2049000003899, + 45.662099997571204, + 43.30330000084359, + 46.69449999710196, + 41.93890000169631, + 45.89489999852958, + 43.6985000014829, + 38.30220000236295, + 42.47209999812185, + 42.220700001053046, + 49.000700000760844, + 47.75739999968209, + 49.61550000007264, + 45.40640000050189, + 51.70100000032107, + 49.52459999913117, + 46.341600002051564, + 48.693500000808854, + 43.76260000208276, + 51.4867999991111, + 42.4103000004834, + 48.53949999960605, + 40.999199998623226, + 54.291999997076346, + 38.94629999922472, + 46.048999996855855, + 42.35549999793875, + 44.34000000037486, + 46.636799997941125, + 45.51009999704547, + 41.519200000038836, + 40.960800000902964, + 43.87919999862788, + 43.409000001702225, + 44.10210000060033, + 43.35799999898882, + 43.79170000174781, + 45.04889999952866, + 43.44219999984489, + 40.70520000095712, + 39.5604999976058, + 41.73190000074101, + 50.07879999902798, + 49.64810000092257, + 40.06370000206516, + 40.411199999653036, + 45.77360000257613, + 48.56179999842425, + 47.82429999977467, + 45.47169999932521, + 42.26640000342741, + 42.24170000088634, + 49.01059999974677, + 43.24040000210516, + 47.35920000166516, + 43.22649999812711, + 50.222300000314135, + 44.386400000803405, + 47.09970000112662, + 43.128500001330394, + 39.189700000861194, + 38.5863999981666, + 46.68909999963944, + 44.89029999967897, + 43.92820000066422, + 40.380000002187444, + 43.638899998768466, + 41.00560000006226, + 38.4001000020362, + 46.141199996782234, + 38.83259999929578, + 44.589600001927465, + 44.88130000027013, + 40.39109999939683, + 39.856999999756226, + 40.57639999882667, + 40.72549999909825, + 43.312400001013884, + 44.355399997584755, + 42.28040000089095, + 48.16909999863128, + 27.028500000596978, + 46.6177999987849, + 44.67540000041481, + 47.490900000411784, + 53.053099996759556, + 54.11140000069281, + 47.32069999954547, + 33.712199998262804, + 51.604899999802, + 30.298099998617545, + 40.7734000000346, + 45.11170000114362, + 44.07079999873531, + 41.90730000118492, + 52.47049999888986, + 43.48489999756566, + 47.01589999967837, + 46.12730000008014, + 45.53039999882458, + 53.58929999783868, + 51.03579999922658, + 44.98819999935222, + 50.80679999809945, + 41.14990000016405, + 40.09010000299895, + 43.34539999763365, + 44.95669999960228, + 48.52279999977327, + 43.52429999926244, + 34.70430000015767, + 42.06509999858099, + 41.00599999947008, + 39.861799999926006, + 40.11990000071819, + 44.04930000237073, + 47.68739999781246, + 42.917999999190215, + 51.09399999855668, + 40.82330000164802, + 43.457499999931315, + 48.35079999975278, + 50.95430000073975, + 55.702300000120886, + 47.19729999851552, + 47.949900003004586, + 48.96960000041872, + 47.69820000001346, + 48.86540000006789, + 45.913000001746695, + 45.668700000533136, + 49.23689999850467, + 57.90949999936856, + 46.57559999759542, + 42.81319999790867, + 52.55380000016885, + 46.38379999960307, + 58.958900001016445, + 59.62859999999637, + 53.4866999987571, + 62.01449999934994, + 62.88809999750811, + 68.36720000137575, + 164.62789999786764, + 35.12599999885424, + 43.85320000073989, + 38.12530000141123, + 43.79210000115563, + 38.07059999962803, + 38.153600002260646, + 45.87549999996554, + 30.212999998184387, + 39.79590000017197, + 46.03829999905429, + 37.570600001345156, + 36.40830000222195, + 37.45820000040112, + 35.62959999908344, + 35.70639999816194, + 35.3289999984554, + 43.60309999901801, + 37.401999998110114, + 36.88010000041686, + 37.7145999991626, + 38.405399998737266, + 37.93519999817363, + 66.7914000005112, + 38.58790000231238, + 47.379699997691205, + 37.55500000261236, + 42.84369999732007, + 37.026899997727014, + 38.74100000030012, + 36.360900001454866, + 37.026499998319196, + 36.60340000351425, + 34.63490000285674, + 36.50550000020303, + 38.432299999840325, + 34.98149999722955, + 37.77059999993071, + 40.67890000078478, + 44.41990000123042, + 39.54080000039539, + 47.021100002893945, + 46.806099999230355, + 47.568400001182454, + 39.53969999929541, + 42.17359999893233, + 45.18559999996796, + 44.92799999934505, + 40.275500003190245, + 48.57669999910286, + 40.517900000850204, + 42.50949999914155, + 42.02719999739202, + 48.441800001455704, + 58.10080000082962, + 50.40189999999711, + 50.120799998694565, + 50.34830000295187, + 46.55320000165375, + 45.55569999865838, + 51.7677999996522, + 49.61569999795756, + 50.040999998600455, + 51.488000000972534, + 48.47390000213636, + 46.362900000531226, + 42.68149999916204, + 45.339400003285846, + 48.21019999872078, + 41.97059999933117, + 40.23070000039297, + 42.881599998509046, + 47.321300000476185, + 39.25570000137668, + 37.85239999706391, + 38.46279999925173, + 46.38150000027963, + 43.57660000096075, + 39.07650000110152, + 44.316600000456674, + 49.32829999961541, + 47.71009999967646, + 49.353999998857034, + 50.609400001121685, + 44.965199998841854, + 45.77080000308342, + 41.51999999885447, + 41.839199999230914, + 40.95759999836446, + 45.654699999431614, + 42.293600003176834, + 45.3233000007458, + 41.01499999887892, + 37.39489999861689, + 38.088400000560796, + 43.53420000188635, + 39.45929999827058, + 37.234300001728116, + 38.47660000246833, + 39.76730000067619, + 43.49459999866667, + 37.154999998165295, + 35.01709999909508, + 38.19330000260379, + 35.441500000160886, + 37.940800000797026, + 36.30169999814825, + 34.12480000042706, + 36.99439999763854, + 42.3573000007309, + 37.73369999908027, + 41.28100000161794, + 35.870399999112124, + 39.956299999175826, + 36.97699999975157, + 38.32749999855878, + 40.321699998457916, + 36.52040000088164, + 50.37980000270181, + 36.5139999994426, + 36.745699999300996, + 51.945200000773184, + 39.01609999957145, + 40.46320000270498, + 36.43400000146357, + 35.27169999870239, + 35.68739999900572, + 40.11190000164788, + 37.00620000017807, + 39.37389999919105, + 39.745999998558545, + 35.332600000401726, + 35.088399999949615, + 34.913999999844236, + 37.929000001895474, + 36.833199999819044, + 36.66169999996782, + 37.58940000261646, + 35.724599998502526, + 37.653300001693424, + 39.850199998909375, + 39.808900000934955, + 36.72759999972186, + 37.35510000115028, + 35.1769000008062, + 35.838600000715815, + 39.41069999928004, + 36.69649999937974, + 41.97360000034678, + 35.952199999883305, + 37.21180000138702, + 36.71359999862034, + 37.839799999346724, + 38.14019999845186, + 37.348099998780526, + 38.96779999922728, + 41.28839999975753, + 41.85280000092462, + 36.2728000000061, + 34.87279999899329, + 38.02039999936824, + 40.37679999964894, + 38.22280000167666, + 40.92759999912232, + 37.14079999917885, + 39.11480000169831, + 41.98700000051758, + 43.05899999963003, + 38.97499999948195, + 45.57569999815314, + 44.22260000137612, + 39.52040000149282, + 25.5302000005031, + 43.096699999296106, + 36.29480000017793, + 38.253499998972984, + 36.953599999833386, + 39.513800002168864, + 46.43980000037118, + 41.244000000006054, + 38.23689999990165, + 36.44140000324114, + 37.23759999775211, + 36.29039999941597, + 35.90479999911622, + 45.78200000105426, + 36.27010000127484, + 38.4169999997539, + 40.718699998251395, + 36.07659999761381, + 35.027699999773176, + 34.62819999913336, + 42.93399999733083, + 42.16900000028545, + 42.13749999689753, + 46.721799997612834, + 50.28320000201347, + 64.67799999882118, + 71.63570000193431, + 49.73460000110208, + 65.60929999977816, + 46.29149999891524, + 38.38229999746545, + 43.19720000057714, + 44.89649999959511, + 43.44160000255215, + 41.996599997219164, + 46.595300002081785, + 48.61270000037621, + 50.716099998680875, + 53.796099997271085, + 60.921200001757825, + 52.63330000161659, + 52.54799999966053, + 52.67889999959152, + 44.71469999771216, + 43.3469999989029, + 46.58150000250316, + 44.61490000176127, + 40.14339999775984, + 47.88420000113547 + ], + "lattice": [ + 34.481300001061754, + 33.6762999977509, + 40.15129999970668, + 34.00749999855179, + 37.56430000066757, + 34.99210000154562, + 36.09460000006948, + 38.89379999964149, + 36.51630000240402, + 33.89749999769265, + 26.00190000157454, + 33.05289999843808, + 39.98219999994035, + 43.34790000211797, + 37.669800000003306, + 36.71549999853596, + 37.602699998387834, + 38.93679999964661, + 35.5913999992481, + 33.30460000142921, + 33.09570000055828, + 34.791099998983555, + 39.31480000028387, + 39.21970000010333, + 35.50589999940712, + 35.06790000028559, + 33.49099999832106, + 36.341899998660665, + 36.52969999893685, + 36.31790000144974, + 38.802099999884376, + 35.37760000108392, + 26.986000000761123, + 41.244000000006054, + 35.09499999927357, + 37.28340000088792, + 35.08780000265688, + 24.653899999975692, + 35.427200000412995, + 32.93570000096224, + 37.147700000787154, + 37.69240000110585, + 34.670399996684864, + 38.146800001413794, + 39.01129999940167, + 41.09419999804231, + 40.83020000325632, + 42.750900000100955, + 39.506799999799114, + 38.502799998241244, + 39.84370000034687, + 46.244600001955405, + 38.75559999869438, + 37.089699999341974, + 35.030499999265885, + 36.67879999920842, + 39.21260000061011, + 36.112099998717895, + 36.196799999743234, + 35.23549999954412, + 25.92929999809712, + 36.254800001188414, + 34.0872999986459, + 35.323000000062166, + 35.40029999930994, + 38.586999999097316, + 33.75109999979031, + 38.255399998888606, + 33.228299998881994, + 34.63630000260309, + 35.734200002480065, + 32.47570000166888, + 35.1663000001281, + 36.627100002078805, + 40.83650000029593, + 35.229099998105085, + 34.96610000001965, + 34.938699998747325, + 36.49950000180979, + 38.13760000048205, + 32.42669999963255, + 37.84259999883943, + 39.64559999803896, + 35.401200002525, + 35.56799999932991, + 36.96250000211876, + 42.96080000131042, + 34.98519999993732, + 37.503199997445336, + 34.46960000292165, + 33.01210000063293, + 37.97549999944749, + 34.72350000083679, + 43.084500000986736, + 32.3409000011452, + 32.67209999830811, + 36.27229999983683, + 35.19429999869317, + 37.75189999942086, + 35.12530000080005, + 32.95069999876432, + 41.95579999941401, + 34.256399998412235, + 32.51530000125058, + 32.784800001536496, + 34.65580000192858, + 35.04359999715234, + 32.991399999446, + 34.33500000028289, + 38.98729999855277, + 34.60600000107661, + 32.15040000213776, + 32.97730000122101, + 32.34890000021551, + 36.320399998658104, + 36.557299998094095, + 31.25759999966249, + 35.24449999895296, + 32.55879999778699, + 35.32519999862416, + 39.651999999477994, + 38.59139999985928, + 39.49029999785125, + 42.88049999740906, + 39.96510000069975, + 47.442600000067614, + 40.682299997570226, + 35.97589999844786, + 36.13460000269697, + 31.127399997785687, + 35.325400000147056, + 35.620799997559516, + 34.27779999765335, + 41.96539999975357, + 39.29559999960475, + 38.502299998071976, + 36.743100001331186, + 34.664999999222346, + 39.745900001435075, + 34.203899998829, + 39.92949999883422, + 33.83120000216877, + 32.4025999980222, + 37.40589999870281, + 32.419600000139326, + 32.40000000005239, + 36.78629999922123, + 33.995099998719525, + 32.56590000091819, + 31.947000003128778, + 33.98160000142525, + 36.5005999992718, + 35.463299998809816, + 32.99229999902309, + 34.24970000196481, + 34.61889999744017, + 34.05600000041886, + 32.56189999956405, + 23.245499996846775, + 35.19199999936973, + 81.7456000004313, + 53.384800001367694, + 51.284999997733394, + 53.35620000187191, + 46.228299997892464, + 48.88980000032461, + 50.86219999793684, + 56.54019999929005, + 46.84179999821936, + 52.828100000624545, + 52.3429999993823, + 55.685700001049554, + 46.81679999703192, + 54.00699999881908, + 53.91550000058487, + 51.330599999346305, + 49.87080000137212, + 49.544899997272296, + 51.211800000601215, + 43.51879999740049, + 31.389099996886216, + 32.013399999414105, + 31.445199998415774, + 31.799899999896297, + 31.282899999496294, + 34.33969999969122, + 34.01769999982207, + 31.587100002070656, + 31.510200002230704, + 30.440600003203144, + 30.05029999985709, + 31.640300003346056, + 30.88999999818043, + 30.08110000155284, + 30.37430000040331, + 32.24940000291099, + 29.306500000529923, + 29.736899999988964, + 32.1953000020585, + 30.540299998392584, + 33.5296000012022, + 35.42799999922863, + 32.77640000305837, + 34.46600000097533, + 32.53920000133803, + 34.68989999964833, + 31.22119999898132, + 31.25960000033956, + 32.27029999834485, + 31.565200002660276, + 31.072199999471195, + 31.47059999901103, + 31.462200000532903, + 34.37030000350205, + 38.93880000032368, + 41.202299998985836, + 39.622500000405125, + 39.5953000006557, + 39.66460000083316, + 40.86469999674591, + 33.83650000250782, + 36.697200001071906, + 39.55429999768967, + 37.299700001312885, + 32.89099999892642, + 35.97100000115461, + 36.09860000142362, + 39.72979999889503, + 36.12229999998817, + 43.06730000098469, + 34.83029999915743, + 34.67760000057751, + 35.72699999858742, + 35.052299997914815, + 41.464099998847814, + 27.667100002872758, + 35.86440000071889, + 34.62059999947087, + 25.54249999957392, + 33.895600001415005, + 34.703699999226956, + 32.31940000114264, + 35.16719999970519, + 32.420100000308594, + 34.70489999745041, + 31.696499998361105, + 35.26209999836283, + 34.3618000006245, + 36.12219999922672, + 34.37589999884949, + 31.154100001003826, + 36.11349999846425, + 31.838999999308726, + 31.835900001169648, + 32.99200000037672, + 30.583499999920605, + 32.29750000173226, + 30.64020000238088, + 31.851399999140995, + 33.05890000046929, + 31.712700001662597, + 20.771700001205318, + 32.75980000034906, + 32.6028999988921, + 23.181700002169237, + 31.78010000192444, + 31.43629999976838, + 30.089200001384597, + 29.216999999334803, + 31.55250000054366, + 30.970100000558887, + 31.425600001966814, + 32.449099999212194, + 31.17520000159857, + 30.665300000691786, + 33.268800001678756, + 35.63800000119954, + 30.232900000555674, + 29.42590000020573, + 30.020399997738423, + 38.92009999981383, + 36.21449999991455, + 34.79869999864604, + 37.55079999973532, + 35.124400001222966, + 36.373099999764236, + 35.10400000232039, + 33.44149999975343, + 32.97979999842937, + 34.287599999515805, + 34.911900002043694, + 34.243999998579966, + 33.240199998544995, + 31.65900000021793, + 31.380100001115352, + 32.55849999914062, + 22.04419999907259, + 33.651400000962894, + 35.35589999955846, + 34.031099999992875, + 32.13460000188206, + 24.35160000095493, + 31.875000000582077, + 34.921700000268174, + 31.475400002818787, + 29.642800000146963, + 29.8542999989877, + 29.790399999910733, + 30.071199998928932, + 31.423100001120474, + 33.59360000104061, + 30.914399998437148, + 30.8989000004658, + 31.23079999932088, + 22.06540000042878, + 29.351299999689218, + 20.487199999479344, + 30.25350000098115, + 33.649100001639454, + 31.870400001935195, + 35.85029999885592, + 33.155499997519655, + 29.753700000583194, + 33.10769999734475, + 29.417399997328175, + 30.55079999830923, + 30.566599998564925, + 30.52459999889834, + 29.772800000500865, + 33.17890000107582, + 33.4454999974696, + 31.060000001161825, + 30.2962000023399, + 28.041199999279343, + 29.491799999959767, + 28.999300000577932, + 27.716900000086753, + 31.308699999499368, + 31.423399999766843, + 29.787499999656575, + 30.195500003173947, + 19.78379999854951, + 34.32289999909699, + 31.37550000246847, + 21.66180000131135, + 31.347699998150347, + 36.450800002057804, + 35.848399998940295, + 31.780499997694278, + 30.28709999853163, + 30.616600000939798, + 30.11530000003404, + 31.09530000074301, + 31.123000000661705, + 31.699400002253242, + 29.58079999734764, + 29.23670000018319, + 21.180199997616, + 19.398199998249765, + 29.691199997614603, + 29.915600000094855, + 32.848099999682745, + 30.08100000079139, + 31.31790000043111, + 31.434900000022026, + 31.31310000026133, + 29.962100001284853, + 30.10799999901792, + 31.13389999998617, + 19.76509999803966, + 31.101399999897694, + 29.15919999941252, + 32.37739999894984, + 30.738900000869762, + 30.42989999812562, + 29.41120000105002, + 30.14930000063032, + 33.5531999990053, + 29.288599998835707, + 29.822000000422122, + 42.05509999883361, + 36.66240000165999, + 33.18130000116071, + 36.64999999818974, + 35.01970000070287, + 35.62850000162143, + 34.9476000010327, + 35.40730000167969, + 33.54929999841261, + 34.33450000011362, + 34.81939999983297, + 35.9900999974343, + 26.771000000735512, + 33.20779999921797, + 33.56820000044536, + 22.693599999911385, + 33.7945999999647, + 35.77919999952428, + 34.941099998832215, + 32.6372999988962 + ], + "library": [ + 37.154400000872556, + 42.2872000017378, + 43.41329999806476, + 38.78830000030575, + 34.53869999793824, + 35.04809999867575, + 33.220500001334585, + 37.22209999978077, + 33.31590000016149, + 34.41699999893899, + 36.94470000118599, + 44.23839999799384, + 35.835800001223106, + 37.85729999799514, + 32.92940000028466, + 34.10230000008596, + 37.72659999958705, + 36.34489999967627, + 34.61999999854015, + 32.509299999219365, + 35.122200002660975, + 34.78069999982836, + 34.203100000013364, + 39.24430000188295, + 36.615100001654355, + 34.251400000357535, + 36.92059999957564, + 37.638300000253366, + 35.678899999766145, + 36.34070000043721, + 34.67409999939264, + 37.725599999248516, + 35.73990000222693, + 36.36059999917052, + 36.89130000202567, + 39.545300001918804, + 37.66959999848041, + 36.0158000003139, + 25.950799998099683, + 32.707599999412196, + 36.12069999871892, + 35.26690000217059, + 40.193400000134716, + 37.00640000170097, + 40.382200000749435, + 34.17109999645618, + 41.19469999932335, + 36.09330000108457, + 33.22529999786639, + 32.939600001554936, + 38.98950000075274, + 32.56150000015623, + 35.083300001133466, + 34.873200002039084, + 33.84200000073179, + 35.13830000156304, + 33.90239999862388, + 37.992199999280274, + 39.08159999991767, + 33.51449999900069, + 36.203600000590086, + 34.147799997299444, + 33.65330000087852, + 34.31339999951888, + 36.00360000200453, + 34.35650000028545, + 34.99970000120811, + 34.713599998212885, + 40.47139999966021, + 33.93289999803528, + 36.29379999983939, + 37.755900000775, + 42.54029999719933, + 33.692699998937314, + 36.26000000076601, + 33.832800003438024, + 35.00970000095549, + 36.670500001491746, + 36.53409999969881, + 37.10799999680603, + 32.195100000535604, + 22.974600000452483, + 32.62639999957173, + 32.21379999740748, + 32.40719999666908, + 31.657100000302307, + 32.98720000020694, + 37.614199998643016, + 42.01499999908265, + 34.26679999756743, + 21.684799998183735, + 42.23389999970095, + 34.90369999781251, + 33.04740000021411, + 41.45720000087749, + 32.383599998865975, + 32.47499999997672, + 37.42609999972046, + 35.65439999874798, + 37.43370000302093, + 35.98520000014105, + 35.366699998121476, + 36.69589999844902, + 32.847900001797825, + 41.565599996829405, + 32.46480000234442, + 32.75979999671108, + 34.15509999831556, + 32.79260000272188, + 30.680800002301112, + 32.119999999849824, + 33.593000000109896, + 34.467099998437334, + 33.47280000161845, + 32.12269999858108, + 39.07280000203173, + 32.961500000965316, + 42.37470000225585, + 37.96470000088448, + 33.474500000011176, + 37.09560000061174, + 35.8669999986887, + 32.697900001949165, + 34.41010000096867, + 36.62659999827156, + 39.102200000343146, + 34.122900000511436, + 46.15180000109831, + 45.49170000245795, + 50.04249999910826, + 42.49369999888586, + 40.14850000021397, + 35.03970000019763, + 42.26829999970505, + 38.327900001604576, + 38.19210000074236, + 35.437199996522395, + 43.4690000001865, + 34.34760000163806, + 35.97540000191657, + 41.28340000170283, + 37.33839999767952, + 38.376900000002934, + 37.174000000959495, + 39.6089000023494, + 33.66190000087954, + 31.802100002096267, + 32.180599999264814, + 35.16449999733595, + 33.69200000088313, + 35.427000002528075, + 33.38390000135405, + 39.36529999919003, + 35.52080000008573, + 36.01590000107535, + 32.03100000246195, + 31.135600002016872, + 34.78700000050594, + 32.77750000052038, + 31.195200001093326, + 43.88460000336636, + 40.17999999996391, + 38.80539999954635, + 38.97350000261213, + 37.03719999975874, + 39.586599999893224, + 34.214800001791446, + 34.82090000034077, + 33.81749999971362, + 32.570100000157254, + 35.64330000153859, + 31.71429999929387, + 35.756399996898836, + 30.507999999827007, + 33.888100002513966, + 31.02990000115824, + 21.445200000016484, + 31.50830000231508, + 31.05130000039935, + 30.595700001867954, + 31.643199999962235, + 31.108099999983096, + 30.977800000982825, + 30.74689999994007, + 29.010199999902397, + 31.701700001576683, + 32.51059999820427, + 33.67630000138888, + 31.718999998702202, + 30.36670000074082, + 30.17109999927925, + 31.689700001152232, + 30.23580000080983, + 29.839999999239808, + 30.924300001061056, + 30.024399999092566, + 31.420399998751236, + 31.357699997897726, + 30.183900002157316, + 30.0427000001946, + 43.94980000142823, + 42.683100000431295, + 42.18300000138697, + 38.41649999958463, + 34.601999999722466, + 34.493200000724755, + 35.53480000118725, + 35.26899999997113, + 34.44849999868893, + 34.04740000041784, + 31.37359999891487, + 32.22770000138553, + 31.689700001152232, + 31.488399999943795, + 30.80180000324617, + 31.901499998639338, + 31.744899999466725, + 30.98859999954584, + 30.735699998331256, + 36.782300001505064, + 33.44879999713157, + 34.60090000226046, + 41.94439999992028, + 41.253600000345614, + 36.80430000167689, + 32.82440000111819, + 34.80219999983092, + 35.775600001215935, + 34.91360000043642, + 32.79570000086096, + 23.73769999758224, + 34.2144999995071, + 30.60659999755444, + 32.806999999593245, + 31.382300003315322, + 32.80389999781619, + 36.835599999903934, + 31.193400001939153, + 33.24609999981476, + 35.72800000256393, + 31.452299997908995, + 32.48080000048503, + 34.76559999762685, + 28.9416000014171, + 29.803900000842987, + 30.544200002623256, + 31.51589999833959, + 22.043199998734053, + 31.468900000618305, + 30.876000000716886, + 33.60840000095777, + 19.972000001871493, + 31.183600000076694, + 31.442400002561044, + 31.239300002198434, + 30.130600000120467, + 31.268800001271302, + 31.452499999431893, + 33.082800000556745, + 32.664299997122725, + 29.417999998258892, + 31.573000000207685, + 29.44700000080047, + 30.094999998254934, + 29.59549999650335, + 30.85319999809144, + 29.448900000716094, + 31.36859999722219, + 31.698599999799626, + 30.847100002574734, + 29.58799999760231, + 29.693399999814574, + 24.0178999993077, + 30.88999999818043, + 30.95029999894905, + 30.855000000883592, + 30.92839999953867, + 34.02180000193766, + 29.811399999744026, + 30.268300000898307, + 34.191099999588914, + 33.50080000018352, + 31.455000000278233, + 31.94969999822206, + 31.241600001521874, + 33.643999999185326, + 31.92979999948875, + 31.90379999796278, + 31.16059999956633, + 31.129599999985658, + 30.89620000173454, + 32.896100001380546, + 35.44190000320668, + 31.372400000691414, + 38.835999999719206, + 35.509799999999814, + 33.336799999233335, + 34.07589999915217, + 36.67970000242349, + 31.14129999812576, + 31.109399998968, + 32.80509999967762, + 33.39090000008582, + 33.85500000149477, + 31.229800002620323, + 32.1832000008726, + 32.47929999997723, + 29.726799999480136, + 29.12859999923967, + 30.258700000558747, + 29.501900000468595, + 31.40020000137156, + 32.047000000602566, + 32.44039999844972, + 31.750499998452142, + 31.54250000079628, + 31.958200001099613, + 31.197299998893868, + 30.124599998089252, + 29.760700002952944, + 28.883099999802653, + 31.604899999365443, + 30.342199999722652, + 29.291800001374213, + 30.06219999952009, + 23.63369999875431, + 30.4589000006672, + 29.579799997009104, + 31.022900002426468, + 30.431200000748504, + 29.16929999992135, + 31.452199997147545, + 36.22390000236919, + 30.360900000232505, + 29.398599999694852, + 22.769100000004983, + 34.96089999680407, + 32.298599999194266, + 32.080700002552476, + 33.20809999786434, + 38.45229999933508, + 30.1471999991918, + 19.352300001628464, + 34.75769999931799, + 36.070699999982025, + 36.56480000063311, + 22.202200001629535, + 32.53299999778392, + 32.07330000077491, + 30.508100000588456, + 33.12449999793898, + 32.637499996781116, + 32.5563999977021, + 29.826000001776265, + 30.20749999996042, + 32.82539999781875, + 21.531400001549628, + 30.49040000041714, + 30.863800002407515, + 34.684700000070734, + 28.828800001065247, + 30.36200000133249, + 29.055900002276758, + 33.86580000005779, + 29.952599998068763, + 32.05089999755728, + 29.208500000095228, + 30.989500002760906, + 32.545699999900535, + 30.060499997489387, + 30.667500002891757, + 29.254599998239428, + 28.685900000709808, + 28.982200001337333, + 29.101199997967342, + 30.772399997658795, + 28.735100000631064, + 29.354499998589745, + 31.909700002870522, + 20.787100002053194, + 41.71929999938584, + 41.0098000029393, + 44.15030000018305, + 45.4688999998325, + 51.44950000249082, + 46.147699998982716, + 45.934900001157075, + 49.79820000153268, + 52.39649999930407, + 46.18869999831077, + 48.727099998359336, + 52.10889999943902, + 47.628799999074545, + 49.39689999810071, + 52.862000000459375, + 54.28419999952894, + 51.521500001399545, + 52.93389999860665, + 52.5947999994969, + 53.48819999926491 + ] + }, + "warm_ms": { + "control": [ + 72.05660000181524, + 69.98419999945327, + 71.54760000048555 + ], + "exact": [ + 45.707600002060644, + 45.5904999980703, + 40.92750000199885 + ], + "lattice": [ + 35.22190000148839, + 38.23559999727877, + 38.07329999835929 + ], + "library": [ + 33.30210000058287, + 38.209599999390775, + 36.72019999794429 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 72.66294999863021, + "p10_ms": 62.78688000020338, + "p90_ms": 87.54999000193494, + "min_ms": 52.796399999351706, + "max_ms": 241.66970000078436, + "mean_ms": 75.41882849998728 + }, + "exact": { + "n": 400, + "median_ms": 43.11260000031325, + "p10_ms": 36.513149999518646, + "p90_ms": 50.6328499999654, + "min_ms": 25.5302000005031, + "max_ms": 164.62789999786764, + "mean_ms": 43.708995999932085 + }, + "lattice": { + "n": 400, + "median_ms": 34.223949998704484, + "p10_ms": 29.790109999885317, + "p90_ms": 39.99910999991699, + "min_ms": 19.398199998249765, + "max_ms": 81.7456000004313, + "mean_ms": 34.70635624994429 + }, + "library": { + "n": 400, + "median_ms": 33.387400000719936, + "p10_ms": 29.799580001053982, + "p90_ms": 41.256580000481335, + "min_ms": 19.352300001628464, + "max_ms": 54.28419999952894, + "mean_ms": 34.33763475007254 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 2.1231608274725975, + "ci90_low": 2.0938711868184106, + "ci90_high": 2.1646827054995295, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.6854225910314444, + "ci90_low": 1.6608335295122783, + "ci90_high": 1.7206093504465898, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.2597201667821873, + "ci90_low": 1.2353107761344055, + "ci90_high": 1.2857423693553391, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 0.9755565912755186, + "ci90_low": 0.9574266106914457, + "ci90_high": 0.9964090661421149, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 2.176358446511659, + "ci90_low": 2.1396899445457103, + "ci90_high": 2.220244332906834, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 2.1535375948491216, + "p10": 1.9474879572133408, + "p90": 2.3391859329842286 + }, + "minimum_detectable_improvement": 0.3407941736772093, + "compile": { + "control": { + "lower_s": 54.39484209999864, + "compile_s": 40.91914099999849, + "first_call_s": 0.053251400000590365, + "trace_calls": 12, + "step0_rows": [ + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507 + ], + "flops": 131387408.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 91879512, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 865550336, + "rss_after_compile_bytes": 1746112512, + "rss_delta_bytes": 880562176, + "hlo_sha256": "b2b93cb4ce44e29d", + "hlo_lines": 55415, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 60.31296189999921, + "compile_s": 46.54930650000097, + "first_call_s": 0.03268219999881694, + "trace_calls": 12, + "step0_rows": [ + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085 + ], + "flops": 46680284.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 40762904, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1679687680, + "rss_after_compile_bytes": 2225360896, + "rss_delta_bytes": 545673216, + "hlo_sha256": "37f820c0ebf901fd", + "hlo_lines": 55075, + "hlo_large_constants": 24 + }, + "lattice": { + "lower_s": 55.634845500000665, + "compile_s": 53.060489999999845, + "first_call_s": 0.03419690000009723, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 30343092.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22636056, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2190151680, + "rss_after_compile_bytes": 2245566464, + "rss_delta_bytes": 55414784, + "hlo_sha256": "f53fbaa2605560e1", + "hlo_lines": 55075, + "hlo_large_constants": 24 + }, + "library": { + "lower_s": 67.18110480000178, + "compile_s": 64.01299690000087, + "first_call_s": 0.02982049999991432, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 30343092.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22636056, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2212032512, + "rss_after_compile_bytes": 2268430336, + "rss_delta_bytes": 56397824, + "hlo_sha256": "1d071f1d9a47610d", + "hlo_lines": 55075, + "hlo_large_constants": 24 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730302, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396467, + 14.05296570839195, + 4.710517791725226, + 6.64736675005817, + 17.926663625058694, + 16.331611541724385 + ], + "exact": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730302, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396467, + 14.05296570839195, + 4.710517791725226, + 6.64736675005817, + 17.926663625058694, + 16.331611541724385 + ], + "lattice": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730302, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396467, + 14.05296570839195, + 4.710517791725226, + 6.64736675005817, + 17.926663625058694, + 16.331611541724385 + ], + "library": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730302, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396467, + 14.05296570839195, + 4.710517791725226, + 6.64736675005817, + 17.926663625058694, + 16.331611541724385 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 25.56012716672745, + "exact": 25.56012716672745, + "lattice": 25.56012716672745, + "library": 25.56012716672745 + } + }, + "cluster_plain": { + "label": "cluster_plain", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 84.94470000005094, + 85.24300000135554, + 70.9275000008347, + 80.82800000192947, + 93.49189999920782, + 83.81549999830895, + 71.6143000026932, + 74.51299999956973, + 67.11340000038035, + 69.43139999930281, + 72.34539999990375, + 87.54110000154469, + 93.70669999771053, + 85.07440000175848, + 72.2870999998122, + 61.291400001209695, + 73.02859999981592, + 85.01220000107423, + 72.09149999835063, + 78.59809999717982, + 75.40589999916847, + 68.33910000204924, + 72.39779999872553, + 62.63809999654768, + 86.07750000010128, + 87.34890000050655, + 82.28900000176509, + 91.4587000006577, + 74.86799999969662, + 71.43449999784934, + 95.87100000135251, + 91.83560000019497, + 88.59369999845512, + 113.58319999999367, + 101.26650000165682, + 90.05240000260528, + 82.42260000042734, + 102.05130000031204, + 108.51800000091316, + 94.29409999938798, + 77.758300001733, + 85.59489999970538, + 74.36990000132937, + 68.28570000288892, + 74.82940000045346, + 77.82779999979539, + 74.99690000258852, + 83.37519999986398, + 86.9843000000401, + 90.18389999982901, + 63.553399999364046, + 70.81699999980628, + 86.35340000182623, + 99.80870000072173, + 87.59800000188989, + 65.44380000195815, + 76.69089999762946, + 85.16599999711616, + 72.1214000004693, + 68.70030000209226, + 90.89289999974426, + 80.04559999972116, + 68.2319000006828, + 72.1454000013182, + 84.4254000003275, + 85.7973000020138, + 68.16449999678298, + 74.50670000253012, + 77.7907999981835, + 84.42859999922803, + 78.72630000201752, + 70.30110000050627, + 67.72999999884632, + 66.88990000111517, + 67.98410000192234, + 81.93140000003041, + 74.92179999826476, + 65.9349999987171, + 81.93120000214549, + 61.79540000084671, + 80.23750000211294, + 74.4379999996454, + 65.9248000010848, + 75.68970000284025, + 74.94260000021313, + 90.84670000083861, + 67.86949999877834, + 68.63639999937732, + 87.3327999979665, + 74.08919999943464, + 68.37660000019241, + 68.74180000158958, + 67.73489999977755, + 68.00289999955567, + 71.4717999981076, + 76.33110000097076, + 82.80690000174218, + 73.20419999814476, + 75.59129999935976, + 73.17069999771775, + 82.79549999861047, + 97.34620000017458, + 84.84820000012405, + 71.68359999923268, + 89.79529999851366, + 67.17120000030263, + 63.27369999780785, + 85.0070999986201, + 63.62099999751081, + 68.86339999982738, + 59.42579999828013, + 69.00990000212914, + 95.48480000012205, + 87.45320000161882, + 67.22529999751714, + 82.53510000213282, + 83.67200000066077, + 84.89840000038384, + 75.69969999894965, + 89.32949999871198, + 73.90890000169748, + 62.02330000087386, + 69.12169999850448, + 68.91859999814187, + 60.45100000119419, + 62.227800000982825, + 70.95580000168411, + 62.07490000088001, + 66.03779999932158, + 57.58339999738382, + 68.75500000023749, + 75.61300000088522, + 53.66850000064005, + 71.15020000128425, + 62.60590000238153, + 63.55410000105621, + 84.5655999983137, + 67.50689999898896, + 87.09010000166018, + 83.79629999762983, + 100.4653000018152, + 107.6071999996202, + 94.76290000020526, + 112.99829999916255, + 122.55389999700128, + 91.6149000004225, + 90.40180000010878, + 96.03470000001835, + 114.42130000068573, + 118.64760000025854, + 104.76399999970454, + 99.16080000039074, + 86.654599999747, + 99.20290000081877, + 104.61860000214074, + 99.34740000244346, + 111.70100000163075, + 110.86960000102408, + 189.89269999656244, + 134.578799999872, + 87.62750000096275, + 82.19950000056997, + 97.35970000110683, + 80.70930000030785, + 86.40169999853242, + 80.50299999740673, + 72.5882000006095, + 84.0126999974018, + 71.64420000117389, + 64.4661999976961, + 90.40589999858639, + 75.11979999981122, + 81.0961999995925, + 84.77710000079242, + 82.06070000233012, + 66.34850000045844, + 83.12669999941136, + 95.71610000057262, + 104.94639999888022, + 70.12020000183838, + 68.97459999890998, + 77.95160000023316, + 65.21599999905447, + 68.93799999670591, + 82.78419999987818, + 62.820499999361346, + 74.35020000048098, + 82.69989999826066, + 76.73239999712678, + 80.20640000177082, + 101.07029999926453, + 78.62609999938286, + 66.87590000001364, + 69.50030000007246, + 74.3538000024273, + 76.59129999956349, + 64.98529999953462, + 71.85309999840683, + 75.7770000018354, + 66.73779999982798, + 70.82540000192239, + 86.73060000000987, + 83.86830000017653, + 65.79770000098506, + 73.865599999408, + 86.29280000241124, + 83.72270000108983, + 87.57669999977225, + 97.04490000149235, + 113.43130000022938, + 108.65839999678428, + 90.3835999997682, + 101.46229999736534, + 92.89269999862881, + 107.43540000112262, + 100.46909999800846, + 115.19919999773265, + 151.47710000019288, + 119.08129999937955, + 104.4192999979714, + 107.54280000037397, + 228.74240000237478, + 178.91600000075414, + 175.54200000085984, + 188.21209999805433, + 112.81339999914053, + 95.20290000000386, + 104.99029999846243, + 82.62249999825144, + 89.90139999878011, + 91.2534000017331, + 84.8931000000448, + 77.61500000196975, + 91.78640000027372, + 96.10250000332599, + 78.98070000010193, + 98.31430000122054, + 76.37619999877643, + 77.50909999958822, + 83.7680000004184, + 66.91160000264063, + 74.15869999749702, + 67.4031999988074, + 76.26250000248547, + 65.53269999858458, + 64.4109999993816, + 78.42389999859734, + 75.84010000209673, + 89.88350000072387, + 75.09149999896181, + 81.31740000317222, + 80.09519999905024, + 98.57069999998203, + 86.9442999974126, + 101.22539999792934, + 92.03170000182581, + 98.00429999813787, + 119.211199998972, + 93.41399999902933, + 88.4154999985185, + 64.80659999942873, + 68.33990000086487, + 75.19019999745069, + 83.9230999990832, + 73.60200000039185, + 87.96869999787305, + 66.76249999873107, + 88.56539999760571, + 98.92699999909382, + 72.99369999964256, + 77.97320000099717, + 76.14979999925708, + 72.35860000218963, + 75.88380000015604, + 79.36460000200896, + 95.26999999798136, + 89.00870000070427, + 65.81680000090273, + 66.43459999759216, + 63.463800001045456, + 74.1926999980933, + 75.38019999992684, + 68.84940000236384, + 79.80689999749302, + 66.41010000021197, + 67.38790000235895, + 73.56519999666489, + 67.50820000161184, + 81.24560000214842, + 69.98659999953816, + 72.14450000174111, + 74.12979999935487, + 84.59080000102404, + 67.53929999831598, + 76.24329999816837, + 80.03800000005867, + 79.73200000196812, + 81.19730000180425, + 66.99589999698219, + 68.22710000051302, + 67.97770000048331, + 74.78649999757181, + 66.31130000096164, + 79.44440000210307, + 87.03450000029989, + 61.46049999733805, + 77.13289999810513, + 89.25420000014128, + 82.12769999954617, + 68.88050000270596, + 86.20349999910104, + 64.51739999829442, + 74.96109999920009, + 72.79159999961848, + 63.89149999813526, + 67.16980000055628, + 72.6364999973157, + 86.39949999997043, + 74.6497999971325, + 70.09749999997439, + 79.33300000149757, + 60.53980000069714, + 67.44919999982812, + 76.2773999995261, + 69.58160000067437, + 56.98370000027353, + 62.53169999763486, + 67.9786000000604, + 62.45230000058655, + 65.94780000159517, + 73.86459999906947, + 69.69129999924917, + 86.2898999985191, + 126.25459999981103, + 75.10719999845605, + 80.65829999759444, + 91.53869999863673, + 86.73219999764115, + 73.7489999992249, + 67.39219999872148, + 69.33260000005248, + 83.22029999908409, + 60.61060000138241, + 75.79750000149943, + 67.67559999934747, + 68.33069999993313, + 82.85790000081761, + 99.43349999957718, + 89.901600000303, + 66.23279999985243, + 75.80650000090827, + 66.74580000253627, + 65.50959999731276, + 60.5890000006184, + 61.30660000053467, + 60.55879999985336, + 67.95099999726517, + 68.94290000127512, + 61.40339999910793, + 61.61229999997886, + 71.26600000265171, + 69.02759999866248, + 62.81049999961397, + 70.2220999992278, + 64.02069999967352, + 66.25679999706335, + 61.434699997334974, + 64.22390000079758, + 61.119699999835575, + 58.869399999821326, + 53.9840000019467, + 66.13860000288696, + 66.20049999764888, + 56.87670000042999, + 67.49889999991865, + 55.26129999998375, + 57.59539999780827, + 62.60810000094352, + 81.34740000241436, + 62.42679999922984, + 83.54520000284538, + 88.97150000120746, + 84.18090000122902, + 79.21139999962179, + 81.25490000020363, + 78.15870000194991, + 76.9910000017262, + 82.38390000042273, + 75.18260000142618, + 85.77629999854253, + 102.40609999891603, + 129.74469999971916, + 93.61189999981434, + 91.02809999967576, + 85.38179999959539, + 70.21650000024238, + 62.4076000021887, + 64.4629000016721, + 56.72160000176518, + 61.93859999984852 + ], + "exact": [ + 41.30020000229706, + 41.40660000120988, + 44.826999997894745, + 48.38699999891105, + 46.42569999850821, + 50.907199998619035, + 57.52379999830737, + 48.77750000014203, + 53.192700001091, + 51.543199999287026, + 48.347300002205884, + 48.586900000373134, + 44.880099998408696, + 46.74220000015339, + 45.526499998231884, + 44.64139999981853, + 43.52419999850099, + 40.82879999987199, + 47.3630000014964, + 49.06169999958365, + 50.83289999674889, + 41.579999997338746, + 43.05910000039148, + 44.3304000000353, + 45.28809999828809, + 46.14989999754471, + 48.9043000015954, + 41.51519999868469, + 42.20989999885205, + 46.44950000147219, + 63.88170000354876, + 48.93950000041514, + 54.969299999356735, + 41.61340000064229, + 49.72750000160886, + 53.09240000133286, + 41.72939999989467, + 54.5352000008279, + 56.86770000102115, + 48.14800000167452, + 49.88660000162781, + 49.74859999856562, + 45.733800001471536, + 60.197899998456705, + 50.14659999869764, + 53.74060000031022, + 45.083500001055654, + 47.06939999960014, + 58.79980000099749, + 44.9533999999403, + 49.30810000223573, + 46.08709999956773, + 49.414500001148554, + 43.84159999972326, + 56.326600002648775, + 45.240400002512615, + 45.82970000046771, + 49.49570000098902, + 47.67319999882602, + 46.0547000002407, + 45.478000000002794, + 45.40579999957117, + 46.692200001416495, + 52.05799999748706, + 56.36589999994612, + 44.696500001009554, + 61.7735999985598, + 67.89190000199596, + 61.26529999892227, + 48.572499999863794, + 51.40709999977844, + 54.22129999715253, + 52.91379999835044, + 47.22419999961858, + 43.70980000021518, + 48.6094999978377, + 47.34190000090166, + 55.77310000080615, + 52.94969999886234, + 51.098200001433725, + 39.84349999882397, + 44.12340000271797, + 39.03610000270419, + 40.065199998934986, + 39.020200001687044, + 37.591500000417, + 40.225100001407554, + 42.15539999859175, + 41.00019999896176, + 39.77570000279229, + 46.27450000043609, + 48.56799999834038, + 43.244699998467695, + 43.92340000049444, + 41.29490000195801, + 38.37510000084876, + 44.655499998043524, + 40.72720000112895, + 37.34890000123414, + 44.65870000058203, + 46.93070000212174, + 52.16330000257585, + 48.90530000193394, + 48.45410000052652, + 53.803000002517365, + 51.139300001523225, + 57.23949999810429, + 45.14059999928577, + 41.48500000155764, + 52.978200001234654, + 44.22169999816106, + 51.12789999839151, + 42.622600001777755, + 38.92719999930705, + 49.900600002729334, + 43.98420000143233, + 39.51020000022254, + 42.46620000049006, + 54.6807999999146, + 42.88079999969341, + 43.40840000077151, + 53.37429999781307, + 50.923700000566896, + 49.29270000138786, + 56.56339999768534, + 47.02320000069449, + 54.841400000441354, + 52.42569999973057, + 76.14509999984875, + 62.73710000095889, + 65.26969999686116, + 56.08330000177375, + 69.9891000003845, + 55.47110000043176, + 52.83119999876362, + 56.11800000042422, + 44.03640000236919, + 46.87249999915366, + 43.42180000094231, + 51.81829999855836, + 67.35919999846374, + 72.83599999936996, + 73.84760000059032, + 93.85760000077426, + 65.76810000115074, + 63.232199998310534, + 64.53790000159643, + 68.58389999979408, + 69.12910000028205, + 75.36519999848679, + 70.03740000072867, + 77.65990000189049, + 58.35080000179005, + 60.4414999979781, + 58.44479999723262, + 59.10239999866462, + 52.51649999991059, + 55.45200000051409, + 50.35159999897587, + 50.342900001851376, + 47.805499998503365, + 48.806900002091425, + 49.701899999490706, + 53.62050000258023, + 55.17800000234274, + 49.656300001515774, + 56.735799997113645, + 43.65210000105435, + 50.667300001805415, + 52.90910000258009, + 44.75810000076308, + 51.33709999790881, + 56.290699998498894, + 53.57549999826006, + 46.47560000012163, + 50.067500000295695, + 42.04020000179298, + 48.538200000621146, + 52.787100001296494, + 48.90700000032666, + 45.52780000085477, + 47.25779999716906, + 40.518000001611654, + 49.70390000016778, + 51.200099998823134, + 55.74969999724999, + 45.6127999968885, + 69.09520000044722, + 47.69219999798224, + 59.464599999046186, + 49.4557000019995, + 51.95830000229762, + 44.348099996568635, + 48.2501999977103, + 51.047200002358295, + 44.55460000099265, + 45.644900001207134, + 44.679000002361136, + 45.02359999969485, + 46.384900000703055, + 62.47900000016671, + 51.39699999926961, + 56.120900000678375, + 57.53510000067763, + 57.277600000816165, + 54.451399999379646, + 50.08150000139722, + 51.44329999893671, + 57.34840000150143, + 61.267400000360794, + 56.41690000265953, + 61.7908999993233, + 77.19089999955031, + 59.60380000033183, + 49.902500002644956, + 53.61289999927976, + 62.41760000193608, + 56.71040000015637, + 52.2385000003851, + 44.87410000001546, + 48.45009999917238, + 53.643499999452615, + 50.51670000102604, + 45.95580000022892, + 53.962699999829056, + 49.740899998141686, + 41.38020000027609, + 49.68430000008084, + 48.29020000033779, + 46.540100000129314, + 49.60919999939506, + 48.6631000021589, + 49.55539999718894, + 51.05149999872083, + 46.346600000106264, + 53.00899999929243, + 49.49779999878956, + 54.47210000056657, + 50.90310000014142, + 51.71909999990021, + 69.79209999917657, + 57.698999997228384, + 55.30859999998938, + 61.63079999896581, + 64.77409999934025, + 60.02649999936693, + 62.35030000243569, + 58.85570000100415, + 52.30420000225422, + 56.888000002800254, + 46.65960000056657, + 48.86579999947571, + 42.97660000156611, + 49.640699999145, + 45.94560000259662, + 50.24590000175522, + 54.82560000018566, + 44.432000002416316, + 43.6044000016409, + 57.12109999876702, + 47.05939999985276, + 46.66709999946761, + 47.848700000031386, + 49.64979999931529, + 42.211200001474936, + 46.04979999930947, + 41.60359999877983, + 52.50549999982468, + 40.18799999903422, + 41.3131000022986, + 50.05370000071707, + 52.71150000044145, + 56.49970000013127, + 57.345299999724375, + 49.07239999738522, + 47.78950000036275, + 49.38979999860749, + 43.442500002129236, + 45.01590000290889, + 41.8214999990596, + 47.78679999799351, + 49.104300000180956, + 46.14390000278945, + 53.043600000819424, + 50.61519999799202, + 43.314599999575876, + 43.09529999954975, + 52.71240000001853, + 45.308200002182275, + 56.72780000168132, + 48.27260000092792, + 54.71249999754946, + 44.77570000017295, + 47.30100000233506, + 42.680600003222935, + 46.25390000001062, + 43.602600002486724, + 44.85159999967436, + 48.83479999989504, + 41.8625999991491, + 44.524400000227615, + 44.27909999867552, + 49.08799999975599, + 40.65749999790569, + 44.275699998252094, + 43.7683999989531, + 43.224900000495836, + 47.147099998255726, + 44.14109999925131, + 40.68149999875459, + 44.49639999802457, + 43.92019999795593, + 47.222299999702955, + 44.5953999987978, + 42.18110000147135, + 39.95790000044508, + 41.021299999556504, + 39.613299999473384, + 39.15499999857275, + 47.374300000228686, + 50.987299997359514, + 44.855700001789955, + 48.117300000740215, + 42.92499999792199, + 47.87519999808865, + 52.29450000115321, + 46.06899999998859, + 46.203400001104455, + 48.85640000065905, + 50.002399999357294, + 43.18060000150581, + 46.358300001884345, + 44.22889999841573, + 50.38490000151796, + 40.90609999911976, + 47.3679999995511, + 39.25400000298396, + 38.594400000874884, + 38.96499999973457, + 40.609700001368765, + 48.62759999741684, + 42.8302000000258, + 44.064800000342075, + 39.60379999989527, + 46.24630000034813, + 39.26810000120895, + 44.59069999938947, + 40.94740000073216, + 48.371599998063175, + 37.41920000175014, + 39.05339999982971, + 36.60460000173771, + 36.929900001268834, + 36.88529999999446, + 36.34090000196011, + 37.42280000005849, + 41.98259999975562, + 37.80000000188011, + 37.986800001817755, + 38.28419999990729, + 51.82820000118227, + 41.37810000247555, + 46.22690000178409, + 46.00439999921946, + 47.570300001098076, + 43.37429999941378, + 45.89589999886812, + 46.203300000343006, + 45.43220000050496, + 42.552599999908125, + 43.54990000138059, + 42.134199997235555, + 42.516599998634774, + 44.643299999734154, + 51.20090000127675, + 41.67020000022603, + 42.26629999902798, + 61.821300001611235, + 40.350800001760945, + 44.49689999819384, + 47.51670000041486, + 42.416700001922436, + 38.87309999845456, + 39.099699999496806, + 38.34160000042175, + 37.97120000308496, + 37.3756000008143, + 44.512199998280266, + 41.601799999625655, + 38.50889999739593, + 41.83249999914551, + 39.68400000303518, + 46.46839999986696, + 43.68210000029649, + 38.475700002891244, + 42.789499999344116, + 40.227599998615915, + 42.94070000105421, + 38.507199999003205, + 43.12009999921429 + ], + "lattice": [ + 35.264800000732066, + 37.76500000094529, + 33.285699999396456, + 33.9458000016748, + 40.91749999861349, + 38.56960000121035, + 38.43020000203978, + 35.01679999681073, + 38.371899998310255, + 42.92859999986831, + 35.45010000016191, + 36.25110000211862, + 36.90719999940484, + 41.04960000040592, + 36.53219999978319, + 43.00320000038482, + 37.21439999935683, + 40.82569999809493, + 36.05529999913415, + 39.45519999979297, + 44.1776999978174, + 36.910599999828264, + 36.14000000015949, + 34.88849999848753, + 46.256699999503326, + 35.63629999916884, + 38.47650000170688, + 36.00920000098995, + 33.973199999309145, + 36.39430000112043, + 36.23349999907077, + 37.09339999841177, + 34.24319999976433, + 34.92249999908381, + 34.239199998410186, + 41.53079999741749, + 33.6816999988514, + 34.650300000066636, + 34.34130000096047, + 35.0241999985883, + 47.89630000232137, + 38.93130000142264, + 43.30810000101337, + 46.43779999969411, + 43.51920000044629, + 36.77559999778168, + 36.07729999930598, + 42.85119999985909, + 40.46889999881387, + 37.32499999750871, + 34.34159999960684, + 39.37450000012177, + 47.02679999900283, + 43.67120000097202, + 49.878400001034606, + 53.94809999779682, + 58.458399998926325, + 45.81030000190367, + 44.58660000091186, + 46.47829999885289, + 35.277399998449255, + 33.78020000309334, + 37.604599998303456, + 36.08420000091428, + 36.08739999981481, + 40.924100001575425, + 49.36439999801223, + 35.219199999119155, + 40.086900000460446, + 40.060300001641735, + 40.64250000010361, + 36.52650000003632, + 37.07790000044042, + 39.714200000162236, + 42.40539999955217, + 36.06909999871277, + 35.16250000029686, + 35.170700000890065, + 38.00010000122711, + 37.43219999887515, + 31.316100001276936, + 42.91999999986729, + 39.76400000101421, + 37.682399997720495, + 33.975300000747666, + 36.25280000051134, + 39.11609999704524, + 37.57499999846914, + 31.822500000998843, + 38.795000000391155, + 29.618799999298062, + 32.70120000161114, + 31.070299999555573, + 33.56960000019171, + 28.10479999970994, + 28.989200000069104, + 34.29349999714759, + 30.776499999774387, + 33.08620000098017, + 42.13940000045113, + 37.43269999904442, + 31.47700000045006, + 32.43470000234083, + 29.95549999832292, + 31.828899998799898, + 35.45410000151605, + 32.83279999959632, + 34.69499999846448, + 32.13630000027479, + 34.21819999857689, + 35.9115000028396, + 37.01020000153221, + 37.58720000041649, + 37.752200001705205, + 31.00800000174786, + 29.975599998579128, + 35.99270000268007, + 31.647399999201298, + 36.615199998777825, + 36.52220000003581, + 38.60789999816916, + 37.435499998537125, + 37.35490000326536, + 36.06939999735914, + 34.26960000069812, + 37.17080000205897, + 32.38169999895035, + 37.34679999979562, + 33.94800000023679, + 50.631099999009166, + 34.437499998603016, + 36.516200001642574, + 33.33500000007916, + 33.60849999808124, + 42.49630000049365, + 32.199500001297565, + 32.06049999789684, + 30.481999998301035, + 31.920900000841357, + 30.452599999989616, + 38.19169999769656, + 35.87640000114334, + 35.993699999380624, + 39.177599999675294, + 38.519300000189105, + 38.44530000060331, + 39.07690000050934, + 37.698899999668356, + 35.983999998279614, + 41.942899999412475, + 47.7123999989999, + 35.63729999950738, + 35.61160000026575, + 44.24289999951725, + 39.349199996649986, + 41.09329999846523, + 35.596400000940775, + 36.42599999875529, + 40.43119999914779, + 36.322200001450256, + 37.07320000103209, + 36.33379999882891, + 46.85539999991306, + 41.75820000091335, + 39.054299999406794, + 34.03910000270116, + 33.80829999878188, + 33.88540000014473, + 35.14949999953387, + 39.97030000027735, + 36.781800001335796, + 38.58799999943585, + 33.387899999070214, + 33.74389999953564, + 34.11789999881876, + 36.17209999720217, + 38.07299999971292, + 32.871999999770196, + 39.320599997154204, + 33.25639999820851, + 39.95190000205184, + 34.415799997077556, + 37.40560000005644, + 38.39169999992009, + 34.885199998825556, + 36.072999999305466, + 40.91129999869736, + 49.36459999953513, + 48.37939999924856, + 49.2348999978276, + 43.58950000096229, + 57.4598999992304, + 56.85240000093472, + 55.777699999453034, + 46.457999997073784, + 45.58349999933853, + 46.04939999990165, + 45.5206000006001, + 43.63329999978305, + 42.66520000237506, + 36.18299999652663, + 40.59430000052089, + 35.27140000005602, + 35.686000002897345, + 36.35759999815491, + 36.600799998268485, + 38.98309999931371, + 37.00579999713227, + 34.61499999684747, + 41.0626000011689, + 39.165300000604475, + 38.8225999995484, + 32.79430000111461, + 36.51039999749628, + 39.35300000011921, + 33.00339999987045, + 34.05639999982668, + 35.76020000036806, + 37.00270000263117, + 33.25829999812413, + 38.81750000073225, + 39.55929999938235, + 39.143800000601914, + 34.60119999726885, + 35.741699997743126, + 37.68099999797414, + 36.13019999829703, + 34.34420000121463, + 38.62710000248626, + 38.681699999870034, + 35.291799998958595, + 37.12989999985439, + 39.65310000057798, + 37.71490000144695, + 38.65640000003623, + 41.101099999650614, + 39.320500000030734, + 42.475300000660354, + 33.15160000056494, + 34.64949999761302, + 41.88630000135163, + 36.95959999822662, + 35.81489999851328, + 54.688599997462006, + 41.46530000070925, + 41.54329999801121, + 37.2698000028322, + 34.77579999889713, + 39.3863000026613, + 38.68730000249343, + 33.06629999860888, + 38.53609999714536, + 33.80319999996573, + 33.16520000225864, + 38.74819999691681, + 37.59709999940242, + 32.43760000259499, + 34.537099996668985, + 38.90220000175759, + 34.945600000355626, + 44.534599997859914, + 38.29879999830155, + 39.14150000127847, + 37.60870000041905, + 39.91449999739416, + 36.78020000006654, + 38.8929000000644, + 34.78709999762941, + 36.60020000097575, + 38.93679999964661, + 33.93320000031963, + 34.01300000041374, + 33.42970000085188, + 41.03929999837419, + 41.993300001195166, + 36.4817999980005, + 38.98820000176784, + 38.83539999878849, + 50.039800000377, + 52.6239999999234, + 38.64560000147321, + 36.48299999986193, + 39.78590000042459, + 38.92280000218307, + 36.66900000098394, + 37.17450000112876, + 43.9855999975407, + 42.34129999895231, + 36.48859999884735, + 42.267199998605065, + 37.77500000069267, + 35.67109999858076, + 38.19400000065798, + 39.734299996780464, + 39.61600000184262, + 40.5730999991647, + 41.32279999976163, + 38.51370000120369, + 39.941899998666486, + 38.86609999972279, + 33.40050000042538, + 34.39040000012028, + 35.13620000012452, + 35.06539999943925, + 34.159200000431156, + 36.04290000293986, + 33.4898000000976, + 37.93039999800385, + 34.592500000144355, + 40.72380000070552, + 40.5471000012767, + 38.858299998537404, + 37.960699999530334, + 38.27719999753754, + 38.15259999828413, + 35.325500000908505, + 35.03889999774401, + 34.72700000202167, + 36.15210000134539, + 40.89380000004894, + 35.72799999892595, + 32.53179999956046, + 32.52340000108234, + 36.31479999967269, + 32.674199999746634, + 32.70949999932782, + 31.787600000825478, + 31.096000002435176, + 32.95380000054138, + 32.12630000052741, + 32.35040000072331, + 34.91389999908279, + 32.330300000467105, + 32.93670000130078, + 35.61950000221259, + 31.29080000144313, + 30.402799999137642, + 32.94910000113305, + 30.626499999925727, + 31.84979999787174, + 31.765700001415098, + 29.434500000206754, + 30.36239999710233, + 32.63820000211126, + 33.00959999978659, + 30.55790000144043, + 31.427799996890826, + 31.805999999050982, + 34.68979999888688, + 34.69240000049467, + 30.39080000235117, + 32.06290000161971, + 32.0121000004292, + 32.175399999687215, + 32.63679999872693, + 31.078999996680068, + 35.540799999580486, + 30.85320000172942, + 32.332800001313444, + 35.426999998890096, + 32.533600002352614, + 32.49040000082459, + 31.330300000263378, + 33.23830000226735, + 33.12499999810825, + 33.873700002004625, + 33.511300000100164, + 30.178900000464637, + 29.787399998895125, + 31.8818999985524, + 31.60329999809619, + 33.29250000024331, + 32.388499999797205, + 31.621900001482572, + 33.99089999948046, + 31.986599999072496, + 32.30729999995674, + 31.879799997113878, + 31.267900001694215, + 32.78300000238232, + 34.970299999258714, + 33.51399999883142, + 32.083500002045184, + 39.09179999754997, + 41.12930000337656, + 33.014799999364186, + 35.040200000366895, + 33.25159999803873, + 32.819000000017695, + 35.83559999970021, + 32.589200000074925, + 31.63969999877736, + 30.76870000222698, + 30.75650000027963, + 31.633200000214856, + 30.12730000045849, + 32.38249999776599, + 33.35749999678228, + 33.40509999907226, + 35.07840000020224 + ], + "library": [ + 42.26639999978943, + 38.66399999969872, + 35.28899999946589, + 42.741599998407764, + 35.82309999910649, + 37.71699999924749, + 42.59689999889815, + 39.82420000102138, + 33.19349999947008, + 39.230800000950694, + 35.061999999015825, + 34.78800000084448, + 51.41689999800292, + 34.802900001523085, + 36.08860000167624, + 34.144300003390526, + 35.42530000049737, + 36.975300001358846, + 35.51480000169249, + 41.669199999887496, + 32.98680000079912, + 33.051099999283906, + 33.42089999932796, + 38.83560000031139, + 40.55440000229282, + 35.93819999878178, + 35.87899999911315, + 45.893599999544676, + 38.66259999995236, + 37.07119999671704, + 37.20370000155526, + 37.324399996577995, + 39.1271999978926, + 35.88139999919804, + 34.95149999798741, + 35.83919999800855, + 33.37959999771556, + 32.925600000453414, + 35.942999998951564, + 36.707100000057835, + 52.56630000076257, + 42.73209999882965, + 44.17660000035539, + 40.396700002020225, + 50.33990000083577, + 38.018899998860434, + 37.568499999906635, + 36.82879999905708, + 37.355699998443015, + 36.4666000023135, + 38.679299999785144, + 37.76029999789898, + 35.09269999995013, + 35.01559999858728, + 32.954500002233544, + 34.54820000115433, + 32.86920000027749, + 35.662000002048444, + 34.43809999953373, + 36.397600000782404, + 36.18149999965681, + 34.362800000963034, + 38.37729999941075, + 42.25560000122641, + 38.47219999806839, + 42.932500000461005, + 51.027600002271356, + 37.92950000206474, + 48.395500001788605, + 43.2600000021921, + 52.02400000052876, + 46.74019999947632, + 41.96059999958379, + 35.56699999899138, + 37.05470000204514, + 38.66899999775342, + 38.325599998643156, + 36.55319999961648, + 40.62840000187862, + 38.69549999944866, + 48.49310000281548, + 47.038400000019465, + 42.276600001059705, + 36.7006999986188, + 39.816399999835994, + 36.36620000179391, + 32.855400000698864, + 37.82879999926081, + 38.28119999889168, + 29.533199998695636, + 40.510799997719005, + 36.06089999811957, + 31.50420000019949, + 36.30440000051749, + 32.64309999940451, + 32.17220000078669, + 30.53820000059204, + 32.807100000354694, + 34.02579999965383, + 33.93339999820455, + 33.66600000299513, + 30.766700001549907, + 40.11019999961718, + 33.64280000096187, + 31.884500000160187, + 39.722199999232544, + 52.48139999821433, + 41.93360000135726, + 50.06099999809521, + 38.335799999913434, + 36.958799999410985, + 40.12750000038068, + 40.639099999680184, + 47.180900000967085, + 45.400000002700835, + 51.569899998867186, + 40.61640000145417, + 49.59719999897061, + 44.77009999754955, + 59.2703000002075, + 40.377599998464575, + 42.43720000158646, + 29.98229999866453, + 30.798699997831136, + 49.57450000074459, + 31.193899998470442, + 33.50810000119964, + 37.50270000091405, + 32.405199999629986, + 32.91279999757535, + 32.88780000002589, + 32.064300001366064, + 36.753199998202035, + 37.63690000050701, + 31.68839999852935, + 39.12579999814625, + 32.8083999993396, + 31.105600002774736, + 34.579900002427166, + 34.307199999602744, + 47.30299999937415, + 42.852100003074156, + 40.761800002655946, + 37.9955999997037, + 46.66210000141291, + 46.21640000186744, + 45.68980000112788, + 42.22419999859994, + 43.29470000084257, + 48.93660000016098, + 44.144699997559655, + 42.81989999799407, + 47.03900000095018, + 45.78899999978603, + 42.53640000024461, + 41.26710000127787, + 48.61999999775435, + 57.44789999880595, + 45.925099999294616, + 43.312199999490986, + 35.29399999752059, + 37.812800001120195, + 41.63350000089849, + 42.68719999890891, + 50.58339999959571, + 50.26290000023437, + 47.52379999990808, + 44.386999998096144, + 38.226699998631375, + 42.05119999824092, + 36.680200002592755, + 39.13670000110869, + 37.37659999751486, + 38.48220000145375, + 37.29350000139675, + 37.8549999986717, + 37.75780000069062, + 38.46250000060536, + 38.70979999919655, + 42.84109999935026, + 45.56079999747453, + 41.44520000045304, + 40.742699999100296, + 47.222299999702955, + 43.46330000043963, + 42.83930000019609, + 42.756099999678554, + 42.70399999950314, + 35.94840000005206, + 36.75629999997909, + 37.0297000008577, + 38.083600000391016, + 39.53360000014072, + 35.73519999918062, + 36.61600000123144, + 42.269899997336324, + 39.67700000066543, + 39.59290000057081, + 39.82720000203699, + 35.98290000081761, + 33.5942999990948, + 34.962999998242594, + 36.622200001147576, + 34.22359999967739, + 34.92940000069211, + 41.37769999942975, + 37.444900000991765, + 39.797199999156874, + 35.56690000186791, + 36.76619999896502, + 36.3376999994216, + 34.27180000289809, + 37.469000002602115, + 37.77739999713958, + 35.28590000132681, + 40.6862000018009, + 39.283699999941746, + 37.45820000040112, + 40.76250000071013, + 37.53750000032596, + 39.67449999981909, + 42.41829999955371, + 43.762699999206234, + 39.26560000036261, + 39.70819999813102, + 45.55669999899692, + 43.979800000670366, + 45.15019999962533, + 42.13190000155009, + 42.68350000347709, + 42.3077999985253, + 40.46600000219769, + 41.156599996611476, + 46.116299999994226, + 38.52759999790578, + 38.65679999944405, + 41.80099999939557, + 43.8097000005655, + 49.35939999995753, + 42.823300002055475, + 36.6939999985334, + 36.48530000282335, + 44.12470000170288, + 37.6719999985653, + 44.200500000442844, + 38.76319999835687, + 41.575399998691864, + 38.93640000023879, + 37.462000000232365, + 36.910499999066815, + 34.532000001490815, + 38.434699999925215, + 37.42720000082045, + 41.20350000084727, + 36.901099996612174, + 37.6256999988982, + 37.07869999925606, + 33.49289999823668, + 41.754199999559205, + 34.01940000185277, + 39.81579999890528, + 43.616999999358086, + 40.39899999770569, + 36.968600001273444, + 42.50309999770252, + 36.60699999818462, + 37.314400000468595, + 35.91440000309376, + 45.67429999951855, + 36.80520000125398, + 34.45529999953578, + 38.069000001996756, + 38.2476000013412, + 35.65180000077817, + 38.562999998248415, + 39.41610000038054, + 39.128899999923306, + 33.118899998953566, + 35.77360000053886, + 35.17880000072182, + 40.74160000163829, + 36.67620000123861, + 36.90160000041942, + 33.958600000914885, + 41.60589999810327, + 33.26779999770224, + 37.42770000098972, + 37.25839999970049, + 35.6203999981517, + 35.11470000012196, + 38.06859999895096, + 36.54650000316906, + 39.388099998177495, + 34.766400000080466, + 38.40979999949923, + 39.765499997884035, + 43.88010000184295, + 38.72129999945173, + 43.24740000083693, + 42.30250000182423, + 42.63300000093295, + 35.32850000192411, + 43.45610000018496, + 34.99759999976959, + 34.1459000010218, + 34.34139999808394, + 38.991099998384016, + 35.50780000296072, + 34.348000001045875, + 35.287699996843, + 34.561000000394415, + 35.066699998424156, + 35.528799999156035, + 34.91310000026715, + 36.542599998938385, + 35.88830000080634, + 46.63140000047861, + 38.662000002659624, + 39.46679999717162, + 35.712600001716055, + 30.71769999951357, + 29.344999999011634, + 29.54699999827426, + 30.149799997161608, + 29.760500001430046, + 31.167000001005363, + 30.235399997764034, + 29.699999999138527, + 30.506600000080653, + 36.60159999708412, + 34.788299999490846, + 39.104700001189485, + 31.747499997436535, + 35.482500003126916, + 32.42350000073202, + 35.23099999802071, + 33.11250000115251, + 34.0468000031251, + 34.9114999989979, + 38.096000000223285, + 32.93670000130078, + 32.06309999950463, + 32.988000002660556, + 34.27749999900698, + 39.78120000101626, + 32.71619999941322, + 33.99830000125803, + 33.07870000207913, + 34.02420000202255, + 31.51860000070883, + 35.533499998564366, + 35.318700000061654, + 34.67169999930775, + 33.06430000156979, + 34.56410000217147, + 37.62089999872842, + 40.41679999863845, + 36.07889999693725, + 36.70029999921098, + 41.124999999738066, + 31.630500001483597, + 31.86930000083521, + 32.44569999878877, + 28.816399997595, + 34.07619999779854, + 31.19929999957094, + 29.48599999945145, + 33.041799997590715, + 38.519500001712004, + 30.254500001319684, + 31.09509999922011, + 30.755700001463993, + 31.37110000170651, + 29.08650000244961, + 31.10749999905238, + 30.60909999840078, + 30.9043000015663, + 32.08040000026813, + 30.885699998179916, + 33.1597000003967, + 33.293100001174025, + 32.04380000170204, + 33.65910000138683, + 30.34249999836902, + 30.982399999629706, + 32.97839999868302, + 33.919500001502456, + 38.54979999960051, + 42.102799998247065, + 39.03859999991255, + 39.60730000108015, + 36.65489999912097, + 40.39290000218898, + 38.47210000094492, + 39.06020000067656, + 39.50540000005276, + 43.01100000157021, + 38.91660000226693, + 36.91350000008242, + 37.25320000012289 + ] + }, + "warm_ms": { + "control": [ + 75.72040000013658, + 70.79679999878863, + 70.02859999920474 + ], + "exact": [ + 50.44809999890276, + 38.253099999565165, + 51.38220000299043 + ], + "lattice": [ + 44.565700001840014, + 42.755800001032185, + 44.901799999934155 + ], + "library": [ + 44.621299999562325, + 48.973600001772866, + 51.36899999706657 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 76.30425000024843, + "p10_ms": 63.61430999786535, + "p90_ms": 99.47101999969165, + "min_ms": 53.66850000064005, + "max_ms": 228.74240000237478, + "mean_ms": 80.7273654999608 + }, + "exact": { + "n": 400, + "median_ms": 47.371149999889894, + "p10_ms": 40.33848000144644, + "p90_ms": 58.360200001334306, + "min_ms": 36.34090000196011, + "max_ms": 93.85760000077426, + "mean_ms": 48.816815250129366 + }, + "lattice": { + "n": 400, + "median_ms": 36.14605000075244, + "p10_ms": 31.847709997964557, + "p90_ms": 42.68380000212347, + "min_ms": 28.10479999970994, + "max_ms": 58.458399998926325, + "mean_ms": 36.95631324982969 + }, + "library": { + "n": 400, + "median_ms": 37.43630000099074, + "p10_ms": 32.07879000037792, + "p90_ms": 44.42530999804149, + "min_ms": 28.816399997595, + "max_ms": 59.2703000002075, + "mean_ms": 38.09948999999506 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 2.1109982971489285, + "ci90_low": 2.0727109256349, + "ci90_high": 2.173803523549281, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.6107747014886864, + "ci90_low": 1.5703870076127364, + "ci90_high": 1.664185015356092, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.3105484554717262, + "ci90_low": 1.2848369288185275, + "ci90_high": 1.3399022248515253, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 1.035695463272237, + "ci90_low": 1.0183077099155198, + "ci90_high": 1.0498882327941768, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 2.038242294196517, + "ci90_low": 2.002575531494264, + "ci90_high": 2.1031124766978815, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 2.1363396527207232, + "p10": 1.8859379285514406, + "p90": 2.483127318192372 + }, + "minimum_detectable_improvement": 0.4699175996318627, + "compile": { + "control": { + "lower_s": 40.92191879999882, + "compile_s": 33.80905380000331, + "first_call_s": 0.06972099999984493, + "trace_calls": 12, + "step0_rows": [ + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507 + ], + "flops": 131379264.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 91542488, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2207522816, + "rss_after_compile_bytes": 2285191168, + "rss_delta_bytes": 77668352, + "hlo_sha256": "34027d3e62169cb8", + "hlo_lines": 44308, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 38.719133300000976, + "compile_s": 40.57843060000232, + "first_call_s": 0.036349199999676785, + "trace_calls": 12, + "step0_rows": [ + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085 + ], + "flops": 46672180.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 40756248, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2267570176, + "rss_after_compile_bytes": 2286268416, + "rss_delta_bytes": 18698240, + "hlo_sha256": "a230a84d5662e7d2", + "hlo_lines": 43968, + "hlo_large_constants": 24 + }, + "lattice": { + "lower_s": 45.119554799999605, + "compile_s": 46.170382000000245, + "first_call_s": 0.03451639999912004, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 30334988.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22628376, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2276114432, + "rss_after_compile_bytes": 2299514880, + "rss_delta_bytes": 23400448, + "hlo_sha256": "bbd48be0b45d8314", + "hlo_lines": 43968, + "hlo_large_constants": 24 + }, + "library": { + "lower_s": 51.32829979999951, + "compile_s": 42.971815400000196, + "first_call_s": 0.03129540000009001, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 30334988.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22628376, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2288160768, + "rss_after_compile_bytes": 2302013440, + "rss_delta_bytes": 13852672, + "hlo_sha256": "63c77a13d9ea1457", + "hlo_lines": 43968, + "hlo_large_constants": 24 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 23.965075083393216, + -743.7107061666, + 3.3433302917272147, + -489.75562804160495, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160916, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ], + "exact": [ + 23.965075083393216, + -743.7107061666, + 3.3433302917272147, + -489.75562804160495, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160916, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ], + "lattice": [ + 23.965075083393216, + -743.7107061666, + 3.3433302917272147, + -489.75562804160495, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160916, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ], + "library": [ + 23.965075083393216, + -743.7107061666, + 3.3433302917272147, + -489.75562804160495, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160916, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 23.965075083393216, + "exact": 23.965075083393216, + "lattice": 23.965075083393216, + "library": 23.965075083393216 + } + } + }, + "gates": { + "simple_solved_positions": { + "n_instances": 3, + "compile": { + "control": { + "lower_s": 2.7348819999970146, + "compile_s": 2.7965423999994528, + "first_call_s": 0.00766970000040601, + "trace_calls": 1, + "step0_rows": [ + 69849 + ], + "flops": 6740729.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 4692440, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 706686976, + "rss_after_compile_bytes": 710934528, + "rss_delta_bytes": 4247552, + "hlo_sha256": "0e0b2c10ab3e38fc", + "hlo_lines": 12604, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 2.4445569000017713, + "compile_s": 4.000930700000026, + "first_call_s": 0.00608500000089407, + "trace_calls": 1, + "step0_rows": [ + 28665 + ], + "flops": 3719672.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1774872, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 710934528, + "rss_after_compile_bytes": 712888320, + "rss_delta_bytes": 1953792, + "hlo_sha256": "d3be52fe4bc8a145", + "hlo_lines": 12527, + "hlo_large_constants": 4 + }, + "lattice": { + "lower_s": 4.028500000000349, + "compile_s": 2.9642680999968434, + "first_call_s": 0.004282199999579461, + "trace_calls": 1, + "step0_rows": [ + 11859 + ], + "flops": 3047432.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1688408, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 711675904, + "rss_after_compile_bytes": 714440704, + "rss_delta_bytes": 2764800, + "hlo_sha256": "c3b237947abc6053", + "hlo_lines": 12527, + "hlo_large_constants": 4 + }, + "library": { + "lower_s": 1.7539761000007275, + "compile_s": 2.3093140999990283, + "first_call_s": 0.006627399998251349, + "trace_calls": 1, + "step0_rows": [ + 11859 + ], + "flops": 3047432.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1688408, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 713244672, + "rss_after_compile_bytes": 714596352, + "rss_delta_bytes": 1351680, + "hlo_sha256": "c3b237947abc6053", + "hlo_lines": 12527, + "hlo_large_constants": 4 + } + }, + "positions": { + "control": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "exact": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "lattice": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "library": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ] + }, + "finite_positions": { + "control": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "exact": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "lattice": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "library": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_lattice": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_library": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + } + } + }, + "simple_solved_grad": { + "n_instances": 3, + "rtol": 1e-10, + "atol": 1e-12, + "compile": { + "control": { + "lower_s": 9.680299499999819, + "compile_s": 8.116115600001649, + "first_call_s": 0.007288799999514595, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 9401708.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 4703192, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 712208384, + "rss_after_compile_bytes": 753606656, + "rss_delta_bytes": 41398272, + "hlo_sha256": "aca225b2b6666189", + "hlo_lines": 43547, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 6.658075799998187, + "compile_s": 8.246540700001788, + "first_call_s": 0.0067205999985162634, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 6101255.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 2074008, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 802361344, + "rss_after_compile_bytes": 837734400, + "rss_delta_bytes": 35373056, + "hlo_sha256": "bcc46f8dfa029517", + "hlo_lines": 43460, + "hlo_large_constants": 4 + }, + "lattice": { + "lower_s": 6.304886700003408, + "compile_s": 8.694431099997018, + "first_call_s": 0.00570510000034119, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 5429015.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 2073880, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 834859008, + "rss_after_compile_bytes": 868601856, + "rss_delta_bytes": 33742848, + "hlo_sha256": "bd28a39e44a08a95", + "hlo_lines": 43460, + "hlo_large_constants": 4 + }, + "library": { + "lower_s": 6.393506199998228, + "compile_s": 9.379347800000687, + "first_call_s": 0.009976599998481106, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 5429015.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 2073880, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 865095680, + "rss_after_compile_bytes": 872402944, + "rss_delta_bytes": 7307264, + "hlo_sha256": "bd28a39e44a08a95", + "hlo_lines": 43460, + "hlo_large_constants": 4 + } + }, + "all_finite": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "any_nonzero_per_instance": { + "control": [ + true, + true, + true + ], + "exact": [ + true, + true, + true + ], + "lattice": [ + true, + true, + true + ], + "library": [ + true, + true, + true + ] + }, + "gradients": { + "control": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783334, + 2.804131922250644, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805021, + 74.32499719544035, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.0003235058508, + -1560.549091923857 + ] + ], + "exact": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783334, + 2.804131922250644, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805021, + 74.32499719544035, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.0003235058508, + -1560.549091923857 + ] + ], + "lattice": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783334, + 2.804131922250644, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805021, + 74.32499719544035, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.0003235058508, + -1560.549091923857 + ] + ], + "library": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783334, + 2.804131922250644, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805021, + 74.32499719544035, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.0003235058508, + -1560.549091923857 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + } + } + }, + "simple_solved_vmap4": { + "vmap_vs_scalar_within_route": { + "control": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + } + }, + "across_routes": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + } + }, + "simple_plain_step0_containing": { + "n_instances": 3, + "sets": { + "control": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "exact": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "lattice": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "library": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "identical": true + }, + "control_vs_lattice": { + "identical": true + }, + "control_vs_library": { + "identical": true + } + } + }, + "cluster_solved_positions": { + "n_instances": 3, + "compile": { + "control": { + "lower_s": 10.14417969999704, + "compile_s": 11.635611999998218, + "first_call_s": 0.0619382000004407, + "trace_calls": 2, + "step0_rows": [ + 276507, + 276507 + ], + "flops": 131342760.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 91879064, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2288381952, + "rss_after_compile_bytes": 2252439552, + "rss_delta_bytes": -35942400, + "hlo_sha256": "475332262f3a7c20", + "hlo_lines": 40575, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 9.861092999999528, + "compile_s": 13.448884299999918, + "first_call_s": 0.03568799999993644, + "trace_calls": 2, + "step0_rows": [ + 110085, + 110085 + ], + "flops": 46635440.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 40762584, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2232934400, + "rss_after_compile_bytes": 2222055424, + "rss_delta_bytes": -10878976, + "hlo_sha256": "26ca7602e9865464", + "hlo_lines": 40235, + "hlo_large_constants": 24 + }, + "lattice": { + "lower_s": 9.631115500000305, + "compile_s": 13.616759299999103, + "first_call_s": 0.028909200002090074, + "trace_calls": 2, + "step0_rows": [ + 46516, + 46516 + ], + "flops": 30298244.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 22635608, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2214895616, + "rss_after_compile_bytes": 2217189376, + "rss_delta_bytes": 2293760, + "hlo_sha256": "6da1abeddc25f164", + "hlo_lines": 40235, + "hlo_large_constants": 24 + }, + "library": { + "lower_s": 9.976286500001152, + "compile_s": 15.465518199998769, + "first_call_s": 0.03092330000072252, + "trace_calls": 2, + "step0_rows": [ + 46516, + 46516 + ], + "flops": 30298244.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 22635608, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2213330944, + "rss_after_compile_bytes": 2215256064, + "rss_delta_bytes": 1925120, + "hlo_sha256": "6da1abeddc25f164", + "hlo_lines": 40235, + "hlo_large_constants": 24 + } + }, + "positions": { + "control": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "exact": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "lattice": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "library": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ] + }, + "finite_positions": { + "control": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "exact": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "lattice": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "library": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_lattice": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_library": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + } + } + } + }, + "wall_s": 1303.7976509 +} \ No newline at end of file diff --git a/results/breakdown/point_source/static_lattice_ab_constant_folding_laptop_cpu_fp64.png b/results/breakdown/point_source/static_lattice_ab_constant_folding_laptop_cpu_fp64.png new file mode 100644 index 0000000000000000000000000000000000000000..b5567a7c7b6bd2953366ed77d2e211a7f06f2056 GIT binary patch literal 167322 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 f64[] {\n %constant.1 = f64[1000]{0} constant({...})\n %constant = f64[] constant(0)\n %wrapped_multiply = f64[1000]{0} fusion(%constant.1), kind=kLoop, calls=%wrapped_multiply_computation\n %wrapped_reduce-window = f64[32]{0} fusion(%wrapped_multiply, %constant), kind=kLoop, calls=%wrapped_reduce-window_computation\n ROOT %wrapped_reduce = f64[] fusion(%wrapped_reduce-window, %constant), kind=kLoop, calls=%wrapped_reduce_computation, metadata={op_name=\"jit()/dot_general\" stack_frame_id=3}\n}\n\n", + "agrees_with_request": true + } + }, + "library_versions": { + "autolens": "2026.8.17.1", + "autoarray": "2026.8.17.1", + "autofit": "2026.8.17.1" + }, + "package_versions": { + "jax": "0.10.2", + "jaxlib": "0.10.2" + }, + "source_revisions": { + "autolens_profiling": "3da2583d46b80f72793caf11a16433ca05f00d20", + "PyAutoNerves": "1fa613aa8d89a79613009fb66f5b4e2d21deb57a", + "PyAutoFit": "a736840127be7a3c21e15a5c945e94d8f1082983", + "PyAutoArray": "ad0bf97b45d572effa5d428a101d32ac4893b950", + "PyAutoGalaxy": "70a61e26cd715cefe7012a38285698091246a8a4", + "PyAutoLens": "b346b6a0a092098f23964e274edb220ea9757ad0" + }, + "autoarray_imported_from": "~/Code/PyAutoLabs-wt/point-source-cpu-p3/PyAutoArray", + "autolens_imported_from": "~/Code/PyAutoLabs-wt/point-source-cpu-p3/PyAutoLens", + "target": "autolens.point.solver.shape_solver.AbstractSolver._initial_triangles", + "route_bodies": { + "control": { + "name": "_control_initial_triangles", + "body": "def _control_initial_triangles(self, xp):\n \"\"\"The phase-2 main path: the flat (3N, 2) per-triangle table, no table attached.\"\"\"\n return _coordinate_array.CoordinateArrayTriangles.for_limits_and_scale(\n y_min=self.y_min, y_max=self.y_max, x_min=self.x_min, x_max=self.x_max, scale=self.scale\n )\n", + "bytecode_sha256": "decd881cb4e376c8" + }, + "table_factory": { + "name": "_table_initial_triangles", + "body": "def _table_initial_triangles(kind):\n def initial_triangles(self, xp):\n tables = _cell_tables(*_geometry(self))\n return _TableTriangles(\n coordinates=jnp.array(tables[\"coordinates\"]),\n side_length=self.scale,\n table=tables[kind],\n )\n\n initial_triangles.__name__ = f\"_{kind}_initial_triangles\"\n return initial_triangles\n", + "bytecode_sha256": "a522215e23585923" + }, + "tables": { + "name": "_cell_tables", + "body": "@functools.lru_cache(maxsize=16)\ndef _cell_tables(y_min, y_max, x_min, x_max, scale) -> dict:\n \"\"\"``{\"exact\": (V, I), \"lattice\": (V, I), \"coordinates\": C}`` for one geometry.\"\"\"\n t0 = time.perf_counter()\n coordinates = _lattice_coordinates(y_min, y_max, x_min, x_max, scale)\n flip = np.where((coordinates[:, 0] + coordinates[:, 1]) % 2 != 0, -1, 1)[:, None]\n scaling = np.array([0.5 * scale, HEIGHT_FACTOR * scale])\n centres = scaling * coordinates + np.array([0.0, 0.0])\n triangles = np.stack(\n (\n centres + flip * np.array([0.0, 0.5 * scale * HEIGHT_FACTOR]),\n centres + flip * np.array([0.5 * scale, -0.5 * scale * HEIGHT_FACTOR]),\n centres + flip * np.array([-0.5 * scale, -0.5 * scale * HEIGHT_FACTOR]),\n ),\n axis=1,\n )\n flat = triangles.reshape(-1, 2)\n\n exact_vertices, exact_inverse = np.unique(flat, axis=0, return_inverse=True)\n\n offsets = np.array([[0, 1], [1, -1], [-1, -1]])\n keys = np.stack(\n (\n coordinates[:, None, 0] + flip * offsets[None, :, 0],\n 2 * coordinates[:, None, 1] + flip * offsets[None, :, 1],\n ),\n axis=-1,\n ).reshape(-1, 2)\n _, first, lattice_inverse = np.unique(keys, axis=0, return_index=True, return_inverse=True)\n\n tables = {\n \"coordinates\": coordinates,\n \"exact\": (exact_vertices, exact_inverse.reshape(-1, 3)),\n \"lattice\": (flat[first].copy(), lattice_inverse.reshape(-1, 3)),\n }\n _TABLE_BUILD_S[(y_min, y_max, x_min, x_max, scale)] = time.perf_counter() - t0\n return tables\n", + "bytecode_sha256": "3b7bdf752e1994f7" + }, + "table_triangles": { + "body": "class _TableTriangles(_coordinate_array.CoordinateArrayTriangles):\n \"\"\"The library lattice with a cell-supplied ``(vertices, indices)`` table.\n\n Only ``_vertices_and_indices`` changes; every derived lattice is built as the base\n class by the library's own methods, so steps >= 1 are untouched.\n \"\"\"\n\n def __init__(self, coordinates, side_length, table):\n super().__init__(coordinates=coordinates, side_length=side_length)\n self._cell_table = table\n\n @property\n def _vertices_and_indices(self):\n vertices, indices = self._cell_table\n return jnp.asarray(vertices), jnp.asarray(indices)\n", + "bytecode_sha256": "6308d3338aa3791a" + } + }, + "body_provenance_captured": "import time", + "expected_step0_rows": { + "simple": { + "geometry": [ + -9.9, + 9.9, + -9.9, + 9.9, + 0.2 + ], + "n_triangles": 23283, + "rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + } + }, + "cluster": { + "geometry": [ + -69.64999999999999, + 69.64999999999999, + -69.64999999999999, + 69.64999999999999, + 0.7 + ], + "n_triangles": 92169, + "rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + } + } + }, + "tables": { + "simple": { + "cell_build_ms": 122.63530000200262, + "cell_cache_hit_us": 1.0000003385357559, + "exact_table_mb": 1.017432, + "lattice_table_mb": 0.748536, + "library_static_vertex_table": { + "build_ms": 129.5334999995248, + "cache_hit_us": 2.5000008463393897, + "rows": 11859, + "mb": 0.748536, + "equals_cell_lattice_table": true + } + }, + "cluster": { + "cell_build_ms": 564.997500001482, + "cell_cache_hit_us": 0.9999967005569488, + "exact_table_mb": 3.973416, + "lattice_table_mb": 2.956312, + "library_static_vertex_table": { + "build_ms": 346.58109999872977, + "cache_hit_us": 2.4000000848900527, + "rows": 46516, + "mb": 2.956312, + "equals_cell_lattice_table": true + } + } + }, + "device": { + "backend": "cpu", + "device": "cpu:0", + "hostname": "DESKTOP-H143S82", + "xla_flags": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "omp_num_threads": "1", + "cpu_count": 8, + "jax_compilation_cache_dir": null, + "autotune_cache_entries_at_start": 0, + "cache_fresh": false + }, + "jax_devices": [ + "cpu:0" + ], + "machine": { + "cpu_model": "Intel(R) Core(TM) i9-10885H CPU @ 2.40GHz", + "cpu_count_os": 8, + "nproc": 1, + "nproc_all": 8, + "nproc_note": "GNU nproc honours OMP_NUM_THREADS, so `nproc` can print 1 on a multi-core host; `nproc_all` is the core count.", + "ram_total": "16392692 kB", + "kernel": "5.10.16.3-microsoft-standard-WSL2", + "platform": "Linux-5.10.16.3-microsoft-standard-WSL2-x86_64-with-glibc2.35", + "python": "3.12.10", + "jax_thread_env": { + "NPROC": "8" + }, + "blas_thread_env": { + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1", + "VECLIB_MAXIMUM_THREADS": "1", + "NUMEXPR_NUM_THREADS": "1" + }, + "thread_env_note": "NPROC sizes XLA's CPU intra-op pool (the JAX rows); the BLAS knobs pin OpenBLAS/MKL/OpenMP (the numpy/scipy rows) and do not touch JAX. Two disjoint families; both are recorded on every CPU timing.", + "gpu": "NVIDIA GeForce RTX 2060 with Max-Q Design, 6144 MiB, 580.97" + }, + "thread_environment": { + "NPROC": "8", + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1" + }, + "xla_threads_observed_after_first_compile": { + "threads": 42, + "label": "simple_solved/control" + }, + "threads_at_end": 42, + "sched_affinity": 8, + "os_cpu_count": 8, + "xla_flags": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "jax_platforms": "cpu", + "jax_enable_x64": true, + "loadavg_start": [ + 2.07568359375, + 1.8193359375, + 1.59716796875 + ], + "loadavg_end": [ + 5.87451171875, + 4.4521484375, + 3.07080078125 + ], + "protocol": { + "routes": [ + "control", + "exact", + "lattice", + "library" + ], + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "n_stream": 16, + "n_gate_instances": 3, + "vmap_batch": 4, + "instance_seed": 568, + "instance_stream": "entry 0 = prior medians; rest = vector_from_unit_vector(U(0.25,0.75))", + "argument": "physical parameter vector; instance_from_vector(xp=jnp) inside the trace", + "cache_trap_guard": "fresh closure + fresh solver/analyses per route; jax.clear_caches()", + "bootstrap": { + "samples": 2000, + "seed": 12345, + "interval": "90%" + }, + "gates": { + "log_likelihood_rtol": 1e-12, + "positions_atol": 1e-10, + "grad_rtol": 1e-10, + "grad_atol": 1e-12, + "vmap_rtol": 1e-12, + "cluster": "log-likelihood and positions only (no cluster grad/vmap/step-0 sets)" + }, + "pytrees": "autofit.jax.register_model(model) for every model before any trace" + }, + "free_parameters": { + "simple_solved": 5, + "simple_plain": 8, + "cluster_solved": 13, + "cluster_plain": 17 + }, + "model_configuration": { + "simple": { + "dataset": "dataset/point_source/simple/point_dataset_positions_only.json", + "solver_grid_shape": [ + 100, + 100 + ], + "solver_grid_pixel_scale": 0.2, + "solver_pixel_scale_precision": 0.001, + "magnification_threshold": 0.1, + "likelihoods": { + "solved": "FitPositionsImagePairAllSolved", + "plain": "FitPositionsImagePairAll" + } + }, + "cluster": { + "dataset": "dataset/cluster/simple/point_datasets.csv", + "n_systems": 2, + "n_mass_profiles": 13, + "solver_grid_shape": [ + 200, + 200 + ], + "solver_grid_pixel_scale": 0.7, + "solver_pixel_scale_precision": 0.01, + "source_centres_from": "back-traced observed-image centroids (cluster cell step 1)", + "likelihoods": { + "solved": "FitPositionsImagePairRepeatSolved (summed over systems)", + "plain": "FitPositionsImagePairRepeat (summed over systems)" + } + } + }, + "library_label": { + "per_row": { + "simple_solved": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "simple_solved_vmap4": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "simple_plain": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "cluster_solved": { + "library_step0_rows": [ + 46516 + ], + "expected_rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [] + }, + "cluster_plain": { + "library_step0_rows": [ + 46516 + ], + "expected_rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [] + } + }, + "library_matches": "lattice" + }, + "library_matches": "lattice", + "all_gates_pass": true, + "gate_summary": { + "simple_solved.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_positions.control_vs_exact": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_positions.control_vs_lattice": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_positions.control_vs_library": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_grad.control_vs_exact": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_grad.control_vs_lattice": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_grad.control_vs_library": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.control": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.exact": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.lattice": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.library": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_plain_step0_containing.control_vs_exact": { + "pass": true + }, + "simple_plain_step0_containing.control_vs_lattice": { + "pass": true + }, + "simple_plain_step0_containing.control_vs_library": { + "pass": true + }, + "cluster_solved_positions.control_vs_exact": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "cluster_solved_positions.control_vs_lattice": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "cluster_solved_positions.control_vs_library": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + } + }, + "rows": { + "simple_solved": { + "label": "simple_solved", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 7.857599997805664, + 9.398700000019744, + 7.893400001194095, + 6.959599999390775, + 7.774999998218846, + 7.4520000016491394, + 7.1446000001742505, + 6.0908000014023855, + 6.58829999883892, + 6.287600001087412, + 6.033299996488495, + 7.45920000190381, + 6.349399998725858, + 8.065300000453135, + 6.098900001234142, + 6.428200002119411, + 5.993599999783328, + 5.992399997921893, + 6.160400000226218, + 5.991800000629155, + 6.297100000665523, + 6.1429000015778, + 6.033600002410822, + 5.987799999275012, + 5.952299998170929, + 6.122700000560144, + 5.876499999430962, + 6.076200003008125, + 6.441200002882397, + 6.589500000700355, + 6.443300000682939, + 6.323199999314966, + 5.939300001045922, + 6.019100001140032, + 6.1067000024195295, + 5.935699999099597, + 6.200600000738632, + 5.938500002230285, + 5.965699998341734, + 5.919300001551164, + 6.30520000049728, + 6.6699999988486525, + 6.409400000848109, + 6.059100000129547, + 6.135600000561681, + 6.143899998278357, + 6.011699999362463, + 5.987000000459375, + 6.038699997588992, + 6.071399999200366, + 6.335400001262315, + 5.238699999608798, + 5.735200000344776, + 5.105700001877267, + 5.300100001477404, + 5.232100000284845, + 5.239800000708783, + 5.32290000046487, + 5.089800000860123, + 5.268600001727464, + 8.766099999775179, + 7.613000001583714, + 7.763600002363091, + 7.776099999318831, + 7.566599997517187, + 7.271900001796894, + 7.46889999936684, + 7.256500000949018, + 7.646800000657095, + 7.305300001462456, + 7.3427999996056315, + 7.261900002049515, + 7.837500001187436, + 7.484399997338187, + 7.594999999128049, + 7.510400002502138, + 7.4561999972502235, + 7.4724000005517155, + 7.389999998849817, + 7.417900000291411, + 8.75380000070436, + 9.178300002531614, + 8.980099999462254, + 8.776899998338195, + 8.699600002728403, + 8.848800000123447, + 9.277400000428315, + 8.714799998415401, + 8.757399999012705, + 8.614099999249447, + 8.667100002639927, + 8.513699998729862, + 8.57920000271406, + 8.84790000054636, + 8.600500001193723, + 8.615300001110882, + 8.817800000542775, + 8.793900000455324, + 8.651699998154072, + 8.94019999759621, + 5.724099999497412, + 5.756899998232257, + 5.831300000863848, + 5.727800002205186, + 5.756700000347337, + 5.983700000797398, + 5.551600002945634, + 5.243299998255679, + 5.515099997865036, + 8.241899999120506, + 5.54569999803789, + 5.634000001009554, + 5.631899999571033, + 5.381900002248585, + 5.556100000831066, + 5.58169999931124, + 5.565100000239909, + 5.431599998701131, + 5.432899997686036, + 5.308899999363348, + 5.36640000063926, + 5.242499999440042, + 5.2977000013925135, + 5.27910000164411, + 5.106000000523636, + 5.417999997007428, + 5.573099999310216, + 5.883599998924183, + 5.77530000009574, + 5.6330999977944884, + 7.449000000633532, + 6.359099999826867, + 5.8352999985800125, + 5.345599998690886, + 5.730000000767177, + 5.4270000000542495, + 7.719600002019433, + 5.777200000011362, + 5.479199997353135, + 5.655199998727767, + 5.295199996908195, + 5.4270000000542495, + 5.365100001654355, + 5.260900001303526, + 5.260900001303526, + 5.3520000001299195, + 5.328400002326816, + 6.117600001743995, + 5.348399998183595, + 5.701299996871967, + 7.298000000446336, + 6.12869999895338, + 6.05100000029779, + 8.916999999200925, + 6.127399999968475, + 8.616099999926519, + 7.778299997880822, + 9.714600000734208, + 9.332500001619337, + 7.950200000777841, + 5.389100002503255, + 4.855200000747573, + 4.858000000240281, + 5.159600001206854, + 5.13640000281157, + 5.254200001218123, + 5.483400000230176, + 5.479999999806751, + 5.287700001645135, + 5.327200000465382, + 5.514299999049399, + 5.361900002753828, + 5.358300000807503, + 5.371800001739757, + 5.362399999285117, + 5.241800001385855, + 8.456399998976849, + 5.564999999478459, + 5.606599999737227, + 5.474199999298435, + 7.222099997306941, + 5.754799996793736, + 5.758299997978611, + 5.481099997268757, + 5.478600000060396, + 5.561999998462852, + 5.467799997859402, + 5.404300001828233, + 5.689099998562597, + 5.686900000000605, + 5.711699999665143, + 5.663600000843871, + 5.8392999999341555, + 5.701899997802684, + 6.003899998177076, + 6.053100001736311, + 5.9245999982522335, + 5.960700000287034, + 5.857199997990392, + 5.860500001290347, + 5.366899997170549, + 5.295899998600362, + 5.565999999816995, + 5.316900002071634, + 5.34940000216011, + 5.217800000536954, + 5.123999999341322, + 5.1624999978230335, + 5.062000000179978, + 5.098400000861147, + 5.131300000357442, + 5.361700001230929, + 5.131199999595992, + 8.717099997738842, + 5.436399998870911, + 5.874399997992441, + 6.330100000923267, + 5.458699997689109, + 5.558700002438854, + 6.586100000276929, + 5.303099998855032, + 5.555899999308167, + 5.377499997848645, + 5.3076999975019135, + 5.485599998792168, + 5.658199999743374, + 5.484799999976531, + 5.755599999247352, + 5.806400000437861, + 9.12619999871822, + 5.798599999252474, + 5.729000000428641, + 6.872799996926915, + 6.595200000447221, + 5.916300000535557, + 5.951300001470372, + 6.176700000651181, + 6.147299998701783, + 7.037499999569263, + 6.420199999411125, + 5.815200001961784, + 5.895299997064285, + 5.911799999012146, + 5.636899997625733, + 5.441000001155771, + 5.249300000286894, + 5.474400000821333, + 5.512700001418125, + 5.414299997937633, + 5.64719999965746, + 5.652300002111588, + 5.551900001592003, + 5.740800002968172, + 5.549900000914931, + 5.3989000007277355, + 5.307700001139892, + 5.698999997548526, + 5.834800002048723, + 5.644000000756932, + 5.512200001248857, + 6.332099997962359, + 8.288399996672524, + 5.771800002548844, + 6.085899996833177, + 6.1014000020804815, + 6.480000000010477, + 9.149299999990035, + 6.51070000094478, + 6.670099999610102, + 6.468999999924563, + 8.636099999421276, + 6.219599999894854, + 6.410400001186645, + 6.576899999345187, + 9.756999999808613, + 9.808200000406941, + 6.576799998583738, + 6.493500000942731, + 9.702700001071207, + 9.718299999804003, + 7.4418999975023326, + 6.240800001251046, + 5.530300000827992, + 9.312999998655869, + 5.9078999984194525, + 6.865999999718042, + 5.798700000013923, + 6.005800001730677, + 5.8829999979934655, + 5.96399999994901, + 6.0088999998697545, + 6.15490000200225, + 6.147500000224682, + 6.385499997122679, + 6.350999999995111, + 6.136800002423115, + 6.242100000235951, + 6.202000000484986, + 7.046200000331737, + 7.351500000368105, + 7.499499999539694, + 5.46570000005886, + 5.675299998983974, + 33.22990000015125, + 15.599800000927644, + 6.520000002637971, + 43.76580000098329, + 5.427399999462068, + 6.2923999976192135, + 5.9432000016386155, + 5.285299997922266, + 5.148299998836592, + 5.635500001517357, + 44.437000000471016, + 5.0282000011065975, + 25.417999997443985, + 26.76439999777358, + 9.492799999861745, + 5.54539999939152, + 6.141699999716366, + 5.9815999993588775, + 5.489299997861963, + 6.352699998387834, + 7.150199999159668, + 6.166200000734534, + 5.893000001378823, + 5.864599999767961, + 6.143200000224169, + 6.439299999328796, + 7.826600001862971, + 6.011399997078115, + 6.487700000434415, + 6.098400001064874, + 8.990199999971082, + 6.644100001722109, + 6.13609999709297, + 6.3824999997450504, + 6.443900001613656, + 6.96060000336729, + 6.368700000166427, + 5.219599999691127, + 5.176500002562534, + 7.347200000367593, + 8.142300001054537, + 5.2687999996123835, + 5.433399997855304, + 5.576600000495091, + 5.520399998204084, + 5.935599998338148, + 5.685200001607882, + 6.649599999946076, + 8.098800000880146, + 6.156200000987155, + 5.929000002652174, + 7.364699999016011, + 5.685300002369331, + 5.810000002384186, + 5.679599998984486, + 5.70030000017141, + 5.532399998628534, + 5.718500000511995, + 5.572699999902397, + 5.6011000015132595, + 5.637599999317899, + 5.821900002047187, + 5.525600001419662, + 5.501299998286413, + 5.831700000271667, + 5.5514999985462055, + 5.543600000237348, + 5.570900000748225, + 5.639999999402789, + 5.47779999760678, + 5.417599997599609, + 5.546299998968607, + 5.580500001087785, + 5.503799999132752, + 5.566200001339894, + 5.506000001332723, + 5.630899999232497, + 5.751699998654658, + 5.3560000014840625, + 5.326000002241926, + 5.512100000487408, + 5.267199998343131, + 5.492399999639019, + 5.574800001340918, + 5.355499997676816, + 5.632399999740301, + 5.462600001919782, + 5.266899999696761, + 5.941499999607913, + 5.804199998237891, + 6.051699998351978, + 6.112300001404947, + 6.048999999620719, + 6.169899999804329, + 5.762199998571305, + 5.834100000356557, + 5.993300001136959 + ], + "exact": [ + 4.124400002183393, + 4.314999998314306, + 4.2656999976316, + 4.218699999910314, + 4.218599999148864, + 4.15179999981774, + 4.280100001778919, + 4.222999999910826, + 4.214099997625453, + 4.632199998013675, + 4.337399997893954, + 4.2611000026226975, + 4.231200000504032, + 4.19049999982235, + 4.229500002111308, + 4.153000001679175, + 4.158899999310961, + 4.346500001702225, + 4.306900002120528, + 4.36239999908139, + 4.308600000513252, + 4.373200001282385, + 4.45910000053118, + 4.613699999026721, + 4.380599999421975, + 4.331100000854349, + 4.288399999495596, + 4.122100002859952, + 4.256199998053489, + 4.158600000664592, + 4.291299999749754, + 4.547299999103416, + 4.611800002749078, + 4.4181999983266, + 4.20020000092336, + 4.291000001103384, + 4.235199998220196, + 4.32830000136164, + 4.171399999904679, + 4.409599998325575, + 3.9849999993748497, + 3.6342999992484692, + 3.643000000010943, + 3.76700000197161, + 3.85900000037509, + 3.6432999986573122, + 3.8787000012234785, + 3.9467999995395076, + 5.0694999990810174, + 4.050999999890337, + 3.9593000001332257, + 3.9782999992894474, + 3.789500002312707, + 3.645599997980753, + 3.5586000012699515, + 3.5838000003423076, + 4.326700000092387, + 3.640899998572422, + 3.5545999999158084, + 3.7656000022252556, + 5.365599998185644, + 5.239300000539515, + 5.054599998402409, + 5.277899999782676, + 5.145600000105333, + 5.261900001642061, + 6.04380000004312, + 5.420299999968847, + 5.2937000000383705, + 7.845000000088476, + 5.505099998117657, + 5.146800001966767, + 5.7608999995864, + 6.106200002250262, + 6.173900001158472, + 6.006999999954132, + 5.975899999612011, + 6.313699999736855, + 6.436700001358986, + 6.509899998491164, + 9.55900000190013, + 6.081200001062825, + 6.383099997037789, + 6.657399997493485, + 6.602400000701891, + 6.183699999382952, + 6.3702999977977015, + 5.833799998072209, + 5.992100002913503, + 6.295099999988452, + 5.76079999882495, + 6.081600000470644, + 6.108300000050804, + 6.3016999993124045, + 6.271899997955188, + 6.310500000836328, + 6.309300002612872, + 6.158500000310596, + 6.259699999645818, + 6.051600001228508, + 4.216099998302525, + 4.2681999984779395, + 4.417200001626043, + 4.471899999771267, + 4.566399999021087, + 4.298600000765873, + 4.4471999972302, + 4.329800001869444, + 4.375199998321477, + 4.252499998983694, + 4.229599999234779, + 4.399600002216175, + 4.799600003025262, + 4.439300002559321, + 4.175800000666641, + 4.010599997855024, + 3.9581999990332406, + 4.391099999338621, + 4.106100001081359, + 4.176799997367198, + 3.756099999009166, + 3.740799998922739, + 3.8471000007120892, + 3.67769999866141, + 3.8032000011298805, + 3.689099998155143, + 3.6574000005202834, + 3.611099997215206, + 3.686699998070253, + 3.7582000004476868, + 3.780800001550233, + 3.7077999986649957, + 3.6020000006828923, + 3.714000002219109, + 3.7328000034904107, + 3.99459999971441, + 3.8199000009626616, + 3.930999999283813, + 3.8050000002840534, + 3.6776000015379395, + 4.126799998630304, + 4.277900003216928, + 4.157799998210976, + 4.195699999399949, + 3.928400001314003, + 3.867399998853216, + 4.103800001757918, + 3.9322000011452474, + 4.026800001156516, + 3.9672000020800624, + 4.183500001090579, + 4.069300000992371, + 4.098100002011051, + 3.8760999996156897, + 4.126800002268283, + 3.99459999971441, + 3.9838999982748646, + 3.9044000004651025, + 4.151099998125574, + 4.198700000415556, + 3.878800001984928, + 3.968100001657149, + 4.48569999934989, + 3.8913999997021165, + 3.876700000546407, + 3.9818000004743226, + 4.0026999995461665, + 4.030699998111231, + 3.807000000961125, + 3.823200000624638, + 4.034900000988273, + 3.99479999759933, + 3.9906000019982457, + 3.9117999986046925, + 3.9620000025024638, + 4.126199997699587, + 4.056599998875754, + 4.368800000520423, + 3.7849000000278465, + 3.9776000012352597, + 4.453900000953581, + 4.723400001239497, + 4.7081000011530705, + 4.532899998594075, + 4.37919999967562, + 4.423399997904198, + 4.5979000024090055, + 4.649000002245884, + 4.2930999989039265, + 4.353299998911098, + 4.652399999031331, + 4.700500001490582, + 4.651999999623513, + 6.6373999979987275, + 4.44950000019162, + 4.46390000070096, + 4.663700001401594, + 4.459899999346817, + 4.5286999993550126, + 4.5695000007981434, + 3.7962999995215796, + 3.8329000017256476, + 3.900600000633858, + 4.201899999316083, + 4.01140000030864, + 3.9451999982702546, + 4.284299997380003, + 3.8507999997818843, + 3.829199999017874, + 3.7757000027340837, + 3.7080000001878943, + 3.6815999992541037, + 3.676399999676505, + 3.862699999444885, + 3.796699998929398, + 3.863500001898501, + 4.004800000984687, + 3.7921000002825167, + 3.686200001538964, + 3.8105999992694706, + 4.256500000337837, + 4.905600002530264, + 4.4643000001087785, + 4.438399999344256, + 4.5592000024043955, + 4.213799998979084, + 4.385000000183936, + 4.345700002886588, + 4.271800000424264, + 4.336999998486135, + 4.57040000037523, + 4.283500002202345, + 4.238599998643622, + 4.3361000025470275, + 4.486500001803506, + 4.2514999986451585, + 4.2281999994884245, + 4.288200001610676, + 4.38909999866155, + 4.209599999740021, + 3.9453999997931533, + 3.974199997173855, + 3.868300002068281, + 4.0006000017456245, + 3.812799997831462, + 3.781299998081522, + 3.811200000200188, + 4.008100000646664, + 4.1515999982948415, + 4.2728000007628, + 4.363999996712664, + 4.634900000382913, + 4.0638999998918734, + 4.143199999816716, + 4.028899998957058, + 4.03829999777372, + 3.9939999987836927, + 3.836399999272544, + 3.997499999968568, + 3.889399999025045, + 4.350999999587657, + 4.25090000135242, + 4.230400001688395, + 4.244499999913387, + 4.381399998237612, + 4.384600000776118, + 4.303300000174204, + 4.487499998504063, + 3.9395999992848374, + 4.034099998534657, + 4.016599999886239, + 4.049199997098185, + 4.030600000987761, + 3.99219999962952, + 4.049999999551801, + 3.966000000218628, + 3.957500000979053, + 4.153099998802645, + 4.0499000024283305, + 3.966299998864997, + 4.621099997166311, + 6.961000002775108, + 4.439899999852059, + 4.364300002634991, + 4.419299999426585, + 4.471000000194181, + 4.608100000041304, + 4.579199998261174, + 4.484799999772804, + 4.4875999992655125, + 4.494700002396712, + 4.9539999999979045, + 41.93990000203485, + 3.8389000001188833, + 3.755599998839898, + 4.9543000022822525, + 3.605900001275586, + 42.673700001614634, + 3.9357000023301225, + 3.939800000807736, + 4.079800000909017, + 3.815800002485048, + 3.799900001467904, + 3.806999997323146, + 4.003099998953985, + 3.742299999430543, + 3.6212999984854832, + 3.583599998819409, + 3.5346999975445215, + 4.156800001510419, + 3.793300002143951, + 3.888599996571429, + 4.0140999990399, + 5.413099999714177, + 3.8028999988455325, + 3.559500000847038, + 3.3177000004798174, + 3.6213999992469326, + 3.5819000004266854, + 3.628899998147972, + 4.518400000961265, + 4.424999999173451, + 4.603100001986604, + 4.5625999991898425, + 4.39130000086152, + 4.652299998269882, + 4.284000002371613, + 4.574899998260662, + 4.271100002370076, + 5.060600000433624, + 4.6857999986968935, + 4.465400001208764, + 4.421199999342207, + 4.4716999982483685, + 4.418600001372397, + 4.473800003324868, + 5.09520000196062, + 4.699099998106249, + 4.302800000004936, + 4.194099998130696, + 3.972299997258233, + 3.895999998348998, + 4.002900001069065, + 3.8004999987606425, + 3.850199998851167, + 3.7683999980799854, + 3.7196999983279966, + 3.7374999992607627, + 3.6934999989171047, + 3.681700000015553, + 3.8226999968173914, + 3.6586999995051883, + 3.5171999988961034, + 4.063799999130424, + 3.548399999999674, + 3.671099999337457, + 3.6583000000973698, + 3.6212000013620127, + 3.591299999243347, + 3.6032999996677972, + 4.333300003054319, + 4.460199997993186, + 4.9206000003323425, + 4.9446999983047135, + 4.899600000499049, + 5.271300000458723, + 4.776899997523287, + 4.73019999844837, + 5.06880000102683, + 5.071800002042437, + 4.8683999993954785, + 5.015000002458692, + 3.775200002564816, + 3.6068000008526724, + 3.599300001951633, + 3.4327000030316412, + 3.6189999991620425, + 3.556100000423612, + 3.322399999888148, + 3.581000000849599, + 4.3191000004298985, + 4.181700001936406, + 4.153000001679175, + 4.298100000596605, + 4.09149999904912, + 4.339899998740293, + 4.241599999659229, + 4.373199997644406, + 4.067300000315299, + 4.365199998574099, + 4.310899999836693, + 4.467599999770755, + 4.008100000646664, + 4.187400001683272, + 4.091599999810569, + 4.064900000230409, + 4.105299998627743, + 4.02849999954924, + 4.188700000668177, + 4.148899999563582 + ], + "lattice": [ + 3.1197999996948056, + 3.2414000015705824, + 3.085199998167809, + 3.0794999984209426, + 3.1612999991921242, + 3.1387999988510273, + 3.1764999985171016, + 3.1964000008883886, + 3.057900001294911, + 3.031899999768939, + 3.1407000024046283, + 3.142099998513004, + 3.0942999983381014, + 3.206800000043586, + 3.2796000014059246, + 3.1287999991036486, + 3.1052000013005454, + 3.2863999986147974, + 3.1081000015547033, + 2.956399999675341, + 3.219100002752384, + 3.2293999975081533, + 3.1807000013941433, + 3.15509999927599, + 3.1856999994488433, + 3.014399997482542, + 3.118900000117719, + 3.0434000000241213, + 4.216100001940504, + 3.529499997966923, + 3.27859999742941, + 3.347300000314135, + 3.2906999986153096, + 3.304100002424093, + 3.0597999975725543, + 3.0679000010422897, + 3.2495999985258095, + 3.109799999947427, + 3.081300001213094, + 3.1369999996968545, + 3.233400002500275, + 3.211600000213366, + 3.149100000882754, + 3.1477000011364, + 3.227199998946162, + 3.1534000008832663, + 3.159400002914481, + 3.1110000018088613, + 3.1942000023263972, + 3.3618999987083953, + 3.1077999992703553, + 3.115899999102112, + 3.1611000013072044, + 3.209000002243556, + 3.4230999990541022, + 3.3992999997281004, + 3.368000001501059, + 3.1751999995321967, + 3.1436000026587863, + 3.0635999974037986, + 4.5499000007112045, + 4.69610000072862, + 4.776300000230549, + 4.896200000075623, + 4.7464999988733325, + 4.716700001154095, + 4.486099998757709, + 4.406500000186497, + 4.640399998606881, + 4.476800000702497, + 4.617000002326677, + 4.848399999900721, + 4.980599998816615, + 4.7204999973473605, + 4.355299999588169, + 4.612500000803266, + 4.659300000639632, + 4.440999997314066, + 4.5935999987705145, + 4.427399999258341, + 4.6588000004703645, + 4.747599999973318, + 4.47149999672547, + 4.515799999353476, + 4.7868000001471955, + 4.747500002849847, + 4.496499997912906, + 4.622000000381377, + 4.459499999938998, + 4.411099998833379, + 4.585099999530939, + 4.700099998444784, + 4.38870000289171, + 4.382499999337597, + 4.797699999471661, + 5.069100003311178, + 4.823999999644002, + 4.84889999643201, + 5.0486000000091735, + 4.652100000384962, + 2.792899998894427, + 3.0211999983293936, + 2.983700000186218, + 3.4670000022742897, + 2.8550999995786697, + 2.748899998550769, + 2.7306000010867137, + 2.7636000013444573, + 2.8502999994088896, + 3.213700001651887, + 3.029300001799129, + 3.052899999602232, + 2.97359999967739, + 3.074600001127692, + 3.3289000020886306, + 3.11639999927138, + 2.9747999979008455, + 3.069100002903724, + 3.03140000323765, + 3.1028000012156554, + 2.852000001439592, + 2.845700000762008, + 2.79690000024857, + 2.7995000018563587, + 2.850699998816708, + 2.775899996777298, + 2.861299999494804, + 2.8114000015193596, + 2.7484999991429504, + 2.844099999492755, + 2.9179999983171, + 2.7766000021074433, + 2.963599999930011, + 2.9596999993373174, + 3.1196999989333563, + 3.530900001351256, + 3.148799998598406, + 3.0150999991747085, + 3.846199997497024, + 2.855499998986488, + 3.0860999977448955, + 3.153300000121817, + 3.1090000011317898, + 3.0647000021417625, + 3.046800000447547, + 3.189300001395168, + 2.8872000002593268, + 3.143699999782257, + 3.1108000002859626, + 3.0923000012990087, + 3.0488000011246186, + 2.783700001600664, + 2.9634999991685618, + 2.660400001332164, + 2.487699999619508, + 2.5172000023303553, + 2.577200000814628, + 2.419100001134211, + 2.59369999912451, + 2.3486999998567626, + 3.0659999974886887, + 3.0035000017960556, + 4.155300001002615, + 3.0369000014616176, + 2.931800001533702, + 2.8695999972114805, + 2.824800001690164, + 2.873200002795784, + 2.942400002211798, + 2.8502999994088896, + 2.8151000005891547, + 2.8873999981442466, + 3.072200001042802, + 2.97839999984717, + 2.9749000023002736, + 3.1357000007119495, + 2.840600001945859, + 3.140600001643179, + 2.995099999679951, + 3.005200000188779, + 3.7582999975711573, + 3.490099999908125, + 3.6099999997531995, + 3.467800001089927, + 3.112999998847954, + 3.2909000001382083, + 5.023800000344636, + 3.4864999979618005, + 3.03169999824604, + 3.2506999996257946, + 3.0803000008745585, + 3.069300000788644, + 3.939500002161367, + 3.033799999684561, + 4.559799999697134, + 3.637400001025526, + 3.0709999991813675, + 3.054000000702217, + 2.948699999251403, + 3.1411999989359174, + 3.2056000018201303, + 3.0100999974820297, + 2.7740000004996546, + 2.9890999976487365, + 2.8413000000000466, + 2.8710000005958136, + 2.8966999998374376, + 2.918800000770716, + 3.0617000011261553, + 2.917000001616543, + 2.9871000006096438, + 2.8868999979749788, + 2.9696000019612256, + 2.915600001870189, + 3.078900001128204, + 2.8740999987348914, + 3.043900000193389, + 3.1103000001166947, + 3.1187000022327993, + 3.041199997824151, + 3.088400000706315, + 2.979000000777887, + 3.0179999994288664, + 2.9568000027211383, + 2.904200002376456, + 2.800599999318365, + 2.843600002961466, + 3.047599999263184, + 3.281799999967916, + 3.1414999975822866, + 3.052799998840783, + 2.977299998747185, + 3.682200000184821, + 4.042299999127863, + 3.1726999986858573, + 3.259600001911167, + 3.0810999996901955, + 3.0743999996047933, + 3.309399999125162, + 3.2265999980154447, + 2.896499998314539, + 2.965399999084184, + 3.8702000019839033, + 3.8812999991932884, + 3.155200000037439, + 2.870299998903647, + 2.8464000024541747, + 3.1278000024030916, + 4.111199999897508, + 3.044400000362657, + 2.9080999993311707, + 3.1162999985099304, + 3.0893000002834015, + 3.2261000014841557, + 3.098199998930795, + 2.916699999332195, + 3.081999999267282, + 3.0702000003657304, + 3.028499999345513, + 3.0495999999402557, + 3.1166000007942785, + 3.026399997906992, + 2.9162999999243766, + 3.0784000009589363, + 3.1094000005396083, + 3.002199999173172, + 3.0293999989225995, + 2.974899998662295, + 2.9668999995919876, + 3.1468000015593134, + 3.022599998075748, + 4.080799997609574, + 2.814700001181336, + 2.680499997950392, + 2.76799999846844, + 3.8089999980002176, + 2.965700001368532, + 2.7391999974497594, + 4.104499999812106, + 2.93969999984256, + 3.492200001346646, + 5.2018000023963396, + 3.5084999981336296, + 5.32549999843468, + 3.3588000005693175, + 4.7448999976040795, + 3.3489999987068586, + 3.3513999987917487, + 3.386000000318745, + 3.33659999887459, + 3.378000001248438, + 3.5672999983944464, + 3.213700001651887, + 3.338500002428191, + 3.7730000003648456, + 3.6308999988250434, + 3.3320000002277084, + 3.359500002261484, + 3.340600000228733, + 3.347499998199055, + 2.7408999994804617, + 3.8539999986824114, + 3.188499998941552, + 2.8978000009374227, + 3.1963000001269393, + 3.1099999978323467, + 3.0425999975705054, + 2.828699998644879, + 2.8001999999105465, + 2.832699999999022, + 2.780200000415789, + 2.9866999975638464, + 3.006000002642395, + 2.9804000005242415, + 3.799900001467904, + 3.1691000003775116, + 3.241999998863321, + 2.980500001285691, + 3.050300001632422, + 2.8688000020338222, + 4.722199999378063, + 4.811800001334632, + 3.305599999293918, + 4.660099999455269, + 3.147200000967132, + 3.056100002140738, + 3.199099999619648, + 2.9659000028914306, + 2.8930000007676426, + 3.9916000023367815, + 3.114899998763576, + 2.90339999992284, + 2.918199999839999, + 2.7690000024449546, + 3.6368000000948086, + 2.8356999973766506, + 2.7976000019407365, + 2.887300001020776, + 2.955899999506073, + 3.0690000021422748, + 2.760100000159582, + 2.7506000005814712, + 2.906099998654099, + 2.6703000003180932, + 2.9887000018788967, + 4.374799998913659, + 3.1939999971655197, + 3.2142000018211547, + 3.371099999640137, + 3.3433999997214414, + 3.2688000028429087, + 3.3024000003933907, + 3.314399997179862, + 3.0627999985881615, + 2.928400001110276, + 2.8907999985676724, + 2.759499999228865, + 2.679500001249835, + 3.175599998940015, + 2.880899999581743, + 2.9462000020430423, + 2.9695000011997763, + 2.886700000090059, + 2.9080999993311707, + 3.1376999977510422, + 3.119100001640618, + 3.1103000001166947, + 2.961700000014389, + 2.9843999982404057, + 2.970699999423232, + 3.0064000020502135, + 2.9434999996738043, + 2.923000000009779, + 2.993600002810126, + 2.965099996799836, + 2.9299999987415504, + 3.010199998243479, + 2.9901999987487216, + 2.9073000005155336, + 2.889899998990586, + 3.2675999973434955, + 3.1510000007983763, + 3.039100000023609, + 3.2833000004757196, + 3.1041000002005603, + 3.0226000017137267, + 3.1043999988469295, + 3.1440999991900753, + 3.200499999366002, + 3.180100000463426, + 3.0608999986725394, + 3.256900003179908, + 3.1115999991015997, + 3.107399999862537, + 3.0499000022246037, + 3.120099998341175, + 3.1770000023243483, + 3.183699998771772, + 3.095600000960985, + 3.2358999997086357 + ], + "library": [ + 3.0672999964735936, + 3.114899998763576, + 3.156399998260895, + 3.239400000893511, + 3.4268999988853466, + 3.3968999996432103, + 3.375700001924997, + 3.656199998658849, + 3.197299996827496, + 3.028200000699144, + 3.185899997333763, + 3.129200002149446, + 3.2452000014018267, + 3.1725000008009374, + 3.3070999998017214, + 3.3468000001448672, + 3.1363999987661373, + 3.183300003001932, + 3.0955999973230064, + 3.0002999992575496, + 3.2465000003867317, + 3.1751999995321967, + 3.1546999998681713, + 3.0815999998594634, + 3.0996000023151282, + 3.142400000797352, + 3.4211000020150095, + 3.3699000014166813, + 3.4104999976989347, + 3.4034999989671633, + 3.286799998022616, + 3.4151999971072655, + 3.201999999873806, + 3.2393000001320615, + 3.0850000002828892, + 2.9887000018788967, + 3.4539000007498544, + 3.3777999997255392, + 3.3844999998109415, + 3.268000000389293, + 3.202400002919603, + 3.2824999980221037, + 3.069900001719361, + 3.2006000001274515, + 3.233400002500275, + 3.077000001212582, + 3.09209999977611, + 3.0667999999423046, + 3.114899998763576, + 3.228800000215415, + 3.120399996987544, + 3.075900000112597, + 3.15250000130618, + 3.138200001558289, + 3.151699998852564, + 3.109100001893239, + 3.0607000007876195, + 3.104799998254748, + 3.3648999997240026, + 3.094700001383899, + 2.9613000006065704, + 3.069300000788644, + 3.065900000365218, + 3.597399998398032, + 3.5932999999204185, + 3.65359999705106, + 3.3909000012499746, + 3.3795000017562415, + 3.4642999999050517, + 3.254799998103408, + 3.4698000017669983, + 3.4756999993987847, + 3.651500002888497, + 4.757299997436348, + 4.0466999998898245, + 3.8219999987632036, + 3.975199997512391, + 3.7709000025643036, + 4.059099999722093, + 3.8746999998693354, + 4.505599998083198, + 4.6029000004637055, + 4.466200000024401, + 4.530500002147164, + 4.774000000907108, + 4.774299999553477, + 5.160099997738143, + 4.30430000051274, + 6.045699999958742, + 3.156999999191612, + 3.0881999991834164, + 3.122599999187514, + 3.131800000119256, + 2.894399996876018, + 2.989199998410186, + 2.93230000170297, + 2.979199998662807, + 3.0191000005288515, + 2.9288000005180947, + 2.9331999976420775, + 3.0760000008740462, + 3.100300000369316, + 2.9876000007789116, + 3.3078999986173585, + 3.2086000028357375, + 2.9918000000179745, + 3.117799999017734, + 3.000900000188267, + 3.2189000012294855, + 2.9775000002700835, + 2.9921000023023225, + 2.9574000000138767, + 3.0386999969778117, + 3.616800000600051, + 3.01450000188197, + 2.961999998660758, + 2.916700002970174, + 2.9407000001810957, + 3.1591999977536034, + 3.166599999531172, + 4.419400000188034, + 4.131099998630816, + 2.911299998231698, + 4.014699999970617, + 3.200499999366002, + 4.2751000000862405, + 3.425699997023912, + 3.9034000001265667, + 3.239099998609163, + 3.388299999642186, + 2.9940000022179447, + 2.9982000014570076, + 4.461600001377519, + 3.409600001759827, + 3.193299999111332, + 2.932799998234259, + 2.7174999995622784, + 2.701500001421664, + 2.803300001687603, + 2.8007000000798143, + 2.9766999978164677, + 2.926199998910306, + 2.870600001187995, + 2.8980000024603214, + 2.868700001272373, + 2.7889999983017333, + 2.7055999998992775, + 2.8988000012759585, + 2.8177000021969434, + 2.814899999066256, + 2.7853999999933876, + 3.587600000173552, + 2.9676999984076247, + 2.8238000013516285, + 2.7790000021923333, + 2.8123999982199166, + 2.7590999998210464, + 2.736399997957051, + 2.9366999988269527, + 2.8265000000828877, + 3.079599999182392, + 3.046500001801178, + 2.9156999989936594, + 2.9864999996789265, + 3.280199998698663, + 3.1698999991931487, + 2.8157999986433424, + 3.0305000000225846, + 3.560900000593392, + 3.144799997244263, + 3.261199999542441, + 3.1907999982649926, + 3.1558000009681564, + 3.2090999993670266, + 3.558399999747053, + 3.3356999992975034, + 3.5659999994095415, + 4.15179999981774, + 3.5189000009268057, + 3.5506999993231148, + 3.1597999986843206, + 2.9601999995065853, + 2.9207999978098087, + 2.8625000013562385, + 4.322900000261143, + 2.962799997476395, + 2.8411999992385972, + 2.8931999986525625, + 2.8897999982291367, + 3.102500002569286, + 2.8718000030494295, + 2.8863000006822404, + 3.050300001632422, + 3.1187000022327993, + 3.168399998685345, + 3.123100002994761, + 2.962300000945106, + 2.914000000600936, + 2.8698999994958285, + 3.0078999989200383, + 2.9711999995925, + 3.0002999992575496, + 3.059200000279816, + 2.925400000094669, + 3.154099998937454, + 3.909799997927621, + 3.130299999611452, + 2.9772000016237143, + 2.9064999980619177, + 3.020600001036655, + 2.9377999999269377, + 2.8028999986418057, + 3.0111000014585443, + 2.9521000033128075, + 3.864000002067769, + 3.051800002140226, + 2.7671000025293324, + 2.8789000025426503, + 2.7981000021100044, + 2.931000002718065, + 2.9094000019540545, + 3.9459999970858917, + 3.1022999974084087, + 3.0454000007011928, + 3.015300000697607, + 2.919599999586353, + 2.823700000590179, + 2.687699998205062, + 2.6814999982889276, + 2.5911000011547003, + 2.8384000033838674, + 2.8079000003344845, + 2.722399996855529, + 2.76559999838355, + 2.7315000006638, + 2.7805999998236075, + 2.9996999983268324, + 2.9116999976395164, + 3.0353000001923647, + 2.87449999814271, + 3.2677000017429236, + 3.1474000024900306, + 3.505199998471653, + 3.5501000020303763, + 3.4683000012591947, + 3.3333999999740627, + 3.3930000026884954, + 3.214000000298256, + 3.298499999800697, + 3.158599996822886, + 3.2971000000543427, + 3.2554999997955747, + 3.3105000002251472, + 3.3231999987037852, + 3.1820000003790483, + 3.3451999988756143, + 3.3272000000579283, + 3.2535999998799525, + 3.2226000002992805, + 3.1906000003800727, + 2.8394000000844244, + 2.8710000005958136, + 3.096299999015173, + 3.006800001458032, + 3.166599999531172, + 2.9209999993327074, + 2.7776999995694496, + 2.7745000006689224, + 2.7833000021928456, + 2.719799998885719, + 2.932299998064991, + 2.9977000012877397, + 2.8473999991547316, + 2.8403999967849813, + 2.833499998814659, + 2.764599998045014, + 2.918500002124347, + 2.7803000011772383, + 2.9690000010305084, + 2.8040999968652613, + 4.371400002128212, + 3.496500001347158, + 3.384399999049492, + 4.569200002151774, + 3.418500000407221, + 3.2192999969993252, + 3.175800000462914, + 3.3191000002261717, + 3.4146999969379976, + 3.366700002516154, + 3.1988000009732787, + 4.676500000641681, + 4.621399999450659, + 3.2619999983580783, + 3.186199999618111, + 3.260400000726804, + 3.2410999992862344, + 3.476499998214422, + 3.4255999999004416, + 3.2012000010581687, + 4.1252999981225, + 27.406699999119155, + 17.021999999997206, + 2.6752000012493227, + 2.8306999993219506, + 4.202300002361881, + 3.8319999985105824, + 4.76630000048317, + 18.192600000475068, + 25.018100001034327, + 2.9806999991706107, + 2.7592999977059662, + 4.077400000824127, + 2.5998999990406446, + 37.89859999960754, + 7.971700000780402, + 2.712099998461781, + 3.336899997520959, + 2.805400003126124, + 4.069800001161639, + 2.984999999171123, + 2.806200001941761, + 2.9447000015352387, + 2.8590000001713634, + 2.827399999659974, + 3.2406000027549453, + 2.8419999980542343, + 2.8665000027103815, + 2.8232000004209112, + 3.024500001629349, + 3.0108999999356456, + 3.9347999991150573, + 3.0162000002746936, + 2.9442999984894414, + 3.7244999984977767, + 4.7493999991274904, + 3.2468999997945502, + 3.0666999991808552, + 2.9864999996789265, + 3.0952000015531667, + 2.821300000505289, + 2.7912000005017035, + 2.8249000024516135, + 3.011600001627812, + 2.7687000001606066, + 2.7269999991403893, + 2.6905000013357494, + 3.191199997672811, + 2.7633999998215586, + 3.632100000686478, + 2.753699998720549, + 2.833699996699579, + 2.861299999494804, + 2.72929999846383, + 2.7870000012626406, + 2.612199998111464, + 2.6657999987946823, + 2.655700001923833, + 2.545899998949608, + 2.6798999970196746, + 3.1028000012156554, + 2.9936999999335967, + 2.925599997979589, + 2.846499999577645, + 3.09930000003078, + 3.0976999987615272, + 3.0227999995986465, + 2.8732999999192543, + 2.9288999976415653, + 2.895500001613982, + 3.0014000003575347, + 2.9966000001877546, + 2.9572999992524274, + 2.845099999831291, + 2.8325000021141022, + 2.9809000006935094, + 2.8817999991588295, + 2.8085000012652017, + 2.9364000001805834, + 2.922200001194142, + 2.7088000024377834, + 2.7684000015142374, + 2.822900001774542, + 2.8480999972089194, + 2.708099997107638, + 3.74549999833107, + 2.8139999994891696, + 2.780499999062158, + 2.85490000169375, + 2.7073999990534503, + 2.82359999982873, + 2.9033000027993694, + 2.7736999982153066, + 2.8945000012754463, + 2.9068999974697363, + 2.885699999751523, + 2.7063999987149145, + 2.8521999993245117, + 2.8877000004285946, + 2.937099998234771 + ] + }, + "warm_ms": { + "control": [ + 8.666199999424862, + 11.834000000817468, + 7.527699999627657 + ], + "exact": [ + 5.696900003385963, + 5.076800000097137, + 5.873399997653905 + ], + "lattice": [ + 4.532399998424808, + 3.3078999986173585, + 3.1846999991103075 + ], + "library": [ + 3.151699998852564, + 3.2164999975066166, + 3.6307000009401236 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 5.921949999901699, + "p10_ms": 5.307239997637225, + "p90_ms": 8.601860000999295, + "min_ms": 4.855200000747573, + "max_ms": 44.437000000471016, + "mean_ms": 6.661022250000315 + }, + "exact": { + "n": 400, + "median_ms": 4.199450000669458, + "p10_ms": 3.685750001386623, + "p90_ms": 5.271960000391118, + "min_ms": 3.3177000004798174, + "max_ms": 42.673700001614634, + "mean_ms": 4.5373695000216685 + }, + "lattice": { + "n": 400, + "median_ms": 3.107599999566446, + "p10_ms": 2.841230000194628, + "p90_ms": 4.4606999996176455, + "min_ms": 2.3486999998567626, + "max_ms": 5.32549999843468, + "mean_ms": 3.2937190000302508 + }, + "library": { + "n": 400, + "median_ms": 3.0696000012540026, + "p10_ms": 2.7805899997474626, + "p90_ms": 3.877569999895059, + "min_ms": 2.545899998949608, + "max_ms": 37.89859999960754, + "mean_ms": 3.465168249940689 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 1.905634573538388, + "ci90_low": 1.8775931151869867, + "ci90_high": 1.9308881458141014, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.410172760470454, + "ci90_low": 1.383815000038562, + "ci90_high": 1.4313882244653804, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.3513483077794248, + "ci90_low": 1.3357992924307915, + "ci90_high": 1.3698399032889639, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 0.9877719145585838, + "ci90_low": 0.9732991166652807, + "ci90_high": 1.0022999539689184, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 1.9292253054086674, + "ci90_low": 1.8941268055886236, + "ci90_high": 1.9638012761435908, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.8810856629737855, + "p10": 1.7936299121095827, + "p90": 2.076805515181871 + }, + "minimum_detectable_improvement": 0.5563403952104896, + "compile": { + "control": { + "lower_s": 3.8757512000011047, + "compile_s": 5.088961999997991, + "first_call_s": 0.008173799997166498, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 7053434.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 4823896, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 348160000, + "rss_after_compile_bytes": 567898112, + "rss_delta_bytes": 219738112, + "hlo_sha256": "d3d6301b44205a5a", + "hlo_lines": 24402, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 3.62982220000049, + "compile_s": 6.390475300002436, + "first_call_s": 0.005416600000899052, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 4055654.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1776408, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 597835776, + "rss_after_compile_bytes": 628944896, + "rss_delta_bytes": 31109120, + "hlo_sha256": "ebac907518a07d71", + "hlo_lines": 24296, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 3.8811997000011615, + "compile_s": 5.931479300001229, + "first_call_s": 0.004410199999256292, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3383414.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 630611968, + "rss_after_compile_bytes": 668688384, + "rss_delta_bytes": 38076416, + "hlo_sha256": "c7c2d0074bdb053f", + "hlo_lines": 24296, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 3.5283366999974533, + "compile_s": 5.945320400001947, + "first_call_s": 0.005096500000945525, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3383414.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 668954624, + "rss_after_compile_bytes": 714592256, + "rss_delta_bytes": 45637632, + "hlo_sha256": "c7c2d0074bdb053f", + "hlo_lines": 24296, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ], + "exact": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ], + "lattice": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ], + "library": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 7.743201200876812, + "exact": 7.743201200876812, + "lattice": 7.743201200876812, + "library": 7.743201200876812 + } + }, + "simple_solved_vmap4": { + "label": "simple_solved_vmap4", + "batch": 4, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 15.021200000774115, + 12.430900002073031, + 15.27669999995851, + 17.48839999709162, + 14.211699999577831, + 13.372800000070129, + 15.197400000033667, + 12.708300000667805, + 13.269799997942755, + 12.946099999680882, + 13.108099999953993, + 15.13859999977285, + 13.462399998388719, + 13.005900000280235, + 12.938799998664763, + 12.53990000259364, + 12.510900000052061, + 12.164600000687642, + 12.924200000270503, + 13.61180000094464, + 15.76049999857787, + 16.10879999861936, + 16.125099999044323, + 15.562600001430837, + 16.010000003007008, + 15.918700002657715, + 16.00709999911487, + 15.780200003064238, + 16.082500002085, + 15.805200000613695, + 15.991600001143524, + 16.16719999947236, + 15.619199999491684, + 16.42329999958747, + 23.709299999609357, + 16.21549999981653, + 16.32210000025225, + 16.160499999386957, + 15.923999999358784, + 17.028800000844058, + 26.153000002523186, + 27.164800001628464, + 26.41859999857843, + 26.75259999887203, + 17.540299999382114, + 16.89299999998184, + 17.880999999761116, + 24.24099999916507, + 18.56940000288887, + 19.634600001154467, + 18.476799999916693, + 17.13269999891054, + 17.297499998676358, + 17.89219999773195, + 26.83190000243485, + 19.367000000784174, + 17.748300000675954, + 17.49089999793796, + 17.98670000061975, + 25.97289999903296, + 22.34350000071572, + 17.107499999838183, + 16.610600003332365, + 17.123899997386616, + 16.538599997147685, + 16.354700001102174, + 16.605500000878237, + 16.6629000013927, + 16.697999999450985, + 16.572699998505414, + 16.59310000104597, + 16.613499999948544, + 16.598399997747038, + 16.672099998686463, + 16.910399997868808, + 16.680900000210386, + 16.25679999779095, + 16.521999998076353, + 16.74270000148681, + 16.77170000039041, + 14.820000000327127, + 14.82880000185105, + 15.149099999689497, + 14.637500000389991, + 14.430100000026869, + 15.18940000096336, + 15.225699997245101, + 14.750099999218946, + 15.328299999964656, + 14.722899999469519, + 14.829499999905238, + 22.413400001823902, + 15.435400000569643, + 14.766800002689706, + 14.740499998879386, + 14.774700000998564, + 16.91439999922295, + 15.015600001788698, + 15.277300000889227, + 17.94320000044536, + 30.407300000661053, + 35.03080000155023, + 31.752200000482844, + 19.102300000668038, + 14.789199998631375, + 20.39140000124462, + 14.989300001616357, + 15.158100002736319, + 14.50499999918975, + 15.0684000000183, + 13.726799999858486, + 14.020300000993302, + 14.1780000012659, + 14.079600001423387, + 14.30640000035055, + 14.49739999952726, + 18.70280000002822, + 14.385899998160312, + 14.194399998814333, + 14.248600000428269, + 13.864900000044145, + 14.701899999636225, + 16.494600000442006, + 17.96709999689483, + 13.204000002588145, + 13.908600001741434, + 12.658999999985099, + 12.391899999784073, + 12.24759999968228, + 12.731899998470908, + 12.265000001207227, + 12.767399999574991, + 12.438199999451172, + 12.363199999526842, + 12.782800000422867, + 13.38450000184821, + 12.725500000669854, + 13.420200000837212, + 13.48389999839128, + 12.800100001186365, + 14.660900000308175, + 13.636799998494098, + 14.402400000108173, + 18.268200001330115, + 14.300899998488603, + 14.876399996865075, + 13.68469999943045, + 15.942199999699369, + 14.016400000400608, + 15.89349999994738, + 16.30450000084238, + 17.366500000207452, + 14.90410000042175, + 14.182399998389883, + 15.012399999250192, + 13.512199999240693, + 15.565199999400647, + 13.209000000642845, + 13.275299999804702, + 13.31439999921713, + 19.841699999233242, + 17.368999997415813, + 21.958199999062344, + 25.17029999944498, + 28.69039999859524, + 28.353300000162562, + 21.74620000005234, + 29.553000000305474, + 18.522700000175973, + 14.692699998704484, + 20.204200001899153, + 19.462700001895428, + 25.282399998104665, + 14.663899997685803, + 18.277399998623878, + 23.968900000909343, + 17.053200001100777, + 15.064100000017788, + 17.742799998814007, + 15.725200002634665, + 13.17879999987781, + 13.724899999942863, + 13.148599999112776, + 13.403299999481533, + 13.415899997198721, + 13.762200000201119, + 13.499000000592787, + 13.513499998225598, + 15.284100001736078, + 14.950299999327399, + 16.864500001247507, + 20.55839999957243, + 20.143500001722714, + 20.297400002164068, + 20.579699998052092, + 20.684999999502907, + 20.817900000110967, + 20.21260000037728, + 22.806699998909608, + 20.434199999726843, + 12.714000000414671, + 12.97089999934542, + 12.839500002883142, + 13.025399999605725, + 12.734599997202167, + 13.097899998683715, + 13.136800000211224, + 13.203400001657428, + 12.860499999078456, + 13.083399997412926, + 13.058600001386367, + 13.547200000175508, + 12.862200001109159, + 13.139300001057563, + 12.718999998469371, + 12.879699999757577, + 13.51789999898756, + 13.347200001589954, + 13.298699999722885, + 13.209600001573563, + 18.207400000392227, + 18.86229999945499, + 18.022299998847302, + 19.73389999693609, + 18.328199999814387, + 19.09739999973681, + 18.216799999208888, + 18.236399999295827, + 18.810600002325373, + 18.427900002279785, + 18.152700002247002, + 18.297599999641534, + 18.72450000155368, + 18.225499999971362, + 18.430500000249594, + 18.28899999964051, + 18.564000001788372, + 18.53349999873899, + 18.6199999989185, + 18.138200000976212, + 18.616700002894504, + 18.142199998692377, + 18.28689999820199, + 18.55059999797959, + 18.270000000484288, + 18.0086999971536, + 18.24549999946612, + 17.96699999977136, + 18.474000000423985, + 18.203300001914613, + 18.29169999837177, + 18.26209999853745, + 17.828300002292963, + 18.084400002408074, + 17.510800000309246, + 15.489000001252862, + 15.142000000196276, + 14.958700001443503, + 15.355199997429736, + 15.324299998610513, + 16.771000002336223, + 19.37989999714773, + 19.419500000367407, + 19.105100000160746, + 19.120400000247173, + 18.592100001114886, + 19.28350000162027, + 21.379900001193164, + 19.640400001662783, + 19.147200000588782, + 19.531699999788543, + 18.77550000062911, + 19.599500003096182, + 19.70630000141682, + 19.23940000051516, + 19.160600000759587, + 19.22050000212039, + 19.434999998338753, + 19.640299997263355, + 16.27580000058515, + 17.48809999844525, + 22.94369999799528, + 24.028300002100877, + 15.959300002577947, + 14.3644999989192, + 14.413699998840457, + 14.39820000086911, + 13.676300000952324, + 13.96509999904083, + 13.272500000311993, + 13.348699998459779, + 12.991600000532344, + 12.570099999720696, + 12.652899997192435, + 12.71930000075372, + 12.707999998383457, + 17.893100000947015, + 12.543400000140537, + 12.133800002629869, + 13.980200001242338, + 17.963399997825036, + 18.899099999543978, + 19.214200001442805, + 18.8358999985212, + 19.170300001860596, + 19.200099999579834, + 19.34400000027381, + 19.26660000026459, + 19.20109999991837, + 19.023500000912463, + 19.66570000149659, + 19.38680000239401, + 19.997899998998037, + 19.30229999925359, + 19.138600000587758, + 19.37059999909252, + 19.645199998194585, + 18.861000000470085, + 18.798600001900923, + 18.814800001564436, + 30.781499997829087, + 27.408999998442596, + 28.485599999839906, + 28.509299998404458, + 28.953000000910833, + 29.574000000138767, + 29.630599998199614, + 29.02919999905862, + 28.519399998913286, + 27.71740000025602, + 28.797300001315307, + 28.256400000827853, + 28.464600000006612, + 33.26729999753297, + 28.441899998142617, + 28.176700001495192, + 28.325899998890236, + 27.920100001210812, + 32.01470000203699, + 29.9674000016239, + 20.607700000255136, + 34.849600000598, + 32.842900000105146, + 32.01489999992191, + 32.96229999978095, + 30.742599999939557, + 30.37449999828823, + 31.021400001918664, + 30.72270000120625, + 31.415400000696536, + 31.15830000024289, + 30.79059999799938, + 26.31680000195047, + 23.474600002373336, + 22.284099999524187, + 23.051399999530986, + 22.53029999701539, + 23.269799999980023, + 22.68280000134837, + 22.950700000365032, + 14.324299998406786, + 13.4500999993179, + 13.649699998495635, + 13.571399998909328, + 13.76660000096308, + 13.296599998284364, + 14.113399996858789, + 13.56599999780883, + 16.744299999118084, + 13.422500000160653, + 15.729400001873728, + 18.9831999996386, + 13.937799998529954, + 19.553699999960372, + 13.753899998846464, + 13.927600000897655, + 13.543999997637002, + 13.535099998989608, + 13.361600002099294, + 13.489100001606857, + 19.995499998913147, + 13.767999997071456, + 13.96509999904083, + 14.012800002092263, + 13.93850000022212, + 14.387999999598833, + 14.275500001531327, + 14.356600000610342, + 16.294100001687184, + 15.058200002386002, + 20.59010000084527, + 14.003000000229804, + 14.224499998817919, + 13.497300002200063, + 19.148900002619484, + 12.83270000203629, + 12.718300000415184, + 13.140999999450287, + 13.808200001221849, + 14.494499999273103 + ], + "exact": [ + 10.233000000880565, + 10.349300002417294, + 10.153300001547905, + 11.213500001758803, + 10.48830000218004, + 10.006600001361221, + 10.714000000007218, + 13.89000000199303, + 10.325999999622582, + 10.00709999789251, + 10.816699999850243, + 10.523199998715427, + 13.836699999956181, + 10.400899998785462, + 14.010200000484474, + 10.256999998091487, + 11.038399999961257, + 10.234099998342572, + 10.355500002333429, + 13.993900000059512, + 10.175800001889002, + 9.659699997428106, + 9.67079999827547, + 10.032399997726316, + 10.010099998908117, + 11.077899998781504, + 10.267499998008134, + 10.142999999516178, + 14.115800000581658, + 10.113800002727658, + 10.007400000176858, + 11.994100001174957, + 11.819600000308128, + 13.179800000216346, + 13.38229999964824, + 14.92330000110087, + 14.694800000143005, + 14.098999999987427, + 13.047600001300452, + 14.396400001714937, + 15.521499997703359, + 15.544100002443884, + 12.57909999912954, + 12.502699999458855, + 12.822400000004563, + 12.994200002140133, + 12.739000001602108, + 12.49670000106562, + 12.642000001505949, + 12.824499997805106, + 12.723200001346413, + 12.93449999866425, + 12.634200000320561, + 16.257799998129485, + 14.546300000802148, + 13.517299998056842, + 13.388700001087273, + 13.375599999562837, + 12.708400001429254, + 12.65639999837731, + 12.993399999686517, + 12.534599998616613, + 12.409999999363208, + 12.706600002275081, + 12.567000001581619, + 12.98299999689334, + 12.788399999408284, + 13.039800000115065, + 10.217199996986892, + 9.58580000224174, + 9.83740000083344, + 10.08900000306312, + 9.829599999648053, + 9.824900000239722, + 9.92219999898225, + 10.054900001705391, + 9.643599998526042, + 10.164900002564536, + 10.220600001048297, + 10.330799999792362, + 12.9224999982398, + 12.428099998942344, + 12.277199999516597, + 11.864000000059605, + 12.719700000161538, + 15.638600001693703, + 13.761299996986054, + 12.277900001208764, + 11.764599999878556, + 14.18809999813675, + 12.99730000027921, + 13.424299999314826, + 10.86099999884027, + 11.577500001294538, + 10.806700000102865, + 10.499200001504505, + 10.567200002697064, + 10.761200002889382, + 9.933200002706144, + 10.097800000949064, + 11.250299998209812, + 10.82719999976689, + 11.005899999872781, + 11.27709999855142, + 10.865000000194414, + 11.09070000165957, + 10.614899998472538, + 11.08839999869815, + 10.738699998910306, + 11.168500001076609, + 10.604299997794442, + 10.61679999838816, + 10.725700001785299, + 10.797299997648224, + 10.506499998882646, + 10.560700000496581, + 10.959100000036415, + 10.890699999436038, + 10.826399997313274, + 11.17579999845475, + 9.472700003243517, + 9.455799998249859, + 9.229500003129942, + 9.296200001699617, + 9.184099999401951, + 11.201599998457823, + 9.69740000073216, + 11.637399999017362, + 9.369600000354694, + 9.542700001475168, + 9.25709999864921, + 9.235900000930997, + 9.507399998256005, + 9.696100001747254, + 9.285399999498622, + 9.785300000658026, + 10.148900000785943, + 9.207999999489402, + 9.371899999678135, + 11.993000000074971, + 9.901600002194755, + 11.135800003103213, + 11.435000000346918, + 10.690700000850484, + 12.653000001591863, + 10.285500000463799, + 10.026699997979449, + 11.382599997887155, + 10.714799998822855, + 10.451800000737421, + 11.317299999063835, + 11.166699998284457, + 10.812100001203362, + 11.210700002266094, + 12.119400002120528, + 10.862600000109524, + 10.816399997565895, + 11.260999999649357, + 10.845299999346025, + 11.220799999136943, + 14.53649999893969, + 17.46890000140411, + 14.24849999966682, + 13.211000001319917, + 11.449900001025526, + 12.089699997886783, + 12.147800000093412, + 13.040500001807231, + 12.529299998277565, + 12.031599999318132, + 13.579400001617614, + 12.57130000158213, + 14.449300000705989, + 12.294500000280095, + 14.51670000096783, + 11.873300001752796, + 12.088999999832595, + 11.171300000569317, + 11.42959999924642, + 12.383799999952316, + 13.535299996874528, + 12.361400000372669, + 10.725200001616031, + 10.881199999857927, + 10.1981000007072, + 10.479199998371769, + 11.142100000142818, + 10.741400001279544, + 10.649800002283882, + 10.721700000431156, + 10.888499997236067, + 10.84140000239131, + 10.730199999670731, + 10.566600001766346, + 10.607799998979317, + 10.712699997384334, + 11.25769999998738, + 10.994799999025417, + 11.377299997548107, + 11.166599997523008, + 9.895499999402091, + 9.738900000229478, + 9.964400000171736, + 9.906999999657273, + 9.918700001435354, + 9.086400001251604, + 9.270900001865812, + 9.21100000050501, + 9.613300000637537, + 9.321399997133994, + 9.15760000134469, + 9.102500000153668, + 9.475200000451878, + 9.502299999439856, + 9.30529999823193, + 9.665300000051502, + 9.559699999954319, + 9.432099999685306, + 9.894200000417186, + 9.518899998511188, + 13.644899998325855, + 13.933099999121623, + 13.663999998243526, + 16.253099998721154, + 13.865099997929065, + 13.922999998612795, + 13.849700000719167, + 15.178699999523815, + 14.138599999569124, + 14.972500001022127, + 14.892500003043097, + 14.455700002145022, + 14.166999997542007, + 14.382500001374865, + 14.312799998151604, + 19.16440000059083, + 21.340799998142757, + 21.48759999909089, + 14.747500001249136, + 14.442299998336239, + 11.475199997221353, + 11.732799997844268, + 12.057100000674836, + 11.675699999614153, + 11.513199999171775, + 11.665399997582426, + 11.384600002202205, + 11.726000000635395, + 11.947199996939162, + 11.497100000269711, + 11.624800001300173, + 11.933699999644887, + 11.291300001175841, + 11.456099997303681, + 11.699399998178706, + 11.762099999032216, + 11.769000000640517, + 11.58709999799612, + 13.431299998046597, + 12.535900001239497, + 15.485299998545088, + 16.828200001327787, + 16.916200002015103, + 18.64479999858304, + 16.116899998451117, + 16.801599998871097, + 16.840800002682954, + 21.27189999737311, + 17.097899999498622, + 16.448800000944175, + 17.782599999918602, + 17.498299999715528, + 16.862899999978254, + 16.909000001760432, + 16.38939999975264, + 17.76849999805563, + 16.751700000895653, + 16.335300002538133, + 16.80100000157836, + 16.466100001707673, + 9.721800000988878, + 9.541600000375183, + 9.575199997925665, + 9.658099999796832, + 9.467600000789389, + 9.276099997805431, + 9.458200001972727, + 9.396899997227592, + 9.713700001157122, + 9.600099998351652, + 10.099299997818889, + 9.437400000024354, + 13.692199998331489, + 9.869800000160467, + 9.803100001590792, + 9.769500000402331, + 9.86199999897508, + 10.252600000967504, + 9.747700001753401, + 9.693900003185263, + 14.555300000210991, + 15.106499999092193, + 17.760300001100404, + 18.251299999974435, + 15.292799998860573, + 14.790799999900628, + 14.759699999558507, + 14.65969999844674, + 14.215799998055445, + 16.719100000045728, + 21.09790000031353, + 22.234299998672213, + 24.58699999988312, + 22.35809999910998, + 21.37619999848539, + 22.654299998976057, + 24.581100002251333, + 21.633799999108305, + 23.297700001421617, + 23.67230000163545, + 22.417000000132248, + 19.38240000163205, + 17.27960000062012, + 15.782599999511149, + 16.629899997496977, + 16.726599998946767, + 16.973999998299405, + 18.289699997694697, + 17.087599997466896, + 16.357599997718353, + 16.540399999939837, + 16.53940000323928, + 18.25459999963641, + 16.58800000222982, + 16.480099999171216, + 16.69180000317283, + 16.612800001894357, + 16.5032999975665, + 16.388899999583373, + 16.528500000276836, + 19.86119999855873, + 20.41359999930137, + 24.16599999924074, + 20.52170000024489, + 20.17550000164192, + 19.908400001440896, + 28.70980000079726, + 20.40340000166907, + 20.781500003067777, + 20.092599999770755, + 19.92660000178148, + 20.395699997607153, + 20.70060000187368, + 20.055999997566687, + 20.823099999688566, + 20.324999997683335, + 20.341000003099907, + 20.266600000468316, + 20.067899997229688, + 20.271500001399545, + 11.888499997439794, + 10.150599999178667, + 10.191400000621798, + 10.31650000004447, + 14.64269999996759, + 10.931999997410458, + 10.900999997829786, + 11.92290000108187, + 10.666199999832315, + 10.83210000069812, + 10.754499999166, + 10.992300001817057, + 10.608600001432933, + 10.876799999095965, + 11.301700000331039, + 10.54669999939506, + 10.70610000169836, + 10.617300002195407, + 10.5660999979591, + 10.835099998075748, + 10.324800001399126, + 10.157700002309866, + 10.143799998331815, + 10.18859999749111, + 10.397300000477117, + 10.959300001559313, + 10.492800000065472, + 10.604099999909522, + 14.898699999321252, + 10.743899998487905, + 10.686100002203602, + 10.55149999956484, + 12.964200002897996, + 12.841900002968032, + 11.539499999344116, + 11.575900000025285, + 11.692300002323464, + 11.766600000555627, + 11.338199998135678, + 11.72940000105882 + ], + "lattice": [ + 8.868099997926038, + 9.098300000914605, + 10.151599999517202, + 9.15990000066813, + 8.909199998015538, + 11.667400001897477, + 9.223599998222198, + 8.714600000530481, + 9.237000002030982, + 8.956099998613354, + 9.00520000141114, + 10.030199999164324, + 11.217299997952068, + 11.304100000415929, + 11.440300000685966, + 13.516200000594836, + 11.599700002989266, + 11.856400000397116, + 15.62509999712347, + 11.440799997217255, + 12.404400000377791, + 13.086799997836351, + 11.834299999463838, + 11.159900001075584, + 10.582200000499142, + 10.354099998949096, + 10.68170000144164, + 10.65990000279271, + 10.518099999899277, + 10.285999996995088, + 10.38909999988391, + 10.77140000052168, + 10.615700000926154, + 10.754399998404551, + 10.405900000478141, + 10.778500000014901, + 11.115799999970477, + 14.599599999201018, + 10.952199998428114, + 10.993100000632694, + 10.813500000949716, + 10.512900000321679, + 10.400800001661992, + 10.554799999226816, + 10.567799999989802, + 10.43279999794322, + 10.26330000240705, + 10.332199999538716, + 10.584299998299684, + 10.489300002518576, + 11.829299997771159, + 12.210999997478211, + 12.007400000584312, + 12.255300000106217, + 12.176399999589194, + 12.273000000277534, + 12.263600001460873, + 12.60780000302475, + 12.188199998490745, + 12.157699999079341, + 8.677500001795124, + 8.839899997838074, + 8.835000000544824, + 9.138700002949918, + 9.059700001671445, + 9.1601999993145, + 8.675299999595154, + 8.853399998770328, + 8.743099999264814, + 8.677800000441493, + 9.175299997878028, + 8.149499997671228, + 8.24089999878197, + 9.75040000048466, + 10.746400002972223, + 8.457100000669016, + 8.512000000337139, + 8.193300000129966, + 8.790400002908427, + 9.548300000460586, + 8.98090000191587, + 8.825000000797445, + 9.169500001007691, + 8.883899998181732, + 9.106199999223463, + 9.052100002008956, + 8.861300000717165, + 8.545800003048498, + 11.222599998291116, + 8.526800000254298, + 8.407299999817042, + 8.476800001517404, + 8.701200000359677, + 8.541999999579275, + 8.811900002910988, + 21.15559999947436, + 9.468199998082127, + 9.283100000175182, + 9.212400000251364, + 12.018000001262408, + 9.612099998776102, + 9.56679999944754, + 10.421700000733836, + 9.838499998295447, + 8.715999996638857, + 8.317700001498451, + 8.618799998657778, + 10.005600001022685, + 8.02300000214018, + 8.380399998713983, + 8.631500000774395, + 8.5795999984839, + 8.592899997893255, + 8.957600002759136, + 9.06829999803449, + 9.066699996765237, + 9.193400001095142, + 8.969300000899239, + 9.023099999467377, + 9.764499998709653, + 9.401899998920271, + 9.434600000531645, + 9.25460000144085, + 9.397500001796288, + 9.335299997474067, + 10.335099999792874, + 10.402299998531817, + 10.587400000076741, + 10.743300001195166, + 10.704299998906208, + 10.174899998673936, + 8.357300001080148, + 8.663399999932153, + 8.386900000914466, + 8.180699998774799, + 8.28660000115633, + 8.444700000836747, + 8.3398999995552, + 8.745999999518972, + 8.82629999978235, + 9.03420000031474, + 9.463799997320166, + 9.37319999866304, + 10.24390000020503, + 12.59090000166907, + 15.50649999990128, + 15.428399998199893, + 14.985899997554952, + 14.193099999829428, + 14.502800000627758, + 14.963099998567486, + 14.229300002625678, + 15.031800001452211, + 16.4111000012781, + 18.299799998203525, + 10.78380000035395, + 10.847499997908017, + 13.598600002296735, + 14.702199998282595, + 14.855499997793231, + 10.318200002075173, + 9.418300000106683, + 9.34659999984433, + 10.108800001034979, + 11.248899998463457, + 11.048299998947186, + 10.917399999016197, + 14.846000001853099, + 14.135000001260778, + 12.449000001652166, + 12.475499999709427, + 14.369099997566082, + 22.523800002090866, + 27.185900002223207, + 27.351500000804663, + 28.38799999881303, + 28.243900000234134, + 26.789999999891734, + 30.711999999766704, + 29.691000003367662, + 9.34380000035162, + 9.683799999038456, + 11.050900000554975, + 9.669999999459833, + 9.49140000011539, + 12.415400000463706, + 8.72230000095442, + 8.660400002554525, + 9.192900000925874, + 9.032699999806937, + 8.959900002082577, + 8.589799999754177, + 8.793600001808954, + 8.878900000127032, + 8.55799999771989, + 9.049500000401167, + 9.149699999397853, + 9.304700000939192, + 9.7336999970139, + 9.595999999874039, + 13.396000002103392, + 13.53680000102031, + 13.66509999934351, + 13.548299997637514, + 13.693400000192923, + 14.383399997313973, + 13.348000000405591, + 13.470499998220475, + 13.709400001971517, + 13.398899998719571, + 13.40139999956591, + 13.409299997874768, + 13.421200001175748, + 13.317000000824919, + 13.4159000008367, + 13.557899997977074, + 13.484700000844896, + 15.59599999745842, + 13.748000001214677, + 17.159499999252148, + 11.773599999287399, + 11.944499998207903, + 11.964900000748457, + 15.879400001722388, + 12.250499999936437, + 12.043099999573315, + 12.256499998329673, + 11.904900002264185, + 12.183399998320965, + 12.011799997708295, + 11.773999998695217, + 12.189900000521448, + 12.219399999594316, + 12.278400001378031, + 12.158400000771508, + 14.796299998124596, + 15.064100000017788, + 12.297599998419173, + 12.861499999416992, + 12.857400000939379, + 10.318500000721542, + 10.436100001243176, + 10.089999999763677, + 10.067900002468377, + 10.075000001961598, + 10.190100001636893, + 9.88130000041565, + 10.044800001196563, + 10.53209999736282, + 10.26350000029197, + 10.07220000246889, + 10.09150000027148, + 10.551800001849188, + 10.140700000192737, + 8.281099999294383, + 8.96660000216798, + 8.791700001893332, + 7.72770000185119, + 7.831099999748403, + 8.49249999737367, + 14.645600000221748, + 14.228399999410613, + 14.241599998058518, + 14.179900001181522, + 14.758299999812152, + 14.263000000937609, + 14.456799999607028, + 14.420300001802389, + 14.16120000067167, + 14.157300000078976, + 23.145600000134436, + 17.71789999838802, + 17.554800000652904, + 17.636900000070455, + 18.17970000047353, + 19.158700000843965, + 19.2231000000902, + 14.191700000083074, + 10.856300003069919, + 11.502099998324411, + 8.778600000368897, + 8.242500000051223, + 8.397500001592562, + 8.454599999822676, + 8.38609999846085, + 8.276199998363154, + 8.551200000511017, + 8.187700001144549, + 8.605699997133343, + 8.414699997956632, + 8.498999999574153, + 8.496400001604343, + 8.442000002105488, + 8.545100001356332, + 8.262899998953799, + 11.556000001291977, + 8.663499997055624, + 8.415299998887349, + 8.572700000513578, + 8.805800000118325, + 21.09070000005886, + 19.90559999831021, + 20.697399999335175, + 19.697400002769427, + 21.951299997454043, + 20.404300001246156, + 21.771600000647595, + 19.412499997997656, + 19.693700000061654, + 18.51909999822965, + 19.38700000027893, + 20.015599999169353, + 18.942700000479817, + 19.686499999806983, + 19.604299999627983, + 19.51109999936307, + 20.428699997864896, + 19.761799998377683, + 19.08950000142795, + 19.287499999336433, + 13.98220000191941, + 14.246800001274096, + 14.322600000014063, + 14.10780000151135, + 13.977599999634549, + 19.562199999199947, + 14.073300000745803, + 19.622899999376386, + 20.4660999988846, + 14.128099999652477, + 14.375999999174383, + 14.673300000140443, + 14.770300000236603, + 14.242700002796482, + 14.53889999902458, + 14.24350000161212, + 14.425900000787806, + 14.418999999179505, + 19.263300000602612, + 21.875799997360446, + 17.566300000908086, + 16.936800002440577, + 17.503399998531677, + 20.581200002197875, + 17.327400000795024, + 17.844300000433577, + 21.830300000146963, + 22.603699999308446, + 17.70839999880991, + 17.09330000085174, + 17.56269999896176, + 17.714500001602573, + 18.205399999715155, + 17.668799999228213, + 17.64309999998659, + 17.80479999797535, + 17.361099999106955, + 18.046000001049833, + 17.883100001199637, + 19.021100000827573, + 22.257500000705477, + 20.983100002922583, + 15.15329999892856, + 15.10229999985313, + 15.06590000280994, + 15.526900002441835, + 15.5066999977862, + 20.11780000248109, + 16.800000001239823, + 11.636499999440275, + 13.232600002083927, + 9.778100000403356, + 9.633499998017214, + 9.960499999579042, + 9.88849999703234, + 9.825000001001172, + 9.868400000414113, + 9.36119999823859, + 9.96099999974831, + 9.356700000353158, + 9.855899999820394, + 10.21979999859468, + 10.091100000863662, + 10.110600000189152, + 9.994399999413872, + 10.029900000517955, + 9.86660000125994, + 10.158599998248974, + 12.026899999909801, + 13.486899999406887, + 13.777000000118278, + 13.519399999495363, + 14.79240000116988, + 13.620699999592034, + 13.691500000277301, + 14.049599998543272, + 13.606999997136882, + 13.310500002262415, + 13.384099998802412, + 13.857699999789475 + ], + "library": [ + 11.227099999814527, + 11.603200000536162, + 11.387300000933465, + 11.196600000403123, + 11.379999999917345, + 11.549599999852944, + 15.766900000016904, + 11.404799999581883, + 12.001000002783258, + 11.4685999978974, + 11.206499999389052, + 11.878399996930966, + 12.447799999790732, + 11.856200002512196, + 11.871200000314275, + 11.67370000257506, + 11.542899999767542, + 10.227300001133699, + 8.64700000238372, + 8.584199997130781, + 10.245600002235733, + 10.676800000510411, + 10.665100002370309, + 10.820799998327857, + 10.505099999136291, + 10.612699999910546, + 10.15229999757139, + 10.680100000172388, + 10.397400001238566, + 10.601599999063183, + 10.678699996788055, + 10.288999998010695, + 10.557599998719525, + 11.578100002225256, + 10.574600000836654, + 10.538100003032014, + 10.785400001623202, + 10.48100000116392, + 10.524099998292513, + 10.388800001237541, + 12.338699998508673, + 12.309800000366522, + 11.921599998458987, + 11.885099997016368, + 11.8265999990399, + 12.226199996803189, + 14.038700002856785, + 17.41030000266619, + 17.525300001580035, + 18.681999998079846, + 17.40780000181985, + 22.26389999850653, + 19.705599999724654, + 18.146799997339258, + 17.76389999940875, + 17.429100000299513, + 23.83399999962421, + 23.225500000989996, + 17.75939999788534, + 17.510500001662876, + 11.172999998962041, + 10.926599999947939, + 11.176700001669815, + 11.176900003192713, + 11.354000002029352, + 11.115700002847007, + 10.842899999261135, + 11.104900000646012, + 11.038699998607626, + 11.432300001615658, + 11.002600000210805, + 11.187900003278628, + 10.736299998825416, + 11.40789999772096, + 11.019099998520687, + 11.503599998832215, + 11.400399998819921, + 10.926599999947939, + 11.280900002020644, + 11.74399999945308, + 10.062000001198612, + 13.255199999548495, + 9.87860000168439, + 9.042999998200685, + 9.616399998776615, + 9.072299999388633, + 8.802500000456348, + 9.447799999179551, + 13.328299999557203, + 9.076900001673494, + 10.033200000179932, + 9.353400000691181, + 11.114600001747021, + 11.13900000200374, + 10.253000000375323, + 10.10610000230372, + 14.595000000554137, + 11.924099999305326, + 12.92220000323141, + 10.263299998769071, + 8.964900000137277, + 9.517200000118464, + 9.173099999316037, + 9.095599998545367, + 8.990300000732532, + 8.801399999356363, + 10.464400002092589, + 12.197399999422487, + 13.605899999674875, + 14.972699998907046, + 16.61460000104853, + 17.237899999599904, + 16.66320000003907, + 16.362499998649582, + 15.94410000325297, + 16.555099999095546, + 18.018800001300406, + 16.073900002083974, + 16.01730000038515, + 16.77650000056019, + 9.625499998946907, + 8.792199998424621, + 8.9205000003858, + 8.630500000435859, + 8.692600000358652, + 8.125399999698857, + 8.316799998283386, + 8.94269999844255, + 8.398500001931097, + 8.141999998770189, + 8.192500001314329, + 8.277999997517327, + 8.567600001697429, + 8.600100001785904, + 8.089099999779137, + 9.177699997962918, + 8.00369999706163, + 8.132200000545708, + 7.805000001098961, + 8.535100001608953, + 13.221600001998013, + 9.453399998164969, + 12.384599998767953, + 9.097899997868808, + 9.284200001275167, + 12.687000002188142, + 9.158299999398878, + 10.451800000737421, + 10.025200001109624, + 9.204099998896709, + 12.240800002473406, + 9.502299999439856, + 9.37550000162446, + 10.44509999701404, + 9.282300001359545, + 10.134899999684421, + 12.548300001071766, + 10.504400001082104, + 12.881899998319568, + 9.745100000145612, + 27.976099998340942, + 28.163499999209307, + 28.256300000066403, + 27.985500000795582, + 19.879899999068584, + 9.193699999741511, + 9.235600002284627, + 9.01970000268193, + 9.157499996945262, + 8.862200000294251, + 8.956199999374803, + 9.186599996610312, + 8.938700000726385, + 9.31009999840171, + 9.27640000008978, + 9.221399999660207, + 9.141200000158278, + 8.856799999193754, + 12.352999998256564, + 9.110700000746874, + 9.942500000761356, + 10.087500002555316, + 9.907399999065092, + 10.199399999692105, + 9.713399998872774, + 9.839599999395432, + 9.690599999885308, + 9.604899998521432, + 13.093300000036834, + 9.560400001646485, + 9.45789999968838, + 9.267299999919487, + 9.117499997955747, + 8.885900002496783, + 9.164200000668643, + 8.821999999781838, + 11.602000002312707, + 12.261500000022352, + 9.53769999978249, + 9.314700000686571, + 14.719200000399724, + 13.827299997501541, + 13.36970000193105, + 13.290800001414027, + 13.303200001246296, + 12.475300001824507, + 8.266499997262144, + 10.770500000944594, + 8.46570000067004, + 8.67629999993369, + 8.329700001922902, + 8.340100001078099, + 8.643699999083765, + 8.624199999758275, + 11.224699999729637, + 8.48779999796534, + 8.435100000497187, + 8.451099998637801, + 7.985999996890314, + 8.23810000292724, + 8.402100000239443, + 8.42430000193417, + 8.119599999190541, + 8.222700002079364, + 8.19009999759146, + 8.12239999868325, + 8.314499998959946, + 8.549800000764662, + 8.790500000031898, + 9.264500000426779, + 12.136699999246048, + 15.612099999998463, + 12.727399996947497, + 11.875100000906968, + 10.550400002102833, + 11.462700000265613, + 10.65780000135419, + 12.317000000621192, + 12.251699998159893, + 12.476799998694332, + 8.25559999793768, + 8.530200000677723, + 8.126500000798842, + 8.246899997175205, + 8.292999998957384, + 8.320299999468261, + 8.22859999971115, + 8.360799998627044, + 8.199899999453919, + 8.599500000855187, + 8.570600002713036, + 11.00399999995716, + 9.112399999139598, + 8.513900000252761, + 8.165599996573292, + 8.129900001222268, + 8.279099998617312, + 9.122899999056244, + 10.452899998199428, + 12.15790000060224, + 11.665600002743304, + 11.207699997612508, + 10.884400002396433, + 11.105800000223098, + 11.411099996621488, + 11.201500001334352, + 11.646200000541285, + 11.193599999387516, + 14.947800002119038, + 11.362799999915296, + 10.895799998252187, + 10.920500000793254, + 11.191500001586974, + 10.943799999949988, + 11.172399998031324, + 10.914999998931307, + 10.83189999917522, + 10.859900001378264, + 11.101000000053318, + 11.063699999795062, + 8.683700001711259, + 8.767399998760084, + 8.892000001651468, + 8.669599999848288, + 8.550200000172481, + 8.508899998560082, + 8.626899998489534, + 8.77050000053714, + 8.809199996903772, + 8.4973999983049, + 8.554000000003725, + 8.630600001197308, + 8.444499999313848, + 8.552600000257371, + 8.885399998689536, + 8.710699999937788, + 8.553200001188088, + 8.541299997887108, + 8.991700000478886, + 10.361700002249563, + 8.916200000385288, + 8.805099998426158, + 8.754899998166366, + 8.530000002792804, + 9.206899998389417, + 8.672300002217526, + 8.779899999353802, + 8.92770000064047, + 8.886100000381703, + 11.609099998167949, + 8.609099997556768, + 8.62789999882807, + 8.56230000135838, + 8.866199998010416, + 10.086099999170983, + 11.257199999818113, + 14.08609999998589, + 12.016299999231705, + 11.401800002204254, + 11.432700001023477, + 14.661299999715993, + 14.495300001726719, + 14.521299999614712, + 14.276699999754783, + 14.300599999842234, + 14.126699999906123, + 14.396599999599857, + 14.29890000144951, + 14.613399998779641, + 13.869600003090454, + 14.447300000028918, + 14.089999996940605, + 14.863599997624988, + 14.197700002114289, + 14.315399999759393, + 14.112400000158232, + 13.955200000054901, + 14.57260000097449, + 17.954300001292722, + 17.902499999763677, + 17.079999997804407, + 17.48030000089784, + 18.649199999345, + 17.57010000073933, + 19.150800002535107, + 25.132999999186723, + 17.83649999924819, + 17.961599998670863, + 17.86260000153561, + 18.113000001903856, + 19.412699999520555, + 17.44160000089323, + 17.48760000191396, + 18.0757000016456, + 17.951899997569853, + 13.51010000144015, + 13.14779999665916, + 13.485899999068351, + 14.967400002205977, + 13.545300000259886, + 8.822899999358924, + 8.679100003064377, + 8.752499998081475, + 8.911600001738407, + 8.584600000176579, + 11.91370000015013, + 8.402400002523791, + 8.684799999173265, + 9.751600002346095, + 8.707900000445079, + 8.777399998507462, + 8.627299997897353, + 8.580999998230254, + 8.60629999806406, + 8.466900002531474, + 8.718600001884624, + 9.071399999811547, + 9.877000000415137, + 9.143199997197371, + 9.042399997269968, + 9.551499999361113, + 9.922799999912968, + 9.59309999961988, + 9.173000002192566, + 9.249800001271069, + 9.301500002038665, + 9.267699999327306, + 9.034199996676762, + 9.546900000714231, + 9.51790000181063, + 9.050500000739703, + 9.110300001339056, + 9.096599998883903, + 9.330400000180816, + 9.483300000283634, + 9.27370000135852, + 9.282200000598095, + 9.382399999594782, + 9.216200000082608, + 9.293799997976748 + ] + }, + "warm_ms": { + "control": [ + 17.576800000824733, + 14.725200002430938, + 14.340900001116097 + ], + "exact": [ + 12.6827999993111, + 13.93610000013723, + 9.91520000025048 + ], + "lattice": [ + 10.30209999953513, + 8.437799999228446, + 8.593400001700502 + ], + "library": [ + 8.365900001081172, + 11.336399998981506, + 8.03259999884176 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 16.58289999977569, + "p10_ms": 13.096449998556636, + "p90_ms": 26.451999998607796, + "min_ms": 12.133800002629869, + "max_ms": 35.03080000155023, + "mean_ms": 17.792604000032952 + }, + "exact": { + "n": 400, + "median_ms": 11.605949999648146, + "p10_ms": 9.691590002694284, + "p90_ms": 17.829469999924196, + "min_ms": 9.086400001251604, + "max_ms": 28.70980000079726, + "mean_ms": 12.9195819999768 + }, + "lattice": { + "n": 400, + "median_ms": 11.083350000262726, + "p10_ms": 8.58877999962715, + "p90_ms": 19.09642000136955, + "min_ms": 7.72770000185119, + "max_ms": 30.711999999766704, + "mean_ms": 12.550496250014476 + }, + "library": { + "n": 400, + "median_ms": 10.393100001238054, + "p10_ms": 8.496439998270944, + "p90_ms": 16.561049999290844, + "min_ms": 7.805000001098961, + "max_ms": 28.256300000066403, + "mean_ms": 11.321929750010895 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 1.4961992537800033, + "ci90_low": 1.3886991856393085, + "ci90_high": 1.5675038901996114, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.4288274549070459, + "ci90_low": 1.3718602676342149, + "ci90_high": 1.4756520302913732, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.047151808737704, + "ci90_low": 0.9734399989596191, + "ci90_high": 1.0968239111199325, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 0.9377218982520348, + "ci90_low": 0.8662382761428823, + "ci90_high": 0.9822999084784307, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 1.595568213314631, + "ci90_low": 1.5318098869566863, + "ci90_high": 1.6729620186182048, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.4983544782940588, + "p10": 1.0078614549236706, + "p90": 1.8070843963981191 + }, + "minimum_detectable_improvement": 0.8053808441365391, + "compile": { + "control": { + "lower_s": 5.083885100000771, + "compile_s": 6.120879199999763, + "first_call_s": 0.05819609999889508, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 23296236.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 15472792, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 851955712, + "rss_after_compile_bytes": 857157632, + "rss_delta_bytes": 5201920, + "hlo_sha256": "554f64f8c554a75f", + "hlo_lines": 26373, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 6.583237599999848, + "compile_s": 6.171390700001211, + "first_call_s": 0.0145630999977584, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 14518292.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 7094296, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 857747456, + "rss_after_compile_bytes": 860991488, + "rss_delta_bytes": 3244032, + "hlo_sha256": "56eaef73f219da07", + "hlo_lines": 26267, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 5.636794299996836, + "compile_s": 6.87640630000169, + "first_call_s": 0.010388699996838113, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 11829332.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6763032, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 862859264, + "rss_after_compile_bytes": 867024896, + "rss_delta_bytes": 4165632, + "hlo_sha256": "7cf5fedaa86c883c", + "hlo_lines": 26267, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 5.896121400000993, + "compile_s": 7.2387328000004345, + "first_call_s": 0.009698000001662876, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 11829332.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6763032, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 867024896, + "rss_after_compile_bytes": 869457920, + "rss_delta_bytes": 2433024, + "hlo_sha256": "7cf5fedaa86c883c", + "hlo_lines": 26267, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0, + 1, + 2, + 3 + ], + [ + 4, + 5, + 6, + 7 + ], + [ + 8, + 9, + 10, + 11 + ], + [ + 12, + 13, + 14, + 15 + ] + ], + "values": { + "control": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ], + "exact": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ], + "lattice": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ], + "library": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + } + }, + "simple_plain": { + "label": "simple_plain", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 7.0047000008344185, + 6.589500000700355, + 6.258100002014544, + 6.5761999976530205, + 6.854800001747208, + 6.370700000843499, + 6.325400001514936, + 6.910200001584599, + 6.535100001201499, + 6.232599997019861, + 6.2074000015854836, + 7.046899998385925, + 6.098800000472693, + 5.957299999863608, + 6.141199999547098, + 6.866600000648759, + 5.72959999772138, + 5.8396000022185035, + 6.973899999138666, + 5.9388999980001245, + 6.048499999451451, + 5.873000001884066, + 5.753900000854628, + 5.894499998248648, + 5.845899999258108, + 6.003399998007808, + 6.166900002426701, + 6.269299999985378, + 5.910500000027241, + 5.780700001196237, + 5.793399999674875, + 5.760199997894233, + 5.691800000931835, + 5.727200001274468, + 5.62770000033197, + 5.340200001228368, + 5.382200000894954, + 5.746599999838509, + 5.67379999847617, + 6.122899998445064, + 5.6304999998246785, + 5.475900001329137, + 5.388500001572538, + 5.6447999995725695, + 5.8042999989993405, + 5.850600002304418, + 5.855399998836219, + 5.747600000177044, + 5.578399999649264, + 5.71489999856567, + 6.137000000308035, + 5.663899999490241, + 5.454199999803677, + 5.543899998883717, + 5.5661000005784445, + 5.537400000321213, + 5.508300000656163, + 5.494100001669722, + 5.562700000155019, + 5.636800000502262, + 6.135999999969499, + 6.122499999037245, + 5.767400001786882, + 7.14489999882062, + 5.967799999780254, + 6.142999998701271, + 6.002599999192171, + 5.678099998476682, + 6.239100002858322, + 5.7830999976431485, + 5.904900001041824, + 5.805300002975855, + 5.653100000927225, + 5.848900000273716, + 6.32180000320659, + 5.946199999016244, + 6.2813000004098285, + 6.34409999838681, + 6.591199999093078, + 6.154899998364272, + 7.290400000783848, + 6.193099998199614, + 6.021900000632741, + 5.637800000840798, + 5.517800000234274, + 5.517399997188477, + 5.537699998967582, + 5.7133999980578665, + 6.033999998180661, + 5.537499997444684, + 5.322100001649233, + 5.402000002504792, + 5.472400000144262, + 5.3234000006341375, + 5.505000000994187, + 5.418499997176696, + 5.400899997766828, + 5.367800000385614, + 5.585699997027405, + 5.509999999048887, + 6.2030999979469925, + 6.275600000662962, + 6.112400002166396, + 6.6756000014720485, + 6.454400001530303, + 6.178199997521006, + 6.257400000322377, + 6.423700000596, + 6.775300000299467, + 6.37789999746019, + 6.284899998718174, + 6.085900000471156, + 6.160500000987668, + 5.892499997571576, + 6.241900002351031, + 5.865799997991417, + 6.7583000018203165, + 5.972699997073505, + 5.922200001805322, + 5.935900000622496, + 6.128199998784112, + 6.054900000890484, + 5.995800001983298, + 6.374699998559663, + 6.043099998350954, + 5.950099999608938, + 9.752799996931572, + 5.627999998978339, + 5.911399999604328, + 5.750299998908304, + 5.560900001000846, + 5.641899999318412, + 5.427500000223517, + 7.823900003131712, + 5.677100001776125, + 5.460100001073442, + 5.559600002015941, + 5.4853000001457985, + 5.79719999950612, + 5.796500001451932, + 6.352899999910733, + 6.129899997176835, + 6.102300001657568, + 6.715999999869382, + 6.1683999992965255, + 6.252999999560416, + 6.354600001941435, + 6.080800001655007, + 5.754400001023896, + 5.557099997531623, + 5.387299999711104, + 5.431900000985479, + 5.797599998913938, + 5.434599999716738, + 5.85010000213515, + 5.560600002354477, + 5.817400000523776, + 5.573700000240933, + 5.233300002146279, + 5.093299998407019, + 5.356900001061149, + 5.27689999944414, + 5.491800002346281, + 5.4841999990458135, + 5.364900000131456, + 5.681700000423007, + 5.300799999531591, + 5.522100000234786, + 5.785800000012387, + 5.732400000852067, + 5.816100001538871, + 6.076099998608697, + 5.238699999608798, + 6.01499999902444, + 6.422799997380935, + 6.540800000948366, + 6.877799998619594, + 6.987699998717289, + 7.012500002019806, + 7.053599998471327, + 5.524899999727495, + 5.736399998568231, + 5.780899999081157, + 5.504999997356208, + 5.980400001135422, + 5.850199999258621, + 5.700599998817779, + 5.78029999815044, + 5.758199997217162, + 5.803899999591522, + 6.150800003524637, + 5.546100001083687, + 6.0831000009784475, + 5.420000001322478, + 5.492500000400469, + 5.486699999892153, + 5.598100000497652, + 5.4425999987870455, + 5.563099999562837, + 5.764500001532724, + 5.711300000257324, + 5.68810000186204, + 5.889100000786129, + 5.59360000261222, + 5.483500000991626, + 5.450099997688085, + 5.814799998915987, + 5.6884999976318795, + 5.861199999344535, + 5.788099999335827, + 5.66179999805172, + 5.6174999990616925, + 5.457299997942755, + 5.301500001223758, + 5.523699997866061, + 5.4196000019146595, + 5.270499998005107, + 5.707600001187529, + 5.47290000031353, + 5.260500001895707, + 5.560199999308679, + 6.323199999314966, + 5.631200001516845, + 5.548699999053497, + 5.656400000589201, + 5.518099998880643, + 5.680500002199551, + 5.473500001244247, + 5.437099996925099, + 5.343500000890344, + 5.483799999637995, + 5.505199998879107, + 5.52139999854262, + 5.347600003005937, + 5.269599998428021, + 6.112400002166396, + 6.703999999444932, + 6.552200000442099, + 7.450900000549154, + 8.97389999954612, + 13.677999999345047, + 14.02099999904749, + 13.189799999963725, + 13.780099998257356, + 20.462699998461176, + 14.564200002496364, + 14.034200001333375, + 14.50979999935953, + 13.922300000558607, + 13.284200002090074, + 13.789999997243285, + 13.62400000289199, + 13.424100001429906, + 13.32420000107959, + 13.528700001188554, + 13.235300000815187, + 13.67259999824455, + 13.51299999805633, + 13.74029999715276, + 13.853199998266064, + 6.765799997083377, + 6.802100000641076, + 6.952299998374656, + 5.887200000870507, + 5.804700002045138, + 5.571800000325311, + 5.567799998971168, + 5.634299999655923, + 5.8499000006122515, + 5.751400000008289, + 5.756500002462417, + 5.619799998385133, + 6.286100000579609, + 5.420899997261586, + 9.514099998341408, + 5.321299999195617, + 5.489499999384861, + 5.474900000990601, + 5.230899998423411, + 5.646699999488192, + 6.254100000660401, + 6.301800000073854, + 6.25420000142185, + 6.062600001314422, + 6.452100002206862, + 6.120299996837275, + 6.19150000056834, + 6.232899999304209, + 6.20129999879282, + 6.053100001736311, + 6.333699999231612, + 6.264300001930678, + 7.288400000106776, + 7.242100000439677, + 7.416600001306506, + 7.312699999602046, + 8.53800000186311, + 7.374700002401369, + 7.072399999742629, + 7.058699997287476, + 5.569400000240421, + 5.584499998803949, + 5.525999997189501, + 5.728099997213576, + 6.074900000385242, + 5.774699999165023, + 5.605399997875793, + 5.955699998594355, + 5.621200001769466, + 5.8189000010315794, + 6.225599998288089, + 6.158900003356393, + 6.008500000461936, + 6.229299997357884, + 6.030099997587968, + 5.496199999470264, + 5.583000001934124, + 5.43640000250889, + 5.374599997594487, + 5.611699998553377, + 5.867600000783568, + 6.212199998117285, + 5.849700002727332, + 5.450200002087513, + 5.411700003605802, + 5.497600002854597, + 5.992300000798423, + 5.867099996976322, + 5.519100002857158, + 6.014499998855172, + 6.360499999573221, + 5.282900001475355, + 5.633500000840286, + 5.771199997980148, + 6.802899999456713, + 6.150199998955941, + 5.796500001451932, + 5.629100000078324, + 5.765300000348361, + 5.516799999895738, + 5.240800001047319, + 5.329200001142453, + 5.329300001903903, + 5.2407000002858695, + 5.3870000010647345, + 5.083600000943989, + 5.352799998945557, + 5.54550000015297, + 5.51880000057281, + 5.5382999998983, + 5.3736999980174005, + 5.33509999877424, + 5.467300001328113, + 5.383799998526229, + 5.239699999947334, + 5.664200001774589, + 5.678199999238132, + 6.239300000743242, + 6.190000000060536, + 6.451100001868326, + 5.57709999702638, + 5.600600001343992, + 5.584300000919029, + 5.472500000905711, + 5.416299998614704, + 5.414499999460531, + 5.529900001420174, + 5.309500000294065, + 6.941199997527292, + 5.131400001118891, + 5.306899998686276, + 5.1371000008657575, + 5.1187999997637235, + 5.103100000269478, + 5.2114000027359, + 5.479899999045301, + 5.812999999761814, + 5.577300002187258, + 5.287600000883685, + 5.768699997133808, + 5.931200001214165, + 5.882800000108546, + 5.731299999752082, + 5.762599997979123, + 6.697699998767348, + 5.998299999191659, + 6.203999997524079, + 6.553999999596272, + 6.8802000023424625, + 6.164300000818912, + 6.598500000109198, + 5.975100000796374, + 5.7369999994989485, + 5.826500000694068, + 5.689300000085495, + 5.924699999013683, + 6.9977999992261175, + 6.5740999998524785, + 6.247299999813549, + 6.257199998799479 + ], + "exact": [ + 4.115800002182368, + 4.328600000008009, + 4.0956999982881825, + 4.351699997641845, + 4.38170000052196, + 4.300199998397147, + 4.452699999092147, + 4.090899998118402, + 4.297800001950236, + 4.294700000173179, + 4.407699998409953, + 4.213600001094164, + 4.257900000084192, + 3.998600001068553, + 4.278399999748217, + 17.535200000565965, + 7.80529999974533, + 5.858099997567479, + 4.319300001952797, + 5.661999999574618, + 3.8128000014694408, + 3.8791999977547675, + 3.9299000018218067, + 3.9069999984349124, + 3.8439999989350326, + 3.8516000022355, + 3.601399999752175, + 3.751899999770103, + 3.9585000013175886, + 4.173799999989569, + 3.939199999877019, + 3.8777999980084132, + 3.873199999361532, + 4.141399997024564, + 4.032199998619035, + 4.261400001269067, + 4.229099999065511, + 4.139100001339102, + 3.7359000016294885, + 3.758800001378404, + 4.038799997942988, + 3.975600000558188, + 3.753000000870088, + 3.840700002911035, + 3.8557000007131137, + 3.793699997913791, + 3.770999999687774, + 4.002400000899797, + 4.116300002351636, + 3.9217999983520713, + 3.8587999988521915, + 3.826700001809513, + 3.6975000002712477, + 3.834799998003291, + 3.7419000000227243, + 3.9637000008951873, + 3.962800001318101, + 3.7723999994341284, + 3.941599999961909, + 4.038499999296619, + 4.535500000201864, + 4.5176000021456275, + 4.358399997727247, + 4.37199999942095, + 4.406899999594316, + 4.245500000251923, + 4.388599998492282, + 4.598900002747541, + 4.5833000003767665, + 4.463299999770243, + 4.604599998856429, + 4.794199998286786, + 4.175699999905191, + 4.59479999699397, + 4.5332000008784235, + 4.590500000631437, + 4.4524000004457776, + 5.006799998227507, + 4.48050000341027, + 4.400300000270363, + 4.512100000283681, + 4.188799997791648, + 3.9808999972592574, + 4.146300001593772, + 4.091799997695489, + 4.1829000001598615, + 4.174199999397388, + 3.828300003078766, + 4.036700000142446, + 3.9906999991217162, + 3.9544999999634456, + 3.715300001204014, + 4.050699997605989, + 3.961500002333196, + 3.751100000954466, + 3.7000999982410576, + 3.9168000002973713, + 3.780999999435153, + 3.8967000000411645, + 3.5680999972100835, + 3.904199998942204, + 3.862400000798516, + 3.889200001140125, + 3.852099998766789, + 3.7824999999429565, + 3.9185000023280736, + 3.9615999994566664, + 3.7769000009575393, + 4.0551999991294, + 3.9284999984374736, + 3.832899998087669, + 3.9692999998806044, + 4.0393000017502345, + 4.907400001684437, + 4.011299999547191, + 3.709800002980046, + 3.9490000017394777, + 4.168100000242703, + 3.764700002648169, + 4.040399999212241, + 4.2008999989775475, + 4.439800002728589, + 4.303699999582022, + 4.409900000609923, + 4.342100000940263, + 4.420900000695838, + 4.2412000002514105, + 4.483699998672819, + 4.702700000052573, + 4.349899998487672, + 4.421500001626555, + 4.614299999957439, + 4.430200002389029, + 4.293599999073194, + 4.4393999996827915, + 4.415800001879688, + 4.4421999991755, + 4.284699996787822, + 4.395699997985503, + 4.383600000437582, + 3.784799999266397, + 3.569600001355866, + 3.391300000657793, + 3.329999999550637, + 3.8463999990199227, + 3.888600000209408, + 3.899499999533873, + 3.5797999989881646, + 3.472599997621728, + 3.53509999695234, + 3.8177999995241407, + 3.659099998913007, + 3.6884000001009554, + 4.548099997919053, + 4.216000001179054, + 3.767800000787247, + 3.607000002375571, + 3.812400002061622, + 3.9305999998759944, + 3.905900000972906, + 5.006100000173319, + 4.688999997597421, + 6.620399999519577, + 4.320799998822622, + 4.151400000409922, + 4.065600001922576, + 4.196400001092115, + 4.418299999088049, + 4.070499999215826, + 4.58960000105435, + 4.27020000279299, + 4.0699999990465585, + 3.7732000018877443, + 3.9025000005494803, + 3.9763999993738253, + 3.7860000011278316, + 3.87139999656938, + 3.9646000004722737, + 3.975499999796739, + 3.9003999991109595, + 5.1008000009460375, + 5.0706000001810025, + 3.604300000006333, + 4.103700000996469, + 4.2424999992363155, + 4.139500000746921, + 4.239199999574339, + 4.650800001400057, + 3.894399997079745, + 4.13960000150837, + 4.126600000745384, + 3.9787999994587153, + 4.003100002591964, + 4.656700002669822, + 4.130999997869367, + 3.9982000016607344, + 4.037599999719532, + 4.523100000369595, + 4.329499999585096, + 4.164699999819277, + 4.027499999210704, + 4.036499998619547, + 3.8217000001168344, + 3.7406000010378193, + 4.2968000016117, + 3.835299998172559, + 3.8492999992740806, + 4.068199999892386, + 4.223300002195174, + 4.224699998303549, + 4.104499999812106, + 4.214499997033272, + 4.062300002260599, + 4.20010000016191, + 4.313100002036663, + 4.1115999993053265, + 3.8383999999496154, + 3.8553999984287657, + 3.7598999988404103, + 3.8659999991068617, + 7.35260000146809, + 8.910600001399871, + 10.853199997654883, + 10.281799997756025, + 9.518999999272637, + 9.673900000052527, + 9.561299997585593, + 10.887200001889141, + 10.521599997446174, + 9.061799999471987, + 10.033200000179932, + 9.338300002127653, + 9.272899998904904, + 9.932299999491079, + 9.461800000281073, + 11.300599999231054, + 9.925900001690025, + 9.111999999731779, + 9.901499997795327, + 9.828199999901699, + 9.611500001483364, + 10.09890000204905, + 9.502000000793487, + 9.693100000731647, + 9.04390000141575, + 11.439299996709451, + 9.935999998560874, + 9.756899999047164, + 9.292099999584025, + 9.150000001682201, + 9.482299999945099, + 9.415600001375424, + 11.30899999770918, + 11.162900002091192, + 9.938399998645764, + 9.389599999849452, + 8.793299999524606, + 6.818800000473857, + 6.629899999097688, + 9.054199999809498, + 6.851500002085231, + 7.182100001955405, + 7.128099998226389, + 6.7665000024135225, + 6.91240000014659, + 6.764899997506291, + 7.0173999993130565, + 7.217000002128771, + 6.934200002433499, + 7.076800000504591, + 6.8929000008211005, + 9.245100001862738, + 7.02110000202083, + 6.993200000579236, + 6.769399999029702, + 9.142099999735365, + 6.7429000009724405, + 6.819099999120226, + 6.765599999198457, + 6.783600001654122, + 4.978000000846805, + 5.176499998924555, + 5.046700000093551, + 4.982099999324419, + 5.027299997891532, + 4.827699998713797, + 4.811599999811733, + 4.791400002432056, + 5.018399999244139, + 4.918099999486003, + 4.983999999240041, + 5.108299999847077, + 4.944299998896895, + 4.763399996591033, + 5.268099997920217, + 4.930600000079721, + 5.439500000647968, + 5.164199999853736, + 5.375199998525204, + 5.141099998581922, + 4.111399997782428, + 4.302699999243487, + 4.117099997529294, + 4.023800000140909, + 4.751600001327461, + 4.133999998884974, + 4.048299997521099, + 4.0092999988701195, + 3.9441000008082483, + 4.055900000821566, + 4.211300001770724, + 4.199300001346273, + 4.153399997449014, + 4.298799998650793, + 4.373300002043834, + 4.208800000924384, + 4.118599998037098, + 3.868300002068281, + 4.132800000661518, + 4.365799999504816, + 4.104600000573555, + 3.944600000977516, + 3.92939999801456, + 4.184800000075484, + 4.523299998254515, + 4.360499999165768, + 4.383799998322502, + 6.369099999574246, + 4.398600001877639, + 4.78819999989355, + 4.166999999142718, + 4.467400001885835, + 4.3304999999236315, + 4.23159999991185, + 4.103199997189222, + 4.013699999632081, + 4.074600001331419, + 4.686000000219792, + 3.731500000867527, + 3.6875999976473395, + 4.438300002220785, + 4.423399997904198, + 4.758099999889964, + 4.505299999436829, + 4.301499997382052, + 4.143099999055266, + 4.4577000007848255, + 4.3337000024621375, + 4.189699997368734, + 4.176200000074459, + 4.480399999010842, + 4.24370000109775, + 4.351900002802722, + 4.435200000443729, + 4.5396000023174565, + 4.397299999254756, + 4.396399999677669, + 4.625600002327701, + 4.332000000431435, + 4.32350000119186, + 3.9221000006364193, + 4.138699998293305, + 3.681199999846285, + 3.834300001472002, + 3.7765999986731913, + 3.8466000005428214, + 3.6280000022088643, + 3.7747999995190185, + 3.8817999993625563, + 3.6871000011160504, + 3.7384999995992985, + 3.6743999989994336, + 3.790300001128344, + 4.235699998389464, + 4.204299999400973, + 4.232799998135306, + 4.22919999982696, + 4.194500001176493, + 3.9624000019102823, + 4.0182999982789624, + 4.334799999924144, + 4.0793000007397495, + 4.090700000233483, + 4.305000002204906, + 4.247299999406096, + 4.813999999896623, + 4.402200000185985, + 4.301200002373662, + 4.125799998291768, + 4.295799997635186, + 4.26560000050813, + 4.210700000840006, + 5.133299997396534, + 4.1221999999834225, + 4.235600001265993, + 4.237899996951455, + 3.785999997489853, + 3.8798000023234636, + 3.946599998016609, + 3.9849999993748497 + ], + "lattice": [ + 3.3387000003131106, + 3.5199000012653414, + 3.9384999981848523, + 3.3251999993808568, + 3.177099999447819, + 3.094700001383899, + 3.1607999990228564, + 3.086500000790693, + 3.156800001306692, + 3.131299999949988, + 3.2214999991992954, + 3.5409000010986347, + 3.2792999991215765, + 3.2016000004659873, + 3.062899999349611, + 3.027999999176245, + 3.0669999978272244, + 3.1536999995296355, + 3.4907999979623128, + 3.6040999984834343, + 3.1224000013025943, + 3.0451000020548236, + 2.911900002800394, + 3.0307000015454832, + 2.8749000011885073, + 4.573899997922126, + 3.1244999991031364, + 3.1433999974979088, + 3.21319999784464, + 3.3781000020098872, + 3.0595999996876344, + 4.590299999108538, + 3.0365999991772696, + 3.077499997743871, + 3.0703000011271797, + 3.1412999996973667, + 3.049400002055336, + 3.0183000017132144, + 3.062699997826712, + 3.1817999988561496, + 3.1175999974948354, + 3.0411000007006805, + 2.90580000000773, + 3.0984999975771643, + 2.8848000001744367, + 2.8908000022056513, + 2.9828000006091315, + 2.887999999074964, + 2.9094000019540545, + 2.928400001110276, + 2.878500003134832, + 3.108299999439623, + 3.105600000708364, + 3.3688000003166962, + 3.205499997420702, + 3.0002999992575496, + 3.1535000016447157, + 3.1316999993578065, + 3.1115999991015997, + 3.1319999980041757, + 3.7064999996800907, + 3.4890000024461187, + 3.383600000233855, + 3.1376999977510422, + 3.0624999999417923, + 3.9729999989503995, + 3.345200002513593, + 3.429200001846766, + 3.269400000135647, + 3.0650999979116023, + 3.1615999978384934, + 3.195400000549853, + 3.1120999992708676, + 2.8750000019499566, + 2.888900002290029, + 4.286999999749241, + 3.1927000018185936, + 3.225599997676909, + 3.1510000007983763, + 3.0958999996073544, + 2.7541000017663464, + 3.06060000002617, + 3.011499997228384, + 2.861499997379724, + 2.7861999988090247, + 2.8383999997458886, + 2.750300001935102, + 3.0293999989225995, + 2.8730999983963557, + 2.822300000843825, + 2.789399997709552, + 2.8982000003452413, + 3.005899998242967, + 3.0172000006132293, + 2.8391999985615257, + 2.789999998640269, + 2.756400001089787, + 2.7432999995653518, + 2.860000000509899, + 2.8200999986438546, + 3.082600000197999, + 3.3013000029313844, + 3.2105999998748302, + 3.1374999998661224, + 3.046499998163199, + 3.2657999981893227, + 3.2227999981842004, + 3.2398999974248, + 3.1049999997776467, + 3.535700001521036, + 3.786299999774201, + 3.6044000007677823, + 3.659899997728644, + 3.74530000044615, + 3.7706000002799556, + 3.9069999984349124, + 3.5960000022896565, + 3.687199998239521, + 3.6131999986537267, + 4.732900000817608, + 3.6364999978104606, + 3.6074000017833896, + 3.4699000025284477, + 4.926800000248477, + 3.6733000015374273, + 3.8234999992710073, + 3.903000000718748, + 4.106399999727728, + 3.899999999703141, + 3.475500001513865, + 3.8106000029074494, + 3.5849999985657632, + 3.5195999989809934, + 3.737099999852944, + 4.34280000263243, + 4.627599999366794, + 3.691699999762932, + 3.2237000013992656, + 3.1248000013874844, + 3.084599997237092, + 3.206499997759238, + 3.01210000179708, + 3.114900002401555, + 2.842699999746401, + 2.79709999813349, + 2.7931000004173256, + 2.7789999985543545, + 2.6264000007358845, + 2.939199999673292, + 2.778900001430884, + 2.7995999989798293, + 2.874800000427058, + 2.6751000004878733, + 2.782400002615759, + 2.9259999973874073, + 2.699399999983143, + 2.7669000010064337, + 2.8720000009343494, + 2.7020999987144023, + 3.7553999973169994, + 2.9794000001857057, + 2.952200000436278, + 2.813600000081351, + 2.967799999169074, + 2.907099998992635, + 2.9601000023831148, + 2.9572999992524274, + 2.9008999990765005, + 2.86930000220309, + 3.296099999715807, + 3.202100000635255, + 3.4943999999086373, + 5.005700000765501, + 4.1568999986338895, + 4.04520000302, + 3.994899998360779, + 4.009800002677366, + 3.8740999989386182, + 3.67529999857652, + 4.250499998306623, + 3.1314000007114373, + 3.3756999982870184, + 3.375399999640649, + 3.1409999974130187, + 3.1595000000379514, + 3.1218999974953476, + 3.4437000031175558, + 3.1866000026639085, + 3.334999997605337, + 3.296299997600727, + 3.2078000003821217, + 3.324399996927241, + 3.194599998096237, + 3.2337000011466444, + 3.133099999104161, + 3.056900000956375, + 3.397600001335377, + 3.286099999968428, + 3.072200001042802, + 3.553099999408005, + 2.7664999979606364, + 3.1792000008863397, + 3.1006999997771345, + 3.197300000465475, + 3.2668999992893077, + 3.1246999969880562, + 3.492499999993015, + 4.374299998744391, + 3.275200000643963, + 3.231200000300305, + 3.185099998518126, + 3.9649000027566217, + 3.0377000002772547, + 2.945000000181608, + 2.888799997890601, + 2.8447000004234724, + 2.8305999985605013, + 2.9453999995894264, + 2.9537000009440817, + 3.115200001047924, + 7.198200000857469, + 7.424100000207545, + 7.884399998147273, + 7.525799999712035, + 7.791899999574525, + 7.132899998396169, + 7.126000000425847, + 6.840099998953519, + 6.9508999986283015, + 7.168399999500252, + 6.633900000451831, + 6.871800000226358, + 6.997200001933379, + 6.883800000650808, + 7.523700001911493, + 6.777000002330169, + 6.862199999886798, + 6.742600002326071, + 7.230400002299575, + 6.591499997739447, + 5.344900000636699, + 5.253899998933775, + 5.569299999478972, + 5.24280000172439, + 6.412400001863716, + 5.525699998543132, + 5.07619999916642, + 5.2003999990120064, + 5.016799997974886, + 5.2141999985906295, + 5.951900002401089, + 5.13390000196523, + 5.51649999761139, + 5.280099998344667, + 5.064599998149788, + 4.873400001088157, + 5.2460000006249174, + 5.176299997401657, + 5.188799997995375, + 5.206400001043221, + 5.283500002406072, + 5.2194999989296775, + 5.610500000329921, + 5.051000000094064, + 5.18269999884069, + 5.328200000803918, + 6.1181000019132625, + 7.223900000099093, + 7.081399999151472, + 6.188499999552732, + 6.8554999998013955, + 5.09530000272207, + 5.660200000420446, + 6.121099999290891, + 5.7859999978973065, + 5.710699999326607, + 5.244200001470745, + 7.272099999681814, + 4.6812999971734826, + 2.9682000022148713, + 2.9267000027175527, + 3.070099999604281, + 2.777300000161631, + 3.0139999980747234, + 2.843800000846386, + 2.8477000014390796, + 2.814399998896988, + 2.7546000019356143, + 2.979000000777887, + 2.9285000018717255, + 2.9140999977244064, + 2.8175000006740447, + 2.9574000000138767, + 2.8415000015229452, + 2.959100002044579, + 2.818700002535479, + 2.8842000028816983, + 2.8737000029650517, + 2.9506999999284744, + 2.8348999985610135, + 3.0680999989272095, + 2.918199999839999, + 2.947599998151418, + 2.9118000020389445, + 3.2499000008101575, + 3.301699998701224, + 3.1376000006275717, + 2.997800002049189, + 3.09689999994589, + 3.026399997906992, + 3.102700000454206, + 3.0350000015459955, + 3.04600000163191, + 3.162000000884291, + 3.1588000019837637, + 3.383300001587486, + 3.1796000002941582, + 3.2422000003862195, + 3.578100000595441, + 3.050200000870973, + 2.9522999975597486, + 2.9815000016242266, + 2.6323999991291203, + 2.784200001769932, + 2.7913999983866233, + 2.582199998869328, + 2.743100001680432, + 2.686399999220157, + 2.7383999986341223, + 3.0208999996830244, + 3.1162999985099304, + 3.1671999968239106, + 3.5188000001653563, + 3.3379000014974736, + 3.2949000014923513, + 3.3025999982783105, + 3.117600001132814, + 3.044599998247577, + 3.067399997235043, + 3.0870000009599607, + 3.2214999991992954, + 3.1336000029114075, + 3.168100000038976, + 3.2649999993736856, + 3.2739999987825286, + 3.309399999125162, + 3.483199998299824, + 3.1488999993598554, + 2.9973999990033917, + 3.065600001718849, + 2.9522999975597486, + 3.2925999985309318, + 3.1229999985953327, + 3.1947999996191356, + 3.0305000000225846, + 2.8587999986484647, + 2.997800002049189, + 2.9418999984045513, + 3.012799999851268, + 3.07970000358182, + 3.2099000018206425, + 3.3414999998058192, + 3.0423999996855855, + 2.80909999855794, + 2.7757999996538274, + 3.1476000003749505, + 3.151200002321275, + 3.1624000002921093, + 3.0850000002828892, + 3.011299999343464, + 2.980500001285691, + 2.877200000511948, + 2.8354999994917307, + 2.9649999996763654, + 3.0117000023892615, + 3.0483000009553507, + 3.0793000005360227, + 3.0307999986689538, + 2.9257999995024875, + 2.9455999974743463, + 2.925400000094669, + 2.784399999654852, + 3.224600000976352, + 3.090500002144836, + 3.181200001563411, + 3.0310000001918525, + 2.897299997130176, + 2.9317000007722527, + 2.916099998401478, + 2.8788999989046715, + 2.918499998486368, + 2.8844999978900887, + 2.8655000023718458, + 3.0243999972299207, + 3.15010000122129, + 3.287400002591312, + 3.2035000003816094, + 3.022899996722117, + 4.163599998719292, + 4.8553999986324925 + ], + "library": [ + 3.0760000008740462, + 3.056599998672027, + 2.853599999070866, + 2.803699997457443, + 2.998500000103377, + 3.066899997065775, + 4.1608999999880325, + 3.150599997752579, + 2.8883999984827824, + 3.4219000008306466, + 3.278899999713758, + 3.0987999998615123, + 3.0876999990141485, + 2.81889999678242, + 3.165800000715535, + 2.885699999751523, + 2.7644000001600944, + 2.7769000007538125, + 2.854099999240134, + 2.7907000003324356, + 2.92990000161808, + 3.3481999998912215, + 3.467800001089927, + 3.0743999996047933, + 2.9746000000159256, + 3.054199998587137, + 3.683000002638437, + 4.880099997535581, + 3.365000000485452, + 3.0477000000246335, + 3.6789000005228445, + 3.020500000275206, + 3.147499999613501, + 3.0737000015506055, + 3.1001999996078666, + 3.033500001038192, + 2.933700001449324, + 3.058400001464179, + 3.027200000360608, + 2.9508000006899238, + 3.0131999992590863, + 3.2543999986955896, + 3.207599998859223, + 3.5100999994028825, + 3.1299000002036337, + 2.903900000092108, + 2.9037999993306585, + 3.0093000023043714, + 3.0549000002793036, + 3.20099999953527, + 3.048299997317372, + 2.8429000012692995, + 3.2794999970064964, + 2.9954999990877695, + 2.80410000050324, + 2.8686000005109236, + 2.82100000185892, + 2.8025999999954365, + 2.846399998816196, + 3.0689000013808254, + 2.9048999967926648, + 3.097900000284426, + 2.8974999986530747, + 2.9116999976395164, + 2.857900002709357, + 3.0980000010458753, + 2.90580000000773, + 3.037800001038704, + 2.9135999975551385, + 2.872899996873457, + 2.854599999409402, + 3.597200000513112, + 2.9978999991726596, + 3.0910000023141038, + 3.3230000008188654, + 3.065299999434501, + 3.324199999042321, + 3.2879999998840503, + 3.279700002167374, + 3.3987999995588325, + 2.808100001857383, + 2.7334000005794223, + 2.788699999655364, + 2.8931999986525625, + 3.0411000007006805, + 2.9998000027262606, + 3.0660000011266675, + 3.1496999981754925, + 3.010500000527827, + 3.292099998361664, + 3.0846000008750707, + 2.9281999995873775, + 3.0799999985902105, + 2.848600001016166, + 2.836100000422448, + 2.8395999979693443, + 3.0815999998594634, + 2.993500002048677, + 2.8696000008494593, + 2.72449999829405, + 4.30190000042785, + 5.899299998418428, + 4.028999999718508, + 4.172000000835396, + 4.024199999548728, + 3.5605000011855736, + 3.304400001070462, + 3.3900999987963587, + 3.3457999998063315, + 3.6661999984062277, + 3.398899996682303, + 3.5395000013522804, + 3.3145000015792903, + 3.1899999994493555, + 3.178700000717072, + 3.01969999782159, + 3.2845999994606245, + 3.138399999443209, + 3.0647000021417625, + 3.0831999974907376, + 3.371599999809405, + 3.2995000001392327, + 3.5123000016028527, + 3.429699998378055, + 3.232999999454478, + 3.2761000002210494, + 3.1493999995291233, + 3.1161000006250106, + 3.170799998770235, + 2.9976000005262904, + 3.0670000014652032, + 3.118499997071922, + 3.028999999514781, + 3.2012999981816392, + 3.0839999999443535, + 3.0583999978262, + 3.054699998756405, + 3.090199999860488, + 2.9751000001851935, + 3.1337999971583486, + 3.3922000002348796, + 3.3708000009937678, + 3.4244999988004565, + 3.4940000005008187, + 3.41860000116867, + 3.3642999987932853, + 3.3230000008188654, + 3.5736999998334795, + 3.4397000017634127, + 3.599800002120901, + 3.3105000002251472, + 3.5369000033824705, + 3.242799997678958, + 3.20080000165035, + 3.2156999986909796, + 3.2797999992908444, + 3.52529999872786, + 3.3010000006470364, + 3.2510000019101426, + 3.3063000009860843, + 3.905100002157269, + 3.7215000011201482, + 3.6943000013707206, + 3.5887999983970076, + 3.590499996789731, + 3.7491000002773944, + 3.5943000002589542, + 3.8369000030797906, + 3.7057000008644536, + 3.6577000028046314, + 3.583700003218837, + 3.809599998930935, + 3.6392000001796987, + 3.7339999980758876, + 3.7677000000257976, + 3.653299998404691, + 4.04049999997369, + 3.946400000131689, + 3.812300001300173, + 3.753300003154436, + 3.160399999615038, + 3.2417000002169516, + 2.9484999977285042, + 2.9342999987420626, + 3.0086999977356754, + 2.978699998493539, + 3.0451000020548236, + 3.121499998087529, + 3.1500000004598405, + 3.408999997191131, + 3.0416000008699484, + 2.9980999970575795, + 2.8227000002516434, + 2.9549999999289867, + 3.757999998924788, + 3.036500002053799, + 2.952200000436278, + 3.031100000953302, + 3.021799999260111, + 2.8210999989823904, + 3.074899999774061, + 2.877700000681216, + 2.8775999999197666, + 2.781799998047063, + 2.698899999813875, + 2.724000001762761, + 2.7069999996456318, + 2.7722000013454817, + 2.8577000011864584, + 2.8108000005886424, + 2.707600000576349, + 2.808000001095934, + 2.7982999999949243, + 2.822299997205846, + 4.034100002172636, + 2.8453000013541896, + 2.7296999978716485, + 2.7230999985476956, + 2.6556999982858542, + 2.97100000170758, + 2.9833000007783994, + 3.042000000277767, + 2.909300001192605, + 3.0150999991747085, + 3.1180999976641033, + 3.0994000007922295, + 3.1970999989425763, + 3.0947999985073693, + 3.109799999947427, + 2.976600000692997, + 3.1479000026592985, + 3.345900000567781, + 3.1471000002056826, + 3.087900000537047, + 3.2229000025836285, + 3.0662999997730367, + 3.062400002818322, + 2.940499998658197, + 3.0470999990939163, + 2.9040999979770277, + 5.35650000165333, + 5.395100000896491, + 5.24770000265562, + 5.431199999293312, + 9.74800000039977, + 6.004300001222873, + 5.894800000532996, + 5.917099999351194, + 5.546100001083687, + 5.199700000957819, + 5.1395000009506475, + 5.136700001457939, + 4.983300001185853, + 4.894900001090718, + 5.05909999992582, + 5.075699998997152, + 5.082399999082554, + 5.354500000976259, + 5.140299999766285, + 4.995499999495223, + 3.0886999993526842, + 3.3738999991328456, + 3.0776999992667697, + 3.073600000789156, + 3.030899999430403, + 3.1433000003744382, + 3.9648000019951724, + 3.0994000007922295, + 3.2652000008965842, + 3.052299998671515, + 3.60749999890686, + 3.291299999546027, + 3.2274000004690606, + 3.3745000000635628, + 3.4942000020237174, + 3.466500002105022, + 3.495699998893542, + 3.490099999908125, + 3.5064000003330875, + 3.404999999474967, + 3.0188000018824823, + 2.846700001100544, + 2.7922000008402392, + 2.966000000014901, + 2.803800001856871, + 2.94670000221231, + 2.8506000016932376, + 2.80170000041835, + 2.8505000009317882, + 2.9625999995914754, + 3.0178000015439466, + 2.913200001785299, + 3.001199998834636, + 2.864800000679679, + 2.7956999983871356, + 2.854700000170851, + 2.9138999998394866, + 2.8812999989895616, + 3.0020999984117225, + 3.2725999990361743, + 3.700999997818144, + 4.0573000005679205, + 4.031399999803398, + 5.324499998096144, + 3.6867999988317024, + 4.03329999971902, + 3.8317999969876837, + 3.838799999357434, + 3.698700002132682, + 3.8254999999480788, + 3.8355000033334363, + 3.7197000019659754, + 3.7927999983367044, + 3.542799997376278, + 3.9590000014868565, + 3.83009999859496, + 3.350200000568293, + 3.1238000010489486, + 3.3210999972652644, + 3.2700000010663643, + 2.989199998410186, + 3.0537999991793185, + 3.178200000547804, + 3.1546999998681713, + 3.0837000012979843, + 2.860500000679167, + 3.040899999177782, + 3.0669999978272244, + 3.0638999996881466, + 3.0217000021366403, + 3.109900000708876, + 3.087599998252699, + 2.925200002209749, + 3.19600000148057, + 3.2337000011466444, + 3.0917000003682915, + 3.089099998760503, + 3.3048000004782807, + 3.484299999399809, + 3.4460000024409965, + 2.9910000012023374, + 3.37750000107917, + 2.9383000000962056, + 2.6891999987128656, + 2.8144999996584374, + 2.6690000013331883, + 3.0107999991741963, + 2.8655999994953163, + 2.7869999976246618, + 2.820500001689652, + 2.7776999995694496, + 2.7515000001585577, + 2.8620000011869706, + 2.6934000015899073, + 2.7702999977918807, + 2.8652999972109683, + 2.841400000761496, + 2.839299999322975, + 2.759300001343945, + 2.810400001180824, + 3.0909000015526544, + 3.1149999995250255, + 3.1587000012223143, + 3.0736999979126267, + 3.168500003084773, + 2.972799997223774, + 3.081800001382362, + 3.2332000009773765, + 2.964299997984199, + 3.314400000817841, + 3.2180999987758696, + 3.388100001757266, + 3.247700002248166, + 3.12359999952605, + 2.953199997136835, + 2.946299999166513, + 2.933100000518607, + 2.8958000002603512, + 2.9094000019540545, + 2.940499998658197, + 2.994799997395603, + 2.886700000090059, + 2.908700000261888, + 2.8203000001667533, + 2.894700002798345, + 2.9119999999238644, + 2.8692999985651113, + 2.8366999977151863, + 2.7673000004142523, + 2.9020000001764856, + 2.9256000016175676, + 2.9796000017086044, + 3.149499996652594, + 3.0877000026521273, + 4.404600000270875, + 2.957800003059674, + 2.9914999977336265, + 2.966699998069089, + 3.351999999722466, + 2.9940000022179447 + ] + }, + "warm_ms": { + "control": [ + 7.786699999996927, + 6.91220000226167, + 6.603300000278978 + ], + "exact": [ + 4.888499999651685, + 4.647099998692283, + 4.709000000730157 + ], + "lattice": [ + 3.846499999781372, + 3.5448000016913284, + 3.5055999978794716 + ], + "library": [ + 3.2892999988689553, + 3.4597999983816408, + 3.690400000778027 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 5.80074999925273, + "p10_ms": 5.386680000810884, + "p90_ms": 6.988709998768172, + "min_ms": 5.083600000943989, + "max_ms": 20.462699998461176, + "mean_ms": 6.3280679999752465 + }, + "exact": { + "n": 400, + "median_ms": 4.229149999446236, + "p10_ms": 3.782349999892176, + "p90_ms": 7.90409999972328, + "min_ms": 3.329999999550637, + "max_ms": 17.535200000565965, + "mean_ms": 4.934393249941422 + }, + "lattice": { + "n": 400, + "median_ms": 3.1411499985551927, + "p10_ms": 2.838109999720473, + "p90_ms": 5.256519998874865, + "min_ms": 2.582199998869328, + "max_ms": 7.884399998147273, + "mean_ms": 3.611824249946949 + }, + "library": { + "n": 400, + "median_ms": 3.087700000833138, + "p10_ms": 2.820950001841993, + "p90_ms": 3.8356400033080718, + "min_ms": 2.6556999982858542, + "max_ms": 9.74800000039977, + "mean_ms": 3.2951717500145605 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 1.8466962742692485, + "ci90_low": 1.827622553475624, + "ci90_high": 1.867166968886364, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.3716113166977477, + "ci90_low": 1.3550955065398347, + "ci90_high": 1.3900184307563013, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.3463699604894643, + "ci90_low": 1.3288862875599985, + "ci90_high": 1.3631805348791013, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 0.9829839397205993, + "ci90_low": 0.9730603737882488, + "ci90_high": 0.9928128895926929, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 1.878663729535753, + "ci90_low": 1.8628075494350393, + "ci90_high": 1.8989944516450343, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.8281615234716586, + "p10": 1.5178757819446373, + "p90": 2.0872434212720266 + }, + "minimum_detectable_improvement": 0.276176356189056, + "compile": { + "control": { + "lower_s": 2.8456390999999712, + "compile_s": 4.676574699999037, + "first_call_s": 0.006975899999815738, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 7052562.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 4823704, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 870187008, + "rss_after_compile_bytes": 873422848, + "rss_delta_bytes": 3235840, + "hlo_sha256": "9bbeba1b382f9674", + "hlo_lines": 21541, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 2.5912996000006387, + "compile_s": 4.643955700001243, + "first_call_s": 0.005440600001747953, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 4054782.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1775832, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 873422848, + "rss_after_compile_bytes": 874012672, + "rss_delta_bytes": 589824, + "hlo_sha256": "8a75dd9469f1be85", + "hlo_lines": 21435, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 2.7978517999981705, + "compile_s": 5.775115599997662, + "first_call_s": 0.004946400000335416, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3382542.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 874012672, + "rss_after_compile_bytes": 875634688, + "rss_delta_bytes": 1622016, + "hlo_sha256": "476fe8b9c81c5c43", + "hlo_lines": 21435, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 2.735940099999425, + "compile_s": 5.263677900002222, + "first_call_s": 0.005692599999747472, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3382542.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 875634688, + "rss_after_compile_bytes": 877256704, + "rss_delta_bytes": 1622016, + "hlo_sha256": "476fe8b9c81c5c43", + "hlo_lines": 21435, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ], + "exact": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ], + "lattice": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ], + "library": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 7.196577317761015, + "exact": 7.196577317761015, + "lattice": 7.196577317761015, + "library": 7.196577317761015 + } + }, + "cluster_solved": { + "label": "cluster_solved", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 68.66409999929601, + 73.42179999977816, + 73.91999999890686, + 87.04539999962435, + 76.57889999973122, + 72.79030000063358, + 70.12570000006235, + 66.91109999883338, + 65.41049999941606, + 71.68059999821708, + 72.09730000249692, + 67.80150000122376, + 68.3552000009513, + 65.9285000001546, + 68.03170000057435, + 63.78050000057556, + 67.43859999915003, + 63.11920000007376, + 66.68789999821456, + 69.83069999841973, + 62.10970000029192, + 62.18319999970845, + 62.64490000103251, + 73.07130000117468, + 72.16479999988223, + 66.7740999997477, + 69.581300002028, + 65.90760000108276, + 67.50290000127279, + 62.319699998624856, + 62.14410000029602, + 60.87090000073658, + 71.01219999822206, + 64.04870000187657, + 63.57500000012806, + 65.64489999800571, + 62.36920000083046, + 61.644600002182415, + 61.27259999993839, + 67.14520000241464, + 77.68439999927068, + 69.80879999900935, + 67.10469999961788, + 65.75130000055651, + 70.62569999834523, + 62.522799998987466, + 66.25989999884041, + 69.63689999975031, + 61.46970000190777, + 64.91359999927226, + 66.20619999739574, + 67.60760000179289, + 63.53470000249217, + 60.098400001152186, + 65.24159999753465, + 62.13939999724971, + 64.22759999986738, + 63.15279999762424, + 70.12150000082329, + 73.72360000226763, + 78.72040000074776, + 60.41449999975157, + 61.4402000028349, + 63.340999997308245, + 58.733600002597086, + 60.580199999094475, + 64.52979999812669, + 69.11069999841857, + 63.94640000144136, + 66.57039999845438, + 68.42880000112928, + 71.82649999958812, + 91.11219999977038, + 63.27719999899273, + 60.388899997633416, + 66.99859999935143, + 62.70619999850169, + 63.08970000100089, + 58.586500003002584, + 62.51139999949373, + 68.71630000023288, + 74.59230000313255, + 72.83780000216211, + 78.18870000119205, + 70.7767000021704, + 69.99109999742359, + 72.63220000095316, + 66.60850000116625, + 66.99339999977383, + 64.85969999994268, + 64.0071000016178, + 62.6111999990826, + 74.22239999868907, + 85.21240000118269, + 76.12230000086129, + 78.41289999851142, + 68.79709999702754, + 67.40060000083758, + 64.66599999839673, + 68.60930000038934, + 68.29080000170507, + 62.85070000012638, + 61.75640000219573, + 67.93990000005579, + 68.94610000017565, + 81.44460000039544, + 73.8937000023725, + 87.52410000306554, + 65.29220000084024, + 72.8914999999688, + 65.58199999926728, + 73.30799999908777, + 64.12540000019362, + 66.84229999882518, + 58.56580000181566, + 62.11460000122315, + 60.3201000012632, + 63.63819999751286, + 65.37050000042655, + 63.4128999990935, + 57.63999999908265, + 62.92109999776585, + 60.21840000175871, + 63.626600000134204, + 62.9523000025074, + 63.19520000033663, + 60.943000000406755, + 65.97569999939878, + 64.67080000220449, + 62.57209999967017, + 61.95020000086515, + 63.99009999950067, + 72.27910000074189, + 69.31450000047334, + 64.83220000154688, + 69.87669999944046, + 74.0802000000258, + 65.78050000098301, + 64.60970000262023, + 62.73069999951986, + 74.87410000248929, + 64.43079999735346, + 63.805100002355175, + 64.34889999945881, + 65.44880000001285, + 63.23239999983343, + 60.52769999951124, + 61.22469999900204, + 63.444600000366336, + 64.5433999998204, + 66.36649999927613, + 63.45769999825279, + 64.43099999887636, + 60.85549999988871, + 61.591300000145566, + 59.171799999603536, + 62.06179999935557, + 71.72089999949094, + 59.893000001466135, + 60.37519999881624, + 64.9829000030877, + 60.41580000237445, + 70.10540000192123, + 66.27930000104243, + 77.82520000182558, + 66.94339999739896, + 66.23689999833005, + 70.29989999864483, + 62.95699999827775, + 67.34460000006948, + 67.10279999970226, + 79.4979999991483, + 63.999399997555884, + 66.28450000062003, + 66.57839999752468, + 64.23730000096839, + 63.50709999969695, + 63.970999999583, + 62.02800000028219, + 68.11790000210749, + 88.03750000151922, + 102.44720000264351, + 108.15840000213939, + 96.66040000229259, + 97.53949999867473, + 100.75299999880372, + 101.43330000209971, + 85.73689999684575, + 95.26149999874178, + 84.58120000068448, + 84.5761999989918, + 92.7945000003092, + 86.04490000288934, + 96.27159999945434, + 90.08069999981672, + 87.64339999834192, + 84.24680000098306, + 89.57359999840264, + 81.01829999941401, + 87.85279999938211, + 92.60160000121687, + 91.93130000130623, + 94.07649999775458, + 83.59070000005886, + 86.98519999961718, + 82.84909999929368, + 93.90329999951064, + 82.45020000322256, + 79.14879999952973, + 83.6038000015833, + 93.63850000227103, + 84.57839999755379, + 78.94620000297436, + 80.30709999729879, + 76.68879999982892, + 100.98590000052354, + 68.60589999996591, + 71.7263999977149, + 97.3493999990751, + 65.08019999819226, + 77.88559999971767, + 76.2944999987667, + 79.90110000173445, + 89.11929999885615, + 78.19849999941653, + 87.48809999815421, + 90.81290000176523, + 80.4762000007031, + 90.55780000198865, + 75.60119999834569, + 75.63200000004144, + 72.87140000335057, + 78.07139999931678, + 78.13589999932447, + 98.88670000145794, + 83.90179999696556, + 77.71259999935864, + 74.6447999990778, + 90.9006000001682, + 71.89650000145775, + 67.78839999969932, + 67.23640000200248, + 76.58480000100099, + 68.8360999993165, + 69.72270000187564, + 72.27960000091116, + 70.5454999988433, + 72.7790000019013, + 78.87330000085058, + 80.74369999667397, + 76.14209999883315, + 72.7188999990176, + 72.00849999935599, + 75.27920000211452, + 71.25829999858979, + 75.54909999817028, + 72.47869999991963, + 73.29299999764771, + 78.90870000119321, + 86.51230000032228, + 78.02219999939553, + 67.06950000079814, + 73.24919999882695, + 73.27789999908418, + 70.52589999875636, + 93.2018000021344, + 69.31990000157384, + 76.31930000206921, + 89.70030000273255, + 85.79500000269036, + 84.19530000173836, + 82.32260000295355, + 81.30879999953322, + 82.431999999244, + 76.19759999943199, + 79.45130000007339, + 80.97840000118595, + 79.19870000114315, + 89.39340000142693, + 81.16019999943092, + 111.80419999800506, + 98.24639999715146, + 108.4487000007357, + 100.80530000050203, + 106.84910000054515, + 119.02619999818853, + 99.15660000115167, + 103.67199999745935, + 99.72070000003441, + 107.97839999941061, + 109.92610000175773, + 145.16779999758, + 99.99550000065938, + 139.83600000210572, + 116.4360000002489, + 125.3355000008014, + 105.06039999745553, + 112.11270000057993, + 102.43199999968056, + 121.70049999986077, + 98.64720000041416, + 103.73130000152742, + 113.82340000272961, + 111.97299999912502, + 112.10719999871799, + 97.51200000027893, + 94.07609999834676, + 92.13680000175373, + 110.45290000038221, + 109.3405999999959, + 108.75559999840334, + 111.77839999800199, + 96.14979999969364, + 203.77299999745446, + 256.73149999784073, + 299.8369000015373, + 134.6858000033535, + 126.9283000001451, + 114.5223999992595, + 106.57589999755146, + 91.60530000008293, + 78.2193000013649, + 82.18940000006114, + 91.2185999986832, + 86.70569999958389, + 81.3680999999633, + 95.928399998229, + 83.15909999873838, + 81.8479000008665, + 82.86589999988792, + 94.03480000037234, + 94.2298000009032, + 96.73090000069351, + 103.41789999802131, + 104.44239999924321, + 87.31320000151754, + 84.67770000061137, + 86.02020000034827, + 85.1583000003302, + 88.67520000057993, + 88.8812000011967, + 86.80000000094878, + 87.06999999776599, + 89.54610000000685, + 84.58519999840064, + 79.8787000021548, + 87.80639999895357, + 82.07079999920097, + 99.73469999749796, + 85.52509999935864, + 92.0016999989457, + 78.23970000026748, + 82.36179999948945, + 107.60420000224258, + 79.28469999751542, + 99.42609999779961, + 79.40969999981462, + 78.66640000065672, + 89.73479999986012, + 94.37700000125915, + 92.31089999957476, + 79.74990000002435, + 80.43819999875268, + 91.93950000189943, + 85.49869999842485, + 94.38709999813, + 77.38509999762755, + 82.19540000209236, + 82.52889999857871, + 87.27970000109053, + 91.42639999845414, + 81.42989999760175, + 83.50900000004913, + 80.51310000155354, + 77.99370000066119, + 94.0773000002082, + 84.5383000014408, + 79.27740000013728, + 82.7860999997938, + 77.34780000100727, + 103.74330000195187, + 85.72780000031344, + 92.17239999998128, + 82.55070000086562, + 85.09599999888451, + 84.15410000088741, + 79.84720000240486, + 78.38669999910053, + 82.08899999954156, + 86.7203999987396, + 91.20850000181235, + 87.03650000097696, + 91.15539999766042, + 95.2393999978085, + 99.39769999982673, + 87.48290000221459, + 82.59389999875566, + 83.38979999825824, + 94.00379999715369, + 94.26739999980782 + ], + "exact": [ + 32.519299998966744, + 32.5702000009187, + 35.26100000090082, + 34.48209999987739, + 33.66539999842644, + 36.11319999981788, + 35.45060000033118, + 33.78549999979441, + 33.956399998714915, + 39.06560000177706, + 34.28899999926216, + 34.27999999985332, + 32.97010000096634, + 34.24750000340282, + 34.54260000216891, + 33.90829999989364, + 33.50309999950696, + 35.49550000025192, + 32.654200000251876, + 40.66479999892181, + 30.18270000029588, + 31.328399996709777, + 33.47539999958826, + 31.568599999445723, + 31.895500000246102, + 34.3804000003729, + 33.542599998327205, + 32.613100000162376, + 32.9024999991816, + 34.55079999912414, + 34.31110000019544, + 33.268800001678756, + 32.48170000006212, + 32.79059999840683, + 35.84450000198558, + 35.489900001266506, + 32.92349999901489, + 31.79249999811873, + 34.50629999861121, + 33.11229999962961, + 36.6905000009865, + 36.94560000076308, + 41.766099999222206, + 39.182200001960155, + 37.65909999856376, + 38.8639000011608, + 36.67409999980009, + 45.65240000010817, + 40.460199998051394, + 39.85770000144839, + 37.52449999956298, + 36.87019999779295, + 35.69789999892237, + 38.286800001515076, + 37.002100001700455, + 34.684500002185814, + 36.46149999985937, + 36.41750000315369, + 33.82670000064536, + 39.73670000050333, + 31.91520000109449, + 32.47639999972307, + 33.22009999828879, + 34.09710000050836, + 33.624800002144184, + 36.08710000116844, + 40.951199996925425, + 34.309599999687634, + 34.76989999762736, + 37.15890000239597, + 34.30759999901056, + 37.24759999749949, + 33.719299997756025, + 34.46470000199042, + 32.80129999984638, + 33.34539999923436, + 31.9707999988168, + 37.474400000064634, + 35.13240000029327, + 35.53499999907217, + 32.898500001465436, + 32.54659999947762, + 34.70300000117277, + 34.82319999966421, + 32.73819999958505, + 34.15070000119158, + 35.79420000096434, + 34.384700000373414, + 32.837800001289, + 33.05049999835319, + 32.81450000213226, + 32.722299998567905, + 33.89630000310717, + 36.81660000074771, + 35.69860000061453, + 35.964399998192675, + 40.038499999354826, + 36.90629999982775, + 35.49120000025141, + 39.68429999804357, + 35.74360000129673, + 36.16930000134744, + 36.67200000199955, + 34.34879999986151, + 35.94599999996717, + 33.14789999785717, + 33.38850000000093, + 36.30730000077165, + 41.73380000065663, + 36.52689999944414, + 38.848200001666555, + 36.93320000093081, + 34.47000000232947, + 33.83830000166199, + 36.832899997534696, + 33.45099999933154, + 33.448199999838835, + 32.9851000024064, + 32.15239999917685, + 37.48750000158907, + 36.87279999940074, + 32.601300001260825, + 31.45360000053188, + 33.86310000132653, + 32.0257000021229, + 35.001400003238814, + 33.5588000016287, + 31.82089999972959, + 34.110900000086986, + 32.085800001368625, + 34.72600000168313, + 32.95849999994971, + 32.72359999755281, + 33.36209999906714, + 32.43600000132574, + 33.23190000082832, + 33.607500001380686, + 35.35399999964284, + 33.60579999934998, + 32.127200000104494, + 33.28250000049593, + 31.560999999783235, + 33.18840000065393, + 32.21490000214544, + 32.80570000060834, + 33.283400000073016, + 32.34359999987646, + 37.60289999991073, + 34.88590000051772, + 33.697599999868544, + 34.720799998467555, + 32.163399999262765, + 32.4045000015758, + 32.44709999853512, + 33.208200002263766, + 32.63650000008056, + 33.061299996916205, + 34.69869999753428, + 33.14749999844935, + 32.4932000003173, + 38.39220000008936, + 44.07580000042799, + 36.35829999984708, + 38.45700000238139, + 36.40900000027614, + 35.187599998607766, + 35.932599999796366, + 40.54550000000745, + 44.5255000013276, + 40.118799999618204, + 36.60120000131428, + 37.762399999337504, + 35.054700001637684, + 34.70000000015716, + 35.2999999995518, + 34.69000000040978, + 35.809299999527866, + 35.75089999867487, + 34.31249999994179, + 33.88759999870672, + 35.29949999938253, + 36.036500001500826, + 34.718599999905564, + 35.739300001296215, + 35.96179999658489, + 38.84159999870462, + 40.53779999958351, + 41.72580000158632, + 43.561400001635775, + 48.91240000142716, + 51.43790000147419, + 58.5030000002007, + 55.586299997230526, + 45.41380000227946, + 50.338699998974334, + 56.35510000138311, + 63.87700000050245, + 57.48920000041835, + 66.54170000183512, + 57.6946000001044, + 36.411799999768846, + 43.19720000057714, + 37.12169999926118, + 37.113600003067404, + 35.591500000009546, + 43.176899998798035, + 49.31120000037481, + 37.0470000016212, + 42.33160000148928, + 40.10780000317027, + 37.280900000041584, + 39.65560000142432, + 45.95010000048205, + 38.84179999658954, + 36.027099999046186, + 35.95750000022235, + 35.51969999898574, + 36.830799999734154, + 37.16749999875901, + 39.075700002285885, + 42.39729999972042, + 36.50800000104937, + 38.67920000266167, + 40.11959999843384, + 37.24240000155987, + 46.15230000126758, + 35.74749999825144, + 40.571100002125604, + 36.15919999720063, + 36.9645999999193, + 41.28689999924973, + 36.33359999730601, + 44.790899999497924, + 53.50909999833675, + 52.29799999870011, + 42.37989999819547, + 40.18269999869517, + 46.247399997810135, + 40.10740000012447, + 40.96400000344147, + 35.66580000187969, + 38.722300003428245, + 36.646599997766316, + 41.78899999897112, + 40.769700000964804, + 44.318899999780115, + 36.94109999923967, + 36.31660000246484, + 41.00259999904665, + 44.21089999959804, + 38.500200000271434, + 36.40159999849857, + 37.52179999719374, + 39.72639999847161, + 39.695300001767464, + 37.35930000038934, + 36.765100001503015, + 37.83649999968475, + 46.23959999662475, + 43.319200001860736, + 34.6235999968485, + 46.01439999896684, + 36.65919999912148, + 37.71069999856991, + 35.405300001002615, + 38.16939999887836, + 53.43350000111968, + 47.66399999789428, + 44.96530000324128, + 42.114899999432964, + 43.31310000270605, + 51.81250000168802, + 48.23759999999311, + 49.5532999993884, + 50.70740000155638, + 53.498000001127366, + 51.76550000032876, + 43.46609999993234, + 45.29760000150418, + 39.704599999822676, + 51.855699999578064, + 49.17529999875114, + 56.83570000110194, + 50.32589999973425, + 51.909099998738384, + 64.3735999983619, + 58.10620000193012, + 58.70800000047893, + 53.014599998277845, + 55.02080000223941, + 51.824199999828124, + 55.04100000325707, + 64.17959999816958, + 60.123299997940194, + 51.253300000098534, + 65.18950000099721, + 56.19179999848711, + 62.409599999227794, + 56.23329999798443, + 55.18630000005942, + 62.86529999852064, + 64.5074999993085, + 58.38750000111759, + 55.67789999986417, + 52.70329999984824, + 57.20609999843873, + 53.39319999984582, + 50.83000000013271, + 54.43179999929271, + 47.25479999979143, + 53.38370000026771, + 53.51159999918309, + 59.007500000006985, + 60.04250000114553, + 57.928300000639865, + 55.83459999979823, + 51.8740000006801, + 52.14669999986654, + 55.804100000386825, + 50.18279999785591, + 50.32349999964936, + 47.106199999689125, + 44.21670000010636, + 43.484099998750025, + 61.039999996864935, + 55.18840000149794, + 48.32109999915701, + 51.78390000219224, + 46.43230000147014, + 50.91259999971953, + 47.71949999849312, + 47.73940000086441, + 45.80989999885787, + 43.728500000725035, + 48.69949999920209, + 46.09820000041509, + 47.133099997154204, + 47.345300001325086, + 43.7168999997084, + 43.67340000317199, + 44.31730000214884, + 51.23910000111209, + 52.7715000025637, + 43.953799999144394, + 42.0269999995071, + 50.49389999840059, + 43.95999999906053, + 41.734599999472266, + 44.880599998577964, + 51.45050000282936, + 41.05899999922258, + 40.302400000655325, + 42.82729999977164, + 38.82819999853382, + 43.75189999700524, + 47.125199998845346, + 41.03260000192677, + 42.168099997070385, + 55.12149999776739, + 45.927800001663854, + 44.858400000521215, + 45.44810000152211, + 44.243600001209415, + 43.205899997701636, + 42.06799999883515, + 45.07750000266242, + 51.30690000078175, + 52.67969999840716, + 49.38340000080643, + 48.89230000117095, + 56.57889999929466, + 58.97159999949508, + 57.340699997439515, + 57.73540000154753, + 53.106200000911485, + 55.37230000118143, + 55.28989999947953, + 67.8360000019893, + 63.19119999898248, + 77.17699999921024, + 47.54060000050231, + 43.55759999816655, + 41.08020000057877, + 45.34309999871766, + 48.63079999995534, + 52.67000000094413, + 41.14590000244789, + 43.55729999952018, + 42.07300000052783, + 45.91250000157743, + 41.17549999864423, + 45.614900001965, + 41.55539999919711, + 46.914700000343146, + 46.474100003251806, + 41.74259999854257, + 48.24210000151652, + 40.433300000586314, + 44.36050000003888, + 50.15830000047572 + ], + "lattice": [ + 26.642599998012884, + 25.5594000009296, + 26.534800002991688, + 26.624800000718096, + 26.202100001682993, + 26.68440000343253, + 26.947799997287802, + 25.9412000013981, + 25.297299998783274, + 23.9356999991287, + 25.461000001087086, + 25.24239999911515, + 24.403800001891796, + 23.945199998706812, + 24.588500000390923, + 25.37519999896176, + 25.64169999823207, + 25.110500002483604, + 26.562300001387484, + 26.714700001321035, + 25.322900000901427, + 25.526699999318225, + 24.9909000012849, + 25.7701000009547, + 24.70979999998235, + 24.926099998992868, + 28.39759999915259, + 25.766200000362005, + 24.466899998515146, + 25.264899999456247, + 24.24289999908069, + 25.212300002749544, + 23.82930000021588, + 23.981399997865083, + 24.493900000379654, + 24.80469999863999, + 24.51900000232854, + 24.74159999837866, + 23.76659999936237, + 24.661200000991812, + 28.22359999845503, + 25.752400000783382, + 24.017400002776412, + 25.337499999295687, + 24.926699999923585, + 26.35759999975562, + 25.623000001360197, + 25.483400000666734, + 25.45800000007148, + 25.010900000779657, + 26.936999998724787, + 27.082800002972363, + 25.070299998333212, + 26.245399996696506, + 24.800800001685275, + 25.122700000792975, + 24.138699998729862, + 24.664900000061607, + 17.932099999597995, + 24.406399999861605, + 25.009000000864035, + 26.841299997613532, + 25.023500002134824, + 25.739600001543295, + 24.808099999063415, + 25.178200001391815, + 25.011900001118192, + 26.395799999590963, + 31.885699998383643, + 27.22609999909764, + 31.894699997792486, + 26.252899999235524, + 26.59520000088378, + 27.031199999328237, + 21.88680000108434, + 30.895799998688744, + 26.677899997594068, + 32.059100001788465, + 29.650299999048002, + 27.264500000455882, + 27.690100003383122, + 27.960600000369595, + 27.945699999690987, + 27.16570000120555, + 27.638999999908265, + 26.936400001432048, + 26.49770000061835, + 26.857000000745757, + 33.67269999944256, + 26.653999997506617, + 25.49900000303751, + 27.21910000036587, + 25.623500001529464, + 25.74770000137505, + 27.93250000104308, + 25.416000000404892, + 25.38999999887892, + 24.43700000003446, + 25.95599999767728, + 25.969899998017354, + 26.708000001235632, + 26.307500000257278, + 27.048799998738104, + 28.437600001780083, + 27.440400001069065, + 26.45180000035907, + 26.499999999941792, + 26.347099999838974, + 26.62419999978738, + 26.85650000057649, + 26.41610000137007, + 31.967399998393375, + 24.750799999310402, + 25.89050000096904, + 26.025299997854745, + 25.655199999164324, + 25.037799998244736, + 24.81690000058734, + 24.745599999732804, + 24.904300000343937, + 29.025499999988824, + 27.260800001386087, + 27.232399999775225, + 24.588600001152372, + 26.020799999969313, + 24.478799998178147, + 25.292000002082204, + 23.197099999379134, + 23.446400002285372, + 24.041799999395153, + 25.446499999816297, + 24.098400001093978, + 31.309500001952983, + 24.249299996881746, + 25.278299999627052, + 25.217899998096982, + 25.681899998744484, + 26.969300000928342, + 25.374000000738306, + 24.91550000195275, + 24.897700001019984, + 25.243799998861505, + 24.666000001161592, + 24.069899998721667, + 26.142199996684212, + 25.429500001337146, + 24.012800000491552, + 24.483900000632275, + 24.04739999838057, + 25.25239999886253, + 26.065500002005138, + 25.605999999243068, + 24.346000001969514, + 24.788999999145744, + 30.580300001020078, + 16.90499999676831, + 24.62569999988773, + 24.459700001898455, + 24.917099999584025, + 24.149500000930857, + 26.704399999289308, + 25.696599997900194, + 27.9839999966498, + 28.58869999909075, + 24.94699999806471, + 24.766399998043198, + 28.79209999809973, + 25.013400001625996, + 23.84840000013355, + 25.10390000315965, + 23.48320000237436, + 24.261099999421276, + 24.73470000040834, + 23.69170000019949, + 23.786599998857128, + 24.51370000198949, + 23.489600000175415, + 23.482600001443643, + 24.66629999980796, + 23.670399998081848, + 39.6314000026905, + 43.76980000233743, + 33.711700001731515, + 37.805699997988995, + 39.49099999954342, + 34.87259999747039, + 36.59920000063721, + 33.625200001552, + 33.088099997257814, + 32.95129999969504, + 36.540599998261314, + 40.07429999910528, + 32.62000000177068, + 31.992299998819362, + 33.713700002408586, + 36.15709999940009, + 33.83709999980056, + 42.769900002895156, + 37.462799999048, + 37.45139999955427, + 34.21389999857638, + 33.44409999772324, + 35.97549999904004, + 38.420100001530955, + 31.14840000125696, + 34.01500000109081, + 31.687000002420973, + 31.076600000233157, + 31.129999999393476, + 35.42670000024373, + 34.2397999993409, + 32.18930000002729, + 31.533999997918727, + 33.26580000066315, + 33.27060000083293, + 38.809699999546865, + 35.34389999913401, + 31.509200001892168, + 33.16909999921336, + 32.09739999874728, + 32.908400000451365, + 29.086799997458, + 29.75710000100662, + 30.656599999929313, + 31.52620000037132, + 27.460000001156004, + 34.35240000180784, + 27.561999999306863, + 28.289899997616885, + 26.879299999563955, + 31.183600000076694, + 27.72019999974873, + 28.267300000152318, + 28.142499999376014, + 27.869100002135383, + 27.7392999996664, + 26.523500000621425, + 26.958499998727348, + 27.63059999779216, + 25.93170000181999, + 33.96219999922323, + 36.01110000090557, + 33.04209999987506, + 28.575699998327764, + 27.921999997488456, + 28.66329999960726, + 34.15610000229208, + 28.815300000132993, + 29.820700001437217, + 27.881000001798384, + 33.84659999937867, + 26.808999999047955, + 27.641399999993155, + 37.07090000170865, + 31.122700002015335, + 27.672800002619624, + 32.318400000804104, + 29.762999998638406, + 27.92559999943478, + 30.488500000501517, + 32.61189999830094, + 31.447900000785012, + 33.29159999702824, + 28.676800000539515, + 29.020999998465413, + 28.37060000092606, + 29.012499999225838, + 30.348400003276765, + 31.174399999144953, + 31.261299998732284, + 28.354499998386018, + 28.6247000003641, + 27.689500002452405, + 28.298799999902258, + 27.45890000005602, + 28.15579999878537, + 27.82160000060685, + 26.847500001167646, + 26.22250000058557, + 28.21620000031544, + 32.13150000010501, + 32.240699998510536, + 31.568800000968622, + 30.30840000064927, + 32.23000000070897, + 31.93989999999758, + 29.778000000078464, + 32.88280000197119, + 29.853500000172062, + 30.401900003198534, + 34.08879999915371, + 29.910000001109438, + 34.69680000125663, + 39.71619999720133, + 38.68539999893983, + 38.19450000082725, + 39.05440000016824, + 34.33729999960633, + 36.726100002852036, + 33.68699999919045, + 34.9540999995952, + 35.22290000182693, + 34.115899998141686, + 35.61450000051991, + 32.82530000069528, + 34.78259999974398, + 33.24900000006892, + 33.44680000009248, + 32.77669999806676, + 38.10399999929359, + 30.709700000443263, + 34.07380000135163, + 32.11860000010347, + 32.36289999767905, + 31.9658000007621, + 30.830299998342525, + 34.321799997997005, + 33.44659999856958, + 31.754999999975553, + 31.555900000967085, + 33.46050000254763, + 32.43270000166376, + 32.550399999308866, + 31.205499999487074, + 31.392199998663273, + 36.114100003032945, + 32.04619999814895, + 34.3618000006245, + 31.61289999843575, + 32.72429999924498, + 32.45299999980489, + 32.731400002376176, + 33.30899999855319, + 32.49890000006417, + 34.23119999933988, + 30.895700001565274, + 32.427000001916895, + 32.062099999166094, + 30.668600000353763, + 37.14870000112569, + 31.831800002692034, + 35.59230000246316, + 38.90570000294247, + 33.184200001414865, + 30.769499997404637, + 32.081299999845214, + 33.958600000914885, + 31.759000001329696, + 30.971000000135973, + 35.42119999838178, + 32.05520000119577, + 34.451999999873806, + 33.793899998272536, + 30.897500000719447, + 29.99940000154311, + 20.426200000656536, + 31.67860000030487, + 30.95490000123391, + 31.35169999950449, + 31.00559999802499, + 38.308600000164006, + 34.88890000153333, + 35.75339999952121, + 39.19610000230023, + 32.562500000494765, + 38.08690000005299, + 32.58020000066608, + 33.61460000087391, + 33.443399999669055, + 32.56379999947967, + 38.08779999963008, + 30.852799998683622, + 31.990700001188088, + 31.304300002375385, + 31.838800001423806, + 30.598199999076314, + 29.49599999919883, + 29.61670000149752, + 30.138199999782955, + 33.49710000111372, + 30.921600002329797, + 31.272899999748915, + 29.761400001007132, + 30.833400000119582, + 33.817999999882886, + 30.816000002232613, + 29.61489999870537, + 40.919399998529116, + 29.759800003375858, + 30.370499996934086, + 32.398000003013294, + 36.16400000100839, + 33.817800001997966, + 36.60350000063772, + 32.56320000218693, + 32.85939999841503, + 31.80350000184262, + 35.049500002060086, + 31.07340000133263, + 29.869199999666307 + ], + "library": [ + 31.45609999774024, + 25.316100000054576, + 24.384500000451226, + 27.796499998657964, + 28.065200000128243, + 24.99800000077812, + 24.72219999981462, + 24.58719999776804, + 24.598099997092504, + 24.540200000046752, + 23.91910000005737, + 24.145100000168895, + 24.237500001618173, + 25.19140000003972, + 24.416400003246963, + 25.765999998839106, + 24.101700000755955, + 24.732500001846347, + 24.41519999774755, + 24.15619999737828, + 23.860400000558002, + 23.591699999087723, + 23.523600000771694, + 23.836299998947652, + 23.53439999933471, + 25.38079999794718, + 25.235799999791197, + 24.608900002931478, + 24.86299999873154, + 24.561800000810763, + 25.82790000087698, + 25.519999999232823, + 25.091499999689404, + 25.093699998251395, + 24.384600001212675, + 24.05450000151177, + 23.888399999123067, + 23.228099998959806, + 23.842899998271605, + 23.88250000149128, + 25.289699999120785, + 26.014999999460997, + 26.017899999715155, + 25.45069999905536, + 26.03399999861722, + 25.577299998985836, + 29.020199999649776, + 27.179300002899254, + 24.04469999964931, + 23.66709999841987, + 26.246099998388672, + 24.68579999913345, + 24.978800000099, + 29.003399999055546, + 29.98210000077961, + 29.168799999752082, + 29.6574000021792, + 28.09969999725581, + 28.7943000002997, + 27.23899999909918, + 27.20700000281795, + 26.700999998865882, + 27.41260000038892, + 26.172199999564327, + 27.474500002426794, + 26.92370000295341, + 27.33970000190311, + 26.244600001518847, + 27.788300001702737, + 27.72729999924195, + 28.60789999976987, + 27.334599999448983, + 27.50930000183871, + 24.6688000006543, + 24.18799999941257, + 25.32019999853219, + 26.837600002181716, + 17.002500000671716, + 25.971899998694425, + 24.252300001535332, + 25.275600000895793, + 24.43140000104904, + 28.769199998350814, + 24.733999998716172, + 23.519000002124812, + 15.923900002235314, + 24.418900000455324, + 25.149799999780953, + 24.529700000130106, + 26.93820000058622, + 25.918700001057005, + 27.833299998746952, + 24.95730000009644, + 24.94510000178707, + 24.499199997080723, + 24.535000000469154, + 26.269800000591204, + 26.398000001790933, + 26.31390000169631, + 25.61280000008992, + 25.125799998932052, + 24.456600000121398, + 24.418099998001708, + 24.55530000224826, + 24.188899998989655, + 24.20659999916097, + 24.430199999187607, + 27.997600001981482, + 23.73769999758224, + 24.36130000205594, + 24.13419999720645, + 24.11940000092727, + 24.356099998840364, + 26.4906999982486, + 23.399599998811027, + 27.132700000947807, + 23.687299999437528, + 23.767200000293087, + 24.06459999838262, + 23.953600000822917, + 24.18480000051204, + 24.61369999946328, + 24.828000001434702, + 24.939499999163672, + 24.628300001495518, + 28.845300003013108, + 26.081299998622853, + 24.72929999930784, + 25.234200002159923, + 23.81470000182162, + 23.521099999925354, + 24.394100000790786, + 24.54070000021602, + 24.125300002197037, + 24.636800000735093, + 23.79290000317269, + 23.748399999021785, + 24.115500000334578, + 23.858000000473112, + 23.799399998097215, + 24.254299998574425, + 16.581799998675706, + 25.88579999792273, + 26.134099996852456, + 26.355999998486368, + 25.148900000203867, + 24.466599999868777, + 25.47480000066571, + 26.375900000857655, + 24.271300000691554, + 24.44409999952768, + 24.406900000030873, + 24.3741999984195, + 24.91620000000694, + 23.992599999473896, + 23.722099998849444, + 23.08429999902728, + 23.82500000021537, + 24.69080000082613, + 25.73320000010426, + 23.605300000781426, + 25.19899999970221, + 23.43290000135312, + 23.830699999962235, + 23.77839999826392, + 23.95559999786201, + 25.00750000035623, + 25.161199999274686, + 28.9223999971, + 24.09540000007837, + 26.003499999205815, + 30.089399999269517, + 29.520699998101918, + 25.042000001121778, + 24.75570000024163, + 29.58750000107102, + 30.476200001430698, + 28.53589999722317, + 27.26290000282461, + 28.372699998726603, + 35.00699999858625, + 35.594200002378784, + 36.31350000068778, + 34.2791999973997, + 33.08430000106455, + 34.02300000016112, + 31.417499998497078, + 34.97550000247429, + 32.61729999940144, + 31.163700001343386, + 38.649999998597195, + 37.345799999457086, + 33.1253000003926, + 32.22559999994701, + 33.073599999625, + 33.82720000081463, + 33.281099997111596, + 34.534599999460625, + 31.813099998544203, + 37.35910000250442, + 32.4164000012388, + 31.380000000353903, + 35.182400002668146, + 33.026799999788636, + 31.318299999838928, + 32.73849999823142, + 30.305599997518584, + 32.66299999813782, + 42.71860000153538, + 37.12450000239187, + 30.892300001141848, + 34.667500000068685, + 32.732199997553835, + 32.8631000011228, + 31.754300001921365, + 31.628900000214344, + 31.028299999888986, + 32.7158000000054, + 30.47099999821512, + 30.806099999608705, + 27.703499999915948, + 32.43130000191741, + 26.567599998088554, + 28.06120000241208, + 28.85199999946053, + 28.38060000067344, + 27.493500001583016, + 27.645400001347298, + 29.833799999323674, + 28.638300002057804, + 27.59900000091875, + 26.70120000038878, + 26.73499999946216, + 28.65380000002915, + 25.877399999444606, + 26.819000002433313, + 30.96739999818965, + 27.126799999678042, + 26.593899998260895, + 27.472099998703925, + 27.987499997834675, + 28.27629999956116, + 31.156600001850165, + 30.310400001326343, + 27.09079999840469, + 26.8419999993057, + 27.273899999272544, + 27.549899998120964, + 28.346299997792812, + 27.720500002033077, + 27.287599998089718, + 27.518599999893922, + 27.730999998311745, + 27.161900001374306, + 25.790600000618724, + 26.53880000070785, + 32.388299998274306, + 26.87090000108583, + 26.961499999742955, + 26.69429999878048, + 25.975000000471482, + 26.226099998893915, + 27.416800003265962, + 26.770000000396976, + 28.45779999915976, + 28.202200002851896, + 26.857500000915024, + 27.62340000117547, + 34.16959999958635, + 27.855000000272412, + 26.402800001960713, + 28.127699999458855, + 27.310099998430815, + 26.30950000093435, + 25.756200000614626, + 25.8283000002848, + 26.344900001276983, + 28.0321999998705, + 27.100199997221353, + 27.481000000989297, + 33.571100000699516, + 41.50099999969825, + 36.82120000303257, + 36.55090000029304, + 37.583099998300895, + 41.04369999913615, + 37.57409999889205, + 37.96869999860064, + 39.19780000069295, + 40.518199999496574, + 39.569100001244806, + 41.3723999990907, + 38.913899999897694, + 36.77369999786606, + 41.483400000288384, + 39.69009999855189, + 48.49430000103894, + 39.82410000025993, + 45.153399998525856, + 38.05099999954109, + 39.44749999936903, + 41.342900000017835, + 39.12249999848427, + 37.9733000008855, + 39.03039999931934, + 38.74740000173915, + 39.67659999761963, + 41.038399998797104, + 40.212700001575286, + 41.13860000143177, + 42.56549999990966, + 37.348000001657056, + 35.56810000009136, + 37.43700000268291, + 45.760900000459515, + 41.124899998976616, + 36.09580000193091, + 35.50290000202949, + 34.81470000042464, + 37.46350000074017, + 31.430499999260064, + 33.49099999832106, + 32.831200001965044, + 36.57989999919664, + 29.10880000126781, + 33.06400000292342, + 30.380799998965813, + 34.15060000043013, + 34.856599999329774, + 30.67410000221571, + 31.674300000304356, + 31.176599997706944, + 36.80259999964619, + 33.433600001444574, + 34.10230000008596, + 35.21030000047176, + 31.697900001745438, + 30.370199998287717, + 35.13549999843235, + 34.023800002614735, + 29.985799999849405, + 30.55319999839412, + 29.59000000191736, + 30.48109999872395, + 31.25660000296193, + 30.48800000033225, + 30.924599999707425, + 31.127700000070035, + 38.20939999786788, + 32.65409999949043, + 31.122200001846068, + 31.93209999881219, + 22.504799999296665, + 34.8770999989938, + 38.304099998640595, + 31.224099999235477, + 32.23919999800273, + 31.388499999593478, + 30.568799997126916, + 31.997199999750592, + 37.304899997252505, + 30.407400001422502, + 31.176100001175655, + 30.419400001846952, + 30.36880000217934, + 29.528399998525856, + 30.737300003238488, + 33.363200000167126, + 30.339699998876313, + 30.63539999857312, + 30.555000001186272, + 31.652899997425266, + 30.016799999430077, + 38.686500000039814, + 32.55110000100103, + 32.31779999987339, + 34.03210000033141, + 31.05199999845354, + 32.14839999782271, + 36.975600000005215, + 53.37589999908232, + 48.743900002591545, + 52.010000003065215, + 50.292600000830134, + 44.45710000072722, + 42.13329999765847, + 43.35630000059609, + 40.66099999909056, + 38.68689999944763, + 29.608299999381416, + 35.89549999742303, + 37.387099997431505, + 41.62549999819021, + 36.93099999873084, + 38.100599998870166, + 39.12700000000768, + 37.75849999874481, + 35.21299999920302, + 34.923199997138, + 37.40340000149445 + ] + }, + "warm_ms": { + "control": [ + 59.31650000275113, + 66.34480000138865, + 82.84439999988535 + ], + "exact": [ + 35.4884000007587, + 40.42290000143112, + 35.46160000041709 + ], + "lattice": [ + 25.848199999018107, + 25.886899999022717, + 25.988699999288656 + ], + "library": [ + 30.753499999264022, + 27.631100001599407, + 27.48300000166637 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 76.5818500003661, + "p10_ms": 62.70006999875477, + "p90_ms": 100.07125000047382, + "min_ms": 57.63999999908265, + "max_ms": 299.8369000015373, + "mean_ms": 80.21284775001732 + }, + "exact": { + "n": 400, + "median_ms": 38.70075000304496, + "p10_ms": 32.921399999031564, + "p90_ms": 55.0490500027081, + "min_ms": 30.18270000029588, + "max_ms": 77.17699999921024, + "mean_ms": 41.53751400006513 + }, + "lattice": { + "n": 400, + "median_ms": 28.606699999727425, + "p10_ms": 24.581550000584684, + "p90_ms": 34.96363999984169, + "min_ms": 16.90499999676831, + "max_ms": 43.76980000233743, + "mean_ms": 29.41172375012684 + }, + "library": { + "n": 400, + "median_ms": 27.814899998702458, + "p10_ms": 24.101070000688196, + "p90_ms": 38.11147999876994, + "min_ms": 15.923900002235314, + "max_ms": 53.37589999908232, + "mean_ms": 29.719106499960617 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 2.6770599195676468, + "ci90_low": 2.541478470632297, + "ci90_high": 2.778589739243593, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.978820823739609, + "ci90_low": 1.8887896813776726, + "ci90_high": 2.0737629409035794, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.3528561492032884, + "ci90_low": 1.2766716402687297, + "ci90_high": 1.4057016259189952, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 0.9723211694801389, + "ci90_low": 0.931104367576572, + "ci90_high": 1.0056916981016246, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 2.7532671339439863, + "ci90_low": 2.6266170646847735, + "ci90_high": 2.8364708391716285, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 2.6043597436982324, + "p10": 2.4683171249347464, + "p90": 2.865642749085201 + }, + "minimum_detectable_improvement": 0.48799003943545893, + "compile": { + "control": { + "lower_s": 58.15951320000022, + "compile_s": 51.50119730000006, + "first_call_s": 0.16133999999874504, + "trace_calls": 12, + "step0_rows": [ + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507 + ], + "flops": 139442208.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 91549592, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 871092224, + "rss_after_compile_bytes": 1738604544, + "rss_delta_bytes": 867512320, + "hlo_sha256": "2a5f1ad8e3966fdb", + "hlo_lines": 62907, + "hlo_large_constants": 2 + }, + "exact": { + "lower_s": 50.921360500000446, + "compile_s": 42.624285699999746, + "first_call_s": 0.030048500000702916, + "trace_calls": 12, + "step0_rows": [ + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085 + ], + "flops": 64964724.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 40435352, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1678819328, + "rss_after_compile_bytes": 1848508416, + "rss_delta_bytes": 169689088, + "hlo_sha256": "430e6e50d23436df", + "hlo_lines": 62768, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 49.217162000000826, + "compile_s": 40.49163000000044, + "first_call_s": 0.02870970000003581, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 39473500.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22635480, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1813569536, + "rss_after_compile_bytes": 1968766976, + "rss_delta_bytes": 155197440, + "hlo_sha256": "33fa5a9be2da3f8d", + "hlo_lines": 62768, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 46.77552939999805, + "compile_s": 42.58882949999679, + "first_call_s": 0.023950800001330208, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 39473500.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22635480, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1930387456, + "rss_after_compile_bytes": 2027728896, + "rss_delta_bytes": 97341440, + "hlo_sha256": "9b34d1ec0f678023", + "hlo_lines": 62768, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730302, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396467, + 14.05296570839195, + 4.710517791725226, + 6.64736675005817, + 17.926663625058694, + 16.331611541724385 + ], + "exact": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730302, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396467, + 14.05296570839195, + 4.710517791725226, + 6.64736675005817, + 17.926663625058694, + 16.331611541724385 + ], + "lattice": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730302, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396467, + 14.05296570839195, + 4.710517791725226, + 6.64736675005817, + 17.926663625058694, + 16.331611541724385 + ], + "library": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730302, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396467, + 14.05296570839195, + 4.710517791725226, + 6.64736675005817, + 17.926663625058694, + 16.331611541724385 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 25.56012716672745, + "exact": 25.56012716672745, + "lattice": 25.56012716672745, + "library": 25.56012716672745 + } + }, + "cluster_plain": { + "label": "cluster_plain", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 99.24929999760934, + 133.1437000008009, + 95.38039999824832, + 148.35479999965173, + 132.34039999952074, + 90.55000000080327, + 113.75179999959073, + 106.10869999800343, + 117.54880000080448, + 88.61830000023474, + 115.21359999824199, + 104.27650000201538, + 112.7559000015026, + 97.51759999926435, + 116.3446999998996, + 112.42929999934859, + 98.1376999989152, + 89.46500000092783, + 95.25550000034855, + 88.82369999992079, + 114.69150000266382, + 119.81500000183587, + 90.31590000085998, + 106.91170000063721, + 84.8948000020755, + 86.93029999994906, + 118.64169999898877, + 95.85739999965881, + 107.62750000139931, + 87.19519999795011, + 83.1651000007696, + 91.5136999974493, + 87.98919999753707, + 90.3175999992527, + 102.12749999845983, + 87.36750000025495, + 91.86050000062096, + 106.43419999905745, + 95.78280000278028, + 109.08739999649697, + 110.37929999656626, + 97.51999999934924, + 112.38760000196635, + 106.2616999988677, + 108.34049999903073, + 110.31619999994291, + 103.47180000098888, + 88.04459999737446, + 88.04659999805153, + 107.1948999997403, + 115.72259999957168, + 89.0770000005432, + 87.73849999852246, + 103.62430000168388, + 95.17000000050757, + 96.9178000013926, + 96.05480000027455, + 102.72600000098464, + 101.14659999817377, + 91.81589999934658, + 128.05450000087149, + 104.10029999911785, + 170.11499999716762, + 139.35720000154106, + 154.825500001607, + 153.37309999813442, + 135.58190000185277, + 118.89040000096429, + 152.81070000128238, + 164.0183999988949, + 206.1234000029799, + 153.91840000302182, + 174.75310000008903, + 165.84449999936623, + 205.5603999979212, + 212.9921000014292, + 211.7276999997557, + 156.77530000175466, + 155.5980000011914, + 154.1131999983918, + 85.20019999923534, + 101.82859999986249, + 112.98749999696156, + 95.2370000013616, + 93.84549999958836, + 86.19999999791617, + 87.63810000164085, + 98.15760000128648, + 89.44510000219452, + 87.82350000183214, + 113.95070000071428, + 85.06340000167256, + 88.87350000077276, + 87.04539999962435, + 87.4545999977272, + 83.02639999965322, + 91.50969999973313, + 90.26280000034603, + 89.12170000257902, + 137.6966000025277, + 130.84879999951227, + 111.4108000001579, + 135.7094999984838, + 113.77399999764748, + 119.34699999983422, + 126.12620000072639, + 107.25520000050892, + 134.99179999780608, + 115.13360000026296, + 114.89459999938845, + 120.92610000036075, + 106.79689999960829, + 117.18029999974533, + 105.41649999868241, + 103.14149999976507, + 114.11710000174935, + 128.32290000005742, + 154.9388999992516, + 135.35069999852567, + 132.29810000120779, + 147.70940000016708, + 155.3012000003946, + 199.9638999986928, + 138.85630000004312, + 104.79149999810033, + 116.47609999999986, + 114.46530000102939, + 101.57790000084788, + 86.86939999824972, + 94.73680000155582, + 85.71690000098897, + 95.372400002816, + 142.68359999914537, + 154.3707999990147, + 121.56210000102874, + 93.20669999942766, + 103.20229999706498, + 134.1032999989693, + 138.12489999691024, + 158.19959999862476, + 99.10110000055283, + 113.02620000060415, + 113.17440000129864, + 114.81719999937923, + 119.23730000125943, + 112.02380000031553, + 109.29519999990589, + 102.45930000019143, + 112.39930000010645, + 111.17379999996047, + 123.74330000238842, + 129.1233000010834, + 148.63170000171522, + 160.70889999900828, + 193.39019999824814, + 287.18099999969127, + 139.07670000116923, + 147.05489999687416, + 165.93799999827752, + 133.03780000205734, + 107.02540000056615, + 122.73750000167638, + 152.3696000003838, + 108.28960000071675, + 121.31030000091414, + 84.56830000068294, + 87.98340000066673, + 92.37519999805954, + 103.8183000018762, + 99.51299999738694, + 127.04389999998966, + 108.94010000265553, + 90.14910000041709, + 93.99470000062138, + 95.42549999969197, + 106.94909999801894, + 125.4518999994616, + 149.4793000019854, + 138.7680999978329, + 126.55290000111563, + 131.3921000000846, + 116.29909999828669, + 118.79109999790671, + 96.72589999900083, + 116.45850000058999, + 126.9639999991341, + 95.66260000065085, + 99.9206000014965, + 146.30969999780064, + 103.83130000263918, + 99.86860000208253, + 115.84620000212453, + 111.32299999735551, + 149.9368000004324, + 105.57939999853261, + 110.10750000059488, + 128.84130000020377, + 139.51189999716007, + 101.13800000181072, + 112.1387000021059, + 117.4764999996114, + 106.23729999861098, + 95.0842999991437, + 100.09079999872483, + 103.61720000219066, + 100.7530000024417, + 97.03839999929187, + 103.46230000141077, + 109.50679999950808, + 112.21739999746205, + 91.97860000131186, + 104.63230000095791, + 109.34740000084275, + 120.8881000020483, + 103.94219999943743, + 109.83789999954752, + 119.53369999901042, + 117.40320000171778, + 147.43689999886556, + 124.0975000000617, + 124.1316999985429, + 103.3196999997017, + 100.27610000179266, + 103.97150000062538, + 100.36969999782741, + 103.31509999741684, + 102.95209999821964, + 120.33929999961401, + 100.32390000196756, + 100.13209999669925, + 106.90299999987474, + 90.87709999948856, + 89.42649999880814, + 99.34960000100546, + 105.85580000042683, + 93.45889999895007, + 97.71669999827282, + 77.46209999822895, + 73.81200000236277, + 98.13729999950738, + 123.79409999994095, + 127.92030000127852, + 117.09329999939655, + 149.81339999940246, + 180.73229999936302, + 105.37389999808511, + 107.83119999905466, + 107.8438999975333, + 101.25680000055581, + 90.87270000236458, + 105.91890000068815, + 90.85919999779435, + 86.09470000010333, + 92.79749999768683, + 102.15139999854728, + 88.96370000002207, + 103.597000001173, + 85.4217999985849, + 95.56249999877764, + 107.7705000025162, + 112.03390000082436, + 116.022599999269, + 108.69240000101854, + 115.28199999884237, + 125.30689999766764, + 105.25419999976293, + 104.64190000129747, + 86.20729999893229, + 80.43410000027507, + 86.86239999951795, + 74.68729999891366, + 87.102400000731, + 86.19179999732296, + 87.525300001289, + 111.62229999899864, + 83.99020000069868, + 81.27179999792133, + 81.58010000261129, + 162.9590000011376, + 110.71150000134367, + 151.95400000084192, + 117.4628999979177, + 120.65450000227429, + 145.52910000202246, + 160.21769999861135, + 124.21379999796045, + 132.234900000185, + 138.9467999979388, + 120.49540000225534, + 132.2574000005261, + 147.78340000339085, + 151.0619000000588, + 123.61539999983506, + 118.41619999904651, + 116.6482000007818, + 114.99980000007781, + 121.28289999964181, + 120.43089999860968, + 122.75120000049355, + 138.39010000083363, + 134.99900000169873, + 169.1132000014477, + 160.1011999991897, + 146.17720000023837, + 140.15460000155144, + 149.66460000141524, + 161.60730000046897, + 167.44889999972656, + 134.177500000078, + 136.6392000018095, + 165.53990000102203, + 131.86689999929513, + 146.01089999996475, + 149.33989999917685, + 135.25510000181384, + 113.89079999935348, + 135.5297000009159, + 118.21079999936046, + 133.3494000027713, + 149.9947999982396, + 129.20020000092336, + 100.43529999893508, + 94.65130000171484, + 86.8045000024722, + 96.16860000096494, + 85.8124999977008, + 96.0672999972303, + 103.22359999918262, + 99.80999999970663, + 103.0730999991647, + 102.0024999997986, + 87.92750000066007, + 92.52520000154618, + 110.31999999977415, + 103.66290000092704, + 85.25519999966491, + 84.88280000165105, + 88.03329999864218, + 86.40959999684128, + 93.18119999807095, + 105.0598000001628, + 90.01599999828613, + 83.0722999999125, + 89.43770000041695, + 82.50780000162194, + 89.91509999759728, + 90.65280000140774, + 102.98329999932321, + 97.8787000021839, + 91.34619999895222, + 105.01509999812697, + 108.81270000027143, + 106.81009999825619, + 93.65450000041164, + 123.28499999784981, + 96.37880000082077, + 121.09770000097342, + 148.71820000189473, + 138.6199000007764, + 161.1984000010125, + 89.28170000217506, + 78.87489999848185, + 96.39479999896139, + 78.11860000219895, + 81.75470000060159, + 79.02540000213776, + 109.27299999821116, + 107.38710000077845, + 111.91370000233292, + 90.11900000041351, + 96.62859999662032, + 84.0128999989247, + 100.89169999992009, + 85.58110000012675, + 97.97140000227955, + 89.52610000051209, + 101.93040000012843, + 97.38600000127917, + 91.96000000156346, + 91.53220000007423, + 72.14730000123382, + 89.87779999733903, + 92.1109000009892, + 81.13290000255802, + 89.30999999938649, + 93.38610000122571, + 85.42450000095414, + 98.22390000044834, + 117.41970000002766, + 106.73070000120788, + 88.08760000101756, + 81.09960000001593, + 85.48349999909988, + 91.82119999968563, + 91.68639999916195, + 95.6112000021676, + 112.92980000143871, + 118.6094000004232, + 160.3900000009162, + 212.56609999909415 + ], + "exact": [ + 50.02219999732915, + 57.142199999361765, + 49.96700000265264, + 55.92579999938607, + 57.56130000008852, + 54.67370000042138, + 44.989099998929305, + 46.76610000024084, + 53.96090000067488, + 52.934799998183735, + 52.79629999859026, + 52.24420000013197, + 51.71469999913825, + 53.525100000115344, + 58.78669999947306, + 59.13289999807603, + 69.59859999915352, + 59.892799999943236, + 87.19560000099591, + 54.70869999771821, + 46.37920000095619, + 48.10739999811631, + 52.772600000025705, + 47.544100001687184, + 50.88819999946281, + 49.419200000556884, + 55.59189999985392, + 42.87110000223038, + 42.01420000026701, + 46.74850000083097, + 42.78789999807486, + 53.21080000067013, + 55.571600001712795, + 55.06910000258358, + 44.16520000086166, + 46.36430000027758, + 48.26610000236542, + 48.44969999976456, + 54.253400001471164, + 44.64659999939613, + 51.448900001560105, + 53.343599996878766, + 53.4566000023915, + 50.222599998960504, + 53.14930000167806, + 53.64420000114478, + 61.675900000409456, + 61.606399998709094, + 68.34919999892008, + 65.12979999752133, + 67.16079999750946, + 71.1397000013676, + 71.4207000019087, + 73.82659999711905, + 51.73640000066371, + 60.37629999991623, + 58.78060000031837, + 58.296300001529744, + 49.716900000930764, + 53.13620000015362, + 82.40830000067945, + 72.69589999850723, + 118.37240000022575, + 70.29030000194325, + 89.46889999788254, + 52.76600000070175, + 53.53599999943981, + 61.8547000012768, + 57.763900000281865, + 59.4119999987015, + 52.81779999859282, + 50.086300001567, + 48.049999997601844, + 74.18340000003809, + 57.63769999975921, + 56.51419999776408, + 49.28519999884884, + 49.26269999850774, + 55.57399999815971, + 47.6076999984798, + 56.0165999995661, + 49.929900000279304, + 52.18299999978626, + 54.47400000048219, + 49.91440000230796, + 45.94060000090394, + 50.256499998795334, + 54.700600001524435, + 52.10789999910048, + 54.085800002212636, + 53.960299999744166, + 50.62700000053155, + 55.04620000283467, + 51.814500002365094, + 49.83249999713735, + 59.17460000273422, + 60.628899998846464, + 50.064800001564436, + 58.07780000031926, + 51.640599998791004, + 45.626800001628, + 53.413400000863476, + 59.980099998938385, + 48.06230000031064, + 51.90800000127638, + 51.06520000117598, + 48.23169999872334, + 52.43960000007064, + 56.84000000110245, + 50.73210000045947, + 51.09870000160299, + 48.31209999974817, + 58.45860000044922, + 54.89289999968605, + 49.320399997668574, + 57.09260000003269, + 53.84960000083083, + 50.459899997804314, + 55.942099999811035, + 62.11290000283043, + 56.503399999201065, + 51.39380000036908, + 56.96199999874807, + 54.43340000056196, + 57.80370000138646, + 51.55499999818858, + 52.68699999942328, + 61.313599999266444, + 53.96470000050613, + 62.922100001742365, + 68.33780000306433, + 123.9123000013933, + 105.84089999974822, + 78.30420000027516, + 86.79399999891757, + 92.32690000135335, + 98.68289999940316, + 125.06850000136183, + 60.46509999941918, + 62.83439999970142, + 60.197800001333235, + 58.475400001043454, + 54.727599999750964, + 60.26249999922584, + 50.56449999756296, + 48.233400000754045, + 51.141700001608115, + 50.62109999926179, + 62.66510000205017, + 58.31910000051721, + 56.544200000644196, + 59.14470000061556, + 61.48360000224784, + 59.941300001810305, + 66.02589999965858, + 66.93130000348901, + 55.37520000143559, + 63.61059999835561, + 70.53850000011153, + 63.31460000001243, + 65.39359999806038, + 56.13729999822681, + 55.93399999997928, + 68.25329999992391, + 65.81179999921005, + 66.86409999747411, + 60.69339999885415, + 60.72829999902751, + 66.9075999976485, + 55.45229999916046, + 62.54679999983637, + 59.85299999883864, + 59.19009999706759, + 71.43959999666549, + 65.78300000182935, + 73.84069999898202, + 64.7348000020429, + 77.24279999820283, + 77.66990000163787, + 69.23439999809489, + 49.58500000066124, + 58.86889999965206, + 63.00809999811463, + 58.97899999763467, + 69.47009999930742, + 57.732400000531925, + 55.42090000017197, + 60.02950000038254, + 61.95099999968079, + 56.08420000135084, + 52.56579999695532, + 59.20890000197687, + 50.8021000023291, + 60.19390000074054, + 79.23650000157068, + 67.57419999848935, + 67.88999999844236, + 63.22509999881731, + 52.12969999774941, + 60.974399999395246, + 79.82690000062576, + 64.98089999877266, + 60.744600003090454, + 75.62770000004093, + 76.47880000149598, + 52.62539999966975, + 57.130099998175865, + 51.53019999852404, + 56.950800000777235, + 55.65589999969234, + 67.11340000038035, + 60.11940000098548, + 69.14010000036797, + 70.44300000052317, + 62.34970000150497, + 53.92619999838644, + 61.70560000100522, + 56.230000001960434, + 70.86110000091139, + 63.9195000003383, + 47.78029999943101, + 49.984900000708876, + 51.18399999992107, + 63.71289999879082, + 46.79490000125952, + 48.82440000073984, + 45.77159999826108, + 43.24119999728282, + 46.888599998055724, + 41.29350000221166, + 40.977299999212846, + 48.32109999915701, + 45.69570000239764, + 39.89060000094469, + 43.237200003204634, + 43.602800000371644, + 52.42309999812278, + 58.14219999956549, + 50.16299999988405, + 68.09720000092057, + 49.936600000364706, + 62.07660000291071, + 55.01690000164672, + 63.906400002451846, + 57.86739999894053, + 51.579400002083275, + 52.804099999775644, + 52.68900000010035, + 61.44299999868963, + 59.193500001128996, + 57.89629999708268, + 53.13169999863021, + 52.08190000121249, + 52.607600002374966, + 63.54420000207028, + 55.707100000290666, + 60.17079999946873, + 57.71219999951427, + 48.70459999801824, + 52.758099998754915, + 59.40349999946193, + 73.42090000020107, + 60.09089999861317, + 55.02939999860246, + 47.911599998769816, + 48.7329999996291, + 68.10889999906067, + 74.58670000050915, + 94.60440000111703, + 82.72000000215485, + 63.234100001864135, + 67.05449999935809, + 60.68010000308277, + 62.27410000064992, + 62.351200002012774, + 79.8928000003798, + 82.6721000012185, + 75.05900000251131, + 74.62020000093617, + 63.11139999888837, + 67.01259999681497, + 82.56229999824427, + 65.90280000091298, + 56.24620000162395, + 58.82569999812404, + 58.811399998376146, + 57.234399999288144, + 55.50120000043535, + 61.78100000033737, + 55.545000002894085, + 59.12419999731355, + 56.46779999733553, + 44.50179999912507, + 51.3649999993504, + 64.75109999882989, + 52.117100000032224, + 58.257500000763685, + 47.716199998831144, + 52.45199999990291, + 58.47619999985909, + 78.67159999659634, + 75.36850000178674, + 71.82140000077197, + 68.33009999900241, + 66.36030000299797, + 64.92119999893475, + 75.89259999804199, + 68.85599999804981, + 68.90799999746378, + 127.82119999974384, + 135.83289999951376, + 167.44719999769586, + 113.10719999892171, + 118.03890000010142, + 158.9471000006597, + 78.69159999972908, + 59.05040000288864, + 63.25999999899068, + 58.72989999988931, + 58.656699999119155, + 43.32720000093104, + 44.30579999825568, + 40.84639999928186, + 45.07709999961662, + 40.83130000071833, + 51.097999999910826, + 46.30890000044019, + 41.381799997907365, + 46.06960000091931, + 48.62670000147773, + 42.80369999833056, + 41.321100001368904, + 46.52839999835123, + 42.20989999885205, + 46.03080000015325, + 45.5805000019609, + 46.88159999932395, + 46.24840000178665, + 45.686000001296634, + 45.73339999842574, + 50.73429999902146, + 63.42869999934919, + 60.87459999980638, + 41.511999999784166, + 41.379199999937555, + 42.02140000052168, + 40.87019999860786, + 39.71289999753935, + 40.956400000141, + 41.95040000195149, + 39.19289999976172, + 37.263700000039535, + 37.386899999546586, + 37.22629999901983, + 38.72130000308971, + 40.254100000311155, + 45.117199999367585, + 56.350599999859696, + 69.30130000182544, + 75.06559999819729, + 52.47420000159764, + 50.118099999963306, + 59.00359999941429, + 54.84720000094967, + 60.48400000145193, + 54.9083999976574, + 61.74240000109421, + 47.14069999681669, + 57.73799999951734, + 58.98520000118879, + 52.62190000212286, + 48.35110000203713, + 46.42709999825456, + 50.8960000006482, + 66.78910000118776, + 56.423599999106955, + 52.196200002072146, + 45.98759999862523, + 51.56960000022082, + 47.418300000572344, + 82.1049000005587, + 92.86160000192467, + 90.17870000025141, + 81.47339999777614, + 101.31149999870104, + 83.25719999993453, + 82.21079999930225, + 73.02609999896958, + 64.45449999955599, + 74.98040000064066, + 91.04479999950854, + 81.98110000012093, + 77.15269999971497, + 75.95439999931841, + 71.65079999685986, + 89.6640999999363, + 97.1097000001464, + 90.08320000066306, + 75.05440000022645, + 63.18749999991269 + ], + "lattice": [ + 42.06770000018878, + 40.36180000184686, + 37.2624999981781, + 35.99279999980354, + 37.79750000103377, + 35.84430000046268, + 36.745699999300996, + 40.121099998941645, + 33.29769999982091, + 42.34809999979916, + 32.3236000003817, + 33.832900000561494, + 36.50800000104937, + 34.5895999998902, + 33.34800000084215, + 33.17779999997583, + 33.912499999132706, + 35.407899998972425, + 34.38869999808958, + 34.8478999985673, + 33.796700001403224, + 31.374900001537753, + 34.283099997992394, + 34.44930000114255, + 37.3498999979347, + 32.82450000187964, + 33.9179000002332, + 29.939300002297387, + 32.850600000529084, + 33.51200000179233, + 34.636200001841644, + 30.646100000012666, + 30.834400000458118, + 31.65919999810285, + 31.241800003044773, + 30.653399997390807, + 37.37469999759924, + 33.34030000041821, + 36.745800000062445, + 38.28150000117603, + 41.10189999846625, + 35.72870000061812, + 33.963899997615954, + 34.30569999909494, + 35.586500001954846, + 34.887900001194794, + 36.31159999713418, + 35.296400001243455, + 33.576300000277115, + 42.5900999980513, + 35.92989999742713, + 38.35809999873163, + 34.17830000034883, + 36.49489999952493, + 33.93789999972796, + 33.28889999829698, + 36.89850000228034, + 32.860299997992115, + 34.39210000215098, + 33.21779999896535, + 37.04450000077486, + 38.89530000014929, + 36.77370000150404, + 37.01000000000931, + 38.650099999358645, + 35.41369999948074, + 34.52829999878304, + 32.405099998868536, + 33.5653000001912, + 34.75099999923259, + 33.27539999736473, + 38.20439999981318, + 33.232999998290325, + 32.8668000001926, + 35.44340000007651, + 32.49900000082562, + 34.299599999940256, + 32.86140000273008, + 32.741399998485576, + 34.58900000259746, + 36.23610000067856, + 35.473099997034296, + 35.90430000258493, + 36.308099999587284, + 36.47769999952288, + 34.81820000160951, + 65.24720000015805, + 36.86999999990803, + 37.74690000136616, + 34.27490000103717, + 34.36890000011772, + 34.33640000002924, + 34.159399998316076, + 37.24100000181352, + 33.84920000098646, + 32.954499998595566, + 34.5653999975184, + 37.46580000006361, + 32.29089999877033, + 32.25000000020373, + 40.22219999751542, + 47.95000000012806, + 40.7560999992711, + 41.40149999875575, + 44.3660999990243, + 42.05819999697269, + 41.73119999904884, + 40.1108000005479, + 38.58030000264989, + 41.21379999924102, + 44.48650000267662, + 43.0015000019921, + 59.597999999823514, + 49.14189999908558, + 47.151899998425506, + 46.283499999844935, + 43.25129999779165, + 49.38009999750648, + 43.822899999213405, + 41.91119999813964, + 42.03929999857792, + 42.119499998079846, + 46.90300000220304, + 41.18480000033742, + 47.723200001200894, + 41.92269999839482, + 45.189899999968475, + 38.91680000015185, + 40.76550000172574, + 42.49419999905513, + 51.74249999981839, + 40.941499999462394, + 42.869600001722574, + 44.282300001214026, + 44.6243999977014, + 41.770700001507066, + 43.2001000008313, + 43.34939999898779, + 45.19509999954607, + 38.896400001249276, + 38.91780000049039, + 41.36309999739751, + 41.20200000033947, + 39.5297999966715, + 35.79650000028778, + 43.39189999882365, + 43.67229999843403, + 45.88060000241967, + 46.78830000193557, + 55.27470000015455, + 50.478799999837065, + 38.855599999806145, + 35.25620000073104, + 43.35519999949611, + 45.90459999963059, + 37.198199999693315, + 37.80019999976503, + 41.144200000417186, + 37.82910000154516, + 34.870600000431295, + 46.33520000061253, + 45.73480000181007, + 47.44840000057593, + 46.93520000000717, + 50.10020000190707, + 43.09149999971851, + 43.444900002214126, + 39.4257000007201, + 43.239499998890096, + 40.60649999883026, + 45.79360000207089, + 37.43340000073658, + 40.99960000166902, + 48.31750000084867, + 44.95099999985541, + 46.910299999581184, + 41.071899999224115, + 45.818599999620346, + 38.337600002705585, + 42.927700000291225, + 42.114500000025146, + 38.52600000027451, + 35.06070000003092, + 32.444000000396045, + 35.613499996543396, + 33.29519999897457, + 34.178900001279544, + 30.029800000193063, + 31.219600001350045, + 32.53989999939222, + 32.79949999705423, + 33.04360000038287, + 34.71219999846653, + 29.63850000014645, + 39.276700001209974, + 36.68710000056308, + 33.1203000023379, + 31.66849999979604, + 31.2037000003329, + 31.815499998629093, + 38.78179999810527, + 39.58190000048489, + 43.23769999973592, + 40.05039999901783, + 36.62070000063977, + 38.41690000263043, + 37.188700000115205, + 38.04099999979371, + 40.81489999953192, + 37.18269999808399, + 42.784700002812315, + 43.86739999972633, + 36.605100001906976, + 49.46879999988596, + 39.307500002905726, + 38.563000001886394, + 38.30589999779477, + 46.39130000214209, + 44.3078999996942, + 46.38139999951818, + 44.06430000017281, + 36.087799999222625, + 44.97110000011162, + 41.940700000850484, + 34.8379000024579, + 36.08869999879971, + 38.84960000141291, + 50.00769999969634, + 39.293699999689125, + 40.51950000211946, + 37.04410000136704, + 37.05539999646135, + 41.918599999917205, + 45.891599998867605, + 41.468799998256145, + 36.893399999826215, + 39.63319999820669, + 37.20609999800217, + 42.93880000113859, + 46.653500001411885, + 40.111599999363534, + 41.95910000271397, + 40.61679999722401, + 44.03480000109994, + 41.4243000013812, + 36.72780000124476, + 35.753700001805555, + 36.96189999755006, + 41.61680000106571, + 37.59929999796441, + 38.068900001235306, + 40.56540000237874, + 39.204199998494005, + 38.705700000718934, + 39.36020000037388, + 40.01119999884395, + 45.339799999055685, + 45.54260000077193, + 46.0836999991443, + 38.29760000007809, + 38.790599999629194, + 38.151999997353414, + 36.57590000148048, + 36.1032000000705, + 34.176000001025386, + 33.64680000231601, + 33.65510000003269, + 34.78769999856013, + 38.16189999997732, + 35.56150000076741, + 33.42119999797433, + 33.23380000074394, + 34.035700002277736, + 33.45849999823258, + 32.33689999979106, + 31.782999998540618, + 32.46950000175275, + 33.35220000008121, + 38.889300001756055, + 40.87140000046929, + 37.7420999975584, + 34.35890000037034, + 37.38849999717786, + 41.31240000060643, + 42.932399999699555, + 37.582999997539446, + 34.215000003314344, + 37.105900002643466, + 32.322899998689536, + 34.92559999722289, + 40.15649999928428, + 36.985200000344776, + 36.75629999997909, + 34.29679999680957, + 36.024500001076376, + 39.93090000221855, + 32.55699999863282, + 32.06540000246605, + 36.01909999997588, + 34.59579999980633, + 47.543900000164285, + 46.46430000138935, + 53.21350000303937, + 50.95369999980903, + 45.932900000480004, + 45.75189999741269, + 42.22540000046138, + 44.81890000170097, + 40.74219999893103, + 46.50499999843305, + 42.3317999993742, + 42.04639999807114, + 44.662600001174724, + 50.27010000048904, + 45.29299999921932, + 48.146400000405265, + 61.15680000220891, + 51.1292000010144, + 51.42589999741176, + 49.152799998410046, + 32.92230000079144, + 36.63339999911841, + 33.35919999881298, + 38.43899999992573, + 33.04469999784487, + 32.28649999800837, + 36.598299997422146, + 36.237799999071285, + 34.43850000257953, + 35.115099999529775, + 42.00239999772748, + 34.75840000101016, + 32.845300000190036, + 36.27770000093733, + 34.06650000033551, + 33.2723999999871, + 38.49530000297818, + 34.65229999710573, + 34.652899998036446, + 38.84169999946607, + 49.7040999980527, + 47.10070000146516, + 40.16099999716971, + 36.21019999991404, + 39.244800002052216, + 40.86240000106045, + 43.418699999165256, + 53.22919999889564, + 46.57059999954072, + 43.89439999795286, + 35.43320000244421, + 34.55759999997099, + 36.90759999881266, + 36.16929999770946, + 34.71259999787435, + 35.601699997641845, + 34.28100000019185, + 33.84559999904013, + 32.58110000024317, + 32.494900002348004, + 54.966799998510396, + 52.55329999999958, + 46.910199998819735, + 44.98120000062045, + 40.853900001820875, + 46.58639999979641, + 39.68689999965136, + 39.47540000081062, + 38.296300001093186, + 35.34610000133398, + 51.26119999840739, + 41.91950000313227, + 40.03929999817046, + 37.61319999830448, + 36.47529999943799, + 36.81169999981648, + 36.9522999972105, + 35.129300002154196, + 34.08069999932195, + 32.354599999962375, + 46.05729999821051, + 47.72130000128527, + 40.587600000435486, + 48.80819999743835, + 41.21300000042538, + 43.98570000194013, + 38.13339999760501, + 46.30579999866313, + 43.75440000148956, + 39.121699999668635, + 41.918500002793735, + 42.201799999020295, + 43.53629999968689, + 38.13060000175028, + 38.37819999898784, + 49.68100000041886, + 52.114500002062414, + 44.379599999956554, + 41.97769999882439, + 45.70590000002994 + ], + "library": [ + 31.863699998211814, + 33.49810000145226, + 31.08789999896544, + 37.152299999434035, + 31.775700001162477, + 32.083799997053575, + 32.59550000075251, + 33.36900000067544, + 34.60330000234535, + 41.59409999920172, + 32.11629999714205, + 31.860700000834186, + 33.051200000045355, + 33.378099997207755, + 30.927699997846503, + 29.908200001955265, + 30.08870000121533, + 38.74999999970896, + 31.021099999634316, + 31.911000001855427, + 35.3477999997267, + 35.56130000288249, + 33.52610000001732, + 39.32949999943958, + 31.863099997281097, + 31.823700002860278, + 33.479999998235144, + 32.712500000343425, + 31.072100002347725, + 32.55979999812553, + 31.226700000843266, + 40.50360000110231, + 36.450700001296354, + 35.53679999822634, + 38.493000000016764, + 34.09720000126981, + 40.60329999992973, + 33.79279999717255, + 36.16329999931622, + 37.539699998887954, + 37.727900002209935, + 33.791800000471994, + 36.80449999956181, + 32.501900001079775, + 39.114700000936864, + 33.80789999937406, + 31.76099999836879, + 32.03389999907813, + 31.58160000020871, + 33.06779999911669, + 33.83200000098441, + 32.37999999691965, + 31.984600002033403, + 34.91249999933643, + 31.950299999152776, + 37.793200001033256, + 31.89099999872269, + 31.595200001902413, + 34.614000000146916, + 35.19860000233166, + 36.33550000085961, + 37.70000000076834, + 40.46290000042063, + 41.47930000181077, + 48.73260000022128, + 40.13230000055046, + 39.78020000067772, + 36.30900000280235, + 33.97190000032424, + 32.603700001345715, + 31.415000001288718, + 30.263900000136346, + 30.477500000415603, + 30.0253999994311, + 29.990899998665554, + 33.978200001001824, + 37.430500000482425, + 41.386400000192225, + 69.68220000271685, + 51.50339999818243, + 35.284400000819005, + 35.042899999098154, + 38.34430000279099, + 33.566500002052635, + 35.67200000179582, + 39.305300000705756, + 42.94340000342345, + 47.858399997494416, + 35.46300000016345, + 37.30589999759104, + 41.57100000156788, + 33.515400002215756, + 37.179000002652174, + 37.11180000027525, + 35.70830000171554, + 35.02890000163461, + 35.749399998167064, + 35.521800000424264, + 38.49070000069332, + 34.055500000249594, + 41.96109999975306, + 42.387800000142306, + 44.52999999921303, + 40.94489999988582, + 38.55710000061663, + 40.07550000096671, + 51.57669999971404, + 54.255499999271706, + 41.279699998995056, + 46.44879999978002, + 41.04200000074343, + 41.393399998924, + 37.74319999865838, + 36.31220000170288, + 42.00459999992745, + 40.32079999888083, + 39.95320000103675, + 39.208700000017416, + 38.734599998861086, + 43.34829999788781, + 42.03600000255392, + 40.403999999398366, + 39.99140000087209, + 50.51219999950263, + 36.8774000016856, + 39.315299996815156, + 39.79059999983292, + 43.23540000041248, + 46.03960000167717, + 84.88869999928284, + 52.765199998248136, + 41.872800000419375, + 44.24989999824902, + 64.51759999981732, + 76.10120000026654, + 70.92790000024252, + 67.6032999981544, + 58.937199999490986, + 52.165100001730025, + 53.486200002225814, + 38.88150000057067, + 35.23080000013579, + 37.67589999915799, + 33.53119999883347, + 37.17049999977462, + 35.560699998313794, + 35.54029999941122, + 40.23600000073202, + 48.05019999912474, + 32.50029999981052, + 31.509600001299987, + 37.588299997878494, + 34.55419999954756, + 30.908000000636093, + 36.462799998844275, + 41.70040000099107, + 35.767900000792, + 35.71680000095512, + 35.33150000293972, + 37.058199999592034, + 39.55760000098962, + 40.467200000421144, + 35.274900001240894, + 42.87470000053872, + 36.66489999886835, + 45.96540000056848, + 42.82510000120965, + 41.14999999728752, + 64.78680000145687, + 67.71950000256766, + 47.49010000159615, + 105.504999999539, + 70.88500000099884, + 68.1284999991476, + 69.61220000084722, + 61.81959999958053, + 57.65409999730764, + 67.08140000046114, + 61.59090000073775, + 36.27119999873685, + 32.862600000953535, + 33.79270000004908, + 29.956800000945805, + 39.42810000080499, + 38.24289999829489, + 39.42119999919669, + 34.02559999813093, + 39.26099999807775, + 38.925699998799246, + 34.488600002077874, + 36.89289999965695, + 39.57140000056825, + 34.23619999739458, + 35.31509999811533, + 35.7867000020633, + 39.88190000018221, + 34.97020000213524, + 39.25350000281469, + 41.25950000161538, + 45.10680000021239, + 44.74630000186153, + 50.87959999946179, + 55.859300002339296, + 41.84069999973872, + 38.98759999719914, + 39.83940000034636, + 35.80330000113463, + 40.52400000000489, + 33.97849999964819, + 35.55590000178199, + 32.23720000096364, + 32.26870000071358, + 33.581199997570366, + 32.5751999989734, + 32.9624000005424, + 34.20910000204458, + 38.09179999734624, + 42.366100002254825, + 39.41300000224146, + 35.12799999953131, + 39.973400002054404, + 43.539700000110315, + 46.276100001705345, + 39.13299999840092, + 42.55919999923208, + 40.70450000290293, + 40.22810000242316, + 36.214600000676, + 39.303599998675054, + 34.11219999907189, + 33.43250000034459, + 36.78039999795146, + 37.909599999693455, + 46.80779999762308, + 56.721499997365754, + 36.2094000010984, + 43.85339999862481, + 34.43129999868688, + 39.0914999989036, + 39.14230000009411, + 39.746399997966364, + 39.46410000207834, + 39.22939999756636, + 48.732200000813464, + 39.46590000123251, + 35.72089999943273, + 39.511599999968894, + 33.862199998111464, + 34.1115000010177, + 38.178800001333, + 39.760200001182966, + 34.676999999646796, + 34.38069999901927, + 37.37420000106795, + 33.0909000003885, + 37.631600000167964, + 32.83989999908954, + 51.31019999680575, + 39.550299999973504, + 42.49060000074678, + 51.31160000019008, + 44.54269999769167, + 54.41470000005211, + 48.31249999915599, + 39.84060000220779, + 42.12980000011157, + 39.01820000100997, + 43.585300001723226, + 48.41560000204481, + 49.70839999805321, + 51.28659999900265, + 39.41889999987325, + 41.68799999752082, + 44.06309999831137, + 44.98020000028191, + 37.65379999822471, + 39.705299997876864, + 38.81290000208537, + 42.17829999834066, + 40.21169999759877, + 31.079000000318047, + 39.893400000437396, + 36.72519999963697, + 42.14450000290526, + 34.84050000042771, + 41.272800001024734, + 40.744400001131, + 43.997000000672415, + 49.90400000315276, + 44.25740000078804, + 40.2834000014991, + 59.527599998546066, + 51.085700000840006, + 47.59140000169282, + 48.54509999859147, + 39.615699999558274, + 45.308600001590094, + 50.20820000208914, + 48.751599999377504, + 47.49449999872013, + 37.71980000237818, + 36.61579999970854, + 42.55859999830136, + 40.51479999907315, + 35.27160000157892, + 35.11869999783812, + 34.35369999715476, + 35.89830000055372, + 47.3511000018334, + 38.45590000128141, + 41.059600000153296, + 41.19410000203061, + 39.47079999852576, + 42.91139999986626, + 40.96360000039567, + 43.968699999823, + 45.87370000081137, + 49.11539999739034, + 48.09430000022985, + 47.69250000026659, + 35.596699999587145, + 34.49279999767896, + 38.52720000213594, + 37.331399998947745, + 33.915099997102516, + 33.49800000069081, + 41.901600001438055, + 39.148100000602426, + 35.36470000108238, + 39.211200000863755, + 38.64330000214977, + 34.865600002376596, + 37.846799998078495, + 34.03039999830071, + 38.94150000269292, + 32.218600001215236, + 35.78719999859459, + 32.831199998327065, + 32.964400001219474, + 31.10949999972945, + 37.91850000197883, + 31.80429999702028, + 34.44409999792697, + 31.191000001854263, + 37.396600000647595, + 32.77660000094329, + 30.329799999890383, + 36.28499999831547, + 38.12670000115759, + 34.63510000074166, + 33.95530000125291, + 33.726300000125775, + 32.9782000007981, + 32.22420000020065, + 33.38190000067698, + 30.815199999778997, + 32.216400002653245, + 35.07560000070953, + 30.99329999895417, + 31.811999997444218, + 38.71359999902779, + 36.661499998444924, + 38.690600002155406, + 33.167300000059186, + 30.040800000278978, + 34.118300001864554, + 31.37290000086068, + 35.54929999882006, + 30.942000001232373, + 28.826699999626726, + 32.00929999729851, + 32.73749999789288, + 29.3288000029861, + 32.439300000987714, + 28.21580000090762, + 34.21920000255341, + 30.752099999517668, + 27.928700001211837, + 28.79870000106166, + 32.20140000121319, + 34.20749999713735, + 38.98039999694447, + 37.357799999881536, + 32.53429999676882, + 33.506399999168934, + 32.153899999684654, + 33.140499999717576, + 29.830699997546617, + 32.45910000259755, + 29.585099997348152, + 34.164400000008754, + 32.107300001371186, + 32.2173999993538, + 33.11329999996815, + 32.27379999952973, + 33.065700001316145, + 37.67809999771998, + 36.864199999399716, + 35.453899999993155, + 31.099099996936275 + ] + }, + "warm_ms": { + "control": [ + 133.047200000874, + 165.6249999978172, + 123.53280000024824 + ], + "exact": [ + 85.63309999954072, + 75.34730000043055, + 55.937400000402704 + ], + "lattice": [ + 37.49660000175936, + 52.392400000826456, + 43.11779999989085 + ], + "library": [ + 55.854999998700805, + 65.12239999938174, + 39.491799998359056 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 106.85654999906546, + "p10_ms": 87.03388999965682, + "p90_ms": 149.82573999950546, + "min_ms": 72.14730000123382, + "max_ms": 287.18099999969127, + "mean_ms": 113.25150550001126 + }, + "exact": { + "n": 400, + "median_ms": 56.52919999920414, + "p10_ms": 45.72962999882293, + "p90_ms": 77.16170999956375, + "min_ms": 37.22629999901983, + "max_ms": 167.44719999769586, + "mean_ms": 60.073152499981006 + }, + "lattice": { + "n": 400, + "median_ms": 38.2429500004946, + "p10_ms": 33.03469000020414, + "p90_ms": 46.59310999995796, + "min_ms": 29.63850000014645, + "max_ms": 65.24720000015805, + "mean_ms": 39.23832849994142 + }, + "library": { + "n": 400, + "median_ms": 37.36600000047474, + "p10_ms": 31.857000001036795, + "p90_ms": 48.563809998813674, + "min_ms": 27.928700001211837, + "max_ms": 105.504999999539, + "mean_ms": 39.179462250067445 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 2.7941502943074075, + "ci90_low": 2.7270406460132186, + "ci90_high": 2.874478270824129, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.8902894433420228, + "ci90_low": 1.8298247291672372, + "ci90_high": 1.9412348796248, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.4781600268408435, + "ci90_low": 1.4490545942352007, + "ci90_high": 1.527861380578687, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 0.9770689761117142, + "ci90_low": 0.9531090608452739, + "ci90_high": 1.0028091760887239, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 2.8597267568834726, + "ci90_low": 2.7861055586351022, + "ci90_high": 2.9428685551097873, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 2.768086906110117, + "p10": 2.4240151224081794, + "p90": 3.409206751340463 + }, + "minimum_detectable_improvement": 0.5876275249425309, + "compile": { + "control": { + "lower_s": 34.073672700000316, + "compile_s": 31.729637299999013, + "first_call_s": 0.061136899999837624, + "trace_calls": 12, + "step0_rows": [ + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507 + ], + "flops": 139430656.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 91543512, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1986641920, + "rss_after_compile_bytes": 2061131776, + "rss_delta_bytes": 74489856, + "hlo_sha256": "d7436a87c8a50d7f", + "hlo_lines": 48278, + "hlo_large_constants": 2 + }, + "exact": { + "lower_s": 31.252336400000786, + "compile_s": 37.03994480000256, + "first_call_s": 0.030268499998783227, + "trace_calls": 12, + "step0_rows": [ + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085 + ], + "flops": 64953124.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 40429272, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2047565824, + "rss_after_compile_bytes": 2062176256, + "rss_delta_bytes": 14610432, + "hlo_sha256": "2e76d41853401f5b", + "hlo_lines": 48139, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 43.80870729999879, + "compile_s": 51.79030729999795, + "first_call_s": 0.038526899999851594, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 39461900.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22629400, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2055069696, + "rss_after_compile_bytes": 2067062784, + "rss_delta_bytes": 11993088, + "hlo_sha256": "f4d57efda883526b", + "hlo_lines": 48139, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 45.83944149999661, + "compile_s": 53.36248759999944, + "first_call_s": 0.03514300000097137, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 39461900.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22629400, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2062925824, + "rss_after_compile_bytes": 2078994432, + "rss_delta_bytes": 16068608, + "hlo_sha256": "78e164d011c0bbd0", + "hlo_lines": 48139, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 23.965075083393216, + -743.7107061666, + 3.3433302917272147, + -489.75562804160495, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160916, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ], + "exact": [ + 23.965075083393216, + -743.7107061666, + 3.3433302917272147, + -489.75562804160495, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160916, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ], + "lattice": [ + 23.965075083393216, + -743.7107061666, + 3.3433302917272147, + -489.75562804160495, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160916, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ], + "library": [ + 23.965075083393216, + -743.7107061666, + 3.3433302917272147, + -489.75562804160495, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160916, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 23.965075083393216, + "exact": 23.965075083393216, + "lattice": 23.965075083393216, + "library": 23.965075083393216 + } + } + }, + "gates": { + "simple_solved_positions": { + "n_instances": 3, + "compile": { + "control": { + "lower_s": 1.9544660999999905, + "compile_s": 2.5373825000024226, + "first_call_s": 0.008172699999704491, + "trace_calls": 1, + "step0_rows": [ + 69849 + ], + "flops": 6999844.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 4823832, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 717910016, + "rss_after_compile_bytes": 711589888, + "rss_delta_bytes": -6320128, + "hlo_sha256": "b0a08071516dff82", + "hlo_lines": 13336, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 1.9403015000025334, + "compile_s": 2.790100000001985, + "first_call_s": 0.004220899998472305, + "trace_calls": 1, + "step0_rows": [ + 28665 + ], + "flops": 4002064.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1776408, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 711589888, + "rss_after_compile_bytes": 712671232, + "rss_delta_bytes": 1081344, + "hlo_sha256": "23ac314e5339d7e5", + "hlo_lines": 13230, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 1.8866234000015538, + "compile_s": 2.5914643999967666, + "first_call_s": 0.003827399999863701, + "trace_calls": 1, + "step0_rows": [ + 11859 + ], + "flops": 3329824.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1692184, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 711426048, + "rss_after_compile_bytes": 713859072, + "rss_delta_bytes": 2433024, + "hlo_sha256": "5e076f83d2593ebc", + "hlo_lines": 13230, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 1.9499799999975949, + "compile_s": 2.722795400000905, + "first_call_s": 0.004224600001180079, + "trace_calls": 1, + "step0_rows": [ + 11859 + ], + "flops": 3329824.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1692184, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 712638464, + "rss_after_compile_bytes": 715612160, + "rss_delta_bytes": 2973696, + "hlo_sha256": "5e076f83d2593ebc", + "hlo_lines": 13230, + "hlo_large_constants": 3 + } + }, + "positions": { + "control": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "exact": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "lattice": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "library": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ] + }, + "finite_positions": { + "control": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "exact": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "lattice": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "library": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_lattice": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_library": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + } + } + }, + "simple_solved_grad": { + "n_instances": 3, + "rtol": 1e-10, + "atol": 1e-12, + "compile": { + "control": { + "lower_s": 6.167649100003473, + "compile_s": 8.129101999998966, + "first_call_s": 0.0090901000003214, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 9665219.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 4836248, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 713240576, + "rss_after_compile_bytes": 754016256, + "rss_delta_bytes": 40775680, + "hlo_sha256": "6d883e72040b10ee", + "hlo_lines": 46128, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 6.020705899998575, + "compile_s": 9.48318609999842, + "first_call_s": 0.00911380000252393, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 6388041.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 2075096, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 800444416, + "rss_after_compile_bytes": 839487488, + "rss_delta_bytes": 39043072, + "hlo_sha256": "60f676771eafd3f1", + "hlo_lines": 46010, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 6.573913800002629, + "compile_s": 11.805748599999788, + "first_call_s": 0.007615899998199893, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 5715801.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 2074968, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 836362240, + "rss_after_compile_bytes": 847990784, + "rss_delta_bytes": 11628544, + "hlo_sha256": "664d3a7f41ec4184", + "hlo_lines": 46010, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 7.090810599998804, + "compile_s": 9.881812300001911, + "first_call_s": 0.007664100001420593, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 5715801.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 2074968, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 844595200, + "rss_after_compile_bytes": 858791936, + "rss_delta_bytes": 14196736, + "hlo_sha256": "664d3a7f41ec4184", + "hlo_lines": 46010, + "hlo_large_constants": 3 + } + }, + "all_finite": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "any_nonzero_per_instance": { + "control": [ + true, + true, + true + ], + "exact": [ + true, + true, + true + ], + "lattice": [ + true, + true, + true + ], + "library": [ + true, + true, + true + ] + }, + "gradients": { + "control": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783334, + 2.804131922250644, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805021, + 74.32499719544035, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.0003235058508, + -1560.549091923857 + ] + ], + "exact": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783334, + 2.804131922250644, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805021, + 74.32499719544035, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.0003235058508, + -1560.549091923857 + ] + ], + "lattice": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783334, + 2.804131922250644, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805021, + 74.32499719544035, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.0003235058508, + -1560.549091923857 + ] + ], + "library": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783334, + 2.804131922250644, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805021, + 74.32499719544035, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.0003235058508, + -1560.549091923857 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + } + } + }, + "simple_solved_vmap4": { + "vmap_vs_scalar_within_route": { + "control": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + } + }, + "across_routes": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + } + }, + "simple_plain_step0_containing": { + "n_instances": 3, + "sets": { + "control": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "exact": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "lattice": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "library": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "identical": true + }, + "control_vs_lattice": { + "identical": true + }, + "control_vs_library": { + "identical": true + } + } + }, + "cluster_solved_positions": { + "n_instances": 3, + "compile": { + "control": { + "lower_s": 10.056290399999853, + "compile_s": 13.307065799999691, + "first_call_s": 0.07797109999955865, + "trace_calls": 2, + "step0_rows": [ + 276507, + 276507 + ], + "flops": 139395248.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 91549208, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2063413248, + "rss_after_compile_bytes": 2029703168, + "rss_delta_bytes": -33710080, + "hlo_sha256": "de9d675ed0ae3a5d", + "hlo_lines": 47312, + "hlo_large_constants": 2 + }, + "exact": { + "lower_s": 11.092924000000494, + "compile_s": 11.884108900001593, + "first_call_s": 0.029761199999484234, + "trace_calls": 2, + "step0_rows": [ + 110085, + 110085 + ], + "flops": 64918076.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 40762840, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2010398720, + "rss_after_compile_bytes": 2003427328, + "rss_delta_bytes": -6971392, + "hlo_sha256": "f322190f39ff2c5f", + "hlo_lines": 47173, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 7.478111600001284, + "compile_s": 11.607091099998797, + "first_call_s": 0.026555600001302082, + "trace_calls": 2, + "step0_rows": [ + 46516, + 46516 + ], + "flops": 39426892.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 22635928, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1995223040, + "rss_after_compile_bytes": 1993306112, + "rss_delta_bytes": -1916928, + "hlo_sha256": "57c6355fea6d3953", + "hlo_lines": 47173, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 8.173486499999854, + "compile_s": 10.541272300000855, + "first_call_s": 0.023342000000411645, + "trace_calls": 2, + "step0_rows": [ + 46516, + 46516 + ], + "flops": 39426892.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 22635928, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1990352896, + "rss_after_compile_bytes": 1993596928, + "rss_delta_bytes": 3244032, + "hlo_sha256": "57c6355fea6d3953", + "hlo_lines": 47173, + "hlo_large_constants": 3 + } + }, + "positions": { + "control": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "exact": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "lattice": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "library": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ] + }, + "finite_positions": { + "control": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "exact": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "lattice": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "library": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_lattice": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_library": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + } + } + } + }, + "wall_s": 1242.5086655000014 +} \ No newline at end of file diff --git a/results/breakdown/point_source/static_lattice_ab_laptop_cpu_fp64.png b/results/breakdown/point_source/static_lattice_ab_laptop_cpu_fp64.png new file mode 100644 index 0000000000000000000000000000000000000000..f58ac36bcdd6eddd352ac87c5a426e243c90d4ef GIT binary patch literal 173681 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


bXX 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 bP|_1dub Date: Thu, 24 Sep 2026 15:03:51 +0200 Subject: [PATCH 4/6] =?UTF-8?q?results(point=5Fsource):=20phase-3=20RAL=20?= =?UTF-8?q?static-lattice=20A/B=20(jobs=20350636=20CPU,=20350637=20A100)?= =?UTF-8?q?=20=E2=80=94=20ACCEPT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pull the RAL JSONs/PNGs (CPU folding off + on, A100) and both job logs. All three JSONs import PyAutoArray ad0bf97b / PyAutoLens b346b6a0 from the branch clones, self-label library_matches=lattice, 31/31 gates bit-identical. CPU (Xeon 8490H, folding off) control -> library: simple solved 3.540 -> 1.758 ms (2.01x), vmap-4 1.43x, plain 2.08x, cluster 5.21x / 5.16x; compile +3..+12 %; XLA temp 4.82 -> 1.69 MB / 91.6 -> 22.6 MB. Folding on: 1.39-4.54x, worst compile +16.5 %. A100: 1.01-1.07x, compile -2..+13 %, no regression. Campaign note phase-3 section: RAL tables, gates, tie-case gate decision pending at ship, stop-rule verdict, phase-4 re-rank from FLOP shares. README phase-3 bullet updated. Co-Authored-By: Claude Opus 5.5 --- README.md | 14 +- ..._ab_constant_folding_hpc_ral_cpu_fp64.json | 13576 +++++++++++++++ ...e_ab_constant_folding_hpc_ral_cpu_fp64.png | Bin 0 -> 128737 bytes .../static_lattice_ab_hpc_ral_a100_fp64.json | 13577 ++++++++++++++++ .../static_lattice_ab_hpc_ral_a100_fp64.png | Bin 0 -> 148041 bytes .../static_lattice_ab_hpc_ral_cpu_fp64.json | 13576 +++++++++++++++ .../static_lattice_ab_hpc_ral_cpu_fp64.png | Bin 0 -> 127073 bytes ...09_24_ral_job_350636_static_lattice_ab.out | 294 + ..._ral_job_350637_static_lattice_ab_a100.out | 166 + results/notes/point_source_cpu_campaign.md | 206 +- 10 files changed, 41388 insertions(+), 21 deletions(-) create mode 100644 results/breakdown/point_source/static_lattice_ab_constant_folding_hpc_ral_cpu_fp64.json create mode 100644 results/breakdown/point_source/static_lattice_ab_constant_folding_hpc_ral_cpu_fp64.png create mode 100644 results/breakdown/point_source/static_lattice_ab_hpc_ral_a100_fp64.json create mode 100644 results/breakdown/point_source/static_lattice_ab_hpc_ral_a100_fp64.png create mode 100644 results/breakdown/point_source/static_lattice_ab_hpc_ral_cpu_fp64.json create mode 100644 results/breakdown/point_source/static_lattice_ab_hpc_ral_cpu_fp64.png create mode 100644 results/notes/point_source_cpu_2026_09_24_ral_job_350636_static_lattice_ab.out create mode 100644 results/notes/point_source_cpu_2026_09_24_ral_job_350637_static_lattice_ab_a100.out diff --git a/README.md b/README.md index 1ac8b817d..824fddd00 100644 --- a/README.md +++ b/README.md @@ -264,11 +264,15 @@ separately per likelihood × transform. Standing conclusions: (simple solved 1.70 → 0.84 ms, cluster 4.21 → 2.46 ms), every gate bit-identical. Accepted; the post-fix call is deflection-dominated (70 % of FLOPs), so phase 3 is the static initial-lattice precompute. Findings: [`results/notes/point_source_cpu_campaign.md`](./results/notes/point_source_cpu_campaign.md). -- **Point-source CPU speed-up, phase 3 (2026-09, in progress)** — precompute the JAX PointSolver's - static step-0 lattice: deflect the 11 859 geometrically unique vertices instead of the 69 849 flat - slots (PyAutoArray #568). Four-route A/B cell `static_lattice_ab.py`. Laptop witness only - (load-inflated, not quotable): simple 1.9×, cluster 2.7×, FLOPs −52 % / −72 %, every gate - bit-identical; compile-time effect unresolved on the laptop. RAL CPU (pinned) and A100 legs pending. +- **Point-source CPU speed-up, phase 3 (2026-09)** — precompute the JAX PointSolver's static step-0 + lattice: deflect the 11 859 geometrically unique vertices instead of the 69 849 flat slots + (46 516 vs 276 507 on the cluster; PyAutoArray #568, PyAutoLens). Four-route in-process A/B + `static_lattice_ab.py`, RAL job 350636 (`ral`, pinned Xeon 8490H, 8 CPUs, folding off): simple solved + 3.54 → 1.76 ms (**2.01×**), vmap-4 1.43×, two-source cluster 47.4 → 9.1 ms (**5.21×**); FLOPs −52 % / + −72 %, XLA temp 4.8 → 1.7 MB / 91.6 → 22.6 MB, compile +3–12 % (+17 % worst with constant folding on, + which gives 2.1–4.5× on the scalar rows). A100 (job 350637): no regression, 1.01–1.07× faster. All 31 gates bit-identical. + Accepted; a bit-exact source-on-vertex tie (control 3 images incl. a duplicate root vs lattice 2) is a + human gate decision at ship. Post-fix, the refinement-step deflections (≈ 60 % of simple FLOPs) lead phase 4. Findings: [`results/notes/point_source_cpu_campaign.md`](./results/notes/point_source_cpu_campaign.md). ## How to read this repo diff --git a/results/breakdown/point_source/static_lattice_ab_constant_folding_hpc_ral_cpu_fp64.json b/results/breakdown/point_source/static_lattice_ab_constant_folding_hpc_ral_cpu_fp64.json new file mode 100644 index 000000000..832d258a7 --- /dev/null +++ b/results/breakdown/point_source/static_lattice_ab_constant_folding_hpc_ral_cpu_fp64.json @@ -0,0 +1,13576 @@ +{ + "cell": "static_lattice_ab", + "issue": "PyAutoLabs/PyAutoArray#568", + "phase": 3, + "config_name": "hpc_ral_cpu_fp64", + "quotable": true, + "host_note": null, + "quick": false, + "models": [ + "simple", + "cluster" + ], + "constant_folding": { + "requested": true, + "xla_flags_requested": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "xla_flags_effective": "--xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false --xla_disable_hlo_passes=constant_folding_probe_disabled", + "probe": { + "probe": "jit(lambda: c @ c), c = linspace(0.1, 1, 1000) constant", + "entry_has_computation": false, + "folding_ran": true, + "entry_hlo": "ENTRY %main.1 () -> f64[] {\n %constant.4 = f64[] constant(370.13513513513516), metadata={op_name=\"jit()/dot_general\" stack_frame_id=3}\n ROOT %copy = f64[] copy(%constant.4)\n}\n\n", + "agrees_with_request": true + } + }, + "library_versions": { + "autolens": "2026.8.17.1", + "autoarray": "2026.8.17.1", + "autofit": "2026.8.17.1" + }, + "package_versions": { + "jax": "0.10.2", + "jaxlib": "0.10.2" + }, + "source_revisions": { + "autolens_profiling": "3da2583d46b80f72793caf11a16433ca05f00d20", + "PyAutoNerves": "1fa613aa8d89a79613009fb66f5b4e2d21deb57a", + "PyAutoFit": "a736840127be7a3c21e15a5c945e94d8f1082983", + "PyAutoArray": "ad0bf97b45d572effa5d428a101d32ac4893b950", + "PyAutoGalaxy": "70a61e26cd715cefe7012a38285698091246a8a4", + "PyAutoLens": "b346b6a0a092098f23964e274edb220ea9757ad0" + }, + "autoarray_imported_from": "/mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_point-source-cpu-p3", + "autolens_imported_from": "/mnt/ral/jnightin/autolens_profiling_wt/PyAutoLens_point-source-cpu-p3", + "target": "autolens.point.solver.shape_solver.AbstractSolver._initial_triangles", + "route_bodies": { + "control": { + "name": "_control_initial_triangles", + "body": "def _control_initial_triangles(self, xp):\n \"\"\"The phase-2 main path: the flat (3N, 2) per-triangle table, no table attached.\"\"\"\n return _coordinate_array.CoordinateArrayTriangles.for_limits_and_scale(\n y_min=self.y_min, y_max=self.y_max, x_min=self.x_min, x_max=self.x_max, scale=self.scale\n )\n", + "bytecode_sha256": "decd881cb4e376c8" + }, + "table_factory": { + "name": "_table_initial_triangles", + "body": "def _table_initial_triangles(kind):\n def initial_triangles(self, xp):\n tables = _cell_tables(*_geometry(self))\n return _TableTriangles(\n coordinates=jnp.array(tables[\"coordinates\"]),\n side_length=self.scale,\n table=tables[kind],\n )\n\n initial_triangles.__name__ = f\"_{kind}_initial_triangles\"\n return initial_triangles\n", + "bytecode_sha256": "bbd192692915dcb2" + }, + "tables": { + "name": "_cell_tables", + "body": "@functools.lru_cache(maxsize=16)\ndef _cell_tables(y_min, y_max, x_min, x_max, scale) -> dict:\n \"\"\"``{\"exact\": (V, I), \"lattice\": (V, I), \"coordinates\": C}`` for one geometry.\"\"\"\n t0 = time.perf_counter()\n coordinates = _lattice_coordinates(y_min, y_max, x_min, x_max, scale)\n flip = np.where((coordinates[:, 0] + coordinates[:, 1]) % 2 != 0, -1, 1)[:, None]\n scaling = np.array([0.5 * scale, HEIGHT_FACTOR * scale])\n centres = scaling * coordinates + np.array([0.0, 0.0])\n triangles = np.stack(\n (\n centres + flip * np.array([0.0, 0.5 * scale * HEIGHT_FACTOR]),\n centres + flip * np.array([0.5 * scale, -0.5 * scale * HEIGHT_FACTOR]),\n centres + flip * np.array([-0.5 * scale, -0.5 * scale * HEIGHT_FACTOR]),\n ),\n axis=1,\n )\n flat = triangles.reshape(-1, 2)\n\n exact_vertices, exact_inverse = np.unique(flat, axis=0, return_inverse=True)\n\n offsets = np.array([[0, 1], [1, -1], [-1, -1]])\n keys = np.stack(\n (\n coordinates[:, None, 0] + flip * offsets[None, :, 0],\n 2 * coordinates[:, None, 1] + flip * offsets[None, :, 1],\n ),\n axis=-1,\n ).reshape(-1, 2)\n _, first, lattice_inverse = np.unique(keys, axis=0, return_index=True, return_inverse=True)\n\n tables = {\n \"coordinates\": coordinates,\n \"exact\": (exact_vertices, exact_inverse.reshape(-1, 3)),\n \"lattice\": (flat[first].copy(), lattice_inverse.reshape(-1, 3)),\n }\n _TABLE_BUILD_S[(y_min, y_max, x_min, x_max, scale)] = time.perf_counter() - t0\n return tables\n", + "bytecode_sha256": "3b7bdf752e1994f7" + }, + "table_triangles": { + "body": "class _TableTriangles(_coordinate_array.CoordinateArrayTriangles):\n \"\"\"The library lattice with a cell-supplied ``(vertices, indices)`` table.\n\n Only ``_vertices_and_indices`` changes; every derived lattice is built as the base\n class by the library's own methods, so steps >= 1 are untouched.\n \"\"\"\n\n def __init__(self, coordinates, side_length, table):\n super().__init__(coordinates=coordinates, side_length=side_length)\n self._cell_table = table\n\n @property\n def _vertices_and_indices(self):\n vertices, indices = self._cell_table\n return jnp.asarray(vertices), jnp.asarray(indices)\n", + "bytecode_sha256": "6308d3338aa3791a" + } + }, + "body_provenance_captured": "import time", + "expected_step0_rows": { + "simple": { + "geometry": [ + -9.9, + 9.9, + -9.9, + 9.9, + 0.2 + ], + "n_triangles": 23283, + "rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + } + }, + "cluster": { + "geometry": [ + -69.64999999999999, + 69.64999999999999, + -69.64999999999999, + 69.64999999999999, + 0.7 + ], + "n_triangles": 92169, + "rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + } + } + }, + "tables": { + "simple": { + "cell_build_ms": 82.00608380138874, + "cell_cache_hit_us": 0.5490146577358246, + "exact_table_mb": 1.017432, + "lattice_table_mb": 0.748536, + "library_static_vertex_table": { + "build_ms": 34.38778826966882, + "cache_hit_us": 1.2917444109916687, + "rows": 11859, + "mb": 0.748536, + "equals_cell_lattice_table": true + } + }, + "cluster": { + "cell_build_ms": 395.868934225291, + "cell_cache_hit_us": 0.5341134965419769, + "exact_table_mb": 3.973416, + "lattice_table_mb": 2.956312, + "library_static_vertex_table": { + "build_ms": 181.9877908565104, + "cache_hit_us": 2.1061860024929047, + "rows": 46516, + "mb": 2.956312, + "equals_cell_lattice_table": true + } + } + }, + "device": { + "backend": "cpu", + "device": "cpu:0", + "hostname": "euclid-ral-compute-10-2", + "xla_flags": "--xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false --xla_disable_hlo_passes=constant_folding_probe_disabled", + "omp_num_threads": "1", + "cpu_count": 236, + "jax_compilation_cache_dir": null, + "autotune_cache_entries_at_start": 0, + "cache_fresh": false + }, + "jax_devices": [ + "cpu:0" + ], + "machine": { + "cpu_model": "Intel(R) Xeon(R) Platinum 8490H", + "cpu_count_os": 236, + "nproc": 1, + "nproc_all": 236, + "nproc_note": "GNU nproc honours OMP_NUM_THREADS, so `nproc` can print 1 on a multi-core host; `nproc_all` is the core count.", + "ram_total": "1010827868 kB", + "kernel": "5.14.0-687.39.1.el9_8.x86_64", + "platform": "Linux-5.14.0-687.39.1.el9_8.x86_64-x86_64-with-glibc2.34", + "python": "3.12.4", + "jax_thread_env": { + "NPROC": "8" + }, + "blas_thread_env": { + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1", + "VECLIB_MAXIMUM_THREADS": null, + "NUMEXPR_NUM_THREADS": null + }, + "thread_env_note": "NPROC sizes XLA's CPU intra-op pool (the JAX rows); the BLAS knobs pin OpenBLAS/MKL/OpenMP (the numpy/scipy rows) and do not touch JAX. Two disjoint families; both are recorded on every CPU timing.", + "gpu": null + }, + "thread_environment": { + "NPROC": "8", + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1" + }, + "xla_threads_observed_after_first_compile": { + "threads": 50, + "label": "simple_solved/control" + }, + "threads_at_end": 50, + "sched_affinity": 8, + "os_cpu_count": 236, + "xla_flags": "--xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false --xla_disable_hlo_passes=constant_folding_probe_disabled", + "jax_platforms": "cpu", + "jax_enable_x64": true, + "loadavg_start": [ + 3.06, + 1.68, + 0.9 + ], + "loadavg_end": [ + 1.58, + 1.49, + 1.17 + ], + "protocol": { + "routes": [ + "control", + "exact", + "lattice", + "library" + ], + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "n_stream": 16, + "n_gate_instances": 3, + "vmap_batch": 4, + "instance_seed": 568, + "instance_stream": "entry 0 = prior medians; rest = vector_from_unit_vector(U(0.25,0.75))", + "argument": "physical parameter vector; instance_from_vector(xp=jnp) inside the trace", + "cache_trap_guard": "fresh closure + fresh solver/analyses per route; jax.clear_caches()", + "bootstrap": { + "samples": 2000, + "seed": 12345, + "interval": "90%" + }, + "gates": { + "log_likelihood_rtol": 1e-12, + "positions_atol": 1e-10, + "grad_rtol": 1e-10, + "grad_atol": 1e-12, + "vmap_rtol": 1e-12, + "cluster": "log-likelihood and positions only (no cluster grad/vmap/step-0 sets)" + }, + "pytrees": "autofit.jax.register_model(model) for every model before any trace" + }, + "free_parameters": { + "simple_solved": 5, + "simple_plain": 8, + "cluster_solved": 13, + "cluster_plain": 17 + }, + "model_configuration": { + "simple": { + "dataset": "dataset/point_source/simple/point_dataset_positions_only.json", + "solver_grid_shape": [ + 100, + 100 + ], + "solver_grid_pixel_scale": 0.2, + "solver_pixel_scale_precision": 0.001, + "magnification_threshold": 0.1, + "likelihoods": { + "solved": "FitPositionsImagePairAllSolved", + "plain": "FitPositionsImagePairAll" + } + }, + "cluster": { + "dataset": "dataset/cluster/simple/point_datasets.csv", + "n_systems": 2, + "n_mass_profiles": 13, + "solver_grid_shape": [ + 200, + 200 + ], + "solver_grid_pixel_scale": 0.7, + "solver_pixel_scale_precision": 0.01, + "source_centres_from": "back-traced observed-image centroids (cluster cell step 1)", + "likelihoods": { + "solved": "FitPositionsImagePairRepeatSolved (summed over systems)", + "plain": "FitPositionsImagePairRepeat (summed over systems)" + } + } + }, + "library_label": { + "per_row": { + "simple_solved": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "simple_solved_vmap4": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "simple_plain": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "cluster_solved": { + "library_step0_rows": [ + 46516 + ], + "expected_rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [] + }, + "cluster_plain": { + "library_step0_rows": [ + 46516 + ], + "expected_rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [] + } + }, + "library_matches": "lattice" + }, + "library_matches": "lattice", + "all_gates_pass": true, + "gate_summary": { + "simple_solved.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_positions.control_vs_exact": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_positions.control_vs_lattice": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_positions.control_vs_library": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_grad.control_vs_exact": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_grad.control_vs_lattice": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_grad.control_vs_library": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.control": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.exact": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.lattice": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.library": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_plain_step0_containing.control_vs_exact": { + "pass": true + }, + "simple_plain_step0_containing.control_vs_lattice": { + "pass": true + }, + "simple_plain_step0_containing.control_vs_library": { + "pass": true + }, + "cluster_solved_positions.control_vs_exact": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "cluster_solved_positions.control_vs_lattice": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "cluster_solved_positions.control_vs_library": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + } + }, + "rows": { + "simple_solved": { + "label": "simple_solved", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 3.7937909364700317, + 4.846933763474226, + 4.181128926575184, + 3.7395008839666843, + 3.1621139496564865, + 3.2064998522400856, + 4.3112002313137054, + 4.888326395303011, + 4.1837128810584545, + 3.040905110538006, + 3.2195672392845154, + 3.0865250155329704, + 3.0852938070893288, + 4.7725653275847435, + 4.914393182843924, + 3.1037158332765102, + 4.777838941663504, + 4.187637008726597, + 4.781739786267281, + 3.178064711391926, + 4.909054841846228, + 4.836134146898985, + 3.079578746110201, + 4.223297815769911, + 3.1253788620233536, + 4.817343316972256, + 3.0613173730671406, + 4.231489263474941, + 3.1892280094325542, + 3.032559994608164, + 4.275014158338308, + 4.760996904224157, + 4.3015433475375175, + 3.0184611678123474, + 3.052744083106518, + 4.841620568186045, + 4.26303269341588, + 3.124634735286236, + 4.145640879869461, + 3.1038131564855576, + 4.126755986362696, + 3.1882580369710922, + 3.0942847952246666, + 3.0945981852710247, + 3.5527050495147705, + 3.0886102467775345, + 3.598701674491167, + 3.178329672664404, + 4.292292986065149, + 3.135174047201872, + 4.235786851495504, + 4.780283197760582, + 3.0952543020248413, + 4.202053882181644, + 3.143039997667074, + 3.061604220420122, + 4.203033167868853, + 3.0880398117005825, + 4.116328898817301, + 3.131419885903597, + 2.982460428029299, + 2.999067772179842, + 4.685856867581606, + 4.711235873401165, + 4.651313181966543, + 2.9593748040497303, + 3.072732128202915, + 3.061919007450342, + 4.7725229524075985, + 4.79719927534461, + 4.236060660332441, + 3.132709302008152, + 3.5769143141806126, + 4.337051417678595, + 3.0561978928744793, + 3.024962730705738, + 4.205469042062759, + 3.58598493039608, + 4.220969043672085, + 4.846442956477404, + 4.6700770035386086, + 4.841404967010021, + 3.639619331806898, + 4.241770599037409, + 3.1888820230960846, + 4.798433277755976, + 3.0865189619362354, + 3.506395034492016, + 3.065451979637146, + 4.75366273894906, + 3.0928822234272957, + 4.81747230514884, + 4.936473909765482, + 4.2603579349815845, + 3.5781320184469223, + 3.0710510909557343, + 3.074615728110075, + 3.174536395817995, + 4.7919671051204205, + 4.807512275874615, + 4.784250166267157, + 3.090602345764637, + 3.067924175411463, + 3.108886070549488, + 4.741701763123274, + 4.804908763617277, + 3.1498130410909653, + 4.265082068741322, + 4.893448203802109, + 3.693733364343643, + 3.1045512296259403, + 4.217741079628468, + 4.317081067711115, + 4.810858052223921, + 3.099797759205103, + 3.1537492759525776, + 3.112480975687504, + 4.7957818023860455, + 4.255255684256554, + 4.272799007594585, + 3.029333893209696, + 4.232265055179596, + 4.791301675140858, + 3.651888109743595, + 3.1138667836785316, + 4.818696994334459, + 4.829547833651304, + 3.0617532320320606, + 4.1643548756837845, + 4.779476672410965, + 4.788511898368597, + 3.083552233874798, + 4.253020044416189, + 4.277084954082966, + 3.213420044630766, + 4.183290991932154, + 3.5795336589217186, + 4.833750892430544, + 3.152203280478716, + 3.163598943501711, + 4.719719290733337, + 4.780340939760208, + 4.1602798737585545, + 3.1151394359767437, + 3.070937003940344, + 3.7109339609742165, + 3.1814523972570896, + 4.816623870283365, + 3.1029321253299713, + 3.038404043763876, + 4.678848199546337, + 4.174341913312674, + 4.851887002587318, + 4.851215984672308, + 4.8189009539783, + 4.127066116780043, + 4.802299197763205, + 3.6595920100808144, + 4.869557451456785, + 3.0445102602243423, + 4.700466059148312, + 3.613522741943598, + 3.1054881401360035, + 3.045814111828804, + 3.0675712041556835, + 4.209680948406458, + 4.237827844917774, + 3.113097045570612, + 4.873799625784159, + 4.855656065046787, + 3.064584918320179, + 4.741317126899958, + 3.1025889329612255, + 4.83158091083169, + 4.856583662331104, + 3.711975645273924, + 4.759352188557386, + 4.234706982970238, + 4.8149810172617435, + 4.171463660895824, + 3.0037728138267994, + 4.213423002511263, + 4.8027653247118, + 4.923657979816198, + 4.232314880937338, + 3.1453161500394344, + 4.157021176069975, + 4.210054874420166, + 3.538799937814474, + 3.154342994093895, + 4.7678048722445965, + 3.059139009565115, + 4.253540188074112, + 4.821734968572855, + 3.1560342758893967, + 4.197707865387201, + 3.1231921166181564, + 4.798093810677528, + 4.81040496379137, + 3.135932143777609, + 4.720969125628471, + 3.0548530630767345, + 4.808452911674976, + 3.0582412146031857, + 3.0857212841510773, + 3.01580922678113, + 3.0638519674539566, + 4.162838216871023, + 3.0682492069900036, + 4.115278832614422, + 4.1610728949308395, + 4.765640012919903, + 4.876042250543833, + 3.090722020715475, + 4.180489107966423, + 3.108726814389229, + 3.5404497757554054, + 3.2439101487398148, + 4.776257090270519, + 4.235506057739258, + 4.092093091458082, + 3.160792402923107, + 3.042725380510092, + 3.052129875868559, + 4.762536380439997, + 3.114488907158375, + 4.1409689001739025, + 4.136988893151283, + 3.127908334136009, + 4.679619334638119, + 3.0444147996604443, + 4.24597691744566, + 4.262520931661129, + 3.7331688217818737, + 4.792782943695784, + 3.1572901643812656, + 3.1551122665405273, + 3.086776938289404, + 3.56309674680233, + 3.1852549873292446, + 4.091110080480576, + 3.0968189239501953, + 4.797262139618397, + 3.113043960183859, + 3.0479668639600277, + 3.1650480814278126, + 4.246234893798828, + 3.0899611301720142, + 4.763537552207708, + 3.043391741812229, + 4.782920237630606, + 4.20160498470068, + 3.1061857007443905, + 4.78232791647315, + 4.302946850657463, + 3.1088488176465034, + 3.0777123756706715, + 4.787628073245287, + 3.5838503390550613, + 3.0653299763798714, + 3.0757831409573555, + 3.124738112092018, + 3.1996979378163815, + 3.106093965470791, + 3.0553583055734634, + 3.452613018453121, + 4.094042349606752, + 4.653743002563715, + 4.695486277341843, + 4.648543894290924, + 4.673134069889784, + 4.673329181969166, + 2.962667029350996, + 2.9823491349816322, + 4.217166919261217, + 4.165214020758867, + 3.1256782822310925, + 3.0924812890589237, + 3.0109561048448086, + 3.1367968767881393, + 3.0433530919253826, + 4.719612654298544, + 4.881614353507757, + 4.197269678115845, + 3.1944597139954567, + 4.77929599583149, + 4.191984888166189, + 4.255815874785185, + 4.242200870066881, + 3.203699365258217, + 4.246048629283905, + 3.085073083639145, + 4.216597881168127, + 3.1123319640755653, + 4.217065870761871, + 4.762272350490093, + 3.1480183824896812, + 4.198350012302399, + 3.073214553296566, + 3.075484186410904, + 3.3249673433601856, + 3.1134793534874916, + 3.075091168284416, + 3.074275329709053, + 4.806857090443373, + 4.138935822993517, + 4.887185990810394, + 4.791853949427605, + 4.792329855263233, + 3.034743946045637, + 4.767745267599821, + 4.879286978393793, + 3.6075301468372345, + 3.075373824685812, + 4.787547048181295, + 3.106210380792618, + 4.239654168486595, + 3.1052427366375923, + 3.064381889998913, + 3.0959718860685825, + 3.043241798877716, + 3.0634100548923016, + 3.069144207984209, + 4.223951604217291, + 4.861155990511179, + 4.690321162343025, + 2.9902742244303226, + 3.051863983273506, + 2.957200165838003, + 3.0708350241184235, + 3.049367107450962, + 4.236982669681311, + 4.937579855322838, + 4.827313125133514, + 4.808436613529921, + 3.083442337810993, + 3.053750842809677, + 3.7232046015560627, + 4.267937038093805, + 3.1084460206329823, + 4.6774959191679955, + 4.6873269602656364, + 4.2121936567127705, + 4.224244970828295, + 4.72915219143033, + 3.0215918086469173, + 3.49882198497653, + 4.6669840812683105, + 4.700152203440666, + 4.230993799865246, + 2.985272090882063, + 3.0612023547291756, + 4.207017831504345, + 4.795734770596027, + 3.6090281791985035, + 4.867582116276026, + 3.0912081710994244, + 3.046295139938593, + 4.807733930647373, + 4.790166858583689, + 4.131393972784281, + 4.804458003491163, + 4.780930932611227, + 3.0870288610458374, + 3.036289010196924, + 4.103096667677164, + 4.865833092480898, + 3.103037364780903, + 4.226451739668846, + 3.0710510909557343, + 4.192812833935022, + 3.125539980828762, + 4.794265143573284, + 3.112613223493099, + 3.0393609777092934, + 3.1024981290102005, + 4.779879003763199, + 4.212107043713331, + 4.828262608498335, + 3.1238780356943607, + 3.105031792074442, + 3.1419480219483376, + 3.133069723844528, + 3.0686622485518456, + 3.048158250749111, + 3.0894451774656773, + 3.5266089253127575, + 4.781929776072502, + 4.302282817661762, + 4.820539150387049, + 3.045360092073679, + 4.7268192283809185, + 3.025633282959461, + 3.062073141336441, + 3.1890668906271458, + 4.786974284797907, + 4.920708946883678, + 4.833655897527933, + 4.176267888396978, + 3.5958378575742245 + ], + "exact": [ + 2.0576450042426586, + 2.1285992115736008, + 2.9140831902623177, + 2.832564990967512, + 2.0830202847719193, + 2.7147228829562664, + 2.2254688665270805, + 2.691076137125492, + 2.7510449290275574, + 2.589003648608923, + 2.4747271090745926, + 2.096286043524742, + 2.3775571025907993, + 2.2273100912570953, + 2.124006859958172, + 2.1640737541019917, + 2.2562211379408836, + 2.0896783098578453, + 2.1322518587112427, + 2.1383147686719894, + 2.048065420240164, + 2.5601922534406185, + 2.270482014864683, + 2.1045077592134476, + 2.1079126745462418, + 2.5964598171412945, + 2.381546888500452, + 2.097798977047205, + 2.0996672101318836, + 2.844973001629114, + 2.5175740011036396, + 2.5176447816193104, + 2.0717638544738293, + 2.557761035859585, + 2.029729075729847, + 2.784599084407091, + 2.119105774909258, + 2.1162182092666626, + 2.4248501285910606, + 2.5235582143068314, + 2.011556178331375, + 2.6058629155158997, + 2.134996000677347, + 2.3729917593300343, + 2.1531470119953156, + 2.6113390922546387, + 2.157987095415592, + 2.1909228526055813, + 2.6412177830934525, + 2.811478916555643, + 2.8601307421922684, + 2.5627403520047665, + 2.6339488103985786, + 2.827978227287531, + 2.1925419569015503, + 2.1157502196729183, + 2.0858231000602245, + 2.5441711768507957, + 2.0973659120500088, + 2.7716592885553837, + 2.032361924648285, + 2.0833369344472885, + 2.0487592555582523, + 2.104089129716158, + 2.0463019609451294, + 2.561495639383793, + 2.1375040523707867, + 2.5781667791306973, + 2.126950304955244, + 2.831116784363985, + 2.1435976959764957, + 2.114284783601761, + 2.57053691893816, + 2.1242457441985607, + 2.568664960563183, + 2.1077380515635014, + 1.9948729313910007, + 1.965377014130354, + 1.981590874493122, + 1.9920412451028824, + 2.512057777494192, + 2.809547819197178, + 2.481933683156967, + 2.020479179918766, + 2.0663277246057987, + 2.027834765613079, + 2.0238710567355156, + 2.2261962294578552, + 2.1827728487551212, + 2.1003279834985733, + 2.1446780301630497, + 2.575948368757963, + 2.1089939400553703, + 2.0844563841819763, + 2.1034651435911655, + 2.0831110887229443, + 2.1394570358097553, + 2.6226649060845375, + 2.1810829639434814, + 2.5468519888818264, + 2.4917451664805412, + 2.0799213089048862, + 2.8350092470645905, + 2.1677762269973755, + 2.677156124264002, + 2.1663550287485123, + 2.388925291597843, + 2.78054503723979, + 2.590055111795664, + 2.2006030194461346, + 2.0913882181048393, + 2.0911460742354393, + 2.5597368367016315, + 2.224980853497982, + 2.54277978092432, + 2.826108131557703, + 2.6075439527630806, + 2.10664514452219, + 2.5521009229123592, + 2.4284441024065018, + 2.7063176967203617, + 2.1608667448163033, + 2.6899310760200024, + 2.6105190627276897, + 2.107868902385235, + 2.590301912277937, + 2.080137375742197, + 2.65000993385911, + 2.552612219005823, + 2.202274277806282, + 2.654651179909706, + 2.238274086266756, + 2.2137402556836605, + 2.195672132074833, + 2.8732987120747566, + 2.6238663122057915, + 2.8377226553857327, + 2.835465595126152, + 2.5850660167634487, + 2.1110856905579567, + 2.058945130556822, + 2.036234363913536, + 2.767395693808794, + 2.159851137548685, + 2.159043215215206, + 2.660056110471487, + 2.096722833812237, + 2.6417532935738564, + 2.5903391651809216, + 2.6386668905615807, + 2.1605039946734905, + 2.5646938011050224, + 2.1073510870337486, + 2.879674080759287, + 2.141512930393219, + 2.1170852705836296, + 2.5707921013236046, + 2.6879459619522095, + 2.2138869389891624, + 2.93972110375762, + 2.034519799053669, + 2.1241693757474422, + 2.824947237968445, + 2.5750892236828804, + 2.1190200932323933, + 2.535414882004261, + 2.5585521943867207, + 2.762428019195795, + 2.0763534121215343, + 2.0823306404054165, + 2.121719066053629, + 2.1005268208682537, + 2.105090767145157, + 2.5726277381181717, + 2.0713377743959427, + 2.5295428931713104, + 2.7909157797694206, + 2.782153896987438, + 2.0282845944166183, + 2.4273660965263844, + 2.037098165601492, + 2.475250046700239, + 2.0342417992651463, + 2.0680781453847885, + 2.0611812360584736, + 2.071244176477194, + 3.043045289814472, + 2.7153659611940384, + 2.1054609678685665, + 2.784804906696081, + 2.0926869474351406, + 2.6771859265863895, + 2.5650877505540848, + 2.6244348846375942, + 2.1093739196658134, + 2.5456519797444344, + 2.0776749588549137, + 2.0759697072207928, + 2.543199807405472, + 2.089431043714285, + 2.762705087661743, + 2.6902970857918262, + 2.174840308725834, + 2.6037590578198433, + 2.158142626285553, + 2.159703057259321, + 2.110447268933058, + 2.571373712271452, + 2.6254416443407536, + 2.607285976409912, + 2.078292891383171, + 2.6606908068060875, + 2.1642660722136497, + 2.1180231124162674, + 2.0472933538258076, + 2.5387760251760483, + 2.092763315886259, + 2.0874198526144028, + 2.7917269617319107, + 2.815582789480686, + 2.462720964103937, + 2.5271428748965263, + 2.704635728150606, + 2.4204030632972717, + 2.0084520801901817, + 2.047985326498747, + 2.010724041610956, + 2.0065470598638058, + 2.6942589320242405, + 2.159880008548498, + 2.097283024340868, + 2.0631649531424046, + 2.5979289785027504, + 2.588947769254446, + 2.1325680427253246, + 2.1824343129992485, + 2.2286949679255486, + 2.243341412395239, + 2.1279100328683853, + 2.5661177933216095, + 2.043515909463167, + 2.1209418773651123, + 2.3672599345445633, + 2.105223946273327, + 2.1037799306213856, + 2.0881169475615025, + 2.0970460027456284, + 2.10750475525856, + 2.1885246969759464, + 2.4075228720903397, + 2.5957408361136913, + 2.658780664205551, + 2.654548268765211, + 2.631119918078184, + 2.5586746633052826, + 2.120169810950756, + 2.1058786660432816, + 2.8106598183512688, + 2.0889658480882645, + 2.619260922074318, + 2.030731178820133, + 2.098778262734413, + 2.5073587894439697, + 2.6692659594118595, + 2.144599799066782, + 2.1036751568317413, + 2.109647262841463, + 2.547436859458685, + 2.0513837225735188, + 2.8074770234525204, + 2.116688061505556, + 2.0891232416033745, + 2.0848670974373817, + 2.0821690559387207, + 2.089153975248337, + 2.1229861304163933, + 2.123177982866764, + 2.095974050462246, + 2.095474861562252, + 2.088265959173441, + 2.0220880396664143, + 2.1098400466144085, + 2.116614021360874, + 2.836178056895733, + 2.1051079966127872, + 2.3621153086423874, + 2.541750203818083, + 2.0864089019596577, + 2.6314472779631615, + 2.2694729268550873, + 2.524011302739382, + 2.4859453551471233, + 2.02735373750329, + 2.476729918271303, + 2.604758832603693, + 2.616333309561014, + 2.6442757807672024, + 2.0901947282254696, + 2.2132722660899162, + 2.6450916193425655, + 2.031647600233555, + 2.1034018136560917, + 2.0724269561469555, + 2.565524075180292, + 2.6458436623215675, + 2.6224758476018906, + 2.563580870628357, + 2.0283889025449753, + 2.4953680112957954, + 2.0195068791508675, + 1.9756751134991646, + 2.0717917941510677, + 2.6546106673777103, + 2.4626203812658787, + 2.080813981592655, + 2.5908048264682293, + 2.187022939324379, + 2.181094139814377, + 2.7958760038018227, + 2.885865978896618, + 2.0576012320816517, + 2.0843995735049248, + 2.7824421413242817, + 2.141417935490608, + 2.2376738488674164, + 2.1086959168314934, + 2.847406081855297, + 2.842244692146778, + 2.840021625161171, + 2.15082336217165, + 2.1469411440193653, + 2.1124640479683876, + 2.5807968340814114, + 2.1319622173905373, + 2.56409402936697, + 2.6160390116274357, + 2.1949531510472298, + 2.168550156056881, + 2.113095950335264, + 2.8569591231644154, + 2.0631509833037853, + 2.1427269093692303, + 2.1198210306465626, + 2.1574427373707294, + 2.103179693222046, + 2.5885342620313168, + 2.6257880963385105, + 2.0751357078552246, + 2.5947117246687412, + 2.10797181352973, + 2.754548564553261, + 2.098974771797657, + 2.5000660680234432, + 2.1422067657113075, + 2.1116919815540314, + 2.51961313188076, + 2.846708055585623, + 2.582704182714224, + 2.2086878307163715, + 2.104337327182293, + 2.037597354501486, + 2.567024901509285, + 2.208506688475609, + 2.134823240339756, + 2.6342682540416718, + 2.529697958379984, + 2.1310229785740376, + 2.1602800115942955, + 2.090930938720703, + 2.084816340357065, + 2.1167807281017303, + 2.6558940298855305, + 2.8000990860164165, + 2.146797254681587, + 2.5718300603330135, + 2.5521540082991123, + 2.1837069652974606, + 2.554262988269329, + 2.560750115662813, + 2.1935347467660904, + 2.042082604020834, + 2.611918840557337, + 2.1527810022234917, + 2.851740922778845, + 2.129104919731617, + 2.068601083010435, + 2.0460449159145355, + 2.402797807008028, + 2.5708270259201527, + 2.8094318695366383, + 2.7904813177883625, + 2.567120362073183, + 2.6180781424045563, + 2.0911740139126778, + 2.1506953053176403, + 2.8458060696721077, + 2.2003408521413803, + 2.026862930506468, + 2.1704467944800854, + 2.121314872056246 + ], + "lattice": [ + 2.022925764322281, + 1.80923193693161, + 1.615624874830246, + 1.7211823724210262, + 2.1577286534011364, + 1.610604114830494, + 2.136716153472662, + 1.735395286232233, + 2.1192599087953568, + 2.303002867847681, + 1.6629383899271488, + 2.144408877938986, + 1.6370811499655247, + 2.101993188261986, + 2.1869419142603874, + 2.136514987796545, + 2.0876601338386536, + 1.556113362312317, + 1.986905001103878, + 2.124920953065157, + 2.0040650852024555, + 1.6063437797129154, + 1.5935581177473068, + 2.137848176062107, + 2.1571009419858456, + 1.581189688295126, + 1.9437670707702637, + 1.7274562269449234, + 2.1006171591579914, + 1.617765985429287, + 2.0806468091905117, + 1.717871055006981, + 2.0354180596768856, + 2.047580201178789, + 2.0630420185625553, + 1.6173562034964561, + 1.5597478486597538, + 2.037639729678631, + 2.093580085784197, + 2.058678772300482, + 1.9480632618069649, + 1.935967244207859, + 1.9644461572170258, + 1.9674738869071007, + 1.6308408230543137, + 1.9493247382342815, + 1.4638099819421768, + 2.1321969106793404, + 1.63746764883399, + 1.7603188753128052, + 1.5617921017110348, + 2.100597135722637, + 2.0366497337818146, + 1.6095880419015884, + 1.9299089908599854, + 1.4988756738603115, + 1.9559888169169426, + 1.5434380620718002, + 2.0347540266811848, + 2.0157061517238617, + 1.9106478430330753, + 1.5130690298974514, + 1.5846849419176579, + 2.1279859356582165, + 2.015551086515188, + 1.5925178304314613, + 2.0554158836603165, + 2.0103328861296177, + 2.0515057258307934, + 2.1112081594765186, + 1.5299147926270962, + 1.6243746504187584, + 1.637493260204792, + 1.5930910594761372, + 2.120386343449354, + 1.608214806765318, + 2.124970778822899, + 1.7048991285264492, + 1.5930812805891037, + 2.1054036915302277, + 2.056252211332321, + 1.6099740751087666, + 1.6117580235004425, + 2.1113427355885506, + 2.0514922216534615, + 2.151565160602331, + 2.102324739098549, + 1.571347936987877, + 2.0242687314748764, + 1.649071928113699, + 1.7216061241924763, + 1.5538628213107586, + 2.008429728448391, + 1.583700068295002, + 1.6397982835769653, + 2.0307102240622044, + 1.605439931154251, + 2.0533879287540913, + 1.6578068025410175, + 2.104755025357008, + 1.8115788698196411, + 1.5342212282121181, + 1.6760663129389286, + 2.053667325526476, + 1.6251718625426292, + 2.0803348161280155, + 2.2140969522297382, + 2.1679350174963474, + 1.6901781782507896, + 1.681366004049778, + 2.030783798545599, + 1.7222450114786625, + 1.6160239465534687, + 1.6061891801655293, + 1.596149057149887, + 1.6152728348970413, + 2.2103069350123405, + 1.5854272060096264, + 1.6111908480525017, + 1.5866439789533615, + 1.4861789532005787, + 1.542588695883751, + 1.6456060111522675, + 2.138660289347172, + 1.589448656886816, + 2.0611067302525043, + 1.6219308599829674, + 2.2293790243566036, + 1.6927621327340603, + 1.58351706340909, + 2.0496067591011524, + 1.6504586674273014, + 2.1594399586319923, + 1.7161210998892784, + 2.104009035974741, + 1.6059665940701962, + 2.024746034294367, + 2.108180895447731, + 2.0487867295742035, + 2.034418750554323, + 2.0521972328424454, + 1.9109570421278477, + 2.00893497094512, + 2.1572676487267017, + 2.058316022157669, + 1.6342545859515667, + 2.1006129682064056, + 1.6575143672525883, + 2.0552808418869972, + 1.685325987637043, + 2.0033768378198147, + 1.6531143337488174, + 2.081620041280985, + 1.5932777896523476, + 1.5887320041656494, + 1.7084218561649323, + 1.6206656582653522, + 1.5753316693007946, + 1.583616714924574, + 2.067448105663061, + 1.9481978379189968, + 2.1806969307363033, + 1.6287402249872684, + 2.0980299450457096, + 1.5738029032945633, + 2.1177749149501324, + 2.029548864811659, + 2.0544719882309437, + 2.1592150442302227, + 2.0570140331983566, + 1.6246982850134373, + 1.6012820415198803, + 1.6296771354973316, + 1.6669672913849354, + 1.6440488398075104, + 2.0895786583423615, + 1.587884034961462, + 2.1099704317748547, + 2.050135750323534, + 1.556956209242344, + 1.4921380206942558, + 1.9370862282812595, + 2.0884359255433083, + 1.670965924859047, + 1.6110818833112717, + 1.5751300379633904, + 2.11548525840044, + 1.7296429723501205, + 2.084274310618639, + 1.6015046276152134, + 2.1056849509477615, + 2.0965319126844406, + 1.930550206452608, + 2.105560153722763, + 1.632271334528923, + 2.1013040095567703, + 2.1310849115252495, + 1.9860630854964256, + 1.9457368180155754, + 1.9862949848175049, + 1.515649724751711, + 2.1443981677293777, + 2.1438817493617535, + 1.6028317622840405, + 1.6101999208331108, + 1.5553710982203484, + 2.0126663148403168, + 1.625201664865017, + 2.0881439559161663, + 1.781265251338482, + 2.0360657945275307, + 1.649604644626379, + 2.1688351407647133, + 1.5780190005898476, + 1.5788250602781773, + 2.0940653048455715, + 2.019024919718504, + 2.069865819066763, + 1.6279756091535091, + 1.7525320872664452, + 1.978680957108736, + 2.0498670637607574, + 1.6428190283477306, + 2.113752067089081, + 2.0713149569928646, + 2.151454333215952, + 1.7608092166483402, + 1.967777032405138, + 1.4849049039185047, + 1.476889941841364, + 1.5118969604372978, + 1.612239982932806, + 2.0273011177778244, + 1.9718930125236511, + 1.5305280685424805, + 1.9557960331439972, + 1.6322489827871323, + 1.6519678756594658, + 1.958552747964859, + 1.9693747162818909, + 1.943082083016634, + 1.6007740050554276, + 2.0954268984496593, + 1.681158784776926, + 2.1516308188438416, + 1.7289789393544197, + 1.599437091499567, + 2.110850065946579, + 1.6388450749218464, + 2.1769716404378414, + 1.658707857131958, + 2.1451753564178944, + 1.6166581772267818, + 2.0535672083497047, + 1.5845103189349174, + 2.1354290656745434, + 1.5799328684806824, + 2.1127010695636272, + 2.037384081631899, + 1.5685888938605785, + 1.5630656853318214, + 1.5986296348273754, + 2.040563616901636, + 1.6119088977575302, + 1.7877579666674137, + 1.5401886776089668, + 1.65898771956563, + 1.6106562688946724, + 2.052761148661375, + 1.56073784455657, + 1.6115857288241386, + 2.248939126729965, + 2.125220838934183, + 2.094295807182789, + 1.599147915840149, + 2.204373013228178, + 2.1393545903265476, + 1.5712580643594265, + 1.6746069304645061, + 1.614757813513279, + 1.5071961097419262, + 1.5880241990089417, + 1.5882942825555801, + 2.531395759433508, + 1.7361119389533997, + 2.128852065652609, + 2.1251379512250423, + 1.6181031242012978, + 1.8880111165344715, + 1.7584790475666523, + 2.0345221273601055, + 2.0939898677170277, + 2.1015703678131104, + 1.6276249662041664, + 1.5100599266588688, + 1.6334811225533485, + 2.038398291915655, + 2.0744958892464638, + 2.035859040915966, + 2.1124975755810738, + 1.5896246768534184, + 2.0171543583273888, + 2.085536252707243, + 1.673188991844654, + 1.5611862763762474, + 1.7012539319694042, + 2.146138809621334, + 2.0915260538458824, + 1.7178235575556755, + 2.030496019870043, + 1.5803789719939232, + 1.6688434407114983, + 2.0938622765243053, + 1.7580441199243069, + 2.0928652957081795, + 1.584456767886877, + 1.6489061526954174, + 1.5646088868379593, + 1.7990372143685818, + 1.7109946347773075, + 2.0280969329178333, + 1.6013029962778091, + 1.6263467259705067, + 2.0617726258933544, + 1.7178556881844997, + 2.044087275862694, + 2.119226846843958, + 1.656578853726387, + 1.6057942993938923, + 1.5803137794137, + 1.5915902331471443, + 1.5958393923938274, + 2.0763990469276905, + 1.6774027608335018, + 1.573359128087759, + 2.0789741538465023, + 2.104859799146652, + 2.0878082141280174, + 1.621931791305542, + 1.6659731045365334, + 1.9546020776033401, + 2.093016169965267, + 1.7175138927996159, + 2.05805990844965, + 1.584719866514206, + 1.643144991248846, + 1.6271183267235756, + 1.7069331370294094, + 1.5616286545991898, + 1.5959958545863628, + 1.6058147884905338, + 2.0599900744855404, + 1.6021272167563438, + 1.647253055125475, + 1.7659179866313934, + 1.5836800448596478, + 1.586833968758583, + 1.9777873530983925, + 2.09521921351552, + 1.7015761695802212, + 1.9784141331911087, + 1.6014589928090572, + 1.6336441040039062, + 2.191132865846157, + 1.6585960984230042, + 2.163833938539028, + 1.7710812389850616, + 2.1435008384287357, + 1.7718933522701263, + 1.630323939025402, + 1.578587107360363, + 2.0787562243640423, + 2.209364902228117, + 2.1377508528530598, + 2.1328511647880077, + 1.5404666773974895, + 1.6231420449912548, + 1.8584229983389378, + 1.6728281043469906, + 1.5944242477416992, + 1.95798696950078, + 1.6446998342871666, + 1.6326713375747204, + 2.1281009539961815, + 2.057744190096855, + 2.060513012111187, + 1.685997936874628, + 2.0421165972948074, + 2.1696100011467934, + 1.6533969901502132, + 1.6684806905686855, + 2.1129949018359184, + 1.6749240458011627, + 2.037832047790289, + 1.6591143794357777, + 2.130587585270405, + 2.0664390176534653, + 2.0301840268075466, + 1.6946978867053986, + 2.059896942228079 + ], + "library": [ + 1.5598470345139503, + 2.1751997992396355, + 2.2383141331374645, + 2.0965938456356525, + 2.297618892043829, + 2.286254893988371, + 1.7199870198965073, + 1.6900240443646908, + 2.0338688045740128, + 2.221172209829092, + 1.6927211545407772, + 2.013586927205324, + 1.6992646269500256, + 2.155076712369919, + 1.6355449333786964, + 2.1210340782999992, + 1.695804763585329, + 1.5931427478790283, + 1.5825498849153519, + 1.5683979727327824, + 1.5415400266647339, + 2.0745000801980495, + 1.646299846470356, + 1.9956068135797977, + 1.9808560609817505, + 1.93351274356246, + 1.5414049848914146, + 1.5976219438016415, + 2.031496725976467, + 1.7186128534376621, + 1.6929679550230503, + 2.1859719417989254, + 2.053100150078535, + 2.0577008835971355, + 1.6128309071063995, + 2.047999296337366, + 2.0971233025193214, + 2.1742628887295723, + 1.74766406416893, + 1.7100651748478413, + 1.5223422087728977, + 1.5241578221321106, + 1.9605900160968304, + 1.5219277702271938, + 1.5002209693193436, + 1.4939522370696068, + 1.6434048302471638, + 1.5761172398924828, + 2.0049940794706345, + 2.09055095911026, + 1.6891160048544407, + 2.060730941593647, + 1.6320771537721157, + 2.146389801055193, + 2.1133599802851677, + 2.0164311863482, + 1.6799462027847767, + 1.5720389783382416, + 1.7307200469076633, + 1.603766344487667, + 1.5465677715837955, + 1.62406824529171, + 2.042850013822317, + 1.9882600754499435, + 2.0118439570069313, + 2.088235691189766, + 1.6377940773963928, + 2.0385468378663063, + 1.6531250439584255, + 1.6315886750817299, + 1.5888097696006298, + 1.6539967618882656, + 2.113373950123787, + 2.0629381760954857, + 1.462067011743784, + 1.9520851783454418, + 1.497618854045868, + 1.9485079683363438, + 1.9496590830385685, + 2.0547970198094845, + 1.9733449444174767, + 2.186778001487255, + 2.0818240009248257, + 1.554999966174364, + 2.1131602115929127, + 1.6545569524168968, + 1.6240421682596207, + 1.5949252992868423, + 2.1023289300501347, + 1.6890228725969791, + 1.7305701039731503, + 2.143959980458021, + 1.621271949261427, + 1.6784947365522385, + 1.729309093207121, + 1.6423510387539864, + 2.0443880930542946, + 2.0403112284839153, + 1.9972007721662521, + 1.575734931975603, + 2.0585916936397552, + 2.0320131443440914, + 2.010071650147438, + 2.159015741199255, + 1.6226437874138355, + 1.5925969928503036, + 2.005157992243767, + 1.546588260680437, + 1.6423189081251621, + 1.5834476798772812, + 2.0690951496362686, + 2.054136246442795, + 2.0087468437850475, + 2.051670104265213, + 1.5780040994286537, + 2.0346776582300663, + 2.053359989076853, + 1.5486320480704308, + 2.1099522709846497, + 2.0325821824371815, + 1.5145321376621723, + 2.0486628636717796, + 1.703138928860426, + 1.6183368861675262, + 1.5977066941559315, + 1.6142972745001316, + 1.724265981465578, + 1.6476339660584927, + 2.048105001449585, + 1.6747727058827877, + 2.0307879894971848, + 2.0457818172872066, + 2.098585944622755, + 1.6106958501040936, + 2.1274550817906857, + 1.6964669339358807, + 1.6358410939574242, + 2.107245847582817, + 2.0416490733623505, + 1.5957467257976532, + 1.5122010372579098, + 2.167786005884409, + 2.1625300869345665, + 1.6248282045125961, + 1.6652499325573444, + 2.035595942288637, + 1.6242549754679203, + 2.1232804283499718, + 2.0124251022934914, + 1.6130250878632069, + 1.6034869477152824, + 2.0648008212447166, + 1.5982920303940773, + 2.1279570646584034, + 2.0472328178584576, + 2.045532688498497, + 2.1369922906160355, + 1.9945758394896984, + 1.6699121333658695, + 2.0481650717556477, + 1.523330807685852, + 1.583924051374197, + 2.0055389031767845, + 1.6078599728643894, + 1.5907841734588146, + 1.7377561889588833, + 1.5793251805007458, + 1.5771188773214817, + 1.6131452284753323, + 2.11706617847085, + 1.6643726266920567, + 1.7659268341958523, + 1.6499669291079044, + 2.123003825545311, + 1.5902500599622726, + 1.692483201622963, + 1.5850220806896687, + 2.0138928666710854, + 1.5724822878837585, + 1.5354491770267487, + 2.0477669313549995, + 2.2020977921783924, + 2.180946059525013, + 2.060552127659321, + 2.008473966270685, + 2.0466051064431667, + 1.788050401955843, + 1.6815848648548126, + 1.555857714265585, + 1.9713588990271091, + 1.6341861337423325, + 2.086720895022154, + 1.5937350690364838, + 1.5267780981957912, + 1.634994987398386, + 1.5700445510447025, + 1.5923501923680305, + 1.6053593717515469, + 1.536891795694828, + 1.7047598958015442, + 1.621721312403679, + 1.565455924719572, + 2.1082251332700253, + 1.6231415793299675, + 1.6410909593105316, + 1.9588260911405087, + 1.9832649268209934, + 1.761936116963625, + 2.1530878730118275, + 2.0429138094186783, + 2.0345961675047874, + 2.0734770223498344, + 2.101687714457512, + 1.7376667819917202, + 1.5870798379182816, + 1.5481002628803253, + 2.0992662757635117, + 2.0277821458876133, + 2.04255199059844, + 2.0886273123323917, + 1.533211674541235, + 2.2054631263017654, + 2.0993826910853386, + 1.7787888646125793, + 1.864147838205099, + 1.5760939568281174, + 1.5387232415378094, + 2.0436346530914307, + 1.5863310545682907, + 1.6105067916214466, + 2.0730593241751194, + 1.6221837140619755, + 1.6757240518927574, + 2.1770629100501537, + 1.5785438008606434, + 2.023523673415184, + 2.0650848746299744, + 1.604198943823576, + 2.044044900685549, + 1.6688569448888302, + 1.5376419760286808, + 2.004372887313366, + 1.647775061428547, + 1.60279031842947, + 1.6439389437437057, + 1.6536959446966648, + 2.061858307570219, + 1.6132481396198273, + 1.9456278532743454, + 1.9662328995764256, + 1.9415640272200108, + 1.620336901396513, + 1.560085453093052, + 1.577950082719326, + 2.167023252695799, + 1.5323739498853683, + 2.1576890721917152, + 2.065206877887249, + 1.7447681166231632, + 1.5764026902616024, + 1.6728397458791733, + 2.071673981845379, + 1.652065198868513, + 2.1272683516144753, + 2.014530822634697, + 1.637907698750496, + 2.1423553116619587, + 2.1269889548420906, + 2.1206922829151154, + 1.5811570920050144, + 1.6191471368074417, + 2.1084840409457684, + 1.5940391458570957, + 1.6042711213231087, + 2.103575970977545, + 2.1287440322339535, + 1.5886547043919563, + 1.7934911884367466, + 1.6312380321323872, + 2.0878450013697147, + 1.9744192250072956, + 1.5589632093906403, + 1.6178339719772339, + 1.670784316956997, + 1.7506759613752365, + 1.6769729554653168, + 1.6273637302219868, + 2.0180363208055496, + 1.599636860191822, + 1.7336169257760048, + 2.0513981580734253, + 1.60537613555789, + 1.5505221672356129, + 1.4636721462011337, + 2.0558610558509827, + 1.5976731665432453, + 2.073508221656084, + 2.164081670343876, + 1.6781692393124104, + 1.5014219097793102, + 1.9408049993216991, + 1.6313008964061737, + 1.5663006342947483, + 1.5281159430742264, + 1.6009360551834106, + 2.044884953647852, + 1.6629700548946857, + 1.6056513413786888, + 1.561612356454134, + 1.9510691054165363, + 2.005334012210369, + 1.6579749062657356, + 1.966309268027544, + 1.4709020033478737, + 2.0634899847209454, + 2.0404336974024773, + 1.5781288966536522, + 2.0488500595092773, + 1.6141622327268124, + 1.7360961064696312, + 1.9472939893603325, + 2.1095541305840015, + 2.0674308761954308, + 1.5968158841133118, + 1.5657921321690083, + 2.1145506761968136, + 2.0976788364350796, + 2.0844945684075356, + 1.5736580826342106, + 2.03859806060791, + 1.602365169674158, + 1.640800852328539, + 1.6319896094501019, + 2.18690512701869, + 1.5798979438841343, + 2.1350053139030933, + 1.5823249705135822, + 2.0699608139693737, + 2.136623952537775, + 1.616672147065401, + 1.5397369861602783, + 1.663855742663145, + 2.1763769909739494, + 1.8129311501979828, + 2.079079858958721, + 1.7546839080750942, + 1.6044559888541698, + 1.5858509577810764, + 1.64713803678751, + 1.7355503514409065, + 1.697674859315157, + 1.5795910730957985, + 1.53077719733119, + 1.9667972810566425, + 2.043072134256363, + 2.0588249899446964, + 1.7027119174599648, + 2.215071115642786, + 1.6166060231626034, + 1.630870159715414, + 1.4983080327510834, + 1.6666022129356861, + 2.0924480631947517, + 1.659564208239317, + 1.6303416341543198, + 1.5600528568029404, + 1.555636990815401, + 1.6122260130941868, + 1.5205680392682552, + 2.1104970946907997, + 2.1012327633798122, + 1.4956449158489704, + 1.5530409291386604, + 1.6827420331537724, + 1.6213669441640377, + 1.767049077898264, + 1.6360599547624588, + 2.1143220365047455, + 1.6317209228873253, + 1.6804737970232964, + 1.5107681974768639, + 2.090285997837782, + 2.083323895931244, + 1.7705000936985016, + 1.6576973721385002, + 2.083268016576767, + 2.100494224578142, + 2.129900734871626, + 1.5743328258395195, + 2.0987908355891705, + 2.1015279926359653, + 1.606632024049759, + 1.67747400701046, + 2.0614569075405598, + 1.6012531705200672, + 2.1015601232647896, + 1.5953769907355309, + 2.0262771286070347, + 1.7602271400392056, + 2.0651109516620636 + ] + }, + "warm_ms": { + "control": [ + 4.435067996382713, + 4.38930606469512, + 4.296587780117989 + ], + "exact": [ + 3.322384785860777, + 2.699416596442461, + 2.6661157608032227 + ], + "lattice": [ + 1.7828000709414482, + 2.640841994434595, + 1.7075501382350922 + ], + "library": [ + 1.784797292202711, + 1.7667822539806366, + 2.5908160023391247 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 4.093067720532417, + "p10_ms": 3.0561139341443777, + "p90_ms": 4.811270348727703, + "min_ms": 2.957200165838003, + "max_ms": 4.937579855322838, + "mean_ms": 3.862795560853556 + }, + "exact": { + "n": 400, + "median_ms": 2.19424394890666, + "p10_ms": 2.062954008579254, + "p90_ms": 2.7725478634238243, + "min_ms": 1.965377014130354, + "max_ms": 3.043045289814472, + "mean_ms": 2.346085588214919 + }, + "lattice": { + "n": 400, + "median_ms": 1.7845116090029478, + "p10_ms": 1.5802756883203983, + "p90_ms": 2.1306373178958893, + "min_ms": 1.4638099819421768, + "max_ms": 2.531395759433508, + "mean_ms": 1.845857158768922 + }, + "library": { + "n": 400, + "median_ms": 1.7221265006810427, + "p10_ms": 1.5600322745740414, + "p90_ms": 2.1148022264242172, + "min_ms": 1.462067011743784, + "max_ms": 2.297618892043829, + "mean_ms": 1.820710995234549 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 2.293662702939388, + "ci90_low": 1.8907302112006288, + "ci90_high": 2.3887395288312954, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.8653658462049747, + "ci90_low": 1.6297641378023657, + "ci90_high": 1.908241092240526, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.2296047489052986, + "ci90_low": 1.1232019651713332, + "ci90_high": 1.2838121500241801, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 0.9650407943511439, + "ci90_low": 0.8750039815240411, + "ci90_high": 1.0111534936176345, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 2.376752067234171, + "ci90_low": 2.0768570014383374, + "ci90_high": 2.450580451487084, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 2.117930133703936, + "p10": 1.7166881095992055, + "p90": 2.3441222862608817 + }, + "minimum_detectable_improvement": 0.4288119656019321, + "compile": { + "control": { + "lower_s": 2.008015668950975, + "compile_s": 2.8516996619291604, + "first_call_s": 0.0072545926086604595, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 6793096.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 4692376, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 454856704, + "rss_after_compile_bytes": 682283008, + "rss_delta_bytes": 227426304, + "hlo_sha256": "a272607519ed5f75", + "hlo_lines": 22684, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 1.8974802768789232, + "compile_s": 2.8652137722820044, + "first_call_s": 0.0031941425986588, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 3772039.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1774808, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 707874816, + "rss_after_compile_bytes": 745791488, + "rss_delta_bytes": 37916672, + "hlo_sha256": "00fa6f9607320480", + "hlo_lines": 22607, + "hlo_large_constants": 4 + }, + "lattice": { + "lower_s": 1.858571910765022, + "compile_s": 2.928203129209578, + "first_call_s": 0.003398684784770012, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3099799.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1691672, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 748290048, + "rss_after_compile_bytes": 786513920, + "rss_delta_bytes": 38223872, + "hlo_sha256": "8fdbcd0b4ad0b760", + "hlo_lines": 22607, + "hlo_large_constants": 4 + }, + "library": { + "lower_s": 1.925948267802596, + "compile_s": 2.906006544828415, + "first_call_s": 0.003216432873159647, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3099799.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1691672, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 786546688, + "rss_after_compile_bytes": 825708544, + "rss_delta_bytes": 39161856, + "hlo_sha256": "8fdbcd0b4ad0b760", + "hlo_lines": 22607, + "hlo_large_constants": 4 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ], + "exact": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ], + "lattice": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ], + "library": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 7.743201200876812, + "exact": 7.743201200876812, + "lattice": 7.743201200876812, + "library": 7.743201200876812 + } + }, + "simple_solved_vmap4": { + "label": "simple_solved_vmap4", + "batch": 4, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 8.566047064960003, + 7.58981192484498, + 11.834749020636082, + 10.505557991564274, + 7.373628206551075, + 7.275148294866085, + 7.17369606718421, + 10.393676348030567, + 10.414700023829937, + 8.429774548858404, + 7.09818210452795, + 7.079614792019129, + 10.438947007060051, + 7.168229203671217, + 7.389831356704235, + 10.460600722581148, + 7.11414497345686, + 7.101017981767654, + 7.459982298314571, + 8.899585343897343, + 10.370296891778708, + 8.339528925716877, + 7.168103009462357, + 8.40987404808402, + 7.214102894067764, + 10.52748179063201, + 8.39223898947239, + 11.694320011883974, + 8.820801042020321, + 8.32021702080965, + 8.342308923602104, + 7.232962176203728, + 7.21129821613431, + 7.291350979357958, + 7.212223019450903, + 7.519789971411228, + 7.131687831133604, + 10.598401073366404, + 7.1744960732758045, + 8.314365055412054, + 7.020757999271154, + 10.1017109118402, + 7.077614311128855, + 10.61964314430952, + 7.452805060893297, + 8.201532065868378, + 8.411600720137358, + 7.135563064366579, + 7.454179227352142, + 7.190358825027943, + 8.182774763554335, + 8.287569042295218, + 7.077446673065424, + 7.060057017952204, + 7.323697209358215, + 8.221270982176065, + 6.9769821129739285, + 7.42565281689167, + 8.290614001452923, + 10.377123951911926, + 7.034277077764273, + 7.229650858789682, + 8.465510793030262, + 7.089630234986544, + 7.125879172235727, + 7.058558985590935, + 7.337269838899374, + 7.029937114566565, + 8.287974167615175, + 8.680146187543869, + 10.310966987162828, + 10.382677894085646, + 8.14678892493248, + 6.998058408498764, + 7.361277937889099, + 8.279968053102493, + 8.108586072921753, + 10.329165030270815, + 8.250786922872066, + 10.377997998148203, + 7.302592974156141, + 8.374053984880447, + 10.369574185460806, + 7.214213255792856, + 7.201127242296934, + 8.312283083796501, + 8.434458170086145, + 10.416610166430473, + 8.04388104006648, + 8.231387939304113, + 7.090938277542591, + 8.260803297162056, + 10.446324944496155, + 10.470307897776365, + 7.112842984497547, + 7.184804882854223, + 8.289471734315157, + 7.084242068231106, + 7.06248776987195, + 7.061215117573738, + 8.328554220497608, + 7.130072917789221, + 7.279888726770878, + 7.473070174455643, + 7.122205104678869, + 7.092223037034273, + 10.459461715072393, + 10.399111080914736, + 8.133397437632084, + 10.737978387624025, + 7.431188132613897, + 7.183901034295559, + 10.510945692658424, + 7.172515150159597, + 8.407569024711847, + 7.499787025153637, + 10.529467836022377, + 8.323208894580603, + 10.427628178149462, + 10.189729277044535, + 8.46594711765647, + 7.350385654717684, + 7.1467687375843525, + 7.1661206893622875, + 7.405693642795086, + 8.309727068990469, + 7.127573247998953, + 7.323617115616798, + 8.60390393063426, + 8.255456108599901, + 7.056848146021366, + 7.077410817146301, + 7.056874223053455, + 7.331670261919498, + 10.433348827064037, + 7.1471016854047775, + 8.383201900869608, + 10.336726903915405, + 10.429757181555033, + 10.444292798638344, + 7.092238403856754, + 7.431142032146454, + 7.26197799667716, + 7.452449295669794, + 8.34580697119236, + 7.23129790276289, + 7.186625152826309, + 7.161643821746111, + 7.23236333578825, + 8.47203191369772, + 7.1938540786504745, + 10.583717841655016, + 9.459469001740217, + 7.374146953225136, + 7.1034058928489685, + 7.569944951683283, + 7.453914266079664, + 8.443686179816723, + 7.394982967525721, + 10.449395049363375, + 7.103638723492622, + 7.1825748309493065, + 8.278171066194773, + 8.42641619965434, + 8.375328034162521, + 8.22647800669074, + 8.406551089137793, + 10.483484249562025, + 10.440421290695667, + 7.494173943996429, + 7.1972692385315895, + 7.099332753568888, + 7.034294307231903, + 10.488949250429869, + 8.642219938337803, + 7.312896195799112, + 7.281226105988026, + 7.442849688231945, + 7.204419933259487, + 7.152722217142582, + 10.327830445021391, + 8.535021916031837, + 7.214400917291641, + 8.237194269895554, + 7.380109746009111, + 8.364991750568151, + 7.096330169588327, + 8.333411067724228, + 8.493196219205856, + 10.747381020337343, + 10.713140945881605, + 10.518053080886602, + 7.08364974707365, + 8.442003279924393, + 10.582461021840572, + 7.3035769164562225, + 7.384387776255608, + 8.34384886547923, + 10.42926823720336, + 10.615522041916847, + 8.3036283031106, + 10.826480109244585, + 7.082153111696243, + 10.392809752374887, + 6.980188190937042, + 10.501052252948284, + 8.334850892424583, + 8.320354390889406, + 7.378426846116781, + 7.035376969724894, + 7.31826713308692, + 7.419331930577755, + 8.63505806773901, + 7.080115843564272, + 8.832632098346949, + 7.496955338865519, + 7.135509047657251, + 7.094600237905979, + 7.4153500609099865, + 7.262778002768755, + 8.286632131785154, + 10.530123021453619, + 7.283780258148909, + 8.399595972150564, + 10.465255007147789, + 7.203109096735716, + 8.351904805749655, + 7.212131749838591, + 7.14405532926321, + 7.132288068532944, + 8.245246950536966, + 8.392858784645796, + 10.451280977576971, + 7.1872142143547535, + 8.33369791507721, + 7.194638252258301, + 7.021293044090271, + 10.51872968673706, + 7.145233917981386, + 8.336232975125313, + 8.196040987968445, + 7.21933925524354, + 7.183767855167389, + 10.764967184513807, + 10.272656101733446, + 10.5725540779531, + 8.762905839830637, + 8.359386119991541, + 7.121928036212921, + 8.528586011379957, + 8.414688054472208, + 10.45239670202136, + 8.2417749799788, + 10.533939115703106, + 7.228222209960222, + 7.056842092424631, + 8.443953935056925, + 8.354142308235168, + 10.386641137301922, + 7.202276960015297, + 7.401362061500549, + 7.095548789948225, + 8.258244954049587, + 10.503221303224564, + 7.192137185484171, + 8.738572243601084, + 7.15589290484786, + 7.138194981962442, + 7.10395909845829, + 8.293563034385443, + 7.162675727158785, + 7.019815966486931, + 7.179840002208948, + 7.157429121434689, + 7.166145835071802, + 7.341151125729084, + 7.48868566006422, + 7.2286538779735565, + 7.163895759731531, + 10.414994321763515, + 6.963825318962336, + 8.375233970582485, + 10.508991312235594, + 7.214919198304415, + 7.133563980460167, + 7.1532768197357655, + 10.390003677457571, + 10.447744280099869, + 7.453949190676212, + 7.169665303081274, + 7.609086111187935, + 7.531826850026846, + 7.219478953629732, + 7.348307874053717, + 10.579427238553762, + 10.613569058477879, + 7.2643510065972805, + 7.143962197005749, + 8.46675643697381, + 10.541258845478296, + 10.485257022082806, + 8.321225177496672, + 10.667104739695787, + 7.253600284457207, + 8.378409314900637, + 10.63528098165989, + 8.497839793562889, + 10.51176292821765, + 7.43153877556324, + 10.493386071175337, + 7.121856790035963, + 7.111432030797005, + 7.1616629138588905, + 8.306209929287434, + 8.416261989623308, + 7.180924993008375, + 7.176017854362726, + 7.13368458673358, + 7.230024319142103, + 10.586874093860388, + 7.203561253845692, + 8.339238818734884, + 7.182887755334377, + 8.193959947675467, + 8.31845635548234, + 7.152173668146133, + 7.1164993569254875, + 7.1038310416042805, + 10.378760285675526, + 8.272861130535603, + 10.590416379272938, + 7.136809173971415, + 7.1625541895627975, + 10.481217876076698, + 7.072425913065672, + 8.347406052052975, + 8.163075894117355, + 7.121763192117214, + 7.418391294777393, + 7.441631983965635, + 8.295068982988596, + 7.710788864642382, + 7.193552795797586, + 7.3859598487615585, + 7.061485201120377, + 8.193241897970438, + 7.025179918855429, + 7.126691285520792, + 10.444477200508118, + 10.622626170516014, + 7.52706965431571, + 8.12836503610015, + 7.655154913663864, + 10.513877030462027, + 8.385049179196358, + 7.419203873723745, + 10.578669141978025, + 8.288131095468998, + 10.32918319106102, + 8.350047282874584, + 6.984308827668428, + 10.581302922219038, + 7.427337113767862, + 7.089192979037762, + 7.268411107361317, + 10.602569207549095, + 10.499335825443268, + 7.099323906004429, + 7.43507593870163, + 7.521483115851879, + 8.350589778274298, + 10.51957393065095, + 10.38971496745944, + 10.491934604942799, + 7.387207821011543, + 7.207293063402176, + 10.4745221324265, + 10.458122007548809, + 8.372966200113297, + 8.336038794368505, + 10.376061778515577, + 7.173025049269199, + 8.451770059764385, + 8.428629022091627, + 10.493847075849771, + 8.372381795197725, + 7.25588807836175, + 7.193499244749546, + 7.410713005810976, + 7.1861110627651215, + 8.35759798064828, + 7.188324350863695, + 10.470172856003046, + 10.647151619195938, + 7.500833831727505, + 10.625452268868685, + 7.371116895228624, + 7.149721961468458, + 7.531996816396713, + 7.698509842157364 + ], + "exact": [ + 6.082958076149225, + 5.674197804182768, + 5.371978040784597, + 5.671917926520109, + 7.262946106493473, + 5.318619776517153, + 6.511951331049204, + 6.811121013015509, + 7.215044926851988, + 5.394751206040382, + 6.360067054629326, + 5.384023766964674, + 5.3774528205394745, + 5.602822173386812, + 6.577128078788519, + 5.364833865314722, + 6.506623700261116, + 5.404504016041756, + 7.432847749441862, + 6.606304086744785, + 5.27473259717226, + 5.3173028863966465, + 5.460273940116167, + 5.338101647794247, + 7.112449035048485, + 5.343109834939241, + 5.308485124260187, + 7.230993825942278, + 5.604749079793692, + 5.297127179801464, + 5.328254774212837, + 5.451823119074106, + 6.577406078577042, + 5.560087040066719, + 6.586663890630007, + 7.858776953071356, + 5.37068909034133, + 5.4004299454391, + 5.44477766379714, + 5.395741667598486, + 6.525707896798849, + 7.534781005233526, + 7.510610856115818, + 7.260479964315891, + 5.356058944016695, + 5.3260307759046555, + 7.024036254733801, + 7.1858977898955345, + 5.253043957054615, + 5.592850968241692, + 7.271474227309227, + 7.271460257470608, + 5.621772725135088, + 5.267929285764694, + 6.465721409767866, + 5.4084970615804195, + 5.326929036527872, + 5.304465070366859, + 5.316887982189655, + 7.2688632644712925, + 5.368141923099756, + 6.513478700071573, + 5.697293672710657, + 5.663319956511259, + 5.672865081578493, + 5.322175100445747, + 7.1512991562485695, + 5.583356134593487, + 7.763401139527559, + 5.466128699481487, + 5.45035395771265, + 5.227349232882261, + 5.356458947062492, + 5.356071051210165, + 6.443115882575512, + 5.599634721875191, + 5.3825401701033115, + 5.323050078004599, + 5.592373199760914, + 6.540301255881786, + 6.608509924262762, + 7.604900281876326, + 5.336899776011705, + 6.499105133116245, + 6.382335443049669, + 6.441658828407526, + 6.473133806139231, + 5.595341790467501, + 6.410161964595318, + 5.576925817877054, + 7.297812029719353, + 5.618814844638109, + 6.450868211686611, + 5.3299907594919205, + 5.280965007841587, + 7.174504920840263, + 5.400435999035835, + 5.311860702931881, + 5.615037865936756, + 6.4284480176866055, + 6.541484035551548, + 6.428479216992855, + 7.389466278254986, + 5.384691059589386, + 7.608742918819189, + 5.7846372947096825, + 7.371891755610704, + 5.4171462543308735, + 5.498754326254129, + 7.691926322877407, + 7.140882313251495, + 8.018698077648878, + 7.487204857170582, + 6.552904844284058, + 5.374012049287558, + 5.34161226823926, + 5.326192360371351, + 6.491692271083593, + 5.806285887956619, + 6.668800953775644, + 6.4457799308001995, + 5.333535838872194, + 5.365673918277025, + 5.283503793179989, + 5.375158041715622, + 5.48243522644043, + 5.3480518981814384, + 5.482821725308895, + 5.3655230440199375, + 5.40755083784461, + 5.392230115830898, + 5.337485112249851, + 6.491363048553467, + 5.61586394906044, + 5.652664229273796, + 7.490616757422686, + 5.84688875824213, + 5.51458727568388, + 7.305138744413853, + 5.41694276034832, + 6.345279049128294, + 5.441329907625914, + 6.611293181777, + 7.767095230519772, + 6.556869018822908, + 5.418348126113415, + 5.649768747389317, + 5.802720319479704, + 5.459940992295742, + 5.442844703793526, + 7.356427609920502, + 5.324628669768572, + 6.547406315803528, + 5.4236589930951595, + 5.705772899091244, + 7.2834910824894905, + 5.7152980007231236, + 7.245831191539764, + 5.557460710406303, + 5.401245784014463, + 7.258797995746136, + 5.763418041169643, + 5.7573700323700905, + 7.274632342159748, + 5.429144948720932, + 7.4213542975485325, + 5.448146257549524, + 7.323388010263443, + 5.510247312486172, + 6.545657757669687, + 5.318727344274521, + 7.231981959193945, + 5.598875693976879, + 5.5516548454761505, + 6.62644999101758, + 6.461970042437315, + 6.47370982915163, + 5.383443087339401, + 5.349684040993452, + 5.291428882628679, + 7.498439867049456, + 7.13733397424221, + 5.315735004842281, + 5.653651896864176, + 7.602211087942123, + 6.483072880655527, + 5.407789722084999, + 7.578854914754629, + 7.341095246374607, + 5.466296803206205, + 5.5451709777116776, + 5.812434013932943, + 5.479933228343725, + 6.418480072170496, + 7.212002761662006, + 7.521435152739286, + 5.422319285571575, + 5.379654932767153, + 5.75428968295455, + 5.460318177938461, + 6.6053918562829494, + 5.448861978948116, + 5.7177459821105, + 7.203581742942333, + 7.321344222873449, + 6.760013289749622, + 5.792472045868635, + 5.493331700563431, + 7.325815036892891, + 6.779675837606192, + 5.612859968096018, + 5.7186163030564785, + 5.3634559735655785, + 5.6534879840910435, + 5.388772115111351, + 5.2771843038499355, + 6.806079763919115, + 5.649537313729525, + 5.374509375542402, + 5.32263470813632, + 5.420778878033161, + 5.393221974372864, + 7.244251202791929, + 7.447561249136925, + 5.583041813224554, + 6.561566144227982, + 6.668519228696823, + 7.357731927186251, + 6.782697979360819, + 7.363880984485149, + 6.564187817275524, + 7.362992037087679, + 5.775907076895237, + 5.580731201916933, + 5.571900866925716, + 6.803249940276146, + 5.432776175439358, + 5.400622263550758, + 6.79025100544095, + 5.387702025473118, + 5.331381224095821, + 6.419071927666664, + 7.3495423421263695, + 5.458188243210316, + 5.40395500138402, + 5.494004115462303, + 5.366577301174402, + 5.5022710002958775, + 5.363402422517538, + 5.518028046935797, + 5.631997250020504, + 5.49812288954854, + 7.343909703195095, + 7.051324937492609, + 5.4283360950648785, + 5.334415938705206, + 5.437545944005251, + 5.8082169853150845, + 7.517189718782902, + 5.369985941797495, + 5.463037174195051, + 6.952623836696148, + 7.2730001993477345, + 5.785687826573849, + 6.550946738570929, + 7.601507008075714, + 5.592102650552988, + 6.562606897205114, + 6.807136815041304, + 7.669875863939524, + 7.344838697463274, + 5.422799382358789, + 6.493092980235815, + 5.410387180745602, + 5.483737215399742, + 6.5359091386199, + 5.509743932634592, + 5.466633941978216, + 5.43224299326539, + 7.367291022092104, + 7.228689268231392, + 5.563921760767698, + 5.370110739022493, + 5.4909782484173775, + 5.410443060100079, + 5.508899688720703, + 5.4929060861468315, + 6.781681906431913, + 5.573356058448553, + 5.369827151298523, + 7.225813809782267, + 5.417007952928543, + 6.756037939339876, + 7.665517739951611, + 6.60742586478591, + 5.355991888791323, + 5.616990849375725, + 5.505635868757963, + 5.443640984594822, + 7.296206895262003, + 5.652950145304203, + 5.4887402802705765, + 6.622901186347008, + 7.729338947683573, + 7.410468067973852, + 7.653448730707169, + 6.511521991342306, + 5.344933830201626, + 7.872899062931538, + 5.764179863035679, + 5.797118879854679, + 6.522194016724825, + 6.545659154653549, + 5.716268438845873, + 5.586335901170969, + 5.4666269570589066, + 6.480888929218054, + 7.229100912809372, + 7.442211266607046, + 6.705377716571093, + 6.4788879826664925, + 5.452325101941824, + 5.696396343410015, + 5.411252845078707, + 5.7829199358820915, + 5.563254002481699, + 5.422689951956272, + 5.464738234877586, + 5.671465303748846, + 7.445376832038164, + 5.454083904623985, + 5.363295786082745, + 6.490764208137989, + 5.4612779058516026, + 7.227049674838781, + 7.441108115017414, + 7.3266299441456795, + 5.734135862439871, + 5.392933264374733, + 6.549958139657974, + 5.375449080020189, + 5.500733386725187, + 5.446538794785738, + 7.199964951723814, + 5.492070224136114, + 5.533314775675535, + 6.5371510572731495, + 6.59846980124712, + 5.527839995920658, + 5.448667332530022, + 7.344827987253666, + 5.399726796895266, + 5.442962981760502, + 7.211131043732166, + 5.368799902498722, + 5.327402614057064, + 6.524841766804457, + 5.539365112781525, + 6.74055702984333, + 6.6761900670826435, + 5.446016788482666, + 5.754909012466669, + 6.569785065948963, + 7.4013457633554935, + 7.760182023048401, + 5.697343964129686, + 7.442696951329708, + 7.186291739344597, + 5.703995004296303, + 5.439314991235733, + 5.678923800587654, + 7.633924018591642, + 5.4582469165325165, + 6.697935052216053, + 5.744623020291328, + 5.480075255036354, + 5.473453085869551, + 7.194119971245527, + 7.260993123054504, + 5.673708859831095, + 5.622622091323137, + 6.547898985445499, + 5.811592098325491, + 5.411685910075903, + 7.3433672077953815, + 5.4293242283165455, + 6.6183991730213165, + 6.701451260596514, + 5.514249205589294, + 6.446375977247953, + 7.415285799652338, + 5.533495917916298, + 7.435118779540062, + 5.7914648205041885, + 5.458767060190439, + 5.674897227436304, + 5.4174670949578285, + 5.46055706217885, + 7.272431626915932, + 5.693366751074791 + ], + "lattice": [ + 5.706895142793655, + 5.962979979813099, + 4.584204871207476, + 5.994915962219238, + 4.564372822642326, + 4.5516821555793285, + 4.603477660566568, + 4.657788202166557, + 5.743473768234253, + 5.887587089091539, + 4.866227973252535, + 4.5493971556425095, + 4.569529090076685, + 5.71310892701149, + 4.535528365522623, + 5.816010292619467, + 4.570467863231897, + 5.952421110123396, + 4.580918233841658, + 5.89095801115036, + 4.9729980528354645, + 6.076866760849953, + 5.803608801215887, + 6.132841110229492, + 5.626312922686338, + 4.660268314182758, + 6.0219718143343925, + 6.086346227675676, + 5.872101057320833, + 5.81374391913414, + 4.700551740825176, + 4.6271649189293385, + 4.687749780714512, + 4.668507259339094, + 6.048928946256638, + 6.0765850357711315, + 4.69416007399559, + 4.952298942953348, + 6.447742227464914, + 4.938107915222645, + 4.702941980212927, + 5.828988738358021, + 4.65020164847374, + 5.802711006253958, + 4.675005096942186, + 4.579156171530485, + 5.743131041526794, + 6.333478260785341, + 4.859059117734432, + 4.606424830853939, + 4.51736431568861, + 4.920374136418104, + 6.155459210276604, + 4.951743874698877, + 4.648574162274599, + 4.5886412262916565, + 6.037398707121611, + 4.64954599738121, + 4.6056462451815605, + 4.637992940843105, + 4.63890889659524, + 6.066193804144859, + 5.924649070948362, + 4.708073101937771, + 6.007255986332893, + 5.654910113662481, + 4.938580095767975, + 4.997027106583118, + 4.772791173309088, + 4.708270076662302, + 4.709935747087002, + 5.942031275480986, + 6.003146059811115, + 4.961511120200157, + 4.664045292884111, + 4.992743954062462, + 5.739419255405664, + 6.064001005142927, + 4.54685976728797, + 5.636603105813265, + 4.708489868789911, + 4.6034641563892365, + 5.935577675700188, + 4.9121808260679245, + 5.833942908793688, + 5.960354115813971, + 4.912246949970722, + 4.560951143503189, + 4.556835163384676, + 4.604386165738106, + 5.997408647090197, + 5.896471906453371, + 5.870529916137457, + 4.544015042483807, + 5.729907192289829, + 5.905269179493189, + 4.497122019529343, + 4.892019089311361, + 6.018356885761023, + 4.89338394254446, + 4.543856251984835, + 5.8989557437598705, + 5.619855597615242, + 5.848231725394726, + 4.738439340144396, + 5.6916349567472935, + 5.6640286929905415, + 5.9522767551243305, + 4.59099467843771, + 4.682210274040699, + 5.745197180658579, + 4.754948895424604, + 5.972467828541994, + 6.109315901994705, + 4.724863916635513, + 4.992497619241476, + 6.627341732382774, + 4.645118955522776, + 4.632601048797369, + 4.964979365468025, + 5.731581244617701, + 4.822656977921724, + 4.629366099834442, + 4.667842760682106, + 4.707376938313246, + 4.6621630899608135, + 4.648684989660978, + 4.945680033415556, + 5.907126236706972, + 6.10707700252533, + 4.583620931953192, + 6.397051271051168, + 6.286490708589554, + 4.763693083077669, + 4.6551707200706005, + 6.04119710624218, + 6.010882090777159, + 5.0545670092105865, + 4.964449908584356, + 5.981531925499439, + 4.656616132706404, + 5.859254393726587, + 5.831568967550993, + 4.625510890036821, + 4.615659825503826, + 4.730679094791412, + 4.674063064157963, + 5.765214096754789, + 6.123983301222324, + 5.307928193360567, + 4.734853282570839, + 4.973188973963261, + 4.714316688477993, + 4.7109960578382015, + 6.0489182360470295, + 6.009811069816351, + 5.727454088628292, + 4.658869002014399, + 4.6979268081486225, + 5.751341115683317, + 4.55876998603344, + 6.052671000361443, + 6.005520932376385, + 4.889269825071096, + 5.962994880974293, + 5.894925910979509, + 4.604826215654612, + 5.896355025470257, + 5.886659026145935, + 4.5387158170342445, + 5.6955828331410885, + 4.615374840795994, + 4.923421889543533, + 5.958699155598879, + 6.147261243313551, + 4.5847841538488865, + 6.103205028921366, + 4.738613031804562, + 4.893776960670948, + 5.963806062936783, + 4.8284889198839664, + 6.079948972910643, + 4.601003136485815, + 4.553770180791616, + 6.112575065344572, + 5.790725816041231, + 6.020421162247658, + 4.947603214532137, + 4.615971352905035, + 5.962462164461613, + 4.924558103084564, + 4.793863277882338, + 6.059644743800163, + 4.957990720868111, + 6.003829184919596, + 6.1279647052288055, + 4.679163917899132, + 6.311037112027407, + 4.645816050469875, + 5.991915240883827, + 4.96507715433836, + 4.693056922405958, + 6.494617089629173, + 4.738413263112307, + 4.653655923902988, + 5.841461010277271, + 4.698506090790033, + 6.030253134667873, + 5.786426831036806, + 5.810894072055817, + 4.659146070480347, + 5.0574010238051414, + 5.786268971860409, + 6.0405852273106575, + 6.163904909044504, + 6.097689736634493, + 6.009545177221298, + 4.579918924719095, + 4.57619596272707, + 4.591699223965406, + 4.580677021294832, + 4.687158856540918, + 4.915779922157526, + 6.146234925836325, + 4.681490361690521, + 6.123618688434362, + 4.732436966150999, + 4.55885287374258, + 6.047352682799101, + 4.572001751512289, + 4.700783174484968, + 5.735944956541061, + 4.637505859136581, + 4.614344798028469, + 4.689977969974279, + 5.779522936791182, + 6.080653052777052, + 6.02838397026062, + 6.052621174603701, + 4.7166552394628525, + 4.601871129125357, + 6.147204898297787, + 5.013979040086269, + 6.090287119150162, + 4.97985677793622, + 5.970739759504795, + 6.127038039267063, + 4.670904949307442, + 6.099955178797245, + 6.066509056836367, + 6.013378035277128, + 4.753950983285904, + 5.759907886385918, + 4.565271083265543, + 6.030639633536339, + 4.686862695962191, + 6.132523063570261, + 6.058473140001297, + 4.9718995578587055, + 5.969482008367777, + 4.680706653743982, + 4.960428923368454, + 6.219720933586359, + 4.770074039697647, + 5.782744847238064, + 5.790840834379196, + 5.954446271061897, + 4.977442789822817, + 4.62929205968976, + 5.864690989255905, + 5.9995148330926895, + 6.059091072529554, + 6.0603986494243145, + 5.96114806830883, + 5.931449122726917, + 6.090265698730946, + 4.927204921841621, + 5.826823879033327, + 4.652651958167553, + 6.132669281214476, + 4.593860823661089, + 5.725073162466288, + 4.483741708099842, + 4.853602964431047, + 4.823268856853247, + 4.577739629894495, + 4.670202266424894, + 6.029392126947641, + 5.88824599981308, + 4.533668048679829, + 4.495442844927311, + 5.7877469807863235, + 6.005783099681139, + 5.988748278468847, + 4.51949518173933, + 5.969034042209387, + 5.8658248744904995, + 4.6088979579508305, + 4.544665105640888, + 5.964376963675022, + 5.047946237027645, + 4.7413669526577, + 4.665988031774759, + 4.763083066791296, + 4.860641900449991, + 6.141752004623413, + 6.00180309265852, + 6.0036880895495415, + 5.778949242085218, + 4.9832467921078205, + 6.344165187329054, + 4.699905402958393, + 4.681245889514685, + 5.055206827819347, + 4.662815947085619, + 6.091021001338959, + 4.605606663972139, + 4.649526905268431, + 4.62400121614337, + 4.6461960300803185, + 5.963583942502737, + 4.679071716964245, + 6.024541333317757, + 4.738071002066135, + 5.838016048073769, + 6.051861681044102, + 6.009839009493589, + 5.868956912308931, + 4.712547175586224, + 4.7168852761387825, + 6.026479881256819, + 5.960056092590094, + 4.616729915142059, + 6.0804663226008415, + 4.928692243993282, + 4.750574938952923, + 5.814438685774803, + 5.906904116272926, + 6.0157161206007, + 5.814812146127224, + 5.706767085939646, + 4.679110832512379, + 4.9624149687588215, + 5.933240056037903, + 4.740630742162466, + 4.70218388363719, + 6.0331751592457294, + 4.634384997189045, + 4.972672089934349, + 4.689774010330439, + 6.0631888918578625, + 6.073615979403257, + 5.891375243663788, + 6.1117783188819885, + 5.073860753327608, + 6.0655903071165085, + 4.728723783046007, + 4.993716720491648, + 4.721693228930235, + 4.607439041137695, + 4.581520799547434, + 4.931999370455742, + 4.660045728087425, + 5.878609139472246, + 5.840040277689695, + 4.6784160658717155, + 4.7622984275221825, + 6.074897013604641, + 4.686580039560795, + 6.00971607491374, + 4.701279103755951, + 4.63722413405776, + 6.040452979505062, + 5.7946862652897835, + 4.57068020477891, + 6.0389540158212185, + 4.7652628272771835, + 4.767328966408968, + 5.978772882372141, + 6.07665628194809, + 6.316684186458588, + 4.664254374802113, + 5.830875132232904, + 4.726877901703119, + 4.938795696943998, + 6.070540752261877, + 6.004266906529665, + 4.602854140102863, + 6.044080946594477, + 4.684863146394491, + 4.8963939771056175, + 5.951694678515196, + 6.115994416177273, + 4.877955187112093, + 4.688716027885675, + 4.69967583194375, + 4.5478991232812405, + 6.364291999489069, + 4.933066200464964, + 5.958552937954664 + ], + "library": [ + 5.731743760406971, + 5.995925050228834, + 4.88641019910574, + 5.914936773478985, + 4.5027658343315125, + 4.561163019388914, + 4.482084885239601, + 5.8974772691726685, + 5.977416876703501, + 4.49025584384799, + 4.525747615844011, + 4.460568074136972, + 4.559923894703388, + 5.922596901655197, + 5.906342063099146, + 5.9145851992070675, + 4.468480125069618, + 4.893533885478973, + 5.945374723523855, + 4.485961049795151, + 5.969271995127201, + 5.796058103442192, + 4.9804686568677425, + 4.739425145089626, + 4.693910945206881, + 6.103272084146738, + 5.795429926365614, + 6.031532306224108, + 5.93635393306613, + 5.995939020067453, + 4.655779805034399, + 5.886469967663288, + 5.695986095815897, + 5.767597816884518, + 5.018882919102907, + 4.665910732001066, + 4.661383107304573, + 4.604320973157883, + 5.039358977228403, + 5.092100240290165, + 5.691300146281719, + 4.687658976763487, + 6.001721136271954, + 6.033145822584629, + 4.727168008685112, + 5.838658194988966, + 4.686740227043629, + 4.9511040560901165, + 5.791721865534782, + 5.7553499937057495, + 4.711386747658253, + 5.999640095978975, + 4.754582419991493, + 5.958714056760073, + 6.06883829459548, + 6.242604926228523, + 4.623023327440023, + 5.768754985183477, + 6.055313162505627, + 6.352886091917753, + 4.572330042719841, + 4.938192665576935, + 4.671698901802301, + 4.852572456002235, + 4.698154982179403, + 5.852429196238518, + 6.017582956701517, + 6.073406897485256, + 4.571076948195696, + 6.021480076014996, + 6.110752932727337, + 4.627492278814316, + 6.010783836245537, + 4.641526844352484, + 6.323575042188168, + 6.023673806339502, + 5.079986993223429, + 6.04779738932848, + 4.612477030605078, + 6.150697357952595, + 6.003910209983587, + 5.760082975029945, + 6.168945226818323, + 5.868353880941868, + 5.917055066674948, + 6.182701792567968, + 5.674031097441912, + 4.6738930977880955, + 5.075179971754551, + 5.777151323854923, + 4.653240088373423, + 4.646021872758865, + 6.0233320109546185, + 4.862505942583084, + 5.857882089912891, + 6.3846539705991745, + 4.677386023104191, + 4.755647387355566, + 4.665452055633068, + 5.759845022112131, + 5.997632164508104, + 6.202781107276678, + 5.956653971225023, + 4.73300414159894, + 5.749903619289398, + 5.940647795796394, + 4.75930655375123, + 4.834093153476715, + 5.9745959006249905, + 4.5524900779128075, + 4.5805941335856915, + 5.934783723205328, + 4.532553721219301, + 5.742727778851986, + 6.036602891981602, + 5.936713889241219, + 4.505954682826996, + 4.954589996486902, + 6.058788858354092, + 6.071695126593113, + 4.653143230825663, + 4.563205875456333, + 4.824980162084103, + 4.89419000223279, + 5.839634221047163, + 5.838498938828707, + 4.75752679631114, + 4.919680301100016, + 4.664376378059387, + 4.638385958969593, + 5.818655714392662, + 4.629503004252911, + 6.000969093292952, + 5.048071034252644, + 4.57935594022274, + 4.891489632427692, + 5.781685002148151, + 6.057188846170902, + 4.638088867068291, + 4.923233762383461, + 4.866403993219137, + 4.633445758372545, + 4.633550066500902, + 5.005982238799334, + 4.581246990710497, + 5.960771813988686, + 5.689915735274553, + 4.549484234303236, + 4.616232123225927, + 4.544033203274012, + 5.736845079809427, + 5.6956070475280285, + 6.0314456932246685, + 4.776533227413893, + 5.041034892201424, + 4.9838777631521225, + 4.612183663994074, + 5.785071291029453, + 4.709961358457804, + 6.335774902254343, + 4.813802894204855, + 4.70696622505784, + 4.689034074544907, + 4.857358057051897, + 6.034477148205042, + 6.014876067638397, + 4.607187118381262, + 4.9370331689715385, + 6.088306661695242, + 4.9071768298745155, + 5.8576310984790325, + 4.921736661344767, + 4.695823881775141, + 4.739230964332819, + 6.009156815707684, + 6.035718135535717, + 6.181927863508463, + 4.678616300225258, + 5.992642138153315, + 4.823741968721151, + 4.818401765078306, + 4.963379818946123, + 5.994163919240236, + 5.994040984660387, + 6.00325595587492, + 4.7699930146336555, + 4.964211955666542, + 4.696463700383902, + 4.617460537701845, + 5.763274617493153, + 4.645980428904295, + 4.9228360876441, + 4.530325997620821, + 5.938384216278791, + 4.532395862042904, + 5.851959809660912, + 5.923114251345396, + 6.006884854286909, + 4.5852260664105415, + 6.048784125596285, + 6.039084866642952, + 4.578487016260624, + 5.099627189338207, + 4.650001879781485, + 5.79356774687767, + 6.087820045650005, + 4.679855890572071, + 5.965592805296183, + 5.742674693465233, + 4.766262136399746, + 4.653344862163067, + 5.963774863630533, + 4.618627950549126, + 5.674681160598993, + 5.6413100101053715, + 4.678575787693262, + 5.9725032187998295, + 5.842398852109909, + 6.026268005371094, + 4.8245759680867195, + 4.560586996376514, + 6.066987290978432, + 4.668033216148615, + 4.581092391163111, + 4.642629995942116, + 4.733159206807613, + 5.831534042954445, + 5.999692250043154, + 5.865875165909529, + 4.643142689019442, + 4.700734745711088, + 6.0677179135382175, + 4.610337782651186, + 4.669029265642166, + 5.967550911009312, + 4.766050260514021, + 6.299339700490236, + 4.726501181721687, + 6.131977774202824, + 4.684397019445896, + 4.725861828774214, + 6.109641399234533, + 6.124456878751516, + 4.9249352887272835, + 6.058961618691683, + 4.754737950861454, + 4.696398042142391, + 4.72770631313324, + 4.599289037287235, + 5.886726081371307, + 4.682413302361965, + 4.695415031164885, + 4.628655966371298, + 4.927350208163261, + 6.279665976762772, + 5.045517347753048, + 6.014818791300058, + 4.93350625038147, + 6.018463056534529, + 4.580711014568806, + 5.935235880315304, + 5.9643699787557125, + 4.76264301687479, + 4.915738943964243, + 4.6255867928266525, + 5.7821073569357395, + 4.702871665358543, + 6.01957319304347, + 4.942769650369883, + 4.669406916946173, + 6.047624628990889, + 4.696061369031668, + 5.851491820067167, + 4.6513560228049755, + 4.9736532382667065, + 5.982439033687115, + 5.713828839361668, + 4.600956104695797, + 5.7283067144453526, + 5.028358194977045, + 4.598467145115137, + 4.750750958919525, + 5.758842919021845, + 4.663017112761736, + 4.630908835679293, + 4.619008861482143, + 6.088146008551121, + 5.723793990910053, + 4.8941196873784065, + 5.75071107596159, + 4.667636007070541, + 4.516561049968004, + 5.978309083729982, + 6.099643651396036, + 5.980241112411022, + 6.077482830733061, + 6.012887693941593, + 5.976093001663685, + 6.004265043884516, + 6.069790106266737, + 5.789636168628931, + 4.9421582370996475, + 5.849465727806091, + 5.877780728042126, + 6.344279740005732, + 4.788056015968323, + 4.618349950760603, + 6.012184079736471, + 6.030770018696785, + 5.710483994334936, + 4.662239924073219, + 6.0357097536325455, + 4.873329773545265, + 4.574757069349289, + 5.815966986119747, + 4.983589053153992, + 4.673723131418228, + 4.599832929670811, + 6.056177895516157, + 5.725146736949682, + 4.536003805696964, + 6.075121928006411, + 5.982465110719204, + 4.627536982297897, + 5.757360719144344, + 4.764271900057793, + 5.684159230440855, + 6.003778427839279, + 4.620417952537537, + 4.706542007625103, + 5.9755477122962475, + 6.073239725083113, + 5.915915127843618, + 6.300620269030333, + 4.699280019849539, + 6.065499037504196, + 4.751893226057291, + 6.322431843727827, + 6.157965864986181, + 6.087552756071091, + 4.598116967827082, + 5.982742179185152, + 4.92397416383028, + 4.6361819840967655, + 4.614928737282753, + 6.001618690788746, + 5.77322393655777, + 4.652243107557297, + 4.7362991608679295, + 4.607670940458775, + 5.969841964542866, + 4.613720346242189, + 4.695028066635132, + 5.816702730953693, + 5.969653837382793, + 5.791521165519953, + 4.648346919566393, + 6.076096091419458, + 5.736748687922955, + 6.082972977310419, + 4.569370765239, + 4.957720171660185, + 5.3570568561553955, + 6.021440029144287, + 5.981798283755779, + 4.868688061833382, + 5.816871300339699, + 4.646097309887409, + 5.001229699701071, + 5.8824350126087666, + 4.996910225600004, + 4.711818881332874, + 4.6089342795312405, + 6.179881747812033, + 6.098461803048849, + 5.8248997665941715, + 4.912161268293858, + 6.030166056007147, + 6.03257492184639, + 6.136727053672075, + 5.692479200661182, + 5.834470968693495, + 5.9136757627129555, + 5.980168003588915, + 4.581389017403126, + 6.098989862948656, + 4.85963886603713, + 4.7608232125639915, + 5.7393331080675125, + 5.919401999562979, + 5.988491233438253, + 5.773080978542566, + 5.894083995372057, + 5.731735844165087, + 4.851358011364937, + 4.572656005620956, + 4.6082753688097, + 4.588884301483631, + 6.211597938090563, + 5.787466187030077 + ] + }, + "warm_ms": { + "control": [ + 9.495465084910393, + 10.745977982878685, + 10.587016120553017 + ], + "exact": [ + 6.224155891686678, + 5.5889892391860485, + 5.772541277110577 + ], + "lattice": [ + 6.3903070986270905, + 5.802317056804895, + 5.850251764059067 + ], + "library": [ + 6.143909879028797, + 6.003937218338251, + 5.043697077780962 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 7.6321205124258995, + "p10_ms": 7.099331868812442, + "p90_ms": 10.49950746819377, + "min_ms": 6.963825318962336, + "max_ms": 11.834749020636082, + "mean_ms": 8.287526738131419 + }, + "exact": { + "n": 400, + "median_ms": 5.674547515809536, + "p10_ms": 5.356069840490818, + "p90_ms": 7.3582579381763935, + "min_ms": 5.227349232882261, + "max_ms": 8.018698077648878, + "mean_ms": 6.123736826702952 + }, + "lattice": { + "n": 400, + "median_ms": 4.98155178502202, + "p10_ms": 4.600288905203342, + "p90_ms": 6.076677329838276, + "min_ms": 4.483741708099842, + "max_ms": 6.627341732382774, + "mean_ms": 5.312345076818019 + }, + "library": { + "n": 400, + "median_ms": 5.4991834331303835, + "p10_ms": 4.606900503858924, + "p90_ms": 6.067829951643944, + "min_ms": 4.460568074136972, + "max_ms": 6.3846539705991745, + "mean_ms": 5.342540466226637 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 1.5320769193594086, + "ci90_low": 1.342058721472524, + "ci90_high": 1.6514114357697292, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.344974289344213, + "ci90_low": 1.3074396001089315, + "ci90_high": 1.4516482415868444, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.139112421328458, + "ci90_low": 1.00219819314545, + "ci90_high": 1.156590288890564, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 1.1039097193899943, + "ci90_low": 0.9320844157618983, + "ci90_high": 1.1537069968690379, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 1.3878643266280994, + "ci90_low": 1.3113862397164548, + "ci90_high": 1.6304256398912402, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.5496603274624663, + "p10": 1.287616963380581, + "p90": 1.7211265618870093 + }, + "minimum_detectable_improvement": 0.4455086360134752, + "compile": { + "control": { + "lower_s": 2.7647061673924327, + "compile_s": 3.223478894215077, + "first_call_s": 0.009185533039271832, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 23024386.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 15340056, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 970264576, + "rss_after_compile_bytes": 974974976, + "rss_delta_bytes": 4710400, + "hlo_sha256": "96addb5285269ae8", + "hlo_lines": 24619, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 2.638881322927773, + "compile_s": 3.2671423912979662, + "first_call_s": 0.007976712193340063, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 14223061.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 7092952, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 974979072, + "rss_after_compile_bytes": 977997824, + "rss_delta_bytes": 3018752, + "hlo_sha256": "c22612c64f1358c2", + "hlo_lines": 24541, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 2.627885257359594, + "compile_s": 3.4008387471549213, + "first_call_s": 0.005912486929446459, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 11534101.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6761176, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 982847488, + "rss_after_compile_bytes": 984858624, + "rss_delta_bytes": 2011136, + "hlo_sha256": "76fdfbe20ede316c", + "hlo_lines": 24541, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 2.731930911075324, + "compile_s": 3.4291771622374654, + "first_call_s": 0.005830744747072458, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 11534101.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6761176, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 984858624, + "rss_after_compile_bytes": 986734592, + "rss_delta_bytes": 1875968, + "hlo_sha256": "76fdfbe20ede316c", + "hlo_lines": 24541, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0, + 1, + 2, + 3 + ], + [ + 4, + 5, + 6, + 7 + ], + [ + 8, + 9, + 10, + 11 + ], + [ + 12, + 13, + 14, + 15 + ] + ], + "values": { + "control": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ], + "exact": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ], + "lattice": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ], + "library": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + } + }, + "simple_plain": { + "label": "simple_plain", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 3.305422607809305, + 4.803158808499575, + 3.079573158174753, + 3.2409606501460075, + 3.0650929547846317, + 4.894192796200514, + 3.0444818548858166, + 4.812139086425304, + 3.0873562209308147, + 4.79539530351758, + 3.0805650167167187, + 4.827563185244799, + 4.801759030669928, + 5.501483101397753, + 4.299730062484741, + 3.1069661490619183, + 3.0869985930621624, + 4.805847071111202, + 3.0253748409450054, + 3.032124135643244, + 3.5246331244707108, + 3.1332657672464848, + 4.248409066349268, + 2.926708199083805, + 3.1940899789333344, + 3.159020561724901, + 4.784531891345978, + 3.11006186529994, + 3.0428571626544, + 4.782304167747498, + 4.2683882638812065, + 3.607866819947958, + 4.205972887575626, + 3.617699723690748, + 3.0747121199965477, + 3.051560837775469, + 3.0474080704152584, + 3.0258595943450928, + 4.22629714012146, + 3.123439848423004, + 3.471751231700182, + 4.845253191888332, + 4.788376856595278, + 4.789197817444801, + 4.255382809787989, + 4.188737832009792, + 3.1848237849771976, + 4.836880136281252, + 3.0783237889409065, + 3.0843601562082767, + 4.2080082930624485, + 3.540138714015484, + 3.5742223262786865, + 4.208337049931288, + 4.235287196934223, + 3.0811578035354614, + 4.196859430521727, + 3.1693601049482822, + 4.820047877728939, + 4.195319954305887, + 4.741596058011055, + 3.5496619530022144, + 4.782620817422867, + 3.1687961891293526, + 3.0664149671792984, + 4.762037191540003, + 4.230930935591459, + 4.2823548428714275, + 4.817476961761713, + 4.786287900060415, + 4.153185058385134, + 4.81872633099556, + 3.1288350000977516, + 4.831791389733553, + 4.774102009832859, + 3.126172348856926, + 3.0460660345852375, + 4.217370878905058, + 3.1053880229592323, + 4.807620774954557, + 3.0947793275117874, + 3.137658815830946, + 3.5233707167208195, + 3.165024798363447, + 4.760397132486105, + 4.2077479884028435, + 3.5790628753602505, + 3.57908196747303, + 4.264655988663435, + 4.293928854167461, + 3.244733903557062, + 3.03093995898962, + 3.0118701979517937, + 3.03477281704545, + 3.1456747092306614, + 4.84949117526412, + 4.23722667619586, + 4.3206000700592995, + 4.900326952338219, + 4.192132037132978, + 3.4729717299342155, + 4.255200736224651, + 3.5753301344811916, + 3.192582167685032, + 4.71896305680275, + 3.021694254130125, + 3.0768578872084618, + 4.222366958856583, + 3.117501735687256, + 3.123840782791376, + 4.840155132114887, + 4.104035906493664, + 4.168591927736998, + 3.0887448228895664, + 3.098516259342432, + 4.78156004101038, + 4.8001310788095, + 3.0707651749253273, + 4.788018297404051, + 3.127377014607191, + 4.685677122324705, + 3.080247901380062, + 3.0463319271802902, + 3.1028902158141136, + 4.770838189870119, + 4.179023671895266, + 3.6259940825402737, + 4.796544089913368, + 4.8056840896606445, + 4.704924300312996, + 3.082888200879097, + 4.763739183545113, + 4.7823721542954445, + 3.0029709450900555, + 4.709590692073107, + 4.671019967645407, + 3.417625091969967, + 3.075850196182728, + 3.0043208971619606, + 3.075188025832176, + 3.4987307153642178, + 4.819747991859913, + 4.23136493191123, + 3.1915861181914806, + 2.967297099530697, + 4.0625231340527534, + 3.0296598561108112, + 4.2488668113946915, + 3.127105999737978, + 4.773742984980345, + 3.129947930574417, + 3.453741315752268, + 3.018394112586975, + 2.994564827531576, + 2.9908008873462677, + 2.95938178896904, + 4.286766052246094, + 3.023737110197544, + 4.251138772815466, + 4.781858064234257, + 4.681839141994715, + 4.848466720432043, + 3.0348007567226887, + 3.0854521319270134, + 4.243757110089064, + 3.6342148669064045, + 3.128398209810257, + 3.1301863491535187, + 4.251864738762379, + 3.662798088043928, + 4.80873417109251, + 3.089435864239931, + 4.222681745886803, + 4.800714086741209, + 3.5726716741919518, + 3.095794003456831, + 3.5203490406274796, + 3.088539931923151, + 3.1096916645765305, + 3.1037102453410625, + 4.184718243777752, + 3.040554001927376, + 4.768751095980406, + 3.1991559080779552, + 4.213934764266014, + 3.0540437437593937, + 4.18879697099328, + 4.144548438489437, + 3.1959540210664272, + 3.1220591627061367, + 3.090964164584875, + 3.0718212947249413, + 3.0879350379109383, + 4.797105211764574, + 4.866153933107853, + 4.756916780024767, + 4.8105972819030285, + 3.5539022646844387, + 3.217018209397793, + 3.030933439731598, + 4.812716040760279, + 4.672395996749401, + 3.4666210412979126, + 2.9822969809174538, + 4.226824268698692, + 4.204012919217348, + 3.0515999533236027, + 4.770774394273758, + 4.2316243052482605, + 3.1258631497621536, + 3.6984398029744625, + 4.766188096255064, + 4.856814164668322, + 4.807268735021353, + 3.0924640595912933, + 3.045144025236368, + 4.111181944608688, + 4.206771031022072, + 3.1020869500935078, + 4.17077774181962, + 2.9990961775183678, + 2.989760134369135, + 3.306751139461994, + 4.2518069967627525, + 3.13416775316, + 4.106275737285614, + 3.085498232394457, + 4.692294169217348, + 4.144561011344194, + 3.0167950317263603, + 4.773995839059353, + 4.224509932100773, + 3.1110490672290325, + 3.0168909579515457, + 3.0701500363647938, + 4.7944458201527596, + 4.916495177894831, + 3.1287679448723793, + 3.0796718783676624, + 3.1122062355279922, + 3.0485461466014385, + 4.799077287316322, + 3.062846139073372, + 4.22545475885272, + 3.5805650986731052, + 4.111887887120247, + 3.0949111096560955, + 3.1499029137194157, + 4.094153176993132, + 4.818163346499205, + 4.189705941826105, + 3.076384775340557, + 4.181180614978075, + 3.060285933315754, + 2.982253674417734, + 4.713552072644234, + 4.7174738720059395, + 2.9457779601216316, + 4.0996139869093895, + 3.4755608066916466, + 4.6917772851884365, + 3.1703580170869827, + 3.0538691207766533, + 3.0793691985309124, + 3.093667794018984, + 4.766643047332764, + 3.069629892706871, + 3.037218004465103, + 3.0494467355310917, + 4.215921275317669, + 3.104653675109148, + 4.769805818796158, + 4.2725009843707085, + 3.1860130839049816, + 3.071216866374016, + 4.2666299268603325, + 3.627255093306303, + 4.7562518157064915, + 4.783856682479382, + 4.211490973830223, + 4.686762113124132, + 4.2155710980296135, + 3.0898130498826504, + 3.0901608988642693, + 4.795856773853302, + 3.5627312026917934, + 3.1938529573380947, + 3.067048266530037, + 4.753051325678825, + 4.797196947038174, + 3.046847879886627, + 3.1492910347878933, + 3.0226968228816986, + 4.781017079949379, + 3.005414269864559, + 3.0468921177089214, + 4.7939009964466095, + 3.116572741419077, + 4.233240149915218, + 3.093319945037365, + 3.0550402589142323, + 3.0855881050229073, + 3.552015870809555, + 4.10300912335515, + 3.0038589611649513, + 4.6784598380327225, + 4.061686340719461, + 4.684261046350002, + 4.7135972417891026, + 4.650136921554804, + 3.2152109779417515, + 3.6084000021219254, + 4.807088989764452, + 4.200311377644539, + 4.2684911750257015, + 3.142853733152151, + 2.967794891446829, + 3.055871929973364, + 3.045792691409588, + 3.1381482258439064, + 3.0086985789239407, + 4.081433173269033, + 4.135860130190849, + 3.4120515920221806, + 3.456135280430317, + 4.665559157729149, + 4.09667007625103, + 4.636845085769892, + 4.058569669723511, + 4.668754991143942, + 4.651702009141445, + 2.9558991082012653, + 3.0166469514369965, + 3.4614992327988148, + 3.0532008968293667, + 4.088696092367172, + 4.686896223574877, + 3.1525110825896263, + 4.204628057777882, + 3.038928844034672, + 2.9690591618418694, + 3.07569932192564, + 4.838785156607628, + 3.1074462458491325, + 4.730990156531334, + 3.565309103578329, + 3.5914573818445206, + 2.9835980385541916, + 2.9918388463556767, + 2.92738014832139, + 3.023018129169941, + 3.035551868379116, + 4.809211008250713, + 4.790365230292082, + 4.095626994967461, + 3.10395285487175, + 3.0053448863327503, + 4.72655612975359, + 3.040642011910677, + 3.0196639709174633, + 3.5301907919347286, + 4.858245141804218, + 3.0733351595699787, + 4.754304885864258, + 3.090547863394022, + 4.7629340551793575, + 3.015276975929737, + 3.0397907830774784, + 3.078840207308531, + 4.240197129547596, + 3.0681737698614597, + 4.2250570841133595, + 3.0575431883335114, + 4.84200706705451, + 4.193838220089674, + 4.810323938727379, + 4.267717711627483, + 4.818323999643326, + 3.0848667956888676, + 3.1160409562289715, + 3.4971539862453938, + 4.8288460820913315, + 3.062829840928316, + 3.0703963711857796, + 3.0896258540451527, + 4.805529955774546, + 3.1390362419188023, + 3.0617211014032364, + 4.76784585043788, + 3.053931053727865, + 3.0625578947365284, + 3.036748617887497, + 3.055466804653406, + 4.747873637825251, + 4.814807325601578, + 4.784257151186466, + 4.867759067565203, + 4.126848187297583, + 3.0520623549818993, + 4.7940039075911045 + ], + "exact": [ + 2.0579220727086067, + 2.166563179343939, + 2.957053016871214, + 2.6582488790154457, + 2.920842729508877, + 2.653396688401699, + 2.1008900366723537, + 2.647625282406807, + 2.2335313260555267, + 2.0726569928228855, + 2.676989883184433, + 2.0290017127990723, + 2.695910632610321, + 2.659108955413103, + 2.7065202593803406, + 2.886722795665264, + 2.579747699201107, + 2.1062279120087624, + 2.0709242671728134, + 2.564378082752228, + 2.0166910253465176, + 2.1293479949235916, + 2.5159958750009537, + 2.5620711967349052, + 2.1367650479078293, + 2.8184670954942703, + 2.6942440308630466, + 2.5139600038528442, + 2.003822010010481, + 2.046118024736643, + 2.484537661075592, + 2.4767452850937843, + 2.093044575303793, + 2.5826189666986465, + 2.490215003490448, + 2.759592141956091, + 2.1707136183977127, + 2.5291088968515396, + 2.5402051396667957, + 2.575836144387722, + 2.0480649545788765, + 2.4886257015168667, + 2.4692481383681297, + 2.7225189842283726, + 2.741276752203703, + 2.0091459155082703, + 2.761604730039835, + 2.1022697910666466, + 2.776280976831913, + 2.0223138853907585, + 2.699524164199829, + 2.522720955312252, + 2.1631172858178616, + 2.0642420276999474, + 2.5885850191116333, + 2.601608168333769, + 2.1136500872671604, + 2.5275549851357937, + 2.5798743590712547, + 2.9159970581531525, + 2.0111571066081524, + 2.890602685511112, + 2.1498380228877068, + 2.9019275680184364, + 2.596629783511162, + 2.7866861782968044, + 2.9178340919315815, + 2.128701191395521, + 2.1263472735881805, + 2.1489551290869713, + 2.822945825755596, + 2.5824932381510735, + 2.5873412378132343, + 2.60302796959877, + 2.5812210515141487, + 2.8614019975066185, + 2.224999014288187, + 2.1387492306530476, + 2.122649922966957, + 2.086457796394825, + 2.025010995566845, + 2.5947527028620243, + 2.1915589459240437, + 2.7258372865617275, + 2.022635191679001, + 2.018227241933346, + 2.4562589824199677, + 1.9659008830785751, + 2.48709786683321, + 2.450463827699423, + 2.7004401199519634, + 2.1593524143099785, + 2.18598498031497, + 2.792397979646921, + 2.638252917677164, + 2.1649240516126156, + 2.0969249308109283, + 2.0624948665499687, + 2.0291078835725784, + 2.093386836349964, + 2.063646912574768, + 2.5903950445353985, + 2.098996192216873, + 2.4086320772767067, + 2.673916984349489, + 2.893397118896246, + 2.0939321257174015, + 2.1138410083949566, + 2.574658952653408, + 2.2416431456804276, + 2.4835760705173016, + 2.631796058267355, + 2.043626271188259, + 2.15792004019022, + 2.824125811457634, + 2.600695937871933, + 2.1359259262681007, + 2.4843006394803524, + 2.432837150990963, + 2.4585993960499763, + 2.000593114644289, + 2.0400346256792545, + 2.7095749974250793, + 2.540340181440115, + 2.8143920935690403, + 2.0664548501372337, + 2.568621188402176, + 2.1370677277445793, + 2.06449581310153, + 2.1344488486647606, + 2.521906979382038, + 2.539450768381357, + 2.655280288308859, + 2.7948180213570595, + 2.609844785183668, + 2.6211184449493885, + 2.0698513835668564, + 2.6069539599120617, + 2.5702551938593388, + 2.158971969038248, + 2.0215515978634357, + 2.1025659516453743, + 2.5474797002971172, + 2.1678488701581955, + 2.531427890062332, + 2.6904381811618805, + 2.1161059848964214, + 2.693112939596176, + 2.1989033557474613, + 2.0867320708930492, + 2.1491199731826782, + 2.0741759799420834, + 2.089948859065771, + 2.1182489581406116, + 2.1494198590517044, + 2.5787847116589546, + 2.7856947854161263, + 2.6412587612867355, + 2.620744053274393, + 2.1557710133492947, + 2.0444709807634354, + 2.108669374138117, + 2.6055150665342808, + 2.127054613083601, + 2.105630934238434, + 2.7065188623964787, + 2.4701557122170925, + 2.734718844294548, + 2.073348965495825, + 1.9781379960477352, + 2.8701359406113625, + 2.8563570231199265, + 2.1401597186923027, + 2.5793248787522316, + 2.1927249617874622, + 2.5534741580486298, + 2.2017769515514374, + 2.090785652399063, + 2.8890371322631836, + 2.5825919583439827, + 2.0317640155553818, + 2.083586063235998, + 2.185167744755745, + 2.054870128631592, + 2.0878626964986324, + 2.788122743368149, + 2.143962774425745, + 2.1147369407117367, + 2.8252117335796356, + 2.1362598054111004, + 2.5820666924118996, + 2.129665110260248, + 2.160209696739912, + 2.1229367703199387, + 2.7918126434087753, + 2.09053885191679, + 2.59167468175292, + 2.110992092639208, + 2.1550417877733707, + 2.124213147908449, + 2.4824640713632107, + 2.1167858503758907, + 2.5938772596418858, + 2.076209057122469, + 2.147328108549118, + 2.0785173401236534, + 2.1367291919887066, + 2.1226597018539906, + 2.1186191588640213, + 2.086266875267029, + 2.801762893795967, + 2.6238677091896534, + 2.184377983212471, + 2.55381315946579, + 2.605128102004528, + 2.086600288748741, + 2.1974812261760235, + 2.7748029679059982, + 2.843415830284357, + 2.088144887238741, + 2.017502672970295, + 2.1032211370766163, + 2.3743901401758194, + 2.1452070213854313, + 2.6988722383975983, + 2.030496019870043, + 1.9839471206068993, + 2.540445886552334, + 2.1055918186903, + 2.46661389246583, + 2.011445816606283, + 2.7712099254131317, + 2.6685656048357487, + 2.5759097188711166, + 2.7840230613946915, + 2.6510609313845634, + 2.8409897349774837, + 2.1491539664566517, + 2.55110627040267, + 2.603188157081604, + 2.024803776293993, + 2.0171343348920345, + 2.7235797606408596, + 2.499413676559925, + 2.4528633803129196, + 2.7053337544202805, + 2.0058760419487953, + 2.742502372711897, + 2.0928699523210526, + 2.599547617137432, + 2.112843096256256, + 2.0601958967745304, + 2.107434906065464, + 2.6659509167075157, + 2.845217939466238, + 2.802290953695774, + 2.5848369114100933, + 2.5987671688199043, + 2.54233879968524, + 2.073229756206274, + 2.041802741587162, + 2.6044733822345734, + 2.1259868517518044, + 2.52910191193223, + 2.1304511465132236, + 2.142572309821844, + 2.7632848359644413, + 2.1101878955960274, + 2.057471312582493, + 2.2111511789262295, + 2.1095946431159973, + 2.633781172335148, + 2.692315261811018, + 1.9870921969413757, + 2.9434370808303356, + 2.487188670784235, + 2.0015151239931583, + 2.472721040248871, + 2.0300643518567085, + 2.0898650400340557, + 2.825541887432337, + 2.1937009878456593, + 2.1710419096052647, + 2.3086867295205593, + 2.156090922653675, + 2.117021009325981, + 2.5401171296834946, + 2.5557042099535465, + 2.042891923338175, + 2.0194579847157, + 2.4889041669666767, + 2.4771830067038536, + 1.9874991849064827, + 2.0126383751630783, + 2.68474780023098, + 1.983088906854391, + 2.359936945140362, + 2.5615887716412544, + 2.080393023788929, + 2.218671143054962, + 2.018467988818884, + 2.105969935655594, + 2.1077031269669533, + 2.110451925545931, + 2.5992821902036667, + 2.152026630938053, + 2.840606961399317, + 2.7941609732806683, + 2.668498083949089, + 2.0164581947028637, + 2.646435983479023, + 2.1023680455982685, + 2.582601737231016, + 2.2362652234733105, + 2.6450175791978836, + 2.0353547297418118, + 1.974338199943304, + 2.5539309717714787, + 2.548085991293192, + 2.8515951707959175, + 2.0282971672713757, + 2.0233080722391605, + 2.549184951931238, + 2.580835949629545, + 2.950818743556738, + 2.646458800882101, + 2.6129200123250484, + 2.0857458002865314, + 2.12843157351017, + 2.169585321098566, + 2.1102861501276493, + 2.1240930072963238, + 2.0873965695500374, + 2.751018851995468, + 2.6842430233955383, + 2.0777848549187183, + 2.1104509942233562, + 2.8846561908721924, + 2.0527332089841366, + 2.0742658525705338, + 2.477813046425581, + 2.81683262437582, + 2.5718570686876774, + 2.672868315130472, + 2.1545072086155415, + 2.8565889224410057, + 2.0957519300282, + 2.582414075732231, + 2.651534043252468, + 2.095568925142288, + 2.798051107674837, + 2.597854007035494, + 2.2593592293560505, + 2.1577789448201656, + 2.139211166650057, + 2.159161027520895, + 2.553137019276619, + 2.9187952168285847, + 2.592599019408226, + 2.082476858049631, + 2.0521506667137146, + 2.1296199411153793, + 2.0940969698131084, + 2.594409976154566, + 2.9199616983532906, + 2.8089298866689205, + 2.166637685149908, + 2.906572073698044, + 2.1213963627815247, + 2.145397011190653, + 2.3749368265271187, + 2.6945220306515694, + 2.5576939806342125, + 2.1083885803818703, + 2.7896841056644917, + 2.1146279759705067, + 2.652198076248169, + 2.1065273322165012, + 2.5248671881854534, + 2.106104977428913, + 2.731604967266321, + 2.124038990586996, + 2.5846692733466625, + 2.1183802746236324, + 2.132166177034378, + 2.895170822739601, + 2.821667119860649, + 2.555442973971367, + 2.5691771879792213, + 2.551223151385784, + 2.1572187542915344, + 2.1605431102216244, + 2.1467693150043488, + 2.1913470700383186, + 2.487459685653448, + 2.1146349608898163, + 2.8719929978251457, + 2.0979419350624084, + 2.614524681121111, + 2.8441259637475014 + ], + "lattice": [ + 1.5541939064860344, + 1.8249335698783398, + 2.1976488642394543, + 1.6292459331452847, + 1.6896706074476242, + 1.7147604376077652, + 1.675939653068781, + 1.7282539047300816, + 1.5862379223108292, + 1.5475968830287457, + 1.4669690281152725, + 1.566074788570404, + 1.5790387988090515, + 1.5721372328698635, + 2.084947656840086, + 1.5879133716225624, + 1.5127812512218952, + 1.4781439676880836, + 1.5898686833679676, + 1.6674883663654327, + 1.971046905964613, + 1.9775382243096828, + 2.0034098997712135, + 1.59837631508708, + 1.6235117800533772, + 1.6482649371027946, + 1.5908950008451939, + 1.6328361816704273, + 1.4968500472605228, + 2.0264582708477974, + 1.5365681611001492, + 2.1145245991647243, + 1.5632808208465576, + 2.102551981806755, + 1.596017275005579, + 1.5571527183055878, + 1.5677819028496742, + 1.5383101999759674, + 2.202472183853388, + 2.0780512131750584, + 1.4832490123808384, + 1.6073090955615044, + 2.1062749437987804, + 1.7234589904546738, + 2.0917588844895363, + 1.6442942433059216, + 2.0374003797769547, + 1.5806825831532478, + 1.6190800815820694, + 2.0871427841484547, + 2.187814097851515, + 1.9921581260859966, + 1.602222677320242, + 2.037644851952791, + 1.9404822960495949, + 1.6815741546452045, + 1.6129519790410995, + 1.519606914371252, + 1.5003490261733532, + 1.9486621022224426, + 2.08548316732049, + 1.6003348864614964, + 1.585233025252819, + 2.1113562397658825, + 2.111657988280058, + 1.5981290489435196, + 1.6070911660790443, + 1.6044299118220806, + 2.124667167663574, + 2.122230362147093, + 1.6048899851739407, + 1.4950409531593323, + 1.4884108677506447, + 1.9576638005673885, + 1.4820210635662079, + 1.9769640639424324, + 2.0887916907668114, + 2.162049990147352, + 1.5592649579048157, + 2.1399608813226223, + 2.071729861199856, + 1.6322871670126915, + 1.936750952154398, + 1.572948880493641, + 1.6474388539791107, + 1.594378612935543, + 1.6156639903783798, + 1.5621990896761417, + 1.5088659711182117, + 1.4906288124620914, + 2.020574174821377, + 2.0939838141202927, + 2.0542722195386887, + 1.5969779342412949, + 1.6152923926711082, + 1.6255984082818031, + 1.9838418811559677, + 1.9446290098130703, + 2.1333349868655205, + 1.4537051320075989, + 2.0038741640746593, + 1.680206973105669, + 2.0583211444318295, + 2.156064845621586, + 1.6857539303600788, + 2.11377814412117, + 1.6081780195236206, + 1.601743046194315, + 2.0284056663513184, + 1.6080094501376152, + 1.610803883522749, + 1.625887118279934, + 2.0545669831335545, + 1.6891942359507084, + 1.5919501893222332, + 1.6375379636883736, + 2.034675795584917, + 1.6217082738876343, + 2.104742918163538, + 2.1392032504081726, + 1.4956062659621239, + 2.0577507093548775, + 2.104352694004774, + 1.7092321068048477, + 1.610203180462122, + 2.053560223430395, + 2.159831114113331, + 1.7466959543526173, + 2.053983975201845, + 1.8485123291611671, + 2.04401183873415, + 2.1759308874607086, + 2.146750222891569, + 2.147476188838482, + 1.5991744585335255, + 1.7340588383376598, + 1.5459833666682243, + 2.1313768811523914, + 1.6326089389622211, + 1.6755899414420128, + 1.9710808992385864, + 1.7408691346645355, + 2.1916902624070644, + 1.4507491141557693, + 1.67892687022686, + 1.6349367797374725, + 1.6440730541944504, + 2.0467708818614483, + 1.648379024118185, + 2.060383092612028, + 1.989488024264574, + 1.633774023503065, + 1.5398180112242699, + 1.4571268111467361, + 1.9756467081606388, + 1.6173897311091423, + 1.7447560094296932, + 2.0215651020407677, + 2.07682978361845, + 1.5895632095634937, + 2.031451091170311, + 2.064678817987442, + 1.611469779163599, + 2.026026137173176, + 2.0696548745036125, + 1.6609374433755875, + 1.5831198543310165, + 2.1539428271353245, + 2.113772090524435, + 2.03065387904644, + 1.505224034190178, + 1.9544633105397224, + 1.9381949678063393, + 1.5287799760699272, + 1.4960202388465405, + 1.5040687285363674, + 2.0653679966926575, + 1.6034608706831932, + 2.133471891283989, + 1.67795829474926, + 1.5431027859449387, + 1.741965301334858, + 2.128730993717909, + 1.7101760022342205, + 1.5837298706173897, + 1.6120318323373795, + 1.5906128101050854, + 2.1088989451527596, + 1.608117949217558, + 1.6330727376043797, + 2.049296163022518, + 2.127439249306917, + 1.6829650849103928, + 1.9452711567282677, + 1.4766058884561062, + 1.9417894072830677, + 1.9305902533233166, + 1.6765943728387356, + 1.5971469692885876, + 2.1289149299263954, + 1.9684499129652977, + 1.5786592848598957, + 2.0302231423556805, + 1.5821410343050957, + 1.5508080832660198, + 1.6983742825686932, + 2.114247065037489, + 2.0549045875668526, + 2.070911228656769, + 2.0480649545788765, + 1.6267760656774044, + 1.562443096190691, + 1.660848967730999, + 2.029353752732277, + 1.6040010377764702, + 2.0962287671864033, + 1.6098390333354473, + 1.658847089856863, + 2.0078038796782494, + 1.636764034628868, + 1.5337117947638035, + 1.9585560075938702, + 1.6941390931606293, + 1.6225208528339863, + 1.5622777864336967, + 1.6210759058594704, + 2.117510885000229, + 1.9314084202051163, + 1.976321917027235, + 1.9680671393871307, + 1.9541610963642597, + 2.1925377659499645, + 1.6485461965203285, + 1.712168101221323, + 1.5673832967877388, + 1.6098041087388992, + 2.007746137678623, + 1.6721873544156551, + 2.036278136074543, + 1.5868153423070908, + 1.5161889605224133, + 2.1071657538414, + 2.0791450515389442, + 2.133491914719343, + 1.508491113781929, + 1.5047071501612663, + 1.9544237293303013, + 1.910107210278511, + 1.9370801746845245, + 1.9660880789160728, + 1.5204106457531452, + 2.19530938193202, + 1.6024261713027954, + 2.0624748431146145, + 1.99533486738801, + 2.108721062541008, + 1.632906962186098, + 1.6491780988872051, + 2.1607098169624805, + 2.0168269984424114, + 1.4950339682400227, + 1.7188191413879395, + 1.5342910774052143, + 1.674954779446125, + 1.5707779675722122, + 1.6411328688263893, + 1.7340248450636864, + 1.6081379726529121, + 1.6370853409171104, + 2.1052109077572823, + 1.7651128582656384, + 2.0423932000994682, + 1.5792897902429104, + 2.008065115660429, + 2.1268832497298717, + 1.5985551290214062, + 2.237228211015463, + 1.604525838047266, + 1.6084047965705395, + 1.6582938842475414, + 2.058308105915785, + 1.6100718639791012, + 2.0315409637987614, + 1.6183769330382347, + 1.654116902500391, + 1.8301140516996384, + 1.554560847580433, + 1.5922067686915398, + 2.076891716569662, + 1.5678522177040577, + 2.0159687846899033, + 1.688673160970211, + 2.103881910443306, + 2.356360200792551, + 1.6603590920567513, + 2.1087410859763622, + 2.114678267389536, + 2.009483054280281, + 2.149720210582018, + 1.6482193022966385, + 1.524569932371378, + 2.143824938684702, + 1.630112063139677, + 1.7317580059170723, + 1.6302731819450855, + 1.6741720028221607, + 1.5443963930010796, + 2.0598769187927246, + 1.5942193567752838, + 2.1027270704507828, + 1.5742871910333633, + 1.6061803326010704, + 1.7307102680206299, + 2.0458740182220936, + 1.486324705183506, + 2.0098439417779446, + 1.9583231769502163, + 1.5360373072326183, + 1.9429242238402367, + 1.933450810611248, + 2.0460751838982105, + 1.5978310257196426, + 1.7184577882289886, + 2.1619279868900776, + 2.1405513398349285, + 1.6672629863023758, + 1.6209189780056477, + 1.5916554257273674, + 1.5885699540376663, + 1.6328762285411358, + 1.5913629904389381, + 1.684705726802349, + 1.9783317111432552, + 1.9502239301800728, + 1.9838111475110054, + 2.1995692513883114, + 2.239661756902933, + 2.0776763558387756, + 2.144942060112953, + 2.0475368946790695, + 2.043717075139284, + 1.6254638321697712, + 1.5747621655464172, + 2.0020226947963238, + 2.1956809796392918, + 2.146802842617035, + 2.0417049527168274, + 2.1189292892813683, + 1.6162581741809845, + 2.0317216403782368, + 2.0349030382931232, + 1.5718890354037285, + 2.1367808803915977, + 1.6602450050413609, + 1.5800721012055874, + 1.5155309811234474, + 1.5903348103165627, + 1.6042026691138744, + 1.6386131756007671, + 1.5839450061321259, + 1.9515338353812695, + 1.62156717851758, + 1.605324912816286, + 2.1774498745799065, + 1.5578297898173332, + 1.6633919440209866, + 1.7240308225154877, + 1.6596289351582527, + 1.6687889583408833, + 2.0154891535639763, + 1.6215178184211254, + 2.0639877766370773, + 2.029655035585165, + 1.6055353917181492, + 1.626536250114441, + 1.619960181415081, + 1.576544251292944, + 1.5166830271482468, + 1.9501959905028343, + 2.0216372795403004, + 1.937922090291977, + 1.5927129425108433, + 2.053429838269949, + 2.1314811892807484, + 2.02814768999815, + 1.6110492870211601, + 1.5868120826780796, + 2.1166731603443623, + 1.6314918175339699, + 2.0759832113981247, + 2.0851679146289825, + 2.154138870537281, + 1.6183569096028805, + 1.6476609744131565, + 1.57106202095747, + 1.626758836209774, + 2.090340945869684, + 1.682428177446127, + 2.054201904684305, + 2.1171229891479015 + ], + "library": [ + 2.009875141084194, + 2.0210975781083107, + 1.6587222926318645, + 2.173521090298891, + 1.613530796021223, + 2.087918110191822, + 2.105429768562317, + 1.6216039657592773, + 1.6899737529456615, + 2.110276371240616, + 1.7886818386614323, + 1.6818251460790634, + 2.0619668066501617, + 2.1128468215465546, + 1.6831522807478905, + 1.560112927109003, + 1.674627885222435, + 1.6420497559010983, + 2.083181869238615, + 1.5914482064545155, + 1.9713831134140491, + 1.7004688270390034, + 1.666707918047905, + 1.6104481182992458, + 2.011817879974842, + 1.9627357833087444, + 1.7019975930452347, + 1.5758620575070381, + 1.621694304049015, + 1.6472837887704372, + 2.0213304087519646, + 1.4966079033911228, + 2.057126723229885, + 1.6149580478668213, + 2.1301498636603355, + 1.7607808113098145, + 1.630897168070078, + 1.6059661284089088, + 2.0265518687665462, + 2.1305978298187256, + 1.5189088881015778, + 1.6711079515516758, + 1.6820370219647884, + 2.104775980114937, + 2.1380730904638767, + 1.6925069503486156, + 2.0166030153632164, + 1.5255669131875038, + 1.979383174329996, + 1.54447415843606, + 1.5185056254267693, + 1.6515161842107773, + 1.5478800050914288, + 1.5912167727947235, + 2.060440368950367, + 1.5067188069224358, + 1.5195761807262897, + 1.5992741100490093, + 1.6193338669836521, + 1.5295008197426796, + 1.9829240627586842, + 1.6042860224843025, + 1.7176312394440174, + 2.0453790202736855, + 1.6429917886853218, + 2.07469891756773, + 1.6843480989336967, + 2.139186020940542, + 1.666154246777296, + 2.1376200020313263, + 2.181566320359707, + 2.111481036990881, + 1.7813122831285, + 2.0812079310417175, + 2.064129337668419, + 1.673406921327114, + 2.1972227841615677, + 1.5845983289182186, + 1.6483459621667862, + 1.5887548215687275, + 2.0227329805493355, + 1.5112808905541897, + 1.9084159284830093, + 1.5096450224518776, + 1.4861649833619595, + 2.020945306867361, + 2.003657165914774, + 2.0588990300893784, + 2.1410430781543255, + 1.6223546117544174, + 1.7292001284658909, + 1.6260850243270397, + 1.502135768532753, + 2.1591847762465477, + 2.0547928288578987, + 1.5701069496572018, + 1.7185192555189133, + 2.220388036221266, + 2.187787089496851, + 2.0404276438057423, + 1.5291511081159115, + 1.6263341531157494, + 1.5761880204081535, + 2.0705792121589184, + 1.6080262139439583, + 1.5627420507371426, + 1.6145538538694382, + 1.5936261042952538, + 1.602962613105774, + 1.6113030724227428, + 1.7932020127773285, + 1.6197939403355122, + 1.6351481899619102, + 1.6628722660243511, + 1.5830439515411854, + 2.0336140878498554, + 2.0319181494414806, + 1.6750073991715908, + 2.172647975385189, + 2.030162140727043, + 2.0414311438798904, + 1.5910891816020012, + 2.1511889062821865, + 2.0077801309525967, + 1.9602500833570957, + 2.1182899363338947, + 1.6888277605175972, + 1.7478959634900093, + 2.1348311565816402, + 2.151262015104294, + 2.0111422054469585, + 1.6202484257519245, + 1.55284209176898, + 2.142576966434717, + 1.6967630945146084, + 1.6011511906981468, + 1.6470369882881641, + 1.6200928948819637, + 1.7385738901793957, + 1.784666907042265, + 1.514769159257412, + 1.671589445322752, + 1.6230680048465729, + 1.577545888721943, + 1.6424404457211494, + 2.160330768674612, + 1.6169906593859196, + 1.6153431497514248, + 1.9941749051213264, + 2.0335279405117035, + 1.6468302346765995, + 1.6161538660526276, + 1.657374668866396, + 2.0748781971633434, + 1.7659692093729973, + 1.9170609302818775, + 2.0500021055340767, + 1.493426039814949, + 2.0174169912934303, + 2.030706964433193, + 1.5332582406699657, + 1.5718708746135235, + 1.6192290931940079, + 1.6971002332866192, + 2.114946022629738, + 1.5994920395314693, + 1.602566335350275, + 2.1170456893742085, + 2.17963894829154, + 2.1305163390934467, + 2.12691817432642, + 2.043608110398054, + 1.6138008795678616, + 1.5889848582446575, + 1.6537141054868698, + 2.1130950190126896, + 1.595695037394762, + 2.0822668448090553, + 2.0763720385730267, + 1.6514277085661888, + 2.011823933571577, + 2.1144188940525055, + 1.6513429582118988, + 1.6472721472382545, + 1.9634943455457687, + 2.1587926894426346, + 1.6398723237216473, + 2.0725568756461143, + 1.6120350919663906, + 1.5987800434231758, + 2.0571881905198097, + 2.0866277627646923, + 1.5772385522723198, + 2.094849944114685, + 1.663608942180872, + 1.5735011547803879, + 1.756215002387762, + 1.5795119106769562, + 1.571684144437313, + 2.1298080682754517, + 1.5247431583702564, + 2.061647828668356, + 2.041134051978588, + 2.058906015008688, + 1.5927818603813648, + 2.2214483469724655, + 2.148446161299944, + 1.6241837292909622, + 1.6099000349640846, + 1.6898000612854958, + 1.6022352501749992, + 2.1405830048024654, + 1.6192970797419548, + 1.5780949033796787, + 1.5149619430303574, + 1.5102103352546692, + 2.0122677087783813, + 1.489344984292984, + 1.9422979094088078, + 2.24044406786561, + 1.5018531121313572, + 2.018644940108061, + 1.730276271700859, + 2.2089900448918343, + 2.070325892418623, + 2.2075651213526726, + 1.6844850033521652, + 1.7673526890575886, + 2.114906907081604, + 1.5902938321232796, + 1.5238490886986256, + 1.629505306482315, + 2.0766188390552998, + 2.019203267991543, + 2.0799171179533005, + 2.0193452946841717, + 2.090828027576208, + 2.0556962117552757, + 2.180210780352354, + 2.0104362629354, + 1.5209303237497807, + 1.5777908265590668, + 1.6273348592221737, + 2.062851097434759, + 2.067259978502989, + 1.949988305568695, + 1.947241835296154, + 1.6119638457894325, + 2.0400676876306534, + 1.6078557819128036, + 2.1836147643625736, + 2.0580212585628033, + 1.9725919701159, + 2.0921779796481133, + 1.9545583054423332, + 1.5705269761383533, + 1.6226009465754032, + 1.6230838373303413, + 2.066288609057665, + 2.0702723413705826, + 1.9336901605129242, + 1.505127176642418, + 1.5265010297298431, + 1.67520297691226, + 2.18430208042264, + 1.6496679745614529, + 2.054300159215927, + 2.158754039555788, + 1.9192183390259743, + 2.0238012075424194, + 1.929549966007471, + 1.9318950362503529, + 2.035614103078842, + 1.6000471077859402, + 1.6151289455592632, + 1.6787657514214516, + 2.1728649735450745, + 1.620663795620203, + 2.0442348904907703, + 2.063675783574581, + 1.4713401906192303, + 1.4965408481657505, + 1.6108117997646332, + 1.6081379726529121, + 1.6095079481601715, + 1.5775240026414394, + 1.5976340509951115, + 1.6071759164333344, + 1.9315807148814201, + 1.515587791800499, + 1.6493541188538074, + 1.7116451635956764, + 2.2016437724232674, + 1.7416980117559433, + 1.6042222268879414, + 2.0155361853539944, + 2.2488711401820183, + 1.6292859800159931, + 2.020810265094042, + 1.5812921337783337, + 2.065218985080719, + 2.025960013270378, + 1.6150358133018017, + 2.1319431252777576, + 2.1422249265015125, + 2.1203462965786457, + 1.6062557697296143, + 1.594258937984705, + 1.6695521771907806, + 1.5636212192475796, + 1.5225713141262531, + 1.4827847480773926, + 2.129870932549238, + 1.614695880562067, + 2.0346511155366898, + 1.762990839779377, + 2.0228512585163116, + 1.6025081276893616, + 1.604410819709301, + 2.038316335529089, + 2.007509581744671, + 2.0389417186379433, + 1.6166926361620426, + 1.6258703544735909, + 1.6648820601403713, + 2.145002596080303, + 1.6282759606838226, + 1.6896547749638557, + 1.580946147441864, + 2.137801144272089, + 1.671982929110527, + 1.6168281435966492, + 2.030130010098219, + 2.084178850054741, + 1.5732906758785248, + 2.058564219623804, + 1.6950392164289951, + 2.198738045990467, + 1.6029281541705132, + 1.5895916149020195, + 1.5516947023570538, + 1.6084141097962856, + 1.6835741698741913, + 1.7347312532365322, + 2.1174680441617966, + 1.6157734207808971, + 2.04539205878973, + 1.5591620467603207, + 1.569707877933979, + 1.6034860163927078, + 2.0477152429521084, + 2.149534411728382, + 1.7236890271306038, + 1.6732718795537949, + 2.0691733807325363, + 2.0902715623378754, + 1.553503330796957, + 1.5555508434772491, + 1.9992804154753685, + 1.6251066699624062, + 1.9558616913855076, + 1.4767181128263474, + 1.9502672366797924, + 2.020933199673891, + 2.0237648859620094, + 1.9793868996202946, + 2.127602696418762, + 1.6352450475096703, + 1.6547022387385368, + 2.165611367672682, + 2.0684711635112762, + 1.6064266674220562, + 1.6912426799535751, + 1.5622768551111221, + 2.078129444271326, + 1.5673711895942688, + 2.0120549015700817, + 2.0852559246122837, + 2.183097880333662, + 1.8974770791828632, + 1.4806389808654785, + 1.6823820769786835, + 1.5966049395501614, + 1.5889820642769337, + 1.6303039155900478, + 1.673493068665266, + 1.5977448783814907, + 2.0261690951883793, + 1.6045370139181614, + 1.608939841389656, + 1.993733923882246, + 2.0631118677556515, + 1.7235232517123222, + 1.6860649921000004, + 1.6264868900179863, + 1.5791058540344238, + 1.5680850483477116, + 2.059111837297678, + 2.158423885703087, + 1.6653980128467083 + ] + }, + "warm_ms": { + "control": [ + 4.088541027158499, + 4.5158760622143745, + 3.119588829576969 + ], + "exact": [ + 2.3165331222116947, + 2.536230254918337, + 2.140054013580084 + ], + "lattice": [ + 2.1704663522541523, + 1.5036617405712605, + 1.9747703336179256 + ], + "library": [ + 1.5694466419517994, + 1.9780010916292667, + 1.6686199232935905 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 3.5640201531350613, + "p10_ms": 3.034797962754965, + "p90_ms": 4.800189379602671, + "min_ms": 2.926708199083805, + "max_ms": 5.501483101397753, + "mean_ms": 3.792510451748967 + }, + "exact": { + "n": 400, + "median_ms": 2.3917844519019127, + "p10_ms": 2.045953320339322, + "p90_ms": 2.7942266780883074, + "min_ms": 1.9659008830785751, + "max_ms": 2.957053016871214, + "mean_ms": 2.3822450649458915 + }, + "lattice": { + "n": 400, + "median_ms": 1.6889336984604597, + "p10_ms": 1.5504869632422924, + "p90_ms": 2.122474042698741, + "min_ms": 1.4507491141557693, + "max_ms": 2.356360200792551, + "mean_ms": 1.8080140091478825 + }, + "library": { + "n": 400, + "median_ms": 1.6959011554718018, + "p10_ms": 1.5626955311745405, + "p90_ms": 2.130732359364629, + "min_ms": 1.4713401906192303, + "max_ms": 2.2488711401820183, + "mean_ms": 1.8164740572683513 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 2.110219102374373, + "ci90_low": 2.0063245008529216, + "ci90_high": 2.313416307457706, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.4901092572539316, + "ci90_low": 1.4091786993685633, + "ci90_high": 1.6539357212649863, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.4161505890267532, + "ci90_low": 1.2787656373189629, + "ci90_high": 1.4795233210484964, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 1.0041253585132994, + "ci90_low": 0.9737743198048545, + "ci90_high": 1.0406932837937843, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 2.1015494574290483, + "ci90_low": 1.9916536765512205, + "ci90_high": 2.253667476039483, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 2.0325890502669433, + "p10": 1.807262197254699, + "p90": 2.3958282942223423 + }, + "minimum_detectable_improvement": 0.4953371027643583, + "compile": { + "control": { + "lower_s": 1.5338543802499771, + "compile_s": 2.439740846864879, + "first_call_s": 0.0041667502373456955, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 6792228.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 4691864, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1024159744, + "rss_after_compile_bytes": 1027588096, + "rss_delta_bytes": 3428352, + "hlo_sha256": "c289fee9248e1484", + "hlo_lines": 19834, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 1.4476799629628658, + "compile_s": 2.4611783009022474, + "first_call_s": 0.002777810674160719, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 3771171.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1774296, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1027588096, + "rss_after_compile_bytes": 1029115904, + "rss_delta_bytes": 1527808, + "hlo_sha256": "7dce33c8e66c5912", + "hlo_lines": 19757, + "hlo_large_constants": 4 + }, + "lattice": { + "lower_s": 1.448175492696464, + "compile_s": 2.506047719158232, + "first_call_s": 0.002548636868596077, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3098931.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1691672, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1029115904, + "rss_after_compile_bytes": 1031229440, + "rss_delta_bytes": 2113536, + "hlo_sha256": "f9fce707f8a14f8d", + "hlo_lines": 19757, + "hlo_large_constants": 4 + }, + "library": { + "lower_s": 1.5217642202042043, + "compile_s": 2.5660053179599345, + "first_call_s": 0.0030898358672857285, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3098931.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1691672, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1031249920, + "rss_after_compile_bytes": 1032777728, + "rss_delta_bytes": 1527808, + "hlo_sha256": "f9fce707f8a14f8d", + "hlo_lines": 19757, + "hlo_large_constants": 4 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ], + "exact": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ], + "lattice": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ], + "library": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 7.196577317761015, + "exact": 7.196577317761015, + "lattice": 7.196577317761015, + "library": 7.196577317761015 + } + }, + "cluster_solved": { + "label": "cluster_solved", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 35.68928316235542, + 40.11227795854211, + 30.395512003451586, + 38.15276315435767, + 38.94816664978862, + 29.979002196341753, + 30.513907317072153, + 37.17834409326315, + 44.635691214352846, + 40.780704002827406, + 28.41049386188388, + 39.454993326216936, + 37.48235804960132, + 34.98722705990076, + 35.16365122050047, + 43.81212592124939, + 26.69277088716626, + 29.837500769644976, + 27.831194922327995, + 36.74291120842099, + 40.467611979693174, + 35.41573183611035, + 36.814786959439516, + 34.38796615228057, + 39.2203857190907, + 46.08167940750718, + 44.42949220538139, + 39.9700328707695, + 45.40245980024338, + 34.83655024319887, + 37.8869641572237, + 37.77429927140474, + 33.09554187580943, + 39.68746121972799, + 34.42400507628918, + 27.592253871262074, + 36.31306206807494, + 40.40459776297212, + 42.93334623798728, + 41.96917684748769, + 33.04480109363794, + 43.687365017831326, + 34.122688230127096, + 45.03421299159527, + 39.744286332279444, + 43.20885194465518, + 40.04776803776622, + 39.45988183841109, + 45.45249370858073, + 41.08179314061999, + 37.76021488010883, + 32.977539114654064, + 44.0026493743062, + 38.126991130411625, + 31.803308986127377, + 33.109564799815416, + 42.18725394457579, + 32.04579930752516, + 26.710635982453823, + 40.47704301774502, + 35.19630804657936, + 44.75824721157551, + 34.275040961802006, + 39.86611310392618, + 35.55535711348057, + 42.42661874741316, + 41.332687716931105, + 45.19070219248533, + 40.09126406162977, + 44.97995786368847, + 30.53126810118556, + 38.8279277831316, + 37.93026600033045, + 43.83274773135781, + 33.84428471326828, + 37.15421399101615, + 40.60212802141905, + 47.837717924267054, + 41.793137323111296, + 32.697058748453856, + 40.83205433562398, + 33.8630941696465, + 46.03429092094302, + 31.638347543776035, + 46.0954150184989, + 37.241929210722446, + 47.42707125842571, + 43.32947125658393, + 34.43408012390137, + 40.94091197475791, + 34.57079967483878, + 41.21702117845416, + 42.3505580984056, + 34.81047693639994, + 36.64821805432439, + 43.93095010891557, + 31.497742980718613, + 35.219601821154356, + 33.80856290459633, + 30.38387978449464, + 40.35657877102494, + 43.22407394647598, + 42.68857790157199, + 41.38845996931195, + 32.08349831402302, + 35.21612798795104, + 30.285394750535488, + 29.774694237858057, + 40.79670971259475, + 42.81000467017293, + 32.447172328829765, + 43.437859043478966, + 46.15502990782261, + 43.36021700873971, + 43.71978668496013, + 42.080460116267204, + 31.32476983591914, + 34.72262900322676, + 31.509898137301207, + 42.5867629237473, + 46.74056079238653, + 34.31755164638162, + 46.07183765619993, + 31.81138215586543, + 39.971206337213516, + 28.508679009974003, + 48.96568227559328, + 40.64993001520634, + 34.25640007480979, + 34.546232316643, + 35.39666533470154, + 44.1816127859056, + 45.101880095899105, + 36.968085914850235, + 37.709495052695274, + 37.18178905546665, + 31.28616278991103, + 41.16566199809313, + 33.708672039210796, + 39.51339377090335, + 39.70017423853278, + 34.62178399786353, + 37.82618325203657, + 41.483710054308176, + 29.606198891997337, + 28.660773765295744, + 43.49553398787975, + 42.7588177844882, + 48.033430241048336, + 41.50302102789283, + 38.113486021757126, + 40.240427013486624, + 28.63996382802725, + 41.91426793113351, + 42.87921730428934, + 34.941626247018576, + 28.788991272449493, + 37.80832793563604, + 32.704472076147795, + 35.77604703605175, + 33.802514895796776, + 48.533888068050146, + 42.79809212312102, + 30.415196903049946, + 27.810472063720226, + 44.62276306003332, + 41.411294136196375, + 39.21219613403082, + 40.40157003328204, + 42.78028989210725, + 45.4963487572968, + 36.12001519650221, + 32.28679904714227, + 36.63612296804786, + 34.0951276011765, + 28.826666064560413, + 37.761146668344736, + 44.78116566315293, + 37.30269195511937, + 50.96535477787256, + 42.17675607651472, + 36.409664899110794, + 37.165233399719, + 32.95572008937597, + 37.05630963668227, + 35.5834299698472, + 44.42992201074958, + 42.0590341091156, + 38.62700518220663, + 38.935250137001276, + 29.661456122994423, + 29.350006952881813, + 30.75143275782466, + 35.89585795998573, + 36.66713507845998, + 34.014799166470766, + 35.821984987705946, + 42.049035895615816, + 44.776161666959524, + 40.608970914036036, + 39.90674391388893, + 34.177021123468876, + 39.02801778167486, + 35.84027709439397, + 44.54534640535712, + 38.841154891997576, + 41.12047515809536, + 39.50442234054208, + 36.835300270468, + 27.14698202908039, + 43.464862275868654, + 32.075047958642244, + 46.34112399071455, + 45.26820592582226, + 41.704313829541206, + 35.11947626248002, + 39.53096363693476, + 39.15138682350516, + 42.49739507213235, + 43.09420892968774, + 39.30040402337909, + 27.0135379396379, + 45.359242241829634, + 41.67950386181474, + 41.95532901212573, + 34.92954093962908, + 42.39258170127869, + 34.55386124551296, + 44.32558175176382, + 44.60470285266638, + 27.595113031566143, + 46.34090978652239, + 33.41525187715888, + 33.87863840907812, + 43.89300476759672, + 44.50151836499572, + 35.58284463360906, + 41.426084004342556, + 31.55587613582611, + 43.11825381591916, + 39.942122995853424, + 27.438797987997532, + 42.14913910254836, + 43.67453884333372, + 32.02100656926632, + 50.45966897159815, + 38.6119713075459, + 34.58160115405917, + 46.119049191474915, + 47.42125468328595, + 34.33952899649739, + 38.792287930846214, + 42.843780014663935, + 36.54155181720853, + 24.856820236891508, + 46.71615082770586, + 25.939472019672394, + 46.45049199461937, + 36.82843176648021, + 35.28979700058699, + 41.99127899482846, + 35.64320970326662, + 33.49903319031, + 39.77410215884447, + 41.36904189363122, + 33.60789129510522, + 34.95968505740166, + 33.14996371045709, + 43.46514027565718, + 41.591040790081024, + 37.179764825850725, + 36.048085894435644, + 46.487041749060154, + 45.62543239444494, + 35.744029097259045, + 41.14731214940548, + 41.4552316069603, + 34.12210009992123, + 33.07453589513898, + 36.84378508478403, + 33.40740595012903, + 38.228707388043404, + 37.17026673257351, + 39.44783890619874, + 47.029195819050074, + 47.73281281813979, + 36.24427365139127, + 45.769630931317806, + 30.56116309016943, + 40.606731083244085, + 39.73410977050662, + 40.3102757409215, + 39.44793762639165, + 41.196329053491354, + 46.39042308554053, + 35.89633712545037, + 30.385376885533333, + 40.12457421049476, + 36.10630100592971, + 41.26125015318394, + 33.90192519873381, + 40.534577798098326, + 35.38584383204579, + 30.82933323457837, + 37.61725872755051, + 29.149568639695644, + 45.22567801177502, + 39.37171120196581, + 40.598051622509956, + 30.36556299775839, + 43.304032646119595, + 26.406195014715195, + 35.85999412462115, + 44.7398629039526, + 40.64944526180625, + 34.53660383820534, + 38.235139567404985, + 27.970212046056986, + 40.72730476036668, + 35.15273192897439, + 44.48841419070959, + 40.659813210368156, + 37.8529061563313, + 39.43950496613979, + 35.74811713770032, + 43.10332331806421, + 47.147827222943306, + 44.25187408924103, + 36.57667199149728, + 41.9320072978735, + 35.45665508136153, + 42.40708705037832, + 45.08484387770295, + 47.62903321534395, + 31.915002968162298, + 30.2912681363523, + 38.32742478698492, + 46.58673796802759, + 32.64107694849372, + 45.95530079677701, + 45.275706332176924, + 44.80375815182924, + 45.591076370328665, + 42.57104778662324, + 40.70777865126729, + 37.810320034623146, + 31.924528069794178, + 32.56129892542958, + 35.37815622985363, + 39.03482807800174, + 39.02329504489899, + 43.208074290305376, + 33.605172764509916, + 36.540089175105095, + 30.422594863921404, + 29.27196677774191, + 43.40045899152756, + 42.24565206095576, + 40.1393910869956, + 49.7421626932919, + 39.29890180006623, + 29.918537009507418, + 41.43093712627888, + 40.67958099767566, + 44.277512934058905, + 36.43105877563357, + 48.44126710668206, + 42.19569871202111, + 37.74872003123164, + 37.3675930313766, + 30.326115898787975, + 32.0395827293396, + 47.04515868797898, + 39.23272807151079, + 44.96402898803353, + 37.99741668626666, + 39.08123821020126, + 39.94316514581442, + 44.7559030726552, + 40.27488688006997, + 35.54065711796284, + 43.934446293860674, + 34.0861389413476, + 34.86921917647123, + 40.59293493628502, + 36.84296878054738, + 40.74770025908947, + 42.02139377593994, + 41.50991328060627, + 39.57129176706076, + 45.73565162718296, + 35.84522567689419, + 42.15888027101755, + 37.99812728539109, + 30.667218379676342, + 37.54639532417059, + 36.215389147400856, + 35.674906335771084, + 46.23115388676524, + 33.160438761115074 + ], + "exact": [ + 11.667388956993818, + 12.759189121425152, + 11.863760184496641, + 12.295395601540804, + 14.030675869435072, + 16.887241043150425, + 12.630892917513847, + 12.165741994976997, + 14.50393907725811, + 10.944579727947712, + 16.417079139500856, + 13.058301992714405, + 16.40932634472847, + 13.732857070863247, + 13.699529692530632, + 10.71994286030531, + 11.541633866727352, + 15.147184021770954, + 12.54809508100152, + 11.50023378431797, + 14.611226972192526, + 13.55435699224472, + 13.81282927468419, + 16.37948490679264, + 13.413947075605392, + 12.208637781441212, + 14.478635042905807, + 14.78073513135314, + 14.733347110450268, + 13.72832478955388, + 12.761389836668968, + 16.01566979661584, + 12.932492420077324, + 14.306026976555586, + 17.783832270652056, + 12.784311082214117, + 15.772696118801832, + 14.170492067933083, + 13.279818929731846, + 14.920676127076149, + 14.311500824987888, + 12.385682668536901, + 10.88614109903574, + 12.752535287290812, + 13.679625000804663, + 11.097341775894165, + 10.785016231238842, + 13.812362682074308, + 12.459503952413797, + 13.067058753222227, + 14.379207044839859, + 11.81420311331749, + 14.01419471949339, + 14.423163142055273, + 14.724829699844122, + 12.605845928192139, + 11.318912729620934, + 10.262238793075085, + 10.214585810899734, + 10.425054002553225, + 11.610571760684252, + 11.533841025084257, + 12.188686057925224, + 13.028826098889112, + 12.555346358567476, + 12.95560272410512, + 16.54085097834468, + 14.447845984250307, + 11.763188056647778, + 14.476140961050987, + 11.08240196481347, + 10.695637203752995, + 14.076841995120049, + 14.241195283830166, + 13.708556070923805, + 13.74999899417162, + 13.805103953927755, + 11.702471878379583, + 14.188033994287252, + 13.367400970309973, + 18.223047256469727, + 12.099755927920341, + 14.15071589872241, + 12.491201981902122, + 14.097899198532104, + 13.60247191041708, + 10.92510111629963, + 13.357168063521385, + 11.42042176797986, + 12.198692187666893, + 11.866833083331585, + 13.040795922279358, + 11.990758124738932, + 13.346086256206036, + 14.985069632530212, + 13.931467197835445, + 17.034782096743584, + 13.986059930175543, + 17.396971117705107, + 10.374575853347778, + 17.65848184004426, + 11.644587386399508, + 15.588207170367241, + 11.19574811309576, + 13.372280169278383, + 14.607307966798544, + 12.830042280256748, + 14.104587957262993, + 12.090286239981651, + 11.027679778635502, + 11.423873249441385, + 13.073219917714596, + 12.122964952141047, + 12.15954590588808, + 10.953895282000303, + 12.293144129216671, + 13.823550660163164, + 13.487088959664106, + 13.521010987460613, + 10.667575057595968, + 14.35236306861043, + 11.257039848715067, + 13.29048490151763, + 13.216492719948292, + 13.086576946079731, + 10.301037691533566, + 11.83082815259695, + 14.185148291289806, + 13.848939910531044, + 13.884533196687698, + 10.954881086945534, + 12.20476720482111, + 12.53903703764081, + 11.82482484728098, + 14.331579208374023, + 14.932254329323769, + 16.734509263187647, + 12.59928522631526, + 10.940984822809696, + 11.484014801681042, + 19.336963072419167, + 12.927120085805655, + 14.814031310379505, + 16.631561797112226, + 11.689562350511551, + 11.907622683793306, + 12.688891030848026, + 14.156326185911894, + 10.803052224218845, + 12.256252113729715, + 14.246074017137289, + 16.8665973469615, + 15.478953253477812, + 10.632412042468786, + 12.483528815209866, + 12.001594062894583, + 12.41182116791606, + 11.168476194143295, + 11.699011083692312, + 15.24657616391778, + 14.460864942520857, + 12.42118189111352, + 11.043407954275608, + 12.322306632995605, + 14.52171290293336, + 14.48477990925312, + 15.53680608049035, + 14.845327939838171, + 13.26697412878275, + 17.07729185000062, + 11.52313593775034, + 15.344491694122553, + 11.497811879962683, + 13.814019039273262, + 12.08972791209817, + 15.840990003198385, + 11.02425204589963, + 12.056080158799887, + 11.305467691272497, + 12.057522777467966, + 14.463779982179403, + 12.392643373459578, + 14.679975342005491, + 10.22399216890335, + 14.488006010651588, + 10.759531985968351, + 14.08406812697649, + 11.098688933998346, + 14.517231844365597, + 14.22880170866847, + 10.423579253256321, + 10.253706015646458, + 12.696593068540096, + 12.96704774722457, + 13.467005919665098, + 11.835960671305656, + 13.921207748353481, + 14.063314069062471, + 14.369190204888582, + 10.466159787029028, + 18.37792992591858, + 12.603472918272018, + 12.90834927931428, + 12.709444854408503, + 12.05884525552392, + 13.835500925779343, + 16.236168798059225, + 13.995081186294556, + 12.495697010308504, + 10.521166026592255, + 12.957205064594746, + 12.616754975169897, + 12.244979850947857, + 15.739272814244032, + 15.00813290476799, + 12.218365911394358, + 12.008309829980135, + 12.20297021791339, + 14.585687778890133, + 14.898824039846659, + 14.316623099148273, + 11.360111646354198, + 14.372340869158506, + 13.146732933819294, + 17.255919985473156, + 15.032433904707432, + 14.157619792968035, + 9.751881007105112, + 15.55955596268177, + 11.52598625048995, + 13.64713441580534, + 11.931081768125296, + 13.804671820253134, + 13.922193087637424, + 10.845925658941269, + 12.303631752729416, + 13.37662898004055, + 10.989404283463955, + 10.278407949954271, + 14.82330122962594, + 11.18114497512579, + 13.064843136817217, + 10.916254948824644, + 11.999142821878195, + 10.012001264840364, + 11.876304168254137, + 10.628094896674156, + 12.873710133135319, + 14.38065804541111, + 12.032050639390945, + 12.49456312507391, + 14.32868791744113, + 10.425725020468235, + 13.499392662197351, + 10.451646987348795, + 11.274844873696566, + 14.123060274869204, + 17.544024158269167, + 12.919648084789515, + 10.54087420925498, + 12.331885751336813, + 17.0953581109643, + 11.093473993241787, + 15.458081848919392, + 11.9722168892622, + 10.680608917027712, + 13.868999667465687, + 14.77981498464942, + 12.638320215046406, + 11.428273282945156, + 13.832633849233389, + 11.476647108793259, + 11.73581974580884, + 11.685690842568874, + 16.603659838438034, + 15.281655825674534, + 11.087507009506226, + 10.501904413104057, + 16.125294845551252, + 14.153803698718548, + 15.497766900807619, + 13.596886768937111, + 11.964183766394854, + 12.999840546399355, + 15.003588050603867, + 13.806382194161415, + 12.371913064271212, + 12.694239150732756, + 10.397701989859343, + 13.483372051268816, + 12.177031021565199, + 16.708093229681253, + 13.630908913910389, + 12.593347113579512, + 12.214149814099073, + 12.195818591862917, + 13.407425954937935, + 12.47100904583931, + 12.63153599575162, + 14.199540950357914, + 15.289579052478075, + 12.941183056682348, + 13.64335510879755, + 12.505586724728346, + 13.338477816432714, + 14.791757799685001, + 10.373150929808617, + 12.342004105448723, + 11.875855270773172, + 13.483835384249687, + 15.283114742487669, + 12.121716979891062, + 15.941106248646975, + 15.368818771094084, + 17.83782197162509, + 14.70761839300394, + 12.21955195069313, + 17.092960886657238, + 13.407004997134209, + 14.163089916110039, + 15.731710940599442, + 17.347322776913643, + 14.575565233826637, + 12.488679960370064, + 12.304678093641996, + 13.95626226440072, + 12.387117370963097, + 10.206607170403004, + 10.661255568265915, + 16.379910055547953, + 12.241217773407698, + 18.42003408819437, + 15.394178219139576, + 11.571657843887806, + 13.697797898203135, + 17.380861099809408, + 14.76508192718029, + 12.327057775110006, + 13.078959658741951, + 16.156052704900503, + 11.315556708723307, + 17.704300116747618, + 12.892528902739286, + 15.774805564433336, + 15.455418266355991, + 11.350775137543678, + 15.768757089972496, + 10.925119742751122, + 10.951788630336523, + 10.949721094220877, + 11.298613622784615, + 10.822887066751719, + 14.379987958818674, + 12.873549945652485, + 13.868862297385931, + 10.101235937327147, + 14.28644498810172, + 14.230115339159966, + 14.753120020031929, + 17.502322793006897, + 17.952770926058292, + 14.026935677975416, + 11.65288919582963, + 10.818535927683115, + 11.14466693252325, + 13.642681296914816, + 11.646667961031199, + 13.476045802235603, + 14.693081844598055, + 12.274581007659435, + 9.898878633975983, + 11.819093953818083, + 14.664118643850088, + 15.50140930339694, + 17.4888139590621, + 10.922201909124851, + 15.712246298789978, + 11.617936659604311, + 13.786590192466974, + 11.821535415947437, + 14.695494901388884, + 13.197988737374544, + 11.293486692011356, + 16.043579671531916, + 15.899788122624159, + 11.783829890191555, + 12.748401146382093, + 14.29577637463808, + 12.648101896047592, + 11.131771840155125, + 11.396667920053005, + 15.414480585604906, + 10.516651906073093, + 12.528885155916214, + 12.326525989919901, + 11.807321105152369, + 12.171654030680656, + 11.989445891231298, + 11.377382092177868, + 11.370687279850245 + ], + "lattice": [ + 8.3354776725173, + 7.449187804013491, + 8.06735921651125, + 7.5743477791547775, + 7.653986103832722, + 8.09969985857606, + 7.572703063488007, + 8.365617133677006, + 10.586234275251627, + 9.623097721487284, + 7.27874506264925, + 8.387356996536255, + 9.628025814890862, + 8.912608958780766, + 9.398545138537884, + 7.2634597308933735, + 8.280998095870018, + 7.608345709741116, + 9.941807948052883, + 8.622370660305023, + 8.799689821898937, + 8.221535012125969, + 7.298692129552364, + 6.899649742990732, + 7.825481239706278, + 7.124803960323334, + 7.489050272852182, + 7.094153668731451, + 10.629199910908937, + 8.947657886892557, + 7.933612912893295, + 8.999249897897243, + 8.653442841023207, + 7.171622011810541, + 8.826210163533688, + 7.521042134612799, + 8.613861165940762, + 9.231705218553543, + 9.523781016469002, + 7.444735150784254, + 9.684044867753983, + 8.685916662216187, + 9.012570139020681, + 8.187682833522558, + 7.142601069062948, + 8.180204313248396, + 9.427994955331087, + 9.44993318989873, + 8.086068090051413, + 7.490243297070265, + 8.416673168540001, + 8.696178905665874, + 8.099196013063192, + 7.728687021881342, + 8.874448016285896, + 8.33109486848116, + 9.542569983750582, + 7.231561932712793, + 7.650073152035475, + 9.356347844004631, + 9.62648680433631, + 9.147488977760077, + 8.444405160844326, + 8.338650222867727, + 7.11730495095253, + 8.322028908878565, + 9.634660091251135, + 8.51401500403881, + 6.851444020867348, + 9.162634145468473, + 6.926349829882383, + 8.766290731728077, + 8.349158801138401, + 10.56359289214015, + 8.774681016802788, + 7.104097865521908, + 7.352979388087988, + 6.779215764254332, + 7.369347847998142, + 8.150955196470022, + 10.099727660417557, + 9.157860651612282, + 6.876383908092976, + 7.154649123549461, + 8.725851308554411, + 9.672288317233324, + 9.245201013982296, + 7.725522853434086, + 9.594649076461792, + 7.761045824736357, + 9.371385909616947, + 9.58267878741026, + 8.488365914672613, + 11.592286173254251, + 9.761764667928219, + 8.338212966918945, + 9.447646327316761, + 10.072472039610147, + 8.962287101894617, + 9.23615088686347, + 9.238674771040678, + 7.558477111160755, + 8.028735406696796, + 7.52001628279686, + 10.435692965984344, + 8.21268791332841, + 7.714434061199427, + 8.03677598014474, + 9.339349810034037, + 8.720094803720713, + 7.657508831471205, + 10.097919963300228, + 9.039009921252728, + 7.408482022583485, + 9.096389170736074, + 8.631120901554823, + 8.863815106451511, + 9.318489115685225, + 8.261954877525568, + 9.636435192078352, + 9.536734782159328, + 9.127567056566477, + 7.605787832289934, + 7.302180398255587, + 9.625159204006195, + 7.743065245449543, + 8.341080043464899, + 7.337774615734816, + 10.3757930919528, + 9.988571051508188, + 9.213021025061607, + 7.582352962344885, + 6.622639950364828, + 8.269410114735365, + 8.238947950303555, + 9.420616086572409, + 9.105495177209377, + 9.26028797402978, + 7.706522010266781, + 8.310887962579727, + 7.112340070307255, + 10.624866001307964, + 8.615873754024506, + 7.6806931756436825, + 9.36634186655283, + 8.89130076393485, + 7.994261104613543, + 9.479778818786144, + 7.404879201203585, + 10.217280127108097, + 9.80187812820077, + 9.106073062866926, + 9.642723016440868, + 9.756827726960182, + 7.173989899456501, + 9.821522980928421, + 10.143572930246592, + 7.742613088339567, + 8.483170997351408, + 8.26907716691494, + 7.413990795612335, + 9.491360746324062, + 7.879347074776888, + 7.4913278222084045, + 7.793054915964603, + 9.308735374361277, + 9.994010906666517, + 8.639026898890734, + 9.476827923208475, + 8.889304008334875, + 9.018425829708576, + 10.105401743203402, + 7.8652468509972095, + 9.570588823407888, + 9.800537023693323, + 9.025020990520716, + 9.935501031577587, + 9.880471043288708, + 8.816976565867662, + 9.659160859882832, + 8.557301014661789, + 10.14777086675167, + 8.123775012791157, + 7.230452261865139, + 7.599875330924988, + 7.338137831538916, + 9.764112997800112, + 7.488009985536337, + 6.51389267295599, + 7.439533714205027, + 7.098790258169174, + 8.351462893188, + 7.606422062963247, + 9.050094056874514, + 10.139661841094494, + 7.951735984534025, + 8.573711849749088, + 7.278257980942726, + 10.389141738414764, + 9.924347046762705, + 8.04417533800006, + 8.192349690943956, + 8.72914819046855, + 8.940862026065588, + 8.157462812960148, + 7.665739860385656, + 7.508826907724142, + 8.476308081299067, + 8.261228911578655, + 8.559233043342829, + 9.810175281018019, + 9.66858584433794, + 8.113021031022072, + 9.387564845383167, + 9.807027876377106, + 7.135642226785421, + 10.28389809653163, + 10.234748013317585, + 9.138279128819704, + 8.718610741198063, + 8.065405301749706, + 8.538344874978065, + 9.159365203231573, + 9.067144244909286, + 7.636573631316423, + 7.143544033169746, + 8.761343080550432, + 7.098076865077019, + 7.603697013109922, + 7.9039609991014, + 7.15017132461071, + 9.549760725349188, + 10.496486909687519, + 9.43311769515276, + 9.29094199091196, + 7.051434833556414, + 8.503555320203304, + 9.091391693800688, + 7.839338853955269, + 7.295050658285618, + 7.062107790261507, + 7.5531029142439365, + 7.830171845853329, + 9.995475877076387, + 8.267910219728947, + 7.67154898494482, + 8.657072205096483, + 7.2632585652172565, + 9.49180731549859, + 9.565580170601606, + 9.2393159866333, + 10.240946896374226, + 8.708641864359379, + 8.507738821208477, + 7.563394028693438, + 8.804971352219582, + 10.327085852622986, + 7.940100971609354, + 9.954504203051329, + 7.788043934851885, + 9.771991055458784, + 7.943232078105211, + 7.8635201789438725, + 9.912118781358004, + 8.93119815737009, + 6.999047938734293, + 9.432216174900532, + 8.838857989758253, + 7.520419079810381, + 8.418902289122343, + 8.997831959277391, + 6.815172266215086, + 8.980180136859417, + 7.332896813750267, + 7.467866875231266, + 9.445513132959604, + 10.649916715919971, + 9.514760226011276, + 7.837507873773575, + 8.729217108339071, + 9.170898701995611, + 8.811770007014275, + 7.921749725937843, + 8.067566901445389, + 8.452235721051693, + 6.486489903181791, + 7.044307421892881, + 7.030179724097252, + 8.747993968427181, + 6.72858115285635, + 9.341332130134106, + 10.20811591297388, + 10.355724021792412, + 7.995577063411474, + 7.595054805278778, + 9.164778050035238, + 10.103009175509214, + 6.944789085537195, + 8.374462835490704, + 7.118472829461098, + 9.743283968418837, + 9.442531038075686, + 8.851445280015469, + 8.118663914501667, + 9.12692490965128, + 6.303482223302126, + 10.541937313973904, + 8.840676862746477, + 7.341037970036268, + 8.703056257218122, + 6.640318781137466, + 8.660879917442799, + 7.870244327932596, + 8.663635700941086, + 10.170273017138243, + 10.622167959809303, + 8.844331838190556, + 10.393249802291393, + 9.536762721836567, + 7.857515010982752, + 9.739807806909084, + 8.596286177635193, + 7.06089660525322, + 8.593797218054533, + 8.060799911618233, + 7.313110865652561, + 9.471558965742588, + 7.259573321789503, + 7.774549070745707, + 8.349379058927298, + 8.459878154098988, + 10.59609092772007, + 7.206620182842016, + 9.38761094585061, + 7.33127910643816, + 7.195909041911364, + 8.083077147603035, + 8.408141788095236, + 8.37246933951974, + 9.693783707916737, + 7.406952790915966, + 7.574396673589945, + 7.703540846705437, + 6.8153380416333675, + 7.923445198684931, + 9.28583275526762, + 8.021082729101181, + 8.01437720656395, + 9.964772965759039, + 8.662804961204529, + 9.677738882601261, + 8.548878133296967, + 9.768577292561531, + 7.691959850490093, + 9.865697007626295, + 10.479696094989777, + 8.763465099036694, + 6.832639686763287, + 8.25501000508666, + 8.422721177339554, + 8.615126833319664, + 8.586958050727844, + 10.35349303856492, + 7.2290063835680485, + 9.624077007174492, + 8.742512203752995, + 9.147045202553272, + 7.812594994902611, + 7.764087058603764, + 6.696511059999466, + 7.570737041532993, + 8.903175126761198, + 8.356439415365458, + 10.121770668774843, + 7.338487077504396, + 8.23315605521202, + 6.850710138678551, + 7.763743866235018, + 7.201868109405041, + 7.7452282421290874, + 8.898456115275621, + 9.11335600540042, + 7.102422881871462, + 9.114773944020271, + 7.649220991879702, + 9.870210196822882, + 7.962609641253948, + 6.961493752896786, + 9.412196930497885, + 10.20535221323371, + 6.971924565732479, + 7.098011206835508, + 8.9493696577847, + 8.62507801502943, + 7.869327906519175, + 6.824367213994265, + 7.3031531646847725, + 8.69014486670494, + 9.419844951480627, + 7.532584015280008 + ], + "library": [ + 9.510083124041557, + 7.601713296025991, + 10.110839270055294, + 9.18588601052761, + 9.796353057026863, + 8.512627799063921, + 9.937689173966646, + 8.663949090987444, + 9.929676074534655, + 8.672188967466354, + 8.34109028801322, + 10.310526937246323, + 9.149055927991867, + 7.50744016841054, + 7.918050047010183, + 7.740845903754234, + 8.457988034933805, + 8.965541142970324, + 8.963860105723143, + 9.136701934039593, + 7.33497180044651, + 7.918837014585733, + 7.723790127784014, + 10.047766845673323, + 8.335082791745663, + 8.25072918087244, + 9.635875932872295, + 9.31357592344284, + 8.435063995420933, + 7.196159102022648, + 9.33954305946827, + 8.637180086225271, + 10.362590663135052, + 7.66299432143569, + 9.440605994313955, + 7.611293811351061, + 8.854794781655073, + 6.995152216404676, + 10.112323332577944, + 7.871584966778755, + 7.8315772116184235, + 8.230181876569986, + 9.468167088925838, + 7.8336079604923725, + 7.623089011758566, + 8.936521131545305, + 7.696100044995546, + 9.611858986318111, + 9.122597053647041, + 9.284311905503273, + 7.066878955811262, + 7.966502103954554, + 9.080308955162764, + 9.560160804539919, + 6.973345763981342, + 9.209590032696724, + 7.368193939328194, + 9.057923685759306, + 9.096879977732897, + 9.057646617293358, + 8.897274732589722, + 9.439452085644007, + 7.469250354915857, + 7.056021131575108, + 9.085530880838633, + 8.063788991421461, + 7.235853001475334, + 7.005253806710243, + 7.903006859123707, + 9.817218407988548, + 7.348726969212294, + 9.191195014864206, + 10.010006371885538, + 9.570387192070484, + 9.6255992539227, + 7.198138162493706, + 10.2485166862607, + 9.558884892612696, + 7.406258024275303, + 7.12791969999671, + 7.506572175770998, + 8.342111017554998, + 9.885832201689482, + 8.128257002681494, + 9.399039670825005, + 8.028051815927029, + 9.568240027874708, + 8.139546029269695, + 9.446194861084223, + 7.284339051693678, + 7.587835192680359, + 9.66735789552331, + 9.187576826661825, + 7.421940099447966, + 7.497282233089209, + 8.949357084929943, + 9.451717138290405, + 6.88672810792923, + 8.90358304604888, + 8.017071057111025, + 7.017487194389105, + 8.23043892160058, + 8.095782715827227, + 9.496858343482018, + 7.78071116656065, + 8.494236040860415, + 10.91597368940711, + 7.27398507297039, + 8.438435848802328, + 8.978327736258507, + 8.256340865045786, + 10.0070396438241, + 7.210562005639076, + 9.414169006049633, + 9.609611239284277, + 8.32773419097066, + 9.257628116756678, + 7.2465259581804276, + 8.18714126944542, + 8.645773865282536, + 7.934877183288336, + 10.432897135615349, + 8.467953652143478, + 8.51197587326169, + 6.987757049500942, + 9.88753978163004, + 10.19431371241808, + 10.091813281178474, + 8.586636744439602, + 9.558327961713076, + 7.5987400487065315, + 7.78083223849535, + 9.2870919033885, + 10.953481309115887, + 8.66434769704938, + 7.573673967272043, + 9.245099034160376, + 7.351402193307877, + 9.947964921593666, + 9.354700800031424, + 8.226953912526369, + 8.922498673200607, + 9.47244418784976, + 9.441352915018797, + 8.692389354109764, + 9.673342108726501, + 7.556840777397156, + 7.33581418171525, + 9.745909832417965, + 8.484798017889261, + 8.8893361389637, + 7.716402877122164, + 7.234240882098675, + 8.844458032399416, + 9.967241901904345, + 7.873593829572201, + 7.96431303024292, + 8.864060044288635, + 9.402060881257057, + 8.016179781407118, + 9.947589132934809, + 9.423308074474335, + 7.548746187239885, + 7.128982339054346, + 9.339821990579367, + 9.000897873193026, + 8.366069290786982, + 8.137932047247887, + 8.920145221054554, + 8.677719160914421, + 8.46839277073741, + 8.553678635507822, + 7.583987899124622, + 9.364531375467777, + 8.152773138135672, + 7.166520226746798, + 8.348909206688404, + 8.2421968691051, + 9.214144200086594, + 8.083328139036894, + 9.003623854368925, + 7.515510078519583, + 10.511680040508509, + 9.295044932514429, + 7.621961180120707, + 7.493447978049517, + 8.30153003334999, + 8.349022828042507, + 8.990323171019554, + 8.335797116160393, + 7.8063840046525, + 7.967248558998108, + 10.20993897691369, + 9.189038071781397, + 9.564420208334923, + 8.565227035433054, + 6.879932247102261, + 7.434497121721506, + 7.208097726106644, + 8.811193984001875, + 9.335911832749844, + 7.255462929606438, + 8.890273049473763, + 10.273292195051908, + 8.656046818941832, + 7.9964022152125835, + 7.8644417226314545, + 6.692652124911547, + 9.24341008067131, + 9.400761220604181, + 7.707180920988321, + 8.242948912084103, + 7.538758218288422, + 7.55878584459424, + 9.790665935724974, + 7.362478878349066, + 9.588745888322592, + 9.426858741790056, + 8.877852000296116, + 6.6971140913665295, + 7.402826100587845, + 9.373472072184086, + 8.076750673353672, + 8.441436104476452, + 10.121139232069254, + 7.376490626484156, + 9.717254899442196, + 6.980365142226219, + 9.419196750968695, + 8.733280003070831, + 10.096061043441296, + 8.781303651630878, + 7.115378975868225, + 8.832255844026804, + 7.017241325229406, + 8.905090857297182, + 10.54471405223012, + 9.248462039977312, + 7.320991717278957, + 8.957077283412218, + 10.093186981976032, + 10.080072097480297, + 8.45527183264494, + 9.68825863674283, + 9.072742890566587, + 8.49275104701519, + 9.329577907919884, + 7.89687130600214, + 8.394632022827864, + 7.102197036147118, + 8.53215903043747, + 9.611781220883131, + 7.850479334592819, + 8.029893040657043, + 7.153089623898268, + 7.234918884932995, + 9.023643098771572, + 8.111413102596998, + 9.00796102359891, + 7.573132403194904, + 7.668017875403166, + 7.53207178786397, + 9.076290763914585, + 8.643053006380796, + 9.496749844402075, + 7.533640135079622, + 9.351626969873905, + 8.40125186368823, + 7.388626225292683, + 7.885464001446962, + 8.833542000502348, + 7.734840735793114, + 9.446234907954931, + 9.79402381926775, + 9.637553244829178, + 9.517523925751448, + 6.9493260234594345, + 10.092503856867552, + 9.055756032466888, + 7.733734790235758, + 8.416171185672283, + 7.517130114138126, + 8.184638805687428, + 9.503280743956566, + 8.234915789216757, + 7.979275193065405, + 9.249924216419458, + 7.207832299172878, + 8.319413289427757, + 8.670995943248272, + 9.456404019147158, + 7.287479005753994, + 6.804263684898615, + 8.523669093847275, + 7.7529349364340305, + 9.546002838760614, + 9.917758870869875, + 9.466513060033321, + 8.121326100081205, + 10.206202045083046, + 6.874816957861185, + 9.173189755529165, + 10.005495976656675, + 9.658393915742636, + 8.51732725277543, + 9.880166035145521, + 7.964123971760273, + 7.383763790130615, + 7.034850772470236, + 7.514667231589556, + 10.197735857218504, + 8.351465221494436, + 9.717320092022419, + 9.336583781987429, + 8.031816687434912, + 8.218934293836355, + 10.269709397107363, + 9.595029056072235, + 7.435023784637451, + 8.615472819656134, + 8.670731913298368, + 8.217993192374706, + 8.082060143351555, + 7.191697135567665, + 9.410689119249582, + 9.402904193848372, + 7.897789124399424, + 9.30361682549119, + 6.888615898787975, + 8.486909791827202, + 9.573615156114101, + 8.552508894354105, + 7.845102343708277, + 9.906514082103968, + 7.988006342202425, + 10.72765002027154, + 6.9551048800349236, + 9.492882061749697, + 7.79086584225297, + 9.988565929234028, + 7.422083988785744, + 8.509216830134392, + 8.612177800387144, + 7.29505717754364, + 7.854912895709276, + 9.873128030449152, + 7.596517913043499, + 7.188404910266399, + 10.36095805466175, + 7.771237753331661, + 8.640504907816648, + 8.316002320498228, + 9.262461215257645, + 9.59793059155345, + 7.303575985133648, + 10.037614032626152, + 7.214813027530909, + 9.305598214268684, + 7.527614012360573, + 8.975435979664326, + 9.404259268194437, + 9.424170944839716, + 9.31384414434433, + 7.44349742308259, + 8.944048080593348, + 9.797062259167433, + 9.835788980126381, + 9.882673621177673, + 7.281993981450796, + 7.911398075520992, + 7.823608350008726, + 9.342869278043509, + 8.553929626941681, + 8.75088106840849, + 10.36354759708047, + 9.590993169695139, + 9.292373899370432, + 9.488346055150032, + 9.423361159861088, + 7.41787813603878, + 7.682358846068382, + 9.121689014136791, + 10.042686015367508, + 9.606114588677883, + 7.734678220003843, + 7.481878157705069, + 9.848439134657383, + 9.290908928960562, + 9.070337284356356, + 8.3193089812994, + 7.8667569905519485, + 7.374989800155163, + 9.861116297543049, + 9.54038230702281, + 8.36586905643344, + 9.500009007751942, + 7.403683383017778, + 10.575193911790848, + 8.832753170281649, + 7.992216851562262 + ] + }, + "warm_ms": { + "control": [ + 40.86547018960118, + 32.449361868202686, + 38.86080393567681 + ], + "exact": [ + 16.008710023015738, + 15.916910022497177, + 11.591602116823196 + ], + "lattice": [ + 10.600677225738764, + 10.212404187768698, + 9.30829532444477 + ], + "library": [ + 10.444104205816984, + 8.66298284381628, + 8.152338210493326 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 39.025656413286924, + "p10_ms": 30.65661285072565, + "p90_ms": 45.268955966457725, + "min_ms": 24.856820236891508, + "max_ms": 50.96535477787256, + "mean_ms": 38.44184463727288 + }, + "exact": { + "n": 400, + "median_ms": 12.962126405909657, + "p10_ms": 10.925117880105972, + "p90_ms": 15.772907063364983, + "min_ms": 9.751881007105112, + "max_ms": 19.336963072419167, + "mean_ms": 13.231767452089116 + }, + "lattice": { + "n": 400, + "median_ms": 8.50564707070589, + "p10_ms": 7.154201343655586, + "p90_ms": 9.936131723225117, + "min_ms": 6.303482223302126, + "max_ms": 11.592286173254251, + "mean_ms": 8.524904267396778 + }, + "library": { + "n": 400, + "median_ms": 8.599407272413373, + "p10_ms": 7.28410454466939, + "p90_ms": 9.889437211677432, + "min_ms": 6.692652124911547, + "max_ms": 10.953481309115887, + "mean_ms": 8.604535179911181 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 4.5882054697160335, + "ci90_low": 4.443996701560534, + "ci90_high": 4.696291068536365, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 3.010744934218081, + "ci90_low": 2.9000844976121165, + "ci90_high": 3.0766484338819766, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.5239435986654357, + "ci90_low": 1.48669057845329, + "ci90_high": 1.5684227222310532, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 1.0110232885197412, + "ci90_low": 0.9867969887060233, + "ci90_high": 1.0372664653858317, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 4.538179804377913, + "ci90_low": 4.388007575217537, + "ci90_high": 4.640292263051476, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 4.580224735680993, + "p10": 4.1940818024935345, + "p90": 4.938572648697293 + }, + "minimum_detectable_improvement": 0.3744291437659729, + "compile": { + "control": { + "lower_s": 30.330890118144453, + "compile_s": 21.927595905959606, + "first_call_s": 0.040072391740977764, + "trace_calls": 12, + "step0_rows": [ + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507 + ], + "flops": 131387408.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 91879512, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1009905664, + "rss_after_compile_bytes": 1889701888, + "rss_delta_bytes": 879796224, + "hlo_sha256": "4c9fb57bae139a11", + "hlo_lines": 55415, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 29.166491706855595, + "compile_s": 24.365413941908628, + "first_call_s": 0.016390447970479727, + "trace_calls": 12, + "step0_rows": [ + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085 + ], + "flops": 46680284.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 40762904, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1831489536, + "rss_after_compile_bytes": 2382770176, + "rss_delta_bytes": 551280640, + "hlo_sha256": "b869a6a616d28b19", + "hlo_lines": 55075, + "hlo_large_constants": 24 + }, + "lattice": { + "lower_s": 29.083933552727103, + "compile_s": 23.69542093621567, + "first_call_s": 0.010464592836797237, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 30343092.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22636056, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2338320384, + "rss_after_compile_bytes": 2396045312, + "rss_delta_bytes": 57724928, + "hlo_sha256": "8e0ad213754dbbfd", + "hlo_lines": 55075, + "hlo_large_constants": 24 + }, + "library": { + "lower_s": 30.47976634511724, + "compile_s": 24.13998712413013, + "first_call_s": 0.009683854877948761, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 30343092.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22636056, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2361085952, + "rss_after_compile_bytes": 2421014528, + "rss_delta_bytes": 59928576, + "hlo_sha256": "24f3dcdad7c7591c", + "hlo_lines": 55075, + "hlo_large_constants": 24 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730304, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396465, + 14.05296570839195, + 4.710517791725226, + 6.647366750058172, + 17.926663625058694, + 16.331611541724385 + ], + "exact": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730304, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396465, + 14.05296570839195, + 4.710517791725226, + 6.647366750058172, + 17.926663625058694, + 16.331611541724385 + ], + "lattice": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730304, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396465, + 14.05296570839195, + 4.710517791725226, + 6.647366750058172, + 17.926663625058694, + 16.331611541724385 + ], + "library": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730304, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396465, + 14.05296570839195, + 4.710517791725226, + 6.647366750058172, + 17.926663625058694, + 16.331611541724385 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 25.56012716672745, + "exact": 25.56012716672745, + "lattice": 25.56012716672745, + "library": 25.56012716672745 + } + }, + "cluster_plain": { + "label": "cluster_plain", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 38.68513181805611, + 33.74096471816301, + 31.494256108999252, + 43.23549196124077, + 30.6313200853765, + 29.923283029347658, + 29.77822022512555, + 27.154668234288692, + 28.336558025330305, + 29.85311485826969, + 30.17954621464014, + 27.37737586721778, + 30.17806028947234, + 31.16666479036212, + 31.99145197868347, + 28.072820976376534, + 27.051281183958054, + 35.66873865202069, + 44.68781175091863, + 29.214737936854362, + 28.97346718236804, + 30.363640282303095, + 25.57262498885393, + 27.965344954282045, + 32.45249297469854, + 36.08330572023988, + 33.215210773050785, + 30.073735862970352, + 29.627957846969366, + 26.525896042585373, + 35.57970933616161, + 31.36770287528634, + 28.00565492361784, + 29.217476956546307, + 32.51206874847412, + 33.8747613132, + 31.09082207083702, + 34.00949062779546, + 31.86311572790146, + 33.91106706112623, + 31.65428340435028, + 27.69692102447152, + 31.344950664788485, + 36.214583553373814, + 29.508173931390047, + 32.35173085704446, + 27.80939731746912, + 27.31269598007202, + 29.958996921777725, + 36.69316973537207, + 30.37521569058299, + 31.13362891599536, + 26.757817715406418, + 32.784059178084135, + 33.93838880583644, + 31.397770158946514, + 27.36856509000063, + 32.00690075755119, + 30.509474221616983, + 35.73278011754155, + 43.51910296827555, + 34.50242104008794, + 32.11501473560929, + 33.51629013195634, + 29.373289085924625, + 32.01776510104537, + 29.813101049512625, + 33.53362064808607, + 32.978761941194534, + 28.922520112246275, + 30.360961332917213, + 26.407261844724417, + 38.38120074942708, + 33.082344103604555, + 33.60551409423351, + 31.67072031646967, + 32.81452227383852, + 36.7138241417706, + 26.45363798364997, + 32.35312597826123, + 32.32372598722577, + 28.24142063036561, + 36.27049503847957, + 41.041173972189426, + 36.41032101586461, + 31.78340196609497, + 35.325340926647186, + 36.02619282901287, + 28.103927616029978, + 34.256374929100275, + 42.888001538813114, + 28.73620204627514, + 32.94344060122967, + 28.75916985794902, + 31.052968930453062, + 31.16512717679143, + 30.95850395038724, + 28.14916195347905, + 32.656239811331034, + 34.27759883925319, + 35.29555816203356, + 33.94370200112462, + 29.991733841598034, + 32.78388408944011, + 28.908851090818644, + 26.67462406679988, + 33.93503092229366, + 33.34491001442075, + 28.69168296456337, + 32.76420710608363, + 32.951532397419214, + 30.7224178686738, + 34.09149404615164, + 31.28370037302375, + 32.513602171093225, + 32.81771298497915, + 26.42855979502201, + 29.769446700811386, + 31.086929142475128, + 37.91144583374262, + 47.34805412590504, + 29.980933759361506, + 30.929911881685257, + 30.884976033121347, + 32.77242183685303, + 25.83030378445983, + 27.353857178241014, + 27.253130916506052, + 27.32078917324543, + 33.05449802428484, + 31.99158702045679, + 29.710358940064907, + 38.48229814320803, + 35.06431309506297, + 29.39828997477889, + 39.74711196497083, + 31.13357489928603, + 29.763225000351667, + 26.67199168354273, + 39.821016136556864, + 34.968484193086624, + 31.532222870737314, + 34.19909905642271, + 26.56496223062277, + 30.058471951633692, + 30.48517880961299, + 35.96742916852236, + 34.971365705132484, + 30.528720933943987, + 32.09512494504452, + 38.74927060678601, + 32.27646229788661, + 30.696749221533537, + 31.617409083992243, + 29.991048388183117, + 33.42506289482117, + 34.28892092779279, + 35.51460895687342, + 28.155123814940453, + 30.127678997814655, + 34.93763320147991, + 39.32542074471712, + 42.16696787625551, + 31.509009189903736, + 29.870809987187386, + 37.337169982492924, + 32.57007664069533, + 30.083523131906986, + 32.709155697375536, + 33.26681721955538, + 36.7048722691834, + 29.52355705201626, + 30.596043914556503, + 28.422117233276367, + 35.31029401347041, + 35.546277184039354, + 37.06154180690646, + 37.061708979308605, + 28.601052705198526, + 39.34352193027735, + 34.3418437987566, + 38.47922896966338, + 39.90918304771185, + 32.47551620006561, + 34.13864132016897, + 25.643416214734316, + 29.675736092031002, + 34.21342512592673, + 37.47631562873721, + 37.57406817749143, + 29.903731308877468, + 34.989165142178535, + 34.36987614259124, + 43.55160892009735, + 27.193497866392136, + 27.64781191945076, + 34.16158026084304, + 29.89568281918764, + 29.131086077541113, + 29.6756187453866, + 32.1573568508029, + 31.05153376236558, + 29.550381004810333, + 34.08468700945377, + 31.104781199246645, + 30.326855834573507, + 34.01709767058492, + 33.21155114099383, + 29.14883103221655, + 29.0795611217618, + 31.204070895910263, + 30.41753638535738, + 33.765674103051424, + 30.54823772981763, + 26.30413183942437, + 34.30083626881242, + 32.343166414648294, + 36.31639992818236, + 32.57112903520465, + 27.502997778356075, + 27.038568165153265, + 26.778943371027708, + 36.042749881744385, + 31.157872173935175, + 31.550454907119274, + 35.6792020611465, + 33.72852271422744, + 26.664021890610456, + 33.96035032346845, + 32.026991713792086, + 39.317975752055645, + 32.3331281542778, + 28.023819904774427, + 30.910291709005833, + 31.765241641551256, + 39.78770365938544, + 35.38092412054539, + 30.294678173959255, + 31.059141270816326, + 32.479061745107174, + 30.69708915427327, + 36.74030816182494, + 32.59074501693249, + 32.52532193437219, + 36.81153571233153, + 31.341993249952793, + 38.18187117576599, + 30.18184518441558, + 29.571515042334795, + 39.34284998103976, + 29.423977248370647, + 36.14123398438096, + 38.15127210691571, + 31.744709238409996, + 34.31571600958705, + 31.443092972040176, + 30.45594086870551, + 39.76154513657093, + 31.787574756890535, + 30.080042779445648, + 35.14554910361767, + 38.81396586075425, + 33.2758380100131, + 29.754196759313345, + 31.791544053703547, + 37.12983103469014, + 36.92424204200506, + 34.07211089506745, + 32.42461429908872, + 35.72926390916109, + 37.99150511622429, + 35.18774872645736, + 31.587409786880016, + 27.216908987611532, + 34.21120485290885, + 36.32840886712074, + 34.16918031871319, + 33.3517137914896, + 33.6407208815217, + 28.91769865527749, + 31.57817292958498, + 31.9447866640985, + 27.57799020037055, + 36.03031672537327, + 39.15762575343251, + 33.36686082184315, + 29.875476844608784, + 33.31852797418833, + 38.797678891569376, + 35.66417610272765, + 34.88079272210598, + 30.28260311111808, + 32.07587683573365, + 27.917827013880014, + 33.12805900350213, + 29.646663926541805, + 27.389639988541603, + 36.46729374304414, + 35.848827101290226, + 31.795360147953033, + 35.0764743052423, + 40.31314002349973, + 36.33653512224555, + 35.094537772238255, + 35.118077881634235, + 25.428043212741613, + 34.129970241338015, + 36.33365500718355, + 30.490239150822163, + 36.404641810804605, + 36.77611192688346, + 28.78839010372758, + 31.900219153612852, + 26.67852072045207, + 32.591989263892174, + 35.29607690870762, + 37.955319974571466, + 33.44756178557873, + 27.61384192854166, + 39.11949135363102, + 36.21687786653638, + 31.268024817109108, + 29.738897923380136, + 31.432365998625755, + 32.05300820991397, + 33.61148480325937, + 28.493661899119616, + 28.271378949284554, + 32.94493677094579, + 32.50002767890692, + 39.63375883176923, + 27.743964921683073, + 29.33945506811142, + 34.2152607627213, + 35.1376342587173, + 29.756661038845778, + 27.44921576231718, + 30.150474049150944, + 32.71517530083656, + 38.01184939220548, + 28.304087929427624, + 31.16835094988346, + 34.807787742465734, + 39.31618807837367, + 40.52464524284005, + 34.07704597339034, + 30.067507177591324, + 27.129950001835823, + 34.535129088908434, + 40.192628279328346, + 33.8666713796556, + 26.831098832190037, + 32.37960301339626, + 36.15105105563998, + 29.964393004775047, + 32.23025193437934, + 32.82546391710639, + 31.697371043264866, + 28.018168173730373, + 32.97037212178111, + 38.13691111281514, + 36.87413735315204, + 33.892433159053326, + 34.72258197143674, + 28.820754028856754, + 31.721351202577353, + 33.29536318778992, + 34.65470019727945, + 36.798256915062666, + 41.442954912781715, + 35.37220507860184, + 28.205832932144403, + 38.61555689945817, + 31.344129238277674, + 35.15564929693937, + 36.43991006538272, + 37.8335858695209, + 31.285233795642853, + 30.57325119152665, + 30.181718058884144, + 27.990188915282488, + 34.32177798822522, + 36.46206622943282, + 30.2982940338552, + 29.767257161438465, + 37.17463696375489, + 34.400580916553736, + 27.910330798476934, + 32.81158162280917, + 27.860938105732203, + 37.61428501456976, + 38.71955396607518, + 39.5657941699028, + 27.550268918275833, + 33.939582761377096, + 33.02956512197852, + 33.13705511391163, + 29.978338163346052, + 32.06833591684699, + 28.430473990738392 + ], + "exact": [ + 15.559104271233082, + 15.116970054805279, + 15.202112030237913, + 13.452100101858377, + 14.221313409507275, + 12.821891810745, + 12.838365975767374, + 15.187954064458609, + 13.886807952076197, + 12.127226684242487, + 15.377358067780733, + 13.166348915547132, + 13.393165078014135, + 11.900135781615973, + 11.83230197057128, + 16.081632114946842, + 13.537720311433077, + 11.613777372986078, + 14.251540880650282, + 12.56596576422453, + 15.429811552166939, + 12.707526795566082, + 14.9918831884861, + 12.173536699265242, + 14.132101088762283, + 11.854066047817469, + 13.021986000239849, + 14.49020765721798, + 11.897116899490356, + 12.858949601650238, + 13.363928999751806, + 15.915481839329004, + 13.993824366480112, + 12.687710113823414, + 12.644838076084852, + 14.17631283402443, + 10.831454303115606, + 16.00121706724167, + 10.783664882183075, + 11.96783035993576, + 15.372726134955883, + 15.273991972208023, + 12.977065052837133, + 13.641048222780228, + 13.292605057358742, + 15.488720964640379, + 14.283895026892424, + 17.481557093560696, + 13.27647129073739, + 12.416656129062176, + 12.784101068973541, + 16.159953083842993, + 14.018130954355001, + 14.472308102995157, + 14.70664283260703, + 11.770353652536869, + 12.019492220133543, + 16.147350892424583, + 11.167659889906645, + 11.87190692871809, + 14.217295218259096, + 14.295306988060474, + 13.57477717101574, + 13.480959925800562, + 15.322082675993443, + 14.253337401896715, + 14.08045506104827, + 11.250156909227371, + 13.07498523965478, + 17.83870393410325, + 15.59728803113103, + 14.982049353420734, + 12.984015978872776, + 16.050267964601517, + 14.81693796813488, + 12.720880098640919, + 12.281669769436121, + 12.949081137776375, + 13.851480558514595, + 13.67458002641797, + 18.362686038017273, + 14.115093275904655, + 15.065549872815609, + 14.772305730730295, + 15.185416676104069, + 11.631512083113194, + 13.232773169875145, + 15.74860280379653, + 12.596718035638332, + 16.921487171202898, + 16.92915102466941, + 14.404410030692816, + 12.222851160913706, + 11.903001926839352, + 13.165281154215336, + 14.706111047416925, + 11.406372301280499, + 12.58926559239626, + 11.617849115282297, + 14.243206940591335, + 13.858555816113949, + 15.531446319073439, + 11.395947076380253, + 12.681256048381329, + 12.322308961302042, + 13.197665102779865, + 11.372643057256937, + 12.136269826442003, + 13.444746378809214, + 15.120573341846466, + 15.453896019607782, + 11.454093270003796, + 11.673289351165295, + 13.007770292460918, + 14.568137936294079, + 9.894730057567358, + 12.154201976954937, + 11.039998847991228, + 13.075227849185467, + 11.885714251548052, + 14.34717420488596, + 13.819665648043156, + 14.226352795958519, + 15.364137943834066, + 13.95794190466404, + 13.403257355093956, + 11.055555194616318, + 13.273718301206827, + 12.981693726032972, + 14.71799612045288, + 14.09638999029994, + 11.442895978689194, + 14.281794894486666, + 11.953599750995636, + 13.377705123275518, + 10.850877966731787, + 12.275223154574633, + 15.872086863964796, + 11.439878027886152, + 11.90589414909482, + 17.413977067917585, + 15.96583379432559, + 15.91206481680274, + 14.488901011645794, + 13.696635141968727, + 13.820657972246408, + 12.347699142992496, + 11.661337222903967, + 11.798735242336988, + 10.904483962804079, + 15.648658853024244, + 16.673033125698566, + 14.894320163875818, + 14.89931670948863, + 15.97263989970088, + 13.667310122400522, + 13.900283724069595, + 15.805270057171583, + 13.714055996388197, + 10.452983900904655, + 17.271752003580332, + 14.67239810153842, + 13.184694107621908, + 13.021920807659626, + 13.33358883857727, + 12.580524664372206, + 11.95355411618948, + 13.968001119792461, + 15.588955022394657, + 11.551810894161463, + 11.482170782983303, + 13.308368157595396, + 14.569961000233889, + 14.032856095582247, + 11.153744999319315, + 13.718281872570515, + 10.952818673104048, + 10.677124839276075, + 14.458843041211367, + 11.353844311088324, + 15.33572468906641, + 11.646855156868696, + 13.985838741064072, + 12.886644806712866, + 14.014281332492828, + 13.868904206901789, + 13.536970131099224, + 14.855436980724335, + 14.524278230965137, + 13.124614953994751, + 10.888793971389532, + 13.037533033639193, + 13.707544654607773, + 12.030601967126131, + 14.819987118244171, + 11.534953024238348, + 12.671183794736862, + 13.35886213928461, + 15.460165683180094, + 12.421575374901295, + 19.69045028090477, + 13.877300545573235, + 15.160134993493557, + 14.920702204108238, + 13.795715291053057, + 10.958547238260508, + 15.724303666502237, + 15.444390941411257, + 14.623071998357773, + 13.627867680042982, + 14.267913065850735, + 12.136445846408606, + 11.924816761165857, + 11.259591672569513, + 11.18340203538537, + 10.895220097154379, + 11.071709915995598, + 12.13320204988122, + 12.835890986025333, + 14.422242064028978, + 11.998443864285946, + 15.659575816243887, + 15.11458307504654, + 13.511879835277796, + 13.956454116851091, + 12.07864098250866, + 12.163916137069464, + 14.735614880919456, + 16.513864044100046, + 11.419803835451603, + 10.917047038674355, + 15.466179233044386, + 16.913068015128374, + 18.167957197874784, + 14.283001888543367, + 13.641673605889082, + 12.423443607985973, + 13.857253361493349, + 15.471837017685175, + 16.28656405955553, + 15.39640361443162, + 15.59455692768097, + 16.047694254666567, + 10.748198721557856, + 16.83121593669057, + 14.94101295247674, + 17.49259512871504, + 12.973329052329063, + 14.65053902938962, + 11.650760192424059, + 13.83281173184514, + 10.403587017208338, + 10.53723506629467, + 10.51054010167718, + 12.77515897527337, + 12.478352058678865, + 11.881500948220491, + 12.70133163779974, + 13.446297962218523, + 11.940211988985538, + 12.56675599142909, + 14.915135223418474, + 14.075966086238623, + 11.850405018776655, + 14.838935807347298, + 13.09477910399437, + 11.318320874124765, + 12.658100109547377, + 11.148941237479448, + 14.948745723813772, + 10.970511939376593, + 13.275053817778826, + 14.312582090497017, + 13.955651316791773, + 11.24193612486124, + 14.168430119752884, + 12.687711045145988, + 13.396199326962233, + 11.659326031804085, + 12.415667995810509, + 19.49248230084777, + 13.976812828332186, + 14.882854651659727, + 14.345756731927395, + 11.205298826098442, + 14.40101396292448, + 14.998899307101965, + 13.962853234261274, + 13.36958771571517, + 11.60229416564107, + 14.198245946317911, + 13.361804187297821, + 13.41480715200305, + 11.374312918633223, + 14.829547144472599, + 12.406857684254646, + 13.910646084696054, + 14.270114246755838, + 10.782296303659678, + 12.605241034179926, + 13.44730006530881, + 17.08092587068677, + 11.847677174955606, + 12.394426856189966, + 16.518842428922653, + 12.506299652159214, + 15.986585058271885, + 15.410413965582848, + 13.858053833246231, + 13.755027670413256, + 12.299840804189444, + 12.27517006918788, + 10.44167298823595, + 10.960628278553486, + 13.904671184718609, + 14.763572253286839, + 11.442100163549185, + 14.465904794633389, + 10.97410311922431, + 13.361199293285608, + 19.439999014139175, + 13.919496908783913, + 12.521631084382534, + 10.578630026429892, + 13.48357368260622, + 11.028129141777754, + 12.640457134693861, + 11.649613734334707, + 12.074361089617014, + 12.922316789627075, + 11.307972948998213, + 15.669082291424274, + 12.08481378853321, + 14.161468017846346, + 13.64197488874197, + 14.073667116463184, + 15.127534978091717, + 14.383104629814625, + 15.317745972424746, + 15.127967111766338, + 12.801291886717081, + 13.927914202213287, + 12.857278808951378, + 14.21650592237711, + 14.671566430479288, + 13.69269099086523, + 12.328267097473145, + 12.560945935547352, + 12.576461303979158, + 18.40022299438715, + 11.602809187024832, + 11.084745172411203, + 13.314916286617517, + 11.182012967765331, + 13.757967855781317, + 13.211652170866728, + 13.70054017752409, + 14.457239303737879, + 15.547186601907015, + 12.215910945087671, + 16.00532466545701, + 15.165514778345823, + 12.757115997374058, + 12.915202882140875, + 10.485074017196894, + 14.983803033828735, + 12.858992908149958, + 12.384289875626564, + 13.341657817363739, + 12.923099100589752, + 12.2724249958992, + 11.232232674956322, + 12.23327498883009, + 14.99514002352953, + 11.15885516628623, + 10.245532263070345, + 13.486937619745731, + 16.121480148285627, + 15.156039036810398, + 10.78336639329791, + 17.555154394358397, + 14.378549065440893, + 15.720229130238295, + 15.29996795579791, + 11.842303909361362, + 12.50452408567071, + 13.05036386474967, + 15.1790427044034, + 13.242322951555252, + 17.53825880587101, + 10.307315737009048, + 15.1475858874619, + 12.50984612852335, + 10.738214943557978, + 13.00486596301198, + 10.722114238888025, + 10.886176023632288, + 13.278287835419178, + 14.876750763505697, + 11.75207644701004 + ], + "lattice": [ + 8.5979332216084, + 9.520330000668764, + 7.851083762943745, + 8.31577368080616, + 7.251421920955181, + 7.730343844741583, + 9.399021975696087, + 9.74708003923297, + 7.6652099378407, + 9.523781016469002, + 9.795018006116152, + 9.340880904346704, + 6.61618635058403, + 7.257287856191397, + 9.268777910619974, + 8.0800149589777, + 10.425962042063475, + 9.81286820024252, + 6.978799123317003, + 10.001211892813444, + 6.925141904503107, + 9.578850120306015, + 9.535153396427631, + 7.304079364985228, + 7.893272675573826, + 9.478828869760036, + 7.351553998887539, + 8.255826774984598, + 8.149452973157167, + 7.7474103309214115, + 8.195784874260426, + 8.234069216996431, + 7.406209129840136, + 7.853446062654257, + 8.281770162284374, + 8.918564766645432, + 7.0418608374893665, + 8.478560950607061, + 9.244835935533047, + 9.029875975102186, + 7.440126966685057, + 8.195240050554276, + 8.235003799200058, + 7.927012164145708, + 8.314321283251047, + 9.424170944839716, + 7.9025388695299625, + 7.310918066650629, + 6.7977807484567165, + 7.303302176296711, + 9.465149138122797, + 7.390386890619993, + 8.062821812927723, + 6.6735087893903255, + 8.106124121695757, + 9.850102942436934, + 9.15306294336915, + 8.053062949329615, + 9.556266013532877, + 9.364023339003325, + 7.249047048389912, + 6.97401212528348, + 7.087311241775751, + 7.663337048143148, + 9.4720758497715, + 9.327492211014032, + 7.741348352283239, + 7.1883792988955975, + 9.618739131838083, + 7.8817629255354404, + 8.898066822439432, + 7.784476969391108, + 7.3920427821576595, + 7.487696595489979, + 9.178364183753729, + 8.140374906361103, + 8.700443897396326, + 9.076876100152731, + 8.536736015230417, + 9.110523853451014, + 7.613534573465586, + 8.642386179417372, + 8.260042872279882, + 8.282645139843225, + 7.256763055920601, + 7.153484039008617, + 9.530160576105118, + 7.105344906449318, + 7.566286716610193, + 9.18377609923482, + 6.7437500692903996, + 8.686476852744818, + 7.953071966767311, + 8.887182921171188, + 7.368674967437983, + 8.315167855471373, + 6.772913970053196, + 6.949893198907375, + 8.28684214502573, + 6.592534948140383, + 9.27055673673749, + 9.340427815914154, + 8.358132094144821, + 9.105490054935217, + 9.366495069116354, + 7.781590800732374, + 7.410144899040461, + 7.740507833659649, + 9.04736202210188, + 8.305256254971027, + 7.509957998991013, + 6.684528663754463, + 8.451784960925579, + 8.943350054323673, + 7.857062853872776, + 7.219301071017981, + 6.906514056026936, + 7.4169207364320755, + 7.281575817614794, + 9.04846005141735, + 8.16053431481123, + 8.165621664375067, + 9.065971244126558, + 8.226652629673481, + 7.997765205800533, + 8.725109044462442, + 8.028310723602772, + 7.536533288657665, + 9.434214793145657, + 8.213561028242111, + 9.086910169571638, + 9.859476238489151, + 6.63535762578249, + 9.021251928061247, + 7.44188716635108, + 8.805480785667896, + 7.5655607506632805, + 8.238496258854866, + 8.507616817951202, + 9.319369215518236, + 7.35640712082386, + 7.383096031844616, + 9.020610712468624, + 7.4265799485147, + 8.839353919029236, + 7.5239758007228374, + 7.194286677986383, + 7.660501636564732, + 7.295204326510429, + 9.8931142129004, + 8.810786996036768, + 9.096512570977211, + 7.430715952068567, + 8.5850078612566, + 7.577142212539911, + 8.489034604281187, + 6.673993077129126, + 9.027387946844101, + 7.998991291970015, + 7.1423351764678955, + 9.624761994928122, + 8.657951839268208, + 7.193849887698889, + 8.627970237284899, + 7.342192810028791, + 9.361433796584606, + 8.877444081008434, + 6.841236725449562, + 8.42210277915001, + 8.039210923016071, + 8.862656075507402, + 9.126489982008934, + 7.319165859371424, + 7.978297770023346, + 9.09157795831561, + 9.169124998152256, + 8.03949311375618, + 9.543979074805975, + 7.8736562281847, + 7.798950187861919, + 7.074269000440836, + 7.579308934509754, + 8.229868952184916, + 7.356497924774885, + 6.517335306853056, + 7.373190950602293, + 8.823462761938572, + 6.5988278947770596, + 7.548888213932514, + 9.582837112247944, + 8.094091899693012, + 6.993155926465988, + 8.128709625452757, + 7.599483244121075, + 8.317796047776937, + 7.345219142735004, + 7.512459997087717, + 7.171305827796459, + 6.732684094458818, + 6.9883218966424465, + 9.760905988514423, + 9.325206745415926, + 7.493106182664633, + 9.275066200643778, + 9.278988000005484, + 8.803001139312983, + 9.038775227963924, + 9.100389201194048, + 8.404106367379427, + 6.404089741408825, + 7.2882771492004395, + 8.583429269492626, + 9.492554236203432, + 7.46078509837389, + 6.9504412822425365, + 7.277246098965406, + 8.893786929547787, + 9.072675835341215, + 8.934959303587675, + 8.902149740606546, + 9.610029868781567, + 7.26434076204896, + 7.18532782047987, + 8.37886892259121, + 7.872208021581173, + 9.245724882930517, + 7.477730046957731, + 9.167454671114683, + 8.257471956312656, + 8.748448919504881, + 7.289886008948088, + 7.849937304854393, + 9.024957194924355, + 7.530110888183117, + 7.811754941940308, + 7.416103035211563, + 8.046225178986788, + 8.887066971510649, + 9.189522825181484, + 7.070167921483517, + 8.260826114565134, + 10.176947340369225, + 9.38701257109642, + 8.204653859138489, + 9.043264202773571, + 9.417654015123844, + 9.733818005770445, + 8.728344924747944, + 9.117485955357552, + 10.231661144644022, + 9.475421160459518, + 7.734130136668682, + 9.10314079374075, + 7.037733215838671, + 8.474667090922594, + 8.641743566840887, + 8.951291907578707, + 8.944071829319, + 8.857641834765673, + 7.985386066138744, + 8.353439159691334, + 8.862040936946869, + 9.8840007558465, + 8.559260983020067, + 7.7952309511601925, + 8.525093086063862, + 8.020330686122179, + 7.337425835430622, + 7.925780955702066, + 6.702433805912733, + 9.257825091481209, + 8.069481700658798, + 8.526642341166735, + 8.483856916427612, + 8.05011298507452, + 8.631686214357615, + 9.346241131424904, + 7.232883013784885, + 9.067848790436983, + 7.762065157294273, + 8.924901951104403, + 7.800305262207985, + 9.511054027825594, + 8.813952095806599, + 7.292632013559341, + 8.44788970425725, + 7.3145851492881775, + 8.110527880489826, + 7.417943794280291, + 8.078799117356539, + 7.527472916990519, + 6.964037194848061, + 8.898639120161533, + 9.081468917429447, + 7.256560958921909, + 8.409012109041214, + 9.239391423761845, + 9.44010866805911, + 8.122814353555441, + 9.5803989097476, + 7.840062025934458, + 7.190458010882139, + 9.574887808412313, + 9.50573105365038, + 6.809893064200878, + 7.232445757836103, + 7.291480898857117, + 7.12530454620719, + 7.323308847844601, + 6.7771850153803825, + 7.317559793591499, + 8.628529962152243, + 7.215084973722696, + 8.674819022417068, + 9.556040167808533, + 7.964896969497204, + 9.740469977259636, + 9.39886411651969, + 9.561251848936081, + 7.664230652153492, + 7.246885914355516, + 8.968452922999859, + 8.789370767772198, + 6.927811075001955, + 8.408421650528908, + 8.261693175882101, + 7.971774321049452, + 9.389657992869616, + 7.494102697819471, + 7.472656201571226, + 7.510039024055004, + 8.85126180946827, + 8.184812031686306, + 8.238635957241058, + 7.32163293287158, + 8.616260252892971, + 7.34917214140296, + 9.099414572119713, + 8.310830220580101, + 8.194501977413893, + 7.53715168684721, + 9.384251199662685, + 9.126234333962202, + 9.013854898512363, + 9.135543368756771, + 8.872873149812222, + 8.464933838695288, + 7.232055999338627, + 9.338716976344585, + 8.834149222820997, + 9.6366829238832, + 9.771946351975203, + 7.439044304192066, + 8.831036277115345, + 7.370087318122387, + 9.21520497649908, + 6.667065899819136, + 7.128976285457611, + 10.263582225888968, + 8.133073337376118, + 10.393348056823015, + 7.801093626767397, + 7.271378301084042, + 8.293156046420336, + 9.311552159488201, + 9.837029036134481, + 7.578205782920122, + 9.535943157970905, + 6.510594859719276, + 9.341742843389511, + 9.15962876752019, + 9.52234584838152, + 9.107020683586597, + 8.78605106845498, + 9.357809089124203, + 9.831282310187817, + 6.295448634773493, + 7.747717201709747, + 8.680859114974737, + 7.948416750878096, + 9.422441944479942, + 7.345576770603657, + 8.811754640191793, + 8.639846928417683, + 8.177908137440681, + 8.944469969719648, + 8.089229930192232, + 7.210686337202787, + 8.659786079078913, + 6.970225367695093, + 7.956671994179487, + 8.073097094893456, + 9.558940771967173, + 9.585123974829912, + 7.014104165136814, + 8.773657958954573, + 8.0080172047019, + 8.47440492361784, + 9.637525770813227, + 9.112534113228321 + ], + "library": [ + 7.325143087655306, + 10.022842790931463, + 9.113883133977652, + 9.877611882984638, + 10.047763120383024, + 8.057079743593931, + 9.432986378669739, + 7.116684224456549, + 6.675456650555134, + 9.334550704807043, + 7.538167294114828, + 7.580751087516546, + 7.3934998363256454, + 7.763260044157505, + 7.719677872955799, + 10.552843101322651, + 7.205428089946508, + 9.353748057037592, + 9.649565443396568, + 7.349181920289993, + 8.106425870209932, + 6.935842800885439, + 7.888733875006437, + 9.242999833077192, + 9.211788885295391, + 9.626334998756647, + 8.316808845847845, + 7.638392969965935, + 8.107344154268503, + 9.222623892128468, + 8.668814785778522, + 7.29695986956358, + 8.951263967901468, + 9.998111054301262, + 9.128780104219913, + 7.759080734103918, + 6.789683364331722, + 8.655824232846498, + 9.5644760876894, + 7.5687202624976635, + 8.744746912270784, + 9.137863758951426, + 9.894938673824072, + 9.320133365690708, + 8.270333055406809, + 7.93931121006608, + 8.064161986112595, + 9.19158710166812, + 8.562788367271423, + 9.142004884779453, + 7.686246186494827, + 8.14723502844572, + 10.033407248556614, + 6.783369928598404, + 9.71149979159236, + 7.994027808308601, + 9.479458909481764, + 8.949706796556711, + 7.06468103453517, + 9.127108845859766, + 9.294411167502403, + 9.07236896455288, + 9.396402165293694, + 8.99449409916997, + 6.797201931476593, + 7.487746886909008, + 7.712002843618393, + 8.117515128105879, + 7.826945744454861, + 7.43440818041563, + 9.519931394606829, + 6.7665958777070045, + 8.935187011957169, + 9.546719957143068, + 6.9626313634216785, + 7.595399860292673, + 7.1207392029464245, + 9.699109010398388, + 7.1266270242631435, + 7.246450986713171, + 9.138065855950117, + 7.323181256651878, + 9.247417096048594, + 9.331777226179838, + 8.352269884198904, + 7.994716987013817, + 7.44890421628952, + 9.034913964569569, + 9.174308739602566, + 7.614564150571823, + 8.468376938253641, + 7.08145834505558, + 9.168210905045271, + 7.262744940817356, + 8.135984186083078, + 7.431071251630783, + 9.362148120999336, + 6.93201320245862, + 8.384963031858206, + 9.51329618692398, + 8.598304353654385, + 8.756070863455534, + 8.19322606548667, + 7.751152850687504, + 9.47504211217165, + 7.952554617077112, + 6.565186660736799, + 8.442338090389967, + 6.677328143268824, + 7.86585733294487, + 8.055074606090784, + 7.75145972147584, + 9.133115876466036, + 9.30669205263257, + 9.605981409549713, + 7.708720862865448, + 8.715465664863586, + 6.805097218602896, + 9.899375028908253, + 7.897029165178537, + 7.732177153229713, + 7.356544956564903, + 7.2489771991968155, + 8.07167636230588, + 9.035391267389059, + 6.5990290604531765, + 7.676948327571154, + 8.659262210130692, + 9.908539708703756, + 8.55419784784317, + 9.026241954416037, + 8.581573143601418, + 7.055665832012892, + 9.738259948790073, + 7.368073798716068, + 8.666204288601875, + 8.350850082933903, + 9.886364918202162, + 8.849676698446274, + 8.0633033066988, + 8.279173169285059, + 9.157409891486168, + 8.642966859042645, + 8.958166930824518, + 7.3592751286923885, + 7.408550940454006, + 8.425289299339056, + 7.550633978098631, + 7.858960889279842, + 8.18421971052885, + 8.505265228450298, + 7.272558286786079, + 8.962384890764952, + 6.8209427408874035, + 6.85173412784934, + 8.357039652764797, + 9.481526911258698, + 9.183614980429411, + 6.715624127537012, + 7.531169336289167, + 8.657720871269703, + 9.748940356075764, + 9.146739263087511, + 9.58063779398799, + 7.417710032314062, + 8.376910351216793, + 8.963536005467176, + 7.488024886697531, + 8.225035853683949, + 7.080872543156147, + 8.636481128633022, + 7.48812360689044, + 8.516049012541771, + 8.683335036039352, + 9.43732913583517, + 8.383134845644236, + 8.791889995336533, + 9.024114347994328, + 7.238829042762518, + 9.456279687583447, + 8.05627228692174, + 9.09342523664236, + 7.48035591095686, + 8.68653692305088, + 6.593405734747648, + 7.507950998842716, + 9.211453143507242, + 7.51700671389699, + 7.589705754071474, + 7.368077989667654, + 8.235436864197254, + 9.979543276131153, + 6.8883029744029045, + 8.352770004421473, + 6.715988274663687, + 7.256609853357077, + 10.010849684476852, + 8.82305996492505, + 7.568101864308119, + 8.920556865632534, + 7.958596106618643, + 6.611422635614872, + 6.727386731654406, + 9.084735997021198, + 9.419200010597706, + 8.926734328269958, + 8.853404317051172, + 8.258569054305553, + 9.445558302104473, + 7.331404834985733, + 9.340294636785984, + 8.587536867707968, + 7.349005900323391, + 7.766516413539648, + 8.94449232146144, + 7.44058471173048, + 6.663220934569836, + 7.819551043212414, + 8.21573892608285, + 8.596562780439854, + 7.947300095111132, + 8.192663080990314, + 8.331735152751207, + 9.738726075738668, + 8.542925585061312, + 7.810839917510748, + 7.312315050512552, + 8.97187925875187, + 7.423600647598505, + 6.835559383034706, + 6.83111697435379, + 7.414772175252438, + 8.863285183906555, + 8.559232112020254, + 8.158811368048191, + 8.642298635095358, + 9.568723849952221, + 6.745569407939911, + 9.440310765057802, + 8.874086197465658, + 9.37688210979104, + 8.331202901899815, + 7.173678837716579, + 8.113804273307323, + 8.670913055539131, + 7.459578104317188, + 8.40301625430584, + 8.447671309113503, + 8.50483076646924, + 8.160366211086512, + 9.573468007147312, + 10.164388921111822, + 7.733115926384926, + 9.063628036528826, + 6.588437128812075, + 7.224028930068016, + 7.000339683145285, + 7.578810211271048, + 7.422122173011303, + 8.963450323790312, + 9.422340895980597, + 9.737314190715551, + 6.532533094286919, + 9.85091831535101, + 7.168034091591835, + 8.275649975985289, + 7.430647034198046, + 7.589332293719053, + 8.13014293089509, + 7.37652275711298, + 7.2531369514763355, + 9.871760848909616, + 8.608717937022448, + 9.944307617843151, + 7.612657733261585, + 9.605125058442354, + 7.416399661451578, + 6.7642913199961185, + 8.291989099234343, + 7.685378193855286, + 7.702875882387161, + 9.4421305693686, + 7.821960840374231, + 6.896777078509331, + 9.661183226853609, + 9.028581902384758, + 9.287253022193909, + 8.37804190814495, + 7.858770899474621, + 7.144779898226261, + 8.446644991636276, + 8.65673366934061, + 8.959425147622824, + 7.7320272102952, + 10.00529108569026, + 7.578408811241388, + 8.607693016529083, + 9.012166876345873, + 8.32011504098773, + 7.2902049869298935, + 9.33748809620738, + 9.451855905354023, + 7.698198780417442, + 10.089564137160778, + 7.469366770237684, + 7.428070995956659, + 8.96791135892272, + 8.446414954960346, + 9.579603094607592, + 7.32310488820076, + 6.643245927989483, + 8.050008676946163, + 9.57094645127654, + 9.497099090367556, + 8.100092876702547, + 6.8197897635400295, + 7.672087289392948, + 9.369472973048687, + 8.367583155632019, + 8.071809075772762, + 8.510699030011892, + 6.952372845262289, + 9.959093760699034, + 7.513322867453098, + 7.353419903665781, + 9.477036539465189, + 8.629514835774899, + 9.048410691320896, + 7.103495299816132, + 7.256843615323305, + 7.242809981107712, + 7.657425012439489, + 7.038061041384935, + 7.335625123232603, + 8.155515883117914, + 9.828239679336548, + 6.566014140844345, + 7.644337601959705, + 9.948553051799536, + 7.534550968557596, + 7.359113078564405, + 8.895557839423418, + 7.411487866193056, + 10.01878920942545, + 6.8879807367920876, + 8.384461048990488, + 9.249277878552675, + 9.694708045572042, + 8.495233952999115, + 6.671060808002949, + 7.5449952855706215, + 10.436208918690681, + 8.082336280494928, + 10.13955008238554, + 7.845947984606028, + 8.764819242060184, + 7.766297087073326, + 7.353600114583969, + 7.836525794118643, + 8.781364653259516, + 7.716840133070946, + 9.05775697901845, + 9.42163122817874, + 9.255315642803907, + 6.977187003940344, + 8.233014959841967, + 7.451036013662815, + 8.682101964950562, + 9.649239014834166, + 9.594472590833902, + 7.14733824133873, + 7.401267997920513, + 9.348547086119652, + 8.247536141425371, + 7.956842891871929, + 7.6340576633811, + 7.061433978378773, + 8.831521961838007, + 8.559368085116148, + 8.349097799509764, + 7.178337313234806, + 7.413155864924192, + 9.078117087483406, + 7.15271383523941, + 8.472426794469357, + 9.3319620937109, + 9.895197115838528, + 7.744446862488985, + 8.329564239829779, + 9.346574079245329, + 8.931707125157118, + 8.334178943186998, + 7.434675935655832, + 7.624872960150242, + 6.712709087878466, + 9.277654346078634, + 8.184093981981277, + 7.596550043672323, + 8.438370656222105, + 7.272927090525627 + ] + }, + "warm_ms": { + "control": [ + 38.84439775720239, + 30.91458324342966, + 31.63180034607649 + ], + "exact": [ + 20.573497749865055, + 11.606328655034304, + 12.99058273434639 + ], + "lattice": [ + 10.556645691394806, + 7.269862107932568, + 7.742453832179308 + ], + "library": [ + 7.75555893778801, + 7.740960922092199, + 8.877569809556007 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 32.33814728446305, + "p10_ms": 27.90539152920246, + "p90_ms": 37.95893848873675, + "min_ms": 25.428043212741613, + "max_ms": 47.34805412590504, + "mean_ms": 32.65377249685116 + }, + "exact": { + "n": 400, + "median_ms": 13.429776765406132, + "p10_ms": 11.203109147027135, + "p90_ms": 15.674196975305678, + "min_ms": 9.894730057567358, + "max_ms": 19.69045028090477, + "mean_ms": 13.517864083405584 + }, + "lattice": { + "n": 400, + "median_ms": 8.256649365648627, + "p10_ms": 7.140999287366867, + "p90_ms": 9.511981625109911, + "min_ms": 6.295448634773493, + "max_ms": 10.425962042063475, + "mean_ms": 8.288758082780987 + }, + "library": { + "n": 400, + "median_ms": 8.272991515696049, + "p10_ms": 7.06435632891953, + "p90_ms": 9.579706564545631, + "min_ms": 6.532533094286919, + "max_ms": 10.552843101322651, + "mean_ms": 8.28981786267832 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 3.9166186975317467, + "ci90_low": 3.843300543439003, + "ci90_high": 3.9750612376904697, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 2.407943769233986, + "ci90_low": 2.3573416147028947, + "ci90_high": 2.445326392313259, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.626540763772777, + "ci90_low": 1.5976864830298376, + "ci90_high": 1.6628446480134231, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 1.0019792714118891, + "ci90_low": 0.9809851973342314, + "ci90_high": 1.0201956175400582, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 3.908881959217418, + "ci90_low": 3.832871164235252, + "ci90_high": 3.9882223510668777, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 3.910736233483032, + "p10": 3.584576739516341, + "p90": 4.2157238774125245 + }, + "minimum_detectable_improvement": 0.3108881554375424, + "compile": { + "control": { + "lower_s": 21.18099824897945, + "compile_s": 16.280854454729706, + "first_call_s": 0.03482900792732835, + "trace_calls": 12, + "step0_rows": [ + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507 + ], + "flops": 131379264.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 91542488, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2333749248, + "rss_after_compile_bytes": 2395504640, + "rss_delta_bytes": 61755392, + "hlo_sha256": "e11d3b25cd6c2009", + "hlo_lines": 44308, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 19.690499256830662, + "compile_s": 19.361028019804507, + "first_call_s": 0.016365036834031343, + "trace_calls": 12, + "step0_rows": [ + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085 + ], + "flops": 46672180.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 40756248, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2380824576, + "rss_after_compile_bytes": 2396672000, + "rss_delta_bytes": 15847424, + "hlo_sha256": "3e9ba656292f28bb", + "hlo_lines": 43968, + "hlo_large_constants": 24 + }, + "lattice": { + "lower_s": 20.76231874478981, + "compile_s": 18.640707737766206, + "first_call_s": 0.00905666034668684, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 30334988.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22628376, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2387234816, + "rss_after_compile_bytes": 2406486016, + "rss_delta_bytes": 19251200, + "hlo_sha256": "4e15410cfb383542", + "hlo_lines": 43968, + "hlo_large_constants": 24 + }, + "library": { + "lower_s": 21.834011438768357, + "compile_s": 18.965103200171143, + "first_call_s": 0.010559391230344772, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 30334988.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22628376, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2401251328, + "rss_after_compile_bytes": 2416717824, + "rss_delta_bytes": 15466496, + "hlo_sha256": "ef32b0adc8a70ad9", + "hlo_lines": 43968, + "hlo_large_constants": 24 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 23.965075083393216, + -743.7107061665998, + 3.3433302917272147, + -489.755628041605, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160913, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ], + "exact": [ + 23.965075083393216, + -743.7107061665998, + 3.3433302917272147, + -489.755628041605, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160913, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ], + "lattice": [ + 23.965075083393216, + -743.7107061665998, + 3.3433302917272147, + -489.755628041605, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160913, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ], + "library": [ + 23.965075083393216, + -743.7107061665998, + 3.3433302917272147, + -489.755628041605, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160913, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 23.965075083393216, + "exact": 23.965075083393216, + "lattice": 23.965075083393216, + "library": 23.965075083393216 + } + } + }, + "gates": { + "simple_solved_positions": { + "n_instances": 3, + "compile": { + "control": { + "lower_s": 1.11228760285303, + "compile_s": 1.4254655009135604, + "first_call_s": 0.005367897916585207, + "trace_calls": 1, + "step0_rows": [ + 69849 + ], + "flops": 6740729.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 4692440, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 834965504, + "rss_after_compile_bytes": 839864320, + "rss_delta_bytes": 4898816, + "hlo_sha256": "bec6f7d3e44c2137", + "hlo_lines": 12604, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 1.0184925412759185, + "compile_s": 1.425736450124532, + "first_call_s": 0.003077533096075058, + "trace_calls": 1, + "step0_rows": [ + 28665 + ], + "flops": 3719672.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1774872, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 839897088, + "rss_after_compile_bytes": 843386880, + "rss_delta_bytes": 3489792, + "hlo_sha256": "4e6320341d59c716", + "hlo_lines": 12527, + "hlo_large_constants": 4 + }, + "lattice": { + "lower_s": 1.067945186048746, + "compile_s": 1.4527371199801564, + "first_call_s": 0.002762450836598873, + "trace_calls": 1, + "step0_rows": [ + 11859 + ], + "flops": 3047432.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1688408, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 842190848, + "rss_after_compile_bytes": 844824576, + "rss_delta_bytes": 2633728, + "hlo_sha256": "dbbe3f2b2173f36b", + "hlo_lines": 12527, + "hlo_large_constants": 4 + }, + "library": { + "lower_s": 1.0753528410568833, + "compile_s": 1.4467741390690207, + "first_call_s": 0.00300795491784811, + "trace_calls": 1, + "step0_rows": [ + 11859 + ], + "flops": 3047432.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1688408, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 843640832, + "rss_after_compile_bytes": 844857344, + "rss_delta_bytes": 1216512, + "hlo_sha256": "dbbe3f2b2173f36b", + "hlo_lines": 12527, + "hlo_large_constants": 4 + } + }, + "positions": { + "control": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "exact": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "lattice": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "library": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ] + }, + "finite_positions": { + "control": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "exact": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "lattice": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "library": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_lattice": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_library": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + } + } + }, + "simple_solved_grad": { + "n_instances": 3, + "rtol": 1e-10, + "atol": 1e-12, + "compile": { + "control": { + "lower_s": 3.3836163859814405, + "compile_s": 4.356501406989992, + "first_call_s": 0.00666721211746335, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 9401708.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 4703192, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 842489856, + "rss_after_compile_bytes": 884224000, + "rss_delta_bytes": 41734144, + "hlo_sha256": "3facab75f77604a2", + "hlo_lines": 43547, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 3.340018456801772, + "compile_s": 4.561987028922886, + "first_call_s": 0.005088801961392164, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 6101255.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 2074008, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 930861056, + "rss_after_compile_bytes": 969101312, + "rss_delta_bytes": 38240256, + "hlo_sha256": "3cfed2175f0de052", + "hlo_lines": 43460, + "hlo_large_constants": 4 + }, + "lattice": { + "lower_s": 3.2707453477196395, + "compile_s": 4.631169021129608, + "first_call_s": 0.004151855129748583, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 5429015.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 2073880, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 966291456, + "rss_after_compile_bytes": 976228352, + "rss_delta_bytes": 9936896, + "hlo_sha256": "eb1b781946095fde", + "hlo_lines": 43460, + "hlo_large_constants": 4 + }, + "library": { + "lower_s": 3.320767584256828, + "compile_s": 4.670416459906846, + "first_call_s": 0.004249660763889551, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 5429015.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 2073880, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 972726272, + "rss_after_compile_bytes": 977235968, + "rss_delta_bytes": 4509696, + "hlo_sha256": "eb1b781946095fde", + "hlo_lines": 43460, + "hlo_large_constants": 4 + } + }, + "all_finite": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "any_nonzero_per_instance": { + "control": [ + true, + true, + true + ], + "exact": [ + true, + true, + true + ], + "lattice": [ + true, + true, + true + ], + "library": [ + true, + true, + true + ] + }, + "gradients": { + "control": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503596, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805018, + 74.32499719544126, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.00032350585126, + -1560.549091923857 + ] + ], + "exact": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503596, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805018, + 74.32499719544126, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.00032350585126, + -1560.549091923857 + ] + ], + "lattice": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503596, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805018, + 74.32499719544126, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.00032350585126, + -1560.549091923857 + ] + ], + "library": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503596, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805018, + 74.32499719544126, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.00032350585126, + -1560.549091923857 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + } + } + }, + "simple_solved_vmap4": { + "vmap_vs_scalar_within_route": { + "control": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + } + }, + "across_routes": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + } + }, + "simple_plain_step0_containing": { + "n_instances": 3, + "sets": { + "control": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "exact": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "lattice": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "library": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "identical": true + }, + "control_vs_lattice": { + "identical": true + }, + "control_vs_library": { + "identical": true + } + } + }, + "cluster_solved_positions": { + "n_instances": 3, + "compile": { + "control": { + "lower_s": 5.113248030189425, + "compile_s": 6.210569798946381, + "first_call_s": 0.028692342806607485, + "trace_calls": 2, + "step0_rows": [ + 276507, + 276507 + ], + "flops": 131342760.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 91879064, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2409140224, + "rss_after_compile_bytes": 2405711872, + "rss_delta_bytes": -3428352, + "hlo_sha256": "be26335ff62d9637", + "hlo_lines": 40575, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 5.137884960044175, + "compile_s": 6.852900054305792, + "first_call_s": 0.017869102768599987, + "trace_calls": 2, + "step0_rows": [ + 110085, + 110085 + ], + "flops": 46635440.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 40762584, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2385825792, + "rss_after_compile_bytes": 2364559360, + "rss_delta_bytes": -21266432, + "hlo_sha256": "9f7ed03f58e9b3d2", + "hlo_lines": 40235, + "hlo_large_constants": 24 + }, + "lattice": { + "lower_s": 5.123257901985198, + "compile_s": 6.77735595498234, + "first_call_s": 0.011745371855795383, + "trace_calls": 2, + "step0_rows": [ + 46516, + 46516 + ], + "flops": 30298244.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 22635608, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2351239168, + "rss_after_compile_bytes": 2349867008, + "rss_delta_bytes": -1372160, + "hlo_sha256": "a42a2f9cf79e2394", + "hlo_lines": 40235, + "hlo_large_constants": 24 + }, + "library": { + "lower_s": 5.350827092304826, + "compile_s": 6.843558246735483, + "first_call_s": 0.00940707279369235, + "trace_calls": 2, + "step0_rows": [ + 46516, + 46516 + ], + "flops": 30298244.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 22635608, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2341801984, + "rss_after_compile_bytes": 2341478400, + "rss_delta_bytes": -323584, + "hlo_sha256": "a42a2f9cf79e2394", + "hlo_lines": 40235, + "hlo_large_constants": 24 + } + }, + "positions": { + "control": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "exact": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "lattice": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "library": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ] + }, + "finite_positions": { + "control": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "exact": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "lattice": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "library": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_lattice": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_library": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + } + } + } + }, + "wall_s": 605.9036651989445 +} \ No newline at end of file diff --git a/results/breakdown/point_source/static_lattice_ab_constant_folding_hpc_ral_cpu_fp64.png b/results/breakdown/point_source/static_lattice_ab_constant_folding_hpc_ral_cpu_fp64.png new file mode 100644 index 0000000000000000000000000000000000000000..10f1892c2cbb8665acb6ea29bd66abedaff2854f GIT binary patch literal 128737 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
1mNA&ZFt63F2I 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 f64[] {\n %constant_1_0 = f64[1000]{0} constant({...})\n ROOT %input_reduce_fusion = f64[] fusion(%constant_1_0), kind=kInput, calls=%fused_reduce, metadata={op_name=\"jit()/dot_general\" stack_frame_id=3}\n}\n\n", + "agrees_with_request": true + } + }, + "library_versions": { + "autolens": "2026.8.17.1", + "autoarray": "2026.8.17.1", + "autofit": "2026.8.17.1" + }, + "package_versions": { + "jax": "0.10.2", + "jaxlib": "0.10.2" + }, + "source_revisions": { + "autolens_profiling": "3da2583d46b80f72793caf11a16433ca05f00d20", + "PyAutoNerves": "1fa613aa8d89a79613009fb66f5b4e2d21deb57a", + "PyAutoFit": "a736840127be7a3c21e15a5c945e94d8f1082983", + "PyAutoArray": "ad0bf97b45d572effa5d428a101d32ac4893b950", + "PyAutoGalaxy": "70a61e26cd715cefe7012a38285698091246a8a4", + "PyAutoLens": "b346b6a0a092098f23964e274edb220ea9757ad0" + }, + "autoarray_imported_from": "/mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_point-source-cpu-p3", + "autolens_imported_from": "/mnt/ral/jnightin/autolens_profiling_wt/PyAutoLens_point-source-cpu-p3", + "target": "autolens.point.solver.shape_solver.AbstractSolver._initial_triangles", + "route_bodies": { + "control": { + "name": "_control_initial_triangles", + "body": "def _control_initial_triangles(self, xp):\n \"\"\"The phase-2 main path: the flat (3N, 2) per-triangle table, no table attached.\"\"\"\n return _coordinate_array.CoordinateArrayTriangles.for_limits_and_scale(\n y_min=self.y_min, y_max=self.y_max, x_min=self.x_min, x_max=self.x_max, scale=self.scale\n )\n", + "bytecode_sha256": "decd881cb4e376c8" + }, + "table_factory": { + "name": "_table_initial_triangles", + "body": "def _table_initial_triangles(kind):\n def initial_triangles(self, xp):\n tables = _cell_tables(*_geometry(self))\n return _TableTriangles(\n coordinates=jnp.array(tables[\"coordinates\"]),\n side_length=self.scale,\n table=tables[kind],\n )\n\n initial_triangles.__name__ = f\"_{kind}_initial_triangles\"\n return initial_triangles\n", + "bytecode_sha256": "4792d616de56e496" + }, + "tables": { + "name": "_cell_tables", + "body": "@functools.lru_cache(maxsize=16)\ndef _cell_tables(y_min, y_max, x_min, x_max, scale) -> dict:\n \"\"\"``{\"exact\": (V, I), \"lattice\": (V, I), \"coordinates\": C}`` for one geometry.\"\"\"\n t0 = time.perf_counter()\n coordinates = _lattice_coordinates(y_min, y_max, x_min, x_max, scale)\n flip = np.where((coordinates[:, 0] + coordinates[:, 1]) % 2 != 0, -1, 1)[:, None]\n scaling = np.array([0.5 * scale, HEIGHT_FACTOR * scale])\n centres = scaling * coordinates + np.array([0.0, 0.0])\n triangles = np.stack(\n (\n centres + flip * np.array([0.0, 0.5 * scale * HEIGHT_FACTOR]),\n centres + flip * np.array([0.5 * scale, -0.5 * scale * HEIGHT_FACTOR]),\n centres + flip * np.array([-0.5 * scale, -0.5 * scale * HEIGHT_FACTOR]),\n ),\n axis=1,\n )\n flat = triangles.reshape(-1, 2)\n\n exact_vertices, exact_inverse = np.unique(flat, axis=0, return_inverse=True)\n\n offsets = np.array([[0, 1], [1, -1], [-1, -1]])\n keys = np.stack(\n (\n coordinates[:, None, 0] + flip * offsets[None, :, 0],\n 2 * coordinates[:, None, 1] + flip * offsets[None, :, 1],\n ),\n axis=-1,\n ).reshape(-1, 2)\n _, first, lattice_inverse = np.unique(keys, axis=0, return_index=True, return_inverse=True)\n\n tables = {\n \"coordinates\": coordinates,\n \"exact\": (exact_vertices, exact_inverse.reshape(-1, 3)),\n \"lattice\": (flat[first].copy(), lattice_inverse.reshape(-1, 3)),\n }\n _TABLE_BUILD_S[(y_min, y_max, x_min, x_max, scale)] = time.perf_counter() - t0\n return tables\n", + "bytecode_sha256": "3b7bdf752e1994f7" + }, + "table_triangles": { + "body": "class _TableTriangles(_coordinate_array.CoordinateArrayTriangles):\n \"\"\"The library lattice with a cell-supplied ``(vertices, indices)`` table.\n\n Only ``_vertices_and_indices`` changes; every derived lattice is built as the base\n class by the library's own methods, so steps >= 1 are untouched.\n \"\"\"\n\n def __init__(self, coordinates, side_length, table):\n super().__init__(coordinates=coordinates, side_length=side_length)\n self._cell_table = table\n\n @property\n def _vertices_and_indices(self):\n vertices, indices = self._cell_table\n return jnp.asarray(vertices), jnp.asarray(indices)\n", + "bytecode_sha256": "6308d3338aa3791a" + } + }, + "body_provenance_captured": "import time", + "expected_step0_rows": { + "simple": { + "geometry": [ + -9.9, + 9.9, + -9.9, + 9.9, + 0.2 + ], + "n_triangles": 23283, + "rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + } + }, + "cluster": { + "geometry": [ + -69.64999999999999, + 69.64999999999999, + -69.64999999999999, + 69.64999999999999, + 0.7 + ], + "n_triangles": 92169, + "rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + } + } + }, + "tables": { + "simple": { + "cell_build_ms": 185.3060140274465, + "cell_cache_hit_us": 0.6495974957942963, + "exact_table_mb": 1.017432, + "lattice_table_mb": 0.748536, + "library_static_vertex_table": { + "build_ms": 47.864540945738554, + "cache_hit_us": 1.9799917936325073, + "rows": 11859, + "mb": 0.748536, + "equals_cell_lattice_table": true + } + }, + "cluster": { + "cell_build_ms": 561.3286113366485, + "cell_cache_hit_us": 0.6100162863731384, + "exact_table_mb": 3.973416, + "lattice_table_mb": 2.956312, + "library_static_vertex_table": { + "build_ms": 277.69159572198987, + "cache_hit_us": 2.670101821422577, + "rows": 46516, + "mb": 2.956312, + "equals_cell_lattice_table": true + } + } + }, + "device": { + "backend": "gpu", + "device": "cuda:0", + "hostname": "euclid-ral-gpu-1", + "xla_flags": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "omp_num_threads": "1", + "cpu_count": 124, + "jax_compilation_cache_dir": null, + "autotune_cache_entries_at_start": 0, + "cache_fresh": false, + "nvidia_smi": "NVIDIA A100 80GB PCIe, 549 MiB, 81920 MiB" + }, + "jax_devices": [ + "cuda:0" + ], + "machine": { + "cpu_model": "AMD EPYC 7702 64-Core Processor", + "cpu_count_os": 124, + "nproc": 1, + "nproc_all": 124, + "nproc_note": "GNU nproc honours OMP_NUM_THREADS, so `nproc` can print 1 on a multi-core host; `nproc_all` is the core count.", + "ram_total": "928298232 kB", + "kernel": "5.14.0-687.39.1.el9_8.x86_64", + "platform": "Linux-5.14.0-687.39.1.el9_8.x86_64-x86_64-with-glibc2.34", + "python": "3.12.4", + "jax_thread_env": { + "NPROC": "8" + }, + "blas_thread_env": { + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1", + "VECLIB_MAXIMUM_THREADS": null, + "NUMEXPR_NUM_THREADS": null + }, + "thread_env_note": "NPROC sizes XLA's CPU intra-op pool (the JAX rows); the BLAS knobs pin OpenBLAS/MKL/OpenMP (the numpy/scipy rows) and do not touch JAX. Two disjoint families; both are recorded on every CPU timing.", + "gpu": "NVIDIA A100 80GB PCIe, 81920 MiB, 610.57.04" + }, + "thread_environment": { + "NPROC": "8", + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1" + }, + "xla_threads_observed_after_first_compile": { + "threads": 29, + "label": "simple_solved/control" + }, + "threads_at_end": 29, + "sched_affinity": 8, + "os_cpu_count": 124, + "xla_flags": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "jax_platforms": "cuda", + "jax_enable_x64": true, + "loadavg_start": [ + 0.34, + 0.08, + 0.03 + ], + "loadavg_end": [ + 1.26, + 1.36, + 1.03 + ], + "protocol": { + "routes": [ + "control", + "exact", + "lattice", + "library" + ], + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "n_stream": 16, + "n_gate_instances": 3, + "vmap_batch": 4, + "instance_seed": 568, + "instance_stream": "entry 0 = prior medians; rest = vector_from_unit_vector(U(0.25,0.75))", + "argument": "physical parameter vector; instance_from_vector(xp=jnp) inside the trace", + "cache_trap_guard": "fresh closure + fresh solver/analyses per route; jax.clear_caches()", + "bootstrap": { + "samples": 2000, + "seed": 12345, + "interval": "90%" + }, + "gates": { + "log_likelihood_rtol": 1e-12, + "positions_atol": 1e-10, + "grad_rtol": 1e-10, + "grad_atol": 1e-12, + "vmap_rtol": 1e-12, + "cluster": "log-likelihood and positions only (no cluster grad/vmap/step-0 sets)" + }, + "pytrees": "autofit.jax.register_model(model) for every model before any trace" + }, + "free_parameters": { + "simple_solved": 5, + "simple_plain": 8, + "cluster_solved": 13, + "cluster_plain": 17 + }, + "model_configuration": { + "simple": { + "dataset": "dataset/point_source/simple/point_dataset_positions_only.json", + "solver_grid_shape": [ + 100, + 100 + ], + "solver_grid_pixel_scale": 0.2, + "solver_pixel_scale_precision": 0.001, + "magnification_threshold": 0.1, + "likelihoods": { + "solved": "FitPositionsImagePairAllSolved", + "plain": "FitPositionsImagePairAll" + } + }, + "cluster": { + "dataset": "dataset/cluster/simple/point_datasets.csv", + "n_systems": 2, + "n_mass_profiles": 13, + "solver_grid_shape": [ + 200, + 200 + ], + "solver_grid_pixel_scale": 0.7, + "solver_pixel_scale_precision": 0.01, + "source_centres_from": "back-traced observed-image centroids (cluster cell step 1)", + "likelihoods": { + "solved": "FitPositionsImagePairRepeatSolved (summed over systems)", + "plain": "FitPositionsImagePairRepeat (summed over systems)" + } + } + }, + "library_label": { + "per_row": { + "simple_solved": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "simple_solved_vmap4": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "simple_plain": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "cluster_solved": { + "library_step0_rows": [ + 46516 + ], + "expected_rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [] + }, + "cluster_plain": { + "library_step0_rows": [ + 46516 + ], + "expected_rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [] + } + }, + "library_matches": "lattice" + }, + "library_matches": "lattice", + "all_gates_pass": true, + "gate_summary": { + "simple_solved.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_positions.control_vs_exact": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_positions.control_vs_lattice": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_positions.control_vs_library": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_grad.control_vs_exact": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_grad.control_vs_lattice": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_grad.control_vs_library": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.control": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.exact": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.lattice": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.library": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_plain_step0_containing.control_vs_exact": { + "pass": true + }, + "simple_plain_step0_containing.control_vs_lattice": { + "pass": true + }, + "simple_plain_step0_containing.control_vs_library": { + "pass": true + }, + "cluster_solved_positions.control_vs_exact": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "cluster_solved_positions.control_vs_lattice": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "cluster_solved_positions.control_vs_library": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + } + }, + "rows": { + "simple_solved": { + "label": "simple_solved", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 1.0476671159267426, + 1.4682421460747719, + 1.0016472078859806, + 0.9805490262806416, + 0.9618280455470085, + 0.9631682187318802, + 0.9608091786503792, + 0.96531817689538, + 0.9597679600119591, + 0.9808889590203762, + 0.9497180581092834, + 0.9504281915724277, + 0.982298981398344, + 0.9617777541279793, + 0.9545991197228432, + 0.9690588340163231, + 0.9624878875911236, + 0.9313281625509262, + 0.927790068089962, + 0.9616478346288204, + 1.0210070759057999, + 0.9705480188131332, + 0.8798702619969845, + 0.8415486663579941, + 0.8495012298226357, + 0.8380603976547718, + 0.8359909988939762, + 0.8399887010455132, + 0.8550891652703285, + 1.0392479598522186, + 0.8376399055123329, + 0.8368808776140213, + 0.8423603139817715, + 0.8429097943007946, + 0.8689998649060726, + 0.8350401185452938, + 0.8429600857198238, + 0.839530024677515, + 0.8392911404371262, + 0.8416301570832729, + 0.8557899855077267, + 0.8678697049617767, + 0.8400497026741505, + 0.8410201407968998, + 0.8424092084169388, + 0.8432501927018166, + 0.847098883241415, + 0.8542090654373169, + 0.8682310581207275, + 0.834398902952671, + 0.8384408429265022, + 0.845709815621376, + 0.8379509672522545, + 0.8552186191082001, + 0.8762888610363007, + 0.8337013423442841, + 0.8549196645617485, + 0.8396711200475693, + 0.9956182911992073, + 0.8767591789364815, + 0.8552600629627705, + 0.8386098779737949, + 0.8697099983692169, + 0.8469801396131516, + 0.840530265122652, + 0.8521103300154209, + 0.8528390899300575, + 0.8537899702787399, + 0.8795098401606083, + 0.8605397306382656, + 0.8651101961731911, + 0.8391700685024261, + 0.8387998677790165, + 0.8430792950093746, + 0.8625197224318981, + 0.8750800043344498, + 0.8488702587783337, + 0.846249982714653, + 0.8438699878752232, + 0.8464106358587742, + 0.8582607842981815, + 0.8403300307691097, + 0.8372911252081394, + 0.8386592380702496, + 0.8699288591742516, + 0.8597499690949917, + 0.8748588152229786, + 0.8404902182519436, + 0.8465098217129707, + 0.8485810831189156, + 0.8761598728597164, + 0.8454299531877041, + 0.8589201606810093, + 0.8506900630891323, + 0.838529784232378, + 0.8494989015161991, + 0.8792197331786156, + 0.8599599823355675, + 0.8607488125562668, + 0.8465196006000042, + 0.8756299503147602, + 0.8718287572264671, + 0.8405600674450397, + 0.9984681382775307, + 0.8411803282797337, + 0.8421409875154495, + 0.8688289672136307, + 0.8597690612077713, + 0.8418010547757149, + 0.8309800177812576, + 0.8357809856534004, + 0.8314596489071846, + 0.8306209929287434, + 0.8653099648654461, + 0.8338689804077148, + 0.8619301952421665, + 0.8485899306833744, + 0.8448110893368721, + 0.8333600126206875, + 0.8570491336286068, + 0.8466499857604504, + 0.8737202733755112, + 0.8594309911131859, + 0.8380389772355556, + 0.841901171952486, + 0.8394899778068066, + 0.8451910689473152, + 0.8414001204073429, + 0.8856686763465405, + 0.8409507572650909, + 0.8419901132583618, + 0.8383509702980518, + 0.8338801562786102, + 0.8435710333287716, + 0.8385800756514072, + 0.8712601847946644, + 0.8336412720382214, + 0.8596391417086124, + 0.8462900295853615, + 0.8463799022138119, + 0.8721989579498768, + 0.8518509566783905, + 0.8493592031300068, + 0.8526211604475975, + 0.8533699437975883, + 0.8567799814045429, + 0.876688864082098, + 0.8439989760518074, + 0.8451701141893864, + 0.8433088660240173, + 0.8413698524236679, + 0.8434699848294258, + 0.8820397779345512, + 0.842660665512085, + 0.8435188792645931, + 0.8442113175988197, + 0.8450299501419067, + 0.842641107738018, + 0.8841189555823803, + 0.8481689728796482, + 0.8494206704199314, + 0.8358699269592762, + 0.842600129544735, + 0.873778946697712, + 0.8400189690291882, + 0.8465899154543877, + 0.8377199992537498, + 0.8353511802852154, + 0.8406899869441986, + 0.8741999045014381, + 0.8591087535023689, + 0.8456096984446049, + 0.8384697139263153, + 0.8374401368200779, + 0.8380911312997341, + 0.8442401885986328, + 0.8736299350857735, + 1.0367576032876968, + 0.8432790637016296, + 0.8374108001589775, + 0.8942298591136932, + 0.8400101214647293, + 0.847959890961647, + 0.8381996303796768, + 0.8402089588344097, + 0.8528809994459152, + 0.8626789785921574, + 0.834478996694088, + 0.8333497680723667, + 0.8368291892111301, + 0.8473200723528862, + 0.8481899276375771, + 0.8796397596597672, + 0.8417302742600441, + 0.8481699042022228, + 0.8357912302017212, + 0.8350699208676815, + 0.8431309834122658, + 0.8750990964472294, + 0.8516600355505943, + 0.8478309027850628, + 0.8456790819764137, + 0.874049961566925, + 0.8367500267922878, + 0.8358601480722427, + 0.8332002907991409, + 0.8412487804889679, + 1.0133376345038414, + 0.8328701369464397, + 0.8421298116445541, + 0.8316608145833015, + 0.8522500284016132, + 0.853939913213253, + 0.8661490865051746, + 0.8607101626694202, + 0.8482099510729313, + 0.8388897404074669, + 0.8420003578066826, + 0.8334186859428883, + 0.877350103110075, + 0.8999388664960861, + 0.8470597676932812, + 0.8463989943265915, + 0.8467310108244419, + 0.8501601405441761, + 0.8806497789919376, + 0.8364194072782993, + 0.8476590737700462, + 0.8447198197245598, + 0.849700067192316, + 0.8452110923826694, + 0.8937288075685501, + 0.8578300476074219, + 0.8399398066103458, + 0.8390289731323719, + 0.8358401246368885, + 0.8622901514172554, + 0.8483203127980232, + 0.8633099496364594, + 0.8347388356924057, + 0.8379211649298668, + 0.8644890040159225, + 0.8615502156317234, + 0.8596093393862247, + 0.8517391979694366, + 0.8466304279863834, + 0.8636792190372944, + 0.8631497621536255, + 0.8639190346002579, + 0.8756797760725021, + 0.8499999530613422, + 0.837388914078474, + 0.8591902442276478, + 0.9022788144648075, + 0.8612899109721184, + 0.8574198000133038, + 0.8427388966083527, + 0.8594798855483532, + 0.8380901999771595, + 0.8830400183796883, + 0.8577201515436172, + 0.8449102751910686, + 0.8484688587486744, + 0.8749598637223244, + 0.8454998023808002, + 0.8424390107393265, + 0.8368007838726044, + 0.8400599472224712, + 0.8368310518562794, + 0.8659986779093742, + 0.8411412127315998, + 0.8435188792645931, + 0.8507203310728073, + 0.8429102599620819, + 0.8369991555809975, + 0.8724196814000607, + 0.863099005073309, + 0.8501503616571426, + 0.8476199582219124, + 0.848699826747179, + 0.8501610718667507, + 0.8384301327168941, + 0.8377097547054291, + 0.8304012008011341, + 0.869259238243103, + 0.8339309133589268, + 0.8498490788042545, + 0.8462900295853615, + 0.8448795415461063, + 0.8423691615462303, + 0.8713696151971817, + 0.8567902259528637, + 0.8436199277639389, + 0.8356198668479919, + 0.832119956612587, + 0.8326009847223759, + 0.8344100788235664, + 0.8638710714876652, + 0.8535492233932018, + 0.8256500586867332, + 1.0176380164921284, + 0.8807489648461342, + 0.8577313274145126, + 0.851679127663374, + 0.8518202230334282, + 0.8493401110172272, + 0.88072894141078, + 0.9566890075802803, + 0.8462299592792988, + 0.843539834022522, + 0.8452306501567364, + 0.8439188823103905, + 0.8703200146555901, + 0.8339299820363522, + 0.8644899353384972, + 0.8372198790311813, + 0.843570102006197, + 0.8353814482688904, + 0.874469056725502, + 0.8383109234273434, + 0.8377199992537498, + 0.8404301479458809, + 0.840428750962019, + 0.8429791778326035, + 0.840499997138977, + 0.876259058713913, + 0.8563296869397163, + 0.8425591513514519, + 0.842070672661066, + 0.8406401611864567, + 0.8408599533140659, + 0.8361199870705605, + 0.8652890101075172, + 0.8344007655978203, + 0.8372501470148563, + 0.8414802141487598, + 0.842629000544548, + 0.8436990901827812, + 0.8363607339560986, + 0.8721803314983845, + 0.9363177232444286, + 0.8315690793097019, + 0.8369800634682178, + 0.8718492463231087, + 0.8412408642470837, + 0.8403901010751724, + 0.8357609622180462, + 0.8317600004374981, + 0.8328096009790897, + 0.8933688513934612, + 0.8493592031300068, + 0.8419612422585487, + 0.8400990627706051, + 0.8339197374880314, + 0.8308491669595242, + 0.8399286307394505, + 0.870200339704752, + 0.8324799127876759, + 0.8508102037012577, + 0.8421102538704872, + 0.8605602197349072, + 0.840670894831419, + 0.8403589017689228, + 0.8387989364564419, + 0.8654198609292507, + 0.8402098901569843, + 0.8607101626694202, + 0.8427398279309273, + 0.8406508713960648, + 0.83960872143507, + 0.8808588609099388, + 0.8422299288213253, + 0.8643688634037971, + 0.8467710576951504, + 0.8419188670814037, + 0.8361991494894028, + 0.8477098308503628, + 0.8803000673651695, + 0.8352398872375488, + 0.8434602059423923, + 0.8428399451076984, + 0.8682301267981529, + 0.8386499248445034, + 0.8396306075155735, + 0.8428487926721573, + 0.8558798581361771, + 0.8504600264132023, + 0.8480297401547432, + 0.8661900646984577, + 0.8354703895747662, + 0.843120738863945, + 0.8327299728989601, + 0.8476898074150085, + 0.8425689302384853, + 0.8730902336537838, + 0.8570295758545399, + 0.8549103513360023, + 0.8440501987934113, + 0.8423891849815845, + 0.8423598483204842 + ], + "exact": [ + 1.7987876199185848, + 0.8996091783046722, + 0.9406902827322483, + 0.8887290023267269, + 0.8841496892273426, + 0.8822688832879066, + 0.8856290951371193, + 0.921378843486309, + 0.8829589933156967, + 0.8799200877547264, + 0.8756290189921856, + 0.8795186877250671, + 0.9130500257015228, + 0.8863992989063263, + 0.8834102191030979, + 0.8857687935233116, + 0.8926386944949627, + 0.9185997769236565, + 0.887939240783453, + 0.8875299245119095, + 0.9506191127002239, + 0.8865888230502605, + 0.8533704094588757, + 0.861200038343668, + 0.8583902381360531, + 0.8520688861608505, + 0.8583590388298035, + 0.8841403760015965, + 0.848009716719389, + 0.8782101795077324, + 0.8626789785921574, + 0.8532488718628883, + 0.85460115224123, + 0.8825687691569328, + 0.8582910522818565, + 0.8574589155614376, + 0.855080783367157, + 0.855589285492897, + 0.855639111250639, + 0.8851299062371254, + 0.9279400110244751, + 0.8338592015206814, + 0.8308910764753819, + 0.836540013551712, + 0.8280701003968716, + 0.8635600097477436, + 0.870229210704565, + 0.8323811925947666, + 0.8298088796436787, + 0.8325101807713509, + 0.8317790925502777, + 0.8351593278348446, + 0.8606696501374245, + 0.8560293354094028, + 0.8281907066702843, + 0.8976389653980732, + 0.8347309194505215, + 0.8313502185046673, + 0.8333902806043625, + 0.8681998588144779, + 0.8861199021339417, + 0.8360701613128185, + 0.8653509430587292, + 0.8528288453817368, + 0.846560113132, + 0.8472590707242489, + 0.8781887590885162, + 0.8368110284209251, + 0.8439891971647739, + 0.8430802263319492, + 0.8427291177213192, + 0.8431109599769115, + 0.8535399101674557, + 0.8636093698441982, + 0.8378606289625168, + 0.8469000458717346, + 0.8349311538040638, + 0.8402802050113678, + 0.8374610915780067, + 0.8868803270161152, + 0.8662892505526543, + 0.8393996395170689, + 0.8618212305009365, + 0.841550063341856, + 0.9171790443360806, + 0.8443989790976048, + 0.8453601039946079, + 0.837160274386406, + 0.8636191487312317, + 0.8378312923014164, + 0.8636298589408398, + 0.8343798108398914, + 0.8398988284170628, + 0.8499198593199253, + 0.8509200997650623, + 0.8737989701330662, + 0.847341027110815, + 0.8419896475970745, + 0.8439309895038605, + 0.8433503098785877, + 0.8470490574836731, + 0.8406313136219978, + 0.8434401825070381, + 0.8398904465138912, + 0.8734189905226231, + 0.849719624966383, + 0.8474811911582947, + 0.830360222607851, + 0.8401009254157543, + 0.8339299820363522, + 0.841149128973484, + 0.870599877089262, + 0.834478996694088, + 0.8449200540781021, + 0.8397698402404785, + 0.8377907797694206, + 0.836420338600874, + 0.8690892718732357, + 0.8481107652187347, + 0.8281399495899677, + 0.9504486806690693, + 0.8601387962698936, + 0.8356296457350254, + 0.8350210264325142, + 0.834370031952858, + 0.8340808562934399, + 0.8344696834683418, + 0.8700797334313393, + 0.8641392923891544, + 0.8357185870409012, + 0.834630336612463, + 0.8420892991125584, + 0.8350708521902561, + 0.8317702449858189, + 0.8724313229322433, + 0.8274889551103115, + 0.8587189950048923, + 0.8383099921047688, + 0.8456888608634472, + 0.8361600339412689, + 0.8408813737332821, + 0.8425898849964142, + 0.8463500998914242, + 0.84313889965415, + 0.8651097305119038, + 0.8339700289070606, + 0.8545299060642719, + 0.8364608511328697, + 0.8344287052750587, + 0.8299699984490871, + 0.8671293035149574, + 0.855098944157362, + 0.8619809523224831, + 0.8358201012015343, + 0.8326899260282516, + 0.831258948892355, + 0.831610057502985, + 0.8583688177168369, + 0.8332789875566959, + 0.8542910218238831, + 0.8393391035497189, + 0.8683111518621445, + 0.8337488397955894, + 0.8568889461457729, + 0.844969879835844, + 0.8440404199063778, + 0.8369907736778259, + 0.8658492006361485, + 0.8319900371134281, + 0.8431696332991123, + 0.8345497772097588, + 0.8395509794354439, + 0.8376603946089745, + 0.8553611114621162, + 0.8726692758500576, + 0.8370704017579556, + 0.8336612954735756, + 0.8282698690891266, + 0.8470308966934681, + 0.840499997138977, + 0.8401493541896343, + 0.8413507603108883, + 0.8392701856791973, + 0.8326908573508263, + 0.8413190953433514, + 0.8696010336279869, + 0.8345791138708591, + 0.8488898165524006, + 0.834890641272068, + 0.8319397456943989, + 0.8397409692406654, + 0.8693388663232327, + 0.8489210158586502, + 0.8380990475416183, + 0.8363001979887486, + 0.833490863442421, + 0.8292002603411674, + 0.836480874568224, + 0.8680489845573902, + 0.8320100605487823, + 0.8638990111649036, + 0.8352091535925865, + 0.8355900645256042, + 0.8646100759506226, + 0.8421801030635834, + 0.8688801899552345, + 0.8299397304654121, + 0.8423598483204842, + 0.8409288711845875, + 0.8361008949577808, + 0.8415901102125645, + 0.8719800971448421, + 0.8321600034832954, + 0.8490397594869137, + 0.8303811773657799, + 0.8379090577363968, + 0.8437498472630978, + 0.8722888305783272, + 0.8336310274899006, + 0.8431789465248585, + 0.8440213277935982, + 0.8339500054717064, + 0.8645001798868179, + 0.8659288287162781, + 0.8360892534255981, + 0.8392408490180969, + 0.8339900523424149, + 0.8375709876418114, + 0.8385702967643738, + 0.8694999851286411, + 0.8315099403262138, + 0.8546197786927223, + 0.8415598422288895, + 0.8390289731323719, + 0.8385800756514072, + 0.869428738951683, + 0.8249408565461636, + 0.8417502976953983, + 0.8327499963343143, + 0.8335406892001629, + 0.8381400257349014, + 0.8441787213087082, + 0.8382913656532764, + 0.8640503510832787, + 0.8474597707390785, + 0.8668387308716774, + 0.834380742162466, + 0.8377698250114918, + 0.838249921798706, + 0.8363709785044193, + 0.8355900645256042, + 0.8418806828558445, + 0.870048999786377, + 0.8411211892962456, + 0.8383691310882568, + 0.8405698463320732, + 0.8416110649704933, + 0.8376198820769787, + 1.001669093966484, + 0.8417600765824318, + 0.845590140670538, + 0.8672401309013367, + 0.8349288254976273, + 0.8359197527170181, + 0.8464297279715538, + 0.8399388752877712, + 0.8390601724386215, + 0.8667493239045143, + 0.8319597691297531, + 0.8389689028263092, + 0.8391300216317177, + 0.8411011658608913, + 0.842600129544735, + 0.8341511711478233, + 0.8602687157690525, + 0.8334210142493248, + 0.8508297614753246, + 0.847178976982832, + 0.8411114104092121, + 0.8645891211926937, + 0.9069778025150299, + 0.8352692238986492, + 0.8331900462508202, + 0.858549028635025, + 0.8500609546899796, + 0.8427901193499565, + 0.8376706391572952, + 0.8353288285434246, + 0.8359290659427643, + 0.8332603611052036, + 0.863139983266592, + 0.8277208544313908, + 0.8647898212075233, + 0.8387197740375996, + 0.8392403833568096, + 0.8360189385712147, + 0.8738497272133827, + 0.8325688540935516, + 0.8377810008823872, + 0.8360999636352062, + 0.8509699255228043, + 0.8345711976289749, + 0.8413400501012802, + 0.8318396285176277, + 0.8377907797694206, + 0.8611492812633514, + 0.8304808288812637, + 0.8339998312294483, + 0.829281285405159, + 0.8319900371134281, + 0.8297101594507694, + 0.8229711093008518, + 0.8680191822350025, + 0.8505508303642273, + 0.8404189720749855, + 0.8318610489368439, + 0.8299802429974079, + 0.8322102949023247, + 0.8388198912143707, + 0.8627087809145451, + 0.840640626847744, + 0.8392604067921638, + 0.8388110436499119, + 0.8402499370276928, + 0.8305497467517853, + 0.8692000992596149, + 0.8464292623102665, + 0.8586803451180458, + 0.8390289731323719, + 0.8406788110733032, + 0.8403598330914974, + 0.83487993106246, + 2.742217853665352, + 0.8841292001307011, + 0.9384099394083023, + 0.8447188884019852, + 0.8470788598060608, + 0.8420208469033241, + 0.9302888065576553, + 0.9282603859901428, + 0.8894889615476131, + 0.8422499522566795, + 0.8597290143370628, + 0.8471799083054066, + 0.8508502505719662, + 0.8462192490696907, + 0.879370141774416, + 0.8435500785708427, + 0.8471310138702393, + 0.8460995741188526, + 0.849548727273941, + 0.8467501029372215, + 0.8870693854987621, + 0.8449112065136433, + 0.8434397168457508, + 0.8472600020468235, + 0.8532889187335968, + 0.8498402312397957, + 0.8744900114834309, + 0.8360301144421101, + 0.9233597666025162, + 0.8432604372501373, + 0.8758190087974072, + 0.8380408398807049, + 0.8556596003472805, + 0.8447607979178429, + 0.8416101336479187, + 0.8407691493630409, + 0.8685700595378876, + 0.8677695877850056, + 0.8446001447737217, + 0.8426401764154434, + 0.8380110375583172, + 0.8442089892923832, + 0.8390690200030804, + 0.8664899505674839, + 0.8348403498530388, + 0.8545899763703346, + 0.8409293368458748, + 0.8418308570981026, + 0.8743796497583389, + 0.847929622977972, + 0.83124078810215, + 0.8382289670407772, + 0.8442699909210205, + 0.8449200540781021, + 0.8471999317407608, + 0.8767498657107353, + 0.8387700654566288, + 0.8557508699595928, + 0.8514788933098316, + 0.840160995721817, + 0.8455389179289341, + 0.8650491945445538, + 0.8440003730356693, + 0.8453498594462872, + 0.876610167324543, + 0.8666897192597389, + 0.8759591728448868, + 0.8452408947050571 + ], + "lattice": [ + 1.6254107467830181, + 0.8570891804993153, + 0.8618189021945, + 0.8749598637223244, + 0.8826293051242828, + 0.8477112278342247, + 0.8642086759209633, + 0.8496702648699284, + 0.8611688390374184, + 0.8675791323184967, + 0.8555199019610882, + 0.8830889128148556, + 0.8539310656487942, + 0.8652592077851295, + 0.8654599077999592, + 0.864759087562561, + 0.862359069287777, + 0.8920398540794849, + 1.0200669057667255, + 0.8691097609698772, + 0.9315679781138897, + 0.8510397747159004, + 0.848469790071249, + 0.8544200100004673, + 0.8619800209999084, + 0.880878884345293, + 0.8474206551909447, + 0.8505298756062984, + 0.848391093313694, + 0.8470900356769562, + 0.8496199734508991, + 0.8821398951113224, + 0.8480800315737724, + 0.8288896642625332, + 0.8233892731368542, + 0.8273799903690815, + 0.8248602971434593, + 0.827569980174303, + 0.8599301800131798, + 0.8314000442624092, + 0.8880994282662868, + 0.8340706117451191, + 0.8530900813639164, + 0.8297008462250233, + 0.8358904160559177, + 0.8256598375737667, + 0.8251611143350601, + 0.8645788766443729, + 0.8297208696603775, + 0.8452190086245537, + 0.8312300778925419, + 0.8406192064285278, + 0.8335988968610764, + 0.8286098018288612, + 0.8576088584959507, + 0.8288309909403324, + 0.8397288620471954, + 0.8272998966276646, + 0.8314293809235096, + 0.8267597295343876, + 0.9194188751280308, + 0.8379803039133549, + 0.8357199840247631, + 0.8308310061693192, + 0.8586798794567585, + 0.869259238243103, + 0.8289110846817493, + 0.8347397670149803, + 0.8410611189901829, + 0.8465093560516834, + 0.8389800786972046, + 0.8516600355505943, + 0.8677290752530098, + 0.836480874568224, + 0.8379891514778137, + 0.8278698660433292, + 0.8349590934813023, + 0.8383290842175484, + 0.8701109327375889, + 0.8332999423146248, + 0.8804290555417538, + 0.8530798368155956, + 0.828819815069437, + 0.8291900157928467, + 0.8399887010455132, + 0.8396911434829235, + 0.8299499750137329, + 0.8565699681639671, + 0.8262800984084606, + 0.8521489799022675, + 0.8305907249450684, + 0.831610057502985, + 0.8316407911479473, + 0.8356599137187004, + 0.880479346960783, + 0.8438108488917351, + 0.8721891790628433, + 0.8321506902575493, + 0.8322899229824543, + 0.839530024677515, + 0.8323099464178085, + 0.8383286185562611, + 0.8361111395061016, + 0.8417298085987568, + 0.8653691038489342, + 0.8233599364757538, + 0.8355197496712208, + 0.8288808166980743, + 0.8350401185452938, + 0.834721140563488, + 0.8640792220830917, + 0.8601387962698936, + 0.8360501378774643, + 0.8381200022995472, + 0.8300109766423702, + 0.8388701826334, + 0.83546107634902, + 0.834690872579813, + 0.8529988117516041, + 0.8314503356814384, + 0.8287699893116951, + 0.8445796556770802, + 0.8249511010944843, + 0.8191796950995922, + 0.82042021676898, + 0.81996014341712, + 0.8541611023247242, + 0.8541587740182877, + 0.8228900842368603, + 0.8330107666552067, + 0.8219401352107525, + 0.8284398354589939, + 0.8289790712296963, + 0.8316999301314354, + 0.8567692711949348, + 0.8272300474345684, + 0.8574402891099453, + 0.8328491821885109, + 0.8289497345685959, + 0.8360389620065689, + 0.8442699909210205, + 0.8307108655571938, + 0.8404403924942017, + 0.8578100241720676, + 0.8339802734553814, + 0.8533787913620472, + 0.8307211101055145, + 0.8322102949023247, + 0.83523103967309, + 0.8441298268735409, + 0.8619409054517746, + 0.8291890844702721, + 0.85078040137887, + 0.8298810571432114, + 0.8405502885580063, + 0.8312109857797623, + 0.8507901802659035, + 0.8564991876482964, + 0.8333791047334671, + 0.8483300916850567, + 0.864000990986824, + 0.8305101655423641, + 0.8522486314177513, + 0.8272300474345684, + 0.8331490680575371, + 0.8313003927469254, + 0.8563688024878502, + 0.8574509993195534, + 0.8349898271262646, + 0.8298098109662533, + 0.8389907889068127, + 0.8334498852491379, + 0.8340808562934399, + 0.868569128215313, + 0.8327597752213478, + 0.8368096314370632, + 0.8283699862658978, + 0.8394112810492516, + 0.8271900005638599, + 0.8330713026225567, + 0.830991193652153, + 0.832549761980772, + 0.8338312618434429, + 0.8267299272119999, + 0.8700997568666935, + 0.8614091202616692, + 0.8399300277233124, + 0.82777114585042, + 0.8512991480529308, + 0.8384999819099903, + 0.8459798991680145, + 0.8603897877037525, + 0.8372501470148563, + 0.8346498943865299, + 0.8324808441102505, + 0.8736089803278446, + 0.8699698373675346, + 0.8765598759055138, + 0.8318102918565273, + 0.8582998998463154, + 0.8575301617383957, + 0.834139995276928, + 0.82447100430727, + 0.8331602439284325, + 0.8342606015503407, + 0.8585499599575996, + 0.8275099098682404, + 0.8461009711027145, + 0.8340897038578987, + 0.8353311568498611, + 0.834509264677763, + 0.8619800209999084, + 0.8605699986219406, + 0.8349590934813023, + 0.8255913853645325, + 0.8327304385602474, + 0.8297208696603775, + 0.8337399922311306, + 0.8573313243687153, + 0.8240402676165104, + 0.8579199202358723, + 0.856500118970871, + 0.8579292334616184, + 0.8364608511328697, + 0.8335290476679802, + 0.85036875680089, + 0.8301110938191414, + 0.8312896825373173, + 0.8537005633115768, + 0.8445102721452713, + 0.8562100119888783, + 0.8270600810647011, + 0.8287797681987286, + 0.8373907767236233, + 0.8262302726507187, + 0.8617998100817204, + 0.829590018838644, + 0.8354689925909042, + 0.833660364151001, + 0.826478935778141, + 0.8374890312552452, + 0.8347397670149803, + 0.856298953294754, + 0.8309707045555115, + 0.8505890145897865, + 0.8291499689221382, + 0.8339909836649895, + 0.8276100270450115, + 0.8382410742342472, + 0.8570901118218899, + 0.8254512213170528, + 0.8361600339412689, + 0.8332803845405579, + 0.8610798977315426, + 0.8348789997398853, + 0.8573802188038826, + 0.8558803237974644, + 0.834289938211441, + 0.8338899351656437, + 0.833660364151001, + 0.8829799480736256, + 0.8348203264176846, + 0.8434997871518135, + 0.8341390639543533, + 0.8336091414093971, + 0.8311797864735126, + 0.8421787060797215, + 0.8694608695805073, + 0.8313399739563465, + 0.8545112796127796, + 0.8362196385860443, + 0.8372203446924686, + 0.8368613198399544, + 0.841239932924509, + 0.8642901666462421, + 0.8361497893929482, + 0.8361497893929482, + 0.841179396957159, + 0.835019163787365, + 0.8344999514520168, + 0.879060011357069, + 0.8570798672735691, + 0.8580503053963184, + 0.8381600491702557, + 0.8422890678048134, + 0.8392101153731346, + 0.8760793134570122, + 0.8486197330057621, + 0.8346987888216972, + 0.8337600156664848, + 0.8391612209379673, + 0.8456199429929256, + 0.8654301054775715, + 0.8313688449561596, + 0.8577811531722546, + 0.8346689864993095, + 0.841919332742691, + 0.8389498107135296, + 0.8653998374938965, + 0.8439300581812859, + 0.8984399028122425, + 0.8293497376143932, + 0.8410410955548286, + 0.8351001888513565, + 0.835928600281477, + 0.8640801534056664, + 0.8502998389303684, + 0.8266996592283249, + 0.83180982619524, + 0.8347299881279469, + 0.8321302011609077, + 0.8339798077940941, + 0.8660708554089069, + 0.8334200829267502, + 0.8461698889732361, + 0.8309390395879745, + 0.8360389620065689, + 0.8388697169721127, + 0.8416390046477318, + 0.8622212335467339, + 0.9515793062746525, + 0.8860593661665916, + 0.8796309120953083, + 0.8459100499749184, + 0.8429097943007946, + 0.8503999561071396, + 0.8758897893130779, + 0.8424511179327965, + 0.852338969707489, + 0.8423510007560253, + 0.8507790043950081, + 0.8407700806856155, + 0.8733700960874557, + 0.8407202549278736, + 0.8622598834335804, + 0.842289999127388, + 0.8407891727983952, + 0.8368398994207382, + 0.8717402815818787, + 0.83510996773839, + 0.8499599061906338, + 0.8496497757732868, + 0.9293877519667149, + 0.8760006166994572, + 0.9620878845453262, + 0.8407998830080032, + 0.8317409083247185, + 0.8576889522373676, + 0.8332910947501659, + 1.2757140211760998, + 0.8681588806211948, + 0.8342606015503407, + 0.8539888076484203, + 0.8331499993801117, + 0.8364887908101082, + 0.8330191485583782, + 0.8348100818693638, + 0.8645192719995975, + 0.8312207646667957, + 0.8455398492515087, + 0.8429200388491154, + 0.8405703119933605, + 0.8644103072583675, + 0.852460041642189, + 0.830329954624176, + 0.8301408961415291, + 0.8340803906321526, + 0.8300198242068291, + 0.8305800147354603, + 0.86250901222229, + 0.8567809127271175, + 0.8385390974581242, + 0.8369898423552513, + 0.8349288254976273, + 0.8373293094336987, + 0.8332692086696625, + 0.8817589841783047, + 0.8381102234125137, + 0.8417689241468906, + 0.8341199718415737, + 0.8646287024021149, + 0.8481810800731182, + 0.8376901969313622, + 0.8964687585830688, + 0.8299197070300579, + 0.8430089801549911, + 0.8447598665952682, + 0.8484800346195698, + 0.848159659653902, + 0.8776895701885223, + 0.8301697671413422, + 0.8395006880164146, + 0.8370201103389263, + 0.8389903232455254, + 0.828249379992485, + 0.8661691099405289, + 0.8359812200069427, + 0.8364799432456493, + 0.8443607948720455, + 0.8416487835347652 + ], + "library": [ + 1.7426800914108753, + 0.8993302471935749, + 0.9016990661621094, + 0.9939479641616344, + 0.8663889020681381, + 2.521099988371134, + 0.899098813533783, + 0.8662189356982708, + 0.8602202869951725, + 0.8951579220592976, + 0.8554002270102501, + 0.8791792206466198, + 0.8607502095401287, + 0.8627288043498993, + 0.865268986672163, + 0.867149792611599, + 0.8963989093899727, + 0.8636401034891605, + 0.8633490651845932, + 0.8554509840905666, + 0.849669799208641, + 0.8362103253602982, + 0.8352496661245823, + 0.8360613137483597, + 0.8679903112351894, + 0.843769870698452, + 0.8558798581361771, + 0.8288812823593616, + 0.8294698782265186, + 0.8361698128283024, + 0.836661085486412, + 0.8706487715244293, + 0.832471065223217, + 0.8396189659833908, + 0.834339763969183, + 0.8351788856089115, + 0.8400799706578255, + 0.82777114585042, + 0.863279215991497, + 0.8300007320940495, + 0.8704308420419693, + 0.8614989928901196, + 0.8319909684360027, + 0.8599786087870598, + 0.8327001705765724, + 0.841118860989809, + 0.8349386043846607, + 0.8596200495958328, + 0.8567702025175095, + 0.825551338493824, + 0.838560052216053, + 0.8381209336221218, + 0.8342098444700241, + 0.829900149255991, + 0.859101302921772, + 0.8588102646172047, + 0.8284398354589939, + 0.8342699147760868, + 0.8322708308696747, + 0.8445801213383675, + 0.8740704506635666, + 0.8361507207155228, + 0.8508502505719662, + 0.841130968183279, + 0.8474388159811497, + 0.8420390076935291, + 0.8401707746088505, + 0.8469396270811558, + 0.84302993491292, + 0.8397288620471954, + 0.8778590708971024, + 0.8378513157367706, + 0.8627590723335743, + 0.8387402631342411, + 0.8433898910880089, + 0.8394303731620312, + 0.8706096559762955, + 0.8302000351250172, + 0.846249982714653, + 0.8325590752065182, + 0.9457687847316265, + 0.8755992166697979, + 0.8366708643734455, + 0.8423500694334507, + 0.8387099951505661, + 0.8751386776566505, + 0.8563692681491375, + 0.8483310230076313, + 0.832228921353817, + 0.8308999240398407, + 0.8372394368052483, + 0.8344398811459541, + 0.8600689470767975, + 0.8308598771691322, + 0.8647609502077103, + 0.8363397791981697, + 0.8372697047889233, + 0.8418192155659199, + 0.8683293126523495, + 0.8482798002660275, + 0.8424087427556515, + 0.8382899686694145, + 0.865468755364418, + 0.8293488062918186, + 0.85448008030653, + 0.8314098231494427, + 0.8345511741936207, + 0.8378392085433006, + 0.8463091216981411, + 0.8640997111797333, + 0.8326098322868347, + 0.8412599563598633, + 0.8361190557479858, + 0.8344398811459541, + 0.8378499187529087, + 0.8646897040307522, + 0.8597401902079582, + 0.8448599837720394, + 0.8307108655571938, + 0.8295797742903233, + 0.8492302149534225, + 0.8609890937805176, + 0.8344999514520168, + 0.8496809750795364, + 0.8318796753883362, + 0.8363211527466774, + 0.8405898697674274, + 0.8346210233867168, + 0.8642389439046383, + 0.831380020827055, + 0.8416613563895226, + 0.8422094397246838, + 0.8394401520490646, + 0.8335788734257221, + 0.8315099403262138, + 0.8614286780357361, + 0.8322303183376789, + 0.8566398173570633, + 0.8354689925909042, + 0.8326801471412182, + 0.876178964972496, + 0.8361688815057278, + 0.847421120852232, + 0.8323900401592255, + 0.833950936794281, + 0.8385796099901199, + 0.8457396179437637, + 0.8729486726224422, + 0.8389288559556007, + 0.8694413118064404, + 0.8407002314925194, + 0.8372399024665356, + 0.8498188108205795, + 0.8758003823459148, + 0.8360599167644978, + 0.8348897099494934, + 0.838251318782568, + 0.836279708892107, + 0.8447212167084217, + 0.8432199247181416, + 0.877860002219677, + 0.8351793512701988, + 0.83893071860075, + 0.842398963868618, + 0.8382601663470268, + 0.848039984703064, + 0.8615497499704361, + 0.8293986320495605, + 0.8539101108908653, + 0.8321800269186497, + 0.83191879093647, + 0.8326200768351555, + 0.86158886551857, + 0.8486299775540829, + 0.8580409921705723, + 0.8356901817023754, + 0.835819635540247, + 0.8325092494487762, + 0.8470900356769562, + 0.8692401461303234, + 0.8459300734102726, + 0.8778097108006477, + 0.8357502520084381, + 0.8536288514733315, + 0.8506113663315773, + 0.8416087366640568, + 0.8400799706578255, + 0.8662901818752289, + 0.8363290689885616, + 0.8649495430290699, + 0.8349791169166565, + 0.836661085486412, + 0.8477703668177128, + 0.869970303028822, + 0.833319965749979, + 0.8405288681387901, + 0.8308198302984238, + 0.8323187939822674, + 0.8294600993394852, + 0.8346890099346638, + 0.8558291010558605, + 0.8314107544720173, + 0.8322400972247124, + 0.8636401034891605, + 0.8591301739215851, + 0.8549797348678112, + 0.8531110361218452, + 0.8463398553431034, + 0.844110269099474, + 0.8327290415763855, + 0.8604610338807106, + 0.8355891332030296, + 0.85013872012496, + 0.8354200981557369, + 0.8645798079669476, + 0.8345609530806541, + 0.8707488887012005, + 0.8313208818435669, + 0.8413000032305717, + 0.8342103101313114, + 0.8413693867623806, + 0.840580090880394, + 0.8451002649962902, + 0.8801096118986607, + 0.8610398508608341, + 0.8413391187787056, + 0.8389507420361042, + 0.8594789542257786, + 0.8669011294841766, + 0.845929142087698, + 0.8488600142300129, + 0.8496399968862534, + 0.8461698889732361, + 0.8400310762226582, + 0.8747889660298824, + 0.8453098125755787, + 0.8476488292217255, + 0.840070191770792, + 0.8433312177658081, + 0.8452199399471283, + 0.8593699894845486, + 0.868258997797966, + 0.8640000596642494, + 0.8275602012872696, + 0.8335690945386887, + 0.8323998190462589, + 0.8307090029120445, + 0.8313199505209923, + 0.8651888929307461, + 0.8481210097670555, + 0.838989857584238, + 0.8381102234125137, + 0.8368608541786671, + 0.9424779564142227, + 0.8707400411367416, + 0.8367993868887424, + 0.8436110801994801, + 0.8335202001035213, + 0.8375300094485283, + 0.8377009071409702, + 0.8664987981319427, + 0.8376706391572952, + 0.8561289869248867, + 0.8364091627299786, + 0.831610057502985, + 0.843878835439682, + 0.8442406542599201, + 0.8659390732645988, + 0.8348710834980011, + 0.8370587602257729, + 0.8398899808526039, + 0.8485009893774986, + 0.844080001115799, + 0.8421312086284161, + 1.0359277948737144, + 0.8395998738706112, + 0.8370010182261467, + 0.8687288500368595, + 0.8355509489774704, + 0.8572498336434364, + 0.8598989807069302, + 0.838249921798706, + 0.8389512076973915, + 0.8307900279760361, + 0.8671400137245655, + 0.8585192263126373, + 0.8402401581406593, + 0.8326401002705097, + 0.8308799006044865, + 0.8330307900905609, + 0.8322698995471001, + 0.8608801290392876, + 0.8257101289927959, + 0.8594896644353867, + 0.832829624414444, + 0.8368999697268009, + 0.8333409205079079, + 0.8359802886843681, + 0.8644009940326214, + 0.8314698934555054, + 0.848779920488596, + 0.8361106738448143, + 0.869459006935358, + 0.847850926220417, + 0.8575092069804668, + 0.8343509398400784, + 0.8279900066554546, + 0.8322098292410374, + 0.8263108320534229, + 0.867289025336504, + 0.8293511345982552, + 0.8289688266813755, + 0.8317111060023308, + 0.8436799980700016, + 0.8349302224814892, + 0.8338112384080887, + 0.8685989305377007, + 0.8407603017985821, + 0.8416599594056606, + 0.8429992012679577, + 0.9439289569854736, + 0.8523189462721348, + 0.8455510251224041, + 0.8695991709828377, + 0.8343411609530449, + 0.864019151777029, + 0.838171225041151, + 0.8438685908913612, + 0.8467393927276134, + 0.8788099512457848, + 0.8354699239134789, + 0.8581900037825108, + 0.8429503068327904, + 0.8388590067625046, + 0.8438099175691605, + 0.8730189874768257, + 0.8473508059978485, + 0.8501396514475346, + 0.8489200845360756, + 0.8430490270256996, + 0.8359099738299847, + 0.8472399786114693, + 0.8362885564565659, + 0.8702697232365608, + 0.8381600491702557, + 0.8349111303687096, + 0.8335299789905548, + 0.8331509307026863, + 0.8359788917005062, + 0.8319388143718243, + 0.8685300126671791, + 0.8543198928236961, + 0.8578598499298096, + 0.8338587358593941, + 0.8322298526763916, + 0.8353991433978081, + 0.8329893462359905, + 0.861909706145525, + 0.8477801457047462, + 0.8268207311630249, + 0.8652587421238422, + 0.841739121824503, + 0.8616102859377861, + 0.830099917948246, + 0.8581201545894146, + 0.8325502276420593, + 0.8382708765566349, + 0.8401600643992424, + 0.8455491624772549, + 0.8650198578834534, + 1.0577570647001266, + 0.841640867292881, + 0.8380399085581303, + 0.8567390032112598, + 0.886550173163414, + 1.007217913866043, + 0.8438308723270893, + 0.8547687903046608, + 1.0397471487522125, + 0.8310810662806034, + 0.835169106721878, + 0.8663390763103962, + 0.8544707670807838, + 0.8629397489130497, + 0.8332813158631325, + 0.8440390229225159, + 0.8290703408420086, + 0.8275401778519154, + 0.8569592610001564, + 0.8419612422585487, + 0.8374503813683987, + 0.8305707015097141, + 0.8414187468588352, + 0.8441796526312828, + 0.8315993472933769, + 0.8645090274512768, + 0.8363798260688782, + 0.8528400212526321, + 0.8387211710214615, + 0.8406988345086575 + ] + }, + "warm_ms": { + "control": [ + 9.831822942942381, + 1.1377767659723759, + 0.96086785197258 + ], + "exact": [ + 2.7669179253280163, + 1.0587568394839764, + 0.9908787906169891 + ], + "lattice": [ + 2.688688226044178, + 1.0447478853166103, + 0.9419280104339123 + ], + "library": [ + 1.7102700658142567, + 0.9768879972398281, + 0.9305798448622227 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 0.8463349658995867, + "p10_ms": 0.8357902057468891, + "p90_ms": 0.8807599544525146, + "min_ms": 0.8256500586867332, + "max_ms": 1.4682421460747719, + "mean_ms": 0.8605020097456872 + }, + "exact": { + "n": 400, + "median_ms": 0.8433053735643625, + "p10_ms": 0.8326907642185688, + "p90_ms": 0.8793849963694811, + "min_ms": 0.8229711093008518, + "max_ms": 2.742217853665352, + "mean_ms": 0.8583802869543433 + }, + "lattice": { + "n": 400, + "median_ms": 0.8389099966734648, + "p10_ms": 0.8288758341223001, + "p90_ms": 0.8681999053806067, + "min_ms": 0.8191796950995922, + "max_ms": 1.6254107467830181, + "mean_ms": 0.8486159599851817 + }, + "library": { + "n": 400, + "median_ms": 0.8417791686952114, + "p10_ms": 0.8317010011523962, + "p90_ms": 0.8692602626979351, + "min_ms": 0.825551338493824, + "max_ms": 2.521099988371134, + "mean_ms": 0.8557376556564122 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 1.0088507339947839, + "ci90_low": 1.0063106551443333, + "ci90_high": 1.0111768744612366, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.0035925210845262, + "ci90_low": 1.000948611571825, + "ci90_high": 1.005685851820691, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.0052393902901704, + "ci90_low": 1.0027647692674562, + "ci90_high": 1.0078046494864734, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 1.003420119003378, + "ci90_low": 1.001071703394354, + "ci90_high": 1.00631467443302, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 1.0054121049484237, + "ci90_low": 1.0025486371669328, + "ci90_high": 1.0075358048201515, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.0113181210512938, + "p10": 0.9923501043910187, + "p90": 1.0186011467598197 + }, + "minimum_detectable_improvement": 0.05313469313869866, + "compile": { + "control": { + "lower_s": 2.6646883506327868, + "compile_s": 5.280799780972302, + "first_call_s": 0.011401994619518518, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 6598454.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 3362376, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 937624, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 617402368, + "rss_after_compile_bytes": 840736768, + "rss_delta_bytes": 223334400, + "hlo_sha256": "f2396625bcc463d7", + "hlo_lines": 10467, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 2.546216811053455, + "compile_s": 5.389688424766064, + "first_call_s": 0.0118057900108397, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 3867554.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 927304, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1395944, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 842641408, + "rss_after_compile_bytes": 935866368, + "rss_delta_bytes": 93224960, + "hlo_sha256": "1ffaaf1b2945d6c1", + "hlo_lines": 10388, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 2.494831843301654, + "compile_s": 5.399835144169629, + "first_call_s": 0.011252074968069792, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3066830.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 389704, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1127048, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 935890944, + "rss_after_compile_bytes": 989671424, + "rss_delta_bytes": 53780480, + "hlo_sha256": "7e5b7970d8e40de8", + "hlo_lines": 10365, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 2.6247810758650303, + "compile_s": 5.567522638943046, + "first_call_s": 0.012726108077913523, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3066830.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 389704, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1127048, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 989683712, + "rss_after_compile_bytes": 1034895360, + "rss_delta_bytes": 45211648, + "hlo_sha256": "7e5b7970d8e40de8", + "hlo_lines": 10365, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 7.743201200876806, + 4.90119982600354, + 8.551453428732433, + 7.64017039895814, + 7.25809567478034, + 9.29357838657636, + 3.033879650515197, + 8.714615086385908, + 4.73517315947449, + 3.2233889243165876, + 9.296501815740568, + 6.74861581547119, + -1.402814315064127, + 0.5885274382499839, + 6.162997261446637, + -10.499150878933385 + ], + "exact": [ + 7.743201200876806, + 4.90119982600354, + 8.551453428732433, + 7.64017039895814, + 7.25809567478034, + 9.29357838657636, + 3.033879650515197, + 8.714615086385908, + 4.73517315947449, + 3.2233889243165876, + 9.296501815740568, + 6.74861581547119, + -1.402814315064127, + 0.5885274382499839, + 6.162997261446637, + -10.499150878933385 + ], + "lattice": [ + 7.743201200876806, + 4.90119982600354, + 8.551453428732433, + 7.64017039895814, + 7.25809567478034, + 9.29357838657636, + 3.033879650515197, + 8.714615086385908, + 4.73517315947449, + 3.2233889243165876, + 9.296501815740568, + 6.74861581547119, + -1.402814315064127, + 0.5885274382499839, + 6.162997261446637, + -10.499150878933385 + ], + "library": [ + 7.743201200876806, + 4.90119982600354, + 8.551453428732433, + 7.64017039895814, + 7.25809567478034, + 9.29357838657636, + 3.033879650515197, + 8.714615086385908, + 4.73517315947449, + 3.2233889243165876, + 9.296501815740568, + 6.74861581547119, + -1.402814315064127, + 0.5885274382499839, + 6.162997261446637, + -10.499150878933385 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 7.743201200876806, + "exact": 7.743201200876806, + "lattice": 7.743201200876806, + "library": 7.743201200876806 + } + }, + "simple_solved_vmap4": { + "label": "simple_solved_vmap4", + "batch": 4, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 1.1864970438182354, + 1.2730457819998264, + 1.1976361274719238, + 1.85078801587224, + 1.09808798879385, + 1.1310270056128502, + 1.1003371328115463, + 1.1334959417581558, + 1.088838092982769, + 1.1318270117044449, + 1.0777469724416733, + 1.1141570284962654, + 1.0875067673623562, + 1.1022272519767284, + 1.0612867772579193, + 1.0947659611701965, + 1.1149481870234013, + 1.1136168614029884, + 1.2394851073622704, + 1.0996060445904732, + 1.1181868612766266, + 1.0006679221987724, + 0.9697391651570797, + 0.9736889041960239, + 0.9361892007291317, + 0.9330702014267445, + 0.9286189451813698, + 0.9642182849347591, + 0.9506391361355782, + 0.9421682916581631, + 1.1159470304846764, + 0.9570391848683357, + 0.9428877383470535, + 0.9441389702260494, + 0.9424788877367973, + 0.9646178223192692, + 0.9400900453329086, + 0.948288943618536, + 0.941078644245863, + 0.9714178740978241, + 0.9763180278241634, + 0.9624981321394444, + 0.9406390599906445, + 0.9423787705600262, + 0.9779389947652817, + 0.9614392183721066, + 0.9399177506566048, + 0.9392290376126766, + 0.9414982050657272, + 0.9514382109045982, + 0.9361491538584232, + 0.9403778240084648, + 0.9413100779056549, + 0.9691282175481319, + 0.9306082502007484, + 0.9366287849843502, + 0.9714476764202118, + 0.9421883150935173, + 0.9428886696696281, + 0.9411480277776718, + 0.9418088011443615, + 0.94276899471879, + 0.9541776962578297, + 0.9352979250252247, + 0.9336690418422222, + 0.9332280606031418, + 0.9672190062701702, + 0.9381389245390892, + 0.9339479729533195, + 0.9313491173088551, + 0.9311577305197716, + 0.9662788361310959, + 0.9364602155983448, + 0.9408476762473583, + 0.9330296888947487, + 0.9665577672421932, + 0.9423377923667431, + 1.2960750609636307, + 0.9714476764202118, + 0.9415983222424984, + 0.9356779046356678, + 0.9645186364650726, + 0.933478120714426, + 0.9335093200206757, + 0.9382297284901142, + 0.9334888309240341, + 0.9598992764949799, + 0.9473389945924282, + 0.9209779091179371, + 0.9280689992010593, + 0.9383088909089565, + 0.9504891932010651, + 0.9260689839720726, + 0.9325179271399975, + 0.9317188523709774, + 0.9635579772293568, + 0.9407992474734783, + 0.9280000813305378, + 0.9319381788372993, + 0.9318687953054905, + 1.0382579639554024, + 0.947119202464819, + 0.947058666497469, + 0.9473888203501701, + 0.9482777677476406, + 0.9400784038007259, + 0.934649258852005, + 0.9413179941475391, + 0.9729787707328796, + 0.9410679340362549, + 0.9403177537024021, + 0.9439191780984402, + 0.9690979495644569, + 0.947269145399332, + 0.933030154556036, + 0.9299889206886292, + 0.9731678292155266, + 0.9484579786658287, + 1.0909070260822773, + 0.9371098130941391, + 0.9542088955640793, + 0.9455378167331219, + 0.949149951338768, + 0.9315791539847851, + 0.9361789561808109, + 0.9328797459602356, + 0.9664781391620636, + 0.9220079518854618, + 0.9377687238156796, + 0.9312578476965427, + 0.9672190062701702, + 0.9371577762067318, + 0.9403778240084648, + 0.9300690144300461, + 0.9706877171993256, + 0.9403792209923267, + 0.9405189193785191, + 0.9388984180986881, + 0.9634192101657391, + 0.943207647651434, + 0.9618783369660378, + 0.9332490153610706, + 0.9289789013564587, + 0.9350390173494816, + 0.9715594351291656, + 0.9657582268118858, + 0.9410581551492214, + 0.9409892372786999, + 0.9684679098427296, + 0.9425091557204723, + 0.9326976723968983, + 0.9336080402135849, + 0.9340890683233738, + 0.9642275981605053, + 0.9312392212450504, + 0.9342893026769161, + 0.9318580850958824, + 0.9652893058955669, + 0.9500477463006973, + 0.9319079108536243, + 0.9663491509854794, + 0.9245681576430798, + 0.9632990695536137, + 0.937329139560461, + 0.9354287758469582, + 0.9616492316126823, + 0.9384388104081154, + 0.9409487247467041, + 0.9513190016150475, + 0.9374590590596199, + 0.9403289295732975, + 0.943710096180439, + 0.9543979540467262, + 0.9519793093204498, + 0.9419377893209457, + 0.93461899086833, + 0.9650583378970623, + 1.225356012582779, + 0.9611980058252811, + 0.9660790674388409, + 1.0050279088318348, + 0.9403289295732975, + 0.9457198902964592, + 0.9347693994641304, + 0.9582191705703735, + 0.9355489164590836, + 0.9359088726341724, + 0.9360592812299728, + 1.0363869369029999, + 0.9386786259710789, + 0.9410176426172256, + 1.315743662416935, + 0.9354189969599247, + 0.920858234167099, + 0.9369580075144768, + 0.9694588370621204, + 0.9384788572788239, + 0.9385691955685616, + 0.9669400751590729, + 0.941708218306303, + 0.9742090478539467, + 0.9569087997078896, + 0.9290389716625214, + 1.0728668421506882, + 0.9584282524883747, + 0.9350688196718693, + 0.9284177795052528, + 0.9362976998090744, + 0.968939159065485, + 0.9344890713691711, + 0.9370697662234306, + 0.9339302778244019, + 0.9659179486334324, + 0.935989897698164, + 0.9269090369343758, + 0.9368578903377056, + 0.962188933044672, + 0.9394590742886066, + 0.9326492436230183, + 0.9325379505753517, + 0.9390590712428093, + 0.9607779793441296, + 0.9403000585734844, + 0.9300881065428257, + 0.9360089898109436, + 0.9271693415939808, + 0.96132792532444, + 0.9326101280748844, + 0.9313388727605343, + 0.9310389868915081, + 0.9626890532672405, + 0.9417491964995861, + 0.9345989674329758, + 0.9382781572639942, + 0.938998069614172, + 0.9504090994596481, + 0.9351088665425777, + 0.9304899722337723, + 0.9322101250290871, + 0.9626578539609909, + 0.9450479410588741, + 0.9641391225159168, + 0.9371894411742687, + 0.9343200363218784, + 0.9361389093101025, + 0.9683282114565372, + 0.9424588643014431, + 0.9411177597939968, + 0.9302985854446888, + 0.9300094097852707, + 0.9651579894125462, + 0.9511001408100128, + 0.9344490244984627, + 0.9334888309240341, + 0.9633190929889679, + 0.9449380449950695, + 0.9363498538732529, + 0.9324690327048302, + 0.9308080188930035, + 0.9642289951443672, + 1.0102973319590092, + 0.9432490915060043, + 0.936589203774929, + 0.9348802268505096, + 0.963128637522459, + 0.9450879879295826, + 0.9438702836632729, + 0.944867730140686, + 0.9504780173301697, + 0.9625190868973732, + 1.1524762958288193, + 0.9392187930643559, + 0.9704693220555782, + 0.9429589845240116, + 0.944279134273529, + 0.9346078149974346, + 0.9649079293012619, + 0.9594690054655075, + 0.9367191232740879, + 0.9450288489460945, + 0.930767972022295, + 0.9380890987813473, + 0.9705387055873871, + 0.94571802765131, + 0.9398502297699451, + 0.9438982233405113, + 0.9557381272315979, + 0.9583290666341782, + 0.9380183182656765, + 0.937949400395155, + 0.9400481358170509, + 0.9617777541279793, + 0.9524999186396599, + 0.9381589479744434, + 0.9301900863647461, + 0.9524589404463768, + 0.9474284015595913, + 0.9414497762918472, + 0.9568477980792522, + 0.9372388012707233, + 0.9439294226467609, + 0.9668292477726936, + 0.9342087432742119, + 0.9397091343998909, + 0.9321379475295544, + 0.9629880078136921, + 0.9324289858341217, + 0.9433580562472343, + 0.9560189209878445, + 0.9595192968845367, + 0.9377892129123211, + 0.9355801157653332, + 0.9335088543593884, + 0.9378301911056042, + 0.9449790231883526, + 0.9277481585741043, + 0.9306692518293858, + 0.9276578202843666, + 0.9627579711377621, + 0.9560990147292614, + 0.9417487308382988, + 0.9519988670945168, + 0.9372592903673649, + 0.9349300526082516, + 0.990377739071846, + 0.9567881934344769, + 0.9548291563987732, + 0.9379680268466473, + 0.9322990663349628, + 0.9717890061438084, + 1.1581960134208202, + 0.9498992003500462, + 0.9677084162831306, + 0.9722481481730938, + 0.9361887350678444, + 0.9392681531608105, + 0.96890889108181, + 0.945789273828268, + 0.9353281930088997, + 0.9410991333425045, + 0.9751389734447002, + 0.9426991455256939, + 0.9364187717437744, + 0.9579281322658062, + 0.9489781223237514, + 0.939399003982544, + 0.9462889283895493, + 0.9375279769301414, + 0.9362599812448025, + 0.944838859140873, + 0.9361780248582363, + 0.9326799772679806, + 0.9379778057336807, + 0.9316192008554935, + 0.9628282859921455, + 0.9727193973958492, + 1.445793081074953, + 0.9608892723917961, + 0.9365701116621494, + 0.9461278095841408, + 0.9347586892545223, + 0.9329980239272118, + 0.9228200651705265, + 0.9691179729998112, + 0.9451792575418949, + 0.943048857152462, + 0.9427382610738277, + 0.9582792408764362, + 0.9456784464418888, + 0.9398278780281544, + 0.9381291456520557, + 0.934339128434658, + 0.9624292142689228, + 0.9321598336100578, + 0.9309188462793827, + 0.9361892007291317, + 0.9646075777709484, + 0.9433189406991005, + 0.9407489560544491, + 0.9412877261638641, + 0.9691077284514904, + 0.9299083612859249, + 0.9292289614677429, + 0.9263078682124615, + 0.967628788203001, + 0.9384388104081154, + 0.9344187565147877, + 1.0413280688226223, + 0.9634378366172314, + 0.9723477996885777, + 0.9449189528822899, + 0.972578302025795, + 0.9463001042604446, + 0.9397687390446663, + 0.9376476518809795, + 0.9305193088948727, + 0.9648981504142284, + 0.9362488053739071, + 0.935479998588562, + 0.9447685442864895 + ], + "exact": [ + 1.3709235936403275, + 1.0321480222046375, + 1.0406970977783203, + 0.9873881936073303, + 0.9775888174772263, + 0.9730481542646885, + 0.9816577658057213, + 0.9893989190459251, + 0.9811972267925739, + 0.9776880033314228, + 0.9713489562273026, + 0.9735878556966782, + 0.9692679159343243, + 0.9648590348660946, + 0.9633377194404602, + 0.9783380664885044, + 0.9420700371265411, + 0.9451378136873245, + 0.9714579209685326, + 0.9430986829102039, + 0.9681880474090576, + 0.9840182028710842, + 0.9680879302322865, + 0.9398581460118294, + 0.951018650084734, + 0.938917975872755, + 0.966027844697237, + 0.9958692826330662, + 1.0204380378127098, + 0.9745080024003983, + 0.9480803273618221, + 0.9357989765703678, + 0.9392891079187393, + 0.9666979312896729, + 0.9460379369556904, + 0.9394790977239609, + 0.9600180201232433, + 0.9436388500034809, + 0.9528202936053276, + 0.9417682886123657, + 1.020178198814392, + 0.9243800304830074, + 0.9232182055711746, + 0.9203101508319378, + 0.9254990145564079, + 0.9381282143294811, + 0.9170500561594963, + 0.92310830950737, + 0.9185988456010818, + 0.949678011238575, + 0.9181681089103222, + 0.9160791523754597, + 0.9255083277821541, + 0.9191702120006084, + 0.9444691240787506, + 0.9375577792525291, + 0.9255288168787956, + 0.9194081649184227, + 0.9148088283836842, + 0.944098923355341, + 0.9162798523902893, + 0.9314785711467266, + 0.9581288322806358, + 0.9214291349053383, + 0.9508980438113213, + 1.395943108946085, + 0.9164093062281609, + 0.9157783351838589, + 0.9214202873408794, + 0.9478176943957806, + 0.9915679693222046, + 1.1510970070958138, + 1.1852472089231014, + 0.9012189693748951, + 0.8966499008238316, + 0.9152679704129696, + 0.9390488266944885, + 0.9139277972280979, + 0.9104176424443722, + 0.9092902764678001, + 0.9438889101147652, + 0.9218486957252026, + 0.9113103151321411, + 0.908668152987957, + 0.9098900482058525, + 0.9413980878889561, + 0.9137787856161594, + 0.9070700034499168, + 0.9113289415836334, + 0.9106001816689968, + 0.9430292993783951, + 0.926279928535223, + 0.906430184841156, + 0.9041992016136646, + 0.9062699973583221, + 0.9055780246853828, + 0.9397398680448532, + 0.9126989170908928, + 0.9096888825297356, + 0.9121792390942574, + 0.9704679250717163, + 0.9418977424502373, + 0.9172200225293636, + 0.9175287559628487, + 0.9157299064099789, + 0.9445780888199806, + 0.9411480277776718, + 0.9393892250955105, + 0.9143492206931114, + 0.9262501262128353, + 0.9301993995904922, + 0.9162891656160355, + 1.097606960684061, + 0.9451978839933872, + 1.0476377792656422, + 0.9175697341561317, + 0.9141387417912483, + 0.9253993630409241, + 0.9412877261638641, + 0.9140390902757645, + 0.998317264020443, + 0.9118299931287766, + 0.9456579573452473, + 0.9193588048219681, + 0.9201988577842712, + 0.9125592187047005, + 0.9110700339078903, + 0.9452393278479576, + 0.9335591457784176, + 0.9086988866329193, + 0.9131189435720444, + 0.9135892614722252, + 0.939458142966032, + 0.9364401921629906, + 0.9107398800551891, + 0.9119589813053608, + 0.9198589250445366, + 0.9385477751493454, + 0.9295488707721233, + 0.908049289137125, + 0.9088288061320782, + 0.9456179104745388, + 0.921409111469984, + 0.9081792086362839, + 0.9098979644477367, + 0.909619964659214, + 0.9402688592672348, + 0.9386492893099785, + 0.913738738745451, + 0.9176088497042656, + 0.912799034267664, + 0.9423778392374516, + 0.9137499146163464, + 0.910670030862093, + 0.9160079061985016, + 0.9218798950314522, + 0.9399279952049255, + 0.9164400398731232, + 0.9104288183152676, + 0.9150481782853603, + 0.9518079459667206, + 0.9511481039226055, + 0.9719589725136757, + 0.9408690966665745, + 1.3623838312923908, + 0.9913276880979538, + 0.965628307312727, + 0.9409287013113499, + 0.9145787917077541, + 0.9099883027374744, + 0.9653493762016296, + 0.9556477889418602, + 0.9191390126943588, + 0.9177098982036114, + 0.9564682841300964, + 0.919779296964407, + 0.9186090901494026, + 0.9177490137517452, + 0.9132991544902325, + 0.9465180337429047, + 0.9180880151689053, + 0.9196680039167404, + 0.9178891777992249, + 0.9766579605638981, + 0.931598711758852, + 0.9075975976884365, + 0.9068390354514122, + 0.9124199859797955, + 0.9469389915466309, + 0.9255390614271164, + 0.9128982201218605, + 0.9164079092442989, + 0.9264489635825157, + 0.9372783824801445, + 0.908849760890007, + 0.9158588945865631, + 0.9099277667701244, + 0.9559891186654568, + 0.9185988456010818, + 0.9153587743639946, + 0.9745177812874317, + 0.916799996048212, + 0.9077591821551323, + 0.9070900268852711, + 0.9046299383044243, + 0.9458879940211773, + 0.9156889282166958, + 0.9154179133474827, + 0.910809263586998, + 0.9063701145350933, + 0.9395089000463486, + 0.9154500439763069, + 0.9113592095673084, + 0.9196288883686066, + 0.9127398952841759, + 0.9380183182656765, + 0.9138197638094425, + 0.9108493104577065, + 0.9108791127800941, + 0.9341398254036903, + 0.9148591198027134, + 0.9124781936407089, + 0.9113689884543419, + 0.9408700279891491, + 0.924709253013134, + 0.9202598594129086, + 0.9225988760590553, + 0.9166989475488663, + 0.9421389549970627, + 0.9176586754620075, + 0.9192000143229961, + 0.9168577380478382, + 0.9155278094112873, + 0.9453003294765949, + 0.9416481480002403, + 0.9184391237795353, + 0.9186891838908195, + 0.9118490852415562, + 0.9422190487384796, + 0.9302077814936638, + 0.9247991256415844, + 0.916109886020422, + 0.9139678440988064, + 0.9403475560247898, + 0.9301202371716499, + 0.9169885888695717, + 0.9155799634754658, + 0.9144376963376999, + 0.9511178359389305, + 0.9237602353096008, + 0.9258189238607883, + 0.9153499267995358, + 0.9236088953912258, + 0.9454782120883465, + 0.9290301240980625, + 0.9283591061830521, + 0.9153001010417938, + 0.946579035371542, + 0.9119180031120777, + 0.9204288944602013, + 0.9096292778849602, + 0.9165080264210701, + 0.9170300327241421, + 0.9426791220903397, + 0.921658705919981, + 0.9108600206673145, + 0.9133187122642994, + 0.9118090383708477, + 0.9391088970005512, + 0.9180488996207714, + 0.9153503924608231, + 0.9064977057278156, + 0.9098593145608902, + 0.943278893828392, + 0.9173676371574402, + 0.9133489802479744, + 0.910778995603323, + 0.9112278930842876, + 0.9351889602839947, + 0.9206091053783894, + 1.0012490674853325, + 0.948827713727951, + 0.9221090003848076, + 0.9150090627372265, + 0.9451978839933872, + 0.9212889708578587, + 0.9213476441800594, + 0.9144898504018784, + 0.9283991530537605, + 0.9326986037194729, + 0.9245802648365498, + 0.91194873675704, + 0.9094998240470886, + 0.9439992718398571, + 0.9254477918148041, + 0.9154290892183781, + 0.9135482832789421, + 0.9146099910140038, + 0.9438488632440567, + 0.9208880364894867, + 0.9108590893447399, + 0.9134300053119659, + 0.9499089792370796, + 0.9173080325126648, + 0.9201299399137497, + 0.9136986918747425, + 0.9056692942976952, + 0.9427890181541443, + 0.9306492283940315, + 0.9141997434198856, + 0.9138588793575764, + 0.9189187549054623, + 0.9441790170967579, + 0.9153890423476696, + 1.127166673541069, + 0.942988321185112, + 0.9127892553806305, + 0.9146099910140038, + 0.9081992320716381, + 0.9100004099309444, + 0.937407836318016, + 0.9355582296848297, + 0.9257597848773003, + 1.0777967981994152, + 0.9521790780127048, + 0.9224596433341503, + 0.9155580773949623, + 0.9178398177027702, + 0.9179487824440002, + 0.9415699169039726, + 0.925789587199688, + 0.9095091372728348, + 0.9448602795600891, + 0.9113391861319542, + 0.9387182071805, + 0.931889284402132, + 0.9146593511104584, + 0.9189103730022907, + 0.9103580377995968, + 0.9285593405365944, + 0.9444779716432095, + 0.9093601256608963, + 0.9112688712775707, + 0.9152600541710854, + 0.913259107619524, + 0.9433380328118801, + 0.9305588901042938, + 0.9420579299330711, + 0.939429271966219, + 0.9514079429209232, + 0.9145592339336872, + 0.9177899919450283, + 0.9237583726644516, + 1.1966661550104618, + 0.9198901243507862, + 0.9176777675747871, + 0.9201401844620705, + 0.9145094081759453, + 0.9469189681112766, + 0.9323889389634132, + 0.9831287898123264, + 0.9175087325274944, + 0.9083477780222893, + 0.9128199890255928, + 0.9448383934795856, + 0.9224088862538338, + 0.9106900542974472, + 0.9146882221102715, + 0.9061302989721298, + 0.9474479593336582, + 0.9086085483431816, + 0.917539931833744, + 0.9158090688288212, + 0.9161899797618389, + 0.9466186165809631, + 0.9427177719771862, + 0.9181699715554714, + 0.9191087447106838, + 0.9142099879682064, + 0.940568745136261, + 0.9526200592517853, + 0.9437482804059982, + 0.9835967794060707, + 0.9336690418422222, + 0.9448379278182983, + 0.9429790079593658, + 0.9180400520563126, + 0.9205890819430351, + 0.9200000204145908, + 0.9677889756858349, + 0.926618929952383, + 0.910639762878418, + 0.925067812204361, + 0.9230594150722027, + 0.9344480931758881, + 0.9180689230561256, + 0.9410190396010876, + 0.934078823775053, + 0.9495499543845654, + 0.9261192753911018 + ], + "lattice": [ + 1.765538938343525, + 0.9497678838670254, + 0.9702779352664948, + 0.9513190016150475, + 0.9370879270136356, + 0.9365198202431202, + 0.9618094190955162, + 0.9413077495992184, + 0.941028818488121, + 0.9362790733575821, + 0.9533176198601723, + 0.9422888979315758, + 0.9767268784344196, + 0.9654080495238304, + 0.9436286054551601, + 0.9423480369150639, + 0.952528789639473, + 0.9689992293715477, + 0.9488179348409176, + 0.9797792881727219, + 0.9581889025866985, + 0.9522680193185806, + 0.9490880183875561, + 0.936530064791441, + 0.9455387480556965, + 0.9339801035821438, + 0.9620492346584797, + 0.9363587014377117, + 0.9682592935860157, + 0.936038326472044, + 0.9683882817626, + 0.9540892206132412, + 0.939477700740099, + 0.9394488297402859, + 0.975538045167923, + 0.9445990435779095, + 0.9470600634813309, + 0.9392290376126766, + 0.9484589099884033, + 0.9605791419744492, + 0.9373379871249199, + 0.9215488098561764, + 0.9257183410227299, + 0.9257891215384007, + 0.9335889481008053, + 0.9189988486468792, + 0.9253900498151779, + 0.9205378592014313, + 0.954468734562397, + 0.9222901426255703, + 0.9182491339743137, + 0.9249402210116386, + 0.920797698199749, + 0.9531592950224876, + 0.9355591610074043, + 0.9267381392419338, + 0.9263185784220695, + 0.9196382015943527, + 0.9427177719771862, + 0.9377100504934788, + 0.9500877931714058, + 0.9446986950933933, + 0.9218989871442318, + 0.9168479591608047, + 0.9143296629190445, + 0.916218850761652, + 0.9484686888754368, + 0.9179776534438133, + 0.9177681058645248, + 0.9135501459240913, + 0.9154989384114742, + 0.9441990405321121, + 0.9281677193939686, + 0.9083081968128681, + 0.9029200300574303, + 0.9170877747237682, + 0.9246291592717171, + 0.935588963329792, + 0.9146276861429214, + 0.9170002304017544, + 0.9149876423180103, + 0.9379498660564423, + 0.9177490137517452, + 0.9117093868553638, + 0.9124390780925751, + 0.9156987071037292, + 0.9495001286268234, + 0.9209690615534782, + 0.9118691086769104, + 0.9375498630106449, + 0.9313179180026054, + 0.9426590986549854, + 0.912137795239687, + 0.9159292094409466, + 0.9171096608042717, + 0.9147380478680134, + 0.9672287851572037, + 0.9257197380065918, + 1.5149721875786781, + 0.9167380630970001, + 0.9308289736509323, + 0.9152288548648357, + 0.9537991136312485, + 0.9407880716025829, + 0.9145187214016914, + 0.9237499907612801, + 0.9118178859353065, + 0.9479289874434471, + 0.9420276619493961, + 0.917328055948019, + 0.9154602885246277, + 0.9058988653123379, + 0.9517190046608448, + 0.9220479987561703, + 0.9272880852222443, + 0.9205588139593601, + 0.9190482087433338, + 0.9521688334643841, + 0.9226887486875057, + 0.9218379855155945, + 0.9509879164397717, + 0.9206677787005901, + 0.923090148717165, + 0.9243390522897243, + 0.9538000449538231, + 0.9240680374205112, + 0.9168083779513836, + 0.9173192083835602, + 0.9130388498306274, + 0.9474498219788074, + 0.9377580136060715, + 0.9153382852673531, + 0.9190402925014496, + 0.9059486910700798, + 0.9492388926446438, + 0.9219893254339695, + 0.916989054530859, + 0.9161387570202351, + 0.9166779927909374, + 0.945759005844593, + 1.0227677412331104, + 0.9236382320523262, + 0.9199180640280247, + 1.098706852644682, + 0.9346692822873592, + 0.9181490167975426, + 0.9182589128613472, + 0.9199781343340874, + 0.9462279267609119, + 0.918809324502945, + 0.9184796363115311, + 0.9463289752602577, + 0.9253788739442825, + 0.9236088953912258, + 0.9182090871036053, + 0.9168400429189205, + 0.9422190487384796, + 0.9380001574754715, + 0.9257993660867214, + 0.9165690280497074, + 0.9223897941410542, + 0.921150203794241, + 0.9146789088845253, + 0.9576492011547089, + 0.9823283180594444, + 0.9167981334030628, + 0.9179296903312206, + 0.9028487838804722, + 0.9452290832996368, + 0.9351479820907116, + 0.9203781373798847, + 0.9112004190683365, + 0.9510177187621593, + 0.9212400764226913, + 0.9172391146421432, + 0.9145187214016914, + 0.9171199053525925, + 0.9513087570667267, + 0.9315488860011101, + 0.9162081405520439, + 0.9158100001513958, + 0.9547579102218151, + 0.9276000782847404, + 0.9143692441284657, + 0.9097387082874775, + 0.9249397553503513, + 0.9471289813518524, + 0.9307186119258404, + 0.9225178509950638, + 0.9295381605625153, + 0.9449701756238937, + 0.9254477918148041, + 0.9153489954769611, + 0.9220489300787449, + 0.9207483381032944, + 0.9867390617728233, + 0.9254878386855125, + 0.9237080812454224, + 0.9209690615534782, + 1.1105570010840893, + 0.9202789515256882, + 0.9191688150167465, + 0.9312578476965427, + 0.9356793016195297, + 0.9158491156995296, + 0.9153792634606361, + 0.9092097170650959, + 0.9514079429209232, + 0.9182803332805634, + 0.9203990921378136, + 0.9216787293553352, + 0.9182202629745007, + 0.9453194215893745, + 0.9244601242244244, + 0.9152390994131565, + 0.9133191779255867, + 0.9212400764226913, + 0.9373379871249199, + 0.9123003110289574, + 0.9230193682014942, + 0.9641693904995918, + 0.9209192357957363, + 0.9431680664420128, + 0.9241090156137943, + 0.9311181493103504, + 0.9233597666025162, + 0.9186603128910065, + 0.9406488388776779, + 0.9222491644322872, + 0.9263376705348492, + 0.9236889891326427, + 0.9368602186441422, + 0.9382376447319984, + 0.9189099073410034, + 0.9202477522194386, + 0.9217076003551483, + 0.9463392198085785, + 0.9236694313585758, + 0.9167501702904701, + 0.9219879284501076, + 0.937257893383503, + 0.9605279192328453, + 0.9266589768230915, + 0.918959267437458, + 0.919559970498085, + 0.9230989962816238, + 0.9385980665683746, + 0.9200703352689743, + 0.9212889708578587, + 0.9071789681911469, + 0.9520789608359337, + 0.9265788830816746, + 0.9254100732505322, + 0.9170589037239552, + 0.9216289035975933, + 0.9462800808250904, + 0.9207590483129025, + 0.9230799041688442, + 0.9128390811383724, + 0.9126681834459305, + 0.9150090627372265, + 0.9136688895523548, + 0.9221886284649372, + 0.9350092150270939, + 0.9224489331245422, + 0.9191897697746754, + 0.9101680479943752, + 0.9534782730042934, + 0.9179599583148956, + 0.9188191033899784, + 0.9217993356287479, + 0.9167981334030628, + 0.9504775516688824, + 0.9323288686573505, + 0.9316480718553066, + 0.9163990616798401, + 0.9161289781332016, + 0.9456789121031761, + 0.9205890819430351, + 0.922888983041048, + 0.9564589709043503, + 0.9272689931094646, + 1.0536778718233109, + 0.9230081923305988, + 0.9587779641151428, + 0.9360290132462978, + 1.2419838458299637, + 0.9570876136422157, + 0.9335498325526714, + 0.9284289553761482, + 0.9243600070476532, + 0.9359894320368767, + 0.9422083385288715, + 0.9200097993016243, + 0.9196293540298939, + 0.9214389137923717, + 0.9549688547849655, + 0.9383088909089565, + 0.9281402453780174, + 0.9505683556199074, + 0.9787688031792641, + 0.9167180396616459, + 0.9248089045286179, + 0.9382781572639942, + 0.9527080692350864, + 0.940829049795866, + 0.9160386398434639, + 0.9339288808405399, + 0.9216079488396645, + 0.9825783781707287, + 0.9389091283082962, + 0.935697928071022, + 0.9130686521530151, + 0.9433780796825886, + 0.9281178936362267, + 0.9170500561594963, + 1.1645047925412655, + 0.9475680999457836, + 1.0751979425549507, + 0.9212777949869633, + 0.9214188903570175, + 0.9204479865729809, + 0.9323186241090298, + 0.9533283300697803, + 0.9225979447364807, + 0.9295791387557983, + 0.9197979234158993, + 0.9175296872854233, + 1.0288390330970287, + 0.918148085474968, + 0.9339191019535065, + 0.9143278002738953, + 0.9469790384173393, + 0.9135790169239044, + 0.9137592278420925, + 0.9289789013564587, + 0.9185983799397945, + 0.9491890668869019, + 0.917570199817419, + 0.9633880108594894, + 0.9211390279233456, + 0.9193699806928635, + 0.9529977105557919, + 0.9248387068510056, + 1.2921150773763657, + 0.9484579786658287, + 0.9249988943338394, + 0.9184703230857849, + 0.9258692152798176, + 0.9153787977993488, + 0.9480179287493229, + 0.9433478116989136, + 0.9232689626514912, + 0.9219981729984283, + 0.9151799604296684, + 1.278185285627842, + 0.9216694161295891, + 0.920529942959547, + 0.9509888477623463, + 0.9257481433451176, + 0.9406688623130322, + 0.9212796576321125, + 0.9181387722492218, + 0.9455890394747257, + 0.9226989932358265, + 0.920488964766264, + 0.9195101447403431, + 0.9178686887025833, + 0.9422800503671169, + 0.9352890774607658, + 0.9206477552652359, + 0.9210994467139244, + 0.9456779807806015, + 0.9177988395094872, + 0.9194989688694477, + 0.9200889617204666, + 0.9111198596656322, + 0.9449189528822899, + 0.9185979142785072, + 0.9075701236724854, + 0.9632180444896221, + 0.9215492755174637, + 0.9526279754936695, + 0.9286403656005859, + 0.9245593100786209, + 0.9224889799952507, + 0.9205900132656097, + 0.9494377300143242, + 0.9433678351342678, + 0.9126686491072178, + 0.9157783351838589, + 0.9186598472297192, + 0.9508980438113213, + 1.0470272973179817, + 0.9211101569235325, + 0.9207581169903278, + 0.9519588202238083, + 0.9418390691280365, + 0.9190086275339127, + 0.9197699837386608 + ], + "library": [ + 1.8124887719750404, + 0.990498811006546, + 0.9442288428544998, + 0.9397389367222786, + 0.9360280819237232, + 0.9555281139910221, + 0.9388192556798458, + 0.9439177811145782, + 0.9795292280614376, + 0.9900890290737152, + 1.6166707500815392, + 1.0939561761915684, + 0.9718490764498711, + 0.9452486410737038, + 0.9425478056073189, + 0.9457599371671677, + 0.9734691120684147, + 1.0052979923784733, + 0.9641088545322418, + 0.9749489836394787, + 0.9548892267048359, + 0.9406791068613529, + 0.972287729382515, + 0.9474782273173332, + 0.9423191659152508, + 0.9594280272722244, + 0.9445399045944214, + 0.9605293162167072, + 0.9434991516172886, + 0.9398097172379494, + 0.9348089806735516, + 0.9690080769360065, + 0.9449189528822899, + 0.9446889162063599, + 0.9361496195197105, + 0.9704879485070705, + 0.9461180306971073, + 0.9422199800610542, + 0.9382590651512146, + 0.9605190716683865, + 0.9284582920372486, + 0.9458488784730434, + 0.9510582312941551, + 0.9200689382851124, + 0.9257500059902668, + 0.9144376963376999, + 0.9220391511917114, + 0.9510978125035763, + 0.9341379627585411, + 0.9209699928760529, + 0.9128786623477936, + 0.9485790506005287, + 0.9291199967265129, + 0.9213387966156006, + 0.9229499846696854, + 0.924898311495781, + 0.9505278430879116, + 0.918789766728878, + 0.9219888597726822, + 0.9246603585779667, + 0.9226188994944096, + 0.924539752304554, + 0.9243292734026909, + 0.9571593254804611, + 0.9328089654445648, + 0.9180288761854172, + 0.9168088436126709, + 0.9257779456675053, + 0.9570792317390442, + 0.9425901807844639, + 0.9206589311361313, + 0.9216601029038429, + 0.9309379383921623, + 0.9380788542330265, + 0.9154090657830238, + 0.9191678836941719, + 0.9136800654232502, + 0.9485278278589249, + 0.9253690950572491, + 0.9224391542375088, + 1.3899640180170536, + 0.9225290268659592, + 0.9247078560292721, + 1.0179081000387669, + 0.942339189350605, + 0.9270980954170227, + 0.92316884547472, + 0.9299279190599918, + 1.0667582973837852, + 0.9216489270329475, + 0.9250887669622898, + 0.9251190349459648, + 0.9494181722402573, + 0.9432188235223293, + 0.9210999123752117, + 0.9222589433193207, + 0.9327391162514687, + 1.1100764386355877, + 0.9220680221915245, + 0.9340289980173111, + 0.9253597818315029, + 0.9582578204572201, + 0.9317188523709774, + 0.9445603936910629, + 0.9367889724671841, + 0.918049830943346, + 0.9488589130342007, + 0.9212889708578587, + 0.9296201169490814, + 0.9269285947084427, + 0.9269891306757927, + 0.9499178268015385, + 0.9385189041495323, + 0.9236498735845089, + 0.9199990890920162, + 0.9759492240846157, + 0.9230682626366615, + 0.9486782364547253, + 0.9244503453373909, + 0.9184079244732857, + 0.9248577989637852, + 0.9255791082978249, + 0.9227101691067219, + 0.926438719034195, + 0.9412388317286968, + 0.9211786091327667, + 0.9225988760590553, + 0.9436397813260555, + 0.9540980681777, + 0.942818820476532, + 0.9267390705645084, + 0.9239376522600651, + 0.9209485724568367, + 0.9509376250207424, + 0.9127589873969555, + 0.9188302792608738, + 0.9283488616347313, + 0.9518889710307121, + 0.9398777037858963, + 0.9227083064615726, + 0.9625782258808613, + 0.935479998588562, + 0.9141401387751102, + 0.9199287742376328, + 0.9151985868811607, + 0.9471680968999863, + 0.9247399866580963, + 0.9173490107059479, + 0.9175180457532406, + 0.9094499982893467, + 0.9468677453696728, + 0.9170090779662132, + 0.9166887030005455, + 0.9134788997471333, + 0.9017297998070717, + 0.9490679949522018, + 0.9161601774394512, + 0.9125280193984509, + 0.9186691604554653, + 0.912840012460947, + 0.9648781269788742, + 0.9515900164842606, + 0.9282580576837063, + 0.9209378622472286, + 0.9160288609564304, + 0.9580180048942566, + 0.934030395001173, + 0.924557913094759, + 0.9226780384778976, + 0.9193788282573223, + 0.949107576161623, + 0.9353300556540489, + 0.9262282401323318, + 0.9239180944859982, + 0.9567090310156345, + 0.9230277501046658, + 0.9180088527500629, + 0.9212694130837917, + 0.9170076809823513, + 0.956519041210413, + 0.9184498339891434, + 0.9247888810932636, + 0.9147990494966507, + 0.9524598717689514, + 0.9230691939592361, + 0.9238799102604389, + 0.9263190440833569, + 1.1510858312249184, + 0.9240289218723774, + 0.9320578537881374, + 0.9232987649738789, + 0.9523890912532806, + 0.9316690266132355, + 0.9242501109838486, + 0.9195799939334393, + 0.9476291015744209, + 0.9231790900230408, + 0.9208689443767071, + 0.9377789683640003, + 0.9190202690660954, + 0.9180591441690922, + 1.0792380198836327, + 0.9165676310658455, + 0.9145787917077541, + 1.2575252912938595, + 0.9246179834008217, + 0.9211399592459202, + 0.9371289052069187, + 0.9463080205023289, + 0.9206798858940601, + 1.327065285295248, + 0.9406278841197491, + 0.9326990693807602, + 0.9170682169497013, + 0.9119990281760693, + 0.9314799681305885, + 0.9423182345926762, + 0.9159990586340427, + 0.91205770149827, + 0.9158994071185589, + 0.9170691482722759, + 0.9199399501085281, + 0.9189997799694538, + 0.9404481388628483, + 0.918620266020298, + 0.9182877838611603, + 0.9154588915407658, + 0.9171199053525925, + 0.9457883425056934, + 0.9365794248878956, + 0.9193187579512596, + 0.9118891321122646, + 0.9273090399801731, + 0.9281393140554428, + 0.9138300083577633, + 0.911288894712925, + 0.9156279265880585, + 0.9517092257738113, + 0.9278091602027416, + 0.9133596904575825, + 0.9878487326204777, + 0.9188288822770119, + 0.9156297892332077, + 0.9204992093145847, + 0.9433692321181297, + 0.9213602170348167, + 0.9177890606224537, + 0.9137396700680256, + 0.9121093899011612, + 0.9478679858148098, + 0.921610277146101, + 0.9189988486468792, + 0.913579948246479, + 0.9168279357254505, + 0.9487681090831757, + 0.9240093640983105, + 0.9186379611492157, + 0.9175590239465237, + 0.9285989217460155, + 0.9442283771932125, + 0.9172288700938225, + 0.9358986280858517, + 0.9356378577649593, + 0.9197397157549858, + 0.9163990616798401, + 0.9184498339891434, + 0.9544189088046551, + 0.9300787933170795, + 0.923600047826767, + 0.9256191551685333, + 0.9266990236938, + 0.9533893316984177, + 0.9268983267247677, + 0.912799034267664, + 0.9169988334178925, + 0.9234389290213585, + 0.9463788010179996, + 0.923477578908205, + 0.9219800122082233, + 0.922229140996933, + 0.9559681639075279, + 0.9230789728462696, + 1.0141776874661446, + 0.9267199784517288, + 0.953309703618288, + 0.9249676950275898, + 0.9208498522639275, + 0.924909021705389, + 0.9206496179103851, + 0.9483885951340199, + 0.9307591244578362, + 0.9207702241837978, + 0.9283078834414482, + 0.9182686917483807, + 0.9500486776232719, + 0.9306678548455238, + 0.9251590818166733, + 0.9239190258085728, + 0.9508091025054455, + 0.9218589402735233, + 0.9260890074074268, + 0.9197890758514404, + 0.924909021705389, + 0.9478586725890636, + 0.9179092012345791, + 0.9207697585225105, + 0.9198379702866077, + 0.9280792437493801, + 0.93484902754426, + 0.9130979888141155, + 0.9198789484798908, + 0.9237281046807766, + 0.9507378563284874, + 0.9198291227221489, + 0.9203278459608555, + 0.9143389761447906, + 0.927547924220562, + 0.9425482712686062, + 0.9186598472297192, + 0.9156493470072746, + 0.9513488039374352, + 0.9527583606541157, + 0.9265178814530373, + 0.924218911677599, + 0.9238277561962605, + 0.9062699973583221, + 0.9406786412000656, + 0.9227488189935684, + 0.9240699000656605, + 0.9217290207743645, + 0.9244191460311413, + 0.9498982690274715, + 0.9231679141521454, + 0.9502293542027473, + 0.91946916654706, + 0.9301598183810711, + 1.0262690484523773, + 0.9220577776432037, + 0.9154300205409527, + 0.9126788936555386, + 0.92339888215065, + 0.9257779456675053, + 0.9307488799095154, + 0.9344480931758881, + 0.9160786867141724, + 0.9174998849630356, + 0.9103678166866302, + 0.9525390341877937, + 0.948568806052208, + 0.9371289052069187, + 0.9201490320265293, + 0.9157601743936539, + 0.9278878569602966, + 0.9357393719255924, + 0.926080159842968, + 0.9141289629042149, + 0.9289700537919998, + 1.25575577840209, + 0.914539210498333, + 0.9507196955382824, + 0.9077489376068115, + 0.934078823775053, + 0.9373091161251068, + 0.9201187640428543, + 0.9172898717224598, + 1.0889368131756783, + 0.9311079047620296, + 0.916619785130024, + 0.9201481007039547, + 0.9165992960333824, + 0.9429380297660828, + 0.9226789698004723, + 0.9186402894556522, + 0.9150588884949684, + 0.9233099408447742, + 0.9436891414225101, + 0.9133392013609409, + 0.9166300296783447, + 0.9145992808043957, + 0.9553791023790836, + 0.9281388483941555, + 0.9203697554767132, + 0.9214989840984344, + 0.9585786610841751, + 0.9427592158317566, + 0.913538970053196, + 0.9277397766709328, + 0.9154994040727615, + 0.9424788877367973, + 0.9189797565340996, + 0.9209690615534782, + 1.2573846615850925, + 0.9188493713736534, + 0.9219478815793991, + 0.920579768717289, + 0.9545581415295601, + 0.9311377070844173, + 0.9138388559222221, + 0.9161289781332016, + 0.910670030862093 + ] + }, + "warm_ms": { + "control": [ + 13.840994331985712, + 1.2246961705386639, + 1.1204173788428307 + ], + "exact": [ + 2.6819580234587193, + 1.0848380625247955, + 1.0634558275341988 + ], + "lattice": [ + 2.607978880405426, + 1.0926970280706882, + 1.033727079629898 + ], + "library": [ + 1.8400377593934536, + 1.1069579049944878, + 1.052826177328825 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 0.9420530404895544, + "p10_ms": 0.931708887219429, + "p90_ms": 0.974302040413022, + "min_ms": 0.920858234167099, + "max_ms": 1.85078801587224, + "mean_ms": 0.9637079632375389 + }, + "exact": { + "n": 400, + "median_ms": 0.9217537008225918, + "p10_ms": 0.910427700728178, + "p90_ms": 0.9680979419499636, + "min_ms": 0.8966499008238316, + "max_ms": 1.395943108946085, + "mean_ms": 0.9370059834327549 + }, + "lattice": { + "n": 400, + "median_ms": 0.924594234675169, + "p10_ms": 0.9152380749583244, + "p90_ms": 0.9544976521283388, + "min_ms": 0.9028487838804722, + "max_ms": 1.765538938343525, + "mean_ms": 0.9394503140356392 + }, + "library": { + "n": 400, + "median_ms": 0.925139058381319, + "p10_ms": 0.915495352819562, + "p90_ms": 0.9565380401909351, + "min_ms": 0.9017297998070717, + "max_ms": 1.8124887719750404, + "mean_ms": 0.9423916589003056 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 1.018882667833765, + "ci90_low": 1.016823639888336, + "ci90_high": 1.0209669143762952, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.022022520385703, + "ci90_low": 1.0183148297175975, + "ci90_high": 1.0244757819653185, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 0.9969278049266929, + "ci90_low": 0.9941834519315462, + "ci90_high": 1.0006535748929128, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 1.000589257087831, + "ci90_low": 0.998745250097687, + "ci90_high": 1.0029466467385513, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 1.0182826375721603, + "ci90_low": 1.0160893654408243, + "ci90_high": 1.0199666337200883, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.0192550451266496, + "p10": 1.0065985197583267, + "p90": 1.0281243530510522 + }, + "minimum_detectable_improvement": 0.04521311578322463, + "compile": { + "control": { + "lower_s": 3.5923905218951404, + "compile_s": 6.283644227311015, + "first_call_s": 0.014380729291588068, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 21982160.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 7834696, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 937624, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1464012800, + "rss_after_compile_bytes": 1468153856, + "rss_delta_bytes": 4141056, + "hlo_sha256": "85834439f309ca81", + "hlo_lines": 9721, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 3.3953418070450425, + "compile_s": 6.146717385854572, + "first_call_s": 0.015015651006251574, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 13642991.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 3679560, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1395944, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1468153856, + "rss_after_compile_bytes": 1468436480, + "rss_delta_bytes": 282624, + "hlo_sha256": "d17ae65eb1512edf", + "hlo_lines": 9649, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 3.494597635231912, + "compile_s": 6.155396263115108, + "first_call_s": 0.015879790764302015, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 10819583.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 1528136, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1127048, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1468436480, + "rss_after_compile_bytes": 1468604416, + "rss_delta_bytes": 167936, + "hlo_sha256": "a32b3962390a637e", + "hlo_lines": 9649, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 3.6282867351546884, + "compile_s": 6.186858799308538, + "first_call_s": 0.01581833092495799, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 10819583.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 1528136, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1127048, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1468604416, + "rss_after_compile_bytes": 1469362176, + "rss_delta_bytes": 757760, + "hlo_sha256": "a32b3962390a637e", + "hlo_lines": 9649, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0, + 1, + 2, + 3 + ], + [ + 4, + 5, + 6, + 7 + ], + [ + 8, + 9, + 10, + 11 + ], + [ + 12, + 13, + 14, + 15 + ] + ], + "values": { + "control": [ + [ + 7.743201200876806, + 4.90119982600354, + 8.551453428732433, + 7.64017039895814 + ], + [ + 7.25809567478034, + 9.29357838657636, + 3.033879650515197, + 8.714615086385908 + ], + [ + 4.73517315947449, + 3.2233889243165876, + 9.296501815740568, + 6.74861581547119 + ], + [ + -1.402814315064127, + 0.5885274382499839, + 6.162997261446637, + -10.499150878933385 + ] + ], + "exact": [ + [ + 7.743201200876806, + 4.90119982600354, + 8.551453428732433, + 7.64017039895814 + ], + [ + 7.25809567478034, + 9.29357838657636, + 3.033879650515197, + 8.714615086385908 + ], + [ + 4.73517315947449, + 3.2233889243165876, + 9.296501815740568, + 6.74861581547119 + ], + [ + -1.402814315064127, + 0.5885274382499839, + 6.162997261446637, + -10.499150878933385 + ] + ], + "lattice": [ + [ + 7.743201200876806, + 4.90119982600354, + 8.551453428732433, + 7.64017039895814 + ], + [ + 7.25809567478034, + 9.29357838657636, + 3.033879650515197, + 8.714615086385908 + ], + [ + 4.73517315947449, + 3.2233889243165876, + 9.296501815740568, + 6.74861581547119 + ], + [ + -1.402814315064127, + 0.5885274382499839, + 6.162997261446637, + -10.499150878933385 + ] + ], + "library": [ + [ + 7.743201200876806, + 4.90119982600354, + 8.551453428732433, + 7.64017039895814 + ], + [ + 7.25809567478034, + 9.29357838657636, + 3.033879650515197, + 8.714615086385908 + ], + [ + 4.73517315947449, + 3.2233889243165876, + 9.296501815740568, + 6.74861581547119 + ], + [ + -1.402814315064127, + 0.5885274382499839, + 6.162997261446637, + -10.499150878933385 + ] + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + } + }, + "simple_plain": { + "label": "simple_plain", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 1.0342379100620747, + 0.9784284047782421, + 0.9380877017974854, + 0.9555392898619175, + 0.9124977514147758, + 0.9837681427598, + 0.9402697905898094, + 0.9180577471852303, + 0.9030397050082684, + 1.02301687002182, + 0.9174887090921402, + 0.9364387951791286, + 0.9639579802751541, + 0.9457981213927269, + 0.9311200119554996, + 0.9182593785226345, + 0.9428691118955612, + 0.9036390110850334, + 0.900838989764452, + 0.8958196267485619, + 0.9694090113043785, + 0.8214893750846386, + 0.8230209350585938, + 0.8140197023749352, + 0.8461698889732361, + 0.867319293320179, + 0.8223508484661579, + 0.8472003974020481, + 0.8233296684920788, + 0.8219308219850063, + 0.8175000548362732, + 0.8179210126399994, + 0.8241301402449608, + 0.8748206309974194, + 0.8650487288832664, + 0.8439100347459316, + 0.8227811194956303, + 0.8246791549026966, + 0.8231010288000107, + 0.8252989500761032, + 0.8193408139050007, + 0.8330801501870155, + 0.8128508925437927, + 0.8308300748467445, + 0.8530803024768829, + 0.883408822119236, + 0.8295709267258644, + 0.8212891407310963, + 0.8295001462101936, + 0.8296212181448936, + 0.829049851745367, + 0.8215303532779217, + 0.8587585762143135, + 0.8640699088573456, + 0.8303900249302387, + 0.8207401260733604, + 0.8185808546841145, + 0.8332799188792706, + 0.8182008750736713, + 0.8285199292004108, + 0.8303411304950714, + 0.8282898925244808, + 0.8329502306878567, + 0.8274787105619907, + 0.8783298544585705, + 0.8261301554739475, + 0.8279602043330669, + 0.8375798352062702, + 0.8266898803412914, + 0.819510780274868, + 0.8170101791620255, + 0.8252407424151897, + 0.8600200526416302, + 0.8304109796881676, + 0.835958868265152, + 0.824769027531147, + 0.8190511725842953, + 0.8284300565719604, + 0.8307709358632565, + 0.8243299089372158, + 0.8319700136780739, + 0.8622100576758385, + 0.8724699728190899, + 0.8177310228347778, + 0.8281799964606762, + 0.8255201391875744, + 0.8201608434319496, + 0.8216900750994682, + 0.8172309026122093, + 0.826569739729166, + 0.8640410378575325, + 0.8195801638066769, + 0.8361814543604851, + 0.8479389362037182, + 0.8171899244189262, + 0.8169412612915039, + 0.860429834574461, + 0.8497810922563076, + 0.8239187300205231, + 0.8145300671458244, + 0.8723507635295391, + 0.8179200813174248, + 0.8606798946857452, + 0.8513801731169224, + 0.8252509869635105, + 0.8130902424454689, + 0.8073500357568264, + 0.8149989880621433, + 0.8268100209534168, + 0.8243913762271404, + 0.8282498456537724, + 0.8555497042834759, + 0.8201804012060165, + 0.8315606974065304, + 0.8200001902878284, + 0.8170497603714466, + 0.8264300413429737, + 0.8076401427388191, + 0.8131111972033978, + 0.8255899883806705, + 0.8162697777152061, + 0.8310908451676369, + 0.8639702573418617, + 0.8278507739305496, + 0.8151601068675518, + 0.8214809931814671, + 0.8155191317200661, + 0.8096899837255478, + 0.819680280983448, + 0.8161002770066261, + 0.8930503390729427, + 0.8493103086948395, + 0.8063009008765221, + 0.810219906270504, + 0.8261110633611679, + 0.8111400529742241, + 0.8178497664630413, + 0.8104313164949417, + 0.8152802474796772, + 0.8644009940326214, + 0.8561806753277779, + 0.8243890479207039, + 0.8327402174472809, + 0.8202400058507919, + 1.0038292966783047, + 0.825720839202404, + 0.8426690474152565, + 0.8601797744631767, + 0.8042696863412857, + 0.8201007731258869, + 0.8109798654913902, + 0.8125212043523788, + 0.8101202547550201, + 0.809740275144577, + 0.8093211799860001, + 0.8265492506325245, + 0.8690599352121353, + 0.8139298297464848, + 0.8400897495448589, + 0.8133803494274616, + 0.8275890722870827, + 0.8204407058656216, + 0.8136900141835213, + 0.8247089572250843, + 0.8100308477878571, + 0.8507301099598408, + 0.8635506965219975, + 0.8254800923168659, + 0.8207312785089016, + 0.8124802261590958, + 0.8194711990654469, + 0.8192900568246841, + 0.8134199306368828, + 0.814871396869421, + 0.8738492615520954, + 0.8332007564604282, + 0.8263099007308483, + 0.8194106630980968, + 0.8216002024710178, + 0.8158190175890923, + 0.858859159052372, + 0.8131409995257854, + 0.8113100193440914, + 0.8259797468781471, + 0.865790992975235, + 0.8269301615655422, + 0.8331499993801117, + 0.82798907533288, + 0.8141910657286644, + 0.8214600384235382, + 0.8169403299689293, + 0.8253096602857113, + 0.8603888563811779, + 0.8519897237420082, + 0.8292198181152344, + 0.8232807740569115, + 0.8115097880363464, + 0.817800872027874, + 0.9754779748618603, + 0.8776686154305935, + 0.8709202520549297, + 0.8244500495493412, + 0.8359900675714016, + 0.8248500525951385, + 0.8170111104846001, + 0.8142897859215736, + 0.8302303031086922, + 0.8660000748932362, + 0.8266996592283249, + 0.813131220638752, + 0.826400239020586, + 0.8167708292603493, + 0.8131102658808231, + 0.8171112276613712, + 0.8056797087192535, + 0.8182204328477383, + 0.8536097593605518, + 0.8226600475609303, + 0.8243601769208908, + 0.821978785097599, + 0.8276798762381077, + 0.8246810175478458, + 0.8211890235543251, + 0.8168509230017662, + 0.8273799903690815, + 0.8165710605680943, + 0.8278000168502331, + 0.8734590373933315, + 0.8213697001338005, + 0.8266591466963291, + 0.8191508240997791, + 0.8138301782310009, + 0.8172309026122093, + 0.816709827631712, + 0.8133896626532078, + 0.8645206689834595, + 0.8354499004781246, + 0.8449899032711983, + 0.8314396254718304, + 0.8231811225414276, + 0.8233808912336826, + 0.8304300718009472, + 0.8493689820170403, + 0.8494607172906399, + 0.8179200813174248, + 0.8259909227490425, + 0.8217496797442436, + 0.8106199093163013, + 0.8142800070345402, + 0.8194409310817719, + 0.8116103708744049, + 0.8694990538060665, + 0.8241496980190277, + 0.8214297704398632, + 0.8163708262145519, + 0.8146902546286583, + 0.8192011155188084, + 0.8237496949732304, + 1.1881259270012379, + 0.8471300825476646, + 0.8716396987438202, + 0.8241091854870319, + 0.8593788370490074, + 0.8231010288000107, + 0.828650314360857, + 0.8128308691084385, + 0.8155298419296741, + 0.8178609423339367, + 0.8141999132931232, + 0.8286307565867901, + 0.8787186816334724, + 0.8092401549220085, + 0.832501333206892, + 0.8150502108037472, + 0.8457000367343426, + 0.8359099738299847, + 0.8210306987166405, + 0.8726189844310284, + 0.816460233181715, + 0.8332710713148117, + 0.8322210051119328, + 0.8673602715134621, + 0.8075502701103687, + 0.8402303792536259, + 0.8186101913452148, + 0.821561086922884, + 0.8143000304698944, + 0.8148811757564545, + 0.8125500753521919, + 0.8644699119031429, + 0.8212998509407043, + 0.8300496265292168, + 0.8176607079803944, + 0.8153100498020649, + 0.8297800086438656, + 0.8077500388026237, + 0.8226907812058926, + 0.8649891242384911, + 0.8113589137792587, + 0.8270111866295338, + 0.8707302622497082, + 0.8206097409129143, + 0.8296696469187737, + 0.8147107437252998, + 0.8289492689073086, + 0.8165310136973858, + 0.8282498456537724, + 0.8719400502741337, + 0.8073300123214722, + 0.8426401764154434, + 0.8224309422075748, + 0.8157598786056042, + 0.8186511695384979, + 0.8145892061293125, + 0.8480199612677097, + 0.8770790882408619, + 0.814459752291441, + 0.8152010850608349, + 0.8168797940015793, + 0.8139610290527344, + 0.8234800770878792, + 0.8403700776398182, + 0.8167903870344162, + 0.8163806051015854, + 0.8547687903046608, + 0.8095400407910347, + 0.8327709510922432, + 0.8188299834728241, + 0.8154711686074734, + 0.8155489340424538, + 0.8099810220301151, + 0.8280002512037754, + 0.8631711825728416, + 0.8180891163647175, + 0.9575877338647842, + 0.8208402432501316, + 0.8151000365614891, + 0.8339998312294483, + 0.8644089102745056, + 0.8142297156155109, + 0.8520600385963917, + 0.8210199885070324, + 0.832870602607727, + 0.819170381873846, + 0.8666198700666428, + 0.8155996911227703, + 0.8230400271713734, + 0.8212407119572163, + 0.8177901618182659, + 0.814500730484724, + 0.8103996515274048, + 0.8120210841298103, + 0.868569128215313, + 0.8183205500245094, + 0.8244896307587624, + 0.8072201162576675, + 0.8115805685520172, + 0.8198199793696404, + 0.8214511908590794, + 0.8330391719937325, + 0.8230698294937611, + 0.8228900842368603, + 0.8099307306110859, + 0.8233501575887203, + 0.8130907081067562, + 0.8244388736784458, + 0.8669397793710232, + 0.8287797681987286, + 0.8472590707242489, + 0.8214609697461128, + 0.8234502747654915, + 0.8181901648640633, + 0.8110599592328072, + 0.8478011004626751, + 0.8631190285086632, + 0.8194306865334511, + 0.8335001766681671, + 0.822130125015974, + 0.8195699192583561, + 0.8190302178263664, + 0.830559991300106, + 0.8631590753793716, + 0.8216807618737221, + 0.8283299393951893, + 0.8205999620258808, + 0.8251308463513851, + 0.8271499536931515, + 0.8173310197889805, + 0.8611297234892845, + 0.817371066659689, + 0.8278689347207546, + 0.8252603001892567, + 0.8231410756707191, + 0.8258898742496967, + 0.8122408762574196, + 0.8485689759254456, + 0.863109715282917, + 0.8178297430276871, + 0.8266898803412914, + 0.8262996561825275 + ], + "exact": [ + 1.5187817625701427, + 0.9137587621808052, + 0.9586289525032043, + 0.9123901836574078, + 0.8984487503767014, + 0.8856500498950481, + 0.8997088298201561, + 0.9397701360285282, + 1.276165246963501, + 0.9316187351942062, + 0.9113787673413754, + 0.9021991863846779, + 0.8932892233133316, + 0.8980291895568371, + 0.9231576696038246, + 0.9006778709590435, + 0.8966098539531231, + 0.8708289824426174, + 0.8944501169025898, + 0.8867490105330944, + 0.917620025575161, + 0.8815289475023746, + 0.9199990890920162, + 0.9027887135744095, + 0.8748089894652367, + 0.8576298132538795, + 0.8425288833677769, + 0.8858097717165947, + 0.8590091019868851, + 0.8648689836263657, + 0.8471999317407608, + 0.8447989821434021, + 0.8518397808074951, + 0.8558402769267559, + 0.9078700095415115, + 0.8568698540329933, + 0.8512288331985474, + 0.8509908802807331, + 0.8462700061500072, + 0.8430513553321362, + 0.9271586313843727, + 0.817940104752779, + 0.8641602471470833, + 0.8254610002040863, + 0.8165701292455196, + 0.8393810130655766, + 0.8257799781858921, + 0.8706599473953247, + 0.8354601450264454, + 0.8483598940074444, + 0.8286708034574986, + 0.8166898041963577, + 0.8125710301101208, + 0.8136201649904251, + 0.8534509688615799, + 0.8741398341953754, + 0.8179405704140663, + 0.8375491015613079, + 0.8187303319573402, + 0.854989979416132, + 0.8581499569118023, + 0.8121398277580738, + 0.8211107924580574, + 0.8087698370218277, + 0.8094301447272301, + 0.8215708658099174, + 0.8287397213280201, + 0.8077407255768776, + 0.8205599151551723, + 0.8573201484978199, + 0.8509787730872631, + 0.8098012767732143, + 0.8350899443030357, + 0.8189696818590164, + 0.8151810616254807, + 0.8424599654972553, + 0.8124411106109619, + 0.8078799583017826, + 0.8660899475216866, + 0.8232798427343369, + 0.825831200927496, + 0.8194702677428722, + 0.8185598999261856, + 0.8239899761974812, + 0.8559310808777809, + 0.8164802566170692, + 0.8301311172544956, + 0.8238400332629681, + 0.8190697990357876, + 0.8020210079848766, + 0.8207201026380062, + 0.8141109719872475, + 0.8185701444745064, + 0.8633597753942013, + 0.8689588867127895, + 0.8242805488407612, + 0.9749489836394787, + 0.8182697929441929, + 0.8133808150887489, + 0.8616787381470203, + 0.817510299384594, + 0.8132411167025566, + 0.8111200295388699, + 0.823270995169878, + 0.8746790699660778, + 0.8329399861395359, + 0.8188602514564991, + 0.8196700364351273, + 0.8201100863516331, + 0.817849300801754, + 0.8163610473275185, + 0.8146399632096291, + 0.8557396940886974, + 0.8573099039494991, + 0.8222511969506741, + 0.8097300305962563, + 0.8139503188431263, + 0.8123200386762619, + 0.8128499612212181, + 0.8110906928777695, + 0.849009957164526, + 0.8289297111332417, + 0.8110599592328072, + 0.8192998357117176, + 0.8122897706925869, + 0.8180798031389713, + 0.8141607977449894, + 0.8451002649962902, + 0.8613001555204391, + 0.8097398094832897, + 1.0702479630708694, + 0.835370272397995, + 0.8058301173150539, + 0.8238907903432846, + 0.8513699285686016, + 0.8352808654308319, + 0.802250113338232, + 0.8344808593392372, + 0.8116797544062138, + 0.8181687444448471, + 0.8097398094832897, + 0.8081700652837753, + 0.8131298236548901, + 0.8208001963794231, + 0.865609385073185, + 0.8228211663663387, + 0.8252202533185482, + 0.8085509762167931, + 0.8035497739911079, + 0.8144797757267952, + 0.8126790635287762, + 0.8164499886333942, + 0.8172709494829178, + 0.8579590357840061, + 0.8121710270643234, + 0.819619745016098, + 0.8133011870086193, + 0.8094399236142635, + 0.8093700744211674, + 0.8133896626532078, + 0.8300808258354664, + 0.8345800451934338, + 0.873710960149765, + 0.8061099797487259, + 0.8099507540464401, + 0.8091200143098831, + 0.8086510933935642, + 0.8087200112640858, + 0.8064000867307186, + 0.8112001232802868, + 0.8256197907030582, + 0.864929985255003, + 0.8162599988281727, + 0.8222311735153198, + 0.8149100467562675, + 0.804130919277668, + 0.809249933809042, + 0.8097891695797443, + 0.8152099326252937, + 0.8585602045059204, + 0.8580898866057396, + 0.8208900690078735, + 0.8112899959087372, + 0.8173910900950432, + 0.806210096925497, + 0.8170008659362793, + 0.8087600581347942, + 0.8139996789395809, + 0.8630198426544666, + 0.8645602501928806, + 0.8119610138237476, + 0.8348789997398853, + 0.8202707394957542, + 0.8246698416769505, + 1.1883950792253017, + 0.8126413449645042, + 0.8074496872723103, + 0.8125812746584415, + 0.8137598633766174, + 0.8224900811910629, + 0.8442611433565617, + 0.8110399357974529, + 0.8089900948107243, + 0.8251299150288105, + 0.8663400076329708, + 0.8172709494829178, + 0.8098003454506397, + 0.8121510036289692, + 0.8175899274647236, + 0.8154800161719322, + 0.8179200813174248, + 0.8141300641000271, + 0.8541988208889961, + 0.8722287602722645, + 0.810110941529274, + 0.8222688920795918, + 0.810540746897459, + 0.810959842056036, + 0.8119610138237476, + 0.8225198835134506, + 0.8284789510071278, + 0.8180900476872921, + 0.8692699484527111, + 0.8483291603624821, + 0.8289809338748455, + 0.82388985902071, + 0.8157212287187576, + 0.8116899989545345, + 0.8099409751594067, + 0.8164802566170692, + 0.8100098930299282, + 0.8634300902485847, + 0.8186101913452148, + 0.8269911631941795, + 0.8149901404976845, + 0.9630601853132248, + 0.8217198774218559, + 0.8296999149024487, + 0.8641909807920456, + 0.806950032711029, + 0.8443803526461124, + 0.8267601951956749, + 0.8579599671065807, + 0.8464986458420753, + 0.8181300945580006, + 0.828529242426157, + 0.8263504132628441, + 0.8942787535488605, + 0.8680899627506733, + 0.8192909881472588, + 0.8296896703541279, + 0.8285702206194401, + 0.8201100863516331, + 0.8162898011505604, + 0.8704890497028828, + 0.8480497635900974, + 0.8189007639884949, + 0.8111395873129368, + 0.8602309972047806, + 0.8224300108850002, + 0.8190912194550037, + 0.8352389559149742, + 0.8226810023188591, + 0.8272901177406311, + 0.861309003084898, + 0.8241808973252773, + 0.8034901693463326, + 0.815830659121275, + 0.8120900020003319, + 0.8329907432198524, + 0.8332598954439163, + 0.8548591285943985, + 0.8532502688467503, + 0.830379780381918, + 0.8255806751549244, + 0.8199699223041534, + 0.8127912878990173, + 0.8121198043227196, + 0.874839723110199, + 0.8497107774019241, + 0.8412990719079971, + 0.8128797635436058, + 0.8135996758937836, + 0.8164709433913231, + 0.8647991344332695, + 0.8161300793290138, + 0.8360808715224266, + 0.8084201253950596, + 0.8139810524880886, + 0.8162199519574642, + 0.8126208558678627, + 0.8214497938752174, + 0.8585401810705662, + 0.8161901496350765, + 0.8209096267819405, + 0.8114096708595753, + 0.8081099949777126, + 0.8124811574816704, + 0.8094399236142635, + 0.8218907751142979, + 0.8168690837919712, + 0.8283997885882854, + 0.870758667588234, + 0.8071199990808964, + 0.807600561529398, + 0.8361502550542355, + 0.8343108929693699, + 1.0044071823358536, + 0.8517508395016193, + 0.8178800344467163, + 0.8250796236097813, + 0.8183009922504425, + 0.8086203597486019, + 0.8062310516834259, + 0.8051800541579723, + 0.8225408382713795, + 0.8642403408885002, + 0.8041597902774811, + 0.8637602441012859, + 0.8096303790807724, + 0.8234106935560703, + 0.8288701064884663, + 0.816121231764555, + 0.8156700059771538, + 0.825210940092802, + 0.8682799525558949, + 0.8136499673128128, + 0.8053509518504143, + 0.8177398703992367, + 0.8115512318909168, + 0.8152900263667107, + 0.8212709799408913, + 0.9607980027794838, + 0.8202004246413708, + 0.8196709677577019, + 0.8182697929441929, + 0.8402909152209759, + 0.8271201513707638, + 0.8120108395814896, + 0.82019018009305, + 0.8247308433055878, + 0.8168900385499, + 0.8216709829866886, + 0.812299083918333, + 0.8108909241855145, + 0.8517801761627197, + 0.8463500998914242, + 0.8173100650310516, + 0.8135498501360416, + 0.8731000125408173, + 0.8324189111590385, + 0.8149510249495506, + 0.8686590008437634, + 0.8273608982563019, + 0.8202097378671169, + 0.8165491744875908, + 0.810620840638876, + 0.8180500008165836, + 0.8147507905960083, + 0.8205203339457512, + 0.8528996258974075, + 0.8693099953234196, + 0.8082408457994461, + 0.8332203142344952, + 0.816048588603735, + 0.8092210628092289, + 0.816690269857645, + 0.8068308234214783, + 0.8177193813025951, + 0.8710701949894428, + 0.821179710328579, + 0.8366890251636505, + 0.8138399571180344, + 0.82411989569664, + 0.8206409402191639, + 0.8195000700652599, + 0.8727400563657284, + 0.8447691798210144, + 0.8175303228199482, + 0.8455710485577583, + 0.8208500221371651, + 0.8181808516383171, + 0.8256197907030582, + 0.8678301237523556, + 0.8206400088965893, + 0.8259201422333717, + 0.8120499551296234, + 0.8407789282500744, + 0.8115596137940884, + 0.8135600946843624, + 0.8461610414087772, + 0.8524488657712936, + 0.8070711046457291, + 0.821980182081461, + 0.8109300397336483, + 0.8149812929332256, + 0.8140299469232559, + 0.8143209852278233, + 0.8522788994014263, + 0.8533908985555172 + ], + "lattice": [ + 1.468441914767027, + 0.9430493228137493, + 0.8819890208542347, + 0.8788700215518475, + 0.8703297935426235, + 0.8820691145956516, + 0.9048497304320335, + 0.9205690585076809, + 0.879249069839716, + 0.9060199372470379, + 0.8761286735534668, + 0.9145592339336872, + 0.9165978990495205, + 0.8852891623973846, + 0.8803200908005238, + 0.8810390718281269, + 0.878519844263792, + 0.9306278079748154, + 0.8784490637481213, + 0.9081000462174416, + 0.91217877343297, + 0.8605089969933033, + 0.8668201044201851, + 0.8447999134659767, + 0.8444110862910748, + 0.8542998693883419, + 0.892499927431345, + 0.842320267111063, + 0.8470597676932812, + 0.8683702908456326, + 0.8411193266510963, + 1.2190458364784718, + 0.8688489906489849, + 0.8797990158200264, + 0.8646403439342976, + 0.852479599416256, + 0.8797901682555676, + 0.8551497012376785, + 0.8539888076484203, + 0.8421801030635834, + 0.8336012251675129, + 0.8844686672091484, + 0.8005611598491669, + 0.8437898941338062, + 0.81642996519804, + 0.8254712447524071, + 0.815879087895155, + 0.812280923128128, + 0.8286796510219574, + 0.8767899125814438, + 0.8125398308038712, + 0.8222502656280994, + 0.8478900417685509, + 0.824308954179287, + 0.8132606744766235, + 0.8138297125697136, + 0.837401021271944, + 0.8824886754155159, + 0.8138306438922882, + 0.8366401307284832, + 0.8782390505075455, + 0.8303499780595303, + 0.8314689621329308, + 0.8040713146328926, + 0.8252901025116444, + 0.8691302500665188, + 0.817710068076849, + 0.8281208574771881, + 0.8095800876617432, + 0.8106189779937267, + 0.8105109445750713, + 0.8113496005535126, + 0.8093509823083878, + 0.8517289534211159, + 0.8580400608479977, + 0.8238991722464561, + 0.815199688076973, + 0.8104401640594006, + 0.8162800222635269, + 0.8097011595964432, + 0.8214800618588924, + 0.8135098032653332, + 0.8300691843032837, + 0.8162599988281727, + 0.8121198043227196, + 0.8089910261332989, + 0.8055302314460278, + 0.8566398173570633, + 0.8368599228560925, + 0.8090110495686531, + 0.8219503797590733, + 0.8094701915979385, + 0.8027101866900921, + 0.8075800724327564, + 0.8108210749924183, + 0.8081300184130669, + 0.8138609118759632, + 0.8311392739415169, + 0.8637602441012859, + 0.8068899624049664, + 0.8558998815715313, + 0.844891183078289, + 0.8056098595261574, + 0.8140308782458305, + 0.8090999908745289, + 0.804669689387083, + 0.8001998066902161, + 0.8293199352920055, + 0.8098208345472813, + 0.8495701476931572, + 0.8425409905612469, + 0.8007697761058807, + 0.8109998889267445, + 0.8098999969661236, + 0.8126799948513508, + 0.8181603625416756, + 0.8155400864779949, + 0.8139610290527344, + 0.8397689089179039, + 0.8539697155356407, + 0.8550900965929031, + 0.8156602270901203, + 0.8186609484255314, + 0.8307588286697865, + 0.8002701215445995, + 0.8117011748254299, + 0.8011497557163239, + 0.8088909089565277, + 0.8657188154757023, + 0.8235410787165165, + 0.8396790362894535, + 0.8139810524880886, + 0.8062496781349182, + 0.8164700120687485, + 0.8071111515164375, + 0.813240185379982, + 0.855801161378622, + 0.8443589322268963, + 0.8074110373854637, + 0.808249693363905, + 0.8850889280438423, + 0.8633998222649097, + 0.8100802078843117, + 0.8523897267878056, + 0.8167796768248081, + 0.8174208924174309, + 0.8252901025116444, + 0.8040899410843849, + 0.8121212013065815, + 0.8621099404990673, + 0.8113509975373745, + 0.835539773106575, + 0.8060806430876255, + 0.8218400180339813, + 0.8086501620709896, + 0.8116802200675011, + 0.8056298829615116, + 0.8370610885322094, + 0.877148937433958, + 0.8248710073530674, + 0.8199810981750488, + 0.8339593186974525, + 0.8175610564649105, + 0.805719755589962, + 0.8015017956495285, + 0.8068601600825787, + 0.8017299696803093, + 0.8076010271906853, + 0.8496390655636787, + 0.8344599045813084, + 0.8113901130855083, + 0.8149310015141964, + 0.8042100816965103, + 0.8082911372184753, + 0.8039101958274841, + 0.8031898178160191, + 0.8079907856881618, + 0.8635991252958775, + 0.8441298268735409, + 0.8167303167283535, + 0.8572298102080822, + 0.8617890998721123, + 0.8152113296091557, + 0.8284300565719604, + 0.8127610199153423, + 0.8110702037811279, + 0.8055912330746651, + 0.8078897371888161, + 0.8086701855063438, + 1.0073580779135227, + 0.8121500723063946, + 0.80516142770648, + 0.8072098717093468, + 0.8067009039223194, + 0.8027795702219009, + 0.8058799430727959, + 1.2672347947955132, + 0.8167596533894539, + 0.8017411455512047, + 0.8073900826275349, + 0.8195908740162849, + 0.8211499080061913, + 0.819311011582613, + 0.8142990991473198, + 0.8962401188910007, + 0.8180201984941959, + 0.8725090883672237, + 0.8045611903071404, + 0.8352701552212238, + 0.8215708658099174, + 1.4538932591676712, + 0.8207201026380062, + 0.8064107969403267, + 0.8146199397742748, + 0.8154110983014107, + 1.279895193874836, + 0.8283304050564766, + 0.8070911280810833, + 0.811480451375246, + 0.8120513521134853, + 0.8661900646984577, + 0.8163787424564362, + 0.814300961792469, + 0.8097998797893524, + 0.8207312785089016, + 0.8529890328645706, + 0.8618691936135292, + 0.80840103328228, + 0.8161799050867558, + 0.8114809170365334, + 0.8079498074948788, + 0.8155307732522488, + 0.8207098580896854, + 0.8122003637254238, + 0.8515091612935066, + 0.8432292379438877, + 0.8101812563836575, + 0.8176998235285282, + 0.8115209639072418, + 0.8171102963387966, + 0.8251597173511982, + 0.8543692529201508, + 0.8515100926160812, + 0.8120713755488396, + 0.808230135589838, + 0.8050808683037758, + 0.8287001401185989, + 0.8303211070597172, + 0.8208099752664566, + 0.8551888167858124, + 0.8429898880422115, + 0.8127898909151554, + 0.8117710240185261, + 0.8125398308038712, + 0.8158404380083084, + 0.8111502975225449, + 0.8102809078991413, + 0.8544991724193096, + 0.8489801548421383, + 0.8220900781452656, + 0.817079097032547, + 0.8364305831491947, + 0.8128001354634762, + 0.7990822196006775, + 0.8189999498426914, + 0.8641788735985756, + 0.8145608007907867, + 0.8288896642625332, + 0.8179708383977413, + 0.8124401792883873, + 0.8067907765507698, + 0.8074496872723103, + 0.845770351588726, + 0.8638086728751659, + 0.8177701383829117, + 0.8080308325588703, + 0.8125603199005127, + 0.8125412277877331, + 0.8105798624455929, + 0.8191508240997791, + 0.8211596868932247, + 0.813561026006937, + 0.8100899867713451, + 0.8096508681774139, + 0.8562388829886913, + 0.821639783680439, + 0.8153612725436687, + 0.8168998174369335, + 0.8257809095084667, + 0.8193398825824261, + 0.8192812092602253, + 0.816119834780693, + 0.8738292381167412, + 0.814350787550211, + 0.8490500040352345, + 0.8178306743502617, + 0.8101998828351498, + 0.8110608905553818, + 0.8032708428800106, + 0.8221212774515152, + 0.8422099053859711, + 0.8095297962427139, + 1.0933978483080864, + 0.8096601814031601, + 0.8355500176548958, + 0.8164211176335812, + 0.8137100376188755, + 0.805131159722805, + 0.830099917948246, + 0.8616899140179157, + 0.8022901602089405, + 0.8271601982414722, + 0.8105309680104256, + 0.8074999786913395, + 0.8102711290121078, + 0.8136597461998463, + 0.8256509900093079, + 0.8491100743412971, + 0.804040115326643, + 0.837590079754591, + 0.8529503829777241, + 0.8204099722206593, + 0.818910077214241, + 0.8067609742283821, + 0.8050999604165554, + 0.8136308752000332, + 0.8060899563133717, + 0.8514411747455597, + 0.8344398811459541, + 0.8109100162982941, + 0.8209105581045151, + 0.8048000745475292, + 0.7963818497955799, + 0.8079400286078453, + 0.8080410771071911, + 0.809710007160902, + 0.8160499855875969, + 0.8148392662405968, + 0.8163200691342354, + 0.8128909394145012, + 0.8551902137696743, + 0.815180130302906, + 0.818250235170126, + 0.8142511360347271, + 0.8116397075355053, + 0.828081276267767, + 0.8224397897720337, + 0.8608908392488956, + 0.8089402690529823, + 0.8478788658976555, + 0.8178511634469032, + 0.8102701976895332, + 0.8178600110113621, + 0.8089598268270493, + 0.8518500253558159, + 0.8229599334299564, + 0.8096303790807724, + 0.8142511360347271, + 0.8235801942646503, + 0.8061411790549755, + 0.8530602790415287, + 0.8281199261546135, + 0.8057700470089912, + 0.8127307519316673, + 0.8110702037811279, + 0.8177510462701321, + 0.8141198195517063, + 0.8567110635340214, + 0.8423691615462303, + 0.8512199856340885, + 0.817631371319294, + 0.8138096891343594, + 0.8069709874689579, + 0.8064797148108482, + 0.8140606805682182, + 0.859568826854229, + 0.8036806248128414, + 0.8206102065742016, + 0.8029802702367306, + 0.8045309223234653, + 0.85042929276824, + 0.8101700805127621, + 0.8139209821820259, + 0.8323299698531628, + 0.8188709616661072, + 0.8580186404287815, + 0.8493196219205856, + 0.8214395493268967, + 0.8086604066193104, + 0.8095609955489635, + 0.8082599379122257, + 0.804901123046875, + 0.803070142865181, + 0.8527501486241817, + 0.8512199856340885, + 0.8245902135968208, + 0.8123102597892284, + 0.8113598451018333, + 0.8076010271906853, + 0.8092899806797504 + ], + "library": [ + 1.4788620173931122, + 0.9502382017672062, + 0.9258100762963295, + 0.8873292244970798, + 0.8731386624276638, + 0.8984589949250221, + 0.8759289048612118, + 0.9169299155473709, + 0.8715190924704075, + 0.8698501624166965, + 0.8511198684573174, + 0.8531189523637295, + 0.8760499767959118, + 0.9199287742376328, + 0.8772588334977627, + 0.8682901971042156, + 0.9057791903614998, + 0.8786600083112717, + 0.9229378774762154, + 0.8767894469201565, + 0.8474099449813366, + 0.8478011004626751, + 0.8462388068437576, + 0.8933898061513901, + 0.838759820908308, + 0.8416888304054737, + 0.8338107727468014, + 0.8222386240959167, + 0.8242400363087654, + 0.8239699527621269, + 0.8662496693432331, + 0.8458290249109268, + 0.8247201330959797, + 0.8356710895895958, + 0.8203503675758839, + 0.8367514237761497, + 0.8325488306581974, + 0.8270409889519215, + 0.8609290234744549, + 0.8199308067560196, + 0.8280589245259762, + 0.8202106691896915, + 0.8221897296607494, + 0.8171508088707924, + 0.846128910779953, + 0.8564498275518417, + 0.8566686883568764, + 0.8190390653908253, + 0.961060170084238, + 0.8165403269231319, + 0.8279513567686081, + 0.8669099770486355, + 0.8419295772910118, + 0.8354298770427704, + 0.8301399648189545, + 0.8180812001228333, + 0.8191801607608795, + 0.8192299865186214, + 0.8187000639736652, + 1.0923980735242367, + 0.8242698386311531, + 0.8183810859918594, + 0.8703288622200489, + 0.9802691638469696, + 0.8260798640549183, + 0.9653880260884762, + 0.8352408185601234, + 0.8167391642928123, + 0.8634701371192932, + 0.8256700821220875, + 0.8491100743412971, + 0.8210302330553532, + 0.8124499581754208, + 0.8113207295536995, + 0.8183200843632221, + 0.8199908770620823, + 0.8214698173105717, + 0.8759903721511364, + 0.8075903169810772, + 0.8409908041357994, + 0.8434699848294258, + 0.8111000061035156, + 0.8148602209985256, + 0.8124709129333496, + 0.8099302649497986, + 0.7960810326039791, + 0.844310037791729, + 0.8530807681381702, + 0.8064997382462025, + 0.8115512318909168, + 0.80827996134758, + 0.8166399784386158, + 0.8170399814844131, + 0.8180299773812294, + 0.8050408214330673, + 0.8123801089823246, + 0.8696010336279869, + 0.816799234598875, + 0.8310209959745407, + 0.8096899837255478, + 0.8191298693418503, + 0.8299211040139198, + 0.8060997352004051, + 0.8016498759388924, + 0.8025411516427994, + 0.8079400286078453, + 0.860460102558136, + 0.8140099234879017, + 0.8222013711929321, + 0.8155899122357368, + 0.806919764727354, + 0.8065798319876194, + 0.8130697533488274, + 0.8149007335305214, + 0.8141398429870605, + 0.854280311614275, + 0.8132997900247574, + 0.8327807299792767, + 0.8090999908745289, + 0.8050501346588135, + 0.8123298175632954, + 0.8062301203608513, + 0.8041900582611561, + 0.812009908258915, + 0.8429791778326035, + 0.8527901954948902, + 0.8043600246310234, + 0.8172499947249889, + 0.8063297718763351, + 0.8110199123620987, + 0.8086701855063438, + 0.8080201223492622, + 0.811651349067688, + 0.8488199673593044, + 0.8522598072886467, + 0.805259682238102, + 0.818770844489336, + 0.8025099523365498, + 0.8017499931156635, + 0.8026603609323502, + 0.8238009177148342, + 0.823349691927433, + 0.860970001667738, + 0.814980361610651, + 0.8087609894573689, + 0.8206893689930439, + 0.8167913183569908, + 0.8078399114310741, + 0.809740275144577, + 0.8099311962723732, + 0.8056196384131908, + 0.8425209671258926, + 0.8399598300457001, + 0.8072005584836006, + 0.8082403801381588, + 0.8144811727106571, + 0.8064196445047855, + 0.8105998858809471, + 0.812050886452198, + 0.8012298494577408, + 0.8548703044652939, + 0.8111996576189995, + 0.8078999817371368, + 0.8105100132524967, + 0.817629974335432, + 0.85460115224123, + 0.8130203932523727, + 0.8114809170365334, + 0.8119503036141396, + 0.8095810189843178, + 0.8090897463262081, + 1.1788350529968739, + 0.8163605816662312, + 0.8417288772761822, + 0.8082212880253792, + 0.8070701733231544, + 0.8207098580896854, + 0.8215201087296009, + 0.8053397759795189, + 0.8170111104846001, + 1.191454939544201, + 0.8035209029912949, + 0.8253897540271282, + 0.8063013665378094, + 0.8048699237406254, + 0.8046110160648823, + 0.7985197007656097, + 1.1987253092229366, + 0.8018710650503635, + 0.8213301189243793, + 0.8032913319766521, + 0.8009597659111023, + 1.3196030631661415, + 0.8094208315014839, + 0.8156397379934788, + 1.4450629241764545, + 0.8098999969661236, + 0.8292403072118759, + 1.4228238724172115, + 0.8313106372952461, + 0.8088699541985989, + 0.8082697167992592, + 0.8655600249767303, + 0.8494998328387737, + 0.8115111850202084, + 0.8227801881730556, + 0.8195508271455765, + 0.8107991889119148, + 0.8148513734340668, + 0.8089300245046616, + 0.8233101107180119, + 0.8602798916399479, + 0.8135996758937836, + 0.8188514038920403, + 0.8257399313151836, + 0.818881206214428, + 0.8056103251874447, + 0.8236812427639961, + 0.7986598648130894, + 0.82376878708601, + 0.8099200204014778, + 0.8501498959958553, + 0.8427901193499565, + 0.8067511953413486, + 0.8185100741684437, + 0.8135410025715828, + 0.9254086762666702, + 0.8109607733786106, + 0.8071600459516048, + 0.8442793041467667, + 0.8576498366892338, + 0.8073798380792141, + 0.816000159829855, + 0.8066599257290363, + 0.8075912483036518, + 0.8070697076618671, + 0.803592149168253, + 0.8147098124027252, + 0.821980182081461, + 0.8682301267981529, + 0.8777491748332977, + 0.8189911022782326, + 1.0018772445619106, + 0.8581602014601231, + 0.8404897525906563, + 0.8295001462101936, + 0.8061006665229797, + 0.8096997626125813, + 0.7993313483893871, + 0.814689788967371, + 0.8599599823355675, + 0.8540898561477661, + 0.8536698296666145, + 0.8113612420856953, + 0.8241203613579273, + 0.808830838650465, + 0.8138203993439674, + 0.8523501455783844, + 0.8531096391379833, + 0.8078501559793949, + 0.8557788096368313, + 0.8361097425222397, + 0.8093211799860001, + 0.8056797087192535, + 0.8093109354376793, + 0.806290190666914, + 0.8806800469756126, + 0.8237897418439388, + 0.8546700701117516, + 0.8154609240591526, + 0.8329288102686405, + 0.811341218650341, + 0.8110902272164822, + 0.8129910565912724, + 0.8141789585351944, + 0.9168591350317001, + 0.8240002207458019, + 0.8093602955341339, + 0.8543799631297588, + 0.8140886202454567, + 0.9261202067136765, + 0.8228491060435772, + 0.8317809551954269, + 0.8131498470902443, + 0.8111610077321529, + 0.8126096799969673, + 0.851490069180727, + 0.8470891043543816, + 0.8139000274240971, + 0.8097309619188309, + 0.8144001476466656, + 0.8177310228347778, + 0.8057910017669201, + 0.8285408839583397, + 0.8541289716959, + 0.8080899715423584, + 0.8237408474087715, + 0.8279685862362385, + 0.8114608936011791, + 0.8186101913452148, + 0.8644298650324345, + 0.8147000335156918, + 0.8116909302771091, + 0.8113998919725418, + 0.8168099448084831, + 0.8211997337639332, + 0.815040897578001, + 0.8391598239541054, + 0.8539892733097076, + 1.1085281148552895, + 0.822839792817831, + 0.8018710650503635, + 0.7983003742992878, + 0.8579003624618053, + 0.8165398612618446, + 0.8162399753928185, + 0.8139209821820259, + 0.8356189355254173, + 0.8304202929139137, + 0.8056797087192535, + 0.8560102432966232, + 0.8093612268567085, + 0.8520991541445255, + 0.8409307338297367, + 0.8044000715017319, + 0.8192597888410091, + 0.8095712400972843, + 0.8047199808061123, + 0.8110008202493191, + 0.8232700638473034, + 0.8478914387524128, + 0.8387085981667042, + 0.8178097195923328, + 0.8144108578562737, + 0.8117402903735638, + 0.7989811711013317, + 0.8315686136484146, + 0.8248402737081051, + 0.8637188002467155, + 0.8100699633359909, + 0.8064797148108482, + 0.8560200221836567, + 0.8370089344680309, + 0.8138199336826801, + 0.8388599380850792, + 0.8081099949777126, + 0.8073309436440468, + 0.8100802078843117, + 0.8126012980937958, + 0.8478099480271339, + 0.8217697031795979, + 0.8182697929441929, + 0.8140597492456436, + 0.8108010515570641, + 0.8248402737081051, + 0.8082608692348003, + 0.8145403116941452, + 0.8603110909461975, + 0.8148401975631714, + 0.8238200098276138, + 0.8047600276768208, + 0.8110608905553818, + 0.8088499307632446, + 0.866991002112627, + 0.806029886007309, + 0.8247299119830132, + 0.8033309131860733, + 0.7996801286935806, + 0.8049211464822292, + 0.8070697076618671, + 0.819341279566288, + 0.8552288636565208, + 0.8065910078585148, + 0.8052499033510685, + 0.8067297749221325, + 0.8039306849241257, + 0.8129198104143143, + 0.8101509883999825, + 0.8156499825417995, + 0.8672610856592655, + 0.8241101168096066, + 0.8329399861395359, + 0.8654291741549969, + 0.8121412247419357, + 0.815459992736578, + 0.8093998767435551, + 0.8143307641148567, + 1.0151076130568981, + 0.9561390615999699, + 0.8652098476886749, + 0.811220146715641, + 0.8114711381494999, + 0.8148499764502048, + 0.8200109004974365, + 0.8555599488317966, + 0.8283304050564766, + 0.8107000030577183, + 0.8111502975225449, + 0.8061612024903297, + 0.8150599896907806 + ] + }, + "warm_ms": { + "control": [ + 11.831888929009438, + 1.0661976411938667, + 0.9417589753866196 + ], + "exact": [ + 2.3641311563551426, + 0.9325803257524967, + 0.9175376035273075 + ], + "lattice": [ + 2.3163016885519028, + 0.9413398802280426, + 0.9654778987169266 + ], + "library": [ + 1.6727307811379433, + 1.0132179595530033, + 0.9196479804813862 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 0.8244444616138935, + "p10_ms": 0.8131111040711403, + "p90_ms": 0.8707492612302303, + "min_ms": 0.8042696863412857, + "max_ms": 1.1881259270012379, + "mean_ms": 0.8371786517091095 + }, + "exact": { + "n": 400, + "median_ms": 0.8213603869080544, + "p10_ms": 0.8097200654447079, + "p90_ms": 0.8722798898816109, + "min_ms": 0.8020210079848766, + "max_ms": 1.5187817625701427, + "mean_ms": 0.8383660274557769 + }, + "lattice": { + "n": 400, + "median_ms": 0.8175962138921022, + "p10_ms": 0.806089024990797, + "p90_ms": 0.8688771165907383, + "min_ms": 0.7963818497955799, + "max_ms": 1.468441914767027, + "mean_ms": 0.8356841932982206 + }, + "library": { + "n": 400, + "median_ms": 0.8183505851775408, + "p10_ms": 0.8060927502810955, + "p90_ms": 0.8684212807565928, + "min_ms": 0.7960810326039791, + "max_ms": 1.4788620173931122, + "mean_ms": 0.8393486239947379 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 1.008376075629302, + "ci90_low": 1.0061888267341466, + "ci90_high": 1.0108533475289956, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.0037548374075465, + "ci90_low": 1.0009567334357834, + "ci90_high": 1.005967960889268, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.0046039511338158, + "ci90_low": 1.0020157810429844, + "ci90_high": 1.0076630174750565, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 1.0009226697391949, + "ci90_low": 0.9980998397422493, + "ci90_high": 1.003823827415368, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 1.0074465351974187, + "ci90_low": 1.004892686877983, + "ci90_high": 1.0103045385884992, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.0087288456700805, + "p10": 1.0026089728118803, + "p90": 1.016697072997965 + }, + "minimum_detectable_improvement": 0.06991150992300962, + "compile": { + "control": { + "lower_s": 1.9736818238161504, + "compile_s": 5.186246165074408, + "first_call_s": 0.012802168261259794, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 6597781.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 3361608, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 937240, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1469394944, + "rss_after_compile_bytes": 1469505536, + "rss_delta_bytes": 110592, + "hlo_sha256": "41a9cac6a01e2ba8", + "hlo_lines": 9782, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 2.0283938529901206, + "compile_s": 5.175202046986669, + "first_call_s": 0.013449120335280895, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 3866881.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 926024, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1395560, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1469505536, + "rss_after_compile_bytes": 1469571072, + "rss_delta_bytes": 65536, + "hlo_sha256": "7cb58f717a04f467", + "hlo_lines": 9703, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 1.9577632532455027, + "compile_s": 5.225913023110479, + "first_call_s": 0.012033046688884497, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3066157.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 388424, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1126664, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1469571072, + "rss_after_compile_bytes": 1470316544, + "rss_delta_bytes": 745472, + "hlo_sha256": "5986e7a3d2cabe87", + "hlo_lines": 9680, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 1.9503792920149863, + "compile_s": 5.102685410063714, + "first_call_s": 0.013005605898797512, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3066157.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 388424, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1126664, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1470316544, + "rss_after_compile_bytes": 1471180800, + "rss_delta_bytes": 864256, + "hlo_sha256": "5986e7a3d2cabe87", + "hlo_lines": 9680, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 7.196577317761012, + -45.873021274429995, + 2.9048714587398505, + -801.1656151465145, + -856.2176369539866, + -701.3832757596591, + -791.860330108457, + -641.0597186366746, + -856.8747665323849, + -965.6893581059343, + -601.8962692526685, + 1.491228024977203, + -664.123965739818, + -4.055811166945723, + -6.531970036750838, + -970.3067931813666 + ], + "exact": [ + 7.196577317761012, + -45.873021274429995, + 2.9048714587398505, + -801.1656151465145, + -856.2176369539866, + -701.3832757596591, + -791.860330108457, + -641.0597186366746, + -856.8747665323849, + -965.6893581059343, + -601.8962692526685, + 1.491228024977203, + -664.123965739818, + -4.055811166945723, + -6.531970036750838, + -970.3067931813666 + ], + "lattice": [ + 7.196577317761012, + -45.873021274429995, + 2.9048714587398505, + -801.1656151465145, + -856.2176369539866, + -701.3832757596591, + -791.860330108457, + -641.0597186366746, + -856.8747665323849, + -965.6893581059343, + -601.8962692526685, + 1.491228024977203, + -664.123965739818, + -4.055811166945723, + -6.531970036750838, + -970.3067931813666 + ], + "library": [ + 7.196577317761012, + -45.873021274429995, + 2.9048714587398505, + -801.1656151465145, + -856.2176369539866, + -701.3832757596591, + -791.860330108457, + -641.0597186366746, + -856.8747665323849, + -965.6893581059343, + -601.8962692526685, + 1.491228024977203, + -664.123965739818, + -4.055811166945723, + -6.531970036750838, + -970.3067931813666 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 7.196577317761012, + "exact": 7.196577317761012, + "lattice": 7.196577317761012, + "library": 7.196577317761012 + } + }, + "cluster_solved": { + "label": "cluster_solved", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 3.6879051476716995, + 3.1020422466099262, + 3.0329031869769096, + 3.0936431139707565, + 3.0886437743902206, + 3.0210246331989765, + 3.003153018653393, + 2.967114094644785, + 2.9412764124572277, + 2.8736661188304424, + 2.797805704176426, + 2.847956959158182, + 2.8235572390258312, + 2.8171660378575325, + 2.815126907080412, + 2.783536911010742, + 2.7652569115161896, + 2.8303773142397404, + 2.7480577118694782, + 2.7430271729826927, + 3.438460174947977, + 2.8437557630240917, + 2.788337878882885, + 2.795006148517132, + 2.8311461210250854, + 2.7516079135239124, + 2.77748703956604, + 2.782616764307022, + 2.7560670860111713, + 2.696907613426447, + 2.6586586609482765, + 2.6483992114663124, + 2.6330491527915, + 2.6225592009723186, + 2.610300201922655, + 2.639309037476778, + 2.6561589911580086, + 2.643308136612177, + 2.6688980869948864, + 2.6051593013107777, + 3.3159898594021797, + 2.7973377145826817, + 2.74850707501173, + 2.7493671514093876, + 2.951315138489008, + 2.8172959573566914, + 2.8274059295654297, + 2.7502677403390408, + 2.751757390797138, + 2.6628291234374046, + 2.6967981830239296, + 2.6930286549031734, + 2.61846836656332, + 2.6309401728212833, + 2.638287842273712, + 2.6154890656471252, + 2.6188790798187256, + 2.650807611644268, + 2.622838132083416, + 2.6459279470145702, + 3.347670193761587, + 2.8000259771943092, + 2.7781780809164047, + 2.7998858131468296, + 2.7990960516035557, + 2.839956898242235, + 2.816795837134123, + 2.828426193445921, + 2.7877180837094784, + 2.7316370978951454, + 2.7189976535737514, + 2.7912971563637257, + 2.7167582884430885, + 2.6942184194922447, + 2.685817889869213, + 2.6747770607471466, + 2.6268488727509975, + 2.6227878406643867, + 2.6221489533782005, + 2.6442790403962135, + 3.3206907100975513, + 2.808717079460621, + 2.779635600745678, + 2.7534477412700653, + 2.791066188365221, + 2.8030970133841038, + 2.783736679702997, + 2.7806758880615234, + 2.7422080747783184, + 2.6749977841973305, + 2.648229245096445, + 2.6500187814235687, + 2.665149047970772, + 2.6514180935919285, + 2.6656892150640488, + 2.6393081061542034, + 2.6231780648231506, + 2.6260376907885075, + 2.598848659545183, + 2.5957487523555756, + 3.3484697341918945, + 2.7919881977140903, + 2.7388869784772396, + 2.7933381497859955, + 2.958495169878006, + 2.7526570484042168, + 2.730078063905239, + 2.76741711422801, + 2.749376930296421, + 2.710966859012842, + 2.6408787816762924, + 2.6276889257133007, + 2.6351790875196457, + 2.627759240567684, + 2.6087686419487, + 2.638638950884342, + 2.5986889377236366, + 2.624289598315954, + 2.5952388532459736, + 2.5896900333464146, + 3.2949713058769703, + 2.77633685618639, + 2.743238117545843, + 2.743246965110302, + 2.759546972811222, + 2.773095853626728, + 2.7607171796262264, + 2.720847725868225, + 2.7183969505131245, + 2.6503889821469784, + 2.643128391355276, + 2.656279131770134, + 2.642618026584387, + 2.6000491343438625, + 2.6262281462550163, + 2.6148580946028233, + 2.6055490598082542, + 2.602788619697094, + 2.6039090007543564, + 2.609597984701395, + 3.352130763232708, + 2.771025989204645, + 2.7523869648575783, + 2.766137942671776, + 2.796526998281479, + 2.7774381451308727, + 2.7631260454654694, + 2.757537178695202, + 2.721657045185566, + 2.5940388441085815, + 2.606088761240244, + 2.624488901346922, + 2.636898308992386, + 2.626198809593916, + 2.6050377637147903, + 2.5910092517733574, + 2.6195086538791656, + 2.7338271029293537, + 2.5659999810159206, + 2.598328050225973, + 3.311620093882084, + 2.7818758971989155, + 2.731827087700367, + 2.7207378298044205, + 2.7353777550160885, + 2.799756359308958, + 2.7438579127192497, + 2.7280570939183235, + 2.675927709788084, + 2.6112180203199387, + 2.597348764538765, + 2.5912290439009666, + 2.595418132841587, + 2.607399132102728, + 2.616718877106905, + 2.628627698868513, + 2.606398891657591, + 2.5855889543890953, + 2.5847689248621464, + 2.728397026658058, + 3.3286502584815025, + 2.8191660530865192, + 2.927724737673998, + 2.720918972045183, + 2.7394271455705166, + 2.7329279109835625, + 2.6881378144025803, + 2.785696182399988, + 2.712748944759369, + 2.651857677847147, + 2.6211002841591835, + 2.6132087223231792, + 2.625018823891878, + 2.6154289953410625, + 2.621239051222801, + 2.594409044831991, + 2.6383991353213787, + 2.6213880628347397, + 2.6364801451563835, + 2.593979239463806, + 3.2848319970071316, + 2.776975743472576, + 2.7329172007739544, + 2.7363779954612255, + 2.743166871368885, + 2.7235979214310646, + 2.749337349087, + 2.7586668729782104, + 2.6978477835655212, + 2.6092790067195892, + 2.5980398058891296, + 2.6233079843223095, + 2.6177698746323586, + 2.6364577934145927, + 2.628290094435215, + 2.619737759232521, + 2.615540288388729, + 2.595788799226284, + 2.593920100480318, + 2.6372880674898624, + 3.3120401203632355, + 2.779957838356495, + 2.7097780257463455, + 2.738538198173046, + 2.751376945525408, + 2.772767096757889, + 2.7256272733211517, + 2.720477059483528, + 2.684459090232849, + 2.694997936487198, + 2.600379753857851, + 2.589908894151449, + 2.7858568355441093, + 2.5937878526747227, + 2.61559896171093, + 2.5965487584471703, + 2.6439991779625416, + 2.638699021190405, + 2.636759076267481, + 2.665488049387932, + 3.361511044204235, + 2.8348867781460285, + 2.741497941315174, + 2.717249095439911, + 2.7340068481862545, + 2.7642259374260902, + 2.7584577910602093, + 2.750606741756201, + 2.677229233086109, + 2.6128189638257027, + 2.6107896119356155, + 2.6105078868567944, + 2.587120048701763, + 2.594319172203541, + 2.596320118755102, + 2.635227981954813, + 2.568901050835848, + 2.5703292340040207, + 2.556780818849802, + 2.5860993191599846, + 3.7907250225543976, + 3.11210285872221, + 3.026442602276802, + 2.994133159518242, + 3.0026049353182316, + 2.97345407307148, + 2.9705739580094814, + 2.9085963033139706, + 2.7230773121118546, + 2.6445379480719566, + 2.6816679164767265, + 2.652987837791443, + 2.651588059961796, + 2.64537800103426, + 2.6424890384078026, + 2.603239379823208, + 2.597489859908819, + 2.597539220005274, + 2.6096198707818985, + 2.6005590334534645, + 3.3191400580108166, + 2.8188559226691723, + 2.771886996924877, + 2.772836945950985, + 2.7769473381340504, + 2.780047245323658, + 2.769667189568281, + 2.7466677129268646, + 2.7180281467735767, + 2.6287296786904335, + 2.6265382766723633, + 2.61419964954257, + 2.6387078687548637, + 2.5956290774047375, + 2.632617950439453, + 2.715487964451313, + 2.6182779110968113, + 2.5735190138220787, + 2.572129014879465, + 2.5846390053629875, + 3.307080827653408, + 2.8633959591388702, + 2.7409070171415806, + 2.7480279095470905, + 2.7702571824193, + 2.7771666646003723, + 2.7829869650304317, + 2.757585607469082, + 2.711909357458353, + 2.687416970729828, + 2.6461994275450706, + 2.601669169962406, + 2.612659242004156, + 2.6428080163896084, + 2.625797875225544, + 2.612838987261057, + 2.655157819390297, + 2.587508875876665, + 2.6210686191916466, + 2.608619164675474, + 3.3029410988092422, + 2.8271758928894997, + 2.755257301032543, + 2.842416986823082, + 2.7605071663856506, + 2.727867104113102, + 2.761106938123703, + 2.7739470824599266, + 2.6992177590727806, + 2.6295590214431286, + 2.6009189896285534, + 2.6283892802894115, + 2.6154499500989914, + 2.604008186608553, + 2.601969987154007, + 2.647778019309044, + 2.636820077896118, + 2.6265489868819714, + 2.7582268230617046, + 2.6121181435883045, + 3.3520101569592953, + 2.8020660392940044, + 2.7735866606235504, + 2.745998091995716, + 2.7396371588110924, + 2.776768058538437, + 2.726736944168806, + 2.770167775452137, + 2.6836167089641094, + 2.644228283315897, + 2.6249391958117485, + 2.6424876414239407, + 2.6497188955545425, + 2.6985383592545986, + 2.6396289467811584, + 2.640928141772747, + 2.613439690321684, + 2.611708827316761, + 2.6108501479029655, + 2.6620677672326565, + 3.3332291059195995, + 2.7790572494268417, + 2.7454677037894726, + 2.744956873357296, + 2.780008129775524, + 2.7936971746385098, + 2.7603269554674625, + 2.7650869451463223, + 2.725386992096901, + 2.6525589637458324, + 2.7769170701503754, + 2.6391991414129734, + 2.6602079160511494, + 2.645398024469614, + 2.641138155013323, + 2.650537993758917, + 2.660348080098629, + 2.6138988323509693, + 2.604878041893244, + 2.6000789366662502, + 3.2850620336830616, + 2.823615912348032, + 2.762438263744116, + 2.746117301285267, + 2.7544070035219193, + 2.745438367128372, + 2.7611367404460907, + 2.747888211160898, + 2.7139373123645782, + 2.6444480754435062, + 2.6811081916093826, + 2.613538410514593, + 2.61760875582695, + 2.6489179581403732, + 2.634298987686634, + 2.6374380104243755, + 2.62615829706192, + 2.651277929544449, + 2.6216492988169193, + 2.637058962136507 + ], + "exact": [ + 3.2758410088717937, + 2.7682967483997345, + 2.7173678390681744, + 2.723047975450754, + 2.7108988724648952, + 2.7196169830858707, + 2.759707160294056, + 2.7259490452706814, + 2.7033276855945587, + 2.660249825567007, + 2.6532881893217564, + 2.6451293379068375, + 2.6315501891076565, + 2.649557776749134, + 2.650829032063484, + 2.6305089704692364, + 2.658658195286989, + 2.6322491466999054, + 2.6362594217061996, + 2.6256502605974674, + 3.0888132750988007, + 2.6266793720424175, + 2.5808499194681644, + 2.625109162181616, + 2.649019006639719, + 2.6155184023082256, + 2.604630310088396, + 2.606599126011133, + 2.5642202235758305, + 2.5554699823260307, + 2.505121286958456, + 2.500239759683609, + 2.533791121095419, + 2.52965884283185, + 2.5109611451625824, + 2.494300249963999, + 2.4822507984936237, + 2.511459868401289, + 2.4854401126503944, + 2.481261268258095, + 3.1427331268787384, + 2.620277926325798, + 2.6015792973339558, + 2.614138647913933, + 2.5913002900779247, + 2.6394976302981377, + 2.5977687910199165, + 2.6069190353155136, + 2.581859938800335, + 2.588509116321802, + 2.4745617993175983, + 2.453221008181572, + 2.5029010139405727, + 2.489659935235977, + 2.531670033931732, + 2.575838938355446, + 2.537919208407402, + 2.5238092057406902, + 2.508580219000578, + 2.4948399513959885, + 3.138891886919737, + 2.6526181027293205, + 2.574529033154249, + 2.6045492850244045, + 2.5786389596760273, + 2.5842785835266113, + 2.596680074930191, + 2.5968579575419426, + 2.590110059827566, + 2.526280004531145, + 2.5078910402953625, + 2.4882201105356216, + 2.506909891963005, + 2.458869945257902, + 2.446581143885851, + 2.44276225566864, + 2.464480232447386, + 2.4522817693650723, + 2.4910899810492992, + 2.4441303685307503, + 3.0892230570316315, + 2.5984798558056355, + 2.6264977641403675, + 2.608079928904772, + 2.595408819615841, + 2.5748698972165585, + 2.5831591337919235, + 2.6661688461899757, + 2.5743087753653526, + 2.5212103500962257, + 2.5250399485230446, + 2.489101141691208, + 2.499289810657501, + 2.457001246511936, + 2.4602110497653484, + 2.4547609500586987, + 2.4422607384622097, + 2.438800875097513, + 2.4275118485093117, + 2.4705403484404087, + 3.054654225707054, + 2.6203282177448273, + 2.548809628933668, + 2.552659250795841, + 2.5972500443458557, + 2.5717592798173428, + 2.585879061371088, + 2.5751092471182346, + 2.55840877071023, + 2.490050159394741, + 2.491490915417671, + 2.4431608617305756, + 2.443282399326563, + 2.4771401658654213, + 2.4655209854245186, + 2.4743410758674145, + 2.4545001797378063, + 2.4147811345756054, + 2.4207308888435364, + 2.4455320090055466, + 3.142222762107849, + 2.631927840411663, + 2.58143013343215, + 2.5933687575161457, + 2.6085996069014072, + 2.556649036705494, + 2.598930150270462, + 2.5851894170045853, + 2.5925696827471256, + 2.5108191184699535, + 2.4650623090565205, + 2.4900399148464203, + 2.4635810405015945, + 2.4291309528052807, + 2.424551174044609, + 2.466561272740364, + 2.4658809415996075, + 2.4728518910706043, + 2.4481210857629776, + 2.4190321564674377, + 3.0771028250455856, + 2.623138949275017, + 2.6529179885983467, + 2.577698789536953, + 2.5826790370047092, + 2.5809090584516525, + 2.6021189987659454, + 2.609489019960165, + 2.6088887825608253, + 2.54256883636117, + 2.5003799237310886, + 2.5012600235641003, + 2.483600750565529, + 2.4844002909958363, + 2.462041098624468, + 2.4226712994277477, + 2.4169613607227802, + 2.444230020046234, + 2.4696309119462967, + 2.486669924110174, + 3.137822262942791, + 2.678048796951771, + 2.6265080086886883, + 2.590988762676716, + 2.5815493427217007, + 2.6078098453581333, + 2.5903689675033092, + 2.62456014752388, + 2.6325280778110027, + 2.511850092560053, + 2.4859500117599964, + 2.4690120480954647, + 2.4972003884613514, + 2.4820310063660145, + 2.464420162141323, + 2.46149068698287, + 2.45033111423254, + 2.4603200145065784, + 2.447341103106737, + 2.499970141798258, + 3.1307130120694637, + 2.693008165806532, + 2.649798057973385, + 2.638258971273899, + 2.6455181650817394, + 2.6918179355561733, + 2.6623778976500034, + 2.7252291329205036, + 2.6660580188035965, + 2.659318968653679, + 2.623489126563072, + 2.5859191082417965, + 2.5798589922487736, + 2.581840381026268, + 2.5973189622163773, + 2.6103700511157513, + 2.5914888828992844, + 2.5871600955724716, + 2.5880387984216213, + 2.5974097661674023, + 3.1464630737900734, + 2.641709055751562, + 2.57008895277977, + 2.6156697422266006, + 2.569118980318308, + 2.5795097462832928, + 2.5698193348944187, + 2.5998600758612156, + 2.6010889559984207, + 2.5293100625276566, + 2.4742200039327145, + 2.4522212333977222, + 2.4370611645281315, + 2.455471083521843, + 2.4397619999945164, + 2.440111245959997, + 2.4719801731407642, + 2.4880296550691128, + 2.4634902365505695, + 2.4249409325420856, + 3.1256629154086113, + 2.67648883163929, + 2.672637812793255, + 2.650960348546505, + 2.6599778793752193, + 2.6654587127268314, + 2.6416280306875706, + 2.6516802608966827, + 2.669797744601965, + 2.6104990392923355, + 2.6028286665678024, + 2.628670074045658, + 2.5852792896330357, + 2.5993692688643932, + 2.8572059236466885, + 2.5976579636335373, + 2.580879256129265, + 2.5830292142927647, + 2.5813491083681583, + 2.590279094874859, + 3.0883639119565487, + 2.746948041021824, + 2.562448848038912, + 2.5916602462530136, + 2.5841789320111275, + 2.5882297195494175, + 2.5832890532910824, + 2.5658500380814075, + 2.566749230027199, + 2.4813497439026833, + 2.465310040861368, + 2.4845399893820286, + 2.4815797805786133, + 2.4844203144311905, + 2.4682809598743916, + 2.430661115795374, + 2.4545318447053432, + 2.457730006426573, + 2.4623111821711063, + 2.4620001204311848, + 3.078324254602194, + 2.6245079934597015, + 2.597508952021599, + 2.5590388104319572, + 2.602639142423868, + 2.580998931080103, + 2.5874897837638855, + 2.6049381121993065, + 2.6030498556792736, + 2.518409863114357, + 2.45277164503932, + 2.4599600583314896, + 2.473172266036272, + 2.481900155544281, + 2.5049098767340183, + 2.5154291652143, + 2.5129299610853195, + 2.5084801018238068, + 2.5070798583328724, + 2.469051629304886, + 3.228551708161831, + 2.6161791756749153, + 2.5763800367712975, + 2.5711487978696823, + 2.594458870589733, + 2.5665289722383022, + 2.559901215136051, + 2.5796392001211643, + 2.5686011649668217, + 2.510929945856333, + 2.5058607570827007, + 2.489639911800623, + 2.4545821361243725, + 2.4909600615501404, + 2.4256110191345215, + 2.4328799918293953, + 2.441180869936943, + 2.490490674972534, + 2.4643000215291977, + 2.446681261062622, + 3.085923381149769, + 2.6428191922605038, + 2.6173382066190243, + 2.643370069563389, + 2.5995890609920025, + 2.5920099578797817, + 2.6114387437701225, + 2.5945897214114666, + 2.5851288810372353, + 2.5248010642826557, + 2.4926699697971344, + 2.4916809052228928, + 2.4934099055826664, + 2.5104908272624016, + 2.4685407988727093, + 2.4627712555229664, + 2.4592112749814987, + 2.480620052665472, + 2.4468512274324894, + 2.4627801030874252, + 3.123512025922537, + 2.7212477289140224, + 2.5825491175055504, + 2.561389934271574, + 2.592837903648615, + 2.580558881163597, + 2.567109651863575, + 2.5662300176918507, + 2.5578788481652737, + 2.474450971931219, + 2.4231108836829662, + 2.466140780597925, + 2.4620313197374344, + 2.4630408734083176, + 2.488669939339161, + 2.4348809383809566, + 2.4283607490360737, + 2.426059916615486, + 2.4507218040525913, + 2.4312809109687805, + 3.0519641004502773, + 2.6288293302059174, + 2.6026489213109016, + 2.56852013990283, + 2.556338906288147, + 2.5472198612987995, + 2.5524990633130074, + 2.5782492011785507, + 2.5660600513219833, + 2.481460105627775, + 2.4706698022782803, + 2.4345708079636097, + 2.453839872032404, + 2.466531004756689, + 2.4399016983807087, + 2.4770302698016167, + 2.4629607796669006, + 2.4667009711265564, + 2.438001334667206, + 2.4179210886359215, + 3.1486130319535732, + 2.6879780925810337, + 2.6137689128518105, + 2.6029888540506363, + 2.638037782162428, + 2.5962786749005318, + 2.6308782398700714, + 2.589249052107334, + 2.598889172077179, + 2.546420320868492, + 2.5020502507686615, + 2.4819611571729183, + 3.0228039249777794, + 2.4567502550780773, + 2.4588010273873806, + 2.546298783272505, + 2.4592899717390537, + 2.458070870488882, + 2.455262001603842, + 2.427821047604084, + 3.076113760471344, + 2.654057927429676, + 2.5805491022765636, + 2.603229135274887, + 2.580519299954176, + 2.599939238280058, + 2.5947587564587593, + 2.573559060692787, + 2.5673392228782177, + 2.552578691393137, + 2.4884301237761974, + 2.4724798277020454, + 2.4777608923614025, + 2.48948996886611, + 2.446311991661787, + 2.4332008324563503, + 2.465100958943367, + 2.4627000093460083, + 2.441391348838806, + 2.4482510052621365 + ], + "lattice": [ + 3.170602023601532, + 2.658098004758358, + 2.6126098819077015, + 2.5891191326081753, + 2.5975601747632027, + 2.5625997222959995, + 2.5384100154042244, + 2.5777588598430157, + 2.580069936811924, + 2.5311200879514217, + 2.495001070201397, + 2.4824999272823334, + 2.4669207632541656, + 2.4836696684360504, + 2.462071366608143, + 2.44410103186965, + 2.494600135833025, + 2.5374898687005043, + 2.5390000082552433, + 2.526429947465658, + 3.1341537833213806, + 2.652198076248169, + 2.7946666814386845, + 2.6148087345063686, + 2.599368803203106, + 2.5834599509835243, + 2.6066889986395836, + 2.586639951914549, + 2.587899100035429, + 2.4956800043582916, + 2.4803797714412212, + 2.5092600844800472, + 2.4998998269438744, + 2.466910984367132, + 2.4704118259251118, + 2.4589207023382187, + 2.467040903866291, + 2.465801313519478, + 2.421201206743717, + 2.447790000587702, + 3.4814970567822456, + 2.662758342921734, + 2.5777691043913364, + 2.6065590791404247, + 2.6153679937124252, + 2.6336978189647198, + 2.589588984847069, + 2.585188951343298, + 2.571078948676586, + 2.496240194886923, + 2.475370652973652, + 2.4667708203196526, + 2.45443033054471, + 2.455592155456543, + 2.422001212835312, + 2.4402099661529064, + 2.4298112839460373, + 2.4378811940550804, + 2.413912210613489, + 2.4087009951472282, + 3.0972519889473915, + 2.577689941972494, + 2.541620284318924, + 2.5539901107549667, + 2.5617890059947968, + 2.545469906181097, + 2.5340686552226543, + 2.5350810028612614, + 2.512990031391382, + 2.461780793964863, + 2.427081111818552, + 2.4263300001621246, + 2.3954911157488823, + 2.4205511435866356, + 2.4261311627924442, + 2.4441303685307503, + 2.4425210431218147, + 2.4580699391663074, + 2.417780924588442, + 2.587229013442993, + 3.1389128416776657, + 2.5841686874628067, + 2.5640991516411304, + 2.543328795582056, + 2.576008904725313, + 2.5447700172662735, + 2.552939113229513, + 2.551659010350704, + 2.586489077657461, + 2.514889929443598, + 2.450842410326004, + 2.45259003713727, + 2.4603018537163734, + 2.4484610185027122, + 2.450921107083559, + 2.437251154333353, + 2.4193809367716312, + 2.4287719279527664, + 2.442820928990841, + 2.4267323315143585, + 3.095062915235758, + 2.5660786777734756, + 2.568329218775034, + 2.5623487308621407, + 2.599108964204788, + 2.56684934720397, + 2.5635487399995327, + 2.551118843257427, + 2.549178898334503, + 2.484349999576807, + 2.4764807894825935, + 2.4480819702148438, + 2.4684108793735504, + 2.4610906839370728, + 2.618128899484873, + 2.44364095851779, + 2.73759663105011, + 2.4749296717345715, + 2.479060087352991, + 2.4292808957397938, + 3.129012882709503, + 2.6326491497457027, + 2.579948864877224, + 2.6019392535090446, + 2.581278793513775, + 2.6033991016447544, + 2.6293881237506866, + 2.630988135933876, + 2.603788860142231, + 2.5151600129902363, + 2.4969102814793587, + 2.4848501197993755, + 2.4419110268354416, + 2.4214121513068676, + 2.454659901559353, + 2.460931893438101, + 2.4632499553263187, + 2.467930782586336, + 2.4498100392520428, + 2.430079970508814, + 3.0993837863206863, + 2.600338775664568, + 2.5352300144732, + 2.547089010477066, + 2.5721900165081024, + 2.594779245555401, + 2.543739974498749, + 2.562310080975294, + 2.600389067083597, + 2.5054900906980038, + 2.4707610718905926, + 2.4614399299025536, + 2.4594212882220745, + 2.456050366163254, + 2.424520906060934, + 2.4394821375608444, + 2.442870754748583, + 2.6181386783719063, + 2.4251709692180157, + 2.4130912497639656, + 3.1518731266260147, + 2.651538699865341, + 2.6197778061032295, + 2.8396169655025005, + 2.606708090752363, + 2.625799272209406, + 2.626438159495592, + 2.591750118881464, + 2.582188695669174, + 2.522110939025879, + 2.4931998923420906, + 2.470082137733698, + 2.4682600051164627, + 2.4200910702347755, + 2.4386909790337086, + 2.4431399069726467, + 2.479751128703356, + 2.5249598547816277, + 2.487430814653635, + 2.466229721903801, + 3.1469129025936127, + 2.7053672820329666, + 2.6677479036152363, + 2.66439700499177, + 2.6857079938054085, + 2.6485291309654713, + 2.614108379930258, + 2.639148849993944, + 2.5961878709495068, + 2.5151302106678486, + 2.463060896843672, + 2.4396106600761414, + 2.467652317136526, + 2.4682609364390373, + 2.4648508988320827, + 2.4274098686873913, + 2.4215709418058395, + 2.4460521526634693, + 2.475201152265072, + 2.4239220656454563, + 3.131833393126726, + 2.629258669912815, + 2.5678491219878197, + 2.568270079791546, + 2.5538690388202667, + 2.5767898187041283, + 2.5816187262535095, + 2.5970982387661934, + 2.57315905764699, + 2.4712407030165195, + 2.4439911358058453, + 2.4387207813560963, + 2.4269521236419678, + 2.459611278027296, + 2.466712146997452, + 2.4835001677274704, + 2.4534212425351143, + 2.4466412141919136, + 2.4224109947681427, + 2.4279518984258175, + 3.1838431023061275, + 2.6838481426239014, + 2.621210180222988, + 2.636197954416275, + 2.6497780345380306, + 2.8788549825549126, + 2.6593580842018127, + 2.6850891299545765, + 2.661088015884161, + 2.6030102744698524, + 2.5611789897084236, + 2.5392910465598106, + 2.5242697447538376, + 2.516138833016157, + 2.5016702711582184, + 2.511659637093544, + 2.4591810069978237, + 2.4843402206897736, + 2.456441055983305, + 2.4504908360540867, + 3.0688541010022163, + 2.637909259647131, + 2.575729973614216, + 2.5425697676837444, + 2.54973117262125, + 2.5396300479769707, + 2.540609799325466, + 2.5595990009605885, + 2.5432207621634007, + 2.482609823346138, + 2.479641232639551, + 2.4718702770769596, + 2.4380008690059185, + 2.4408018216490746, + 2.43153003975749, + 2.4102418683469296, + 2.438060939311981, + 2.4307910352945328, + 2.4687000550329685, + 2.4405396543443203, + 3.0987639911472797, + 2.618868835270405, + 2.5618192739784718, + 2.562589943408966, + 2.6007890701293945, + 2.592679113149643, + 2.5879992172122, + 2.6253587566316128, + 2.5315298698842525, + 2.504180185496807, + 2.4737496860325336, + 2.4689408019185066, + 2.405510749667883, + 2.419621217995882, + 2.420971170067787, + 2.4573300033807755, + 2.429511398077011, + 2.4140109308063984, + 2.3994622752070427, + 2.408791333436966, + 3.3669201657176018, + 2.6422892697155476, + 2.6206481270492077, + 2.5977399200201035, + 2.5828592479228973, + 2.5605103000998497, + 2.583219204097986, + 2.580119762569666, + 2.5599999353289604, + 2.504501026123762, + 2.4445410817861557, + 2.444830257445574, + 2.413331065326929, + 2.4371198378503323, + 2.4528619833290577, + 2.45473999530077, + 2.45971092954278, + 2.478560898452997, + 2.4367207661271095, + 2.4312608875334263, + 3.125593066215515, + 2.6522590778768063, + 2.5682090781629086, + 2.5819302536547184, + 2.6092692278325558, + 2.5700400583446026, + 2.593189012259245, + 2.5792699307203293, + 2.6326291263103485, + 2.5107907131314278, + 2.481581177562475, + 2.4562817998230457, + 2.4653510190546513, + 2.4491697549819946, + 2.421281300485134, + 2.417550887912512, + 2.4252920411527157, + 2.445080317556858, + 2.445652149617672, + 2.46301107108593, + 3.2226918265223503, + 2.609389368444681, + 2.595318015664816, + 2.5684102438390255, + 2.5809691287577152, + 2.552838996052742, + 2.5434386916458607, + 2.547670155763626, + 2.5452901609241962, + 2.4806298315525055, + 2.4390718899667263, + 2.459190785884857, + 2.4917302653193474, + 2.451700624078512, + 2.459509763866663, + 2.4179010652005672, + 2.7613560669124126, + 2.728886902332306, + 2.4208207614719868, + 2.4866596795618534, + 3.0435053631663322, + 2.6223580352962017, + 2.554000820964575, + 2.5847386568784714, + 2.5986889377236366, + 2.5995387695729733, + 2.5959801860153675, + 2.574609126895666, + 2.5533000007271767, + 2.4822410196065903, + 2.4613002315163612, + 2.464260905981064, + 2.4167406372725964, + 2.42792209610343, + 2.441421151161194, + 2.447481732815504, + 2.474310342222452, + 2.4504722096025944, + 2.420530654489994, + 2.4386700242757797, + 3.115382045507431, + 2.657099161297083, + 2.574529033154249, + 2.567930147051811, + 2.567419782280922, + 2.563689835369587, + 2.551988698542118, + 2.581760287284851, + 2.582279033958912, + 2.5191991589963436, + 2.482200972735882, + 2.97286594286561, + 2.456770744174719, + 2.4738600477576256, + 2.4514207616448402, + 2.4500610306859016, + 2.444660756736994, + 2.45589017868042, + 2.446491736918688, + 2.42657121270895, + 3.0786925926804543, + 2.598967868834734, + 2.5516999885439873, + 2.5836387649178505, + 2.557668834924698, + 2.560500055551529, + 2.5473986752331257, + 2.541959285736084, + 2.521660178899765, + 2.507530152797699, + 2.4745711125433445, + 2.4769422598183155, + 2.642568200826645, + 2.4367221631109715, + 2.446200232952833, + 2.421161625534296, + 2.4395999498665333, + 2.424210775643587, + 2.5587002746760845, + 2.4694399908185005 + ], + "library": [ + 3.16309230402112, + 2.6079989038407803, + 2.571540419012308, + 2.574359066784382, + 2.5737700052559376, + 2.628119196742773, + 2.592929173260927, + 2.5666789151728153, + 2.56730942055583, + 2.5174100883305073, + 2.4897600524127483, + 2.465900033712387, + 2.4640713818371296, + 2.4722302332520485, + 2.4680010974407196, + 2.4977601133286953, + 2.522050403058529, + 2.4730898439884186, + 2.498940099030733, + 2.4784901179373264, + 3.1309430487453938, + 2.6380778290331364, + 2.5453208945691586, + 2.559400163590908, + 2.542000263929367, + 2.549158874899149, + 2.5872797705233097, + 2.565939910709858, + 2.5574099272489548, + 2.504589967429638, + 2.5071408599615097, + 2.508309669792652, + 2.492549829185009, + 2.485829871147871, + 2.5335890240967274, + 2.633678261190653, + 2.5206697173416615, + 2.559239976108074, + 2.5245100259780884, + 2.5270399637520313, + 3.0719940550625324, + 2.596698235720396, + 2.5504888035357, + 2.5876089930534363, + 2.5379592552781105, + 2.5763092562556267, + 2.550811041146517, + 2.5669592432677746, + 2.554160077124834, + 2.4704900570213795, + 2.436702139675617, + 2.456441055983305, + 2.4435208179056644, + 2.432911191135645, + 2.4623097851872444, + 2.4468018673360348, + 2.442391123622656, + 2.446470782160759, + 2.410570625215769, + 2.4030711501836777, + 3.1750230118632317, + 2.6009581051766872, + 2.6009902358055115, + 2.5965492241084576, + 2.602250315248966, + 2.6045888662338257, + 2.593490295112133, + 2.5717993266880512, + 2.550940029323101, + 2.553919330239296, + 2.492181956768036, + 2.485809847712517, + 2.472240012139082, + 2.493780106306076, + 2.5790389627218246, + 2.4877600371837616, + 2.464361023157835, + 2.444770187139511, + 2.489739563316107, + 2.496741246432066, + 3.1273220665752888, + 2.5850790552794933, + 2.567129209637642, + 2.5490596890449524, + 2.54233879968524, + 2.533338963985443, + 2.5708391331136227, + 2.608709968626499, + 2.5682388804852962, + 2.4856808595359325, + 2.456061076372862, + 2.4421820417046547, + 2.446169964969158, + 2.4367710575461388, + 2.4537299759685993, + 2.465771045535803, + 2.4589207023382187, + 2.4352408945560455, + 2.444651909172535, + 2.425141166895628, + 3.0515631660819054, + 2.6113390922546387, + 2.7616573497653008, + 2.5648698210716248, + 2.549579832702875, + 2.5610611774027348, + 2.525659278035164, + 2.5413711555302143, + 2.5317189283668995, + 2.8317272663116455, + 2.4955798871815205, + 2.4501411244273186, + 2.463161014020443, + 2.4334611371159554, + 2.468579914420843, + 2.4403510615229607, + 2.6674880646169186, + 2.433670684695244, + 2.412091940641403, + 2.4664299562573433, + 3.0777319334447384, + 2.5623911060392857, + 2.5424393825232983, + 2.5645000860095024, + 2.5358498096466064, + 2.5673890486359596, + 2.548409625887871, + 2.5564790703356266, + 2.5481190532445908, + 2.456720918416977, + 2.4338113144040108, + 2.403091173619032, + 2.421452198177576, + 2.433540765196085, + 2.4630706757307053, + 2.4433406069874763, + 2.439720556139946, + 2.418670803308487, + 2.407591324299574, + 2.3918021470308304, + 3.066972829401493, + 2.5912290439009666, + 2.561648841947317, + 2.528100274503231, + 2.5589889846742153, + 2.5302311405539513, + 2.5946591049432755, + 2.550350036472082, + 2.5615086778998375, + 2.4608206003904343, + 2.4456409737467766, + 2.419122029095888, + 2.4441606365144253, + 2.411371096968651, + 2.4500000290572643, + 2.4482710286974907, + 2.43819085881114, + 2.4237711913883686, + 2.422911114990711, + 2.430811058729887, + 3.1768418848514557, + 2.6204590685665607, + 2.566749230027199, + 2.587258815765381, + 2.574529033154249, + 2.5475588627159595, + 2.5413893163204193, + 2.555008977651596, + 2.6966682635247707, + 2.498629968613386, + 2.4404809810221195, + 2.4672714062035084, + 2.5110309943556786, + 2.513810060918331, + 2.5282707065343857, + 2.584909088909626, + 2.5545498356223106, + 2.584798727184534, + 2.564100082963705, + 2.5448291562497616, + 3.072542604058981, + 2.6120678521692753, + 2.5889589451253414, + 2.575148828327656, + 2.557209227234125, + 2.5585489347577095, + 2.5508287362754345, + 2.626358065754175, + 2.5310302153229713, + 2.4855807423591614, + 2.4551008827984333, + 2.468991093337536, + 2.458300907164812, + 2.4415701627731323, + 2.413081005215645, + 2.50840000808239, + 2.427851315587759, + 2.431371249258518, + 2.4093324318528175, + 2.4267109110951424, + 3.1081424094736576, + 2.5651087053120136, + 2.5142799131572247, + 2.5306688621640205, + 2.5614299811422825, + 2.56475992500782, + 2.532270271331072, + 2.5411490350961685, + 2.5179297663271427, + 2.4891109205782413, + 2.437461167573929, + 2.468702383339405, + 2.4543199688196182, + 2.470829989761114, + 2.437151037156582, + 2.4067009799182415, + 2.4193809367716312, + 2.4409107863903046, + 2.4592415429651737, + 2.421971410512924, + 3.0562439933419228, + 2.600698731839657, + 2.5509302504360676, + 2.5770789943635464, + 2.5419103913009167, + 2.5499192997813225, + 2.537399996072054, + 2.5539901107549667, + 2.529689110815525, + 2.488669939339161, + 2.412821166217327, + 2.432991284877062, + 2.4253209121525288, + 2.4239220656454563, + 2.4345810525119305, + 2.4365107528865337, + 2.466539852321148, + 2.453811001032591, + 2.4040527641773224, + 2.4128607474267483, + 3.1129117123782635, + 2.610189840197563, + 2.8826058842241764, + 2.543229144066572, + 2.593087963759899, + 2.6153400540351868, + 2.555409912019968, + 2.5724591687321663, + 2.564679831266403, + 2.5158007629215717, + 2.468560356646776, + 2.4253418669104576, + 2.429710701107979, + 2.4405699223279953, + 2.4484507739543915, + 2.4367710575461388, + 2.4336720816791058, + 2.44314968585968, + 2.4477820843458176, + 2.421370707452297, + 3.068914171308279, + 2.5878790766000748, + 2.579069696366787, + 2.553469967097044, + 2.5545000098645687, + 2.5337599217891693, + 2.520271111279726, + 2.538630273193121, + 2.5281612761318684, + 2.431501168757677, + 2.414450980722904, + 2.4292711168527603, + 2.4652499705553055, + 2.4571819230914116, + 2.445580903440714, + 2.3987330496311188, + 2.459299750626087, + 2.424681093543768, + 2.440210897475481, + 5.458314903080463, + 3.340410068631172, + 2.61263782158494, + 2.5912802666425705, + 2.552300225943327, + 2.5708498433232307, + 2.569728996604681, + 2.6200292631983757, + 2.5627603754401207, + 2.5485809892416, + 2.500450238585472, + 2.4588117375969887, + 2.4571409448981285, + 2.4422318674623966, + 2.4615698494017124, + 2.445071004331112, + 2.471799962222576, + 2.4703810922801495, + 2.454090863466263, + 2.4649500846862793, + 2.4409219622612, + 3.078832756727934, + 2.5918586179614067, + 2.5421688333153725, + 2.547820098698139, + 2.530708909034729, + 2.544660121202469, + 2.5482289493083954, + 2.566961105912924, + 2.5436393916606903, + 2.4858908727765083, + 2.452739980071783, + 2.4498109705746174, + 2.42080120369792, + 2.441801130771637, + 2.425141166895628, + 2.4680299684405327, + 2.483871765434742, + 2.4878899566829205, + 2.483481075614691, + 2.433700952678919, + 3.1199827790260315, + 2.590479329228401, + 2.5527006946504116, + 2.5459090247750282, + 2.580400090664625, + 2.5710989721119404, + 2.537490800023079, + 2.5350102223455906, + 2.540858928114176, + 2.4582399055361748, + 2.462340984493494, + 2.439570613205433, + 2.4217311292886734, + 2.6250500231981277, + 2.446961123496294, + 2.4437298998236656, + 2.456059679389, + 2.4610902182757854, + 2.4399813264608383, + 2.433441113680601, + 3.086282406002283, + 2.569570206105709, + 2.524980343878269, + 2.5405511260032654, + 2.5424291379749775, + 2.5548008270561695, + 2.5493986904621124, + 2.555218990892172, + 2.513130195438862, + 2.4743108078837395, + 2.440091222524643, + 2.4403599090874195, + 2.4668709374964237, + 2.4433908984065056, + 2.5143809616565704, + 2.4744211696088314, + 2.426750957965851, + 2.4375212378799915, + 2.4211211130023003, + 2.4219811893999577, + 3.0721938237547874, + 2.599798608571291, + 2.5484091602265835, + 2.530419733375311, + 2.527338918298483, + 2.537068910896778, + 2.553899772465229, + 2.5461390614509583, + 2.5351708754897118, + 2.4652397260069847, + 2.4281321093440056, + 2.4476307444274426, + 2.4219807237386703, + 2.4322010576725006, + 2.4650809355080128, + 2.554879989475012, + 2.450020983815193, + 2.460312098264694, + 2.4198107421398163, + 2.4346811696887016, + 3.1049028038978577, + 2.5795791298151016, + 2.678637858480215, + 2.5495789013803005, + 2.563619054853916, + 2.536729909479618, + 2.5317897088825703, + 2.5589889846742153, + 2.577338833361864, + 2.5089001283049583, + 2.4690907448530197, + 2.4487213231623173, + 2.438741270452738, + 2.45463103055954, + 2.43225134909153, + 2.436799928545952, + 2.44726100936532, + 2.444999758154154, + 2.4506808258593082, + 2.455130685120821 + ] + }, + "warm_ms": { + "control": [ + 66.43234938383102, + 3.530107904225588, + 3.007714170962572 + ], + "exact": [ + 6.810149177908897, + 3.198971040546894, + 2.8310571797192097 + ], + "lattice": [ + 6.867168005555868, + 3.2775509171187878, + 2.8935750015079975 + ], + "library": [ + 3.1752632930874825, + 2.8908848762512207, + 2.820056863129139 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 2.6958980597555637, + "p10_ms": 2.6008829940110445, + "p90_ms": 2.8495008591562514, + "min_ms": 2.556780818849802, + "max_ms": 3.7907250225543976, + "mean_ms": 2.736209228169173 + }, + "exact": { + "n": 400, + "median_ms": 2.5663794949650764, + "p10_ms": 2.4472921155393124, + "p90_ms": 2.6665317360311747, + "min_ms": 2.4147811345756054, + "max_ms": 3.2758410088717937, + "mean_ms": 2.574876695871353 + }, + "lattice": { + "n": 400, + "median_ms": 2.5156494230031967, + "p10_ms": 2.427870873361826, + "p90_ms": 2.651604637503624, + "min_ms": 2.3954911157488823, + "max_ms": 3.4814970567822456, + "mean_ms": 2.5523709470871836 + }, + "library": { + "n": 400, + "median_ms": 2.515090862289071, + "p10_ms": 2.429666742682457, + "p90_ms": 2.608070010319352, + "min_ms": 2.3918021470308304, + "max_ms": 5.458314903080463, + "mean_ms": 2.5443721550982445 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 1.0716509363761764, + "ci90_low": 1.056072001972604, + "ci90_high": 1.084995614521538, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.0504674250416148, + "ci90_low": 1.038668364884059, + "ci90_high": 1.061986172708488, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.0201657955587937, + "ci90_low": 1.007907998014396, + "ci90_high": 1.0283923621294282, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 0.9997779655984581, + "ci90_low": 0.9877369014235649, + "ci90_high": 1.0101787384196108, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 1.0718889325938443, + "ci90_low": 1.058214509224513, + "ci90_high": 1.0850849476841629, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.063718664659177, + "p10": 1.0506094886494313, + "p90": 1.0864638954072738 + }, + "minimum_detectable_improvement": 0.09222079605181696, + "compile": { + "control": { + "lower_s": 39.952717994805425, + "compile_s": 43.13169743400067, + "first_call_s": 0.04482376715168357, + "trace_calls": 12, + "step0_rows": [ + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507 + ], + "flops": 120379264.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 42055248, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 2220104, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1472303104, + "rss_after_compile_bytes": 2379653120, + "rss_delta_bytes": 907350016, + "hlo_sha256": "5e938ec57b63db33", + "hlo_lines": 33667, + "hlo_large_constants": 2 + }, + "exact": { + "lower_s": 38.168834048788995, + "compile_s": 46.298735856078565, + "first_call_s": 0.05087533500045538, + "trace_calls": 12, + "step0_rows": [ + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085 + ], + "flops": 56771392.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 14996808, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 5455848, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2322030592, + "rss_after_compile_bytes": 2530979840, + "rss_delta_bytes": 208949248, + "hlo_sha256": "57bbd6435d5606c0", + "hlo_lines": 34033, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 38.76316535798833, + "compile_s": 47.56142616318539, + "first_call_s": 0.05309709860011935, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 34585800.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 6349640, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 4438744, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2490433536, + "rss_after_compile_bytes": 2673987584, + "rss_delta_bytes": 183554048, + "hlo_sha256": "83abe81bb110789e", + "hlo_lines": 34033, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 41.07708629826084, + "compile_s": 48.84224777529016, + "first_call_s": 0.05692630214616656, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 34585800.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 6349640, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 4438744, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2635550720, + "rss_after_compile_bytes": 2813648896, + "rss_delta_bytes": 178098176, + "hlo_sha256": "e18c1097f2186a21", + "hlo_lines": 34033, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727824, + 13.597236541730304, + 15.306220916729094, + 10.29320008339773, + 19.977444875061742, + 21.800361541728023, + 10.748929250057948, + 9.609606333397046, + 5.166246958397972, + 14.052965708392575, + 4.710517791725226, + 6.647366750058172, + 17.926663625058694, + 16.331611541724392 + ], + "exact": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727824, + 13.597236541730304, + 15.306220916729094, + 10.29320008339773, + 19.977444875061742, + 21.800361541728023, + 10.748929250057948, + 9.609606333397046, + 5.166246958397972, + 14.052965708392575, + 4.710517791725226, + 6.647366750058172, + 17.926663625058694, + 16.331611541724392 + ], + "lattice": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727824, + 13.597236541730304, + 15.306220916729094, + 10.29320008339773, + 19.977444875061742, + 21.800361541728023, + 10.748929250057948, + 9.609606333397046, + 5.166246958397972, + 14.052965708392575, + 4.710517791725226, + 6.647366750058172, + 17.926663625058694, + 16.331611541724392 + ], + "library": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727824, + 13.597236541730304, + 15.306220916729094, + 10.29320008339773, + 19.977444875061742, + 21.800361541728023, + 10.748929250057948, + 9.609606333397046, + 5.166246958397972, + 14.052965708392575, + 4.710517791725226, + 6.647366750058172, + 17.926663625058694, + 16.331611541724392 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 25.56012716672745, + "exact": 25.56012716672745, + "lattice": 25.56012716672745, + "library": 25.56012716672745 + } + }, + "cluster_plain": { + "label": "cluster_plain", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 2.8947261162102222, + 3.5270792432129383, + 2.5873188860714436, + 2.5160801596939564, + 2.5808890350162983, + 2.5818198919296265, + 2.5950181297957897, + 2.5207800790667534, + 2.4985698983073235, + 2.4987407959997654, + 2.313361968845129, + 2.2199428640305996, + 2.16764397919178, + 2.1596038714051247, + 2.145943697541952, + 2.1836841478943825, + 2.1441439166665077, + 2.176993992179632, + 2.1029552444815636, + 2.174895256757736, + 2.6426478289067745, + 2.1183639764785767, + 2.0741852931678295, + 2.0826063118875027, + 2.105054911226034, + 2.119544893503189, + 2.0849150605499744, + 2.0873951725661755, + 2.069275826215744, + 2.0283758640289307, + 2.0166058093309402, + 2.0255958661437035, + 2.034205012023449, + 2.0199459977447987, + 2.008376643061638, + 2.0069261081516743, + 2.004126086831093, + 1.9890558905899525, + 1.9821259193122387, + 1.9549969583749771, + 2.4166409857571125, + 2.0677950233221054, + 2.0267353393137455, + 2.0419061183929443, + 2.0263856276869774, + 2.0620059221982956, + 2.0274161361157894, + 2.0710150711238384, + 2.0271558314561844, + 2.0277760922908783, + 1.991216093301773, + 1.9973558373749256, + 2.019945066422224, + 1.9799461588263512, + 2.0199157297611237, + 1.9927360117435455, + 3.0470630154013634, + 2.0426656119525433, + 2.0051058381795883, + 2.0401449874043465, + 2.649258356541395, + 2.1677538752555847, + 2.157334703952074, + 2.1124151535332203, + 2.1413653157651424, + 2.1254150196909904, + 2.1295547485351562, + 2.0937849767506123, + 2.1242452785372734, + 2.042135689407587, + 2.08750506862998, + 2.0902249962091446, + 2.084174659103155, + 2.1294550970196724, + 2.089724875986576, + 2.0769149996340275, + 2.0500458776950836, + 2.055925317108631, + 2.0296061411499977, + 2.079515252262354, + 2.526379656046629, + 2.1185451187193394, + 2.053694799542427, + 2.0984159782528877, + 2.094374969601631, + 2.0618760026991367, + 2.0894152112305164, + 2.039895858615637, + 2.0062862895429134, + 2.0248647779226303, + 2.0048562437295914, + 2.0337062887847424, + 1.966436393558979, + 2.0276857540011406, + 2.010226249694824, + 2.0200959406793118, + 2.0357449539005756, + 1.9858060404658318, + 2.0669354125857353, + 1.9850470125675201, + 2.636598888784647, + 2.088175155222416, + 2.06067506223917, + 2.0921360701322556, + 2.07293638959527, + 2.0864252001047134, + 2.085465006530285, + 2.091134898364544, + 2.091165166348219, + 2.086495980620384, + 2.05097533762455, + 2.0974548533558846, + 2.0915349014103413, + 2.0672250539064407, + 2.066075336188078, + 2.0489459857344627, + 2.0118658430874348, + 2.032076008617878, + 2.051205839961767, + 2.031615935266018, + 2.4661095812916756, + 2.113204915076494, + 2.087085973471403, + 2.0446148701012135, + 2.0494661293923855, + 2.059084828943014, + 2.111525274813175, + 2.0965351723134518, + 2.1268539130687714, + 2.0504947751760483, + 2.087346278131008, + 2.0868959836661816, + 2.073485404253006, + 2.0578457042574883, + 2.0290249958634377, + 2.0583770237863064, + 2.0254459232091904, + 2.0514661446213722, + 2.027795650064945, + 2.063835971057415, + 2.5230091996490955, + 2.0906850695610046, + 2.0401962101459503, + 2.0545260049402714, + 2.14469525963068, + 2.1114847622811794, + 2.185493241995573, + 2.1582948975265026, + 2.327132038772106, + 2.2632540203630924, + 2.6645981706678867, + 2.188194077461958, + 2.231223974376917, + 2.1582040935754776, + 2.181774005293846, + 2.1360237151384354, + 9.724733885377645, + 2.3107128217816353, + 2.2572739981114864, + 2.1701944060623646, + 2.600588835775852, + 2.0878752693533897, + 2.1159150637686253, + 2.028165850788355, + 2.042985986918211, + 2.0352452993392944, + 2.081225160509348, + 2.078775316476822, + 2.0398562774062157, + 2.0819958299398422, + 2.0563961006700993, + 2.0216060802340508, + 2.0303460769355297, + 2.061495091766119, + 2.0175157114863396, + 2.0427750423550606, + 2.144494093954563, + 2.1084649488329887, + 2.0538456737995148, + 2.0402856171131134, + 2.6363697834312916, + 2.1195937879383564, + 2.084165345877409, + 2.094635274261236, + 2.113834023475647, + 2.1197437308728695, + 2.064124681055546, + 2.107174601405859, + 2.0827259868383408, + 2.0853648893535137, + 2.0931451581418514, + 2.0856852643191814, + 2.1723350510001183, + 2.044856082648039, + 2.0729550160467625, + 2.0591048523783684, + 2.0655160769820213, + 2.0217248238623142, + 2.0544063299894333, + 2.0149960182607174, + 2.4505797773599625, + 2.0834049209952354, + 2.0644250325858593, + 2.082004677504301, + 2.0666448399424553, + 2.1020942367613316, + 2.1514538675546646, + 2.123164013028145, + 2.104004845023155, + 2.096965443342924, + 2.0547653548419476, + 2.0901053212583065, + 2.0787850953638554, + 2.063614781945944, + 2.0818160846829414, + 2.0163459703326225, + 2.0508351735770702, + 2.0224261097609997, + 2.0516752265393734, + 2.007066272199154, + 2.4230112321674824, + 2.108524553477764, + 2.040866296738386, + 2.055875025689602, + 2.059455029666424, + 2.1179653704166412, + 2.07700626924634, + 2.10322393104434, + 2.0730760879814625, + 2.077625133097172, + 2.0340457558631897, + 2.0148763433098793, + 2.0557763054966927, + 2.024004701524973, + 2.048684749752283, + 2.0124660804867744, + 2.030344679951668, + 2.0193150267004967, + 1.996876671910286, + 1.9877869635820389, + 2.582329325377941, + 2.108894754201174, + 2.0702057518064976, + 2.12474400177598, + 2.1285549737513065, + 2.1205241791903973, + 2.137443982064724, + 2.1310849115252495, + 2.120445016771555, + 2.0826859399676323, + 2.080585341900587, + 2.0806649699807167, + 2.061416395008564, + 2.064764965325594, + 2.0709550008177757, + 2.0652152597904205, + 2.05310620367527, + 2.0751748234033585, + 2.0766048692166805, + 2.0635570399463177, + 2.606659196317196, + 2.1207942627370358, + 2.100324258208275, + 2.142373938113451, + 2.0918352529406548, + 2.1564443595707417, + 2.0991251803934574, + 2.1225139498710632, + 2.132765017449856, + 2.0876750349998474, + 2.0314459688961506, + 2.0526149310171604, + 2.121265046298504, + 2.0809448324143887, + 2.073405310511589, + 2.1187253296375275, + 2.119014970958233, + 2.0909951999783516, + 2.1027051843702793, + 2.003815956413746, + 2.507341094315052, + 2.160383854061365, + 2.0584547892212868, + 2.116174902766943, + 2.1188748069107533, + 2.0941151306033134, + 2.1883430890738964, + 2.121115103363991, + 2.1136142313480377, + 2.1146750077605247, + 2.0787562243640423, + 2.053705044090748, + 2.0530661568045616, + 2.0221462473273277, + 2.0475350320339203, + 2.0205159671604633, + 2.068665809929371, + 2.0696460269391537, + 2.069875132292509, + 2.048586029559374, + 2.4644709192216396, + 2.1014749072492123, + 2.0434358157217503, + 2.058045007288456, + 2.525900024920702, + 2.0939051173627377, + 2.2206129506230354, + 2.0685656927525997, + 2.1073147654533386, + 2.0634252578020096, + 2.0427564159035683, + 2.004855778068304, + 2.0410949364304543, + 2.674228046089411, + 2.0994748920202255, + 2.043135929852724, + 2.0501958206295967, + 2.264531794935465, + 2.01281625777483, + 2.040944993495941, + 2.644958905875683, + 2.1300651133060455, + 2.1037650294601917, + 2.1391338668763638, + 2.0759161561727524, + 2.092564944177866, + 2.0459461957216263, + 2.106364816427231, + 2.0950548350811005, + 2.068755216896534, + 2.0166458562016487, + 1.9807061180472374, + 2.0338459871709347, + 2.0064557902514935, + 2.001976128667593, + 2.0408560521900654, + 2.013066317886114, + 2.011816017329693, + 2.0262361504137516, + 2.0033358596265316, + 2.575678750872612, + 2.078707329928875, + 2.0644553005695343, + 2.1052747033536434, + 2.0869849249720573, + 2.085545100271702, + 2.0562359131872654, + 2.1062148734927177, + 2.092445269227028, + 2.0157559774816036, + 2.010525669902563, + 2.0336960442364216, + 2.018395811319351, + 1.9942563958466053, + 2.019836101680994, + 1.964476890861988, + 1.9875960424542427, + 2.006946597248316, + 1.9876370206475258, + 2.00013630092144, + 2.4175806902348995, + 2.1036546677351, + 2.0357263274490833, + 2.0573348738253117, + 2.0660851150751114, + 2.056825440376997, + 2.0763357169926167, + 2.0711547695100307, + 2.1591237746179104, + 2.0571849308907986, + 2.065315842628479, + 2.0168256014585495, + 2.0331148989498615, + 2.035865094512701, + 2.1641142666339874, + 2.0436160266399384, + 2.0453748293220997, + 2.2158827632665634, + 2.040696330368519, + 2.0829946734011173, + 2.422281075268984, + 2.036196179687977, + 2.0717550069093704, + 2.0383456721901894, + 2.0661051385104656, + 2.177093643695116, + 2.0781951025128365, + 2.0678360015153885, + 2.0824349485337734, + 2.032285090535879, + 1.9939863122999668, + 2.0170658826828003, + 2.045365981757641, + 2.017335966229439, + 2.0066960714757442, + 2.046664711087942, + 2.404390834271908, + 2.012315671890974, + 1.9915360026061535, + 2.016225829720497 + ], + "exact": [ + 2.6656179688870907, + 2.130004111677408, + 2.104555256664753, + 2.0444458350539207, + 2.0542959682643414, + 2.062935847789049, + 2.036344725638628, + 2.034096047282219, + 2.062635961920023, + 1.9953162409365177, + 2.0068157464265823, + 2.0243963226675987, + 2.024824731051922, + 2.020015846937895, + 2.026805654168129, + 1.999526284635067, + 1.9508367404341698, + 1.953046303242445, + 1.9753864035010338, + 1.9164183177053928, + 2.276612911373377, + 1.9574770703911781, + 1.9658259116113186, + 1.9386373460292816, + 1.9504670053720474, + 1.9816970452666283, + 1.9828262738883495, + 1.989336684346199, + 1.9970857538282871, + 1.997755840420723, + 1.9516069442033768, + 1.9608070142567158, + 1.9501671195030212, + 1.9399160519242287, + 1.9084969535470009, + 1.9687460735440254, + 1.9435961730778217, + 1.9470471888780594, + 1.9378270953893661, + 1.9138469360768795, + 2.5367499329149723, + 2.029595896601677, + 2.033836208283901, + 2.032195683568716, + 2.064914908260107, + 2.076854929327965, + 2.0439261570572853, + 2.0245560444891453, + 2.0453459583222866, + 2.016895916312933, + 1.9748574122786522, + 1.965225674211979, + 1.9784360192716122, + 1.9930959679186344, + 1.9552968442440033, + 2.022006083279848, + 1.9847257062792778, + 1.9730762578547, + 2.0084460265934467, + 1.9669369794428349, + 2.4841311387717724, + 2.07485631108284, + 2.0625251345336437, + 2.047284971922636, + 2.072735223919153, + 2.0401962101459503, + 2.0788349211215973, + 2.0630350336432457, + 2.095164731144905, + 2.0512151531875134, + 2.0447461865842342, + 2.0151259377598763, + 1.9865762442350388, + 2.019246108829975, + 2.0119757391512394, + 2.0053558982908726, + 2.028576098382473, + 1.97290675714612, + 2.0219460129737854, + 1.9655171781778336, + 2.309831790626049, + 1.9630459137260914, + 1.9726860336959362, + 1.9823559559881687, + 1.9894461147487164, + 2.0002159290015697, + 2.008607145398855, + 2.010735683143139, + 1.9893869757652283, + 1.9664270803332329, + 2.096934709697962, + 1.9665858708322048, + 1.9697556272149086, + 1.998306717723608, + 2.0019859075546265, + 1.9864770583808422, + 2.0045661367475986, + 2.0096562802791595, + 2.033794764429331, + 1.9783060997724533, + 2.466122154146433, + 1.992825884371996, + 2.0330348052084446, + 2.015186008065939, + 2.028736285865307, + 2.0127459429204464, + 2.0066755823791027, + 2.048795111477375, + 2.0290962420403957, + 2.0371759310364723, + 2.0068162120878696, + 1.9744071178138256, + 2.0234761759638786, + 1.9708769395947456, + 1.9650468602776527, + 1.9904859364032745, + 1.9702669233083725, + 2.002596389502287, + 1.9942871294915676, + 1.9505573436617851, + 2.516689244657755, + 2.0646252669394016, + 2.0477157086133957, + 2.0687859505414963, + 2.0548258908092976, + 2.0540249533951283, + 2.0509250462055206, + 2.0083258859813213, + 2.0200256258249283, + 2.0133061334490776, + 2.009226009249687, + 1.9484972581267357, + 2.0211259834468365, + 1.974206417798996, + 1.9733370281755924, + 1.9815759733319283, + 1.9576158374547958, + 1.9713868387043476, + 2.017865888774395, + 1.9649271853268147, + 2.534948755055666, + 10.929991956800222, + 2.221493050456047, + 2.170143648982048, + 2.1665142849087715, + 2.1707150153815746, + 2.128804102540016, + 2.1375450305640697, + 2.1543437615036964, + 2.130344044417143, + 2.0977151580154896, + 2.069686073809862, + 2.08010571077466, + 2.0682448521256447, + 2.0732060074806213, + 2.0081759430468082, + 2.029986120760441, + 2.0632250234484673, + 1.9976068288087845, + 2.034964971244335, + 2.516849897801876, + 2.0904853008687496, + 2.028786111623049, + 2.0539863035082817, + 2.1014949306845665, + 2.153893932700157, + 2.3965807631611824, + 2.022216096520424, + 2.085024956613779, + 2.0188558846712112, + 1.9821668975055218, + 2.0054359920322895, + 2.0029558800160885, + 1.9862963818013668, + 1.9785268232226372, + 1.971186138689518, + 1.9815359264612198, + 2.00360594317317, + 1.9611567258834839, + 1.9425172358751297, + 2.428201027214527, + 2.0492952316999435, + 1.9941073842346668, + 2.005955670028925, + 1.9848658703267574, + 1.987716183066368, + 2.024746034294367, + 2.031095791608095, + 2.0061656832695007, + 1.9991160370409489, + 2.2563529200851917, + 2.00799573212862, + 1.9766460172832012, + 1.9529471173882484, + 1.957606989890337, + 1.9502169452607632, + 1.9425759091973305, + 1.9623558036983013, + 1.9708657637238503, + 1.9979961216449738, + 2.4930299259722233, + 2.069655805826187, + 1.9902558997273445, + 2.030214760452509, + 2.0227059721946716, + 2.051315736025572, + 2.036985009908676, + 2.0245457999408245, + 2.0526647567749023, + 2.0158858969807625, + 2.000975888222456, + 2.015496138483286, + 1.9474267028272152, + 1.9707470200955868, + 1.9703558646142483, + 2.0076660439372063, + 1.9987956620752811, + 1.9332170486450195, + 1.9383467733860016, + 1.9669672474265099, + 2.3624729365110397, + 2.0419759675860405, + 2.011766191571951, + 1.9785170443356037, + 1.9870568066835403, + 1.974456012248993, + 2.0639151334762573, + 2.001077402383089, + 1.9976571202278137, + 1.9773170351982117, + 1.9783861935138702, + 1.9938061013817787, + 1.9470560364425182, + 2.004076261073351, + 1.9881571643054485, + 1.9843559712171555, + 1.9912458956241608, + 2.0120260305702686, + 1.924306619912386, + 2.0161159336566925, + 2.451539970934391, + 2.1469350904226303, + 2.0082863047719, + 2.0583560690283775, + 2.0679146982729435, + 2.073145005851984, + 2.117455005645752, + 2.1116752177476883, + 2.0701950415968895, + 2.081574872136116, + 2.0466363057494164, + 1.994796097278595, + 1.9729766063392162, + 2.6461780071258545, + 2.000335603952408, + 1.9800462760031223, + 1.9976063631474972, + 1.9552060402929783, + 2.0178561098873615, + 1.96885596960783, + 2.319903112947941, + 2.044335938990116, + 1.9980757497251034, + 2.0602960139513016, + 2.008435782045126, + 2.0679254084825516, + 2.0377058535814285, + 2.0208661444485188, + 2.016565762460232, + 1.963366288691759, + 1.9742557778954506, + 2.0083258859813213, + 1.933376770466566, + 1.9855559803545475, + 1.9770273938775063, + 1.9596163183450699, + 1.9569071009755135, + 2.0243958570063114, + 1.9493070431053638, + 1.9810060039162636, + 2.5333710946142673, + 2.0470148883759975, + 2.0277160219848156, + 1.9731069914996624, + 2.015075646340847, + 2.0100660622119904, + 2.0329058170318604, + 2.1440540440380573, + 2.0533460192382336, + 2.012415789067745, + 1.9903271459043026, + 1.9847359508275986, + 1.9711470231413841, + 1.9463468343019485, + 1.993226818740368, + 1.9826269708573818, + 2.094745170325041, + 1.928216777741909, + 1.9561359658837318, + 1.922657247632742, + 2.4207611568272114, + 2.061285078525543, + 2.0213359966874123, + 2.058606129139662, + 2.02713580802083, + 2.057325094938278, + 2.0746057853102684, + 2.0496551878750324, + 2.071246039122343, + 1.9955863244831562, + 1.9931560382246971, + 2.0374152809381485, + 1.9984259270131588, + 1.9847359508275986, + 1.9987961277365685, + 2.00437568128109, + 1.9894861616194248, + 1.9658165983855724, + 2.008075825870037, + 1.9595557823777199, + 2.5060600601136684, + 2.0251148380339146, + 1.9535273313522339, + 1.9740359857678413, + 1.9644270651042461, + 1.9727670587599277, + 1.9999858923256397, + 2.030835021287203, + 2.011246047914028, + 1.9720769487321377, + 1.9739558920264244, + 1.9337371923029423, + 1.9514765590429306, + 1.9761170260608196, + 1.941257156431675, + 1.9313273951411247, + 1.9663767889142036, + 1.9757258705794811, + 1.9421670585870743, + 1.9509866833686829, + 2.470571082085371, + 2.0688348449766636, + 2.01244605705142, + 2.018106169998646, + 2.0286859944462776, + 2.021085936576128, + 2.017306163907051, + 2.011816017329693, + 1.9838260486721992, + 1.97996711358428, + 1.930826809257269, + 1.9554169848561287, + 1.9686068408191204, + 1.9341371953487396, + 1.9513871520757675, + 1.9684070721268654, + 1.9328771159052849, + 1.9509070552885532, + 1.9735260866582394, + 1.9658557139337063, + 2.5986689142882824, + 2.1628038957715034, + 2.0023356191813946, + 1.9698371179401875, + 1.9753267988562584, + 2.0442362874746323, + 2.00429605320096, + 2.0106062293052673, + 2.0091161131858826, + 1.9648573361337185, + 1.9827671349048615, + 1.923777163028717, + 1.966036856174469, + 1.9395970739424229, + 1.9635367207229137, + 1.956127118319273, + 1.980937086045742, + 1.9780667498707771, + 1.9463659264147282, + 1.9521471112966537, + 2.4110511876642704, + 2.006265800446272, + 2.0021358504891396, + 1.9776970148086548, + 2.0030359737575054, + 1.9646072760224342, + 1.9949567504227161, + 1.9992059096693993, + 1.9587669521570206, + 1.9607068970799446, + 1.9827070645987988, + 1.9285869784653187, + 1.9593467004597187, + 1.9903061911463737, + 1.9422774203121662, + 1.9603269174695015, + 1.9854763522744179, + 1.9224067218601704, + 1.949286088347435, + 1.9635260105133057 + ], + "lattice": [ + 2.554420381784439, + 1.9816472195088863, + 1.9643367268145084, + 1.946446020156145, + 1.9277669489383698, + 1.9415169954299927, + 1.9296971149742603, + 1.9407868385314941, + 1.9331169314682484, + 1.9207270815968513, + 1.9404073245823383, + 1.9178870134055614, + 1.920327078551054, + 1.9308766350150108, + 1.9246367737650871, + 1.895408146083355, + 1.9341269508004189, + 1.8985280767083168, + 1.9216970540583134, + 1.9219769164919853, + 2.319931983947754, + 2.03281594440341, + 2.0401058718562126, + 1.9727661274373531, + 1.9366173073649406, + 1.97620689868927, + 1.9852062687277794, + 1.992956269532442, + 2.0063063129782677, + 1.9546067342162132, + 1.9505573436617851, + 1.9574170000851154, + 1.9338778220117092, + 1.9776658155024052, + 1.961057074368, + 1.9175759516656399, + 1.923087053000927, + 1.9761170260608196, + 1.9362769089639187, + 2.0601260475814342, + 2.429370768368244, + 2.000776119530201, + 1.9738869741559029, + 2.0110555924475193, + 1.962136011570692, + 1.9776360131800175, + 1.9734757952392101, + 1.9832258112728596, + 1.9906661473214626, + 2.0096558146178722, + 1.9591767340898514, + 1.942116767168045, + 1.9484148360788822, + 1.9735870882868767, + 1.944286748766899, + 1.9792360253632069, + 1.9185668788850307, + 1.947337295860052, + 1.961046364158392, + 1.9582067616283894, + 2.638838719576597, + 2.0420760847628117, + 2.029615920037031, + 2.0251860842108727, + 2.0102658309042454, + 1.9841957837343216, + 2.052155788987875, + 2.0622159354388714, + 2.0388560369610786, + 1.9654268398880959, + 1.9389968365430832, + 1.9418471492826939, + 1.9476069137454033, + 1.9842260517179966, + 1.976157072931528, + 1.952826976776123, + 1.9529969431459904, + 1.989707350730896, + 1.9692662172019482, + 1.9244570285081863, + 2.4342508986592293, + 2.032696269452572, + 2.07212520763278, + 2.009466290473938, + 2.0584650337696075, + 2.0302459597587585, + 2.0150961354374886, + 2.0010462030768394, + 1.9988557323813438, + 2.0115259103477, + 2.0023370161652565, + 1.9400673918426037, + 1.9893059507012367, + 1.963196787983179, + 1.9620759412646294, + 2.010366879403591, + 1.9838870503008366, + 1.9551469013094902, + 1.9917958416044712, + 1.9415169954299927, + 2.4616699665784836, + 2.0295362919569016, + 2.015956211835146, + 1.9867760129272938, + 1.990265678614378, + 2.034256234765053, + 2.0579053089022636, + 2.0582848228514194, + 2.0505557768046856, + 2.025375608354807, + 1.9679758697748184, + 2.0294957794249058, + 1.9629057496786118, + 1.9694170914590359, + 1.9918759353458881, + 1.9606971181929111, + 2.000696025788784, + 1.9882069900631905, + 1.9392170943319798, + 1.9831061363220215, + 2.439752221107483, + 2.0148358307778835, + 1.9977455958724022, + 1.99984572827816, + 2.0173159427940845, + 2.0308061502873898, + 1.9941069185733795, + 1.9856360740959644, + 2.0602350123226643, + 2.011355943977833, + 1.9925669766962528, + 1.9755158573389053, + 1.967316959053278, + 1.9468269310891628, + 1.9370471127331257, + 1.9562458619475365, + 1.9403668120503426, + 1.9212672486901283, + 1.9387067295610905, + 1.95978581905365, + 2.6236488483846188, + 2.15123500674963, + 2.116505056619644, + 2.1135550923645496, + 2.0970050245523453, + 2.080785110592842, + 2.0673549734055996, + 2.076996024698019, + 2.087764907628298, + 1.9844560883939266, + 1.9726171158254147, + 1.9766772165894508, + 1.9345968030393124, + 1.9992063753306866, + 1.9701668061316013, + 1.9515757448971272, + 1.952627208083868, + 1.9894856959581375, + 1.9700471311807632, + 1.93092692643404, + 2.5012698024511337, + 2.090754918754101, + 1.9854363054037094, + 2.005035988986492, + 2.04061483964324, + 1.9675763323903084, + 2.0307358354330063, + 2.0196549594402313, + 1.983296126127243, + 1.9664471037685871, + 1.9503766670823097, + 1.9778860732913017, + 1.9701658748090267, + 1.9786171615123749, + 1.963046845048666, + 1.9653858616948128, + 1.9910759292542934, + 1.9767568446695805, + 1.9529173150658607, + 1.935737207531929, + 2.4473113007843494, + 2.0370562560856342, + 2.017796039581299, + 2.0168758928775787, + 2.008236013352871, + 2.0410451106727123, + 2.0423252135515213, + 2.0278552547097206, + 2.031175885349512, + 1.9765859469771385, + 1.980896107852459, + 1.9559566862881184, + 1.9855774007737637, + 1.9837860018014908, + 1.9699460826814175, + 2.053475007414818, + 1.9872961565852165, + 1.9730161875486374, + 1.9732257351279259, + 1.9662459380924702, + 2.4619796313345432, + 2.069205977022648, + 2.0836349576711655, + 2.034856006503105, + 2.0303959026932716, + 2.0030466839671135, + 2.0164758898317814, + 1.9943560473620892, + 2.023946028202772, + 1.9868062809109688, + 1.9551059231162071, + 1.9674473442137241, + 1.9447566010057926, + 1.9269166514277458, + 1.9661560654640198, + 1.9402368925511837, + 1.9319872371852398, + 1.9536861218512058, + 1.9653667695820332, + 1.9338270649313927, + 2.5348509661853313, + 1.9990857690572739, + 2.0150761120021343, + 2.0776051096618176, + 2.007056027650833, + 1.99413625523448, + 2.1147248335182667, + 2.0659356378018856, + 2.007545903325081, + 2.023136243224144, + 2.040946390479803, + 1.9718771800398827, + 2.0131259225308895, + 2.016996033489704, + 1.9646361470222473, + 1.9814260303974152, + 1.9582761451601982, + 2.0040059462189674, + 2.078395336866379, + 1.9954461604356766, + 2.4377908557653427, + 2.0024357363581657, + 2.0371670834720135, + 2.0131762139499187, + 2.035335171967745, + 2.0485762506723404, + 2.0055556669831276, + 2.0573949441313744, + 2.149143721908331, + 2.0019561052322388, + 1.9966061227023602, + 1.9508670084178448, + 1.9722268916666508, + 1.9267573952674866, + 1.9793668761849403, + 1.9837063737213612, + 1.9483468495309353, + 1.9716359674930573, + 2.3973919451236725, + 1.9702757708728313, + 2.4194708094000816, + 2.137565053999424, + 2.0471159368753433, + 2.0313160493969917, + 1.9963160157203674, + 2.0169061608612537, + 2.023435663431883, + 1.9946363754570484, + 2.0865751430392265, + 1.982336863875389, + 1.999035943299532, + 1.985316164791584, + 1.9909772090613842, + 1.9206968136131763, + 1.9580759108066559, + 1.9958368502557278, + 1.9418969750404358, + 2.026465255767107, + 1.9643958657979965, + 1.974965911358595, + 2.5070803239941597, + 2.0357770845294, + 1.9860169850289822, + 2.0352862775325775, + 1.9856970757246017, + 2.034545876085758, + 2.004236914217472, + 2.1495954133570194, + 1.993515994399786, + 1.9595357589423656, + 1.9776970148086548, + 2.008435782045126, + 1.9644461572170258, + 1.9661360420286655, + 1.9523869268596172, + 1.9834470003843307, + 1.985945738852024, + 2.013955730944872, + 1.9521270878612995, + 2.015315927565098, + 2.530569676309824, + 2.063845284283161, + 2.0292256958782673, + 2.043745946139097, + 2.7013872750103474, + 2.091385889798403, + 3.0899830162525177, + 2.354270778596401, + 2.343282103538513, + 2.3211119696497917, + 2.3251818493008614, + 2.2887331433594227, + 2.3068231530487537, + 2.2906321100890636, + 2.2662333212792873, + 2.057884819805622, + 1.9885660149157047, + 1.9938470795750618, + 1.9601266831159592, + 1.9712159410119057, + 2.423342317342758, + 2.0214561372995377, + 1.9838358275592327, + 1.970906276255846, + 2.021695952862501, + 1.9934759475290775, + 1.9698971882462502, + 2.0324159413576126, + 2.0048157311975956, + 1.9902759231626987, + 1.9599171355366707, + 1.90716702491045, + 1.9488460384309292, + 1.9835657440125942, + 1.943197101354599, + 1.9490057602524757, + 1.9427770748734474, + 1.9290470518171787, + 1.928676851093769, + 1.9521070644259453, + 2.476941794157028, + 2.008795738220215, + 1.993176992982626, + 1.978456974029541, + 1.971106044948101, + 1.9660568796098232, + 1.9749361090362072, + 1.999767031520605, + 2.0080162212252617, + 1.974727027118206, + 1.9735372625291348, + 1.9730469211935997, + 1.9588172435760498, + 1.9848858937621117, + 1.963706687092781, + 1.950426958501339, + 1.9741659052670002, + 1.9654161296784878, + 1.9425470381975174, + 1.962387003004551, + 2.400121185928583, + 1.9837268628180027, + 1.9490770064294338, + 1.9593569450080395, + 1.9454369321465492, + 1.9379067234694958, + 1.9428972154855728, + 1.9876062870025635, + 1.9528763368725777, + 1.9372673705220222, + 1.9336771219968796, + 1.92346703261137, + 1.953877042979002, + 1.97112699970603, + 1.9470462575554848, + 1.945876982063055, + 1.9678771495819092, + 1.9644368439912796, + 1.9188080914318562, + 1.9365856423974037, + 2.5751390494406223, + 1.9965162500739098, + 1.9568069837987423, + 1.9697360694408417, + 1.9529559649527073, + 1.9721859134733677, + 2.009876072406769, + 1.9555967301130295, + 2.011445816606283, + 1.9815564155578613, + 1.9254367798566818, + 1.9376273266971111, + 1.9685961306095123, + 1.9260370172560215, + 1.9505368545651436, + 1.9454266875982285, + 1.913886982947588, + 1.9171368330717087, + 1.9177170470356941, + 1.9435468129813671 + ], + "library": [ + 2.573049161583185, + 1.966696698218584, + 2.1326160058379173, + 1.969645731151104, + 1.9552269950509071, + 1.9487971439957619, + 1.913917250931263, + 1.9761468283832073, + 2.2445833310484886, + 1.9740471616387367, + 1.967135351151228, + 1.9692666828632355, + 1.9233869388699532, + 2.3620217107236385, + 1.9238870590925217, + 1.8867682665586472, + 1.9521270878612995, + 1.9361572340130806, + 1.9334270618855953, + 1.9619772210717201, + 2.4601807817816734, + 1.9416171126067638, + 1.9492870196700096, + 1.9897762686014175, + 1.9909362308681011, + 2.004606183618307, + 2.00882600620389, + 2.0032860338687897, + 2.1808240562677383, + 1.968777272850275, + 1.9604968838393688, + 1.9619972445070744, + 1.9870968535542488, + 1.9569266587495804, + 1.980446744710207, + 1.9445456564426422, + 1.9783470779657364, + 1.9501070491969585, + 1.9557070918381214, + 1.9337870180606842, + 2.4943710304796696, + 2.0336657762527466, + 1.9666566513478756, + 1.9798572175204754, + 1.975777093321085, + 1.9681360572576523, + 2.040185034275055, + 1.9723759032785892, + 1.9803959876298904, + 1.933517400175333, + 1.9405768252909184, + 1.933736726641655, + 1.9335569813847542, + 1.9326270557940006, + 1.9172863103449345, + 1.9347574561834335, + 1.93867739289999, + 1.9494770094752312, + 1.9505666568875313, + 1.925647258758545, + 2.510290127247572, + 2.0656250417232513, + 2.0728958770632744, + 2.090314868837595, + 2.103065140545368, + 2.083664759993553, + 2.1062749437987804, + 2.0894850604236126, + 2.1468247286975384, + 2.0052860490977764, + 1.9830567762255669, + 2.0037670619785786, + 2.0298752933740616, + 2.0099757239222527, + 2.0459857769310474, + 2.016996033489704, + 2.0153960213065147, + 1.9842158071696758, + 1.986876130104065, + 1.994485966861248, + 2.6500592939555645, + 2.091445028781891, + 2.026855945587158, + 2.047455869615078, + 2.0601851865649223, + 2.0120260305702686, + 2.032024785876274, + 2.0244759507477283, + 2.062356099486351, + 2.0261057652533054, + 2.0233262330293655, + 2.0141759887337685, + 1.9995658658444881, + 2.022615633904934, + 1.9725160673260689, + 1.9791466183960438, + 1.9650962203741074, + 1.9671767950057983, + 2.011505886912346, + 1.985515933483839, + 2.502650022506714, + 2.011616248637438, + 1.981666311621666, + 1.9889669492840767, + 1.9922959618270397, + 2.028185874223709, + 2.0225648768246174, + 1.9674468785524368, + 2.019616309553385, + 1.9505871459841728, + 1.96059700101614, + 1.9519859924912453, + 1.9674873910844326, + 1.9499859772622585, + 1.9653569906949997, + 1.9388170912861824, + 1.9488371908664703, + 1.9612768664956093, + 2.0120861008763313, + 1.938236877322197, + 2.4542897008359432, + 2.0037670619785786, + 1.9927462562918663, + 2.7497769333422184, + 2.0447857677936554, + 1.9607157446444035, + 1.9586971029639244, + 1.9824560731649399, + 2.0432262681424618, + 1.9895569421350956, + 1.992856152355671, + 1.9912859424948692, + 2.2893729619681835, + 2.042036037892103, + 1.9544772803783417, + 1.9865860231220722, + 1.9348771311342716, + 1.9553168676793575, + 1.9365069456398487, + 1.9651269540190697, + 2.519790083169937, + 2.0649549551308155, + 2.0382660441100597, + 2.0455457270145416, + 2.0842752419412136, + 2.036574762314558, + 2.021776046603918, + 2.033144701272249, + 2.0640050061047077, + 2.0130262710154057, + 1.967577263712883, + 1.9639958627521992, + 1.9679567776620388, + 1.9665369763970375, + 1.991216093301773, + 1.9308780319988728, + 1.9463771022856236, + 1.9797966815531254, + 1.9288570620119572, + 1.9336570985615253, + 2.6581180281937122, + 2.0775250159204006, + 2.0390059798955917, + 2.1635941229760647, + 2.0197159610688686, + 2.0319060422480106, + 2.0700860768556595, + 2.0156558603048325, + 2.0261667668819427, + 2.052375115454197, + 1.9845659844577312, + 2.0015262998640537, + 1.9860956817865372, + 1.9810767844319344, + 1.9910559058189392, + 1.9797557033598423, + 1.9675260409712791, + 1.9553168676793575, + 1.9717765972018242, + 1.958346925675869, + 2.5108903646469116, + 2.042606007307768, + 2.0513860508799553, + 2.035936340689659, + 2.07166513428092, + 2.0875553600490093, + 2.0444761030375957, + 2.0404853858053684, + 2.0262361504137516, + 2.0308163948357105, + 2.0155059173703194, + 1.9725263118743896, + 2.1602236665785313, + 1.9501368515193462, + 2.0116260275244713, + 2.0150961354374886, + 1.9786562770605087, + 1.9794171676039696, + 1.9938359037041664, + 1.9484669901430607, + 2.492510247975588, + 2.04084487631917, + 2.0373756997287273, + 1.9971258006989956, + 2.025935798883438, + 1.9906559027731419, + 2.025686204433441, + 2.001055981963873, + 2.1633640863001347, + 2.004855778068304, + 1.9745263271033764, + 1.9694259390234947, + 1.956637017428875, + 1.918226946145296, + 1.9698059186339378, + 1.9397670403122902, + 1.9505573436617851, + 1.9968762062489986, + 1.937957014888525, + 1.9515869207680225, + 2.4745012633502483, + 2.0244158804416656, + 2.036936115473509, + 2.0295558497309685, + 1.9975462928414345, + 2.025865949690342, + 2.0338748581707478, + 2.02853512018919, + 2.0583858713507652, + 2.0061759278178215, + 1.9770069047808647, + 1.9486770033836365, + 1.9911257550120354, + 1.9838260486721992, + 1.962847076356411, + 1.9891862757503986, + 1.9870568066835403, + 2.0667058415710926, + 1.9548269920051098, + 2.029587049037218, + 2.5998898781836033, + 2.0070169121026993, + 2.003635745495558, + 1.9837059080600739, + 1.9785859622061253, + 2.0447061397135258, + 1.9651968032121658, + 1.9601956009864807, + 1.9947569817304611, + 2.4204012006521225, + 1.9235271029174328, + 1.9253767095506191, + 1.9494369626045227, + 1.9248472526669502, + 1.9246968440711498, + 2.3471033200621605, + 1.9523459486663342, + 1.951446756720543, + 1.96782685816288, + 1.9516772590577602, + 2.709487918764353, + 2.0890552550554276, + 2.005806192755699, + 1.9997963681817055, + 2.0425659604370594, + 2.076264936476946, + 2.0322860218584538, + 2.211424056440592, + 2.0389859564602375, + 2.0099561661481857, + 2.425570972263813, + 2.0046960562467575, + 1.9796560518443584, + 1.986565999686718, + 2.0034760236740112, + 2.01221602037549, + 2.007346134632826, + 2.0431759767234325, + 1.9886861555278301, + 1.9729258492588997, + 2.5063399225473404, + 2.055805642157793, + 2.1351040340960026, + 2.009197138249874, + 2.002045977860689, + 2.0408760756254196, + 2.04188609495759, + 1.9967160187661648, + 2.0518461242318153, + 1.986715942621231, + 1.9999761134386063, + 1.9693956710398197, + 1.9993172027170658, + 1.9946768879890442, + 1.9582868553698063, + 2.0184661261737347, + 1.9562169909477234, + 1.9569466821849346, + 2.000025939196348, + 1.9809156656265259, + 3.016395028680563, + 2.474679611623287, + 1.9833259284496307, + 1.9733663648366928, + 1.967006828635931, + 2.131034154444933, + 1.9670170731842518, + 1.9624968990683556, + 2.0517646335065365, + 2.236714120954275, + 2.0629349164664745, + 1.9654170610010624, + 2.1256948821246624, + 1.9818460568785667, + 1.9536269828677177, + 1.955206971615553, + 1.981557346880436, + 1.9845059141516685, + 1.9812663085758686, + 1.9694571383297443, + 2.554649021476507, + 2.0418651401996613, + 2.0136162638664246, + 2.033485099673271, + 2.021465916186571, + 2.037975937128067, + 2.0192060619592667, + 2.0288960076868534, + 2.0233159884810448, + 2.0987549796700478, + 1.9894069992005825, + 1.9413968548178673, + 1.9651972688734531, + 1.9531268626451492, + 1.9691758789122105, + 1.9450969994068146, + 1.955385785549879, + 1.9713258370757103, + 1.9338768906891346, + 1.946545671671629, + 2.3989612236618996, + 2.012686338275671, + 2.0058071240782738, + 2.0007858984172344, + 1.9850772805511951, + 1.9919457845389843, + 2.006086055189371, + 1.9964161328971386, + 2.003926783800125, + 1.9964762032032013, + 1.9492870196700096, + 1.9745361059904099, + 1.9828267395496368, + 1.9624270498752594, + 1.9585369154810905, + 1.954986248165369, + 1.955975778400898, + 1.9545769318938255, + 1.9686268642544746, + 1.9214069470763206, + 2.39472184330225, + 2.045846078544855, + 2.0479047670960426, + 2.2897631861269474, + 2.034456003457308, + 2.0527360029518604, + 2.0243562757968903, + 2.0131058990955353, + 2.023005858063698, + 1.990445889532566, + 1.9545559771358967, + 1.9767158664762974, + 1.9770660437643528, + 1.9867261871695518, + 1.9665667787194252, + 1.9260365515947342, + 1.9121170043945312, + 1.9674268551170826, + 1.9420669414103031, + 1.9451570697128773, + 2.4021612480282784, + 2.019016072154045, + 1.9649970345199108, + 2.043225336819887, + 1.9768057391047478, + 1.9918358884751797, + 2.0219660364091396, + 1.9981469959020615, + 2.01975554227829, + 1.9831061363220215, + 1.94851728156209, + 1.9636768847703934, + 1.9463766366243362, + 1.9918959587812424, + 1.9585774280130863, + 1.9481168128550053, + 1.9393968395888805, + 1.9402368925511837, + 1.932636834681034, + 1.9296566024422646 + ] + }, + "warm_ms": { + "control": [ + 49.94949605315924, + 2.8390162624418736, + 2.432321198284626 + ], + "exact": [ + 5.175638012588024, + 2.5150300934910774, + 2.3635518737137318 + ], + "lattice": [ + 4.980070982128382, + 2.5286786258220673, + 2.4166307412087917 + ], + "library": [ + 2.587710041552782, + 2.4258410558104515, + 2.3912410251796246 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 2.0734453573822975, + "p10_ms": 2.0127812400460243, + "p90_ms": 2.257872000336647, + "min_ms": 1.9549969583749771, + "max_ms": 9.724733885377645, + "mean_ms": 2.137085305294022 + }, + "exact": { + "n": 400, + "median_ms": 2.0024660043418407, + "p10_ms": 1.950900023803115, + "p90_ms": 2.101800963282585, + "min_ms": 1.9084969535470009, + "max_ms": 10.929991956800222, + "mean_ms": 2.053622141247615 + }, + "lattice": { + "n": 400, + "median_ms": 1.9837564323097467, + "p10_ms": 1.936614140868187, + "p90_ms": 2.090818015858531, + "min_ms": 1.895408146083355, + "max_ms": 3.0899830162525177, + "mean_ms": 2.0227648550644517 + }, + "library": { + "n": 400, + "median_ms": 1.9911709241569042, + "p10_ms": 1.9420219585299492, + "p90_ms": 2.108216937631369, + "min_ms": 1.8867682665586472, + "max_ms": 3.016395028680563, + "mean_ms": 2.0321344258263707 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 1.0452116618813547, + "ci90_low": 1.0417737829687037, + "ci90_high": 1.0496513233572071, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.0354459715603441, + "ci90_low": 1.0317421205151216, + "ci90_high": 1.0398845666600622, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.0094313856919974, + "ci90_low": 1.006542913500279, + "ci90_high": 1.0126548198529544, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 1.0037376019184596, + "ci90_low": 1.0007247086920017, + "ci90_high": 1.0075665857972527, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 1.04131962365824, + "ci90_low": 1.0369136214924581, + "ci90_high": 1.045738664321791, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.040353048697229, + "p10": 1.0204059529902525, + "p90": 1.0618187922792508 + }, + "minimum_detectable_improvement": 0.11820459093267216, + "compile": { + "control": { + "lower_s": 28.905413136817515, + "compile_s": 36.10943379905075, + "first_call_s": 0.04400706710293889, + "trace_calls": 12, + "step0_rows": [ + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507 + ], + "flops": 120366792.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 42051400, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 2219752, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2753503232, + "rss_after_compile_bytes": 2828222464, + "rss_delta_bytes": 74719232, + "hlo_sha256": "afe587e822959b16", + "hlo_lines": 27927, + "hlo_large_constants": 2 + }, + "exact": { + "lower_s": 26.527243240270764, + "compile_s": 37.20784784294665, + "first_call_s": 0.041169940028339624, + "trace_calls": 12, + "step0_rows": [ + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085 + ], + "flops": 56755260.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 14996040, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 5455496, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2814590976, + "rss_after_compile_bytes": 2830991360, + "rss_delta_bytes": 16400384, + "hlo_sha256": "74cc7b99fe81a41a", + "hlo_lines": 27744, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 27.129513354040682, + "compile_s": 37.358835886232555, + "first_call_s": 0.04329914506524801, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 34569668.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 6349384, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 4438392, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2818408448, + "rss_after_compile_bytes": 2852257792, + "rss_delta_bytes": 33849344, + "hlo_sha256": "443de033b6b54ecd", + "hlo_lines": 27844, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 28.66474192077294, + "compile_s": 38.76463757036254, + "first_call_s": 0.045486290007829666, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 34569668.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 6349384, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 4438392, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2847014912, + "rss_after_compile_bytes": 2871939072, + "rss_delta_bytes": 24924160, + "hlo_sha256": "26f9d683ccf43655", + "hlo_lines": 27844, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 23.965075083393216, + -743.7107061665998, + 3.34333029172722, + -489.755628041605, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.35458637494291, + -110.36109679160913, + -691.0739874166075, + -1296.2823207499168, + -205.49456033327567, + -223.8376592915989, + -334.80771137493866 + ], + "exact": [ + 23.965075083393216, + -743.7107061665998, + 3.34333029172722, + -489.755628041605, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.35458637494291, + -110.36109679160913, + -691.0739874166075, + -1296.2823207499168, + -205.49456033327567, + -223.8376592915989, + -334.80771137493866 + ], + "lattice": [ + 23.965075083393216, + -743.7107061665998, + 3.34333029172722, + -489.755628041605, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.35458637494291, + -110.36109679160913, + -691.0739874166075, + -1296.2823207499168, + -205.49456033327567, + -223.8376592915989, + -334.80771137493866 + ], + "library": [ + 23.965075083393216, + -743.7107061665998, + 3.34333029172722, + -489.755628041605, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.35458637494291, + -110.36109679160913, + -691.0739874166075, + -1296.2823207499168, + -205.49456033327567, + -223.8376592915989, + -334.80771137493866 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 23.965075083393216, + "exact": 23.965075083393216, + "lattice": 23.965075083393216, + "library": 23.965075083393216 + } + } + }, + "gates": { + "simple_solved_positions": { + "n_instances": 3, + "compile": { + "control": { + "lower_s": 1.4205329958349466, + "compile_s": 3.9622621396556497, + "first_call_s": 0.011460243724286556, + "trace_calls": 1, + "step0_rows": [ + 69849 + ], + "flops": 6597258.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 3362120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 937624, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1035763712, + "rss_after_compile_bytes": 1048489984, + "rss_delta_bytes": 12726272, + "hlo_sha256": "99673b90f02785af", + "hlo_lines": 8786, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 1.4192598820663989, + "compile_s": 3.846204769797623, + "first_call_s": 0.011402035132050514, + "trace_calls": 1, + "step0_rows": [ + 28665 + ], + "flops": 3866358.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 927048, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1395944, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1048522752, + "rss_after_compile_bytes": 1051209728, + "rss_delta_bytes": 2686976, + "hlo_sha256": "a502c1da8900d731", + "hlo_lines": 8705, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 1.3169263289310038, + "compile_s": 3.920017412863672, + "first_call_s": 0.01033990690484643, + "trace_calls": 1, + "step0_rows": [ + 11859 + ], + "flops": 3065634.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 389448, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1127048, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1051209728, + "rss_after_compile_bytes": 1057775616, + "rss_delta_bytes": 6565888, + "hlo_sha256": "10e880729d90cb76", + "hlo_lines": 8682, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 1.4182000937871635, + "compile_s": 3.934590449091047, + "first_call_s": 0.01017811894416809, + "trace_calls": 1, + "step0_rows": [ + 11859 + ], + "flops": 3065634.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 389448, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1127048, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1057792000, + "rss_after_compile_bytes": 1061912576, + "rss_delta_bytes": 4120576, + "hlo_sha256": "10e880729d90cb76", + "hlo_lines": 8682, + "hlo_large_constants": 3 + } + }, + "positions": { + "control": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351335 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "exact": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351335 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "lattice": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351335 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "library": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351335 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ] + }, + "finite_positions": { + "control": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "exact": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "lattice": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "library": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_lattice": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_library": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + } + } + }, + "simple_solved_grad": { + "n_instances": 3, + "rtol": 1e-10, + "atol": 1e-12, + "compile": { + "control": { + "lower_s": 4.350390992127359, + "compile_s": 16.704993444029242, + "first_call_s": 0.23488235473632812, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 8513047.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 3375240, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 937848, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1061928960, + "rss_after_compile_bytes": 1164201984, + "rss_delta_bytes": 102273024, + "hlo_sha256": "8013477c097a8d03", + "hlo_lines": 23421, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 4.308513269759715, + "compile_s": 16.662182135973126, + "first_call_s": 0.021712210029363632, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 5782147.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 940680, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1396168, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1180286976, + "rss_after_compile_bytes": 1345384448, + "rss_delta_bytes": 165097472, + "hlo_sha256": "c06e48a8de116e58", + "hlo_lines": 23342, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 4.29480479285121, + "compile_s": 16.904061995912343, + "first_call_s": 0.024354259949177504, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 4981423.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 408456, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1127272, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1345392640, + "rss_after_compile_bytes": 1408319488, + "rss_delta_bytes": 62926848, + "hlo_sha256": "730cf7c5cbfdf1b6", + "hlo_lines": 23320, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 4.353780281264335, + "compile_s": 16.57481759507209, + "first_call_s": 0.02367827808484435, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 4981423.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 408456, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1127272, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1408319488, + "rss_after_compile_bytes": 1464012800, + "rss_delta_bytes": 55693312, + "hlo_sha256": "730cf7c5cbfdf1b6", + "hlo_lines": 23320, + "hlo_large_constants": 3 + } + }, + "all_finite": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "any_nonzero_per_instance": { + "control": [ + true, + true, + true + ], + "exact": [ + true, + true, + true + ], + "lattice": [ + true, + true, + true + ], + "library": [ + true, + true, + true + ] + }, + "gradients": { + "control": [ + [ + -41.62226304409438, + 53.13429595961162, + 31.78649237786796, + 2.8041319222743963, + 1781.7386158499723 + ], + [ + -46.40807305536087, + 75.13738885139988, + 78.91835319795189, + 74.3249971953795, + 2531.5778928836007 + ], + [ + 62.95146940120323, + -41.40185295995114, + 18.162643132915864, + 109.0003235058206, + -1560.5490919238116 + ] + ], + "exact": [ + [ + -41.62226304409438, + 53.13429595961162, + 31.78649237786796, + 2.8041319222743963, + 1781.7386158499723 + ], + [ + -46.40807305536087, + 75.13738885139988, + 78.91835319795189, + 74.3249971953795, + 2531.5778928836007 + ], + [ + 62.95146940120323, + -41.40185295995114, + 18.162643132915864, + 109.0003235058206, + -1560.5490919238116 + ] + ], + "lattice": [ + [ + -41.62226304409438, + 53.13429595961162, + 31.78649237786796, + 2.8041319222743963, + 1781.7386158499723 + ], + [ + -46.40807305536087, + 75.13738885139988, + 78.91835319795189, + 74.3249971953795, + 2531.5778928836007 + ], + [ + 62.95146940120323, + -41.40185295995114, + 18.162643132915864, + 109.0003235058206, + -1560.5490919238116 + ] + ], + "library": [ + [ + -41.62226304409438, + 53.13429595961162, + 31.78649237786796, + 2.8041319222743963, + 1781.7386158499723 + ], + [ + -46.40807305536087, + 75.13738885139988, + 78.91835319795189, + 74.3249971953795, + 2531.5778928836007 + ], + [ + 62.95146940120323, + -41.40185295995114, + 18.162643132915864, + 109.0003235058206, + -1560.5490919238116 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + } + } + }, + "simple_solved_vmap4": { + "vmap_vs_scalar_within_route": { + "control": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + } + }, + "across_routes": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + } + }, + "simple_plain_step0_containing": { + "n_instances": 3, + "sets": { + "control": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "exact": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "lattice": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "library": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "identical": true + }, + "control_vs_lattice": { + "identical": true + }, + "control_vs_library": { + "identical": true + } + } + }, + "cluster_solved_positions": { + "n_instances": 3, + "compile": { + "control": { + "lower_s": 6.918297932017595, + "compile_s": 22.61903917696327, + "first_call_s": 0.030844471883028746, + "trace_calls": 2, + "step0_rows": [ + 276507, + 276507 + ], + "flops": 120345624.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 42051144, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 2220104, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2776961024, + "rss_after_compile_bytes": 2800181248, + "rss_delta_bytes": 23220224, + "hlo_sha256": "665afeab2913cc70", + "hlo_lines": 30001, + "hlo_large_constants": 2 + }, + "exact": { + "lower_s": 7.037510944064707, + "compile_s": 23.051144025288522, + "first_call_s": 0.03240721486508846, + "trace_calls": 2, + "step0_rows": [ + 110085, + 110085 + ], + "flops": 56734076.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 14994504, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 5455848, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2779635712, + "rss_after_compile_bytes": 2760093696, + "rss_delta_bytes": -19542016, + "hlo_sha256": "ae7b818880dc0acc", + "hlo_lines": 29907, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 6.987370769958943, + "compile_s": 23.6533395210281, + "first_call_s": 0.03349358169361949, + "trace_calls": 2, + "step0_rows": [ + 46516, + 46516 + ], + "flops": 34548448.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 6347096, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 4438744, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2753802240, + "rss_after_compile_bytes": 2757099520, + "rss_delta_bytes": 3297280, + "hlo_sha256": "7a9b56667c5312f6", + "hlo_lines": 29939, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 7.3544083731248975, + "compile_s": 23.542498060967773, + "first_call_s": 0.03334798337891698, + "trace_calls": 2, + "step0_rows": [ + 46516, + 46516 + ], + "flops": 34548448.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 6347096, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 4438744, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2752913408, + "rss_after_compile_bytes": 2754551808, + "rss_delta_bytes": 1638400, + "hlo_sha256": "7a9b56667c5312f6", + "hlo_lines": 29939, + "hlo_large_constants": 3 + } + }, + "positions": { + "control": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267668 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "exact": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267668 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "lattice": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267668 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "library": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267668 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ] + }, + "finite_positions": { + "control": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "exact": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "lattice": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "library": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_lattice": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_library": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + } + } + } + }, + "wall_s": 984.3752422109246 +} \ No newline at end of file diff --git a/results/breakdown/point_source/static_lattice_ab_hpc_ral_a100_fp64.png b/results/breakdown/point_source/static_lattice_ab_hpc_ral_a100_fp64.png new file mode 100644 index 0000000000000000000000000000000000000000..04d04cb50a357e800e2871a766f7016590537431 GIT binary patch literal 148041 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

1wh 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 literal 0 HcmV?d00001 diff --git a/results/breakdown/point_source/static_lattice_ab_hpc_ral_cpu_fp64.json b/results/breakdown/point_source/static_lattice_ab_hpc_ral_cpu_fp64.json new file mode 100644 index 000000000..4f770a4f0 --- /dev/null +++ b/results/breakdown/point_source/static_lattice_ab_hpc_ral_cpu_fp64.json @@ -0,0 +1,13576 @@ +{ + "cell": "static_lattice_ab", + "issue": "PyAutoLabs/PyAutoArray#568", + "phase": 3, + "config_name": "hpc_ral_cpu_fp64", + "quotable": true, + "host_note": null, + "quick": false, + "models": [ + "simple", + "cluster" + ], + "constant_folding": { + "requested": false, + "xla_flags_requested": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "xla_flags_effective": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "probe": { + "probe": "jit(lambda: c @ c), c = linspace(0.1, 1, 1000) constant", + "entry_has_computation": true, + "folding_ran": false, + "entry_hlo": "ENTRY %main.1 () -> f64[] {\n %constant.1 = f64[1000]{0} constant({...})\n %constant = f64[] constant(0)\n %wrapped_multiply = f64[1000]{0} fusion(%constant.1), kind=kLoop, calls=%wrapped_multiply_computation\n %wrapped_reduce-window = f64[32]{0} fusion(%wrapped_multiply, %constant), kind=kLoop, calls=%wrapped_reduce-window_computation\n ROOT %wrapped_reduce = f64[] fusion(%wrapped_reduce-window, %constant), kind=kLoop, calls=%wrapped_reduce_computation, metadata={op_name=\"jit()/dot_general\" stack_frame_id=3}\n}\n\n", + "agrees_with_request": true + } + }, + "library_versions": { + "autolens": "2026.8.17.1", + "autoarray": "2026.8.17.1", + "autofit": "2026.8.17.1" + }, + "package_versions": { + "jax": "0.10.2", + "jaxlib": "0.10.2" + }, + "source_revisions": { + "autolens_profiling": "3da2583d46b80f72793caf11a16433ca05f00d20", + "PyAutoNerves": "1fa613aa8d89a79613009fb66f5b4e2d21deb57a", + "PyAutoFit": "a736840127be7a3c21e15a5c945e94d8f1082983", + "PyAutoArray": "ad0bf97b45d572effa5d428a101d32ac4893b950", + "PyAutoGalaxy": "70a61e26cd715cefe7012a38285698091246a8a4", + "PyAutoLens": "b346b6a0a092098f23964e274edb220ea9757ad0" + }, + "autoarray_imported_from": "/mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_point-source-cpu-p3", + "autolens_imported_from": "/mnt/ral/jnightin/autolens_profiling_wt/PyAutoLens_point-source-cpu-p3", + "target": "autolens.point.solver.shape_solver.AbstractSolver._initial_triangles", + "route_bodies": { + "control": { + "name": "_control_initial_triangles", + "body": "def _control_initial_triangles(self, xp):\n \"\"\"The phase-2 main path: the flat (3N, 2) per-triangle table, no table attached.\"\"\"\n return _coordinate_array.CoordinateArrayTriangles.for_limits_and_scale(\n y_min=self.y_min, y_max=self.y_max, x_min=self.x_min, x_max=self.x_max, scale=self.scale\n )\n", + "bytecode_sha256": "decd881cb4e376c8" + }, + "table_factory": { + "name": "_table_initial_triangles", + "body": "def _table_initial_triangles(kind):\n def initial_triangles(self, xp):\n tables = _cell_tables(*_geometry(self))\n return _TableTriangles(\n coordinates=jnp.array(tables[\"coordinates\"]),\n side_length=self.scale,\n table=tables[kind],\n )\n\n initial_triangles.__name__ = f\"_{kind}_initial_triangles\"\n return initial_triangles\n", + "bytecode_sha256": "90de00bd5a86b962" + }, + "tables": { + "name": "_cell_tables", + "body": "@functools.lru_cache(maxsize=16)\ndef _cell_tables(y_min, y_max, x_min, x_max, scale) -> dict:\n \"\"\"``{\"exact\": (V, I), \"lattice\": (V, I), \"coordinates\": C}`` for one geometry.\"\"\"\n t0 = time.perf_counter()\n coordinates = _lattice_coordinates(y_min, y_max, x_min, x_max, scale)\n flip = np.where((coordinates[:, 0] + coordinates[:, 1]) % 2 != 0, -1, 1)[:, None]\n scaling = np.array([0.5 * scale, HEIGHT_FACTOR * scale])\n centres = scaling * coordinates + np.array([0.0, 0.0])\n triangles = np.stack(\n (\n centres + flip * np.array([0.0, 0.5 * scale * HEIGHT_FACTOR]),\n centres + flip * np.array([0.5 * scale, -0.5 * scale * HEIGHT_FACTOR]),\n centres + flip * np.array([-0.5 * scale, -0.5 * scale * HEIGHT_FACTOR]),\n ),\n axis=1,\n )\n flat = triangles.reshape(-1, 2)\n\n exact_vertices, exact_inverse = np.unique(flat, axis=0, return_inverse=True)\n\n offsets = np.array([[0, 1], [1, -1], [-1, -1]])\n keys = np.stack(\n (\n coordinates[:, None, 0] + flip * offsets[None, :, 0],\n 2 * coordinates[:, None, 1] + flip * offsets[None, :, 1],\n ),\n axis=-1,\n ).reshape(-1, 2)\n _, first, lattice_inverse = np.unique(keys, axis=0, return_index=True, return_inverse=True)\n\n tables = {\n \"coordinates\": coordinates,\n \"exact\": (exact_vertices, exact_inverse.reshape(-1, 3)),\n \"lattice\": (flat[first].copy(), lattice_inverse.reshape(-1, 3)),\n }\n _TABLE_BUILD_S[(y_min, y_max, x_min, x_max, scale)] = time.perf_counter() - t0\n return tables\n", + "bytecode_sha256": "3b7bdf752e1994f7" + }, + "table_triangles": { + "body": "class _TableTriangles(_coordinate_array.CoordinateArrayTriangles):\n \"\"\"The library lattice with a cell-supplied ``(vertices, indices)`` table.\n\n Only ``_vertices_and_indices`` changes; every derived lattice is built as the base\n class by the library's own methods, so steps >= 1 are untouched.\n \"\"\"\n\n def __init__(self, coordinates, side_length, table):\n super().__init__(coordinates=coordinates, side_length=side_length)\n self._cell_table = table\n\n @property\n def _vertices_and_indices(self):\n vertices, indices = self._cell_table\n return jnp.asarray(vertices), jnp.asarray(indices)\n", + "bytecode_sha256": "6308d3338aa3791a" + } + }, + "body_provenance_captured": "import time", + "expected_step0_rows": { + "simple": { + "geometry": [ + -9.9, + 9.9, + -9.9, + 9.9, + 0.2 + ], + "n_triangles": 23283, + "rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + } + }, + "cluster": { + "geometry": [ + -69.64999999999999, + 69.64999999999999, + -69.64999999999999, + 69.64999999999999, + 0.7 + ], + "n_triangles": 92169, + "rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + } + } + }, + "tables": { + "simple": { + "cell_build_ms": 129.0445444174111, + "cell_cache_hit_us": 0.6402842700481415, + "exact_table_mb": 1.017432, + "lattice_table_mb": 0.748536, + "library_static_vertex_table": { + "build_ms": 34.097347874194384, + "cache_hit_us": 1.2139789760112762, + "rows": 11859, + "mb": 0.748536, + "equals_cell_lattice_table": true + } + }, + "cluster": { + "cell_build_ms": 402.48990105465055, + "cell_cache_hit_us": 0.5490146577358246, + "exact_table_mb": 3.973416, + "lattice_table_mb": 2.956312, + "library_static_vertex_table": { + "build_ms": 184.25948917865753, + "cache_hit_us": 2.3706816136837006, + "rows": 46516, + "mb": 2.956312, + "equals_cell_lattice_table": true + } + } + }, + "device": { + "backend": "cpu", + "device": "cpu:0", + "hostname": "euclid-ral-compute-10-2", + "xla_flags": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "omp_num_threads": "1", + "cpu_count": 236, + "jax_compilation_cache_dir": null, + "autotune_cache_entries_at_start": 0, + "cache_fresh": false + }, + "jax_devices": [ + "cpu:0" + ], + "machine": { + "cpu_model": "Intel(R) Xeon(R) Platinum 8490H", + "cpu_count_os": 236, + "nproc": 1, + "nproc_all": 236, + "nproc_note": "GNU nproc honours OMP_NUM_THREADS, so `nproc` can print 1 on a multi-core host; `nproc_all` is the core count.", + "ram_total": "1010827868 kB", + "kernel": "5.14.0-687.39.1.el9_8.x86_64", + "platform": "Linux-5.14.0-687.39.1.el9_8.x86_64-x86_64-with-glibc2.34", + "python": "3.12.4", + "jax_thread_env": { + "NPROC": "8" + }, + "blas_thread_env": { + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1", + "VECLIB_MAXIMUM_THREADS": null, + "NUMEXPR_NUM_THREADS": null + }, + "thread_env_note": "NPROC sizes XLA's CPU intra-op pool (the JAX rows); the BLAS knobs pin OpenBLAS/MKL/OpenMP (the numpy/scipy rows) and do not touch JAX. Two disjoint families; both are recorded on every CPU timing.", + "gpu": null + }, + "thread_environment": { + "NPROC": "8", + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1" + }, + "xla_threads_observed_after_first_compile": { + "threads": 42, + "label": "simple_solved/control" + }, + "threads_at_end": 42, + "sched_affinity": 8, + "os_cpu_count": 236, + "xla_flags": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "jax_platforms": "cpu", + "jax_enable_x64": true, + "loadavg_start": [ + 0.28, + 0.07, + 0.02 + ], + "loadavg_end": [ + 3.06, + 1.68, + 0.9 + ], + "protocol": { + "routes": [ + "control", + "exact", + "lattice", + "library" + ], + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "n_stream": 16, + "n_gate_instances": 3, + "vmap_batch": 4, + "instance_seed": 568, + "instance_stream": "entry 0 = prior medians; rest = vector_from_unit_vector(U(0.25,0.75))", + "argument": "physical parameter vector; instance_from_vector(xp=jnp) inside the trace", + "cache_trap_guard": "fresh closure + fresh solver/analyses per route; jax.clear_caches()", + "bootstrap": { + "samples": 2000, + "seed": 12345, + "interval": "90%" + }, + "gates": { + "log_likelihood_rtol": 1e-12, + "positions_atol": 1e-10, + "grad_rtol": 1e-10, + "grad_atol": 1e-12, + "vmap_rtol": 1e-12, + "cluster": "log-likelihood and positions only (no cluster grad/vmap/step-0 sets)" + }, + "pytrees": "autofit.jax.register_model(model) for every model before any trace" + }, + "free_parameters": { + "simple_solved": 5, + "simple_plain": 8, + "cluster_solved": 13, + "cluster_plain": 17 + }, + "model_configuration": { + "simple": { + "dataset": "dataset/point_source/simple/point_dataset_positions_only.json", + "solver_grid_shape": [ + 100, + 100 + ], + "solver_grid_pixel_scale": 0.2, + "solver_pixel_scale_precision": 0.001, + "magnification_threshold": 0.1, + "likelihoods": { + "solved": "FitPositionsImagePairAllSolved", + "plain": "FitPositionsImagePairAll" + } + }, + "cluster": { + "dataset": "dataset/cluster/simple/point_datasets.csv", + "n_systems": 2, + "n_mass_profiles": 13, + "solver_grid_shape": [ + 200, + 200 + ], + "solver_grid_pixel_scale": 0.7, + "solver_pixel_scale_precision": 0.01, + "source_centres_from": "back-traced observed-image centroids (cluster cell step 1)", + "likelihoods": { + "solved": "FitPositionsImagePairRepeatSolved (summed over systems)", + "plain": "FitPositionsImagePairRepeat (summed over systems)" + } + } + }, + "library_label": { + "per_row": { + "simple_solved": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "simple_solved_vmap4": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "simple_plain": { + "library_step0_rows": [ + 11859 + ], + "expected_rows": { + "control": 69849, + "exact": 28665, + "lattice": 11859 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [ + "lattice" + ] + }, + "cluster_solved": { + "library_step0_rows": [ + 46516 + ], + "expected_rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [] + }, + "cluster_plain": { + "library_step0_rows": [ + 46516 + ], + "expected_rows": { + "control": 276507, + "exact": 110085, + "lattice": 46516 + }, + "library_matches": "lattice", + "library_hlo_identical_to": [] + } + }, + "library_matches": "lattice" + }, + "library_matches": "lattice", + "all_gates_pass": true, + "gate_summary": { + "simple_solved.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_plain.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_solved.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_exact": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_lattice": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "cluster_plain.log_likelihood.control_vs_library": { + "pass": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_positions.control_vs_exact": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_positions.control_vs_lattice": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_positions.control_vs_library": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_grad.control_vs_exact": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_grad.control_vs_lattice": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_grad.control_vs_library": { + "pass": true, + "non_zero": true, + "bit_identical": true, + "max_rel_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.control": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.exact": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.lattice": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_solved_vmap4.vmap_vs_scalar.library": { + "pass": true, + "bit_identical": true, + "max_abs_delta": 0.0 + }, + "simple_plain_step0_containing.control_vs_exact": { + "pass": true + }, + "simple_plain_step0_containing.control_vs_lattice": { + "pass": true + }, + "simple_plain_step0_containing.control_vs_library": { + "pass": true + }, + "cluster_solved_positions.control_vs_exact": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "cluster_solved_positions.control_vs_lattice": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + }, + "cluster_solved_positions.control_vs_library": { + "pass": true, + "image_counts_identical": true, + "max_abs_delta": 0.0 + } + }, + "rows": { + "simple_solved": { + "label": "simple_solved", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 3.336119931191206, + 3.570845816284418, + 3.6327880807220936, + 3.7424233742058277, + 3.6326879635453224, + 4.094996023923159, + 3.624912817031145, + 3.076741937547922, + 3.7615937180817127, + 3.1663039699196815, + 3.1087170355021954, + 3.070805687457323, + 3.5793641582131386, + 3.2017421908676624, + 3.1559839844703674, + 3.248876892030239, + 3.148042131215334, + 3.674773033708334, + 3.1631351448595524, + 3.6586690694093704, + 3.0923676677048206, + 3.675855230540037, + 4.298408981412649, + 4.22640098258853, + 4.878645297139883, + 3.6019152030348778, + 3.1148577108979225, + 3.5129571333527565, + 3.6281561478972435, + 3.0127931386232376, + 3.0323415994644165, + 3.5683568567037582, + 4.227709025144577, + 3.6545712500810623, + 3.1861416064202785, + 3.6968952044844627, + 3.2089068554341793, + 3.0722389928996563, + 3.148518968373537, + 3.1899730674922466, + 3.4980541095137596, + 4.827097058296204, + 3.1497897580266, + 3.5654576495289803, + 4.783717915415764, + 4.281823057681322, + 4.334661178290844, + 4.295318853110075, + 3.0685020610690117, + 3.618489019572735, + 3.628605045378208, + 3.676632884889841, + 3.141801804304123, + 3.066880162805319, + 3.095265943557024, + 3.645936958491802, + 4.291184712201357, + 3.064683172851801, + 3.6479029804468155, + 3.1854556873440742, + 4.260648041963577, + 3.1997421756386757, + 3.5915751941502094, + 4.784107208251953, + 3.5755769349634647, + 4.146830178797245, + 3.652067855000496, + 3.2070977613329887, + 3.645885270088911, + 4.84525179490447, + 3.20237223058939, + 3.1499844044446945, + 3.1464030034840107, + 3.534373827278614, + 3.182868007570505, + 3.071760293096304, + 3.604950848966837, + 3.1216838397085667, + 3.040832933038473, + 3.6161737516522408, + 4.03981190174818, + 3.069452941417694, + 3.5879649221897125, + 3.1911050900816917, + 3.1142369844019413, + 3.1318538822233677, + 3.6481572315096855, + 4.306929185986519, + 3.133540041744709, + 4.252762999385595, + 3.7074200809001923, + 3.1520859338343143, + 3.1267041340470314, + 4.263957962393761, + 3.0954042449593544, + 4.266549367457628, + 3.1401757150888443, + 4.277397878468037, + 3.123707138001919, + 3.0983807519078255, + 4.040531814098358, + 3.6691189743578434, + 3.08799697086215, + 3.1351340003311634, + 3.599954303354025, + 4.881084896624088, + 3.6252732388675213, + 3.707501105964184, + 3.06615699082613, + 3.5986187867820263, + 3.582683391869068, + 3.614947199821472, + 3.2111448235809803, + 3.5956483334302902, + 3.1765857711434364, + 4.141444806009531, + 4.768199287354946, + 3.626033663749695, + 3.5627377219498158, + 3.096842672675848, + 3.0263331718742847, + 3.065332304686308, + 3.581398166716099, + 3.1580952927470207, + 3.0656778253614902, + 3.0926610343158245, + 3.6622369661927223, + 3.5505187697708607, + 4.195752087980509, + 3.0901338905096054, + 3.087442833930254, + 3.5852529108524323, + 4.334649071097374, + 3.4841131418943405, + 3.0284528620541096, + 3.0330289155244827, + 4.870598670095205, + 4.311627242714167, + 3.1024040654301643, + 4.179065115749836, + 3.533765207976103, + 3.323549870401621, + 3.773398231714964, + 3.1233681365847588, + 3.597868140786886, + 3.5713869147002697, + 3.102460876107216, + 3.077975008636713, + 3.736157901585102, + 4.1327159851789474, + 3.714418038725853, + 3.637135960161686, + 3.663221839815378, + 3.1067361123859882, + 4.182201810181141, + 3.64608783274889, + 3.072628751397133, + 3.0637849122285843, + 3.614559769630432, + 3.62335704267025, + 4.084666725248098, + 3.625900950282812, + 3.263381775468588, + 3.0426448211073875, + 3.0465489253401756, + 4.18145302683115, + 2.9975520446896553, + 3.5954569466412067, + 3.09206685051322, + 3.058960661292076, + 3.0802031978964806, + 3.5554738715291023, + 4.0961019694805145, + 3.177620004862547, + 3.079391084611416, + 3.5329661332070827, + 4.2467499151825905, + 3.16806323826313, + 3.606563899666071, + 3.1222980469465256, + 4.194512031972408, + 4.215870052576065, + 3.089816775172949, + 3.0908389016985893, + 3.583798184990883, + 3.7128282710909843, + 3.1440439634025097, + 3.6130910739302635, + 3.1339190900325775, + 3.0878926627337933, + 3.1016841530799866, + 3.0656750313937664, + 4.1191489435732365, + 3.758717328310013, + 3.1061070039868355, + 3.160986118018627, + 3.574333619326353, + 4.34770155698061, + 4.379475023597479, + 3.1741843558847904, + 3.0688978731632233, + 3.100421279668808, + 3.0679097399115562, + 3.0908100306987762, + 4.745981190353632, + 3.607200924307108, + 3.075895830988884, + 3.1440085731446743, + 3.2012509182095528, + 3.124325070530176, + 3.1426269561052322, + 3.0638608150184155, + 3.090886864811182, + 3.146905917674303, + 3.6075226962566376, + 3.1433328986167908, + 3.612011205404997, + 3.146846778690815, + 3.107471391558647, + 3.6288201808929443, + 3.1180880032479763, + 3.106609918177128, + 3.0073528178036213, + 3.07788560166955, + 3.5936529748141766, + 3.169270232319832, + 3.620909061282873, + 3.0668210238218307, + 4.181043244898319, + 3.0973567627370358, + 3.734024241566658, + 4.19509457424283, + 3.70192714035511, + 3.5921521484851837, + 4.263078793883324, + 4.383600316941738, + 3.1463629566133022, + 3.067906014621258, + 3.0813906341791153, + 3.67336580529809, + 4.250451922416687, + 4.341128747910261, + 4.266045056283474, + 4.348420072346926, + 3.6217798478901386, + 4.860089626163244, + 4.814115818589926, + 4.843007307499647, + 3.6429017782211304, + 3.148219082504511, + 3.0551161617040634, + 3.117270767688751, + 3.030673135071993, + 4.321407992392778, + 3.157252911478281, + 3.10250511392951, + 3.101406153291464, + 3.5954806953668594, + 3.1097768805921078, + 3.5999766550958157, + 4.724779166281223, + 3.1604510731995106, + 3.6389902234077454, + 3.2053072936832905, + 3.061954863369465, + 3.6050518974661827, + 3.6183400079607964, + 3.6528599448502064, + 3.6582909524440765, + 3.588797990232706, + 4.307769238948822, + 4.179544281214476, + 2.979366108775139, + 3.190296236425638, + 3.194711171090603, + 3.0878079123795033, + 3.1181336380541325, + 3.6863810382783413, + 3.1478446908295155, + 3.1498707830905914, + 3.547884989529848, + 3.558308817446232, + 3.5411021672189236, + 4.180051852017641, + 4.176913294941187, + 4.205785226076841, + 4.139565862715244, + 4.878707230091095, + 4.169736057519913, + 3.61859193071723, + 4.247548989951611, + 3.2597556710243225, + 3.116108011454344, + 3.5803387872874737, + 4.751764237880707, + 4.196873866021633, + 3.206856083124876, + 3.5603828728199005, + 3.668589051812887, + 3.188998904079199, + 3.0462266877293587, + 3.764903638511896, + 3.592562861740589, + 3.266831859946251, + 3.6146938800811768, + 3.139228094369173, + 3.587225917726755, + 3.061644732952118, + 4.790421109646559, + 4.280796740204096, + 3.08164581656456, + 3.149600699543953, + 3.0891699716448784, + 3.142212051898241, + 3.5844710655510426, + 3.149456810206175, + 3.096891101449728, + 3.640430048108101, + 4.311663098633289, + 3.1369803473353386, + 3.0968748033046722, + 3.237181343138218, + 3.156683873385191, + 4.721112083643675, + 3.6242902278900146, + 4.772941116243601, + 3.0161216855049133, + 3.0742730014026165, + 3.192838281393051, + 3.202775027602911, + 3.0952771194279194, + 3.0831913463771343, + 3.0530630610883236, + 3.1678699888288975, + 3.0665970407426357, + 3.6671492271125317, + 3.0626747757196426, + 3.6178212612867355, + 4.837844055145979, + 3.5828561522066593, + 3.0134511180222034, + 4.324909299612045, + 3.09298699721694, + 4.0741730481386185, + 4.841308109462261, + 3.0650580301880836, + 3.097339067608118, + 3.1674657948315144, + 3.1881099566817284, + 4.808607045561075, + 4.293098114430904, + 3.6043934524059296, + 3.1156926415860653, + 3.1133899465203285, + 3.6132652312517166, + 3.1123319640755653, + 4.759489092975855, + 3.1430525705218315, + 3.1567602418363094, + 3.604103345423937, + 3.000144846737385, + 3.0311541631817818, + 3.0282712541520596, + 3.10760410502553, + 3.1182970851659775, + 4.226691089570522, + 4.284733906388283, + 3.6080502904951572, + 4.313463810831308, + 4.156145732849836, + 3.059342037886381, + 4.746252205222845, + 2.9648090712726116, + 3.0172117985785007, + 3.5382448695600033, + 3.059595823287964, + 3.2162340357899666, + 3.6598648875951767, + 3.2301708124578, + 3.162155859172344, + 4.2206281796097755, + 3.599232994019985, + 4.2446511797606945, + 4.294831305742264, + 4.252344835549593, + 3.5892180167138577, + 4.824712872505188, + 3.5964278504252434, + 3.6074472591280937, + 3.1766598112881184, + 3.1621637754142284, + 3.1320839188992977, + 3.564101178199053, + 3.139838110655546, + 3.082697745412588, + 3.0645872466266155, + 3.063331823796034, + 3.0794739723205566, + 3.2044313848018646, + 4.895254969596863 + ], + "exact": [ + 2.5958106853067875, + 2.1817642264068127, + 2.1201292984187603, + 2.1259081549942493, + 2.694687806069851, + 2.6217103004455566, + 2.6267822831869125, + 2.267161849886179, + 2.6057101786136627, + 2.723410725593567, + 2.681921236217022, + 2.593478187918663, + 2.2173388861119747, + 2.2573922760784626, + 2.217128872871399, + 2.723755780607462, + 2.599600702524185, + 2.5885673239827156, + 2.6596630923449993, + 2.1427329629659653, + 2.0721913315355778, + 2.11667874827981, + 2.1997387520968914, + 2.1228212863206863, + 2.562448848038912, + 2.1761059761047363, + 2.1630781702697277, + 2.5770310312509537, + 2.840746659785509, + 2.1263672970235348, + 2.054736018180847, + 2.7380120009183884, + 2.6159710250794888, + 2.640287857502699, + 2.1626767702400684, + 2.585043665021658, + 2.782911993563175, + 2.7558179572224617, + 2.0130109041929245, + 2.8000730089843273, + 2.054471056908369, + 2.1447520703077316, + 2.1210890263319016, + 2.135483082383871, + 2.1505006588995457, + 2.1430389024317265, + 2.1525509655475616, + 2.194983884692192, + 2.1357350051403046, + 2.1295659244060516, + 2.0847050473093987, + 2.2006924264132977, + 2.120274119079113, + 2.628923859447241, + 2.0018178038299084, + 2.1087201312184334, + 2.610085066407919, + 2.143649850040674, + 2.5318721309304237, + 2.1316981874406338, + 2.0363940857350826, + 2.099091187119484, + 2.191426232457161, + 2.6981220580637455, + 2.4410951882600784, + 2.6088058948516846, + 2.958874683827162, + 2.1028020419180393, + 2.051807940006256, + 2.79330275952816, + 2.0463871769607067, + 2.056566998362541, + 2.0301411859691143, + 2.200738061219454, + 2.569159958511591, + 2.513668965548277, + 2.159101888537407, + 2.8278809040784836, + 2.1350430324673653, + 2.8640087693929672, + 2.0057070069015026, + 2.6637460105121136, + 2.147262915968895, + 2.1468601189553738, + 2.193356864154339, + 2.138204872608185, + 2.82434094697237, + 2.9021119698882103, + 2.201236318796873, + 2.8490941040217876, + 2.5487947277724743, + 2.662163693457842, + 2.1468373015522957, + 2.031878102570772, + 2.512842882424593, + 2.1604541689157486, + 2.5783288292586803, + 2.1152086555957794, + 2.803489100188017, + 2.141553908586502, + 2.056978177279234, + 2.7198391035199165, + 2.1734992042183876, + 2.853342331945896, + 2.292660064995289, + 2.4820039980113506, + 2.3190337233245373, + 2.044243272393942, + 2.0020012743771076, + 2.013246063143015, + 2.0253132097423077, + 2.0793252624571323, + 2.077300101518631, + 2.584944013506174, + 2.203144133090973, + 2.1795290522277355, + 2.8581987135112286, + 2.79657868668437, + 2.944433130323887, + 2.0576841197907925, + 2.7626599185168743, + 2.0533869974315166, + 2.1599698811769485, + 2.181096002459526, + 2.5737029500305653, + 2.606465946882963, + 2.6356931775808334, + 2.173061016947031, + 2.025066874921322, + 2.018400002270937, + 2.0045330747962, + 2.1011321805417538, + 2.185684163123369, + 2.231933642178774, + 2.873681951314211, + 2.854560036212206, + 2.176344860345125, + 2.611990086734295, + 2.192540094256401, + 2.7104411274194717, + 2.5979336351156235, + 2.653843257576227, + 2.2042859345674515, + 2.135213930159807, + 2.11931299418211, + 2.975868061184883, + 2.6468290016055107, + 2.1124077029526234, + 2.226823940873146, + 2.117847092449665, + 2.5355531834065914, + 2.2252588532865047, + 2.136683091521263, + 2.598449122160673, + 2.143226098269224, + 2.2011129185557365, + 2.1287198178470135, + 2.628043759614229, + 2.2142422385513783, + 2.128628082573414, + 2.750624902546406, + 2.5891694240272045, + 2.126739826053381, + 2.5903983041644096, + 2.594337332993746, + 2.6088841259479523, + 2.812847960740328, + 2.157587092369795, + 2.0843101665377617, + 2.6861149817705154, + 2.6595802046358585, + 2.1291342563927174, + 2.585737034678459, + 2.5856299325823784, + 2.07187095656991, + 2.516702748835087, + 2.0945975556969643, + 2.2685127332806587, + 2.592809032648802, + 2.6010791771113873, + 2.5759730488061905, + 2.6738401502370834, + 2.7468614280223846, + 2.7392818592488766, + 2.1040178835392, + 2.593985293060541, + 2.84810783341527, + 2.955042291432619, + 2.103819977492094, + 2.16073589399457, + 2.8028152883052826, + 2.1087522618472576, + 2.621999941766262, + 2.1861158311367035, + 2.150178886950016, + 2.1617733873426914, + 2.664316911250353, + 2.6788259856402874, + 2.5741998106241226, + 2.0778169855475426, + 2.110800240188837, + 2.8220373205840588, + 2.1288366988301277, + 2.086326014250517, + 2.6389681734144688, + 2.1789162419736385, + 2.3892377503216267, + 2.1356251090765, + 2.6886528357863426, + 2.110318746417761, + 2.130516804754734, + 2.56393663585186, + 2.566451206803322, + 2.572359051555395, + 2.157122828066349, + 2.1323589608073235, + 2.573086880147457, + 2.632192336022854, + 2.1085310727357864, + 2.626555971801281, + 2.529266756027937, + 2.597459126263857, + 2.1050507202744484, + 2.0603109151124954, + 2.8065242804586887, + 2.0992672070860863, + 2.1881707943975925, + 2.202911302447319, + 2.5685722939670086, + 2.7074837125837803, + 2.5103711523115635, + 2.869078889489174, + 2.1386449225246906, + 2.1692169830203056, + 2.2507961839437485, + 2.6055658236145973, + 2.7859751135110855, + 2.1369406022131443, + 2.1536280401051044, + 2.5823540054261684, + 2.7693756856024265, + 2.1364260464906693, + 2.110010012984276, + 2.1352781914174557, + 2.1260599605739117, + 2.6021460071206093, + 2.125900238752365, + 2.197554800659418, + 2.1637058816850185, + 2.599810715764761, + 2.2050240077078342, + 2.8867460787296295, + 2.074264921247959, + 2.154554706066847, + 2.5944169610738754, + 2.0852931775152683, + 2.5962297804653645, + 2.1375203505158424, + 2.611930016428232, + 2.128971740603447, + 2.5124941021203995, + 2.649805974215269, + 2.7188793756067753, + 2.176111564040184, + 2.1461723372340202, + 2.2236621007323265, + 2.0940247923135757, + 2.191449049860239, + 2.11931811645627, + 2.287801820784807, + 2.09857989102602, + 2.636600751429796, + 2.170613966882229, + 2.1173711866140366, + 2.095154020935297, + 2.7494430541992188, + 2.6056519709527493, + 2.2234669886529446, + 2.640098799020052, + 2.6955408975481987, + 2.0521311089396477, + 2.5644488632678986, + 2.608910668641329, + 2.950045745819807, + 2.2027012892067432, + 2.1312767639756203, + 2.68508680164814, + 2.6766438968479633, + 2.1518939174711704, + 2.211804036051035, + 2.1282238885760307, + 2.0979619584977627, + 2.6368568651378155, + 2.914789132773876, + 2.5842939503490925, + 2.871587872505188, + 2.1265149116516113, + 2.8249379247426987, + 2.524438314139843, + 2.5983937084674835, + 2.054682932794094, + 2.6303748600184917, + 2.232561819255352, + 2.596324309706688, + 2.0637228153645992, + 2.7252482250332832, + 2.1799569949507713, + 2.1055140532553196, + 2.130446955561638, + 2.9501612298190594, + 2.808880992233753, + 2.6973620988428593, + 2.6698140427470207, + 2.6815468445420265, + 2.121946308761835, + 2.8748582117259502, + 2.1987990476191044, + 2.6747528463602066, + 2.7013691142201424, + 2.1663103252649307, + 2.5497297756373882, + 2.220449037849903, + 2.6171403005719185, + 2.1774498745799065, + 2.607855945825577, + 2.642285078763962, + 2.5853021070361137, + 2.5902530178427696, + 2.211804036051035, + 2.2098319604992867, + 2.759425900876522, + 2.6059988886117935, + 2.54959799349308, + 2.7283388189971447, + 2.6251631788909435, + 2.5268979370594025, + 2.5381790474057198, + 2.5098896585404873, + 2.0915437489748, + 2.149457111954689, + 2.3265136405825615, + 2.8084968216717243, + 2.2060582414269447, + 2.721548080444336, + 2.2746152244508266, + 2.1683918312191963, + 2.7370830066502094, + 2.6160203851759434, + 2.178213093429804, + 2.6284772902727127, + 2.1338779479265213, + 2.848756965249777, + 2.599164843559265, + 2.1042311564087868, + 2.590961754322052, + 2.531113103032112, + 2.648266963660717, + 2.269952092319727, + 2.1061976440250874, + 2.169216051697731, + 2.0596259273588657, + 2.139388117939234, + 2.050163224339485, + 2.0002052187919617, + 2.5674919597804546, + 2.7114669792354107, + 2.677612006664276, + 2.119982149451971, + 2.602066844701767, + 2.1278387866914272, + 2.7855699881911278, + 2.5621801614761353, + 2.9390030540525913, + 2.224321011453867, + 2.2164308466017246, + 2.088559791445732, + 2.602726686745882, + 2.257663756608963, + 2.124758902937174, + 2.622468862682581, + 2.0324201323091984, + 2.6011639274656773, + 2.1968530490994453, + 2.084262203425169, + 2.0285136997699738, + 2.0882650278508663, + 2.127626910805702, + 2.692844718694687, + 2.6796599850058556, + 2.6361909694969654, + 2.48326500877738, + 2.064635045826435, + 2.667438704520464, + 2.1080044098198414, + 2.034137025475502, + 2.613411284983158, + 2.0794938318431377, + 2.052091062068939, + 2.6220730505883694, + 2.601036336272955 + ], + "lattice": [ + 1.9756960682570934, + 2.224991098046303, + 1.707793679088354, + 1.7850110307335854, + 1.6170768067240715, + 2.1507050842046738, + 1.6244081780314445, + 1.743632834404707, + 1.9843028858304024, + 2.1164477802813053, + 2.0725708454847336, + 1.5541273169219494, + 1.6530589200556278, + 2.2326726466417313, + 2.2646519355475903, + 1.6834852285683155, + 2.213120926171541, + 2.094740979373455, + 2.1301181986927986, + 1.6054450534284115, + 1.5393150970339775, + 2.0690811797976494, + 2.0645917393267155, + 1.69464573264122, + 1.6218838281929493, + 1.5657884068787098, + 2.1261321380734444, + 1.7000972293317318, + 1.597010064870119, + 1.5857280232012272, + 2.0414870232343674, + 1.6120360232889652, + 1.6567297279834747, + 1.672609243541956, + 1.5474897809326649, + 2.089899964630604, + 2.1402970887720585, + 1.6046292148530483, + 1.5768078155815601, + 1.6634166240692139, + 1.9865543581545353, + 1.6854261048138142, + 2.10277596488595, + 1.6530700959265232, + 1.5483242459595203, + 1.5452159568667412, + 1.5961299650371075, + 2.1858876571059227, + 2.194075845181942, + 1.622689887881279, + 2.235972788184881, + 1.5970622189342976, + 2.1227742545306683, + 2.0761718042194843, + 1.9791661761701107, + 2.123759128153324, + 1.5948382206261158, + 2.1998537704348564, + 2.071772702038288, + 1.6101999208331108, + 1.524055376648903, + 2.0719747990369797, + 1.6049868427217007, + 1.6382839530706406, + 1.7116600647568703, + 1.55996298417449, + 2.1144947968423367, + 2.095441799610853, + 1.6211401671171188, + 1.6300170682370663, + 1.6852221451699734, + 1.6302564181387424, + 2.1681608632206917, + 2.160395961254835, + 2.0597963593900204, + 1.6111331060528755, + 1.6145058907568455, + 2.1233041770756245, + 1.553680282086134, + 2.1324739791452885, + 2.0211059600114822, + 2.051323652267456, + 1.6675353981554508, + 1.6848021186888218, + 2.039181999862194, + 1.5563243068754673, + 1.6693281941115856, + 2.1216371096670628, + 1.6239131800830364, + 1.617001835256815, + 2.0624599419534206, + 1.5803361311554909, + 2.072976902127266, + 1.6108369454741478, + 2.0732302218675613, + 1.5866863541305065, + 1.618536189198494, + 2.0098048262298107, + 1.7172852531075478, + 2.083222847431898, + 1.490933820605278, + 1.990762073546648, + 1.5073549002408981, + 1.7668060027062893, + 2.0709726959466934, + 2.101485151797533, + 2.0523667335510254, + 2.1553109399974346, + 1.609946135431528, + 1.585985068231821, + 2.201403956860304, + 2.1171169355511665, + 2.122571226209402, + 1.5576486475765705, + 1.6504083760082722, + 1.531525980681181, + 2.0882729440927505, + 2.169533632695675, + 1.973689068108797, + 2.018786035478115, + 1.5260381624102592, + 1.6538342460989952, + 1.7162030562758446, + 2.1004928275942802, + 1.6145738773047924, + 2.197902649641037, + 2.105186227709055, + 2.1252171136438847, + 1.632200088351965, + 1.5808320604264736, + 2.0928923040628433, + 2.08728713914752, + 2.088890876621008, + 1.6263253055512905, + 1.5756618231534958, + 1.6422118060290813, + 1.5541380271315575, + 1.5764879062771797, + 1.5606270171701908, + 1.6118492931127548, + 1.9730469211935997, + 2.1392647176980972, + 1.5340219251811504, + 2.030546311289072, + 1.59021420404315, + 1.5624533407390118, + 1.5373178757727146, + 1.6547678969800472, + 2.0729838870465755, + 2.212377730756998, + 2.1153916604816914, + 2.0704688504338264, + 2.140721306204796, + 2.1599968895316124, + 2.1556541323661804, + 2.1296036429703236, + 1.637341920286417, + 1.668707001954317, + 1.7201709561049938, + 1.6988753341138363, + 1.517605036497116, + 1.5847617760300636, + 2.0396700128912926, + 2.017746679484844, + 1.6217883676290512, + 1.6219387762248516, + 1.5811650082468987, + 1.6099838539958, + 1.594850793480873, + 2.0915651693940163, + 1.5887171030044556, + 1.6474570147693157, + 1.611637882888317, + 1.5463577583432198, + 1.5490618534386158, + 1.6091447323560715, + 1.5865773893892765, + 2.1199407055974007, + 1.6158521175384521, + 1.527370885014534, + 1.5066713094711304, + 2.1315249614417553, + 1.625381875783205, + 2.216520719230175, + 1.5507671050727367, + 1.5996270813047886, + 1.6086800023913383, + 1.6489201225340366, + 1.5756799839437008, + 1.5835408121347427, + 1.6857590526342392, + 1.6478030011057854, + 1.4987057074904442, + 2.0518330857157707, + 1.634612213820219, + 2.045297995209694, + 2.0530633628368378, + 1.502735074609518, + 1.5453658998012543, + 1.4911559410393238, + 1.5435852110385895, + 2.1245689131319523, + 2.1099350415170193, + 1.6300641000270844, + 1.6685770824551582, + 1.5685711987316608, + 1.5791221521794796, + 1.5274952165782452, + 1.6343910247087479, + 2.097921911627054, + 2.190756145864725, + 2.163973171263933, + 1.7032120376825333, + 1.6359700821340084, + 1.6906741075217724, + 1.7023831605911255, + 2.1199360489845276, + 2.062760293483734, + 2.0334520377218723, + 1.5716943889856339, + 1.9748508930206299, + 1.642097719013691, + 2.2048549726605415, + 1.6324259340763092, + 2.145049162209034, + 1.5851729549467564, + 1.6274009831249714, + 1.6748481430113316, + 1.5811421908438206, + 1.6535907052457333, + 2.0792768336832523, + 1.6338350251317024, + 1.7694481648504734, + 2.223285846412182, + 1.6192919574677944, + 2.099864184856415, + 2.081270795315504, + 1.7142510041594505, + 2.117567230015993, + 1.610548235476017, + 1.9969618879258633, + 1.997895073145628, + 1.5525310300290585, + 2.086545806378126, + 1.66217889636755, + 2.066587097942829, + 1.6477261669933796, + 1.5625250525772572, + 2.162872813642025, + 1.642321702092886, + 1.5710690058767796, + 1.5906761400401592, + 2.100605983287096, + 1.628819853067398, + 1.6218139789998531, + 1.5961062163114548, + 1.6103442758321762, + 1.5808949247002602, + 1.6449750401079655, + 1.6249860636889935, + 1.5949709340929985, + 2.1307282149791718, + 2.0821192301809788, + 1.7566187307238579, + 1.7025629058480263, + 1.591318752616644, + 2.0791878923773766, + 1.6055158339440823, + 1.5801587142050266, + 2.042523119598627, + 2.09236703813076, + 1.828514039516449, + 1.9653933122754097, + 1.480716746300459, + 1.5963651239871979, + 1.5891827642917633, + 1.7397026531398296, + 1.5954207628965378, + 1.7199539579451084, + 1.70883908867836, + 1.47619703784585, + 1.6169841401278973, + 1.9778572022914886, + 1.9359397701919079, + 1.998312771320343, + 2.073227893561125, + 1.5643639490008354, + 1.5376191586256027, + 1.7134519293904305, + 1.6269171610474586, + 2.041734289377928, + 2.1619610488414764, + 2.0335111767053604, + 1.6382187604904175, + 1.6036448068916798, + 2.1709767170250416, + 1.5244181267917156, + 2.0551462657749653, + 2.109535038471222, + 2.140429802238941, + 2.056421712040901, + 1.6051586717367172, + 1.6868491657078266, + 1.605855766683817, + 2.126133069396019, + 1.5527540817856789, + 2.069273963570595, + 2.1192398853600025, + 1.6389009542763233, + 1.5841168351471424, + 2.0507993176579475, + 2.1897158585488796, + 1.636228058487177, + 2.1493732929229736, + 1.669646706432104, + 1.6120318323373795, + 2.1576769649982452, + 1.6323672607541084, + 1.6542528755962849, + 1.6837636940181255, + 1.5362249687314034, + 1.7466209828853607, + 2.0958581008017063, + 1.736300066113472, + 1.5838122926652431, + 1.6524801030755043, + 2.0869248546659946, + 1.6738977283239365, + 1.5689460560679436, + 2.039215061813593, + 1.6259672120213509, + 1.647197175770998, + 2.176305279135704, + 2.1492261439561844, + 1.5430250205099583, + 1.6362862661480904, + 1.569855958223343, + 1.6501299105584621, + 2.1124170161783695, + 1.5700343064963818, + 1.4921748079359531, + 2.1323449909687042, + 1.6136919148266315, + 1.5998766757547855, + 1.607018057256937, + 2.147928811609745, + 2.1458989940583706, + 1.6511757858097553, + 2.106349915266037, + 2.1007549948990345, + 2.0730411633849144, + 2.1347389556467533, + 2.136907074600458, + 2.045895904302597, + 1.6138288192451, + 1.5869052149355412, + 2.240600995719433, + 2.1780142560601234, + 1.6457010060548782, + 1.577387098222971, + 1.557989977300167, + 1.5937979333102703, + 1.6413531266152859, + 1.544332131743431, + 1.5217862091958523, + 2.1426519379019737, + 2.0214831456542015, + 1.5875180251896381, + 2.1738409996032715, + 2.136813011020422, + 2.0995992235839367, + 1.648223027586937, + 2.0595863461494446, + 1.6363412141799927, + 1.6197450459003448, + 1.6049006953835487, + 1.617151778191328, + 2.079852856695652, + 1.575774047523737, + 2.1560569293797016, + 1.950087957084179, + 2.050116192549467, + 1.6002892516553402, + 2.1497556008398533, + 2.106036990880966, + 1.5465393662452698, + 1.7182659357786179, + 2.1379338577389717, + 1.7019216902554035, + 2.1891561336815357, + 1.5331911854445934, + 1.6964217647910118, + 1.583219040185213, + 1.5323217958211899, + 1.5086927451193333, + 1.5876577235758305, + 1.5679402276873589, + 2.0334520377218723, + 1.9829068332910538, + 1.565834041684866 + ], + "library": [ + 1.5334198251366615, + 2.199217677116394, + 1.9922447390854359, + 1.567845232784748, + 1.6893832944333553, + 2.122123260051012, + 1.6143876127898693, + 1.7337729223072529, + 2.2254404611885548, + 2.0804242230951786, + 2.1898290142416954, + 2.151241060346365, + 1.5930673107504845, + 2.13716272264719, + 1.5680990181863308, + 2.1480577997863293, + 1.5875929966568947, + 2.124480903148651, + 1.6303909942507744, + 1.6883169300854206, + 1.4962316490709782, + 1.5882127918303013, + 1.6168882139027119, + 1.5950710512697697, + 1.5512430109083652, + 1.5708189457654953, + 2.041722647845745, + 2.0698527805507183, + 2.1036104299128056, + 2.092057839035988, + 1.6058390028774738, + 2.1616811864078045, + 1.5498930588364601, + 1.621257048100233, + 1.6648778691887856, + 2.0122802816331387, + 2.071151975542307, + 2.1323328837752342, + 2.0998623222112656, + 2.089786808937788, + 2.059546299278736, + 2.075430005788803, + 2.0315400324761868, + 1.5898658894002438, + 1.609622035175562, + 1.5879441052675247, + 1.7304052598774433, + 2.1028639748692513, + 2.068453934043646, + 2.1488028578460217, + 1.5815598890185356, + 1.6674390062689781, + 2.122181002050638, + 1.6484889201819897, + 2.049114089459181, + 1.6821552999317646, + 1.684608869254589, + 1.5852688811719418, + 2.134246751666069, + 1.6646459698677063, + 1.5351749025285244, + 1.6465052030980587, + 2.098634373396635, + 2.0600883290171623, + 2.1708239801228046, + 1.7089182510972023, + 1.6387603245675564, + 2.1107830107212067, + 2.018434926867485, + 1.4195549301803112, + 1.4951042830944061, + 1.9871252588927746, + 1.479515340179205, + 2.021308057010174, + 2.0076297223567963, + 2.04674294218421, + 1.486289780586958, + 1.5705651603639126, + 2.103955950587988, + 1.6131531447172165, + 2.0133103244006634, + 1.7338888719677925, + 2.190887928009033, + 1.9716802053153515, + 2.0102988928556442, + 1.490526832640171, + 1.6667288728058338, + 2.1356716752052307, + 2.0836619660258293, + 2.115956973284483, + 2.1248068660497665, + 2.1748561412096024, + 2.14373879134655, + 1.642910297960043, + 1.7045419663190842, + 2.0892908796668053, + 2.1847710013389587, + 1.5991493128240108, + 1.6802973113954067, + 1.6614357009530067, + 1.4980030246078968, + 1.596235204488039, + 1.6255988739430904, + 2.0858198404312134, + 1.7086761072278023, + 1.6134553588926792, + 2.125469036400318, + 1.5507838688790798, + 1.6093822196125984, + 2.051759045571089, + 1.5596258454024792, + 1.6026622615754604, + 1.58759206533432, + 2.11467407643795, + 2.034462057054043, + 2.149752341210842, + 2.1132989786565304, + 2.0576692186295986, + 2.0601539872586727, + 2.1334942430257797, + 1.5448150224983692, + 2.08930391818285, + 2.119732089340687, + 2.075417898595333, + 1.6172798350453377, + 1.616158988326788, + 2.083688974380493, + 2.0603900775313377, + 1.5297867357730865, + 1.5040459111332893, + 1.9760099239647388, + 1.9514118321239948, + 2.0736511796712875, + 1.6114693135023117, + 1.7009461298584938, + 1.5783710405230522, + 1.6333027742803097, + 1.604459248483181, + 2.131509594619274, + 1.6017747111618519, + 1.5276707708835602, + 2.1055121906101704, + 2.1030213683843613, + 1.606907695531845, + 1.6283229924738407, + 2.096892800182104, + 1.7271200194954872, + 2.133447676897049, + 1.6163750551640987, + 2.0614704117178917, + 1.642927061766386, + 1.6461689956486225, + 2.147473394870758, + 2.0503951236605644, + 2.082888036966324, + 2.063706051558256, + 1.6087298281490803, + 2.155556809157133, + 2.13832501322031, + 2.054664772003889, + 1.5467009507119656, + 1.988937146961689, + 2.071266993880272, + 1.645117998123169, + 2.0661698654294014, + 1.6728658229112625, + 1.550933811813593, + 1.5328400768339634, + 2.09496496245265, + 1.618030946701765, + 2.0832852460443974, + 2.152959816157818, + 1.5640808269381523, + 1.556329894810915, + 1.6275201924145222, + 1.6232402995228767, + 2.1290509030222893, + 1.6564680263400078, + 2.094478812068701, + 2.1370849572122097, + 1.4595226384699345, + 2.0858789794147015, + 1.6865967772901058, + 1.5263790264725685, + 2.0455499179661274, + 2.0291870459914207, + 2.088975626975298, + 2.139880321919918, + 1.5758411027491093, + 2.1767551079392433, + 1.6450160183012486, + 2.080228179693222, + 2.0350348204374313, + 2.1906853653490543, + 2.1186070516705513, + 1.5682610683143139, + 1.5403609722852707, + 2.0701009780168533, + 2.13064718991518, + 1.616224180907011, + 2.035460900515318, + 2.1932460367679596, + 2.159559167921543, + 2.133418805897236, + 1.707752700895071, + 1.6571511514484882, + 1.5635788440704346, + 1.5769461169838905, + 2.0438972860574722, + 2.140230033546686, + 2.1384437568485737, + 2.2201277315616608, + 1.5484578907489777, + 2.122652716934681, + 2.110556233674288, + 2.1749138832092285, + 1.6065901145339012, + 1.656488049775362, + 2.094544004648924, + 1.6002398915588856, + 2.0698467269539833, + 1.6302610747516155, + 1.6247588209807873, + 1.7864969559013844, + 2.123652957379818, + 1.7082858830690384, + 2.132880035787821, + 1.6202442348003387, + 2.2281501442193985, + 2.1404321305453777, + 1.6947807744145393, + 2.0865281112492085, + 1.6995426267385483, + 2.139151096343994, + 2.05875001847744, + 1.589715015143156, + 1.5903282910585403, + 2.0866869017481804, + 1.6081947833299637, + 2.062365412712097, + 1.550212036818266, + 2.1771257743239403, + 2.0749419927597046, + 2.2190799936652184, + 2.1140151657164097, + 1.5780320391058922, + 2.1090758964419365, + 2.160985954105854, + 2.235349267721176, + 1.6196221113204956, + 1.6742823645472527, + 2.203139942139387, + 1.6801422461867332, + 1.667083241045475, + 1.655826810747385, + 1.7063370905816555, + 2.1571163088083267, + 1.6162260435521603, + 2.149958163499832, + 1.6270088963210583, + 1.575432252138853, + 1.633940264582634, + 2.120638731867075, + 1.56474020332098, + 2.057625912129879, + 1.556173898279667, + 1.6599684022367, + 2.0896797068417072, + 2.1207178942859173, + 1.744899433106184, + 1.5148143284022808, + 2.029196824878454, + 1.5398627147078514, + 1.602287869900465, + 1.6599991358816624, + 1.6052410937845707, + 2.083056140691042, + 2.1041198633611202, + 2.026511821895838, + 2.1854378283023834, + 1.4556432142853737, + 1.687958836555481, + 1.6272272914648056, + 1.544926781207323, + 1.559422817081213, + 2.07535270601511, + 2.0493599586188793, + 2.0393296144902706, + 1.6246461309492588, + 2.08693603053689, + 1.6512568108737469, + 1.563484314829111, + 2.1431129425764084, + 1.5762303955852985, + 2.1575139835476875, + 1.721288077533245, + 2.0988760516047478, + 1.7696390859782696, + 2.0586629398167133, + 1.621972769498825, + 1.5267073176801205, + 1.6470840200781822, + 1.6094711609184742, + 2.072261180728674, + 1.6188598237931728, + 2.0825820975005627, + 2.1156729198992252, + 1.6623400151729584, + 2.073632087558508, + 2.0714029669761658, + 2.1308637224137783, + 1.683587208390236, + 1.5706229023635387, + 1.6628461889922619, + 1.6183238476514816, + 1.611956860870123, + 1.6661742702126503, + 2.056386321783066, + 1.6038701869547367, + 1.616781111806631, + 1.5174690634012222, + 2.08375696092844, + 1.600341871380806, + 2.1745641715824604, + 2.1015568636357784, + 2.132471650838852, + 2.05557094886899, + 2.070888876914978, + 1.6385898925364017, + 1.601009164005518, + 1.6825776547193527, + 2.109238877892494, + 2.0899036899209023, + 2.094591036438942, + 2.130701206624508, + 1.625353004783392, + 2.102301921695471, + 2.1342053078114986, + 2.072324976325035, + 2.1056546829640865, + 2.097811084240675, + 1.7081266269087791, + 1.5964861959218979, + 1.6643712297081947, + 1.5586758963763714, + 1.6723969019949436, + 1.6444013454020023, + 1.5876470133662224, + 1.6448572278022766, + 1.5724590048193932, + 1.5797382220625877, + 1.7046863213181496, + 1.583016011863947, + 1.5532737597823143, + 2.0418320782482624, + 2.101719379425049, + 1.7089396715164185, + 2.2454289719462395, + 1.6550477594137192, + 1.611506100744009, + 1.9556856714189053, + 2.1316278725862503, + 2.1435571834445, + 2.0927563309669495, + 1.624744851142168, + 2.1546222269535065, + 1.6458663158118725, + 1.6634510830044746, + 1.572825014591217, + 1.672840677201748, + 1.5745148994028568, + 2.1331901662051678, + 2.1568909287452698, + 2.113147173076868, + 2.13970011100173, + 1.6340939328074455, + 1.5665171667933464, + 2.1486342884600163, + 2.073393203318119, + 1.6451501287519932, + 2.067000139504671, + 2.0887497812509537, + 1.5551336109638214, + 2.168715000152588, + 1.6940888017416, + 2.0859441719949245, + 2.1025240421295166, + 1.6181138344109058, + 1.694070640951395, + 2.0896908827126026, + 1.5262598171830177, + 1.5903906896710396, + 1.5547657385468483, + 1.636197790503502, + 1.6670189797878265, + 2.2123949602246284, + 2.11129616945982, + 2.131782937794924, + 2.169789746403694, + 1.7454801127314568 + ] + }, + "warm_ms": { + "control": [ + 4.614708013832569, + 5.532464943826199, + 3.9879833348095417 + ], + "exact": [ + 3.0452008359134197, + 2.328020054847002, + 3.2571949996054173 + ], + "lattice": [ + 1.8740096129477024, + 1.7742388881742954, + 2.548355143517256 + ], + "library": [ + 1.801830716431141, + 2.3129950277507305, + 1.7503127455711365 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 3.5396735183894634, + "p10_ms": 3.06687424890697, + "p90_ms": 4.295627865940332, + "min_ms": 2.9648090712726116, + "max_ms": 4.895254969596863, + "mean_ms": 3.54997702059336 + }, + "exact": { + "n": 400, + "median_ms": 2.2540942300111055, + "p10_ms": 2.083785366266966, + "p90_ms": 2.7597493026405573, + "min_ms": 2.0002052187919617, + "max_ms": 2.975868061184883, + "mean_ms": 2.389130183728412 + }, + "lattice": { + "n": 400, + "median_ms": 1.674372935667634, + "p10_ms": 1.5541369561105967, + "p90_ms": 2.1428916603326797, + "min_ms": 1.47619703784585, + "max_ms": 2.2646519355475903, + "mean_ms": 1.812921614618972 + }, + "library": { + "n": 400, + "median_ms": 1.7575595993548632, + "p10_ms": 1.5635693911463022, + "p90_ms": 2.143575344234705, + "min_ms": 1.4195549301803112, + "max_ms": 2.2454289719462395, + "mean_ms": 1.8565303750801831 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 2.1140293437543325, + "ci90_low": 1.9171268226712046, + "ci90_high": 2.1562062781414086, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.570330765795902, + "ci90_low": 1.3911748651012261, + "ci90_high": 1.6111807094285782, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.346231882989864, + "ci90_low": 1.3067926473980718, + "ci90_high": 1.5003848333928225, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 1.0496822792074452, + "ci90_low": 1.0078876750352515, + "ci90_high": 1.2138147331777145, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 2.013970689636215, + "ci90_low": 1.6260442797360595, + "ci90_high": 2.091435524739358, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.9359815398596867, + "p10": 1.7902403073060458, + "p90": 2.1334779158169535 + }, + "minimum_detectable_improvement": 0.3471375567971704, + "compile": { + "control": { + "lower_s": 2.0000497698783875, + "compile_s": 2.9100193469785154, + "first_call_s": 0.008632726036012173, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 7053434.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 4823896, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 483594240, + "rss_after_compile_bytes": 684691456, + "rss_delta_bytes": 201097216, + "hlo_sha256": "2ef6101dd6221e07", + "hlo_lines": 24402, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 1.9083748301491141, + "compile_s": 3.0013958951458335, + "first_call_s": 0.0032139280810952187, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 4055654.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1776408, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 713314304, + "rss_after_compile_bytes": 761438208, + "rss_delta_bytes": 48123904, + "hlo_sha256": "c911672f9443ec62", + "hlo_lines": 24296, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 1.8374626231379807, + "compile_s": 3.1019257279112935, + "first_call_s": 0.0034272917546331882, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3383414.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 763752448, + "rss_after_compile_bytes": 802238464, + "rss_delta_bytes": 38486016, + "hlo_sha256": "3ce4fd9d810135c1", + "hlo_lines": 24296, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 1.922610484994948, + "compile_s": 3.143304970115423, + "first_call_s": 0.002781985327601433, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3383414.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 802304000, + "rss_after_compile_bytes": 847417344, + "rss_delta_bytes": 45113344, + "hlo_sha256": "3ce4fd9d810135c1", + "hlo_lines": 24296, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ], + "exact": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ], + "lattice": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ], + "library": [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149, + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912, + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955, + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 7.743201200876812, + "exact": 7.743201200876812, + "lattice": 7.743201200876812, + "library": 7.743201200876812 + } + }, + "simple_solved_vmap4": { + "label": "simple_solved_vmap4", + "batch": 4, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 8.415608201175928, + 8.359558880329132, + 7.098156958818436, + 7.133962120860815, + 8.445736020803452, + 8.507192134857178, + 8.340391330420971, + 8.305449038743973, + 7.152740843594074, + 8.369287010282278, + 7.072879001498222, + 8.377824909985065, + 8.347299881279469, + 8.452917914837599, + 7.11629306897521, + 7.288297172635794, + 7.18764029443264, + 8.556063752621412, + 7.51974293962121, + 8.423306979238987, + 10.950666852295399, + 8.165189996361732, + 8.273174986243248, + 9.296991396695375, + 11.482022237032652, + 10.491691995412111, + 8.42492375522852, + 8.377405814826488, + 8.160087279975414, + 8.290710859000683, + 8.2646319642663, + 8.216965943574905, + 8.080937899649143, + 7.108911871910095, + 8.330157026648521, + 8.321177680045366, + 8.210824802517891, + 8.175941184163094, + 7.401654031127691, + 7.195547688752413, + 8.58595222234726, + 8.375284262001514, + 7.511364761739969, + 8.33074888214469, + 11.122314259409904, + 7.1039460599422455, + 8.256522007286549, + 8.240012917667627, + 10.711839888244867, + 7.141992915421724, + 8.70752613991499, + 8.20769090205431, + 7.163686212152243, + 10.43306803330779, + 8.367856964468956, + 7.461685687303543, + 10.467213112860918, + 8.248673286288977, + 8.349467068910599, + 9.648274164646864, + 8.073144126683474, + 8.855987805873156, + 7.16902082785964, + 7.116649299860001, + 8.206437341868877, + 8.114956319332123, + 10.493620298802853, + 8.306501898914576, + 8.69388459250331, + 8.259826805442572, + 7.107534911483526, + 7.153030950576067, + 7.0675392635166645, + 8.4312679246068, + 7.497179787606001, + 8.255830965936184, + 8.30606697127223, + 7.401164621114731, + 8.927850052714348, + 8.463744074106216, + 7.730470038950443, + 8.218649309128523, + 10.533688124269247, + 7.284306921064854, + 8.353556971997023, + 8.621193002909422, + 7.554213982075453, + 7.280207704752684, + 7.124017924070358, + 8.167218882590532, + 8.400932885706425, + 8.184113074094057, + 7.128528784960508, + 7.185047958046198, + 10.78030839562416, + 11.857009027153254, + 7.204873953014612, + 8.38621985167265, + 7.457958068698645, + 8.72825924307108, + 7.621288299560547, + 7.47445784509182, + 7.539056707173586, + 8.25869059190154, + 8.586076088249683, + 7.534442935138941, + 7.252132054418325, + 7.1791610680520535, + 7.123459130525589, + 10.573191102594137, + 10.666615795344114, + 7.566689979285002, + 8.310182951390743, + 8.6929090321064, + 8.36581690236926, + 7.354256231337786, + 8.297963999211788, + 7.175135891884565, + 8.279743138700724, + 8.372333832085133, + 10.461015161126852, + 7.172292098402977, + 8.265309035778046, + 8.714013267308474, + 8.554230909794569, + 8.783963974565268, + 7.143781986087561, + 8.323201909661293, + 8.319573011249304, + 8.317724335938692, + 8.357797283679247, + 8.340181317180395, + 8.565745316445827, + 8.255532942712307, + 8.498704060912132, + 8.374464698135853, + 7.203985005617142, + 7.2728050872683525, + 7.257296238094568, + 7.142142858356237, + 8.545526769012213, + 7.514443714171648, + 7.508739363402128, + 7.465117145329714, + 7.1578011848032475, + 8.43004509806633, + 7.213225122541189, + 8.389393799006939, + 9.187838062644005, + 8.275663945823908, + 8.34946520626545, + 7.203403860330582, + 7.103061769157648, + 7.169193122535944, + 8.237040601670742, + 8.227844256907701, + 8.60889395698905, + 8.261180948466063, + 8.29397328197956, + 7.263544946908951, + 8.48826626315713, + 8.387730922549963, + 8.754081092774868, + 8.299845736473799, + 8.191926870495081, + 8.312227204442024, + 8.611086755990982, + 7.146867923438549, + 7.299304008483887, + 7.148349191993475, + 10.517965070903301, + 8.337683044373989, + 8.252262603491545, + 7.185748312622309, + 8.321540895849466, + 10.495049878954887, + 8.405447006225586, + 7.253232877701521, + 8.431629743427038, + 7.175788749009371, + 8.278928231447935, + 8.333288598805666, + 8.362793829292059, + 7.482130080461502, + 8.408618159592152, + 8.33439501002431, + 7.085178047418594, + 8.300920017063618, + 7.130831945687532, + 8.605994749814272, + 7.2506628930568695, + 8.474408183246851, + 10.519972071051598, + 8.331375196576118, + 8.61579505726695, + 7.502863183617592, + 7.333205081522465, + 8.31361673772335, + 8.418071083724499, + 8.468128275126219, + 7.388781290501356, + 7.131185382604599, + 8.277676068246365, + 8.295982144773006, + 7.493408862501383, + 8.34489380940795, + 8.377131074666977, + 8.345396257936954, + 8.322701789438725, + 7.055494002997875, + 10.473417583853006, + 8.308148942887783, + 8.17825784906745, + 7.1364762261509895, + 7.09771690890193, + 10.425262153148651, + 8.28138180077076, + 8.293774910271168, + 8.31045862287283, + 8.267918135970831, + 8.442400023341179, + 8.227089885622263, + 7.253027055412531, + 7.246566005051136, + 10.423659812659025, + 8.26406292617321, + 8.531782776117325, + 7.325693964958191, + 8.211712818592787, + 8.358587976545095, + 7.532157935202122, + 8.309587370604277, + 8.373284246772528, + 7.127971388399601, + 10.592300910502672, + 7.081856019794941, + 7.151061203330755, + 7.1755521930754185, + 8.594430051743984, + 7.554888259619474, + 8.111626375466585, + 8.354264311492443, + 7.071489002555609, + 8.28852504491806, + 10.884955059736967, + 10.531153064221144, + 7.310037035495043, + 8.184271864593029, + 7.081917952746153, + 10.518840979784727, + 8.22916068136692, + 7.1500008925795555, + 8.691831026226282, + 10.719541925936937, + 7.1385931223630905, + 9.259917307645082, + 8.422169834375381, + 7.105926051735878, + 7.576754316687584, + 10.530360974371433, + 8.120058104395866, + 8.158320095390081, + 7.365402299910784, + 10.358304250985384, + 8.28174315392971, + 8.678928017616272, + 10.418967809528112, + 8.10293760150671, + 6.999796722084284, + 8.246239740401506, + 7.0478529669344425, + 6.999969016760588, + 10.398318991065025, + 8.434748277068138, + 7.08368793129921, + 7.073580287396908, + 7.362599950283766, + 8.097472600638866, + 8.206347934901714, + 10.332569945603609, + 7.1975416503846645, + 7.150194142013788, + 8.562063798308372, + 8.327113930135965, + 7.509978022426367, + 7.09978211671114, + 7.159898057579994, + 8.383749052882195, + 8.379480801522732, + 8.34373477846384, + 8.217819035053253, + 7.0640929043293, + 7.906313985586166, + 7.155953906476498, + 7.191879209131002, + 8.23963712900877, + 11.392455082386732, + 7.045515347272158, + 8.396963123232126, + 8.218211121857166, + 8.239276241511106, + 7.530461996793747, + 7.142240181565285, + 8.264504373073578, + 8.425169624388218, + 7.169543299823999, + 8.289127610623837, + 7.218638900667429, + 8.351773023605347, + 10.74926508590579, + 8.156824856996536, + 7.082456722855568, + 8.364276960492134, + 8.209222927689552, + 10.415100026875734, + 7.10675772279501, + 8.30785185098648, + 8.347316179424524, + 7.1853287518024445, + 8.570712059736252, + 6.963712628930807, + 7.095788139849901, + 10.435501113533974, + 7.236894220113754, + 7.069450803101063, + 8.512023370712996, + 10.429880116134882, + 8.239313960075378, + 8.28897813335061, + 8.23304709047079, + 7.183649111539125, + 8.421333972364664, + 8.65258276462555, + 8.203560952097178, + 7.207795046269894, + 8.07796185836196, + 10.324702598154545, + 8.344444911926985, + 7.119078654795885, + 7.410908117890358, + 8.088009897619486, + 8.3654779009521, + 7.275075186043978, + 8.489424362778664, + 8.399719838052988, + 8.561127353459597, + 7.586724124848843, + 8.363049943000078, + 7.423881907016039, + 8.60499031841755, + 8.36662482470274, + 8.57912190258503, + 7.55922170355916, + 7.210003212094307, + 8.274130057543516, + 7.191805634647608, + 8.28422512859106, + 7.118305191397667, + 7.189147640019655, + 7.406019140034914, + 8.18015681579709, + 7.152678910642862, + 8.406161796301603, + 8.421121630817652, + 7.059201598167419, + 10.499824769794941, + 8.296397980302572, + 8.283684961497784, + 10.341017041355371, + 8.18069837987423, + 8.35451390594244, + 7.034731097519398, + 8.137006778270006, + 8.127644192427397, + 7.068832870572805, + 8.177754934877157, + 8.093271870166063, + 8.38831765577197, + 8.399799931794405, + 8.565500378608704, + 7.38574331626296, + 7.150072138756514, + 7.146639749407768, + 8.600774221122265, + 7.113648112863302, + 7.459735032171011, + 8.176326286047697, + 8.382266853004694, + 7.459220010787249, + 8.277142886072397, + 8.387002162635326, + 7.239385042339563, + 7.121862843632698, + 8.191355969756842, + 7.23392516374588, + 8.619633037596941, + 7.123785093426704, + 10.404682252556086, + 8.39798804372549, + 8.179988712072372 + ], + "exact": [ + 6.548112723976374, + 7.604565937072039, + 6.019577383995056, + 5.598773714154959, + 7.66161922365427, + 6.768872030079365, + 6.586112082004547, + 7.3012663051486015, + 5.683244206011295, + 5.668425001204014, + 6.496294867247343, + 5.757912993431091, + 5.47381304204464, + 5.423150956630707, + 7.246998138725758, + 7.694126106798649, + 5.501159001141787, + 5.731471348553896, + 5.3641898557543755, + 7.418415043503046, + 7.142864633351564, + 7.294185925275087, + 5.452019162476063, + 5.370401777327061, + 6.5377261489629745, + 7.599181961268187, + 5.399738904088736, + 6.585062015801668, + 5.396564956754446, + 7.370761130005121, + 5.795539822429419, + 6.9038597866892815, + 6.568426266312599, + 5.355773959308863, + 5.7176342234015465, + 5.4965391755104065, + 5.491606891155243, + 7.372020278126001, + 6.808557081967592, + 5.7471077889204025, + 7.42421904578805, + 5.530073307454586, + 5.77533757314086, + 5.434646736830473, + 7.220492698252201, + 7.329693995416164, + 5.497057922184467, + 5.456103011965752, + 6.713973358273506, + 5.409660749137402, + 7.143067196011543, + 7.693955674767494, + 7.319110911339521, + 5.463215056806803, + 7.288997061550617, + 7.2753760032355785, + 7.5684282928705215, + 5.387420766055584, + 7.337793242186308, + 5.577575881034136, + 7.191816810518503, + 6.363697815686464, + 5.395533982664347, + 7.30832340195775, + 7.277228869497776, + 6.445930805057287, + 7.281447760760784, + 6.664513144642115, + 6.6961622796952724, + 5.367669742554426, + 6.588674150407314, + 6.469107698649168, + 7.620593067258596, + 5.767529830336571, + 5.448512267321348, + 5.8122058399021626, + 5.461808759719133, + 7.306772284209728, + 5.747092887759209, + 7.313253823667765, + 7.277369033545256, + 7.695166859775782, + 7.390757091343403, + 5.422448739409447, + 6.653964053839445, + 6.537046283483505, + 6.097991950809956, + 6.427368149161339, + 7.260889280587435, + 5.652467254549265, + 5.5465917102992535, + 7.243018131703138, + 5.386329255998135, + 6.639669183641672, + 6.649537943303585, + 5.746951326727867, + 7.230567280203104, + 5.654770415276289, + 7.2158100083470345, + 7.110288832336664, + 5.693851970136166, + 5.350660998374224, + 5.2907271310687065, + 6.858893670141697, + 5.4218047298491, + 5.65355597063899, + 5.419380031526089, + 7.191502023488283, + 6.4570242539048195, + 6.555701140314341, + 7.366781122982502, + 5.404436960816383, + 7.1564726531505585, + 5.382492206990719, + 5.342366639524698, + 6.6001457162201405, + 5.647431127727032, + 5.390922073274851, + 7.23807280883193, + 5.680736154317856, + 7.675373926758766, + 7.29967188090086, + 6.644534878432751, + 7.805220782756805, + 6.926656700670719, + 5.68341976031661, + 7.270438130944967, + 5.419868975877762, + 6.808267906308174, + 5.359220784157515, + 6.536473054438829, + 5.447325296700001, + 7.090297993272543, + 5.461635068058968, + 5.4834396578371525, + 7.405651267617941, + 6.558957975357771, + 5.360635928809643, + 7.26440129801631, + 5.416476167738438, + 5.384610965847969, + 5.502655170857906, + 6.634160410612822, + 7.6244669035077095, + 7.373160216957331, + 7.640567142516375, + 5.703463219106197, + 6.533564068377018, + 7.226786110550165, + 6.575091741979122, + 6.413279101252556, + 7.296588737517595, + 5.438857711851597, + 5.660760682076216, + 5.4445029236376286, + 6.544775795191526, + 5.452986340969801, + 7.13486410677433, + 7.728331722319126, + 5.429410841315985, + 7.66827492043376, + 7.683272007852793, + 6.788627710193396, + 7.210751995444298, + 5.530199036002159, + 7.28270411491394, + 5.461916793137789, + 7.417973130941391, + 6.583330221474171, + 5.566881038248539, + 7.842839229851961, + 7.640456315129995, + 5.482185631990433, + 6.6970232874155045, + 6.551411002874374, + 5.497762933373451, + 5.422827322036028, + 5.439641885459423, + 7.256981451064348, + 6.649982649832964, + 5.27455797418952, + 7.421526126563549, + 5.705899093300104, + 7.242013700306416, + 7.360546849668026, + 6.435029208660126, + 6.651864852756262, + 5.436336621642113, + 5.591731984168291, + 5.728549789637327, + 7.356479298323393, + 5.699004977941513, + 6.590118166059256, + 7.160759996622801, + 6.690890993922949, + 7.429367862641811, + 5.487718619406223, + 5.390727426856756, + 5.389532074332237, + 5.526070948690176, + 5.316074937582016, + 5.758818704634905, + 7.27612292394042, + 7.312970235943794, + 7.239277940243483, + 5.471526179462671, + 6.587011739611626, + 5.434185266494751, + 6.818394176661968, + 5.408111028373241, + 7.380460854619741, + 7.581484038382769, + 7.230399176478386, + 7.268229033797979, + 5.485882982611656, + 6.7074960097670555, + 5.754078272730112, + 7.188834715634584, + 6.524831987917423, + 5.426245741546154, + 5.397726781666279, + 7.301696110516787, + 6.540603004395962, + 7.777897175401449, + 7.283499930053949, + 7.271889131516218, + 7.195141166448593, + 7.211028598248959, + 5.442698020488024, + 5.366011988371611, + 5.538866389542818, + 7.437719032168388, + 5.585283041000366, + 5.404547788202763, + 5.455003120005131, + 6.6063362173736095, + 7.326414808630943, + 5.435079336166382, + 5.713859107345343, + 7.664388045668602, + 7.790712174028158, + 7.36993970349431, + 7.300257217139006, + 5.37791708484292, + 7.290300913155079, + 5.516135133802891, + 5.778297781944275, + 6.721780635416508, + 7.652330212295055, + 5.510109011083841, + 5.404124967753887, + 5.378526169806719, + 6.5947528928518295, + 7.189807016402483, + 5.518332123756409, + 5.379682872444391, + 5.429087206721306, + 7.5258249416947365, + 5.474084988236427, + 6.74926582723856, + 6.606875918805599, + 5.510649178177118, + 6.535835098475218, + 6.608736235648394, + 7.2772749699652195, + 6.857460830360651, + 7.25505780428648, + 5.497754085808992, + 5.695851985365152, + 5.453166086226702, + 6.6477591171860695, + 7.3308260180056095, + 5.500551778823137, + 6.639661267399788, + 5.542700178921223, + 5.721409805119038, + 6.805541925132275, + 6.621642038226128, + 6.759635638445616, + 7.329026702791452, + 7.474347949028015, + 5.489355884492397, + 5.750296171754599, + 5.455570761114359, + 7.295114919543266, + 7.3502808809280396, + 5.358241032809019, + 7.257168181240559, + 5.406513344496489, + 6.374781019985676, + 6.494896952062845, + 5.643858108669519, + 6.465070880949497, + 7.185491267591715, + 5.5984919890761375, + 5.341131240129471, + 7.521891966462135, + 5.550838075578213, + 5.296700168401003, + 6.479297298938036, + 7.539690006524324, + 6.512090098112822, + 5.519574042409658, + 5.471302196383476, + 7.191824726760387, + 5.352064035832882, + 5.421879235655069, + 5.297536961734295, + 7.230338174849749, + 5.571309942752123, + 5.505769047886133, + 5.48070203512907, + 7.3235430754721165, + 5.765975918620825, + 7.621885277330875, + 5.473695229738951, + 7.250076625496149, + 7.280562072992325, + 5.495056975632906, + 5.778312683105469, + 5.36365807056427, + 7.21499789506197, + 7.115012034773827, + 5.612680222839117, + 5.438501946628094, + 7.563212886452675, + 7.637107744812965, + 5.394273903220892, + 7.647734601050615, + 5.340317264199257, + 5.343014840036631, + 7.576577831059694, + 5.523169878870249, + 6.6443150863051414, + 7.276397664099932, + 5.726716015487909, + 5.74188306927681, + 5.503425840288401, + 6.495646201074123, + 7.4333432130515575, + 5.385565105825663, + 7.66896503046155, + 7.177374325692654, + 7.83555768430233, + 7.638199720531702, + 5.3589921444654465, + 6.566204130649567, + 6.654755678027868, + 5.2921888418495655, + 5.314987618476152, + 6.573316175490618, + 7.746610790491104, + 6.783518008887768, + 7.492891047149897, + 6.512321066111326, + 7.879352197051048, + 5.532198119908571, + 6.714753806591034, + 5.827991291880608, + 5.789215210825205, + 5.3922380320727825, + 7.811311166733503, + 7.723452989012003, + 5.482458043843508, + 7.570153102278709, + 7.134465966373682, + 5.70769002661109, + 7.281006779521704, + 5.639072973281145, + 7.336567156016827, + 7.6454440131783485, + 5.632347892969847, + 7.345163729041815, + 7.325552869588137, + 7.779001723974943, + 7.972994819283485, + 5.507722031325102, + 7.294170092791319, + 5.410917103290558, + 5.366208963096142, + 5.710932891815901, + 7.424210198223591, + 7.682492956519127, + 7.181238848716021, + 6.731921806931496, + 7.440355606377125, + 7.557836826890707, + 7.369326893240213, + 5.390767939388752, + 5.392568185925484, + 5.699126049876213, + 7.276826072484255, + 7.187479175627232, + 5.463996902108192, + 5.4709939286112785, + 7.165787275880575, + 7.784218993037939, + 7.615604903548956, + 5.343698896467686, + 6.59732474014163 + ], + "lattice": [ + 5.927333142608404, + 5.848429165780544, + 6.066501140594482, + 6.423451937735081, + 4.683359991759062, + 4.621246363967657, + 4.606503993272781, + 6.00814912468195, + 4.663802683353424, + 4.758646711707115, + 4.876259248703718, + 4.599822219461203, + 6.089215632528067, + 5.982365924865007, + 5.658433772623539, + 6.022830959409475, + 6.140056997537613, + 6.138557102531195, + 5.7611423544585705, + 4.653511103242636, + 5.993731319904327, + 6.075937766581774, + 5.863943602889776, + 6.016672123223543, + 6.0294740833342075, + 6.036176811903715, + 4.876636900007725, + 6.0061742551624775, + 4.653806798160076, + 5.920836236327887, + 5.760782863944769, + 4.696133080869913, + 6.058880127966404, + 4.6235122717916965, + 5.789014045149088, + 5.795396864414215, + 4.582736175507307, + 4.873407073318958, + 5.751758813858032, + 5.97361708059907, + 5.909171886742115, + 5.681452341377735, + 5.82520617172122, + 4.678330384194851, + 6.315575912594795, + 6.0150111094117165, + 4.899288062006235, + 5.762076936662197, + 6.202240940183401, + 5.974008701741695, + 5.0194598734378815, + 4.699720069766045, + 4.672987852245569, + 4.625625908374786, + 4.8717325553298, + 6.110545247793198, + 4.618255887180567, + 5.140223074704409, + 4.558922257274389, + 5.940456874668598, + 5.81458630040288, + 5.711865145713091, + 6.091258954256773, + 5.773385986685753, + 5.825208965688944, + 4.6175578609108925, + 4.6748570166528225, + 6.186322774738073, + 6.053232122212648, + 4.685939755290747, + 4.758632741868496, + 4.71318606287241, + 6.2164561823010445, + 4.670573398470879, + 6.079229060560465, + 5.9585971757769585, + 5.957764107733965, + 6.035827100276947, + 4.72569465637207, + 4.674926865845919, + 5.724526010453701, + 6.176803261041641, + 4.778501112014055, + 5.976122338324785, + 5.9554483741521835, + 5.946500226855278, + 4.6280608512461185, + 5.981177091598511, + 5.743053276091814, + 4.759588278830051, + 6.055927835404873, + 4.638819023966789, + 4.619103856384754, + 4.973625764250755, + 5.768212024122477, + 6.0139792039990425, + 4.583094269037247, + 4.922016989439726, + 6.04637898504734, + 4.544819239526987, + 5.686554126441479, + 4.555494990199804, + 5.9198178350925446, + 4.627082962542772, + 4.665947984904051, + 4.591452889144421, + 6.02699676528573, + 4.545667674392462, + 5.944103933870792, + 6.0157072730362415, + 4.797922447323799, + 4.733941983431578, + 6.085741333663464, + 4.655183758586645, + 5.942535120993853, + 5.959283094853163, + 5.705717019736767, + 4.72017889842391, + 4.6661002561450005, + 5.005198065191507, + 5.668718833476305, + 4.61651012301445, + 6.187740713357925, + 4.660322796553373, + 4.6218461357057095, + 6.0730380937457085, + 6.085558794438839, + 4.643894731998444, + 5.970639176666737, + 4.653980024158955, + 4.58060298115015, + 6.135601084679365, + 4.697686992585659, + 4.6196021139621735, + 4.6435450203716755, + 5.989181809127331, + 6.04946818202734, + 6.043468602001667, + 5.024173762649298, + 4.9903481267392635, + 5.649569910019636, + 6.170214153826237, + 4.974316339939833, + 5.842194426804781, + 4.680542275309563, + 4.643249325454235, + 6.081899162381887, + 4.989761859178543, + 5.869322922080755, + 5.10178180411458, + 5.842714104801416, + 4.9383253790438175, + 4.8708501271903515, + 4.644868429750204, + 4.979698918759823, + 4.61486866697669, + 5.85182337090373, + 6.158753763884306, + 6.022569257766008, + 4.65384079143405, + 4.939543083310127, + 4.744135309010744, + 4.6774642542004585, + 5.9859370812773705, + 5.444040056318045, + 4.607306327670813, + 5.9622772969305515, + 5.062151700258255, + 6.0898372903466225, + 4.7080665826797485, + 4.598733969032764, + 4.704286810010672, + 6.033829879015684, + 5.944361910223961, + 6.159034091979265, + 4.902517888695002, + 4.660252016037703, + 4.744439385831356, + 6.065705791115761, + 5.987882148474455, + 5.831659771502018, + 5.894778296351433, + 6.00716657936573, + 5.913944914937019, + 6.0411780141294, + 5.662993062287569, + 6.013059988617897, + 4.593539983034134, + 4.581422079354525, + 5.769845098257065, + 4.736785776913166, + 5.784714128822088, + 5.898694042116404, + 4.5439451932907104, + 4.554807208478451, + 4.945008084177971, + 6.2003470957279205, + 4.619089886546135, + 5.834901239722967, + 5.587819963693619, + 5.77956810593605, + 6.078855134546757, + 5.80786494538188, + 5.940035916864872, + 5.877136718481779, + 6.038164254277945, + 5.777742248028517, + 5.970470141619444, + 4.5310440473258495, + 5.858494900166988, + 4.541757050901651, + 4.553880076855421, + 5.902851931750774, + 4.472279921174049, + 5.910489708185196, + 5.860829725861549, + 4.539937246590853, + 4.906791262328625, + 6.045822985470295, + 6.2400721944868565, + 4.590013064444065, + 5.952748004347086, + 5.940294358879328, + 6.017318926751614, + 5.968897137790918, + 4.636320285499096, + 6.003980059176683, + 4.820091649889946, + 4.738917108625174, + 5.198685918003321, + 5.938531365245581, + 4.643724299967289, + 4.723801277577877, + 4.688314162194729, + 5.976942367851734, + 6.241831928491592, + 4.68758400529623, + 6.060284096747637, + 5.755316931754351, + 5.989484954625368, + 4.91351680830121, + 5.758041050285101, + 4.7063990496098995, + 4.625881090760231, + 4.632995929569006, + 4.5828428119421005, + 5.804548040032387, + 5.979740992188454, + 6.041744723916054, + 5.5108023807406425, + 5.804477725178003, + 4.7454130835831165, + 6.512386258691549, + 5.851235706359148, + 5.976816639304161, + 5.044983234256506, + 5.0251679494977, + 4.6378616243600845, + 4.836468957364559, + 5.879376083612442, + 5.882606841623783, + 4.944424144923687, + 6.001356057822704, + 6.082096137106419, + 5.059471353888512, + 4.689448978751898, + 4.882977809756994, + 5.949229933321476, + 6.115957163274288, + 6.033394951373339, + 5.968528334051371, + 5.7906960137188435, + 5.989992991089821, + 5.774193909019232, + 5.977963097393513, + 6.1217001639306545, + 6.1057740822434425, + 4.733968060463667, + 4.984856117516756, + 5.032298620790243, + 6.168498191982508, + 4.724245052784681, + 6.338790990412235, + 6.316569168120623, + 5.672669038176537, + 6.127459928393364, + 4.73051005974412, + 4.634031094610691, + 4.9317521043121815, + 4.570006858557463, + 4.734920337796211, + 4.514991771429777, + 5.187328904867172, + 5.8234380558133125, + 5.951453000307083, + 5.841535981744528, + 6.168728694319725, + 5.704956129193306, + 5.991189740598202, + 5.809707101434469, + 5.926145240664482, + 5.968492943793535, + 4.982664715498686, + 4.919605795294046, + 4.517973866313696, + 4.7190082259476185, + 4.60188090801239, + 4.530908074229956, + 5.673503037542105, + 5.961775779724121, + 4.693296272307634, + 5.757537204772234, + 6.0885692946612835, + 5.958095658570528, + 6.125474814325571, + 5.667658057063818, + 5.931688006967306, + 5.900759715586901, + 5.9150210581719875, + 5.625434685498476, + 4.563209135085344, + 6.071379873901606, + 4.702005069702864, + 4.690469708293676, + 4.8241643235087395, + 6.034987047314644, + 4.750102758407593, + 5.766482092440128, + 6.036577746272087, + 6.012322381138802, + 4.618273116648197, + 6.036411039531231, + 6.138316821306944, + 6.073898170143366, + 4.492043983191252, + 5.919226910918951, + 4.5683132484555244, + 4.9507818184792995, + 5.979452282190323, + 4.753767047077417, + 5.926715210080147, + 5.608899053186178, + 4.550314042717218, + 4.601745866239071, + 6.002107169479132, + 4.94773592799902, + 4.601040855050087, + 6.043075118213892, + 4.709728993475437, + 4.6016457490623, + 6.032697856426239, + 6.026224233210087, + 4.682905040681362, + 4.6197036281228065, + 5.788808222860098, + 5.957017187029123, + 6.047646980732679, + 4.631885793060064, + 6.061851978302002, + 4.999611992388964, + 6.000028923153877, + 6.0524530708789825, + 5.9921289794147015, + 4.916015081107616, + 6.038054823875427, + 5.884766113013029, + 6.03437889367342, + 6.044067908078432, + 4.696505144238472, + 4.5966412872076035, + 4.744286183267832, + 6.030924152582884, + 5.976591724902391, + 5.783075001090765, + 5.984819028526545, + 4.739665891975164, + 4.6932147815823555, + 4.650763235986233, + 5.94934681430459, + 5.738213658332825, + 5.7028550654649734, + 4.591916222125292, + 4.519383888691664, + 5.937178153544664, + 6.023108959197998, + 5.89927239343524, + 5.9189582243561745, + 4.65858681127429, + 4.690648056566715, + 5.7983300648629665, + 6.095360964536667, + 6.1722020618617535, + 4.643762018531561, + 4.731680266559124, + 4.720255266875029, + 5.696427077054977, + 6.0042040422558784, + 6.075126118957996, + 6.076460238546133, + 5.976343061774969 + ], + "library": [ + 4.568951204419136, + 5.866487976163626, + 6.1022131703794, + 6.096453405916691, + 5.765764974057674, + 4.629628267139196, + 5.792821757495403, + 6.10774103552103, + 4.795112181454897, + 4.633421078324318, + 5.98805071786046, + 6.048787850886583, + 4.666483029723167, + 4.717437084764242, + 5.982828326523304, + 6.034894846379757, + 5.815954878926277, + 5.974882747977972, + 4.650409799069166, + 5.960870999842882, + 4.500865936279297, + 5.8134328573942184, + 6.204537581652403, + 6.050941068679094, + 4.636034835129976, + 4.608286079019308, + 4.55776322633028, + 6.0275099240243435, + 6.025525275617838, + 4.722869023680687, + 4.610229283571243, + 4.69190813601017, + 6.007646676152945, + 4.488091915845871, + 5.798269063234329, + 5.838916637003422, + 4.668862093240023, + 6.036574952304363, + 6.004016846418381, + 4.574155900627375, + 5.983070936053991, + 5.962044931948185, + 5.8710528537631035, + 4.604365210980177, + 4.659730009734631, + 6.311976816505194, + 6.012203171849251, + 5.855920258909464, + 4.931294824928045, + 4.56824479624629, + 5.968105047941208, + 6.025975104421377, + 4.671510308980942, + 6.284866947680712, + 4.617820959538221, + 6.00549066439271, + 4.658983089029789, + 5.999912042170763, + 6.11066073179245, + 5.6678010150790215, + 4.626836162060499, + 4.883215297013521, + 5.815454758703709, + 4.66576125472784, + 6.123373284935951, + 5.7738362811505795, + 6.116183008998632, + 5.959342233836651, + 4.893188364803791, + 4.645965993404388, + 6.072813179343939, + 4.754200112074614, + 5.823388230055571, + 6.271832622587681, + 4.66901483014226, + 4.761108662933111, + 5.768804345279932, + 6.311479955911636, + 5.984721705317497, + 5.784492939710617, + 5.904363002628088, + 5.955634173005819, + 5.6710010394454, + 6.002582143992186, + 5.931597203016281, + 4.497142042964697, + 6.00683968514204, + 4.633364733308554, + 6.001011934131384, + 4.617783240973949, + 6.11241115257144, + 4.530599806457758, + 4.806320182979107, + 6.045326124876738, + 6.270204205065966, + 4.628990776836872, + 4.60438197478652, + 6.1365412548184395, + 4.584320820868015, + 5.983913317322731, + 5.72560727596283, + 6.038423627614975, + 5.801699124276638, + 6.0288868844509125, + 4.673282615840435, + 6.014266051352024, + 5.7231890968978405, + 6.0761780478060246, + 4.670326132327318, + 4.748474806547165, + 4.700246267020702, + 5.719602108001709, + 4.593728110194206, + 4.956335760653019, + 5.712683312594891, + 5.799011327326298, + 5.7892403565347195, + 4.652653355151415, + 6.047762930393219, + 6.0230582021176815, + 4.841050133109093, + 4.956354852765799, + 5.857378244400024, + 6.3325269147753716, + 4.64318972080946, + 4.933551885187626, + 4.736966919153929, + 5.801053252071142, + 6.035804748535156, + 5.909840110689402, + 4.866092931479216, + 5.836774595081806, + 4.732958972454071, + 6.013526115566492, + 5.70326903834939, + 4.581845831125975, + 4.719445016235113, + 6.082400213927031, + 6.179330870509148, + 6.083634216338396, + 4.863469861447811, + 4.695303272455931, + 5.815511103719473, + 6.032065022736788, + 4.732728935778141, + 5.969525780528784, + 4.982138983905315, + 4.645014181733131, + 4.641049075871706, + 5.932087078690529, + 5.755813792347908, + 5.946720018982887, + 5.970838945358992, + 6.166820414364338, + 4.667727742344141, + 4.615115001797676, + 4.698601085692644, + 6.009894888848066, + 5.950621794909239, + 4.562326241284609, + 5.7450816966593266, + 4.64297691360116, + 6.000366993248463, + 5.860583856701851, + 6.024783942848444, + 4.733848851174116, + 6.118187215179205, + 6.109429057687521, + 5.98762696608901, + 4.9418252892792225, + 6.016725674271584, + 4.775838926434517, + 6.0513438656926155, + 6.077138241380453, + 4.770216997712851, + 6.002630107104778, + 4.841115325689316, + 4.721249453723431, + 6.067110225558281, + 5.963659845292568, + 6.008639931678772, + 6.011024117469788, + 6.177237257361412, + 4.649568814784288, + 4.622632171958685, + 6.046055816113949, + 4.750815220177174, + 4.65237395837903, + 4.662202205508947, + 6.007498130202293, + 5.769107956439257, + 5.799408070743084, + 4.6251080930233, + 4.9846419133245945, + 4.678176715970039, + 5.849889945238829, + 5.959165748208761, + 5.9538790956139565, + 5.967749282717705, + 5.087030120193958, + 4.53892583027482, + 4.552621394395828, + 5.984986666589975, + 5.038332659751177, + 6.11524423584342, + 6.281733978539705, + 4.763684701174498, + 4.56167571246624, + 6.062991917133331, + 5.9094782918691635, + 6.038855295628309, + 4.632887896150351, + 5.960542242974043, + 6.148981396108866, + 5.875356961041689, + 5.852160044014454, + 4.65077580884099, + 4.6637705527246, + 5.785064771771431, + 4.953213967382908, + 5.6990147568285465, + 6.002298090606928, + 5.772113800048828, + 4.5848130248487, + 4.620562773197889, + 5.7890759781003, + 4.7503020614385605, + 4.982808139175177, + 6.152900867164135, + 4.781199153512716, + 6.020123604685068, + 6.058780010789633, + 4.720698110759258, + 4.76072495803237, + 4.632503259927034, + 4.780139774084091, + 5.786782130599022, + 4.702738020569086, + 5.857037380337715, + 5.9912921860814095, + 4.512762650847435, + 5.978535860776901, + 5.7829818688333035, + 6.068304181098938, + 4.962210077792406, + 6.031909957528114, + 4.590703174471855, + 4.6049002557992935, + 5.877334624528885, + 5.851431749761105, + 5.944648757576942, + 5.988192278891802, + 5.66047104075551, + 4.619508050382137, + 6.029781885445118, + 4.6266429126262665, + 5.7408129796385765, + 5.963999778032303, + 4.981311969459057, + 6.044401787221432, + 4.617996048182249, + 4.949343856424093, + 6.041920278221369, + 5.823465064167976, + 5.90644683688879, + 4.568029660731554, + 5.833109840750694, + 4.583313595503569, + 6.101492326706648, + 4.761566873639822, + 5.721037276089191, + 5.927190184593201, + 5.931085906922817, + 4.6790349297225475, + 6.3066198490560055, + 5.779944360256195, + 4.884492140263319, + 4.8577566631138325, + 4.605872090905905, + 4.883007612079382, + 4.612440709024668, + 5.955758970230818, + 5.940220318734646, + 4.696942865848541, + 6.451907567679882, + 5.943204276263714, + 4.708743654191494, + 6.035156082361937, + 4.999703727662563, + 5.966631229966879, + 6.231504958122969, + 6.25271862372756, + 4.540007095783949, + 4.638461396098137, + 4.749808926135302, + 5.934102926403284, + 6.025795359164476, + 6.061086896806955, + 4.5274971053004265, + 4.621733911335468, + 4.590143915265799, + 4.55706100910902, + 4.681197926402092, + 4.596303682774305, + 4.483147989958525, + 5.950204096734524, + 6.182258017361164, + 5.798412021249533, + 5.697703920304775, + 6.018766202032566, + 5.043975077569485, + 6.032331846654415, + 4.67715272679925, + 4.637928679585457, + 6.036262959241867, + 4.624510183930397, + 5.903855431824923, + 5.950259044766426, + 5.927317310124636, + 4.54394007101655, + 4.5347618870437145, + 5.994957871735096, + 4.642282146960497, + 4.743813071399927, + 4.997443873435259, + 5.01636415719986, + 5.803623236715794, + 5.985648836940527, + 5.699130240827799, + 5.7182470336556435, + 4.536850843578577, + 4.609257914125919, + 6.094291806221008, + 5.800415296107531, + 6.036440841853619, + 5.910036154091358, + 5.965318996459246, + 5.904918070882559, + 6.017466075718403, + 4.613541066646576, + 4.595515783876181, + 6.016943138092756, + 6.213785149157047, + 4.698346368968487, + 4.605399910360575, + 5.986549891531467, + 4.6629528515040874, + 4.661337938159704, + 5.750019568949938, + 6.0746558010578156, + 5.775843746960163, + 6.056572776287794, + 5.052097141742706, + 5.730786826461554, + 6.046548951417208, + 5.985332187265158, + 4.620388150215149, + 4.6485187485814095, + 6.134537048637867, + 6.123099010437727, + 6.143677979707718, + 6.033453159034252, + 4.576495848596096, + 6.031707860529423, + 6.056935992091894, + 4.640975035727024, + 6.141199730336666, + 5.986799020320177, + 5.780029110610485, + 6.068705581128597, + 4.743834957480431, + 4.646869841963053, + 4.987968131899834, + 5.043472163379192, + 4.732721950858831, + 6.224260665476322, + 5.74056338518858, + 4.66868095099926, + 6.0286568477749825, + 6.058538798242807, + 5.917164031416178, + 5.913249682635069, + 5.850381683558226, + 6.019845604896545, + 4.871496930718422, + 5.717664025723934, + 4.63496008887887, + 5.9063672088086605, + 4.746180027723312, + 5.974783096462488, + 5.997755099087954, + 6.079518236219883, + 4.520214162766933, + 5.7424078695476055, + 5.7265907526016235, + 4.576154984533787, + 4.568286240100861, + 4.603097215294838, + 6.049726158380508, + 4.597757942974567 + ] + }, + "warm_ms": { + "control": [ + 12.631712015718222, + 8.361844811588526, + 7.142988033592701 + ], + "exact": [ + 7.028772030025721, + 6.635884754359722, + 5.563443060964346 + ], + "lattice": [ + 5.082397256046534, + 4.62627736851573, + 4.739726893603802 + ], + "library": [ + 4.768829792737961, + 4.781006369739771, + 4.7356500290334225 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 8.257606299594045, + "p10_ms": 7.128473045304418, + "p90_ms": 9.332119673490531, + "min_ms": 6.963712628930807, + "max_ms": 11.857009027153254, + "mean_ms": 8.180784498108551 + }, + "exact": { + "n": 400, + "median_ms": 6.549761863425374, + "p10_ms": 5.395407974720001, + "p90_ms": 7.5637344270944595, + "min_ms": 5.27455797418952, + "max_ms": 7.972994819283485, + "mean_ms": 6.4212581445463 + }, + "lattice": { + "n": 400, + "median_ms": 5.76096260920167, + "p10_ms": 4.617453087121248, + "p90_ms": 6.076699728146195, + "min_ms": 4.472279921174049, + "max_ms": 6.512386258691549, + "mean_ms": 5.423558127367869 + }, + "library": { + "n": 400, + "median_ms": 5.78373740427196, + "p10_ms": 4.605824872851372, + "p90_ms": 6.077376240864396, + "min_ms": 4.483147989958525, + "max_ms": 6.451907567679882, + "mean_ms": 5.432137706084177 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 1.4333726600489687, + "ci90_low": 1.4213296024484698, + "ci90_high": 1.4557104724797898, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.2607490885593065, + "ci90_low": 1.248173521414716, + "ci90_high": 1.2793663246031872, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.1369214327070616, + "ci90_low": 1.1210227650839564, + "ci90_high": 1.1575214307139272, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 1.0039532968038907, + "ci90_low": 0.9930932604847128, + "ci90_high": 1.0194619607418236, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 1.4277284258263256, + "ci90_low": 1.4173697666092284, + "ci90_high": 1.4414268858314438, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.439833369745415, + "p10": 1.3897193717774725, + "p90": 1.6345838047854544 + }, + "minimum_detectable_improvement": 0.2668626413315985, + "compile": { + "control": { + "lower_s": 2.7013172251172364, + "compile_s": 3.390130660030991, + "first_call_s": 0.012378890067338943, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 23296236.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 15472792, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 999444480, + "rss_after_compile_bytes": 1003515904, + "rss_delta_bytes": 4071424, + "hlo_sha256": "b8cbbe3153f21377", + "hlo_lines": 26373, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 2.693243197631091, + "compile_s": 3.484033402055502, + "first_call_s": 0.008898334112018347, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 14518292.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 7094296, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1003515904, + "rss_after_compile_bytes": 1005715456, + "rss_delta_bytes": 2199552, + "hlo_sha256": "ffc35c682eb0bca3", + "hlo_lines": 26267, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 2.6141901263035834, + "compile_s": 3.6853244048543274, + "first_call_s": 0.0053144898265600204, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 11829332.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6763032, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1009483776, + "rss_after_compile_bytes": 1011400704, + "rss_delta_bytes": 1916928, + "hlo_sha256": "3380372ff4f4e723", + "hlo_lines": 26267, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 2.711991743184626, + "compile_s": 3.713817021343857, + "first_call_s": 0.00763329491019249, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 11829332.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6763032, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1011400704, + "rss_after_compile_bytes": 1013317632, + "rss_delta_bytes": 1916928, + "hlo_sha256": "3380372ff4f4e723", + "hlo_lines": 26267, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0, + 1, + 2, + 3 + ], + [ + 4, + 5, + 6, + 7 + ], + [ + 8, + 9, + 10, + 11 + ], + [ + 12, + 13, + 14, + 15 + ] + ], + "values": { + "control": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ], + "exact": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ], + "lattice": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ], + "library": [ + [ + 7.743201200876812, + 4.901199826003542, + 8.551453428732437, + 7.640170398958149 + ], + [ + 7.2580956747803445, + 9.29357838657636, + 3.0338796505151917, + 8.714615086385912 + ], + [ + 4.735173159474494, + 3.2233889243165805, + 9.296501815740573, + 6.7486158154711955 + ], + [ + -1.4028143150641306, + 0.5885274382499945, + 6.162997261446639, + -10.49915087893337 + ] + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + } + }, + "simple_plain": { + "label": "simple_plain", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 4.318175837397575, + 3.1770719215273857, + 3.1786239705979824, + 3.1344168819487095, + 4.788735881447792, + 3.0920892022550106, + 4.40638605505228, + 3.6480259150266647, + 3.202850930392742, + 3.6304700188338757, + 3.186115063726902, + 4.3785166926681995, + 3.215603996068239, + 4.322086926549673, + 3.5970150493085384, + 3.203311003744602, + 3.1482670456171036, + 3.1222603283822536, + 3.1024483032524586, + 3.599198069423437, + 3.0467468313872814, + 3.0684536322951317, + 3.109019249677658, + 3.1155431643128395, + 3.549723420292139, + 3.032921813428402, + 4.047775641083717, + 3.5136230289936066, + 4.1977399960160255, + 2.992962021380663, + 2.9742238111793995, + 3.112145233899355, + 3.013540990650654, + 2.9776827432215214, + 4.032105207443237, + 3.0118641443550587, + 3.6490261554718018, + 3.108205273747444, + 3.053258638828993, + 3.6102081649005413, + 3.0045900493860245, + 3.0959518626332283, + 3.1002522446215153, + 3.655793145298958, + 4.774708766490221, + 3.1701908446848392, + 3.6298460327088833, + 3.6312718875706196, + 3.5967277362942696, + 3.6489018239080906, + 3.644476179033518, + 3.166593611240387, + 3.6104628816246986, + 4.8427339643239975, + 4.208078607916832, + 3.0352361500263214, + 3.659500740468502, + 3.2112132757902145, + 3.108931239694357, + 3.0459901317954063, + 3.1157201156020164, + 3.013597335666418, + 3.041764721274376, + 3.5004750825464725, + 3.126580733805895, + 3.5566589795053005, + 3.0772415921092033, + 3.0293590389192104, + 4.699027165770531, + 3.604297060519457, + 3.6138780415058136, + 3.093722276389599, + 3.091234713792801, + 3.0405386351048946, + 4.755626432597637, + 3.581646829843521, + 4.85687330365181, + 4.3008169159293175, + 4.112533293664455, + 3.502731677144766, + 3.119288943707943, + 4.299242980778217, + 4.181650932878256, + 3.176167607307434, + 4.10583196207881, + 3.181769046932459, + 3.6135870032012463, + 3.5657091066241264, + 3.113300073891878, + 3.6016199737787247, + 3.122393973171711, + 3.592411056160927, + 4.782118834555149, + 4.297520034015179, + 3.0951560474932194, + 3.1275441870093346, + 3.1173760071396828, + 3.6070039495825768, + 3.120466135442257, + 4.278689622879028, + 4.203540273010731, + 3.5240319557487965, + 3.044429700821638, + 4.241409245878458, + 3.5309302620589733, + 3.639739006757736, + 4.797886591404676, + 4.013451747596264, + 3.4905928187072277, + 4.724465776234865, + 3.0164504423737526, + 4.782401956617832, + 3.18412808701396, + 3.084006253629923, + 3.105024341493845, + 3.06911114603281, + 4.798579029738903, + 3.0472292564809322, + 3.0712373554706573, + 4.742064047604799, + 4.157376009970903, + 3.1826109625399113, + 3.079804126173258, + 3.0700680799782276, + 3.0731186270713806, + 4.792406223714352, + 3.5782926715910435, + 3.5931370221078396, + 3.042214084416628, + 3.0467920005321503, + 3.6960230208933353, + 3.5814354196190834, + 3.4440546296536922, + 3.622142132371664, + 4.305441863834858, + 3.1309127807617188, + 3.241528756916523, + 3.247458953410387, + 4.839293193072081, + 3.1818849965929985, + 3.0445801094174385, + 3.5563777200877666, + 3.1462451443076134, + 3.156143706291914, + 4.919213242828846, + 3.086857032030821, + 3.1225699931383133, + 4.235787782818079, + 3.0542220920324326, + 3.636825829744339, + 3.5779206082224846, + 3.1138830818235874, + 3.599395975470543, + 3.2185851596295834, + 3.0776658095419407, + 4.247618839144707, + 3.0793300829827785, + 3.0858200043439865, + 3.590142820030451, + 3.1945127993822098, + 4.095813259482384, + 4.285837989300489, + 3.647735808044672, + 4.202697891741991, + 3.1153960153460503, + 3.1183329410851, + 3.1204354017972946, + 3.104821313172579, + 3.5870629362761974, + 3.13781201839447, + 3.617800772190094, + 3.203194122761488, + 3.0887117609381676, + 3.121234942227602, + 3.622146788984537, + 4.256523214280605, + 3.1654522754251957, + 3.037927206605673, + 3.0673551373183727, + 3.0375090427696705, + 3.061399795114994, + 4.162528086453676, + 3.1626401469111443, + 4.300603177398443, + 4.1413200087845325, + 3.1222589313983917, + 4.256904125213623, + 4.790805745869875, + 3.1341281719505787, + 4.10151481628418, + 4.293681122362614, + 2.9932381585240364, + 4.194502718746662, + 3.531942144036293, + 3.074208740144968, + 3.0095698311924934, + 3.100245725363493, + 4.242449067533016, + 3.114514984190464, + 4.881340079009533, + 3.037848975509405, + 3.108787816017866, + 3.09816375374794, + 4.748562350869179, + 3.614057321101427, + 4.313313402235508, + 4.809592850506306, + 3.612902946770191, + 4.06686682254076, + 3.652819897979498, + 3.1383661553263664, + 3.162433858960867, + 4.125318955630064, + 3.5460907965898514, + 2.9896581545472145, + 4.029555711895227, + 3.587435930967331, + 3.574118949472904, + 3.670617938041687, + 3.206069115549326, + 4.723424091935158, + 3.625054843723774, + 3.6113280802965164, + 4.256074782460928, + 3.0875401571393013, + 3.1937509775161743, + 3.6265510134398937, + 3.6446163430809975, + 4.835512023419142, + 3.136648330837488, + 4.3303221464157104, + 4.829668905586004, + 4.288728814572096, + 3.1738379038870335, + 4.83236787840724, + 3.1802719458937645, + 3.0537769198417664, + 3.031004685908556, + 3.569421824067831, + 3.6544250324368477, + 3.5244650207459927, + 3.5802144557237625, + 3.0286880210042, + 3.5767885856330395, + 4.272122867405415, + 3.5420041531324387, + 4.744227044284344, + 3.5720951855182648, + 3.6941049620509148, + 3.1068180687725544, + 3.1142239458858967, + 3.142962232232094, + 3.051436971873045, + 3.5805501975119114, + 4.253753926604986, + 3.2091448083519936, + 3.6120321601629257, + 3.087040036916733, + 3.0982731841504574, + 3.1894510611891747, + 3.5906475968658924, + 3.242559265345335, + 3.145982977002859, + 3.577033057808876, + 4.149120766669512, + 3.0701146461069584, + 3.6997273564338684, + 3.022997174412012, + 3.081195056438446, + 3.644412849098444, + 4.27416292950511, + 3.122739028185606, + 4.795114044100046, + 4.159769043326378, + 3.474554978311062, + 3.1145750544965267, + 3.6484990268945694, + 3.159821033477783, + 3.066027071326971, + 3.577547147870064, + 3.0102781020104885, + 3.6040381528437138, + 3.1011360697448254, + 3.6326441913843155, + 4.297958221286535, + 3.065194934606552, + 3.1464830972254276, + 3.654011059552431, + 4.267597105354071, + 3.145806957036257, + 3.6269063130021095, + 3.6895321682095528, + 3.031737171113491, + 3.098523709923029, + 3.5660630092024803, + 3.197501879185438, + 4.132677335292101, + 3.1308908946812153, + 3.556573297828436, + 4.2716506868600845, + 4.207725636661053, + 3.6506340838968754, + 3.10321431607008, + 3.1060418114066124, + 3.1332853250205517, + 3.615977242588997, + 3.188986796885729, + 3.6629182286560535, + 4.703171085566282, + 3.0070189386606216, + 3.510014619678259, + 4.158409778028727, + 4.045933950692415, + 3.229810856282711, + 3.557933960109949, + 3.0319318175315857, + 3.1182877719402313, + 3.1752483919262886, + 3.2132258638739586, + 3.077868837863207, + 2.993161790072918, + 3.635995090007782, + 3.6573908291757107, + 3.6153020337224007, + 3.6194720305502415, + 3.182300366461277, + 4.249072168022394, + 3.159531857818365, + 3.1092562712728977, + 3.0439230613410473, + 3.0725481919944286, + 3.0245687812566757, + 3.0575599521398544, + 4.1149030439555645, + 3.6299102939665318, + 3.023033030331135, + 3.6302972584962845, + 3.1466702930629253, + 3.211023285984993, + 3.2149720937013626, + 3.064461052417755, + 3.6227800883352757, + 3.1525790691375732, + 3.1001227907836437, + 3.18230502307415, + 3.156730905175209, + 3.2054386101663113, + 3.1022708863019943, + 3.0943118035793304, + 3.095874097198248, + 4.112884867936373, + 3.0840029940009117, + 4.292225930839777, + 4.354075063019991, + 4.792037885636091, + 3.724251873791218, + 4.27913898602128, + 3.4841722808778286, + 3.110483754426241, + 3.5582128912210464, + 4.732179921120405, + 2.9893573373556137, + 3.4867851063609123, + 3.0086059123277664, + 3.10071324929595, + 4.336779937148094, + 3.114642109721899, + 3.059564158320427, + 3.5801236517727375, + 3.5244757309556007, + 3.529889974743128, + 3.624550998210907, + 3.6157076247036457, + 4.169439896941185, + 3.0113928951323032, + 3.0268719419837, + 3.615733701735735, + 3.1413151882588863, + 3.151332028210163, + 3.1016413122415543, + 3.11390683054924, + 3.220616839826107, + 3.116306848824024, + 3.610227257013321, + 3.181236796081066, + 3.133825957775116, + 3.102194983512163, + 3.153432160615921, + 4.145131912082434, + 3.593362867832184, + 3.703868016600609, + 3.666770178824663, + 3.76508804038167, + 3.6024218425154686, + 4.2662108317017555, + 3.191614057868719, + 3.1373328529298306, + 3.628288861364126, + 3.14513873308897, + 3.0410350300371647 + ], + "exact": [ + 2.157360315322876, + 2.1193809807300568, + 2.1863598376512527, + 2.2123842500150204, + 2.721277065575123, + 2.8045950457453728, + 2.6784478686749935, + 2.137846779078245, + 2.680107019841671, + 2.2268127650022507, + 2.1258951164782047, + 2.758961170911789, + 2.5740782730281353, + 2.8489618562161922, + 2.1196240559220314, + 2.146007027477026, + 2.629500348120928, + 2.038966864347458, + 2.5869160890579224, + 2.0508840680122375, + 2.5529060512781143, + 2.5212448090314865, + 2.756809815764427, + 2.1401378326117992, + 2.0791487768292427, + 2.7420762926340103, + 2.148341853171587, + 2.5740424171090126, + 2.654701005667448, + 2.5785337202250957, + 2.136590890586376, + 2.5826538912951946, + 2.700262237340212, + 2.1747159771621227, + 2.6124422438442707, + 2.1629007533192635, + 2.5906693190336227, + 2.1641929633915424, + 2.2047320380806923, + 2.8944015502929688, + 2.5385557673871517, + 2.89712892845273, + 2.196917776018381, + 2.6323948986828327, + 2.2243070416152477, + 2.1056258119642735, + 2.7781659737229347, + 2.3764590732753277, + 2.6154061779379845, + 2.6155132800340652, + 2.1272129379212856, + 2.142523881047964, + 2.5864001363515854, + 2.6540462858974934, + 2.609157934784889, + 2.6769028045237064, + 2.2073443979024887, + 2.684446983039379, + 2.813969738781452, + 2.1662027575075626, + 2.0165578462183475, + 2.597625833004713, + 2.090939786285162, + 2.131055109202862, + 2.629237249493599, + 2.166791819036007, + 2.2658882662653923, + 2.8496142476797104, + 2.6835589669644833, + 2.1657636389136314, + 2.116131130605936, + 2.1198056638240814, + 2.120276913046837, + 2.174698282033205, + 2.130960114300251, + 2.1290071308612823, + 2.7855159714818, + 2.164906822144985, + 2.8400281444191933, + 2.1637831814587116, + 2.824028953909874, + 2.245361916720867, + 2.7501420117914677, + 2.6605590246617794, + 2.6452820748090744, + 2.496717032045126, + 2.479137387126684, + 2.1185469813644886, + 2.1080560982227325, + 2.1002376452088356, + 2.66746012493968, + 2.612655982375145, + 2.598891034722328, + 2.665502019226551, + 2.612084150314331, + 2.126266248524189, + 2.141564153134823, + 2.0826621912419796, + 2.5863833725452423, + 2.163136377930641, + 2.719030249863863, + 2.678165677934885, + 2.1372451446950436, + 2.8495099395513535, + 2.6804087683558464, + 2.603669185191393, + 2.18025129288435, + 2.1442947909235954, + 2.88650905713439, + 2.1044379100203514, + 2.1126489154994488, + 2.1039769053459167, + 2.783224917948246, + 2.175913192331791, + 2.158667892217636, + 2.10653617978096, + 2.4322280660271645, + 2.1232622675597668, + 2.5726696476340294, + 2.209980972111225, + 2.550566103309393, + 2.858133986592293, + 2.858663909137249, + 2.8586718253791332, + 2.126357052475214, + 2.101715188473463, + 2.604836132377386, + 2.2360249422490597, + 2.6113688945770264, + 2.2105006501078606, + 2.133759669959545, + 2.1065250039100647, + 2.704281359910965, + 2.2427374497056007, + 2.178211696445942, + 2.9347240924835205, + 2.675518859177828, + 2.2093085572123528, + 2.1854210644960403, + 2.103520091623068, + 2.7577639557421207, + 2.1263440139591694, + 2.6146359741687775, + 2.818661741912365, + 2.1897670812904835, + 2.622903324663639, + 2.1766158752143383, + 2.8152051381766796, + 2.173237968236208, + 2.0961742848157883, + 2.0820917561650276, + 2.7712900191545486, + 2.1232771687209606, + 2.544150687754154, + 2.580363769084215, + 2.6310179382562637, + 2.158509101718664, + 2.5952490977942944, + 2.591218799352646, + 2.6067630387842655, + 2.5411867536604404, + 2.1192640997469425, + 2.6187370531260967, + 2.0977980457246304, + 2.551042940467596, + 2.132029738277197, + 2.124217338860035, + 2.6007480919361115, + 2.6683593168854713, + 2.1617417223751545, + 2.1404139697551727, + 2.1447069011628628, + 2.8167739510536194, + 2.116270363330841, + 2.786399330943823, + 2.0809839479625225, + 2.183109987527132, + 2.813880331814289, + 2.7465010061860085, + 2.1703578531742096, + 2.031543292105198, + 2.1825251169502735, + 2.150935120880604, + 2.6055071502923965, + 2.128003165125847, + 2.7892100624740124, + 2.110765315592289, + 2.6227738708257675, + 2.0899698138237, + 2.1055848337709904, + 2.8390740044414997, + 2.65496876090765, + 2.1611368283629417, + 2.104870043694973, + 2.6782271452248096, + 2.1726517006754875, + 2.0861499942839146, + 2.260045148432255, + 2.5734552182257175, + 2.2308253683149815, + 2.0439992658793926, + 2.8363149613142014, + 2.1473821252584457, + 2.8528282418847084, + 2.239556983113289, + 2.386842854321003, + 2.1456130780279636, + 2.169033046811819, + 2.7608140371739864, + 2.0577642135322094, + 1.978929154574871, + 2.5739427655935287, + 2.6335008442401886, + 2.633345313370228, + 2.868001814931631, + 2.249238081276417, + 2.5901170447468758, + 2.0435629412531853, + 2.043365966528654, + 2.2551408037543297, + 2.111901994794607, + 2.127395011484623, + 2.5558751076459885, + 2.175254747271538, + 2.2076168097555637, + 2.222607843577862, + 2.0938008092343807, + 2.671605907380581, + 2.8944923542439938, + 2.0763417705893517, + 2.5220061652362347, + 2.057821024209261, + 2.5910846889019012, + 2.1931189112365246, + 2.1305792033672333, + 2.5673620402812958, + 2.078081015497446, + 2.1029142662882805, + 2.683748956769705, + 2.1122442558407784, + 2.045456785708666, + 2.8408518992364407, + 2.142478246241808, + 2.5973771698772907, + 2.0381868816912174, + 2.168383449316025, + 2.364428248256445, + 2.582103945314884, + 2.890520729124546, + 2.6963171549141407, + 2.2496329620480537, + 2.0692916586995125, + 2.8333659283816814, + 2.8596757911145687, + 2.6790881529450417, + 2.1961447782814503, + 2.101034391671419, + 2.6288409717381, + 2.176386769860983, + 2.0690257661044598, + 2.4816980585455894, + 2.015435602515936, + 2.4975743144750595, + 2.6776278391480446, + 2.0891930907964706, + 2.7189282700419426, + 2.471467014402151, + 2.570959273725748, + 2.466198056936264, + 2.0404430106282234, + 2.193502150475979, + 2.097761258482933, + 2.609189599752426, + 2.742466051131487, + 2.2347955964505672, + 2.6056626811623573, + 2.1723899990320206, + 2.254514954984188, + 2.696707844734192, + 2.179828006774187, + 2.027814742177725, + 2.7740150690078735, + 2.1446500904858112, + 2.573417965322733, + 2.247870434075594, + 2.137070056051016, + 2.6299310848116875, + 3.0509717762470245, + 2.115034032613039, + 2.610370982438326, + 2.864191308617592, + 2.173005137592554, + 2.614468801766634, + 2.1468051709234715, + 2.0172647200524807, + 2.0164833404123783, + 2.4942271411418915, + 2.059820108115673, + 2.52334913238883, + 2.514455933123827, + 2.7636950835585594, + 2.8965850360691547, + 2.6101619005203247, + 2.196537796407938, + 2.5765649043023586, + 2.1848459728062153, + 2.2563631646335125, + 2.8216377831995487, + 2.675733994692564, + 2.6315320283174515, + 2.6961411349475384, + 2.6057949289679527, + 2.23519466817379, + 2.1720840595662594, + 2.226901240646839, + 2.1032411605119705, + 2.554037608206272, + 2.65228608623147, + 2.1185167133808136, + 2.1272776648402214, + 2.538733184337616, + 2.587287686765194, + 2.657780423760414, + 2.0969551987946033, + 2.601624932140112, + 2.2062351927161217, + 2.5138380005955696, + 2.5812191888689995, + 2.5449986569583416, + 2.15162243694067, + 2.585961949080229, + 2.154067624360323, + 2.91918171569705, + 2.6706610806286335, + 2.5443178601562977, + 2.7184728533029556, + 2.614491619169712, + 2.6232078671455383, + 2.1786238066852093, + 2.2104308009147644, + 2.0164111629128456, + 2.592810895293951, + 2.166581805795431, + 2.1493169479072094, + 2.8163883835077286, + 2.5296369567513466, + 2.5880089960992336, + 2.613196149468422, + 2.610253170132637, + 2.137483097612858, + 2.60009802877903, + 2.5622472167015076, + 2.6069730520248413, + 2.136875409632921, + 2.6183510199189186, + 2.3004389367997646, + 2.475324086844921, + 2.0940429531037807, + 2.000266220420599, + 2.4714982137084007, + 2.1821619011461735, + 2.6034233160316944, + 2.82073300331831, + 2.595412079244852, + 2.2482560016214848, + 2.767259255051613, + 2.6520900428295135, + 2.2676303051412106, + 2.135016955435276, + 2.0654299296438694, + 2.2202078253030777, + 2.8107534162700176, + 2.1981638856232166, + 2.6485780254006386, + 2.108955755829811, + 2.1131220273673534, + 2.1358830854296684, + 2.172481268644333, + 2.6198728010058403, + 2.6206187903881073, + 2.106386236846447, + 2.5240429677069187, + 2.1057017147541046, + 2.163279801607132, + 2.2636870853602886, + 2.061260864138603, + 2.4761208333075047, + 2.7178237214684486, + 2.08343006670475, + 3.011991735547781, + 2.5208210572600365, + 2.036397345364094, + 2.4892748333513737, + 2.00495682656765, + 2.0111165940761566, + 2.6317560113966465, + 2.1573049016296864, + 2.100973855704069, + 2.101537771522999, + 2.0921649411320686 + ], + "lattice": [ + 1.5204441733658314, + 2.0087030716240406, + 1.5772678889334202, + 1.4691678807139397, + 2.134402748197317, + 2.049855887889862, + 2.1098549477756023, + 2.148691099137068, + 1.607365906238556, + 1.5208139084279537, + 2.1611093543469906, + 2.1372688934206963, + 2.0307530649006367, + 1.493609044700861, + 1.9929236732423306, + 2.065784763544798, + 2.1753241308033466, + 1.6279993578791618, + 1.6058022156357765, + 2.089519053697586, + 1.539365854114294, + 1.6428460367023945, + 2.077707089483738, + 1.6196351498365402, + 2.035460900515318, + 1.5802280977368355, + 2.076914068311453, + 1.5942947939038277, + 1.593523658812046, + 2.152190078049898, + 1.5926798805594444, + 1.6851318068802357, + 1.5821089036762714, + 1.6056192107498646, + 1.582978293299675, + 1.5996983274817467, + 1.6237017698585987, + 1.610446721315384, + 1.5539866872131824, + 2.006242983043194, + 2.0425873808562756, + 2.1293051540851593, + 2.1125650964677334, + 1.612548716366291, + 2.09598196670413, + 1.6147228889167309, + 1.583780162036419, + 1.550945919007063, + 1.5700026415288448, + 2.132643945515156, + 2.111754845827818, + 1.6466700471937656, + 2.0760558545589447, + 2.0611886866390705, + 2.097975928336382, + 1.5424122102558613, + 1.9582039676606655, + 2.1590939722955227, + 2.028833143413067, + 1.6309870406985283, + 1.9700471311807632, + 1.5752785839140415, + 1.991874072700739, + 1.7012357711791992, + 2.072419971227646, + 1.607534009963274, + 1.5128129161894321, + 1.4807600528001785, + 1.4729048125445843, + 1.575728878378868, + 2.094034571200609, + 2.086752559989691, + 2.086308319121599, + 2.127741929143667, + 1.6282019205391407, + 2.0602280274033546, + 1.6592550091445446, + 2.0863860845565796, + 2.121048979461193, + 1.5834039077162743, + 1.4929380267858505, + 2.054027281701565, + 1.6142013482749462, + 1.6316338442265987, + 2.100336831063032, + 1.5991879627108574, + 1.6818316653370857, + 1.6114567406475544, + 2.1112682297825813, + 1.6031567938625813, + 2.0776018500328064, + 1.6374439001083374, + 1.6188300214707851, + 2.0656688138842583, + 1.6732849180698395, + 1.5100701712071896, + 1.5034382231533527, + 1.5687081031501293, + 2.0811110734939575, + 2.0865187980234623, + 1.544963102787733, + 1.586622092872858, + 1.6327346675097942, + 1.6592848114669323, + 2.150441985577345, + 2.1353689953684807, + 2.071500290185213, + 1.622254028916359, + 2.1017719991505146, + 2.058256883174181, + 2.1114330738782883, + 2.137335017323494, + 2.182269934564829, + 1.515055075287819, + 1.492493785917759, + 1.6471450217068195, + 1.6532549634575844, + 1.940322108566761, + 2.1346318535506725, + 1.6142441891133785, + 2.0847157575190067, + 1.6366969794034958, + 1.6626408323645592, + 1.605047844350338, + 2.0948941819369793, + 2.2042347118258476, + 1.6550649888813496, + 1.5699900686740875, + 2.042186912149191, + 1.5158322639763355, + 1.5188921242952347, + 1.6397777944803238, + 1.6538538038730621, + 2.044267952442169, + 2.124419901520014, + 1.5649031847715378, + 1.6513718292117119, + 2.0737317390739918, + 2.075089141726494, + 2.1058651618659496, + 1.5655779279768467, + 1.6018892638385296, + 2.122162841260433, + 2.0512277260422707, + 2.134727779775858, + 1.5904358588159084, + 1.6148551367223263, + 2.0854538306593895, + 2.103819977492094, + 1.6198791563510895, + 2.088751643896103, + 1.6760188154876232, + 1.6103819943964481, + 1.5716268680989742, + 2.1092817187309265, + 2.0960411056876183, + 2.192780841141939, + 1.5993067063391209, + 1.5780809335410595, + 1.6706590540707111, + 2.0248512737452984, + 2.0824959501624107, + 1.6663200221955776, + 2.1161315962672234, + 2.1844329312443733, + 2.0661097951233387, + 1.6120458021759987, + 1.5990594401955605, + 1.641852781176567, + 2.1627149544656277, + 2.039582934230566, + 1.7509511671960354, + 1.5953108668327332, + 1.748186070472002, + 2.1217470057308674, + 1.6084825620055199, + 2.1659666672348976, + 1.7195739783346653, + 1.6048932448029518, + 1.6359449364244938, + 1.5077758580446243, + 1.6021337360143661, + 2.094672992825508, + 1.6329921782016754, + 1.5940931625664234, + 1.607723068445921, + 1.5863291919231415, + 1.6086539253592491, + 2.0524770952761173, + 2.189384773373604, + 1.9975011236965656, + 1.9584372639656067, + 1.470103394240141, + 1.631345134228468, + 2.050126902759075, + 2.1401033736765385, + 2.0560510456562042, + 1.5742811374366283, + 2.188138198107481, + 2.044086344540119, + 1.5354291535913944, + 1.5911823138594627, + 2.0867171697318554, + 2.084671985358, + 2.1170941181480885, + 1.5345988795161247, + 1.6582696698606014, + 2.09821667522192, + 1.5876367688179016, + 1.6135848127305508, + 1.5772823244333267, + 2.0994949154555798, + 1.9421698525547981, + 1.9529280252754688, + 1.6855616122484207, + 2.1638148464262486, + 1.613846980035305, + 1.5679188072681427, + 1.660265028476715, + 1.5132483094930649, + 1.5115044079720974, + 2.17521283775568, + 1.6517243348062038, + 1.5944442711770535, + 1.5569468960165977, + 1.6988120041787624, + 1.9537950865924358, + 1.5498301945626736, + 1.51140708476305, + 1.6188123263418674, + 1.4767521061003208, + 1.4943890273571014, + 1.497398130595684, + 2.1035335958004, + 1.5562898479402065, + 2.1309279836714268, + 1.6290429048240185, + 1.5763789415359497, + 1.984511036425829, + 2.1771807223558426, + 1.5105567872524261, + 1.5935837291181087, + 1.5840120613574982, + 1.667649019509554, + 1.5883552841842175, + 1.6957311891019344, + 1.6904561780393124, + 1.5641269274055958, + 1.5734340995550156, + 1.6098706983029842, + 1.587097067385912, + 1.6287579201161861, + 2.1147532388567924, + 2.0795250311493874, + 2.111306879669428, + 2.120549324899912, + 2.1274741739034653, + 2.144387923181057, + 1.703810878098011, + 2.0674550905823708, + 2.0541013218462467, + 1.6395440325140953, + 1.5833619982004166, + 1.5718545764684677, + 1.5662899240851402, + 2.076149918138981, + 1.7690458334982395, + 1.6656601801514626, + 1.6669589094817638, + 2.095285337418318, + 1.7326879315078259, + 1.5872144140303135, + 2.1277773194015026, + 2.056925557553768, + 1.653541810810566, + 2.0667407661676407, + 2.0754863508045673, + 1.5754099003970623, + 1.587109174579382, + 1.653099898248911, + 1.5151076950132847, + 2.2568898275494576, + 1.507870852947235, + 1.5907026827335358, + 2.1807816810905933, + 1.6687111929059029, + 2.131427638232708, + 2.1564303897321224, + 1.5495838597416878, + 1.5780623070895672, + 2.1300576627254486, + 2.1351613104343414, + 2.041185274720192, + 1.5490110963582993, + 2.0978907123208046, + 2.0819599740207195, + 1.5946142375469208, + 2.100537996739149, + 2.059915103018284, + 1.5669879503548145, + 1.4896788634359837, + 1.629495993256569, + 1.5425668098032475, + 1.5962962061166763, + 1.6456269659101963, + 2.1039829589426517, + 1.73292588442564, + 2.0987181924283504, + 1.623805146664381, + 1.6751061193645, + 1.5685898251831532, + 1.6015269793570042, + 1.5448308549821377, + 1.4886129647493362, + 1.5037371776998043, + 2.027269918471575, + 1.6436423175036907, + 2.059127204120159, + 2.078904304653406, + 1.6450048424303532, + 1.9983281381428242, + 1.7012269236147404, + 2.0955707877874374, + 1.6124406829476357, + 1.6502873040735722, + 1.5885019674897194, + 1.57074723392725, + 2.1031219512224197, + 1.6652317717671394, + 1.6292030923068523, + 1.7151921056210995, + 2.085799816995859, + 2.094157040119171, + 2.0801578648388386, + 1.6325409524142742, + 1.6254428774118423, + 1.651872880756855, + 1.5589972026646137, + 2.1012448705732822, + 2.0787250250577927, + 1.9563068635761738, + 1.5168297104537487, + 1.9417759031057358, + 2.001221291720867, + 1.9978219643235207, + 2.03595869243145, + 2.0793089643120766, + 1.6881716437637806, + 1.5344470739364624, + 2.105382736772299, + 2.2055679000914097, + 1.6154907643795013, + 2.0597181282937527, + 2.072380855679512, + 1.7008516006171703, + 1.5760716050863266, + 1.672122161835432, + 1.5977062284946442, + 1.6306708566844463, + 1.5670722350478172, + 2.015786711126566, + 2.1445821039378643, + 2.17622984200716, + 2.1369829773902893, + 1.5462050214409828, + 1.5190532431006432, + 2.0768470130860806, + 1.6571283340454102, + 1.6360958106815815, + 2.147380728274584, + 2.1042171865701675, + 2.055932767689228, + 2.0443457178771496, + 2.046446781605482, + 1.661650836467743, + 2.131845336407423, + 1.6229311004281044, + 1.5694387257099152, + 1.6236016526818275, + 2.1290620788931847, + 2.0017758943140507, + 1.6416669823229313, + 2.0965449512004852, + 2.074724994599819, + 1.6131768934428692, + 1.59506406635046, + 1.6293399967253208, + 2.1120449528098106, + 2.073979005217552, + 1.6794037073850632, + 1.6419277526438236, + 2.064534928649664, + 2.212447114288807, + 2.1799588575959206, + 2.1140328608453274, + 1.6367719508707523, + 1.6581169329583645, + 1.6918019391596317, + 2.1779080852866173, + 1.6111098229885101 + ], + "library": [ + 1.487733330577612, + 1.759782899171114, + 1.72806391492486, + 2.14580912142992, + 1.616092398762703, + 1.6751810908317566, + 2.1563521586358547, + 1.6051181592047215, + 2.184162847697735, + 1.6568289138376713, + 1.7247251234948635, + 2.12452607229352, + 1.6656918451189995, + 2.17863405123353, + 2.203504089266062, + 2.1783667616546154, + 2.1160650067031384, + 1.5166332013905048, + 1.5220660716295242, + 1.4923638664186, + 1.508068758994341, + 2.085022162646055, + 2.099590841680765, + 1.6490300185978413, + 2.0896513015031815, + 1.6097407788038254, + 2.223776653409004, + 1.6358126886188984, + 2.0584790036082268, + 1.6177701763808727, + 1.5817866660654545, + 1.7354912124574184, + 2.0885057747364044, + 1.7041941173374653, + 2.164015080779791, + 2.0713736303150654, + 2.2119921632111073, + 2.2227680310606956, + 1.5716692432761192, + 1.651708036661148, + 1.5028426423668861, + 2.118878997862339, + 1.512920018285513, + 2.1295580081641674, + 1.682440284639597, + 1.6089039854705334, + 2.003610599786043, + 1.6337418928742409, + 1.5263226814568043, + 1.473716925829649, + 2.1461262367665768, + 2.1864506416022778, + 1.573869027197361, + 2.1069939248263836, + 2.181685995310545, + 1.6089621931314468, + 1.6150688752532005, + 2.1039280109107494, + 2.1506850607693195, + 1.6671991907060146, + 1.5104031190276146, + 1.5947259962558746, + 1.5812991186976433, + 2.1363073028624058, + 1.6074827872216702, + 2.123749814927578, + 1.6476670280098915, + 1.6376557759940624, + 2.1237069740891457, + 1.5868181362748146, + 1.6414308920502663, + 2.121805679053068, + 2.1122051402926445, + 1.6294210217893124, + 2.0106411539018154, + 1.984728965908289, + 1.58383185043931, + 1.5995418652892113, + 1.4687199145555496, + 2.0580110140144825, + 2.0135827362537384, + 2.20272084698081, + 1.5963409096002579, + 1.633129082620144, + 2.161364071071148, + 1.6200062818825245, + 1.74030102789402, + 2.1708067506551743, + 2.139196265488863, + 1.601919997483492, + 1.593416091054678, + 1.6042296774685383, + 1.6231648623943329, + 2.061039675027132, + 1.6269632615149021, + 1.7190962098538876, + 2.137277275323868, + 1.6659200191497803, + 2.1216878667473793, + 1.5824036672711372, + 1.4919671230018139, + 1.485742162913084, + 1.4465558342635632, + 1.993219368159771, + 2.0522326231002808, + 1.42707210034132, + 2.092192880809307, + 1.6165059059858322, + 1.5934677794575691, + 2.109833061695099, + 2.0777550525963306, + 1.9450979307293892, + 1.5254453755915165, + 2.064016181975603, + 2.104670275002718, + 1.5928293578326702, + 2.0610340870916843, + 2.036658115684986, + 2.0620119757950306, + 1.5797181986272335, + 2.0041470415890217, + 1.66301429271698, + 1.5680869109928608, + 1.5673348680138588, + 1.7030858434736729, + 2.109039109200239, + 1.5082256868481636, + 1.5228153206408024, + 2.0019090734422207, + 1.9803280010819435, + 1.5591969713568687, + 1.5788013115525246, + 1.5292121097445488, + 1.4401450753211975, + 1.5115868300199509, + 2.132963854819536, + 2.072365954518318, + 1.669256016612053, + 1.6559022478759289, + 1.6389796510338783, + 1.5009716153144836, + 2.0945691503584385, + 2.1336949430406094, + 2.1563232876360416, + 1.4390270225703716, + 1.5203878283500671, + 1.4500278048217297, + 1.5288181602954865, + 1.6197022050619125, + 2.0781480707228184, + 2.1155020222067833, + 2.0632431842386723, + 1.6987868584692478, + 2.1386779844760895, + 2.2850572131574154, + 1.6709021292626858, + 2.101429272443056, + 2.137210685759783, + 1.6093743033707142, + 1.605852972716093, + 1.5407749451696873, + 1.6086497344076633, + 1.5906142070889473, + 1.6667898744344711, + 1.5417849645018578, + 1.6345670446753502, + 1.694404985755682, + 2.0998697727918625, + 2.1648798137903214, + 2.0466349087655544, + 1.5568048693239689, + 2.1048318594694138, + 1.6189981251955032, + 2.066683955490589, + 1.628359779715538, + 2.036889549344778, + 1.6120551154017448, + 1.60672003403306, + 1.586702186614275, + 1.5646540559828281, + 1.5015690587460995, + 1.671601552516222, + 2.1178689785301685, + 1.5592272393405437, + 1.533755101263523, + 2.014993689954281, + 1.4355918392539024, + 1.9592000171542168, + 1.516479067504406, + 1.4986461028456688, + 1.9969888962805271, + 1.7474298365414143, + 1.6383463516831398, + 1.6498211771249771, + 1.6724960878491402, + 1.4864304102957249, + 2.101972233504057, + 2.0527630113065243, + 2.079904079437256, + 1.6068420372903347, + 1.513246912509203, + 1.5771850012242794, + 2.0361999049782753, + 2.112003043293953, + 2.0892461761832237, + 1.6481392085552216, + 1.574378926306963, + 1.6906261444091797, + 1.6352399252355099, + 2.075448166579008, + 1.6516661271452904, + 1.6006892547011375, + 2.100571058690548, + 1.5873806551098824, + 1.6294759698212147, + 1.6403431072831154, + 2.1291212178766727, + 2.1047769114375114, + 2.092104870826006, + 2.167722210288048, + 1.9449838437139988, + 1.9934768788516521, + 1.9974843598902225, + 1.9171000458300114, + 1.5211119316518307, + 2.0903381519019604, + 1.6073384322226048, + 1.597447320818901, + 2.182205207645893, + 1.5706638805568218, + 2.104152925312519, + 2.1210601553320885, + 2.1238811314105988, + 2.198512200266123, + 1.664486713707447, + 2.1122610196471214, + 1.5272279269993305, + 1.4995378442108631, + 1.5606731176376343, + 1.5564369969069958, + 1.4929678291082382, + 2.0342697389423847, + 1.6351151280105114, + 2.0392369478940964, + 1.4955252408981323, + 1.5009287744760513, + 1.5004170127213001, + 1.9092201255261898, + 1.5114238485693932, + 1.6455501317977905, + 1.6685454174876213, + 1.9884421490132809, + 1.4752340503036976, + 1.5256740152835846, + 1.582142896950245, + 1.6212738119065762, + 2.1531181409955025, + 2.0721862092614174, + 1.480231061577797, + 1.4478601515293121, + 1.554063055664301, + 2.0801210775971413, + 1.5983004122972488, + 2.0737512968480587, + 1.642783172428608, + 1.631318125873804, + 1.62470992654562, + 1.5786504372954369, + 2.053836826235056, + 1.6968660056591034, + 1.5363688580691814, + 1.9505517557263374, + 1.9720913842320442, + 1.516119111329317, + 1.964298076927662, + 1.4559682458639145, + 1.650962047278881, + 1.5757051296532154, + 2.024437300860882, + 2.149594947695732, + 1.5547629445791245, + 2.1125441417098045, + 2.134146634489298, + 1.6691507771611214, + 1.6672462224960327, + 2.1529709920287132, + 1.6161520034074783, + 2.0855963230133057, + 2.189556136727333, + 2.1093967370688915, + 1.6825227066874504, + 1.73258688300848, + 2.1419990807771683, + 2.090143971145153, + 1.581481657922268, + 2.1734246984124184, + 1.6184891574084759, + 2.1236902102828026, + 2.1116691641509533, + 1.67036522179842, + 1.492076087743044, + 1.4748279936611652, + 1.4922982081770897, + 1.4827647246420383, + 1.9998699426651, + 2.132582012563944, + 2.07762373611331, + 1.6752351075410843, + 2.090977970510721, + 1.6268729232251644, + 1.6269669868052006, + 1.9921273924410343, + 1.6648550517857075, + 1.5640589408576488, + 2.0821955986320972, + 1.6382611356675625, + 1.5813889913260937, + 1.5545501373708248, + 1.7104879952967167, + 2.135873306542635, + 1.5254439786076546, + 2.2050742991268635, + 1.5881238505244255, + 2.02904362231493, + 1.7494908533990383, + 1.616382971405983, + 1.6105114482343197, + 1.7273607663810253, + 1.6521047800779343, + 1.6720029525458813, + 2.0594028756022453, + 1.5965900383889675, + 1.6200351528823376, + 2.083588857203722, + 2.16210400685668, + 1.7019687220454216, + 2.119117882102728, + 2.1233847364783287, + 2.050673123449087, + 1.5816809609532356, + 1.5343930572271347, + 2.0760763436555862, + 1.593761146068573, + 2.13021133095026, + 1.5342910774052143, + 2.154259942471981, + 1.6604620032012463, + 2.163251396268606, + 2.0270268432796, + 2.085320185869932, + 2.099822275340557, + 1.5904936008155346, + 2.0278161391615868, + 1.5785698778927326, + 2.111786976456642, + 2.059795893728733, + 1.645972952246666, + 1.6836351715028286, + 1.6649197787046432, + 1.6086269170045853, + 1.5200339257717133, + 2.1167309023439884, + 1.660672016441822, + 1.6342690214514732, + 2.0936098881065845, + 2.09392374381423, + 1.66682293638587, + 2.144638914614916, + 2.085006795823574, + 1.5006531029939651, + 2.0325379446148872, + 1.5102522447705269, + 1.6087968833744526, + 1.6503175720572472, + 1.5762192197144032, + 2.0299991592764854, + 1.5427381731569767, + 1.610858365893364, + 1.6002673655748367, + 1.6419440507888794, + 2.0027696155011654, + 1.627231016755104, + 2.0467578433454037, + 1.574964728206396, + 2.0687594078481197, + 1.4720959588885307, + 2.0182812586426735, + 1.5009278431534767, + 2.014259807765484, + 1.6871937550604343, + 2.0699170418083668, + 1.9885781221091747, + 1.6136029735207558, + 1.6797203570604324, + 1.506623812019825, + 2.0664469338953495, + 1.5065213665366173, + 1.5905755572021008, + 1.59746827557683, + 2.101900987327099 + ] + }, + "warm_ms": { + "control": [ + 4.764465149492025, + 3.719465807080269, + 3.8180891424417496 + ], + "exact": [ + 3.313676919788122, + 2.3598261177539825, + 3.134873230010271 + ], + "lattice": [ + 2.3264503106474876, + 1.761128194630146, + 1.6415449790656567 + ], + "library": [ + 2.2769072093069553, + 1.7572930082678795, + 1.7230561934411526 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 3.4793636295944452, + "p10_ms": 3.0467874836176634, + "p90_ms": 4.2980866972357035, + "min_ms": 2.9742238111793995, + "max_ms": 4.919213242828846, + "mean_ms": 3.5372104379348457 + }, + "exact": { + "n": 400, + "median_ms": 2.2667592857033014, + "p10_ms": 2.0940187387168407, + "p90_ms": 2.778671868145466, + "min_ms": 1.978929154574871, + "max_ms": 3.0509717762470245, + "mean_ms": 2.3974381550215185 + }, + "lattice": { + "n": 400, + "median_ms": 1.6727035399526358, + "p10_ms": 1.549526583403349, + "p90_ms": 2.130977949127555, + "min_ms": 1.4691678807139397, + "max_ms": 2.2568898275494576, + "mean_ms": 1.818063260288909 + }, + "library": { + "n": 400, + "median_ms": 1.6692033968865871, + "p10_ms": 1.511570531874895, + "p90_ms": 2.1343193016946316, + "min_ms": 1.42707210034132, + "max_ms": 2.2850572131574154, + "mean_ms": 1.803228899370879 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 2.0800838561583763, + "ci90_low": 1.8930890529382445, + "ci90_high": 2.1286621606964706, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 1.5349506458577988, + "ci90_low": 1.2960235193712193, + "ci90_high": 1.5773665340554164, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.3551470607681544, + "ci90_low": 1.3203578199063144, + "ci90_high": 1.4972671296113367, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 0.9979074934784034, + "ci90_low": 0.9744358373904685, + "ci90_high": 1.0181048943545608, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 2.0844455721119335, + "ci90_low": 1.9092593356292933, + "ci90_high": 2.1292134359950516, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 1.9203704279242735, + "p10": 1.724713516228609, + "p90": 2.1717254689852217 + }, + "minimum_detectable_improvement": 0.3596345041302543, + "compile": { + "control": { + "lower_s": 1.4784519681707025, + "compile_s": 2.5842703608796, + "first_call_s": 0.0037712007761001587, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 7052562.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 4823704, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1033883648, + "rss_after_compile_bytes": 1035546624, + "rss_delta_bytes": 1662976, + "hlo_sha256": "e12992cd44b00503", + "hlo_lines": 21541, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 1.433592801913619, + "compile_s": 2.681963270995766, + "first_call_s": 0.0033431961201131344, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 4054782.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1775832, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1035546624, + "rss_after_compile_bytes": 1037094912, + "rss_delta_bytes": 1548288, + "hlo_sha256": "feaa60c743a173d1", + "hlo_lines": 21435, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 1.4831518363207579, + "compile_s": 2.646355981938541, + "first_call_s": 0.002851975616067648, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3382542.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1037094912, + "rss_after_compile_bytes": 1040728064, + "rss_delta_bytes": 3633152, + "hlo_sha256": "b37c6bee43821d75", + "hlo_lines": 21435, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 1.4502069731242955, + "compile_s": 2.670422475785017, + "first_call_s": 0.0029073720797896385, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 3382542.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1040728064, + "rss_after_compile_bytes": 1042575360, + "rss_delta_bytes": 1847296, + "hlo_sha256": "b37c6bee43821d75", + "hlo_lines": 21435, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ], + "exact": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ], + "lattice": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ], + "library": [ + 7.196577317761015, + -45.87302127443001, + 2.904871458739854, + -801.1656151465147, + -856.2176369539866, + -701.3832757596593, + -791.8603301084569, + -641.0597186366746, + -856.874766532385, + -965.6893581059344, + -601.8962692526686, + 1.491228024977211, + -664.1239657398182, + -4.055811166945713, + -6.531970036750838, + -970.3067931813664 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 7.196577317761015, + "exact": 7.196577317761015, + "lattice": 7.196577317761015, + "library": 7.196577317761015 + } + }, + "cluster_solved": { + "label": "cluster_solved", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 40.51724309101701, + 58.25544195249677, + 40.90398922562599, + 44.23574265092611, + 40.28076492249966, + 45.79113703221083, + 49.13627076894045, + 42.295727878808975, + 60.453256126493216, + 39.66802405193448, + 39.57893094047904, + 40.88995885103941, + 46.59580113366246, + 38.569139782339334, + 61.10263476148248, + 51.068926230072975, + 51.90501315519214, + 37.58694278076291, + 42.83102368935943, + 47.08226956427097, + 42.60930698364973, + 50.849271938204765, + 53.06590907275677, + 50.35030888393521, + 41.603277903050184, + 61.38845719397068, + 46.27325525507331, + 45.995624735951424, + 41.50281473994255, + 55.829936638474464, + 40.7495959661901, + 45.501095708459616, + 48.398992978036404, + 41.5326077491045, + 59.05058979988098, + 47.93816385790706, + 59.94994891807437, + 41.84316657483578, + 52.96074878424406, + 52.29541985318065, + 53.772933781147, + 53.98571444675326, + 41.36130213737488, + 50.46114698052406, + 43.41058386489749, + 59.77034708485007, + 53.83343109861016, + 44.86123286187649, + 51.366663072258234, + 46.73160519450903, + 42.62375133112073, + 49.34703931212425, + 47.586947213858366, + 50.03707204014063, + 60.8889227733016, + 54.396628867834806, + 50.145531073212624, + 65.13843778520823, + 51.28654511645436, + 41.14455496892333, + 49.12754101678729, + 49.720637034624815, + 47.09427896887064, + 51.545338705182076, + 52.55612777546048, + 63.03539639338851, + 63.83551890030503, + 60.59317523613572, + 59.62920794263482, + 62.41443986073136, + 47.67086263746023, + 45.300939586013556, + 38.5014982894063, + 48.097949009388685, + 46.675413846969604, + 49.02705596759915, + 65.87322195991874, + 56.05286592617631, + 45.089669059962034, + 43.55010995641351, + 48.44040796160698, + 47.388289123773575, + 42.73205064237118, + 48.42344392091036, + 52.00275219976902, + 44.39333267509937, + 48.73962979763746, + 61.150754801929, + 48.305707052350044, + 46.48637305945158, + 43.07837598025799, + 53.93566703423858, + 54.7903529368341, + 45.690801460295916, + 62.04105028882623, + 40.14841839671135, + 61.64058297872543, + 48.63779805600643, + 55.92556903138757, + 62.104297801852226, + 42.67346020787954, + 43.90420485287905, + 46.73510231077671, + 49.302986823022366, + 40.38720112293959, + 52.18628980219364, + 37.250871770083904, + 41.88658995553851, + 50.390870310366154, + 54.50450722128153, + 42.12985513731837, + 47.8705121204257, + 40.09404871612787, + 55.13549596071243, + 46.298451256006956, + 43.05465007200837, + 43.50594989955425, + 48.74604195356369, + 42.48264990746975, + 39.60041515529156, + 50.72839139029384, + 44.286600314080715, + 39.993959944695234, + 47.11706796661019, + 58.611668180674314, + 49.58467883989215, + 55.685990024358034, + 61.207607854157686, + 44.810576364398, + 51.33867496624589, + 48.50135324522853, + 51.17125669494271, + 48.205818980932236, + 48.9354282617569, + 41.26008180901408, + 41.70079389587045, + 47.39081999287009, + 48.2319057919085, + 45.87937891483307, + 46.798259019851685, + 46.887185890227556, + 38.02860202267766, + 39.52006809413433, + 50.564120057970285, + 46.52392724528909, + 47.94087680056691, + 39.915616158396006, + 39.544118102639914, + 40.32445000484586, + 60.4719459079206, + 43.150817044079304, + 43.60869014635682, + 42.463329154998064, + 61.42800487577915, + 55.07215391844511, + 47.86326689645648, + 47.85615811124444, + 41.71633394435048, + 59.38524613156915, + 48.01471112295985, + 46.15474632009864, + 46.30065988749266, + 47.80315002426505, + 45.03999277949333, + 41.18158295750618, + 56.91410694271326, + 38.96143287420273, + 53.2456049695611, + 55.03118131309748, + 41.87578381970525, + 54.229036904871464, + 44.156831223517656, + 45.69297702983022, + 41.23990423977375, + 48.76126395538449, + 41.972870007157326, + 53.21170296519995, + 38.52888522669673, + 45.02527043223381, + 63.637816812843084, + 46.66444007307291, + 47.211086843162775, + 54.79896813631058, + 46.34607117623091, + 59.024848975241184, + 63.01250820979476, + 42.82270185649395, + 44.441018253564835, + 41.29061568528414, + 45.35257117822766, + 46.30132019519806, + 50.69945240393281, + 57.435781229287386, + 45.90622382238507, + 49.14584802463651, + 44.146629981696606, + 47.90764069184661, + 44.89031806588173, + 54.27993228659034, + 50.37056980654597, + 56.177370715886354, + 49.297448713332415, + 39.29240116849542, + 46.20717093348503, + 42.62577509507537, + 59.877133928239346, + 55.518866050988436, + 51.07156280428171, + 62.51599406823516, + 40.30062025412917, + 43.59774477779865, + 56.53194384649396, + 38.319652900099754, + 45.95538880676031, + 45.519167091697454, + 51.64819722995162, + 44.89049594849348, + 44.00896327570081, + 54.18979283422232, + 55.09473802521825, + 47.05648822709918, + 46.43210116773844, + 43.21650927886367, + 36.110437009483576, + 43.70545595884323, + 42.138474993407726, + 42.47664986178279, + 47.70653788000345, + 44.20106625184417, + 39.76127319037914, + 60.647898353636265, + 59.08796517178416, + 40.798164904117584, + 47.3285922780633, + 44.27456110715866, + 61.747638043016195, + 43.58069272711873, + 50.8839781396091, + 53.6196306347847, + 42.25753899663687, + 48.92806988209486, + 55.13447383418679, + 55.61283603310585, + 46.3433638215065, + 41.162888053804636, + 58.67668427526951, + 49.359398894011974, + 53.58497705310583, + 41.58887080848217, + 46.219415962696075, + 49.950511660426855, + 50.15983618795872, + 46.849505975842476, + 63.257675152271986, + 52.54168203100562, + 42.426961939781904, + 41.41083173453808, + 62.98456806689501, + 37.775924894958735, + 45.89972272515297, + 37.647328805178404, + 59.63883409276605, + 47.87303600460291, + 38.79982698708773, + 39.85547320917249, + 46.34027322754264, + 46.07512103393674, + 44.600356835871935, + 41.584025137126446, + 46.666279435157776, + 51.77546385675669, + 43.7329332344234, + 54.684193804860115, + 56.69410666450858, + 50.95258913934231, + 49.833938013762236, + 65.15188002958894, + 55.098951794207096, + 57.20367515459657, + 52.74009285494685, + 39.36771163716912, + 46.674048993736506, + 44.36488030478358, + 53.610933013260365, + 52.957204170525074, + 56.06473470106721, + 47.87513101473451, + 50.94805406406522, + 46.11588176339865, + 58.27835900709033, + 46.970569994300604, + 51.27354012802243, + 58.67744097486138, + 39.307058323174715, + 45.857743825763464, + 40.78844701871276, + 49.961418844759464, + 54.2565630748868, + 45.78627971932292, + 45.42721388861537, + 56.037139147520065, + 43.42373786494136, + 62.96824989840388, + 42.73770283907652, + 45.91513192281127, + 51.87487090006471, + 60.572425834834576, + 41.31636256352067, + 51.31595116108656, + 48.43321116641164, + 45.96751928329468, + 40.48865707591176, + 47.006084118038416, + 42.820034082978964, + 49.852240830659866, + 49.688168335705996, + 38.09329681098461, + 45.28958862647414, + 39.00397103279829, + 47.04348091036081, + 44.87765906378627, + 50.169358029961586, + 47.02001390978694, + 38.25006866827607, + 41.811967734247446, + 48.88232797384262, + 41.43234062939882, + 49.148805905133486, + 48.16909600049257, + 43.68834523484111, + 58.72218729928136, + 42.45725832879543, + 56.411105673760176, + 59.58851985633373, + 41.91100783646107, + 54.98094530776143, + 46.019772067666054, + 40.067337453365326, + 47.55472019314766, + 40.559069253504276, + 47.52830183133483, + 58.00008634105325, + 57.75560811161995, + 59.91366319358349, + 42.61241015046835, + 44.06472900882363, + 42.91273094713688, + 47.73535393178463, + 38.84898778051138, + 49.63875189423561, + 45.68153619766235, + 39.991532918065786, + 51.657238975167274, + 50.28037214651704, + 51.90998362377286, + 46.161789912730455, + 51.826943177729845, + 45.28611805289984, + 44.177515897899866, + 44.283218216151, + 51.97153193876147, + 42.922801338136196, + 41.914056055247784, + 55.33822439610958, + 50.412609707564116, + 44.80898613110185, + 59.018262196332216, + 40.9516878426075, + 48.2896501198411, + 45.882734935730696, + 51.06759909540415, + 55.45922415331006, + 52.76988912373781, + 49.50185911729932, + 37.44822461158037, + 41.87046084553003, + 55.93075603246689, + 38.291292265057564, + 41.75336565822363, + 50.25652376934886, + 43.408005964010954, + 44.665555004030466, + 49.44599373266101, + 44.60879322141409, + 49.95346814393997, + 43.15151693299413, + 39.650163147598505, + 44.15803402662277, + 56.96872062981129, + 50.26475293561816, + 61.43076764419675, + 48.90654422342777, + 41.49976093322039, + 49.66716421768069, + 45.14960711821914, + 59.9585878662765, + 52.56711505353451, + 43.006797321140766, + 58.23329230770469, + 47.20086418092251 + ], + "exact": [ + 15.533441212028265, + 19.29231407120824, + 16.195186879485846, + 14.951391611248255, + 18.210745882242918, + 18.47478188574314, + 19.228927325457335, + 17.881063278764486, + 16.74825605005026, + 19.169478211551905, + 15.18158009275794, + 16.8031370267272, + 16.530160792171955, + 20.345204975456, + 21.081416867673397, + 18.841559998691082, + 21.230317186564207, + 20.156607031822205, + 18.41142773628235, + 21.14338707178831, + 15.430978033691645, + 17.128426115959883, + 16.56094193458557, + 17.704531084746122, + 24.578132666647434, + 19.0599518828094, + 20.31220681965351, + 18.565830308943987, + 20.945237949490547, + 19.99550126492977, + 17.21667591482401, + 20.459871273487806, + 21.1681448854506, + 17.939187586307526, + 18.65560282021761, + 17.983948811888695, + 17.704058904200792, + 17.40378327667713, + 18.915520049631596, + 17.40312296897173, + 20.910352002829313, + 17.66292890533805, + 16.620080918073654, + 19.856680184602737, + 18.785961903631687, + 17.82714342698455, + 21.869574207812548, + 22.031288128346205, + 16.977876890450716, + 19.782782066613436, + 19.218083005398512, + 19.9580080807209, + 18.799406941980124, + 17.477752175182104, + 22.19891408458352, + 18.30580784007907, + 19.792546052485704, + 20.677690394222736, + 20.131918136030436, + 16.809610184282064, + 20.92391112819314, + 17.928242217749357, + 22.015892900526524, + 18.341626040637493, + 19.76237678900361, + 16.11901819705963, + 20.249487832188606, + 20.597789902240038, + 18.161223735660315, + 18.55282625183463, + 20.17359435558319, + 19.27037024870515, + 18.89765728265047, + 20.920398645102978, + 16.925769858062267, + 20.66089678555727, + 20.95244126394391, + 19.251725170761347, + 18.751086201518774, + 17.058905214071274, + 21.417716052383184, + 20.97355481237173, + 19.697626121342182, + 19.500538241118193, + 18.2194490917027, + 20.206833258271217, + 19.537874963134527, + 20.729208830744028, + 18.955199047923088, + 22.65198389068246, + 18.06713081896305, + 18.817280884832144, + 17.54544721916318, + 15.784019138664007, + 16.895407810807228, + 17.807786352932453, + 18.225161358714104, + 21.599455270916224, + 16.93833712488413, + 16.29024278372526, + 21.46918000653386, + 20.716294180601835, + 17.297348007559776, + 18.40147376060486, + 14.274321962147951, + 18.410384189337492, + 20.368000026792288, + 21.194937638938427, + 18.524038139730692, + 18.024768214672804, + 17.269975040107965, + 15.852735843509436, + 21.650284063071012, + 19.76718893274665, + 18.96678889170289, + 17.758943140506744, + 17.17754313722253, + 19.876243080943823, + 20.227689761668444, + 19.7747852653265, + 18.516446929425, + 19.08128894865513, + 18.489989452064037, + 16.96477923542261, + 16.262689139693975, + 14.559381175786257, + 17.790918704122305, + 17.8918051533401, + 18.723113927990198, + 20.950315054506063, + 17.744865734130144, + 18.907821271568537, + 18.688031937927008, + 20.476891193538904, + 19.016480073332787, + 18.925771582871675, + 16.466313041746616, + 19.29903496056795, + 19.439926836639643, + 16.068884637206793, + 20.48702398315072, + 18.973194994032383, + 19.834051840007305, + 19.765974022448063, + 19.477127119898796, + 23.110175039619207, + 19.221037160605192, + 20.812802016735077, + 18.161826767027378, + 16.095665749162436, + 19.357062876224518, + 18.238713964819908, + 19.641282968223095, + 19.277204293757677, + 19.86880786716938, + 20.43859101831913, + 21.51831891387701, + 18.892241176217794, + 18.316521774977446, + 17.134795896708965, + 19.354908727109432, + 17.69658923149109, + 17.075967974960804, + 17.393882386386395, + 17.351842019706964, + 21.937698125839233, + 20.060333888977766, + 16.671936959028244, + 14.864621218293905, + 18.816648982465267, + 20.303741097450256, + 17.646893858909607, + 17.850622069090605, + 18.48987489938736, + 18.917074892669916, + 17.272929195314646, + 18.24088580906391, + 21.114018745720387, + 20.404746290296316, + 20.768609829246998, + 18.846416380256414, + 18.053662031888962, + 20.960239227861166, + 19.632063806056976, + 22.22226606681943, + 18.173538148403168, + 21.405174862593412, + 19.375836942344904, + 18.03885167464614, + 18.7637722119689, + 20.809992216527462, + 20.32970217987895, + 16.699514351785183, + 17.399752978235483, + 20.20985633134842, + 16.54773112386465, + 16.934283077716827, + 15.047167893499136, + 19.756190944463015, + 16.431446187198162, + 21.76217595115304, + 14.91351705044508, + 19.636233802884817, + 21.139133721590042, + 19.664905034005642, + 20.78619971871376, + 20.73722705245018, + 19.62605118751526, + 20.075653679668903, + 21.08393795788288, + 17.939914017915726, + 19.735723733901978, + 17.659901175647974, + 18.04522518068552, + 22.28517923504114, + 18.70333729311824, + 19.540677312761545, + 18.150282092392445, + 16.30955096334219, + 18.889999017119408, + 17.34397280961275, + 17.915658187121153, + 18.020744901150465, + 18.046272918581963, + 16.9151253066957, + 15.349408145993948, + 18.256064038723707, + 15.269311610609293, + 16.614073887467384, + 19.905435852706432, + 17.857945058494806, + 18.316517118364573, + 18.061524257063866, + 17.906207125633955, + 19.66586709022522, + 17.555399797856808, + 18.997763749212027, + 20.381574984639883, + 21.04650577530265, + 17.316500656306744, + 20.919925067573786, + 18.625074066221714, + 17.622557934373617, + 19.290084019303322, + 19.079717807471752, + 21.76842326298356, + 19.224319141358137, + 18.915862310677767, + 18.677760381251574, + 16.807566862553358, + 20.592941902577877, + 18.615582957863808, + 19.863072782754898, + 21.719641983509064, + 20.191540010273457, + 17.3647478222847, + 20.99090674892068, + 15.592021867632866, + 16.503635328263044, + 18.99355696514249, + 17.22323428839445, + 21.20846603065729, + 17.46013481169939, + 17.232755199074745, + 16.653987113386393, + 19.07286187633872, + 20.726935006678104, + 20.824238192290068, + 17.376787960529327, + 19.019462168216705, + 17.70339673385024, + 15.911013819277287, + 20.119248423725367, + 19.749899860471487, + 16.372371930629015, + 17.95343868434429, + 17.433656845241785, + 18.333639949560165, + 18.087490927428007, + 18.28214805573225, + 20.99082386121154, + 18.821489065885544, + 15.708465594798326, + 20.879246294498444, + 18.85394798591733, + 22.0085927285254, + 16.48520492017269, + 19.744671881198883, + 17.564037814736366, + 15.964299906045198, + 23.31320010125637, + 15.809902921319008, + 18.85052165016532, + 20.14758065342903, + 18.002241849899292, + 18.99788621813059, + 18.77322793006897, + 21.124740596860647, + 20.578634925186634, + 18.384698778390884, + 19.482559990137815, + 21.24318527057767, + 17.421862576156855, + 19.500880036503077, + 19.459168892353773, + 16.845328267663717, + 17.884037923067808, + 20.47653030604124, + 18.64962512627244, + 18.998110201209784, + 19.291995093226433, + 21.210158709436655, + 14.959211926907301, + 19.057197961956263, + 15.41387289762497, + 22.400042973458767, + 21.779026836156845, + 19.24554817378521, + 16.402128152549267, + 15.46425698325038, + 19.87550687044859, + 19.960966892540455, + 16.16931613534689, + 20.530175883322954, + 20.940813701599836, + 15.482518821954727, + 18.306138925254345, + 19.262453075498343, + 18.86172778904438, + 18.905235920101404, + 20.9056637249887, + 21.9169519841671, + 17.085526138544083, + 19.910541363060474, + 18.813852220773697, + 18.78159958869219, + 19.93987476453185, + 18.260706216096878, + 18.868383020162582, + 18.435599748045206, + 18.702757079154253, + 20.945010241121054, + 15.758635941892862, + 17.903723288327456, + 15.748641919344664, + 17.61828688904643, + 19.171190913766623, + 21.16408199071884, + 21.132498048245907, + 18.280722200870514, + 21.307141054421663, + 17.856253776699305, + 17.917610704898834, + 17.881442327052355, + 20.06753534078598, + 19.238424953073263, + 17.713123932480812, + 21.81561291217804, + 16.783475875854492, + 21.00540278479457, + 19.273560028523207, + 15.883039217442274, + 18.02286598831415, + 19.430236890912056, + 21.975053939968348, + 18.48322106525302, + 16.962504014372826, + 16.488609835505486, + 14.74063005298376, + 20.817593205720186, + 21.971249021589756, + 20.140679087489843, + 17.037009354680777, + 20.473512820899487, + 17.60936575010419, + 17.379632219672203, + 18.02626857534051, + 16.918524634093046, + 15.861222986131907, + 18.983304034918547, + 22.714420221745968, + 16.44207676872611, + 17.70231407135725, + 15.655623748898506, + 18.287746235728264, + 18.546233419328928, + 20.263096783310175, + 16.47574920207262, + 18.43506097793579, + 17.37387478351593, + 17.586948815733194, + 21.856848150491714, + 18.529577180743217, + 19.240187015384436, + 20.705061964690685, + 17.64847105368972, + 21.3949428871274, + 20.497871097177267, + 18.208223395049572, + 17.85650011152029 + ], + "lattice": [ + 10.454254224896431, + 9.216350968927145, + 8.282680064439774, + 10.50913380458951, + 9.254673030227423, + 9.31783439591527, + 9.099616203457117, + 8.587752003222704, + 10.20820764824748, + 9.350109845399857, + 9.491355158388615, + 8.353340905159712, + 9.95278125628829, + 9.234791155904531, + 10.173288639634848, + 9.0617211535573, + 10.155969299376011, + 10.063349269330502, + 8.224551100283861, + 10.254176799207926, + 10.850941762328148, + 8.547395933419466, + 9.635689668357372, + 8.849830366671085, + 9.475322905927896, + 8.910413831472397, + 9.211222175508738, + 8.013760205358267, + 8.009401615709066, + 9.095125831663609, + 9.929738938808441, + 7.947646081447601, + 10.644399095326662, + 10.121517814695835, + 8.03980603814125, + 10.087653994560242, + 8.368347771465778, + 8.845684118568897, + 8.802059106528759, + 9.336697869002819, + 10.136302094906569, + 9.945251978933811, + 8.117166347801685, + 11.342132929712534, + 9.343123994767666, + 9.574856143444777, + 7.717621047049761, + 8.715448901057243, + 11.406198609620333, + 10.084645822644234, + 7.929854094982147, + 7.915481925010681, + 9.938442148268223, + 9.664630983024836, + 7.4943918734788895, + 9.148151148110628, + 9.212719276547432, + 8.984274696558714, + 9.326511062681675, + 8.024555630981922, + 12.102282140403986, + 8.20735888555646, + 11.885337997227907, + 8.598424959927797, + 10.42137062177062, + 7.497538346797228, + 8.813524153083563, + 10.038548149168491, + 9.596414864063263, + 8.796866051852703, + 10.10895799845457, + 8.237866219133139, + 8.131214883178473, + 7.925457786768675, + 9.636476170271635, + 10.859584901481867, + 9.654141962528229, + 8.358481340110302, + 10.262359865009785, + 9.57953929901123, + 10.470314882695675, + 9.402495808899403, + 7.984442170709372, + 9.849763941019773, + 9.483509231358767, + 10.338112711906433, + 8.149802684783936, + 10.406151879578829, + 7.8025199472904205, + 7.792405784130096, + 9.275782853364944, + 8.957935031503439, + 8.523627184331417, + 9.971232619136572, + 9.976225905120373, + 8.091806899756193, + 7.551675196737051, + 8.268272038549185, + 7.461583707481623, + 9.764308109879494, + 9.708540048450232, + 10.350726079195738, + 9.655860718339682, + 7.316289935261011, + 8.042252156883478, + 8.286106865853071, + 9.82686411589384, + 9.134658146649599, + 7.742725778371096, + 10.117953177541494, + 10.641514789313078, + 10.095322970300913, + 9.126028046011925, + 10.096090845763683, + 10.237326845526695, + 9.958856739103794, + 7.812137249857187, + 9.267794899642467, + 10.405716020613909, + 9.785614907741547, + 10.318418964743614, + 10.690093040466309, + 9.092370048165321, + 9.381108917295933, + 8.726253174245358, + 8.822987787425518, + 9.305691812187433, + 7.911921013146639, + 9.053189307451248, + 9.953598026186228, + 9.331605862826109, + 8.888585027307272, + 9.993576910346746, + 9.836813900619745, + 7.339868228882551, + 9.526294656097889, + 9.033002890646458, + 7.766205817461014, + 8.773045148700476, + 9.737708140164614, + 9.03409393504262, + 8.374498691409826, + 9.982363786548376, + 9.740487206727266, + 8.282128255814314, + 10.015095118433237, + 9.47878509759903, + 8.76173609867692, + 8.31615924835205, + 10.259382892400026, + 9.996789041906595, + 10.03939425572753, + 7.888699881732464, + 7.534970063716173, + 7.777540944516659, + 10.525966994464397, + 8.833060972392559, + 9.838492143899202, + 7.900174241513014, + 8.279336150735617, + 9.301688987761736, + 8.696591015905142, + 7.628363091498613, + 10.018741246312857, + 8.96323611959815, + 8.449574001133442, + 9.06987302005291, + 9.960615076124668, + 9.601887315511703, + 7.768587209284306, + 8.65541910752654, + 8.813583292067051, + 8.912593126296997, + 8.1637860275805, + 9.36436327174306, + 10.348572861403227, + 7.876020856201649, + 10.08229423314333, + 8.396267890930176, + 9.824786335229874, + 10.290737729519606, + 8.753383066505194, + 8.45439825206995, + 9.164480026811361, + 10.54491801187396, + 8.016474079340696, + 10.007234755903482, + 9.211441036313772, + 10.091603267937899, + 10.199110954999924, + 8.279583882540464, + 10.526689700782299, + 9.560867212712765, + 8.546572644263506, + 9.910170920193195, + 9.91629296913743, + 8.669542148709297, + 10.05259994417429, + 8.382316213101149, + 7.838452234864235, + 10.76735369861126, + 9.228486102074385, + 7.449022028595209, + 9.697871282696724, + 7.7087790705263615, + 8.03730171173811, + 9.074585977941751, + 9.541126899421215, + 8.3953901194036, + 8.000900037586689, + 9.719260036945343, + 9.857249911874533, + 10.478695388883352, + 7.292367052286863, + 8.257093839347363, + 9.676973335444927, + 9.082676842808723, + 9.367592167109251, + 7.770115043967962, + 8.810014929622412, + 8.875132072716951, + 9.874558076262474, + 9.903210680931807, + 9.970324113965034, + 7.292139809578657, + 8.935443125665188, + 7.809479720890522, + 8.175073191523552, + 7.64464819803834, + 9.626213926821947, + 8.733788970857859, + 9.633226785808802, + 8.756559807807207, + 9.684743359684944, + 10.099477134644985, + 9.484529960900545, + 8.269438985735178, + 7.427969016134739, + 8.019855711609125, + 10.125559754669666, + 10.197002906352282, + 7.574833929538727, + 7.767389994114637, + 7.651480846107006, + 8.306422736495733, + 7.692198734730482, + 9.229390881955624, + 8.149120025336742, + 7.464786991477013, + 8.93742498010397, + 9.713585022836924, + 7.576937787234783, + 8.24267603456974, + 7.1608759462833405, + 8.203101344406605, + 10.634665377438068, + 9.174675215035677, + 8.926390670239925, + 9.319572243839502, + 12.697468977421522, + 10.268011130392551, + 10.530801024287939, + 9.795235004276037, + 9.601118043065071, + 9.745122399181128, + 9.83094796538353, + 8.256946224719286, + 7.883673999458551, + 8.442861028015614, + 7.358855102211237, + 7.9564061015844345, + 10.436638724058867, + 10.24560909718275, + 9.421676862984896, + 7.967523764818907, + 10.048109106719494, + 8.270406164228916, + 10.519103147089481, + 9.332691319286823, + 10.045544244349003, + 9.432883933186531, + 8.623854257166386, + 10.178679134696722, + 9.712767787277699, + 9.041861165314913, + 9.953503962606192, + 8.807470090687275, + 11.377527844160795, + 8.088780101388693, + 8.957814890891314, + 10.38474403321743, + 8.857245091348886, + 9.2269042506814, + 8.022699039429426, + 9.487951174378395, + 9.424446150660515, + 8.324593771249056, + 9.815917816013098, + 9.262981358915567, + 10.18956582993269, + 10.51811408251524, + 8.170702960342169, + 10.354195721447468, + 8.268902078270912, + 9.530382230877876, + 10.663808323442936, + 8.474715985357761, + 9.574259165674448, + 8.050037082284689, + 9.114908054471016, + 8.356525097042322, + 8.867527358233929, + 8.660786785185337, + 8.696217089891434, + 8.057934697717428, + 9.668053593486547, + 8.373526856303215, + 10.65414771437645, + 9.725809097290039, + 10.074565187096596, + 9.347729850560427, + 9.941034950315952, + 7.9114087857306, + 10.746241547167301, + 10.359333362430334, + 8.669857867062092, + 8.352717850357294, + 8.956228848546743, + 9.539119899272919, + 8.611269760876894, + 10.843648109585047, + 10.535640642046928, + 8.290340192615986, + 9.193269070237875, + 8.07490898296237, + 7.917864713817835, + 7.739088032394648, + 8.405209984630346, + 8.01127403974533, + 8.400358259677887, + 10.491459164768457, + 8.895225822925568, + 10.115864221006632, + 10.031489189714193, + 9.485935792326927, + 9.113817010074854, + 10.263062082231045, + 9.911191184073687, + 8.141625206917524, + 9.823982138186693, + 8.321869187057018, + 9.052049834281206, + 9.804522152990103, + 9.153865277767181, + 9.29931877180934, + 9.543644730001688, + 9.503315202891827, + 8.330945391207933, + 7.905958220362663, + 9.881010744720697, + 10.739661287516356, + 7.5155640952289104, + 8.352219127118587, + 8.436951786279678, + 10.175833012908697, + 8.081641979515553, + 9.223366156220436, + 8.63327318802476, + 8.765148930251598, + 10.147165041416883, + 10.098319966346025, + 10.39090333506465, + 8.349345065653324, + 8.82094819098711, + 10.064446832984686, + 8.01957305520773, + 9.982971008867025, + 8.722959086298943, + 7.415696047246456, + 8.170874789357185, + 9.318763855844736, + 10.040828958153725, + 8.711614646017551, + 8.21689935401082, + 7.660076953470707, + 8.665921166539192, + 10.28713583946228, + 9.377322159707546, + 9.835174307227135, + 9.387565776705742, + 7.347481790930033, + 8.114404045045376, + 9.29953483864665, + 8.249549195170403, + 10.345092043280602, + 8.509972132742405, + 9.840327315032482, + 8.107865229249, + 7.808911148458719, + 9.912824723869562 + ], + "library": [ + 8.89928825199604, + 8.82373470813036, + 8.163436781615019, + 9.174820967018604, + 10.281552094966173, + 10.735344607383013, + 9.005044121295214, + 10.6052802875638, + 8.627641014754772, + 7.587728090584278, + 9.825279004871845, + 10.155828669667244, + 9.010592009872198, + 10.01245528459549, + 9.80074005201459, + 8.22174921631813, + 9.042498655617237, + 10.612837970256805, + 9.371849242597818, + 10.048000141978264, + 8.78443568944931, + 9.02514811605215, + 9.242269676178694, + 8.322088979184628, + 10.250521823763847, + 10.100285056978464, + 9.58146806806326, + 8.031274657696486, + 7.862008176743984, + 7.973351050168276, + 8.607490453869104, + 9.738753084093332, + 9.97562101110816, + 9.081423748284578, + 8.05964320898056, + 7.787846960127354, + 9.861124213784933, + 8.524090982973576, + 10.455353185534477, + 9.960289113223553, + 9.303153026849031, + 8.203613106161356, + 7.177864667028189, + 8.185364305973053, + 10.440167039632797, + 10.046461131423712, + 8.398534264415503, + 9.499580133706331, + 10.688726790249348, + 8.685739245265722, + 10.53022500127554, + 9.898914955556393, + 10.255600791424513, + 8.65033408626914, + 7.782170083373785, + 9.759961161762476, + 8.400910068303347, + 8.309066761285067, + 8.354661986231804, + 9.755580686032772, + 9.273711126297712, + 9.993432089686394, + 8.470059838145971, + 8.73095728456974, + 10.132771916687489, + 7.9156323336064816, + 8.748408872634172, + 8.074200246483088, + 9.82674304395914, + 10.288574267178774, + 8.342344779521227, + 9.709464851766825, + 10.095302015542984, + 7.630217354744673, + 10.701947845518589, + 7.570432033389807, + 9.723343886435032, + 9.986741933971643, + 9.335096925497055, + 10.116131976246834, + 9.07632103189826, + 10.763560887426138, + 9.981077164411545, + 10.113704018294811, + 9.955751243978739, + 9.856418706476688, + 7.348794024437666, + 10.771709959954023, + 10.228781029582024, + 9.227639995515347, + 10.02664165571332, + 8.369648363441229, + 10.280176065862179, + 10.928027797490358, + 8.08626925572753, + 8.097261190414429, + 8.660973981022835, + 9.730841964483261, + 9.483943227678537, + 8.425598964095116, + 9.909576270729303, + 10.351383592933416, + 8.943561930209398, + 8.554430212825537, + 10.241616051644087, + 10.280841961503029, + 9.753467980772257, + 9.816511999815702, + 9.396832436323166, + 8.009158074855804, + 8.6985700763762, + 7.965632248669863, + 7.547876797616482, + 10.091497097164392, + 10.47188276425004, + 9.245231281965971, + 9.963700082153082, + 7.779862731695175, + 7.571553345769644, + 8.504291996359825, + 9.896514005959034, + 9.410378988832235, + 8.407505229115486, + 8.77859117463231, + 8.203196339309216, + 9.493061807006598, + 9.013686329126358, + 10.15867292881012, + 7.638285867869854, + 9.429323021322489, + 8.999276906251907, + 10.369958821684122, + 9.057454764842987, + 8.901007939130068, + 9.71186999231577, + 8.000669069588184, + 7.3170131072402, + 10.280679911375046, + 8.463238831609488, + 8.58184602111578, + 7.852879818528891, + 9.045465849339962, + 7.594915106892586, + 8.329525124281645, + 8.368576876819134, + 10.107571259140968, + 10.178337339311838, + 8.976700250059366, + 9.55958105623722, + 7.962626405060291, + 10.34046895802021, + 8.105956017971039, + 10.278176981955767, + 7.971631828695536, + 7.889541797339916, + 9.161164984107018, + 9.756515733897686, + 8.169666863977909, + 7.910396903753281, + 7.9859960824251175, + 8.26630461961031, + 7.976741064339876, + 8.073304779827595, + 10.276332031935453, + 8.68029985576868, + 8.487711194902658, + 9.174908977001905, + 9.668632876127958, + 8.19526519626379, + 8.545977994799614, + 9.82843479141593, + 10.035092942416668, + 7.911958731710911, + 8.960117120295763, + 7.878100033849478, + 9.458318818360567, + 9.030862245708704, + 8.056442718952894, + 9.029035922139883, + 8.184782695025206, + 9.742928203195333, + 10.047500021755695, + 11.035728733986616, + 10.392806027084589, + 7.736343890428543, + 9.120845701545477, + 9.814933873713017, + 10.01481106504798, + 9.689244907349348, + 8.888697251677513, + 7.839447818696499, + 10.08072029799223, + 7.7934530563652515, + 8.806227706372738, + 9.896345902234316, + 8.432171773165464, + 9.641735348850489, + 10.272936895489693, + 10.16995869576931, + 8.187393192201853, + 9.426238015294075, + 7.320548873394728, + 8.580995723605156, + 8.594584185630083, + 9.52791003510356, + 8.20280984044075, + 9.686393197625875, + 9.82292415574193, + 10.592319071292877, + 8.820205926895142, + 7.90247181430459, + 10.715483222156763, + 9.483028668910265, + 7.64810387045145, + 10.142310988157988, + 9.357317816466093, + 8.736995048820972, + 8.70727002620697, + 9.759260807186365, + 9.414245840162039, + 10.155568830668926, + 8.705620188266039, + 8.259736932814121, + 10.205525439232588, + 8.089720271527767, + 9.522547014057636, + 9.65762510895729, + 8.650372736155987, + 9.973347187042236, + 8.339541964232922, + 10.136875789612532, + 9.177079889923334, + 10.06143819540739, + 9.798602666705847, + 10.047764051705599, + 8.301868103444576, + 8.3539760671556, + 8.504088036715984, + 9.584881830960512, + 9.586646221578121, + 9.666552767157555, + 10.303176008164883, + 8.337863720953465, + 8.635069709271193, + 9.482335299253464, + 9.70460707321763, + 10.001109912991524, + 7.947199046611786, + 9.505767840892076, + 7.873850874602795, + 9.086697828024626, + 8.491084445267916, + 8.877553977072239, + 8.385749999433756, + 7.661537267267704, + 9.634152986109257, + 8.631907869130373, + 10.491434019058943, + 9.462969843298197, + 10.49591414630413, + 8.04649107158184, + 10.348649229854345, + 9.1672339476645, + 9.779354091733694, + 10.4007120244205, + 8.561661932617426, + 8.710515219718218, + 8.820478338748217, + 8.265252690762281, + 7.3883929289877415, + 7.854201830923557, + 8.766928687691689, + 9.189138188958168, + 10.300830937922, + 7.712522987276316, + 8.40546190738678, + 9.107544086873531, + 10.00041514635086, + 9.134512860327959, + 8.882851339876652, + 10.518526658415794, + 10.284067131578922, + 9.029252920299768, + 9.612382855266333, + 8.56351898983121, + 8.035021834075451, + 9.375917725265026, + 10.059474967420101, + 10.279994923621416, + 8.666237816214561, + 7.947961334139109, + 9.745892137289047, + 8.391296956688166, + 9.74345114082098, + 10.225721169263124, + 9.215445257723331, + 9.084064979106188, + 7.814959157258272, + 9.622243698686361, + 10.187623091042042, + 10.434277355670929, + 8.497379720211029, + 8.257926907390356, + 8.47466615960002, + 8.587228134274483, + 8.067009039223194, + 7.922186050564051, + 9.952662978321314, + 8.330047130584717, + 9.544321801513433, + 8.600140921771526, + 7.463597692549229, + 8.315494284033775, + 10.214855894446373, + 8.445932064205408, + 8.21899576112628, + 7.898191921412945, + 8.340213913470507, + 9.309221990406513, + 8.95497715100646, + 7.509151939302683, + 9.772537741810083, + 9.04562370851636, + 7.300438825041056, + 10.029842145740986, + 7.3713622987270355, + 9.530483279377222, + 10.141970124095678, + 9.472029749304056, + 7.7222841791808605, + 10.32054703682661, + 9.252178017050028, + 10.199605952948332, + 9.64110717177391, + 7.539430167526007, + 10.693732183426619, + 7.615862879902124, + 9.05000139027834, + 9.470521006733179, + 9.188129100948572, + 10.379241779446602, + 8.5685346275568, + 10.250214952975512, + 7.89016904309392, + 10.76271990314126, + 10.389386210590601, + 8.339975029230118, + 9.668790269643068, + 8.027432952076197, + 8.491443935781717, + 7.647236809134483, + 8.044505957514048, + 9.562480729073286, + 8.084815926849842, + 8.088964968919754, + 10.811778716742992, + 9.139656089246273, + 8.38411320000887, + 9.454315062612295, + 10.596847161650658, + 9.95196821168065, + 8.516655769199133, + 8.87295976281166, + 9.684395045042038, + 8.223521057516336, + 8.389974944293499, + 7.257550954818726, + 9.890318382531404, + 8.839562069624662, + 8.16335016861558, + 10.342101100832224, + 9.161292109638453, + 8.202424738556147, + 8.188750129193068, + 7.954652886837721, + 7.88135826587677, + 9.894819930195808, + 9.060476906597614, + 7.938369642943144, + 10.059205815196037, + 7.840953301638365, + 9.254004806280136, + 10.402906220406294, + 8.4397760219872, + 9.706420823931694, + 8.08216305449605, + 9.091518819332123, + 7.814826909452677, + 9.656761772930622, + 9.210919961333275, + 8.790394756942987, + 9.005236905068159, + 10.093127377331257, + 9.893602225929499, + 8.71119974181056, + 9.554389864206314, + 10.3669841773808, + 9.074742905795574, + 9.572674985975027, + 8.57221707701683 + ] + }, + "warm_ms": { + "control": [ + 52.14257771149278, + 52.80226143077016, + 38.50571904331446 + ], + "exact": [ + 21.950969006866217, + 17.970453947782516, + 20.049589220434427 + ], + "lattice": [ + 11.16598816588521, + 10.891350917518139, + 8.791507221758366 + ], + "library": [ + 9.975952096283436, + 10.273852851241827, + 8.255365770310163 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 47.358440700918436, + "p10_ms": 40.51438448950648, + "p90_ms": 59.01892087422311, + "min_ms": 36.110437009483576, + "max_ms": 65.87322195991874, + "mean_ms": 48.43887796276249 + }, + "exact": { + "n": 400, + "median_ms": 18.815250601619482, + "p10_ms": 16.463889414444566, + "p90_ms": 21.13316161558032, + "min_ms": 14.274321962147951, + "max_ms": 24.578132666647434, + "mean_ms": 18.805540750036016 + }, + "lattice": { + "n": 400, + "median_ms": 9.211331605911255, + "p10_ms": 7.882908685132861, + "p90_ms": 10.345440125092864, + "min_ms": 7.1608759462833405, + "max_ms": 12.697468977421522, + "mean_ms": 9.141768246190622 + }, + "library": { + "n": 400, + "median_ms": 9.085381403565407, + "p10_ms": 7.890106318518519, + "p90_ms": 10.280912974849343, + "min_ms": 7.177864667028189, + "max_ms": 11.035728733986616, + "mean_ms": 9.10019508562982 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 5.141324048145956, + "ci90_low": 5.05229055074586, + "ci90_high": 5.2612560773443455, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 2.517024179143389, + "ci90_low": 2.480964952479783, + "ci90_high": 2.564755246742682, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 2.0426200474147556, + "ci90_low": 2.012770902745669, + "ci90_high": 2.078787680186054, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 0.9863266020881257, + "ci90_low": 0.9720527689461754, + "ci90_high": 1.009579887171376, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 5.212597974404619, + "ci90_low": 5.104943846995373, + "ci90_high": 5.301859064124905, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 5.199168222387844, + "p10": 4.906861033777514, + "p90": 5.443210692287453 + }, + "minimum_detectable_improvement": 0.39073364981710146, + "compile": { + "control": { + "lower_s": 30.57827163906768, + "compile_s": 22.76702301716432, + "first_call_s": 0.0492041208781302, + "trace_calls": 12, + "step0_rows": [ + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507 + ], + "flops": 139442208.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 91549592, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1038745600, + "rss_after_compile_bytes": 1899597824, + "rss_delta_bytes": 860852224, + "hlo_sha256": "f84890e5c892a350", + "hlo_lines": 62907, + "hlo_large_constants": 2 + }, + "exact": { + "lower_s": 29.249707127921283, + "compile_s": 23.8902900936082, + "first_call_s": 0.022050086874514818, + "trace_calls": 12, + "step0_rows": [ + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085 + ], + "flops": 64964724.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 40435352, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1846009856, + "rss_after_compile_bytes": 1997926400, + "rss_delta_bytes": 151916544, + "hlo_sha256": "7349928727ca868e", + "hlo_lines": 62768, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 29.364017829764634, + "compile_s": 24.394006681162864, + "first_call_s": 0.012019227258861065, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 39473500.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22635480, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 1969643520, + "rss_after_compile_bytes": 2119163904, + "rss_delta_bytes": 149520384, + "hlo_sha256": "90b706f34ebcfc3e", + "hlo_lines": 62768, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 30.02593254763633, + "compile_s": 24.65593973407522, + "first_call_s": 0.011427226942032576, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 39473500.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22635480, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2100318208, + "rss_after_compile_bytes": 2182086656, + "rss_delta_bytes": 81768448, + "hlo_sha256": "6bf8a7b9072c9cc5", + "hlo_lines": 62768, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730304, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396465, + 14.05296570839195, + 4.710517791725226, + 6.647366750058172, + 17.926663625058694, + 16.331611541724385 + ], + "exact": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730304, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396465, + 14.05296570839195, + 4.710517791725226, + 6.647366750058172, + 17.926663625058694, + 16.331611541724385 + ], + "lattice": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730304, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396465, + 14.05296570839195, + 4.710517791725226, + 6.647366750058172, + 17.926663625058694, + 16.331611541724385 + ], + "library": [ + 25.56012716672745, + 21.572496958393117, + 21.458564666727817, + 13.597236541730304, + 15.306220916729094, + 10.29320008339773, + 19.977444875061735, + 21.80036154172802, + 10.748929250057948, + 9.60960633339704, + 5.166246958396465, + 14.05296570839195, + 4.710517791725226, + 6.647366750058172, + 17.926663625058694, + 16.331611541724385 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 25.56012716672745, + "exact": 25.56012716672745, + "lattice": 25.56012716672745, + "library": 25.56012716672745 + } + }, + "cluster_plain": { + "label": "cluster_plain", + "batch": null, + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "route_order": "round-robin, start rotated each round", + "per_call_ms": { + "control": [ + 48.690821044147015, + 45.215658377856016, + 42.20631392672658, + 50.65532820299268, + 46.32623586803675, + 50.996382255107164, + 60.77732425183058, + 47.67699399963021, + 52.16809269040823, + 41.710926685482264, + 50.386528950184584, + 54.27825404331088, + 46.17023514583707, + 38.49586518481374, + 38.4642630815506, + 49.358065240085125, + 41.57715104520321, + 39.91740709170699, + 37.60265512391925, + 44.21385610476136, + 50.911795347929, + 54.82406122609973, + 47.01950028538704, + 53.27113391831517, + 50.802049692720175, + 51.52069823816419, + 40.01369699835777, + 50.31205713748932, + 46.01498693227768, + 43.52762084454298, + 44.21893507242203, + 53.01735829561949, + 52.69878823310137, + 51.966835744678974, + 42.29154624044895, + 43.66904916241765, + 43.943109922111034, + 51.462261006236076, + 44.289086014032364, + 53.17439278587699, + 41.7196243070066, + 49.401738215237856, + 52.91050020605326, + 53.05422004312277, + 54.48078317567706, + 42.58884536102414, + 45.57042708620429, + 37.48320462182164, + 50.992968026548624, + 50.9033570997417, + 42.67898527905345, + 42.99801215529442, + 55.1808038726449, + 42.354851961135864, + 53.18180099129677, + 43.60621189698577, + 43.32156106829643, + 47.21497604623437, + 45.55211775004864, + 40.27739679440856, + 46.99651524424553, + 49.84748596325517, + 44.210427440702915, + 43.46203804016113, + 51.99903296306729, + 41.307155042886734, + 44.31189130991697, + 45.59349687770009, + 50.210409332066774, + 39.88369693979621, + 42.58665395900607, + 50.34132208675146, + 44.33267284184694, + 36.70139471068978, + 49.78067800402641, + 45.0249258428812, + 50.04212586209178, + 44.065096881240606, + 53.70802339166403, + 43.22767397388816, + 45.2532940544188, + 51.193765830248594, + 51.98215413838625, + 45.319028198719025, + 45.92243628576398, + 55.59117998927832, + 39.644258096814156, + 51.57863022759557, + 43.0601560510695, + 48.52409567683935, + 41.649464052170515, + 50.482616759836674, + 44.60734222084284, + 46.958956867456436, + 43.11689408496022, + 49.89288188517094, + 52.500834222882986, + 56.0965808108449, + 42.583668138831854, + 51.74151295796037, + 55.52635295316577, + 51.44531838595867, + 45.51626881584525, + 50.30765384435654, + 49.7978781349957, + 46.33994493633509, + 51.10663641244173, + 53.26685635372996, + 52.05102078616619, + 42.99177601933479, + 47.964335419237614, + 47.15527920052409, + 46.38398811221123, + 43.713395949453115, + 49.62387401610613, + 51.67327681556344, + 42.471451219171286, + 45.092137064784765, + 46.938765328377485, + 46.242857817560434, + 51.26843694597483, + 48.16727014258504, + 51.74107709899545, + 43.32261485978961, + 52.05933516845107, + 44.28266827017069, + 40.57095665484667, + 46.12425295636058, + 36.57067473977804, + 45.65192386507988, + 49.437628127634525, + 53.394931834191084, + 49.77262392640114, + 40.869269985705614, + 44.673597905784845, + 43.5795821249485, + 44.09404098987579, + 50.78491987660527, + 61.74985412508249, + 46.65955388918519, + 37.88373013958335, + 51.55991297215223, + 40.560513734817505, + 45.10406171903014, + 47.980422619730234, + 50.35676900297403, + 46.8435799703002, + 51.10669508576393, + 50.26871711015701, + 43.12229435890913, + 46.24142684042454, + 54.59425179287791, + 49.488908145576715, + 49.69649016857147, + 39.34764815494418, + 54.68005780130625, + 52.98073589801788, + 42.91831608861685, + 51.58673599362373, + 38.70977880433202, + 42.666041757911444, + 45.01808900386095, + 48.64675970748067, + 43.22405904531479, + 44.98568410053849, + 40.99829727783799, + 48.556325025856495, + 43.6862139031291, + 43.48787106573582, + 42.82595124095678, + 50.46621896326542, + 49.74209517240524, + 39.02858309447765, + 50.51330802962184, + 46.422846615314484, + 51.91727867349982, + 42.389567010104656, + 41.4254548959434, + 40.98533792421222, + 45.64685421064496, + 50.7309976965189, + 54.61225612089038, + 63.311793841421604, + 41.12287005409598, + 52.3873302154243, + 39.849731139838696, + 48.09397831559181, + 38.254667073488235, + 45.04957655444741, + 51.09552899375558, + 42.43122320622206, + 45.2145398594439, + 63.505960162729025, + 38.718475960195065, + 41.451331693679094, + 55.61347212642431, + 42.53580188378692, + 42.0000902377069, + 49.389687832444906, + 43.003917671740055, + 45.906394720077515, + 49.85615098848939, + 41.49683006107807, + 48.30629285424948, + 40.38546187803149, + 44.24346098676324, + 51.165962126106024, + 40.169740095734596, + 43.827293906360865, + 53.20418393239379, + 47.22661105915904, + 40.7207808457315, + 48.96582802757621, + 52.82115377485752, + 47.883378341794014, + 50.59224320575595, + 48.262921161949635, + 39.2931392416358, + 43.90048095956445, + 50.37105455994606, + 43.5466137714684, + 46.62459110841155, + 51.600621081888676, + 51.96615029126406, + 54.09221723675728, + 51.84299498796463, + 52.399498876184225, + 48.343404196202755, + 40.002642665058374, + 43.805863708257675, + 45.80363864079118, + 41.796747129410505, + 49.80589775368571, + 38.943561259657145, + 41.57760972157121, + 51.42102902755141, + 49.878866877406836, + 56.17856327444315, + 51.568483002483845, + 53.12233790755272, + 44.45543512701988, + 42.25881723687053, + 47.30809573084116, + 57.2196370922029, + 44.87292701378465, + 56.368506979197264, + 51.987470127642155, + 44.8111048899591, + 42.984490282833576, + 44.45325117558241, + 44.65500405058265, + 52.49025393277407, + 46.48436093702912, + 48.95675694569945, + 36.54077090322971, + 44.51668495312333, + 50.06520031020045, + 44.06063677743077, + 43.31321781501174, + 47.34941618517041, + 49.75165333598852, + 55.030619725584984, + 50.94874510541558, + 39.59372406825423, + 49.858556129038334, + 52.666953299194574, + 59.79711702093482, + 55.716066621243954, + 44.386225286871195, + 55.60010904446244, + 44.159185141325, + 48.814755864441395, + 53.501229267567396, + 50.04454078152776, + 48.638634849339724, + 44.79631641879678, + 41.28015413880348, + 54.50176587328315, + 47.76055412366986, + 45.20619614049792, + 42.90428385138512, + 60.02213200554252, + 51.80877121165395, + 52.60039400309324, + 44.75821927189827, + 67.39878794178367, + 47.63789288699627, + 40.69178830832243, + 52.48874705284834, + 42.25107468664646, + 45.065993908792734, + 53.936597891151905, + 49.742714036256075, + 52.83986497670412, + 51.8584530800581, + 41.64482792839408, + 45.57383805513382, + 43.4687421657145, + 48.50823571905494, + 48.321242444217205, + 57.519612833857536, + 45.55643815547228, + 50.80384388566017, + 52.31876811012626, + 51.45672196522355, + 42.21419943496585, + 49.879550002515316, + 50.80616194754839, + 44.41633494570851, + 54.51003508642316, + 52.58872266858816, + 39.90746382623911, + 50.8312419988215, + 43.21148386225104, + 47.02416202053428, + 36.64036840200424, + 55.367827881127596, + 51.06209358200431, + 48.384856432676315, + 45.354788191616535, + 53.12199192121625, + 44.25354115664959, + 43.32189215347171, + 50.68079987540841, + 49.96253317221999, + 39.2628381960094, + 50.85349967703223, + 44.10830186679959, + 48.472010996192694, + 50.7787000387907, + 41.05099104344845, + 41.61850968375802, + 51.58539582043886, + 57.199846021831036, + 47.95942269265652, + 43.28964138403535, + 39.739349856972694, + 37.395428866147995, + 46.339375898242, + 47.35999973490834, + 44.66012818738818, + 51.29074724391103, + 45.748804695904255, + 52.76883393526077, + 44.068212155252695, + 52.1713518537581, + 70.41646307334304, + 56.10194290056825, + 52.48957360163331, + 54.847074672579765, + 51.84680875390768, + 44.77636190131307, + 42.377167381346226, + 54.08336175605655, + 51.71047616750002, + 52.36996058374643, + 59.559368062764406, + 43.58234582468867, + 49.253663048148155, + 45.4466980881989, + 53.85753279551864, + 48.082258086651564, + 45.02540919929743, + 50.94593204557896, + 42.53540188074112, + 52.320944145321846, + 48.30475291237235, + 39.629986975342035, + 55.93770882114768, + 44.84980506822467, + 45.69431906566024, + 51.69987119734287, + 51.29468534141779, + 44.25442824140191, + 46.697387006133795, + 51.26050300896168, + 40.39908340200782, + 52.768670953810215, + 42.563586961477995, + 42.81702823936939, + 47.86191787570715, + 55.548532865941525, + 45.11768603697419, + 49.40778389573097, + 50.43357191607356, + 45.82671029493213, + 47.569920774549246, + 53.69053687900305, + 52.62376926839352, + 64.16543666273355, + 47.321188263595104, + 43.38163370266557, + 53.684699814766645, + 52.417511120438576, + 50.395797938108444, + 44.34543289244175, + 57.24254064261913, + 46.9920220784843, + 56.03640293702483, + 44.37968321144581 + ], + "exact": [ + 19.187557976692915, + 18.95986683666706, + 16.959883738309145, + 16.53076196089387, + 17.38511212170124, + 16.41806960105896, + 16.477481927722692, + 15.09871007874608, + 19.245576579123735, + 16.60709409043193, + 18.105875700712204, + 17.53328600898385, + 19.636394921690226, + 18.485054839402437, + 19.5519607514143, + 17.123522702604532, + 19.206758122891188, + 17.75524625554681, + 19.537956919521093, + 16.522289719432592, + 18.382049165666103, + 15.337158925831318, + 18.384273163974285, + 16.821736935526133, + 17.82262697815895, + 17.06561679020524, + 16.852332279086113, + 20.70745313540101, + 16.637552995234728, + 17.54560135304928, + 17.785698641091585, + 15.095013193786144, + 16.994090750813484, + 18.92110798507929, + 16.152212396264076, + 17.703120596706867, + 16.324594151228666, + 17.347265034914017, + 17.651426140218973, + 17.457815818488598, + 22.21603598445654, + 15.728319063782692, + 16.190809663385153, + 15.667705330997705, + 17.181396018713713, + 15.275783836841583, + 16.733439173549414, + 16.493035946041346, + 15.370665118098259, + 17.143704928457737, + 20.452729891985655, + 15.863387379795313, + 19.92881903424859, + 15.045145992189646, + 19.621093291789293, + 17.730054911226034, + 16.033851075917482, + 16.911645885556936, + 18.579200841486454, + 18.83542211726308, + 15.666718129068613, + 14.381858054548502, + 18.38733395561576, + 21.138766780495644, + 20.45405888929963, + 15.441177878528833, + 18.453088123351336, + 17.975192051380873, + 19.92583693936467, + 18.060750793665648, + 16.9051056727767, + 17.46292319148779, + 15.166563913226128, + 18.55821395292878, + 18.792093265801668, + 16.97814418002963, + 17.602400854229927, + 16.47929009050131, + 15.3885199688375, + 16.025029122829437, + 17.261598724871874, + 16.3078042678535, + 16.36447897180915, + 16.049489378929138, + 14.749297872185707, + 14.903840608894825, + 18.374258186668158, + 15.664292965084314, + 15.462343115359545, + 18.244128674268723, + 16.874917782843113, + 15.900609083473682, + 19.34105297550559, + 19.558931700885296, + 19.23036528751254, + 16.765493899583817, + 18.351334147155285, + 17.506764270365238, + 17.939339391887188, + 18.069806043058634, + 18.810224253684282, + 20.593286026269197, + 19.735772162675858, + 17.460708040744066, + 17.02386885881424, + 18.296645022928715, + 17.55727268755436, + 15.37733431905508, + 19.736135844141245, + 17.68655562773347, + 17.419520299881697, + 16.029062680900097, + 16.57429290935397, + 18.11889884993434, + 17.011813819408417, + 18.048604018986225, + 17.72199897095561, + 18.702557310461998, + 17.159259878098965, + 18.04787525907159, + 17.596962861716747, + 16.79963804781437, + 16.684903763234615, + 18.419884145259857, + 19.43272678181529, + 20.33965615555644, + 18.95094010978937, + 19.301905762404203, + 17.336348071694374, + 18.140038941055536, + 19.24070715904236, + 17.284504137933254, + 17.036758363246918, + 16.35933993384242, + 19.11446312442422, + 16.576798167079687, + 16.95414399728179, + 17.660952173173428, + 18.45591701567173, + 17.869451083242893, + 18.698001746088266, + 17.54195988178253, + 18.09520786628127, + 17.81713403761387, + 18.947080709040165, + 17.990923020988703, + 17.673594877123833, + 18.279027193784714, + 16.8274762108922, + 20.81009978428483, + 17.296841368079185, + 15.116306021809578, + 16.901234164834023, + 18.60726997256279, + 20.61325404793024, + 18.459456972777843, + 18.83188681676984, + 14.916922897100449, + 17.805700190365314, + 17.90465321391821, + 21.434824913740158, + 18.271840177476406, + 17.552481964230537, + 15.972014050930738, + 16.256648115813732, + 16.027356032282114, + 21.37523517012596, + 18.400770146399736, + 17.475128173828125, + 16.948964912444353, + 19.37433797866106, + 18.485743086785078, + 17.42025511339307, + 18.410040996968746, + 19.869668874889612, + 17.99132488667965, + 17.940431833267212, + 19.72684171050787, + 15.254328958690166, + 14.98458394780755, + 18.063701689243317, + 17.24596694111824, + 16.684541013091803, + 19.054812844842672, + 18.64868914708495, + 16.878691036254168, + 19.075691234320402, + 14.636627864092588, + 18.112563993781805, + 16.007479280233383, + 18.600452225655317, + 19.712130073457956, + 19.38135689124465, + 17.290805000811815, + 17.797043081372976, + 16.146720852702856, + 18.706548027694225, + 17.878102138638496, + 17.66191190108657, + 17.87793170660734, + 18.49384605884552, + 18.060548696666956, + 18.527998123317957, + 18.157496117055416, + 17.385491635650396, + 17.347728833556175, + 14.790867920964956, + 16.702749766409397, + 18.61416222527623, + 17.90315331891179, + 17.227251082658768, + 16.003340017050505, + 16.955130267888308, + 14.76995600387454, + 18.110849894583225, + 17.27293711155653, + 17.639312893152237, + 17.176351975649595, + 19.852344878017902, + 18.810303881764412, + 21.49283979088068, + 20.699015352874994, + 17.469871789216995, + 16.51838095858693, + 20.507448818534613, + 18.626141361892223, + 20.59941180050373, + 17.390038818120956, + 16.987988725304604, + 20.19574586302042, + 15.505886636674404, + 22.1096221357584, + 19.787415862083435, + 19.78655718266964, + 16.084431670606136, + 16.28680480644107, + 18.328046891838312, + 16.270413994789124, + 17.696729861199856, + 18.08444084599614, + 19.954239018261433, + 16.307656187564135, + 17.220324836671352, + 17.064286395907402, + 18.469525035470724, + 18.41718005016446, + 21.22817886993289, + 17.64206914231181, + 19.81693273410201, + 19.346310291439295, + 19.359324127435684, + 20.111701916903257, + 18.14453909173608, + 20.275456830859184, + 18.64903001114726, + 20.047760102897882, + 15.317547135055065, + 21.122161764651537, + 19.836472813040018, + 15.983852092176676, + 18.60961504280567, + 20.59405902400613, + 20.664948970079422, + 16.275184229016304, + 18.361481837928295, + 17.269933130592108, + 19.388004206120968, + 18.66034371778369, + 17.729226034134626, + 18.20631418377161, + 17.305016051977873, + 20.86183987557888, + 15.495169907808304, + 21.032043732702732, + 20.68715589120984, + 17.928510904312134, + 16.240641940385103, + 18.391450867056847, + 14.802581164985895, + 16.80069835856557, + 16.57475996762514, + 17.726744059473276, + 20.31550696119666, + 17.83704711124301, + 16.960137989372015, + 18.111863639205694, + 16.057179775089025, + 21.811184007674456, + 16.821044962853193, + 18.084590788930655, + 18.98533897474408, + 17.649341840296984, + 15.983088873326778, + 16.555223613977432, + 18.385680858045816, + 17.24174525588751, + 18.23386875912547, + 15.811059158295393, + 18.46130471676588, + 17.396376002579927, + 18.48060777410865, + 18.53456674143672, + 16.43398916348815, + 16.284028999507427, + 18.6560470610857, + 17.307728063315153, + 15.36949397996068, + 15.471508726477623, + 17.48926006257534, + 17.37887319177389, + 19.481088034808636, + 17.164202872663736, + 15.21132793277502, + 17.509717028588057, + 14.642488677054644, + 16.310642939060926, + 16.714658122509718, + 14.743293169885874, + 18.696713261306286, + 20.887297112494707, + 15.676659066230059, + 18.14343500882387, + 18.644248601049185, + 19.81742586940527, + 19.582032226026058, + 17.994177993386984, + 19.773586187511683, + 19.18037934228778, + 16.93385699763894, + 16.68219408020377, + 20.337003748863935, + 19.76075116544962, + 20.751189906150103, + 17.52518117427826, + 16.304293181747198, + 15.164175070822239, + 19.165420904755592, + 20.877184811979532, + 18.787065986543894, + 20.254379138350487, + 14.269211795181036, + 16.83315122500062, + 15.405955258756876, + 17.99651514738798, + 17.189163248986006, + 18.20716494694352, + 18.961265217512846, + 19.203292671591043, + 17.65193697065115, + 21.384578198194504, + 18.361885100603104, + 17.7000449039042, + 20.20096406340599, + 17.968185245990753, + 16.9166992418468, + 20.381903741508722, + 20.096405409276485, + 16.620592214167118, + 17.6446377299726, + 16.514937859028578, + 15.172411222010851, + 17.176306806504726, + 17.100558150559664, + 19.226425793021917, + 17.146547324955463, + 17.81651796773076, + 18.567520193755627, + 17.55867525935173, + 16.699875239282846, + 16.84798114001751, + 20.649896934628487, + 19.29532503709197, + 19.681444391608238, + 20.287804771214724, + 19.684913102537394, + 19.74803488701582, + 20.10546764358878, + 17.49772997573018, + 17.47313467785716, + 19.635479897260666, + 15.54168900474906, + 15.83897601813078, + 18.222643993794918, + 18.0976502597332, + 17.52462424337864, + 15.687009319663048, + 16.805240884423256, + 16.937734093517065, + 14.375836122781038, + 16.786316875368357, + 14.760081190615892, + 15.458876732736826, + 16.6160031221807, + 17.696309834718704, + 17.740976996719837, + 20.865079946815968, + 16.302267089486122, + 17.02045602723956, + 16.485512256622314, + 14.816733077168465 + ], + "lattice": [ + 8.65927804261446, + 9.974260348826647, + 8.224032819271088, + 8.62439488992095, + 10.475944727659225, + 8.193474262952805, + 7.765718270093203, + 10.874866973608732, + 9.312439244240522, + 9.568850044161081, + 8.290242869406939, + 8.057324215769768, + 9.959978982806206, + 10.065972805023193, + 7.995937019586563, + 10.6631969101727, + 8.10067169368267, + 9.481299202889204, + 9.84747800976038, + 7.916013244539499, + 8.515637833625078, + 9.550523944199085, + 8.3189751021564, + 8.245754055678844, + 8.357440121471882, + 9.490987751632929, + 9.13224695250392, + 9.966160170733929, + 8.872995153069496, + 9.482068940997124, + 8.282290305942297, + 9.506653062999249, + 8.468700107187033, + 7.811243180185556, + 10.606328956782818, + 9.428764693439007, + 8.318554610013962, + 8.31116596236825, + 8.088634815067053, + 8.737205062061548, + 9.420404210686684, + 9.596618823707104, + 10.750059969723225, + 9.153201710432768, + 8.90450133010745, + 8.753843139857054, + 10.263851378113031, + 10.731689166277647, + 9.075907990336418, + 8.622037712484598, + 9.455724153667688, + 7.5223552994430065, + 8.912596851587296, + 8.170321118086576, + 10.238897986710072, + 9.68332914635539, + 8.298839908093214, + 8.732744958251715, + 7.755910977721214, + 9.205213282257318, + 8.293354883790016, + 10.270987171679735, + 9.330455213785172, + 8.636876940727234, + 10.303448885679245, + 8.037679363042116, + 8.921070024371147, + 9.914401918649673, + 9.40700899809599, + 8.725188206881285, + 9.8150628618896, + 10.120808146893978, + 9.12486994639039, + 8.21262737736106, + 8.189084939658642, + 8.18140059709549, + 9.895650204271078, + 8.965957909822464, + 9.0962378308177, + 9.83175914734602, + 10.195768903940916, + 9.084266144782305, + 9.11333179101348, + 9.073736146092415, + 9.701897855848074, + 8.094633929431438, + 9.17724333703518, + 8.79367720335722, + 9.021045174449682, + 9.6571771427989, + 9.424231946468353, + 9.285626001656055, + 7.867115084081888, + 9.485248010605574, + 8.856967091560364, + 8.76288814470172, + 9.105251636356115, + 8.166453335434198, + 9.379951748996973, + 9.341820143163204, + 9.5438570715487, + 8.256974164396524, + 8.398733101785183, + 9.996409993618727, + 9.937842842191458, + 8.901718072593212, + 9.310693945735693, + 8.004041854292154, + 9.790869895368814, + 10.270483326166868, + 9.87634202465415, + 7.755232974886894, + 9.600725024938583, + 9.910966269671917, + 9.87014640122652, + 9.889808017760515, + 7.718561217188835, + 9.753949008882046, + 8.977294899523258, + 9.830933064222336, + 10.378905106335878, + 9.225321002304554, + 9.862883947789669, + 8.420289028435946, + 9.273251984268427, + 8.644324727356434, + 9.019081015139818, + 9.01578227058053, + 9.133840911090374, + 8.407976012676954, + 9.629908949136734, + 9.773770347237587, + 9.650369174778461, + 9.500947780907154, + 9.69687383621931, + 8.22799513116479, + 9.885111823678017, + 7.782828062772751, + 9.849559981375933, + 9.36750415712595, + 9.609512984752655, + 8.543931879103184, + 8.561319205909967, + 8.52160807698965, + 10.161784011870623, + 9.842339903116226, + 10.818376671522856, + 8.371646050363779, + 9.213529992848635, + 9.464867878705263, + 10.227465070784092, + 9.428609162569046, + 8.390168659389019, + 8.979803882539272, + 8.644080255180597, + 7.8063588589429855, + 10.157722979784012, + 8.059859275817871, + 8.226327132433653, + 9.899134282022715, + 11.875025928020477, + 9.059817995876074, + 10.427490808069706, + 10.366152040660381, + 8.586757350713015, + 9.438928216695786, + 8.940552826970816, + 8.197873830795288, + 9.057444054633379, + 8.308206219226122, + 9.637909010052681, + 7.965927943587303, + 9.060543961822987, + 9.304063860327005, + 8.446726948022842, + 10.517347138375044, + 9.790264070034027, + 9.637902956455946, + 7.873007096350193, + 7.637388072907925, + 8.2920310087502, + 10.19035279750824, + 8.576416876167059, + 9.683998767286539, + 8.52591497823596, + 9.306748863309622, + 8.69460217654705, + 7.96773424372077, + 9.461432229727507, + 9.286811109632254, + 9.424181189388037, + 9.687357116490602, + 9.041702840477228, + 9.90342814475298, + 8.883562870323658, + 8.159315679222345, + 10.217546951025724, + 8.02171416580677, + 8.921226020902395, + 9.424793068319559, + 9.322508703917265, + 8.647136855870485, + 9.367757942527533, + 9.26413619890809, + 10.964544024318457, + 9.44549310952425, + 8.305279072374105, + 9.52786486595869, + 8.993666153401136, + 9.147769305855036, + 9.652732871472836, + 8.164423983544111, + 9.809266310185194, + 8.147296961396933, + 8.803950157016516, + 9.304594714194536, + 9.31260222569108, + 9.116325061768293, + 9.023521095514297, + 8.629887830466032, + 8.270374033600092, + 8.914310950785875, + 8.929000701755285, + 9.743639267981052, + 8.178355172276497, + 8.46910197287798, + 9.55970585346222, + 9.95886605232954, + 8.49876319989562, + 9.441336616873741, + 9.417728055268526, + 9.278744924813509, + 8.695247117429972, + 7.9326331615448, + 9.51495487242937, + 7.726305164396763, + 8.611461613327265, + 9.24418168142438, + 8.983545005321503, + 8.30553425475955, + 10.89210994541645, + 8.141478057950735, + 10.354579892009497, + 9.057926945388317, + 10.712978895753622, + 8.339346386492252, + 8.003429044038057, + 10.302664246410131, + 9.738144930452108, + 7.91655108332634, + 8.216328918933868, + 9.3883341178298, + 9.498942643404007, + 10.576652828603983, + 9.800068102777004, + 8.730011992156506, + 10.556374210864305, + 9.42682521417737, + 9.873460046947002, + 9.631113149225712, + 8.288785815238953, + 9.27939685061574, + 9.054624009877443, + 8.976585697382689, + 8.597008883953094, + 10.706950910389423, + 9.789003059267998, + 9.905228856950998, + 8.045428898185492, + 10.287075769156218, + 7.986566051840782, + 10.412479285150766, + 10.330910794436932, + 9.754265192896128, + 8.419448044151068, + 8.58171284198761, + 9.620808996260166, + 7.934730965644121, + 8.987931068986654, + 10.168778710067272, + 11.051522102206945, + 8.738243021070957, + 10.143839754164219, + 9.131496772170067, + 9.097768925130367, + 9.683635085821152, + 9.831205010414124, + 8.640630636364222, + 9.359047748148441, + 8.538667112588882, + 7.636005990207195, + 10.272113140672445, + 9.460017085075378, + 9.261108934879303, + 9.250836912542582, + 8.686251938343048, + 7.872442714869976, + 9.08697908744216, + 9.017650038003922, + 10.145836044102907, + 7.942125201225281, + 9.951982647180557, + 8.135569747537374, + 9.534185752272606, + 8.22640722617507, + 9.201623033732176, + 8.777518291026354, + 7.758161053061485, + 9.268645662814379, + 9.342779871076345, + 8.310309145599604, + 9.617493022233248, + 9.766016155481339, + 9.233964141458273, + 7.7734170481562614, + 8.275874890387058, + 10.353194084018469, + 9.384171105921268, + 9.844067972153425, + 9.348854888230562, + 8.027269039303064, + 10.084607172757387, + 9.77215962484479, + 10.228706989437342, + 8.941283915191889, + 9.424833115190268, + 8.276005741208792, + 10.380249936133623, + 9.738679975271225, + 9.807329624891281, + 9.556366130709648, + 9.740176144987345, + 9.525898844003677, + 10.214676149189472, + 9.8980781622231, + 8.75123729929328, + 9.369096718728542, + 9.270532056689262, + 10.088000912219286, + 8.555074222385883, + 9.597509168088436, + 8.381831925362349, + 7.680033799260855, + 9.557356126606464, + 9.822533000260592, + 7.8070457093417645, + 9.765539318323135, + 8.198644034564495, + 8.450082037597895, + 10.217162780463696, + 7.645603734999895, + 10.720583144575357, + 7.901550270617008, + 9.140026289969683, + 9.155293926596642, + 8.161422796547413, + 9.609567932784557, + 10.544908698648214, + 9.160912595689297, + 10.465499944984913, + 9.937937837094069, + 9.169620927423239, + 9.914066176861525, + 10.413145180791616, + 9.36963502317667, + 8.69244895875454, + 10.070757009088993, + 10.542112868279219, + 8.998816832900047, + 10.218266863375902, + 9.543689899146557, + 10.611634701490402, + 9.869501926004887, + 9.884675033390522, + 9.721430018544197, + 10.242004878818989, + 10.04372676834464, + 10.113509837538004, + 8.256013970822096, + 9.155488107353449, + 8.326142095029354, + 10.170015972107649, + 8.275279309600592, + 8.445268962532282, + 9.040751960128546, + 10.044637136161327, + 9.650886990129948, + 9.091762825846672, + 8.266030810773373, + 9.24145383760333, + 9.939813055098057, + 9.029075037688017, + 8.097260259091854, + 8.45244713127613, + 8.839928545057774, + 10.088409762829542, + 9.214377030730247, + 8.858748245984316, + 9.480196982622147, + 8.189659100025892 + ], + "library": [ + 8.483067154884338, + 10.368689894676208, + 9.508352726697922, + 8.193043991923332, + 8.926026988774538, + 9.898923337459564, + 9.963505901396275, + 8.418395183980465, + 7.601676043123007, + 8.260280825197697, + 7.734682876616716, + 8.35078302770853, + 9.384325239807367, + 9.63874813169241, + 9.502356871962547, + 9.776652790606022, + 9.619375225156546, + 8.663360960781574, + 8.981562219560146, + 10.028309188783169, + 9.035889059305191, + 8.511146996170282, + 10.24016086012125, + 10.001808870583773, + 10.507937986403704, + 9.27500007674098, + 7.661687210202217, + 10.22594515234232, + 9.494089055806398, + 9.611357934772968, + 9.450361132621765, + 10.117424186319113, + 9.880247991532087, + 9.938654024153948, + 9.91910696029663, + 9.042214136570692, + 9.705544915050268, + 8.884841110557318, + 8.705778047442436, + 8.11331206932664, + 9.825494140386581, + 9.380655828863382, + 8.778112009167671, + 8.130338042974472, + 9.242069907486439, + 9.750991128385067, + 9.45102097466588, + 9.454028680920601, + 9.634544141590595, + 8.300377987325191, + 10.317374020814896, + 9.320407640188932, + 7.8843729570508, + 9.400973096489906, + 9.212586097419262, + 9.451632853597403, + 7.41638895124197, + 10.045649949461222, + 9.632710833102465, + 9.215549100190401, + 7.99420615658164, + 9.45603707805276, + 10.510901920497417, + 8.064333815127611, + 9.60097135975957, + 7.51985888928175, + 8.818999864161015, + 10.237299837172031, + 8.714198134839535, + 8.999983314424753, + 9.767517913132906, + 9.570580907166004, + 9.690286125987768, + 9.600752964615822, + 9.88967390730977, + 9.64112812653184, + 8.60802736133337, + 9.76173672825098, + 9.198667947202921, + 8.518422022461891, + 8.02446436136961, + 9.962902870029211, + 9.548517409712076, + 7.432912010699511, + 9.447913616895676, + 10.015670210123062, + 10.77871210873127, + 9.816117119044065, + 8.568143006414175, + 8.564948104321957, + 9.6904500387609, + 9.117147885262966, + 7.59594002738595, + 9.056325070559978, + 8.76137288287282, + 9.06659523025155, + 10.15355484560132, + 8.691312279552221, + 7.93512212112546, + 9.117490146309137, + 9.616520255804062, + 7.9040140844881535, + 10.259252972900867, + 9.163423907011747, + 8.973398245871067, + 8.428358938544989, + 10.022042784839869, + 9.045802056789398, + 10.235900990664959, + 9.241377003490925, + 9.608070366084576, + 8.898795116692781, + 8.923850022256374, + 8.825417142361403, + 9.4057098031044, + 8.28481512144208, + 9.19329421594739, + 8.210677187889814, + 8.708284702152014, + 8.22137901559472, + 8.163820020854473, + 9.264519903808832, + 8.744235150516033, + 11.028522625565529, + 9.341325145214796, + 8.157156873494387, + 8.475169073790312, + 10.130951181054115, + 8.989503141492605, + 8.86148028075695, + 9.86593496054411, + 9.002146776765585, + 8.073669858276844, + 8.648627903312445, + 7.7592129819095135, + 8.177811279892921, + 9.549622889608145, + 9.960145223885775, + 8.708772715181112, + 8.320631925016642, + 8.307137060910463, + 9.390567895025015, + 9.524328168481588, + 9.038551710546017, + 9.48026916012168, + 8.695913944393396, + 8.762323763221502, + 9.670586790889502, + 9.214493911713362, + 9.510450065135956, + 10.053602047264576, + 9.298503864556551, + 10.095888283103704, + 9.530551731586456, + 8.234630804508924, + 10.066099930554628, + 10.14505885541439, + 9.285284206271172, + 8.310051169246435, + 8.764594793319702, + 9.552289266139269, + 8.80006467923522, + 9.183636400848627, + 10.436305776238441, + 8.232831954956055, + 9.792149066925049, + 9.322840720415115, + 9.35765914618969, + 9.988720063120127, + 7.680204696953297, + 9.985254146158695, + 8.41431599110365, + 10.60357503592968, + 9.433352388441563, + 9.59863606840372, + 10.558155830949545, + 8.713818155229092, + 9.898857213556767, + 8.581394795328379, + 9.886126033961773, + 8.476315066218376, + 9.56550007686019, + 8.43849591910839, + 7.613243069499731, + 10.043822694569826, + 8.455791976302862, + 9.702054783701897, + 8.619964122772217, + 8.148002903908491, + 9.966962039470673, + 10.47088298946619, + 8.975206408649683, + 9.523451793938875, + 9.111159015446901, + 10.07665740326047, + 9.460478089749813, + 8.284181356430054, + 8.24026484042406, + 9.266559034585953, + 9.557256009429693, + 8.590325247496367, + 9.92377195507288, + 9.88778192549944, + 9.516254998743534, + 8.86245397850871, + 8.797720074653625, + 10.017928201705217, + 10.376178659498692, + 9.370496030896902, + 9.391023311764002, + 9.445028379559517, + 8.759241085499525, + 8.9069870300591, + 9.716714266687632, + 10.409942362457514, + 9.762632194906473, + 7.402118761092424, + 9.091540705412626, + 9.52969491481781, + 9.99088492244482, + 8.025463204830885, + 8.412245195358992, + 8.038482163101435, + 9.96653689071536, + 9.906980209052563, + 9.117871057242155, + 9.181677363812923, + 9.692438878118992, + 8.350959047675133, + 9.191012941300869, + 8.339181076735258, + 9.647740982472897, + 10.372022166848183, + 7.938295137137175, + 10.125529021024704, + 8.597931358963251, + 9.0825199149549, + 8.822029922157526, + 8.192796725779772, + 9.914266876876354, + 9.72340116277337, + 9.166404604911804, + 10.206586681306362, + 10.443040169775486, + 10.300503112375736, + 9.066924918442965, + 7.61392479762435, + 7.781015709042549, + 10.929569136351347, + 9.287919849157333, + 9.94745409116149, + 10.001197922974825, + 9.526068810373545, + 8.124158717691898, + 9.63618978857994, + 10.001868940889835, + 8.368623908609152, + 9.24682104960084, + 10.15575509518385, + 7.807563059031963, + 10.32713195309043, + 7.792061660438776, + 7.673253770917654, + 10.342312045395374, + 9.299755096435547, + 9.679574985057116, + 9.234294760972261, + 8.573543280363083, + 8.203778881579638, + 10.137733072042465, + 8.33303201943636, + 10.27073198929429, + 10.002625174820423, + 9.840134996920824, + 7.478763815015554, + 9.057576768100262, + 9.338309988379478, + 9.158586151897907, + 9.21009574085474, + 8.742867968976498, + 8.514988236129284, + 9.801298845559359, + 10.273457039147615, + 10.958618950098753, + 7.6516480185091496, + 10.472440160810947, + 8.744297083467245, + 8.238018024712801, + 10.10116282850504, + 7.437990978360176, + 8.653009310364723, + 8.71998816728592, + 9.257386438548565, + 8.470164146274328, + 9.737407322973013, + 8.395069278776646, + 9.415119420737028, + 9.110179729759693, + 8.811917155981064, + 8.828502148389816, + 10.1862708106637, + 8.168082684278488, + 8.457730989903212, + 9.157873224467039, + 7.649824023246765, + 7.759465835988522, + 10.017592925578356, + 9.568445850163698, + 7.901354227215052, + 9.511093143373728, + 9.555066004395485, + 8.12084972858429, + 7.851518224924803, + 9.594719856977463, + 7.795194163918495, + 9.777543134987354, + 7.810764014720917, + 9.65546304360032, + 9.017087984830141, + 9.168116375803947, + 9.125629905611277, + 8.681535720825195, + 10.08121995255351, + 8.529413025826216, + 9.99066000804305, + 9.717742912471294, + 7.536062970757484, + 10.8099733479321, + 9.4965361058712, + 9.131875354796648, + 8.145978208631277, + 7.988288998603821, + 9.924605023115873, + 8.224043995141983, + 7.48429587110877, + 10.765959043055773, + 9.86831309273839, + 7.6018329709768295, + 8.342824876308441, + 9.55765601247549, + 8.657287806272507, + 10.131511371582747, + 8.92574293538928, + 9.456880390644073, + 8.522607386112213, + 9.416901972144842, + 8.489294908940792, + 8.715939708054066, + 9.95863787829876, + 9.714461397379637, + 9.46308160200715, + 10.260843206197023, + 8.484783116728067, + 8.425374049693346, + 9.819665923714638, + 7.8455801121890545, + 10.263176169246435, + 8.18853685632348, + 8.645081892609596, + 8.160163182765245, + 8.222798351198435, + 9.597711265087128, + 7.983029820024967, + 10.221098084002733, + 8.578574750572443, + 7.726581767201424, + 8.707552216947079, + 7.679990027099848, + 9.688577149063349, + 8.151615038514137, + 9.256730787456036, + 8.2392911426723, + 9.90669708698988, + 9.691507555544376, + 10.642340872436762, + 8.61792592331767, + 8.362065069377422, + 10.109780356287956, + 7.934086956083775, + 9.129574988037348, + 9.262924082577229, + 9.460786823183298, + 8.702595718204975, + 8.478423114866018, + 9.590950328856707, + 8.63515492528677, + 8.741531055420637, + 8.311403915286064, + 10.061081033200026, + 9.698273614048958, + 10.0213591940701, + 9.579438250511885, + 9.758524131029844, + 10.344409383833408, + 8.845863863825798, + 9.04798973351717, + 10.10508881881833, + 9.053816087543964, + 9.104229044169188, + 9.43314889445901 + ] + }, + "warm_ms": { + "control": [ + 46.32388008758426, + 53.52978827431798, + 45.88936595246196 + ], + "exact": [ + 19.3979749456048, + 17.36111007630825, + 17.81253330409527 + ], + "lattice": [ + 10.293584782630205, + 9.696782100945711, + 9.385776706039906 + ], + "library": [ + 9.615375194698572, + 8.89700185507536, + 8.872218895703554 + ] + }, + "stats": { + "control": { + "n": 400, + "median_ms": 47.60390683077276, + "p10_ms": 41.11568215303123, + "p90_ms": 53.95127427764237, + "min_ms": 36.54077090322971, + "max_ms": 70.41646307334304, + "mean_ms": 47.73468042607419 + }, + "exact": { + "n": 400, + "median_ms": 17.698387382552028, + "p10_ms": 15.666475612670183, + "p90_ms": 20.097311632707715, + "min_ms": 14.269211795181036, + "max_ms": 22.21603598445654, + "mean_ms": 17.805881628300995 + }, + "lattice": { + "n": 400, + "median_ms": 9.242817759513855, + "p10_ms": 8.100330550223589, + "p90_ms": 10.227589262649417, + "min_ms": 7.5223552994430065, + "max_ms": 11.875025928020477, + "mean_ms": 9.184325040550902 + }, + "library": { + "n": 400, + "median_ms": 9.224921930581331, + "p10_ms": 8.025363320484757, + "p90_ms": 10.132133541628718, + "min_ms": 7.402118761092424, + "max_ms": 11.028522625565529, + "mean_ms": 9.1475379106123 + } + }, + "ratios": { + "control_over_lattice": { + "ratio": 5.150367352182499, + "ci90_low": 5.044363901062593, + "ci90_high": 5.261747876084487, + "bootstrap_samples": 2000 + }, + "control_over_exact": { + "ratio": 2.6897313185552214, + "ci90_low": 2.629480166016958, + "ci90_high": 2.739831259746387, + "bootstrap_samples": 2000 + }, + "exact_over_lattice": { + "ratio": 1.9148259592519448, + "ci90_low": 1.892863035360533, + "ci90_high": 1.9445627419259521, + "bootstrap_samples": 2000 + }, + "library_over_lattice": { + "ratio": 0.9980638124219097, + "ci90_low": 0.9857199645627549, + "ci90_high": 1.0156402299076654, + "bootstrap_samples": 2000 + }, + "control_over_library": { + "ratio": 5.160358774740642, + "ci90_low": 5.039689816630403, + "ci90_high": 5.261053019660241, + "bootstrap_samples": 2000 + } + }, + "paired_round_ratio_control_over_lattice": { + "median": 5.156229271919937, + "p10": 4.849238265932062, + "p90": 5.593392662727396 + }, + "minimum_detectable_improvement": 0.2696331662491572, + "compile": { + "control": { + "lower_s": 21.247836876660585, + "compile_s": 16.688375812023878, + "first_call_s": 0.0477793337777257, + "trace_calls": 12, + "step0_rows": [ + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507, + 276507 + ], + "flops": 139430656.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 91543512, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2077270016, + "rss_after_compile_bytes": 2157203456, + "rss_delta_bytes": 79933440, + "hlo_sha256": "acbe29694662a3df", + "hlo_lines": 48278, + "hlo_large_constants": 2 + }, + "exact": { + "lower_s": 19.817023780196905, + "compile_s": 18.59859853098169, + "first_call_s": 0.021692051086574793, + "trace_calls": 12, + "step0_rows": [ + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085, + 110085 + ], + "flops": 64953124.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 40429272, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2143571968, + "rss_after_compile_bytes": 2158325760, + "rss_delta_bytes": 14753792, + "hlo_sha256": "4ef6ee02d880240b", + "hlo_lines": 48139, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 20.16522730095312, + "compile_s": 18.471762149129063, + "first_call_s": 0.00961891608312726, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 39461900.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22629400, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2148904960, + "rss_after_compile_bytes": 2159407104, + "rss_delta_bytes": 10502144, + "hlo_sha256": "8ff9e165f426afde", + "hlo_lines": 48139, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 21.146895385812968, + "compile_s": 18.72411391278729, + "first_call_s": 0.010559947695583105, + "trace_calls": 12, + "step0_rows": [ + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516, + 46516 + ], + "flops": 39461900.0, + "memory_analysis": { + "argument_size_in_bytes": 136, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 22629400, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2153132032, + "rss_after_compile_bytes": 2163208192, + "rss_delta_bytes": 10076160, + "hlo_sha256": "8548fc79819b1073", + "hlo_lines": 48139, + "hlo_large_constants": 3 + } + }, + "instances_compared": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ], + [ + 8 + ], + [ + 9 + ], + [ + 10 + ], + [ + 11 + ], + [ + 12 + ], + [ + 13 + ], + [ + 14 + ], + [ + 15 + ] + ], + "values": { + "control": [ + 23.965075083393216, + -743.7107061665998, + 3.3433302917272147, + -489.755628041605, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160913, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ], + "exact": [ + 23.965075083393216, + -743.7107061665998, + 3.3433302917272147, + -489.755628041605, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160913, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ], + "lattice": [ + 23.965075083393216, + -743.7107061665998, + 3.3433302917272147, + -489.755628041605, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160913, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ], + "library": [ + 23.965075083393216, + -743.7107061665998, + 3.3433302917272147, + -489.755628041605, + -527.9229457499364, + -468.67815408327806, + -247.07984679160097, + -1110.0030238749466, + -779.0297165832758, + -20.354586374939657, + -110.36109679160913, + -691.0739874166073, + -1296.2823207499168, + -205.49456033327564, + -223.83765929159887, + -334.8077113749422 + ] + }, + "deterministic_within_route": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "likelihood_gate": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + }, + "fiducial_log_likelihood": { + "control": 23.965075083393216, + "exact": 23.965075083393216, + "lattice": 23.965075083393216, + "library": 23.965075083393216 + } + } + }, + "gates": { + "simple_solved_positions": { + "n_instances": 3, + "compile": { + "control": { + "lower_s": 1.1026184298098087, + "compile_s": 1.4710892708972096, + "first_call_s": 0.003873072098940611, + "trace_calls": 1, + "step0_rows": [ + 69849 + ], + "flops": 6999844.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 4823832, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 845631488, + "rss_after_compile_bytes": 849190912, + "rss_delta_bytes": 3559424, + "hlo_sha256": "985a283559ad42cf", + "hlo_lines": 13336, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 1.0675349333323538, + "compile_s": 1.5008849687874317, + "first_call_s": 0.0033946670591831207, + "trace_calls": 1, + "step0_rows": [ + 28665 + ], + "flops": 4002064.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1776408, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 849190912, + "rss_after_compile_bytes": 851058688, + "rss_delta_bytes": 1867776, + "hlo_sha256": "e67383d25a4ab6ae", + "hlo_lines": 13230, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 1.030197899788618, + "compile_s": 1.5136241116560996, + "first_call_s": 0.0024100770242512226, + "trace_calls": 1, + "step0_rows": [ + 11859 + ], + "flops": 3329824.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1692184, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 849817600, + "rss_after_compile_bytes": 851439616, + "rss_delta_bytes": 1622016, + "hlo_sha256": "01e16e982cdc33c4", + "hlo_lines": 13230, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 1.0786019703373313, + "compile_s": 1.5072511690668762, + "first_call_s": 0.0028074150905013084, + "trace_calls": 1, + "step0_rows": [ + 11859 + ], + "flops": 3329824.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1692184, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 850223104, + "rss_after_compile_bytes": 852537344, + "rss_delta_bytes": 2314240, + "hlo_sha256": "01e16e982cdc33c4", + "hlo_lines": 13230, + "hlo_large_constants": 3 + } + }, + "positions": { + "control": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "exact": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "lattice": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "library": [ + [ + [ + [ + -1.03515625, + -1.0450941982127835 + ], + [ + Infinity, + Infinity + ], + [ + 0.35546875, + 1.6296613457672795 + ], + [ + 1.24375, + 1.1086929388032032 + ], + [ + 1.6062500000000002, + 0.44293590964391594 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0289062500000001, + -1.0225414533225639 + ], + [ + Infinity, + Infinity + ], + [ + 0.35, + 1.6138744243441256 + ], + [ + 1.2578125, + 1.0644895588183723 + ], + [ + 1.5890625, + 0.4375232508702632 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -1.0203125, + -1.0861401939129833 + ], + [ + Infinity, + Infinity + ], + [ + 0.3484375, + 1.6328187300519101 + ], + [ + 1.1398437499999998, + 1.2182992789696712 + ], + [ + 1.609375, + 0.4447401292351336 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ] + }, + "finite_positions": { + "control": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "exact": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "lattice": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ], + "library": [ + [ + 4 + ], + [ + 4 + ], + [ + 4 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_lattice": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_library": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + } + } + }, + "simple_solved_grad": { + "n_instances": 3, + "rtol": 1e-10, + "atol": 1e-12, + "compile": { + "control": { + "lower_s": 3.355011253617704, + "compile_s": 4.594914436340332, + "first_call_s": 0.005990402773022652, + "trace_calls": 2, + "step0_rows": [ + 69849, + 69849 + ], + "flops": 9665219.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 4836248, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 850120704, + "rss_after_compile_bytes": 894808064, + "rss_delta_bytes": 44687360, + "hlo_sha256": "e0edab191d34f887", + "hlo_lines": 46128, + "hlo_large_constants": 3 + }, + "exact": { + "lower_s": 3.3190768328495324, + "compile_s": 4.752599630970508, + "first_call_s": 0.003953657113015652, + "trace_calls": 2, + "step0_rows": [ + 28665, + 28665 + ], + "flops": 6388041.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 2075096, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 946200576, + "rss_after_compile_bytes": 991272960, + "rss_delta_bytes": 45072384, + "hlo_sha256": "5a0cc588674e3758", + "hlo_lines": 46010, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 3.355728392023593, + "compile_s": 4.882608917076141, + "first_call_s": 0.0037921788170933723, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 5715801.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 2074968, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 988139520, + "rss_after_compile_bytes": 997609472, + "rss_delta_bytes": 9469952, + "hlo_sha256": "96729417abf07795", + "hlo_lines": 46010, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 3.3633581530302763, + "compile_s": 4.902114721946418, + "first_call_s": 0.0040972791612148285, + "trace_calls": 2, + "step0_rows": [ + 11859, + 11859 + ], + "flops": 5715801.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 40, + "temp_size_in_bytes": 2074968, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 994078720, + "rss_after_compile_bytes": 1006280704, + "rss_delta_bytes": 12201984, + "hlo_sha256": "96729417abf07795", + "hlo_lines": 46010, + "hlo_large_constants": 3 + } + }, + "all_finite": { + "control": true, + "exact": true, + "lattice": true, + "library": true + }, + "any_nonzero_per_instance": { + "control": [ + true, + true, + true + ], + "exact": [ + true, + true, + true + ], + "lattice": [ + true, + true, + true + ], + "library": [ + true, + true, + true + ] + }, + "gradients": { + "control": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503596, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805018, + 74.32499719544126, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.00032350585126, + -1560.549091923857 + ] + ], + "exact": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503596, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805018, + 74.32499719544126, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.00032350585126, + -1560.549091923857 + ] + ], + "lattice": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503596, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805018, + 74.32499719544126, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.00032350585126, + -1560.549091923857 + ] + ], + "library": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503596, + 1781.7386158499905 + ], + [ + -46.408073055275, + 75.13738885142423, + 78.91835319805018, + 74.32499719544126, + 2531.5778928834748 + ], + [ + 62.951469401248765, + -41.40185295994061, + 18.162643132964934, + 109.00032350585126, + -1560.549091923857 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true + } + } + }, + "simple_solved_vmap4": { + "vmap_vs_scalar_within_route": { + "control": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + }, + "library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "allclose": true, + "n_compared": 16 + } + }, + "across_routes": { + "control_vs_exact": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_lattice": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + }, + "control_vs_library": { + "bit_identical": true, + "max_abs_delta": 0.0, + "max_rel_delta": 0.0, + "nan_pattern_equal": true, + "pass": true, + "rtol": 1e-12 + } + } + }, + "simple_plain_step0_containing": { + "n_instances": 3, + "sets": { + "control": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "exact": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "lattice": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ], + "library": [ + [ + 10465, + 11641, + 12118, + 12235, + 12352, + 12935, + 13168, + 13169, + 13633 + ], + [ + 10465, + 11641, + 12119, + 12235, + 12352, + 12702, + 13631 + ], + [ + 10465, + 11641, + 11884, + 12935, + 13515 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "identical": true + }, + "control_vs_lattice": { + "identical": true + }, + "control_vs_library": { + "identical": true + } + } + }, + "cluster_solved_positions": { + "n_instances": 3, + "compile": { + "control": { + "lower_s": 5.302627280820161, + "compile_s": 6.651645237579942, + "first_call_s": 0.05025570699945092, + "trace_calls": 2, + "step0_rows": [ + 276507, + 276507 + ], + "flops": 139395248.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 91549208, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2158469120, + "rss_after_compile_bytes": 2134343680, + "rss_delta_bytes": -24125440, + "hlo_sha256": "5434c9d68163f611", + "hlo_lines": 47312, + "hlo_large_constants": 2 + }, + "exact": { + "lower_s": 5.135406231041998, + "compile_s": 6.9438709183596075, + "first_call_s": 0.018974714446812868, + "trace_calls": 2, + "step0_rows": [ + 110085, + 110085 + ], + "flops": 64918076.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 40762840, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2113409024, + "rss_after_compile_bytes": 2107293696, + "rss_delta_bytes": -6115328, + "hlo_sha256": "2c70becc1050f8b5", + "hlo_lines": 47173, + "hlo_large_constants": 3 + }, + "lattice": { + "lower_s": 5.103829640895128, + "compile_s": 7.1008267109282315, + "first_call_s": 0.009811745956540108, + "trace_calls": 2, + "step0_rows": [ + 46516, + 46516 + ], + "flops": 39426892.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 22635928, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2093834240, + "rss_after_compile_bytes": 2092589056, + "rss_delta_bytes": -1245184, + "hlo_sha256": "e1fe6539b729199a", + "hlo_lines": 47173, + "hlo_large_constants": 3 + }, + "library": { + "lower_s": 5.326159151270986, + "compile_s": 7.0439554010517895, + "first_call_s": 0.009290080051869154, + "trace_calls": 2, + "step0_rows": [ + 46516, + 46516 + ], + "flops": 39426892.0, + "memory_analysis": { + "argument_size_in_bytes": 104, + "output_size_in_bytes": 496, + "temp_size_in_bytes": 22635928, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_before_lower_bytes": 2087542784, + "rss_after_compile_bytes": 2086313984, + "rss_delta_bytes": -1228800, + "hlo_sha256": "e1fe6539b729199a", + "hlo_lines": 47173, + "hlo_large_constants": 3 + } + }, + "positions": { + "control": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "exact": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "lattice": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ], + "library": [ + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296874999999998, + 10.716162262036818 + ], + [ + -0.021874999999999995, + -0.23996120563193818 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5146536383948147 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0789062499999997, + -7.858729484445975 + ], + [ + -0.9296875, + 10.709847493467556 + ], + [ + -0.016406249999999997, + -0.24311858991656893 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.963281249999998, + 18.997981240623318 + ], + [ + 0.6890624999999999, + -0.5178110226794455 + ], + [ + 13.68828125, + -14.306108193661998 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ], + [ + [ + [ + -3.0843749999999996, + -7.855572100161344 + ], + [ + -0.9351562499999999, + 10.72563441489071 + ], + [ + -0.021874999999999995, + -0.23364643706267665 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ], + [ + [ + -15.96875, + 19.007453393477206 + ], + [ + 0.68359375, + -0.5083388698255532 + ], + [ + 13.693749999999998, + -14.309265577946627 + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ], + [ + Infinity, + Infinity + ] + ] + ] + ] + }, + "finite_positions": { + "control": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "exact": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "lattice": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "library": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ] + }, + "pairs": { + "control_vs_exact": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_lattice": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + }, + "control_vs_library": { + "image_counts_identical": true, + "max_abs_delta_finite_sorted": 0.0, + "padded_array_equal_nan_aware": true, + "pass": true, + "atol": 1e-10 + } + } + } + }, + "wall_s": 636.8761325092055 +} \ No newline at end of file diff --git a/results/breakdown/point_source/static_lattice_ab_hpc_ral_cpu_fp64.png b/results/breakdown/point_source/static_lattice_ab_hpc_ral_cpu_fp64.png new file mode 100644 index 0000000000000000000000000000000000000000..752732c92f43b8288e8381dddafab15cacf04bc2 GIT binary patch literal 127073 zcmcG$c{tZw8$SAx3@Orp5+MzyLX*sr5RrKvqEu339x{d^5oM}K86rX{WGE%2D54}G znP-_A%;#S1_WPde`knXubFSlh_q+FQ^Y!_x^{nT)pZmU_6{@AF!py|UL{Sv;0aYa( zidxo1QHw?x>G3Cz4hYcUZ;~$ija+mcj=8v7IoVJeRxW2wIk=p%wdQrRadNhGu-~yw za@$T3-V-h^XPl)(MNj|d8@4$(9T#06`Sk=oWXTy-V`qxuSV{h(Ii6InL(x#w0j0fq z9tlIO?s|HaZSpsW*KxVyD58^V!%LHO8ERKB4c<}00#kq4& z0*vk}JzulSV2F(_P3_vR=C|&J!X6fx~DRS=p`8_eQ$Z$gtEANK?^_72u z&7Cgfe|3@8s(y+Yd`(K}1Pcd|{uJ|8cw*ItE|La$V?0iNe`S&+2Sg#CK z8abq{zLcGv{luqxYd>Y1GVmz{R4r#>I;XVZ`K$1COVi6eRSzAiys}CC{bR=?@i%Vl zJ9KEdo10sPWtp6EIA^fW%uhCtwd*A8gOoPx)zZ>>E_`siqoZS_>c-L0QGt<6Z%54} zx$vLE%_&NuE5*dc_r5sK{J?YKSa|gkMn-@944$RkP-oxz_3QC7Az@*{Bbfp}Ci`{! z`uY?$L>>P2EZ}7Aueo1s`!+;bMIxZ?50Ca>=4ai+lX`4WKmZLFH+Nl{I!A((t5B_{Lu)bJzJ2>tH?H*X^b|aJNJAqyF_HUAp@XG> zYmAPo<;9Q?t>V*iu5b4x)s+1xo|1fNky(@Fw@TmfQ`wK-$sMNXcMh2g)AhX> zz?7o#t;}~sMOoSU)upw4?{Cwp#fmHmRa$iXc&|)vbyZb4R#z)UnRyK-XY$cESNfVB zZppDMyV+aHBOk_AflaA>##@{#Qatq0co*Q{Cd z?CaO{v31}4RGD9}`*bgKDaW?MlYMnKSr1112}siy63ukTuFYiry0C0`hC(%#c!aBKU+hY!V1yytEDcEjt( z!1KyVhKPuW&t-mPCW)38maRQEIq4Gffti_E+_rur*Pb&}CVr-#9f{lt^U^2vpGyK&F}P=M>N!$b?bx=PW<|HAv^oDc;of?Fl=1lty{c9ZDl;U z7Eg5SZVnBd!o$*HxhqptF2BFMk3lcXfLYpYNMUaJhvWS0lv%Ig50N`}+h1HracFz` z*kf$NKtmRTySsbKQ=fJF&M$lJPeU7Bb2T>heC$?J>reNLRn^qa6&6Y$5Fc2*p#OMR zm%;t}*R5KKe@}AX#2wuhw!fJsIr*1kWhTE$#4Vh^&jqK~O;7d*MsQ2_WVJ-`tCTl3 za^Q#tYgM;sAn@b1nJW%|$zQR4eMEhldbNhU-@FXVdKsgxAGc-&&5L&;)>!!YQ#x|0 zI68j}Hm=!ohBq%S@4j=drpxdbHfnTs%K33okyTyt{=Ux-I**U_oYgq}wREkZpdeH4 zSg&<;>{g1BmX?1uceYK zTzmXmOWdn}=1M8<+vnI`PA6hfx@LNM`ed!j!s*+$Z&Usm83NJ5hB;bQ36jp6Kjm6p z)=ZSL>UdOrYhw&l*scO+OEXX3Vn%8&P>GiDJeQM3InuJh?r&IL3HHpH} z#aZ?Dt@fFf`EvL4^z1L@N?urb(@-gxUrbEPO3Y13X)z18)M7h3JC+QgjpoHJ0a;nX z_p-CYN`x%$;n-ng*PnQQiw04sm2HwQ(`#JjE9>_CYd8~|5U-FBQ<_@LqS1D`C3qE; zBsrfmbJMQD$G7tSIxem;)Kau6%P{wRTH2-vF3EEUO`6}MbPf2>BOmT)ocM5ud3JWT ztLKL7+1<%0DRoG#TyoxPHgDcc`M(U~I8q+81l#baG&dy>rmf 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�|9}k8SXn)`(_pREv)9V*RRjzo6O#q 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 z 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 Nwu<_;=q*Rj{vX~}jVu5F literal 0 HcmV?d00001 diff --git a/results/notes/point_source_cpu_2026_09_24_ral_job_350636_static_lattice_ab.out b/results/notes/point_source_cpu_2026_09_24_ral_job_350636_static_lattice_ab.out new file mode 100644 index 000000000..34e7a4550 --- /dev/null +++ b/results/notes/point_source_cpu_2026_09_24_ral_job_350636_static_lattice_ab.out @@ -0,0 +1,294 @@ +AP_ROOT=/mnt/ral/jnightin/autolens_profiling_wt/point-source-cpu-p3 +========================================== +Thu 24 Sep 13:34:42 BST 2026 +euclid-ral-compute-10-2 +Model name: Intel(R) Xeon(R) Platinum 8490H +partition: ral +nodelist: euclid-ral-compute-10-2 +cpus-per-task: 8 +sched_affinity: 8 +loadavg: 0.00 0.00 0.00 1/2096 1665220 +Cell: point_source/likelihood_breakdown/static_lattice_ab +Precision: fp64 (JAX_ENABLE_X64=1) +Thread env: OMP=1 MKL=1 OPENBLAS=1 NPROC=8 +XLA_FLAGS: --xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false +=== source revisions === +PyAutoNerves (shared) 1fa613aa8d89a79613009fb66f5b4e2d21deb57a +PyAutoFit (shared) a736840127be7a3c21e15a5c945e94d8f1082983 +PyAutoArray (shared) 11b93476b2c7d9d32e5467deedfe9594c637d736 +PyAutoGalaxy (shared) 70a61e26cd715cefe7012a38285698091246a8a4 +PyAutoLens (shared) 2aaa1c1a8bb4a5923edf30a18451fcea330a6bd4 +PyAutoArray (branch clone, IMPORTED): ad0bf97b45d572effa5d428a101d32ac4893b950 +PyAutoLens (branch clone, IMPORTED): b346b6a0a092098f23964e274edb220ea9757ad0 +AP_ROOT rev: 3da2583d46b80f72793caf11a16433ca05f00d20 +AP_ROOT branch: feature/point-source-cpu-p3 +=== import provenance (refuses unless both libraries come from the branch clones) === +autoarray.__file__ = /mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_point-source-cpu-p3/autoarray/__init__.py +autolens.__file__ = /mnt/ral/jnightin/autolens_profiling_wt/PyAutoLens_point-source-cpu-p3/autolens/__init__.py +autofit.__file__ = /mnt/ral/jnightin/PyAuto/PyAutoFit/autofit/__init__.py +autogalaxy.__file__ = /mnt/ral/jnightin/PyAuto/PyAutoGalaxy/autogalaxy/__init__.py +jax 0.10.2 [CpuDevice(id=0)] +ASSERT OK: autoarray + autolens from the branch clones; static_vertex_table present +========================================== +run 1/2: constant folding DISABLED (20 x 20, simple + cluster) +Thu 24 Sep 13:34:59 BST 2026 +loadavg: 0.28 0.07 0.02 1/2098 1665268 +2026-09-24 13:35:10,444 - matplotlib.font_manager - INFO - generated new fontManager +constant folding: requested=disabled probe folding_ran=False XLA_FLAGS=--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false + +=== simple: step-0 rows {'control': 69849, 'exact': 28665, 'lattice': 11859}; tables {'cell_build_ms': 129.0445444174111, 'cell_cache_hit_us': 0.6402842700481415, 'exact_table_mb': 1.017432, 'lattice_table_mb': 0.748536, 'library_static_vertex_table': {'build_ms': 34.097347874194384, 'cache_hit_us': 1.2139789760112762, 'rows': 11859, 'mb': 0.748536, 'equals_cell_lattice_table': True}} + +--- row simple_solved --- + [simple_solved/control] lower 2.0 s compile 2.9 s first 8.63 ms trace_calls 2 step0_rows [69849] + [simple_solved/exact] lower 1.9 s compile 3.0 s first 3.21 ms trace_calls 2 step0_rows [28665] + [simple_solved/lattice] lower 1.8 s compile 3.1 s first 3.43 ms trace_calls 2 step0_rows [11859] + [simple_solved/library] lower 1.9 s compile 3.1 s first 2.78 ms trace_calls 2 step0_rows [11859] + median ms control 3.540 exact 2.254 lattice 1.674 library 1.758 control/lattice 2.114 [1.917, 2.156] + +--- positions gate simple_solved --- + [simple_solved_positions/control] lower 1.1 s compile 1.5 s first 3.87 ms trace_calls 1 step0_rows [69849] + [simple_solved_positions/exact] lower 1.1 s compile 1.5 s first 3.39 ms trace_calls 1 step0_rows [28665] + [simple_solved_positions/lattice] lower 1.0 s compile 1.5 s first 2.41 ms trace_calls 1 step0_rows [11859] + [simple_solved_positions/library] lower 1.1 s compile 1.5 s first 2.81 ms trace_calls 1 step0_rows [11859] + +--- gradient gate simple_solved --- + [simple_solved_grad/control] lower 3.4 s compile 4.6 s first 5.99 ms trace_calls 2 step0_rows [69849] + [simple_solved_grad/exact] lower 3.3 s compile 4.8 s first 3.95 ms trace_calls 2 step0_rows [28665] + [simple_solved_grad/lattice] lower 3.4 s compile 4.9 s first 3.79 ms trace_calls 2 step0_rows [11859] + [simple_solved_grad/library] lower 3.4 s compile 4.9 s first 4.10 ms trace_calls 2 step0_rows [11859] + +--- row simple_solved_vmap4 --- + [simple_solved_vmap4/control] lower 2.7 s compile 3.4 s first 12.38 ms trace_calls 2 step0_rows [69849] + [simple_solved_vmap4/exact] lower 2.7 s compile 3.5 s first 8.90 ms trace_calls 2 step0_rows [28665] + [simple_solved_vmap4/lattice] lower 2.6 s compile 3.7 s first 5.31 ms trace_calls 2 step0_rows [11859] + [simple_solved_vmap4/library] lower 2.7 s compile 3.7 s first 7.63 ms trace_calls 2 step0_rows [11859] + median ms control 8.258 exact 6.550 lattice 5.761 library 5.784 control/lattice 1.433 [1.421, 1.456] + +--- row simple_plain --- + [simple_plain/control] lower 1.5 s compile 2.6 s first 3.77 ms trace_calls 2 step0_rows [69849] + [simple_plain/exact] lower 1.4 s compile 2.7 s first 3.34 ms trace_calls 2 step0_rows [28665] + [simple_plain/lattice] lower 1.5 s compile 2.6 s first 2.85 ms trace_calls 2 step0_rows [11859] + [simple_plain/library] lower 1.5 s compile 2.7 s first 2.91 ms trace_calls 2 step0_rows [11859] + median ms control 3.479 exact 2.267 lattice 1.673 library 1.669 control/lattice 2.080 [1.893, 2.129] + +--- step-0 containing_indices gate simple_plain --- + [simple_plain_step0/control] lower 0.2 s compile 0.2 s first 4.16 ms trace_calls 1 step0_rows [69849] + [simple_plain_step0/exact] lower 0.1 s compile 0.2 s first 2.44 ms trace_calls 1 step0_rows [28665] + [simple_plain_step0/lattice] lower 0.1 s compile 0.2 s first 1.98 ms trace_calls 1 step0_rows [11859] + [simple_plain_step0/library] lower 0.2 s compile 0.2 s first 1.99 ms trace_calls 1 step0_rows [11859] + +=== cluster: step-0 rows {'control': 276507, 'exact': 110085, 'lattice': 46516}; tables {'cell_build_ms': 402.48990105465055, 'cell_cache_hit_us': 0.5490146577358246, 'exact_table_mb': 3.973416, 'lattice_table_mb': 2.956312, 'library_static_vertex_table': {'build_ms': 184.25948917865753, 'cache_hit_us': 2.3706816136837006, 'rows': 46516, 'mb': 2.956312, 'equals_cell_lattice_table': True}} + +--- row cluster_solved --- + [cluster_solved/control] lower 30.6 s compile 22.8 s first 49.20 ms trace_calls 12 step0_rows [276507] + [cluster_solved/exact] lower 29.2 s compile 23.9 s first 22.05 ms trace_calls 12 step0_rows [110085] + [cluster_solved/lattice] lower 29.4 s compile 24.4 s first 12.02 ms trace_calls 12 step0_rows [46516] + [cluster_solved/library] lower 30.0 s compile 24.7 s first 11.43 ms trace_calls 12 step0_rows [46516] + median ms control 47.358 exact 18.815 lattice 9.211 library 9.085 control/lattice 5.141 [5.052, 5.261] + +--- positions gate cluster_solved --- + [cluster_solved_positions/control] lower 5.3 s compile 6.7 s first 50.26 ms trace_calls 2 step0_rows [276507] + [cluster_solved_positions/exact] lower 5.1 s compile 6.9 s first 18.97 ms trace_calls 2 step0_rows [110085] + [cluster_solved_positions/lattice] lower 5.1 s compile 7.1 s first 9.81 ms trace_calls 2 step0_rows [46516] + [cluster_solved_positions/library] lower 5.3 s compile 7.0 s first 9.29 ms trace_calls 2 step0_rows [46516] + +--- row cluster_plain --- + [cluster_plain/control] lower 21.2 s compile 16.7 s first 47.78 ms trace_calls 12 step0_rows [276507] + [cluster_plain/exact] lower 19.8 s compile 18.6 s first 21.69 ms trace_calls 12 step0_rows [110085] + [cluster_plain/lattice] lower 20.2 s compile 18.5 s first 9.62 ms trace_calls 12 step0_rows [46516] + [cluster_plain/library] lower 21.1 s compile 18.7 s first 10.56 ms trace_calls 12 step0_rows [46516] + median ms control 47.604 exact 17.698 lattice 9.243 library 9.225 control/lattice 5.150 [5.044, 5.262] + +============================================================================================================== +STATIC-LATTICE A/B (hpc_ral_cpu_fp64, rounds=20, calls/round=20, constant_folding=off) +============================================================================================================== + row route median p10 p90 min step0 MFLOP temp_MB compile_s + simple_solved control 3.540 3.067 4.296 2.965 69849 7.05 4.82 2.9 + simple_solved exact 2.254 2.084 2.760 2.000 28665 4.06 1.78 3.0 + simple_solved lattice 1.674 1.554 2.143 1.476 11859 3.38 1.69 3.1 + simple_solved library 1.758 1.564 2.144 1.420 11859 3.38 1.69 3.1 + control_over_lattice 2.114 [90% 1.917, 2.156] + control_over_exact 1.570 [90% 1.391, 1.611] + exact_over_lattice 1.346 [90% 1.307, 1.500] + library_over_lattice 1.050 [90% 1.008, 1.214] + control_over_library 2.014 [90% 1.626, 2.091] + MDI 0.347 + simple_solved_vmap4 control 8.258 7.128 9.332 6.964 69849 23.30 15.47 3.4 + simple_solved_vmap4 exact 6.550 5.395 7.564 5.275 28665 14.52 7.09 3.5 + simple_solved_vmap4 lattice 5.761 4.617 6.077 4.472 11859 11.83 6.76 3.7 + simple_solved_vmap4 library 5.784 4.606 6.077 4.483 11859 11.83 6.76 3.7 + control_over_lattice 1.433 [90% 1.421, 1.456] + control_over_exact 1.261 [90% 1.248, 1.279] + exact_over_lattice 1.137 [90% 1.121, 1.158] + library_over_lattice 1.004 [90% 0.993, 1.019] + control_over_library 1.428 [90% 1.417, 1.441] + MDI 0.267 + simple_plain control 3.479 3.047 4.298 2.974 69849 7.05 4.82 2.6 + simple_plain exact 2.267 2.094 2.779 1.979 28665 4.05 1.78 2.7 + simple_plain lattice 1.673 1.550 2.131 1.469 11859 3.38 1.69 2.6 + simple_plain library 1.669 1.512 2.134 1.427 11859 3.38 1.69 2.7 + control_over_lattice 2.080 [90% 1.893, 2.129] + control_over_exact 1.535 [90% 1.296, 1.577] + exact_over_lattice 1.355 [90% 1.320, 1.497] + library_over_lattice 0.998 [90% 0.974, 1.018] + control_over_library 2.084 [90% 1.909, 2.129] + MDI 0.360 + cluster_solved control 47.358 40.514 59.019 36.110 276507 139.44 91.55 22.8 + cluster_solved exact 18.815 16.464 21.133 14.274 110085 64.96 40.44 23.9 + cluster_solved lattice 9.211 7.883 10.345 7.161 46516 39.47 22.64 24.4 + cluster_solved library 9.085 7.890 10.281 7.178 46516 39.47 22.64 24.7 + control_over_lattice 5.141 [90% 5.052, 5.261] + control_over_exact 2.517 [90% 2.481, 2.565] + exact_over_lattice 2.043 [90% 2.013, 2.079] + library_over_lattice 0.986 [90% 0.972, 1.010] + control_over_library 5.213 [90% 5.105, 5.302] + MDI 0.391 + cluster_plain control 47.604 41.116 53.951 36.541 276507 139.43 91.54 16.7 + cluster_plain exact 17.698 15.666 20.097 14.269 110085 64.95 40.43 18.6 + cluster_plain lattice 9.243 8.100 10.228 7.522 46516 39.46 22.63 18.5 + cluster_plain library 9.225 8.025 10.132 7.402 46516 39.46 22.63 18.7 + control_over_lattice 5.150 [90% 5.044, 5.262] + control_over_exact 2.690 [90% 2.629, 2.740] + exact_over_lattice 1.915 [90% 1.893, 1.945] + library_over_lattice 0.998 [90% 0.986, 1.016] + control_over_library 5.160 [90% 5.040, 5.261] + MDI 0.270 +-------------------------------------------------------------------------------------------------------------- + library_matches: lattice + all_gates_pass: True + wall: 637 s + Results JSON: /mnt/ral/jnightin/autolens_profiling_wt/point-source-cpu-p3/results/breakdown/point_source/static_lattice_ab_hpc_ral_cpu_fp64.json + Results PNG: /mnt/ral/jnightin/autolens_profiling_wt/point-source-cpu-p3/results/breakdown/point_source/static_lattice_ab_hpc_ral_cpu_fp64.png +========================================== +run 2/2: constant folding ENABLED, separate process (20 x 20, simple + cluster) +Thu 24 Sep 13:45:37 BST 2026 +loadavg: 3.06 1.68 0.90 1/2096 1665699 +constant folding: requested=ENABLED probe folding_ran=True XLA_FLAGS=--xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false --xla_disable_hlo_passes=constant_folding_probe_disabled + +=== simple: step-0 rows {'control': 69849, 'exact': 28665, 'lattice': 11859}; tables {'cell_build_ms': 82.00608380138874, 'cell_cache_hit_us': 0.5490146577358246, 'exact_table_mb': 1.017432, 'lattice_table_mb': 0.748536, 'library_static_vertex_table': {'build_ms': 34.38778826966882, 'cache_hit_us': 1.2917444109916687, 'rows': 11859, 'mb': 0.748536, 'equals_cell_lattice_table': True}} + +--- row simple_solved --- + [simple_solved/control] lower 2.0 s compile 2.9 s first 7.25 ms trace_calls 2 step0_rows [69849] + [simple_solved/exact] lower 1.9 s compile 2.9 s first 3.19 ms trace_calls 2 step0_rows [28665] + [simple_solved/lattice] lower 1.9 s compile 2.9 s first 3.40 ms trace_calls 2 step0_rows [11859] + [simple_solved/library] lower 1.9 s compile 2.9 s first 3.22 ms trace_calls 2 step0_rows [11859] + median ms control 4.093 exact 2.194 lattice 1.785 library 1.722 control/lattice 2.294 [1.891, 2.389] + +--- positions gate simple_solved --- + [simple_solved_positions/control] lower 1.1 s compile 1.4 s first 5.37 ms trace_calls 1 step0_rows [69849] + [simple_solved_positions/exact] lower 1.0 s compile 1.4 s first 3.08 ms trace_calls 1 step0_rows [28665] + [simple_solved_positions/lattice] lower 1.1 s compile 1.5 s first 2.76 ms trace_calls 1 step0_rows [11859] + [simple_solved_positions/library] lower 1.1 s compile 1.4 s first 3.01 ms trace_calls 1 step0_rows [11859] + +--- gradient gate simple_solved --- + [simple_solved_grad/control] lower 3.4 s compile 4.4 s first 6.67 ms trace_calls 2 step0_rows [69849] + [simple_solved_grad/exact] lower 3.3 s compile 4.6 s first 5.09 ms trace_calls 2 step0_rows [28665] + [simple_solved_grad/lattice] lower 3.3 s compile 4.6 s first 4.15 ms trace_calls 2 step0_rows [11859] + [simple_solved_grad/library] lower 3.3 s compile 4.7 s first 4.25 ms trace_calls 2 step0_rows [11859] + +--- row simple_solved_vmap4 --- + [simple_solved_vmap4/control] lower 2.8 s compile 3.2 s first 9.19 ms trace_calls 2 step0_rows [69849] + [simple_solved_vmap4/exact] lower 2.6 s compile 3.3 s first 7.98 ms trace_calls 2 step0_rows [28665] + [simple_solved_vmap4/lattice] lower 2.6 s compile 3.4 s first 5.91 ms trace_calls 2 step0_rows [11859] + [simple_solved_vmap4/library] lower 2.7 s compile 3.4 s first 5.83 ms trace_calls 2 step0_rows [11859] + median ms control 7.632 exact 5.675 lattice 4.982 library 5.499 control/lattice 1.532 [1.342, 1.651] + +--- row simple_plain --- + [simple_plain/control] lower 1.5 s compile 2.4 s first 4.17 ms trace_calls 2 step0_rows [69849] + [simple_plain/exact] lower 1.4 s compile 2.5 s first 2.78 ms trace_calls 2 step0_rows [28665] + [simple_plain/lattice] lower 1.4 s compile 2.5 s first 2.55 ms trace_calls 2 step0_rows [11859] + [simple_plain/library] lower 1.5 s compile 2.6 s first 3.09 ms trace_calls 2 step0_rows [11859] + median ms control 3.564 exact 2.392 lattice 1.689 library 1.696 control/lattice 2.110 [2.006, 2.313] + +--- step-0 containing_indices gate simple_plain --- + [simple_plain_step0/control] lower 0.2 s compile 0.2 s first 3.29 ms trace_calls 1 step0_rows [69849] + [simple_plain_step0/exact] lower 0.1 s compile 0.2 s first 2.24 ms trace_calls 1 step0_rows [28665] + [simple_plain_step0/lattice] lower 0.1 s compile 0.2 s first 1.91 ms trace_calls 1 step0_rows [11859] + [simple_plain_step0/library] lower 0.2 s compile 0.2 s first 1.97 ms trace_calls 1 step0_rows [11859] + +=== cluster: step-0 rows {'control': 276507, 'exact': 110085, 'lattice': 46516}; tables {'cell_build_ms': 395.868934225291, 'cell_cache_hit_us': 0.5341134965419769, 'exact_table_mb': 3.973416, 'lattice_table_mb': 2.956312, 'library_static_vertex_table': {'build_ms': 181.9877908565104, 'cache_hit_us': 2.1061860024929047, 'rows': 46516, 'mb': 2.956312, 'equals_cell_lattice_table': True}} + +--- row cluster_solved --- + [cluster_solved/control] lower 30.3 s compile 21.9 s first 40.07 ms trace_calls 12 step0_rows [276507] + [cluster_solved/exact] lower 29.2 s compile 24.4 s first 16.39 ms trace_calls 12 step0_rows [110085] + [cluster_solved/lattice] lower 29.1 s compile 23.7 s first 10.46 ms trace_calls 12 step0_rows [46516] + [cluster_solved/library] lower 30.5 s compile 24.1 s first 9.68 ms trace_calls 12 step0_rows [46516] + median ms control 39.026 exact 12.962 lattice 8.506 library 8.599 control/lattice 4.588 [4.444, 4.696] + +--- positions gate cluster_solved --- + [cluster_solved_positions/control] lower 5.1 s compile 6.2 s first 28.69 ms trace_calls 2 step0_rows [276507] + [cluster_solved_positions/exact] lower 5.1 s compile 6.9 s first 17.87 ms trace_calls 2 step0_rows [110085] + [cluster_solved_positions/lattice] lower 5.1 s compile 6.8 s first 11.75 ms trace_calls 2 step0_rows [46516] + [cluster_solved_positions/library] lower 5.4 s compile 6.8 s first 9.41 ms trace_calls 2 step0_rows [46516] + +--- row cluster_plain --- + [cluster_plain/control] lower 21.2 s compile 16.3 s first 34.83 ms trace_calls 12 step0_rows [276507] + [cluster_plain/exact] lower 19.7 s compile 19.4 s first 16.37 ms trace_calls 12 step0_rows [110085] + [cluster_plain/lattice] lower 20.8 s compile 18.6 s first 9.06 ms trace_calls 12 step0_rows [46516] + [cluster_plain/library] lower 21.8 s compile 19.0 s first 10.56 ms trace_calls 12 step0_rows [46516] + median ms control 32.338 exact 13.430 lattice 8.257 library 8.273 control/lattice 3.917 [3.843, 3.975] + +============================================================================================================== +STATIC-LATTICE A/B (hpc_ral_cpu_fp64, rounds=20, calls/round=20, constant_folding=ON) +============================================================================================================== + row route median p10 p90 min step0 MFLOP temp_MB compile_s + simple_solved control 4.093 3.056 4.811 2.957 69849 6.79 4.69 2.9 + simple_solved exact 2.194 2.063 2.773 1.965 28665 3.77 1.77 2.9 + simple_solved lattice 1.785 1.580 2.131 1.464 11859 3.10 1.69 2.9 + simple_solved library 1.722 1.560 2.115 1.462 11859 3.10 1.69 2.9 + control_over_lattice 2.294 [90% 1.891, 2.389] + control_over_exact 1.865 [90% 1.630, 1.908] + exact_over_lattice 1.230 [90% 1.123, 1.284] + library_over_lattice 0.965 [90% 0.875, 1.011] + control_over_library 2.377 [90% 2.077, 2.451] + MDI 0.429 + simple_solved_vmap4 control 7.632 7.099 10.500 6.964 69849 23.02 15.34 3.2 + simple_solved_vmap4 exact 5.675 5.356 7.358 5.227 28665 14.22 7.09 3.3 + simple_solved_vmap4 lattice 4.982 4.600 6.077 4.484 11859 11.53 6.76 3.4 + simple_solved_vmap4 library 5.499 4.607 6.068 4.461 11859 11.53 6.76 3.4 + control_over_lattice 1.532 [90% 1.342, 1.651] + control_over_exact 1.345 [90% 1.307, 1.452] + exact_over_lattice 1.139 [90% 1.002, 1.157] + library_over_lattice 1.104 [90% 0.932, 1.154] + control_over_library 1.388 [90% 1.311, 1.630] + MDI 0.446 + simple_plain control 3.564 3.035 4.800 2.927 69849 6.79 4.69 2.4 + simple_plain exact 2.392 2.046 2.794 1.966 28665 3.77 1.77 2.5 + simple_plain lattice 1.689 1.550 2.122 1.451 11859 3.10 1.69 2.5 + simple_plain library 1.696 1.563 2.131 1.471 11859 3.10 1.69 2.6 + control_over_lattice 2.110 [90% 2.006, 2.313] + control_over_exact 1.490 [90% 1.409, 1.654] + exact_over_lattice 1.416 [90% 1.279, 1.480] + library_over_lattice 1.004 [90% 0.974, 1.041] + control_over_library 2.102 [90% 1.992, 2.254] + MDI 0.495 + cluster_solved control 39.026 30.657 45.269 24.857 276507 131.39 91.88 21.9 + cluster_solved exact 12.962 10.925 15.773 9.752 110085 46.68 40.76 24.4 + cluster_solved lattice 8.506 7.154 9.936 6.303 46516 30.34 22.64 23.7 + cluster_solved library 8.599 7.284 9.889 6.693 46516 30.34 22.64 24.1 + control_over_lattice 4.588 [90% 4.444, 4.696] + control_over_exact 3.011 [90% 2.900, 3.077] + exact_over_lattice 1.524 [90% 1.487, 1.568] + library_over_lattice 1.011 [90% 0.987, 1.037] + control_over_library 4.538 [90% 4.388, 4.640] + MDI 0.374 + cluster_plain control 32.338 27.905 37.959 25.428 276507 131.38 91.54 16.3 + cluster_plain exact 13.430 11.203 15.674 9.895 110085 46.67 40.76 19.4 + cluster_plain lattice 8.257 7.141 9.512 6.295 46516 30.33 22.63 18.6 + cluster_plain library 8.273 7.064 9.580 6.533 46516 30.33 22.63 19.0 + control_over_lattice 3.917 [90% 3.843, 3.975] + control_over_exact 2.408 [90% 2.357, 2.445] + exact_over_lattice 1.627 [90% 1.598, 1.663] + library_over_lattice 1.002 [90% 0.981, 1.020] + control_over_library 3.909 [90% 3.833, 3.988] + MDI 0.311 +-------------------------------------------------------------------------------------------------------------- + library_matches: lattice + all_gates_pass: True + wall: 606 s + Results JSON: /mnt/ral/jnightin/autolens_profiling_wt/point-source-cpu-p3/results/breakdown/point_source/static_lattice_ab_constant_folding_hpc_ral_cpu_fp64.json + Results PNG: /mnt/ral/jnightin/autolens_profiling_wt/point-source-cpu-p3/results/breakdown/point_source/static_lattice_ab_constant_folding_hpc_ral_cpu_fp64.png +========================================== +loadavg: 1.58 1.49 1.17 1/2093 1665794 +Finished. +Thu 24 Sep 13:55:45 BST 2026 diff --git a/results/notes/point_source_cpu_2026_09_24_ral_job_350637_static_lattice_ab_a100.out b/results/notes/point_source_cpu_2026_09_24_ral_job_350637_static_lattice_ab_a100.out new file mode 100644 index 000000000..22ea18745 --- /dev/null +++ b/results/notes/point_source_cpu_2026_09_24_ral_job_350637_static_lattice_ab_a100.out @@ -0,0 +1,166 @@ +AP_ROOT=/mnt/ral/jnightin/autolens_profiling_wt/point-source-cpu-p3 +========================================== +Thu 24 Sep 13:34:42 BST 2026 +euclid-ral-gpu-1 +Model name: AMD EPYC 7702 64-Core Processor +name, driver_version, memory.total [MiB], utilization.gpu [%] +NVIDIA A100 80GB PCIe, 610.57.04, 81920 MiB, 0 % +partition: gpu +gpus: 0 +cpus-per-task: 8 +loadavg: 0.00 0.00 0.00 1/1246 2103922 +Cell: point_source/likelihood_breakdown/static_lattice_ab +Backend: JAX_PLATFORMS=cuda JAX_PLATFORM_NAME=cuda +XLA_FLAGS: --xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false +=== source revisions === +PyAutoNerves (shared) 1fa613aa8d89a79613009fb66f5b4e2d21deb57a +PyAutoFit (shared) a736840127be7a3c21e15a5c945e94d8f1082983 +PyAutoArray (shared) 11b93476b2c7d9d32e5467deedfe9594c637d736 +PyAutoGalaxy (shared) 70a61e26cd715cefe7012a38285698091246a8a4 +PyAutoLens (shared) 2aaa1c1a8bb4a5923edf30a18451fcea330a6bd4 +PyAutoArray (branch clone, IMPORTED): ad0bf97b45d572effa5d428a101d32ac4893b950 +PyAutoLens (branch clone, IMPORTED): b346b6a0a092098f23964e274edb220ea9757ad0 +AP_ROOT rev: 3da2583d46b80f72793caf11a16433ca05f00d20 +AP_ROOT branch: feature/point-source-cpu-p3 +=== import provenance + backend assertion === +autoarray.__file__ = /mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_point-source-cpu-p3/autoarray/__init__.py +autolens.__file__ = /mnt/ral/jnightin/autolens_profiling_wt/PyAutoLens_point-source-cpu-p3/autolens/__init__.py +autofit.__file__ = /mnt/ral/jnightin/PyAuto/PyAutoFit/autofit/__init__.py +autogalaxy.__file__ = /mnt/ral/jnightin/PyAuto/PyAutoGalaxy/autogalaxy/__init__.py +jax 0.10.2 [CudaDevice(id=0)] gpu +ASSERT OK: GPU backend, autoarray + autolens from the branch clones +========================================== +static-lattice A/B on A100 (20 x 20, simple + cluster) +Thu 24 Sep 13:35:06 BST 2026 +2026-09-24 13:35:10,823 - matplotlib.font_manager - INFO - Failed to extract font properties from /usr/share/fonts/cantarell/Cantarell-VF.otf: In FT2Font: Can not load face (SFNT font table missing; error code 0x8e) +2026-09-24 13:35:10,847 - matplotlib.font_manager - INFO - generated new fontManager +constant folding: requested=disabled probe folding_ran=False XLA_FLAGS=--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false + +=== simple: step-0 rows {'control': 69849, 'exact': 28665, 'lattice': 11859}; tables {'cell_build_ms': 185.3060140274465, 'cell_cache_hit_us': 0.6495974957942963, 'exact_table_mb': 1.017432, 'lattice_table_mb': 0.748536, 'library_static_vertex_table': {'build_ms': 47.864540945738554, 'cache_hit_us': 1.9799917936325073, 'rows': 11859, 'mb': 0.748536, 'equals_cell_lattice_table': True}} + +--- row simple_solved --- + [simple_solved/control] lower 2.7 s compile 5.3 s first 11.40 ms trace_calls 2 step0_rows [69849] + [simple_solved/exact] lower 2.5 s compile 5.4 s first 11.81 ms trace_calls 2 step0_rows [28665] + [simple_solved/lattice] lower 2.5 s compile 5.4 s first 11.25 ms trace_calls 2 step0_rows [11859] + [simple_solved/library] lower 2.6 s compile 5.6 s first 12.73 ms trace_calls 2 step0_rows [11859] + median ms control 0.846 exact 0.843 lattice 0.839 library 0.842 control/lattice 1.009 [1.006, 1.011] + +--- positions gate simple_solved --- + [simple_solved_positions/control] lower 1.4 s compile 4.0 s first 11.46 ms trace_calls 1 step0_rows [69849] + [simple_solved_positions/exact] lower 1.4 s compile 3.8 s first 11.40 ms trace_calls 1 step0_rows [28665] + [simple_solved_positions/lattice] lower 1.3 s compile 3.9 s first 10.34 ms trace_calls 1 step0_rows [11859] + [simple_solved_positions/library] lower 1.4 s compile 3.9 s first 10.18 ms trace_calls 1 step0_rows [11859] + +--- gradient gate simple_solved --- + [simple_solved_grad/control] lower 4.4 s compile 16.7 s first 234.88 ms trace_calls 2 step0_rows [69849] + [simple_solved_grad/exact] lower 4.3 s compile 16.7 s first 21.71 ms trace_calls 2 step0_rows [28665] + [simple_solved_grad/lattice] lower 4.3 s compile 16.9 s first 24.35 ms trace_calls 2 step0_rows [11859] + [simple_solved_grad/library] lower 4.4 s compile 16.6 s first 23.68 ms trace_calls 2 step0_rows [11859] + +--- row simple_solved_vmap4 --- + [simple_solved_vmap4/control] lower 3.6 s compile 6.3 s first 14.38 ms trace_calls 2 step0_rows [69849] + [simple_solved_vmap4/exact] lower 3.4 s compile 6.1 s first 15.02 ms trace_calls 2 step0_rows [28665] + [simple_solved_vmap4/lattice] lower 3.5 s compile 6.2 s first 15.88 ms trace_calls 2 step0_rows [11859] + [simple_solved_vmap4/library] lower 3.6 s compile 6.2 s first 15.82 ms trace_calls 2 step0_rows [11859] + median ms control 0.942 exact 0.922 lattice 0.925 library 0.925 control/lattice 1.019 [1.017, 1.021] + +--- row simple_plain --- + [simple_plain/control] lower 2.0 s compile 5.2 s first 12.80 ms trace_calls 2 step0_rows [69849] + [simple_plain/exact] lower 2.0 s compile 5.2 s first 13.45 ms trace_calls 2 step0_rows [28665] + [simple_plain/lattice] lower 2.0 s compile 5.2 s first 12.03 ms trace_calls 2 step0_rows [11859] + [simple_plain/library] lower 2.0 s compile 5.1 s first 13.01 ms trace_calls 2 step0_rows [11859] + median ms control 0.824 exact 0.821 lattice 0.818 library 0.818 control/lattice 1.008 [1.006, 1.011] + +--- step-0 containing_indices gate simple_plain --- + [simple_plain_step0/control] lower 0.3 s compile 0.5 s first 2.11 ms trace_calls 1 step0_rows [69849] + [simple_plain_step0/exact] lower 0.2 s compile 0.5 s first 2.01 ms trace_calls 1 step0_rows [28665] + [simple_plain_step0/lattice] lower 0.2 s compile 0.5 s first 1.80 ms trace_calls 1 step0_rows [11859] + [simple_plain_step0/library] lower 0.2 s compile 0.5 s first 1.67 ms trace_calls 1 step0_rows [11859] + +=== cluster: step-0 rows {'control': 276507, 'exact': 110085, 'lattice': 46516}; tables {'cell_build_ms': 561.3286113366485, 'cell_cache_hit_us': 0.6100162863731384, 'exact_table_mb': 3.973416, 'lattice_table_mb': 2.956312, 'library_static_vertex_table': {'build_ms': 277.69159572198987, 'cache_hit_us': 2.670101821422577, 'rows': 46516, 'mb': 2.956312, 'equals_cell_lattice_table': True}} + +--- row cluster_solved --- + [cluster_solved/control] lower 40.0 s compile 43.1 s first 44.82 ms trace_calls 12 step0_rows [276507] + [cluster_solved/exact] lower 38.2 s compile 46.3 s first 50.88 ms trace_calls 12 step0_rows [110085] + [cluster_solved/lattice] lower 38.8 s compile 47.6 s first 53.10 ms trace_calls 12 step0_rows [46516] + [cluster_solved/library] lower 41.1 s compile 48.8 s first 56.93 ms trace_calls 12 step0_rows [46516] + median ms control 2.696 exact 2.566 lattice 2.516 library 2.515 control/lattice 1.072 [1.056, 1.085] + +--- positions gate cluster_solved --- + [cluster_solved_positions/control] lower 6.9 s compile 22.6 s first 30.84 ms trace_calls 2 step0_rows [276507] + [cluster_solved_positions/exact] lower 7.0 s compile 23.1 s first 32.41 ms trace_calls 2 step0_rows [110085] + [cluster_solved_positions/lattice] lower 7.0 s compile 23.7 s first 33.49 ms trace_calls 2 step0_rows [46516] + [cluster_solved_positions/library] lower 7.4 s compile 23.5 s first 33.35 ms trace_calls 2 step0_rows [46516] + +--- row cluster_plain --- + [cluster_plain/control] lower 28.9 s compile 36.1 s first 44.01 ms trace_calls 12 step0_rows [276507] + [cluster_plain/exact] lower 26.5 s compile 37.2 s first 41.17 ms trace_calls 12 step0_rows [110085] + [cluster_plain/lattice] lower 27.1 s compile 37.4 s first 43.30 ms trace_calls 12 step0_rows [46516] + [cluster_plain/library] lower 28.7 s compile 38.8 s first 45.49 ms trace_calls 12 step0_rows [46516] + median ms control 2.073 exact 2.002 lattice 1.984 library 1.991 control/lattice 1.045 [1.042, 1.050] + +============================================================================================================== +STATIC-LATTICE A/B (hpc_ral_a100_fp64, rounds=20, calls/round=20, constant_folding=off) +============================================================================================================== + row route median p10 p90 min step0 MFLOP temp_MB compile_s + simple_solved control 0.846 0.836 0.881 0.826 69849 6.60 3.36 5.3 + simple_solved exact 0.843 0.833 0.879 0.823 28665 3.87 0.93 5.4 + simple_solved lattice 0.839 0.829 0.868 0.819 11859 3.07 0.39 5.4 + simple_solved library 0.842 0.832 0.869 0.826 11859 3.07 0.39 5.6 + control_over_lattice 1.009 [90% 1.006, 1.011] + control_over_exact 1.004 [90% 1.001, 1.006] + exact_over_lattice 1.005 [90% 1.003, 1.008] + library_over_lattice 1.003 [90% 1.001, 1.006] + control_over_library 1.005 [90% 1.003, 1.008] + MDI 0.053 + simple_solved_vmap4 control 0.942 0.932 0.974 0.921 69849 21.98 7.83 6.3 + simple_solved_vmap4 exact 0.922 0.910 0.968 0.897 28665 13.64 3.68 6.1 + simple_solved_vmap4 lattice 0.925 0.915 0.954 0.903 11859 10.82 1.53 6.2 + simple_solved_vmap4 library 0.925 0.915 0.957 0.902 11859 10.82 1.53 6.2 + control_over_lattice 1.019 [90% 1.017, 1.021] + control_over_exact 1.022 [90% 1.018, 1.024] + exact_over_lattice 0.997 [90% 0.994, 1.001] + library_over_lattice 1.001 [90% 0.999, 1.003] + control_over_library 1.018 [90% 1.016, 1.020] + MDI 0.045 + simple_plain control 0.824 0.813 0.871 0.804 69849 6.60 3.36 5.2 + simple_plain exact 0.821 0.810 0.872 0.802 28665 3.87 0.93 5.2 + simple_plain lattice 0.818 0.806 0.869 0.796 11859 3.07 0.39 5.2 + simple_plain library 0.818 0.806 0.868 0.796 11859 3.07 0.39 5.1 + control_over_lattice 1.008 [90% 1.006, 1.011] + control_over_exact 1.004 [90% 1.001, 1.006] + exact_over_lattice 1.005 [90% 1.002, 1.008] + library_over_lattice 1.001 [90% 0.998, 1.004] + control_over_library 1.007 [90% 1.005, 1.010] + MDI 0.070 + cluster_solved control 2.696 2.601 2.850 2.557 276507 120.38 42.06 43.1 + cluster_solved exact 2.566 2.447 2.667 2.415 110085 56.77 15.00 46.3 + cluster_solved lattice 2.516 2.428 2.652 2.395 46516 34.59 6.35 47.6 + cluster_solved library 2.515 2.430 2.608 2.392 46516 34.59 6.35 48.8 + control_over_lattice 1.072 [90% 1.056, 1.085] + control_over_exact 1.050 [90% 1.039, 1.062] + exact_over_lattice 1.020 [90% 1.008, 1.028] + library_over_lattice 1.000 [90% 0.988, 1.010] + control_over_library 1.072 [90% 1.058, 1.085] + MDI 0.092 + cluster_plain control 2.073 2.013 2.258 1.955 276507 120.37 42.05 36.1 + cluster_plain exact 2.002 1.951 2.102 1.908 110085 56.76 15.00 37.2 + cluster_plain lattice 1.984 1.937 2.091 1.895 46516 34.57 6.35 37.4 + cluster_plain library 1.991 1.942 2.108 1.887 46516 34.57 6.35 38.8 + control_over_lattice 1.045 [90% 1.042, 1.050] + control_over_exact 1.035 [90% 1.032, 1.040] + exact_over_lattice 1.009 [90% 1.007, 1.013] + library_over_lattice 1.004 [90% 1.001, 1.008] + control_over_library 1.041 [90% 1.037, 1.046] + MDI 0.118 +-------------------------------------------------------------------------------------------------------------- + library_matches: lattice + all_gates_pass: True + wall: 984 s + Results JSON: /mnt/ral/jnightin/autolens_profiling_wt/point-source-cpu-p3/results/breakdown/point_source/static_lattice_ab_hpc_ral_a100_fp64.json + Results PNG: /mnt/ral/jnightin/autolens_profiling_wt/point-source-cpu-p3/results/breakdown/point_source/static_lattice_ab_hpc_ral_a100_fp64.png +========================================== +name, memory.used [MiB] +NVIDIA A100 80GB PCIe, 0 MiB +Finished. +Thu 24 Sep 13:51:32 BST 2026 diff --git a/results/notes/point_source_cpu_campaign.md b/results/notes/point_source_cpu_campaign.md index 60623caec..f8a100cf1 100644 --- a/results/notes/point_source_cpu_campaign.md +++ b/results/notes/point_source_cpu_campaign.md @@ -1,8 +1,8 @@ # Point-source CPU speed-up campaign — ledger Issue: [autolens_profiling #297](https://github.com/PyAutoLabs/autolens_profiling/issues/297) (phase 1); [PyAutoArray #568](https://github.com/PyAutoLabs/PyAutoArray/issues/568) (phase 2) -Branch: `feature/point-source-cpu-p1` (phase 1); `feature/point-source-cpu-p2` (phase 2, PyAutoArray + autolens_profiling) -Status: phase 1 **DONE** (RAL baseline, job 350580); phase 2 **DONE, ACCEPTED** (vertex-dedup A/B, RAL job 350582: 4.47× simple, 1.98× cluster, bit-identical; library change awaiting merge and release); phases 3–4 not started +Branch: `feature/point-source-cpu-p1` (phase 1); `feature/point-source-cpu-p2` (phase 2, PyAutoArray + autolens_profiling); `feature/point-source-cpu-p3` (phase 3, PyAutoArray + PyAutoLens + autolens_profiling) +Status: phase 1 **DONE** (RAL baseline, job 350580); phase 2 **DONE, ACCEPTED** (vertex-dedup A/B, RAL job 350582: 4.47× simple, 1.98× cluster, bit-identical; library change awaiting merge and release); phase 3 **DONE, ACCEPTED** (static step-0 lattice A/B, RAL jobs 350636 CPU / 350637 A100: CPU control → library 2.0–2.1× simple, 1.43× vmap-4, 5.2× cluster, compile +3–12 %, all 31 gates bit-identical; tie-case gate decision pending at ship); phase 4 not started Instrument: [`scripts/point_source/likelihood_breakdown/image_plane.py`](../../scripts/point_source/likelihood_breakdown/image_plane.py) (shipped in #293, see [point_source_shared_likelihood_breakdown.md](point_source_shared_likelihood_breakdown.md)) and [`scripts/cluster/likelihood_breakdown/image_plane.py`](../../scripts/cluster/likelihood_breakdown/image_plane.py) @@ -754,7 +754,7 @@ and `25894d10` (tests), on `11b93476`. --- -## Phase 3 — precompute the static step-0 lattice (2026-09-24) — IN PROGRESS (laptop witness only; RAL pending) +## Phase 3 — precompute the static step-0 lattice (2026-09-24) — DONE, ACCEPTED (RAL jobs 350636 / 350637) Plan: PyAutoArray#568 (re-titled, phase-3 plan comment). Human decisions (2026-09-24): tolerance gate, the geometric 11 859-vertex table, on by default for the JAX PointSolver if the A/B accepts. @@ -820,7 +820,7 @@ control / lattice: ~2×. One earlier folding-on run spent 555 s compiling the cluster-plain control; the rerun took 34 s — a laptop outlier, recorded, not reproduced. -### Correctness gates +### Correctness gates (laptop and library suites) - Laptop, both runs: 31 / 31 gates pass and are **bit-identical** (log L on every streamed instance, solved positions and image counts, `jax.grad` finite and non-zero, vmap-4 vs scalar, simple-plain @@ -830,7 +830,7 @@ control / lattice: traced deflection grid 11 859 rows) is red on main (69 849). - autolens_workspace_test `point_source/jax_likelihood/*.py` ×4 and `jax_grad/gradient.py`: rc 0 on the branch, output identical to main except timing lines; no rtol-1e-4 pin moved. -- **Tie finding (decision for the human at ship).** A source placed *bit-exactly* on a traced step-0 +- **Tie finding (human gate decision pending at ship; see below).** A source placed *bit-exactly* on a traced step-0 lattice vertex changes the step-0 kept set (16 / 50 constructed ties) and, in 1 / 13, the image count: control 3, lattice 2. The control's two positions at the tie vertex (|p − v| = 9.0e-4 each, μ ≈ 4.7) both Newton-converge to the same root, the vertex itself — a duplicate; the lattice path @@ -840,18 +840,192 @@ control / lattice: and in image count on 22 / 25 (lattice vs flat under jit: 6 / 25 and 1 / 25). Generic and near-caustic sources are identical to the flat path. -### Pending +### RAL environment (quotable) + +- **CPU — job 350636**, partition `ral`, pinned `--nodelist=euclid-ral-compute-10-2` (Intel Xeon + Platinum 8490H, the phase-1 host; phase 2 ran on an EPYC 7763, so only in-job ratios compare across + phases). 8 CPUs (`sched_affinity` 8, `NPROC=8`, BLAS threads 1), fp64, JAX 0.10.2, loadavg 0.28 at + start. Two runs in one job: folding **off** (the PyAutoNerves default) then folding **on** + (`--constant-folding`; the HLO probe confirms folding ran, `agrees_with_request: true`). Walls 637 s + and 606 s. Empty stderr. +- **A100 — job 350637**, `euclid-ral-gpu-1`, one NVIDIA A100 80GB PCIe, backend asserted `gpu`, fp64, + folding off, wall 984 s. Empty stderr. +- **Provenance (all three JSONs):** `source_revisions` PyAutoArray `ad0bf97b`, PyAutoLens `b346b6a0` + (imported from the branch clones `/mnt/ral/jnightin/autolens_profiling_wt/{PyAutoArray,PyAutoLens}_point-source-cpu-p3`, + refused otherwise), autolens_profiling `3da2583`, PyAutoGalaxy `70a61e26`, PyAutoFit `a7368401`, + PyAutoNerves `1fa613aa`. `library_matches: lattice` on every row; on the simple rows the library's + optimised HLO is hash-identical to the cell's lattice route. `all_gates_pass: true`. +- Protocol as the laptop: 20 rounds × 20 calls (400 samples per route), round-robin with rotated + start, 3 warm calls, 16-instance parameter stream. The library `static_vertex_table` equals the cell's + lattice table on both geometries; build 34 ms / 0.75 MB (simple) and 184 ms / 2.96 MB (cluster) on the + Xeon, cache hit 1.2–2.4 µs. + +Numbers below are read from the JSONs by script. Ratios are per-route medians with the JSON's bootstrap +90 % CI; **MDI** = control (p90 − p10) / median; compile is `compile_s` of a **single cold compile per +route** (not a median); temp = XLA `memory_analysis().temp_size_in_bytes`; FLOPs = `cost_analysis()`. + +**RAL CPU, constant folding off** (`static_lattice_ab_hpc_ral_cpu_fp64.json`) + +| Row | control median [p10, p90] ms | exact | lattice | library | control / library [90 % CI] | control / lattice [90 % CI] | paired per-round c/lat median [p10, p90] | MDI | compile s ctrl → lib | temp MB ctrl → lib | FLOPs ctrl → lib | +|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:| +| `simple_solved` | 3.540 [3.067, 4.296] | 2.254 | 1.674 | 1.758 | **2.01×** [1.63, 2.09] | 2.11× [1.92, 2.16] | 1.94 [1.79, 2.13] | 34.7 % | 2.91 → 3.14 (+8.0 %) | 4.82 → 1.69 | 7.05M → 3.38M | +| `simple_solved_vmap4` (per batch of 4) | 8.258 [7.128, 9.332] | 6.550 | 5.761 | 5.784 | **1.43×** [1.42, 1.44] | 1.43× [1.42, 1.46] | 1.44 [1.39, 1.63] | 26.7 % | 3.39 → 3.71 (+9.5 %) | 15.47 → 6.76 | 23.30M → 11.83M | +| `simple_plain` | 3.479 [3.047, 4.298] | 2.267 | 1.673 | 1.669 | **2.08×** [1.91, 2.13] | 2.08× [1.89, 2.13] | 1.92 [1.72, 2.17] | 36.0 % | 2.58 → 2.67 (+3.3 %) | 4.82 → 1.69 | 7.05M → 3.38M | +| `cluster_solved` | 47.36 [40.51, 59.02] | 18.82 | 9.211 | 9.085 | **5.21×** [5.10, 5.30] | 5.14× [5.05, 5.26] | 5.20 [4.91, 5.44] | 39.1 % | 22.77 → 24.66 (+8.3 %) | 91.55 → 22.64 | 139.44M → 39.47M | +| `cluster_plain` | 47.60 [41.12, 53.95] | 17.70 | 9.243 | 9.225 | **5.16×** [5.04, 5.26] | 5.15× [5.04, 5.26] | 5.16 [4.85, 5.59] | 27.0 % | 16.69 → 18.72 (+12.2 %) | 91.54 → 22.63 | 139.43M → 39.46M | + +**RAL CPU, constant folding on** (`static_lattice_ab_constant_folding_hpc_ral_cpu_fp64.json`) + +| Row | control median [p10, p90] ms | exact | lattice | library | control / library [90 % CI] | control / lattice [90 % CI] | paired per-round c/lat median [p10, p90] | MDI | compile s ctrl → lib | temp MB ctrl → lib | FLOPs ctrl → lib | +|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:| +| `simple_solved` | 4.093 [3.056, 4.811] | 2.194 | 1.785 | 1.722 | **2.38×** [2.08, 2.45] | 2.29× [1.89, 2.39] | 2.12 [1.72, 2.34] | 42.9 % | 2.85 → 2.91 (+1.9 %) | 4.69 → 1.69 | 6.79M → 3.10M | +| `simple_solved_vmap4` (per batch of 4) | 7.632 [7.099, 10.500] | 5.675 | 4.982 | 5.499 | **1.39×** [1.31, 1.63] | 1.53× [1.34, 1.65] | 1.55 [1.29, 1.72] | 44.6 % | 3.22 → 3.43 (+6.4 %) | 15.34 → 6.76 | 23.02M → 11.53M | +| `simple_plain` | 3.564 [3.035, 4.800] | 2.392 | 1.689 | 1.696 | **2.10×** [1.99, 2.25] | 2.11× [2.01, 2.31] | 2.03 [1.81, 2.40] | 49.5 % | 2.44 → 2.57 (+5.2 %) | 4.69 → 1.69 | 6.79M → 3.10M | +| `cluster_solved` | 39.03 [30.66, 45.27] | 12.96 | 8.506 | 8.599 | **4.54×** [4.39, 4.64] | 4.59× [4.44, 4.70] | 4.58 [4.19, 4.94] | 37.4 % | 21.93 → 24.14 (+10.1 %) | 91.88 → 22.64 | 131.39M → 30.34M | +| `cluster_plain` | 32.34 [27.91, 37.96] | 13.43 | 8.257 | 8.273 | **3.91×** [3.83, 3.99] | 3.92× [3.84, 3.98] | 3.91 [3.58, 4.22] | 31.1 % | 16.28 → 18.97 (+16.5 %) | 91.54 → 22.63 | 131.38M → 30.33M | + +**RAL A100, fp64** (`static_lattice_ab_hpc_ral_a100_fp64.json`) + +| Row | control median [p10, p90] ms | exact | lattice | library | control / library [90 % CI] | control / lattice [90 % CI] | MDI | compile s ctrl → lib | temp MB ctrl → lib | FLOPs ctrl → lib | +|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:| +| `simple_solved` | 0.846 [0.836, 0.881] | 0.843 | 0.839 | 0.842 | **1.01×** [1.00, 1.01] | 1.01× [1.01, 1.01] | 5.3 % | 5.28 → 5.57 (+5.4 %) | 3.36 → 0.39 | 6.60M → 3.07M | +| `simple_solved_vmap4` (per batch of 4) | 0.942 [0.932, 0.974] | 0.922 | 0.925 | 0.925 | **1.02×** [1.02, 1.02] | 1.02× [1.02, 1.02] | 4.5 % | 6.28 → 6.19 (−1.5 %) | 7.83 → 1.53 | 21.98M → 10.82M | +| `simple_plain` | 0.824 [0.813, 0.871] | 0.821 | 0.818 | 0.818 | **1.01×** [1.00, 1.01] | 1.01× [1.01, 1.01] | 7.0 % | 5.19 → 5.10 (−1.6 %) | 3.36 → 0.39 | 6.60M → 3.07M | +| `cluster_solved` | 2.696 [2.601, 2.850] | 2.566 | 2.516 | 2.515 | **1.07×** [1.06, 1.09] | 1.07× [1.06, 1.08] | 9.2 % | 43.13 → 48.84 (+13.2 %) | 42.06 → 6.35 | 120.38M → 34.59M | +| `cluster_plain` | 2.073 [2.013, 2.258] | 2.002 | 1.984 | 1.991 | **1.04×** [1.04, 1.05] | 1.05× [1.04, 1.05] | 11.8 % | 36.11 → 38.76 (+7.4 %) | 42.05 → 6.35 | 120.37M → 34.57M | + +**Reading the rows.** + +- **CPU gain is material and far outside the noise.** Folding off, the library is 2.0–2.1× faster on the + simple likelihood (3.54 → 1.76 ms solved, 3.48 → 1.67 ms plain) and **5.2×** on the two-source cluster + (47.4 → 9.1 ms), with every CI and every paired per-round p10 above 1.6 (simple scalar rows) and 4.8 (cluster). + `library / lattice` is 0.99–1.05 (CIs straddle or touch 1): the shipped code reproduces the cell's + lattice route. The cluster gains more because its 276 507-row step-0 input shrinks 5.9× to 46 516 + rows and its 13-component deflections dominate the call. +- **`exact` (28 665 / 110 085 rows) captures about half the gain**; the geometric dedup to 11 859 / + 46 516 rows is the other half (exact / lattice 1.35× simple, 2.0× cluster). The human decision to + ship the geometric table is borne out. +- **`vmap`-4 gains less (1.43×)**, as in phase 2: the step-0 lattice is batch-invariant, so under `vmap` + the control already amortises its step-0 work across the batch. Per likelihood the library costs + 1.45 ms at batch 4 against 1.76 ms scalar. +- **Folding on does not change the verdict.** It speeds the control's cluster rows (47.4 → 39.0 / + 32.3 ms) because the flat step-0 table becomes a folded constant; the library is barely affected + (9.1 → 8.6 / 8.3 ms). The library still wins 2.1–2.4× simple, 1.39× vmap-4 and 3.9–4.5× cluster. + Folding also trims FLOPs (library cluster 39.5M → 30.3M). Folding stays off by default (PyAutoNerves); + nothing here argues for flipping it. +- **Compile (the open laptop question) — resolved on the quiet node.** Control → library `compile_s` + is **+3.3 % to +12.2 %** folding off and **+1.9 % to +16.5 %** folding on (worst: cluster plain 16.28 → + 18.97 s); lowering is unchanged or faster (cluster solved 30.58 → 30.03 s) and first call falls + (cluster solved 49 → 11 ms). Every row is under the +20 % stop rule. The laptop's readings (+37 % and + +63 % on some rows, −21 % on another) did not reproduce: they were load noise on single samples. Caveat: each figure is one cold + compile per route, not a median, so differences of a few percent are not resolved. +- **Memory — no regression, large reduction.** XLA temp 4.82 → 1.69 MB (simple), 91.6 → 22.6 MB + (cluster), 15.5 → 6.8 MB (vmap-4); on the A100 3.36 → 0.39 MB and 42.1 → 6.35 MB. RSS delta at compile + falls on every heavy row (cluster solved 861 → 82 MB CPU, 907 → 178 MB A100). The table itself is a + 0.75 / 2.96 MB host constant, built once per geometry. +- **A100 — no regression, a small gain.** The GPU call is launch/latency-bound, not FLOP-bound: + halving (simple) or cutting 3.5× (cluster) the FLOPs moves the call by only 1–7 % (0.846 → 0.842 ms, + 2.70 → 2.52 ms). All CIs are ≥ 1.00. Compile is −1.6 % to +13.2 % (cluster solved 43.1 → 48.8 s), under + +20 %. +- **MDI 27–50 % on the Xeon node is large**: it is per-call dispersion (p10–p90 across a 16-instance + parameter stream and 400 calls), not uncertainty of the median. The effects are 2–5×, and the + bootstrap CIs of the ratios are a few percent wide. + +### Correctness gates (RAL) + +All **31 / 31** gates in `gate_summary` pass in all three JSONs, with max |Δ| = 0 everywhere: + +- log L on all five rows, every route pair (control vs exact / lattice / library), all 16 stream + instances, **bit-identical** (NaN pattern equal), deterministic within each route; fiducial simple + solved `7.743201200876812` on every route (identical to phases 1–2); +- solved positions and image counts: simple 4 finite per instance, cluster 3 + 3, three instances each, + padded arrays equal, max |Δ| = 0.0; +- simple-solved `jax.grad`: finite, non-zero on every instance, identical between routes (Δ = 0); +- vmap-4 against scalar within each route and across routes: bit-identical; +- simple-plain step-0 `containing_indices` sets identical across routes. + +The same holds on CPU with folding on and on the A100. + +### Tie finding — human gate decision pending at ship + +Not exercised by the RAL gates (stream sources are generic). From the laptop study above: a source +placed **bit-exactly on a traced step-0 lattice vertex** can change the step-0 kept set (16 / 50 +constructed ties) and, in 1 / 13, the image count — **control 3 vs lattice 2**. The control's third image +is a **duplicate**: its two positions at the tie vertex both Newton-converge to the same root, the vertex +itself; the lattice path returns exactly the system's 2 true images. Main's own flat path is **not +self-consistent** at such ties: eager vs jit differ in image count on **22 / 25** (lattice vs flat under +jit: 1 / 25). Nudging the source by 1e-9 gives 2 images on both paths. The plan's gate asks for +"identical image counts" and so is formally failed on this constructed measure-zero case; accepting it +(as a duplicate-removal, not a lost image) is a **human decision recorded at ship**. + +### Decision — ACCEPT (pending the tie-case sign-off) + +Stop rule (PyAutoArray #568): reject if the simple gain < max(5 %, 2× MDI) with no cluster gain; any +gate fails; compile +20 %; memory or GPU regression. + +- **Gain.** Simple solved speed-up +101 % (2.01×) against 2× MDI = 69 %; cluster +421 % (5.21×) against + 78 %. The cluster clause alone rules out rejection. (Read as a fractional time reduction instead — + 50 % simple vs 69 % — the simple row alone would not clear 2× MDI on this high-dispersion node, but the + cluster's 81 % reduction does, and the paired per-round p10 is 1.79× simple / 4.91× cluster.) +- **Gates.** 31 / 31 bit-identical on CPU (both folding modes) and A100; the tie case above is the only + open item. +- **Compile.** Worst +12.2 % (folding off), +16.5 % (folding on), +13.2 % (A100): all < +20 %. +- **Memory / GPU.** XLA temp memory −56 % to −88 %; A100 1.01–1.07× faster. + +Ship library-first (PyAutoArray `ad0bf97b` → PyAutoLens `b346b6a0` → autolens_profiling), on by default +for the JAX PointSolver as decided on 2026-09-24. + +### Post-fix budget and phase-4 handoff + +After phase 3 the step-0 lattice is no longer the dominant cost on `simple`. FLOP accounting (folding +off, hardware-independent; the step-0 share is an **estimate** from the marginal FLOP per removed step-0 +row between the control and lattice routes): + +- **Simple (3.38M FLOP).** The marginal step-0 cost is (7.05 − 3.38)M / (69 849 − 11 859) ≈ 63 FLOP per + row, so the 11 859-row step 0 is ≈ 0.75M (**≈ 22 %**). The seven refinement steps' deflections + (7 × 289 599 = 2.03M, phase 2) are now **≈ 60 %**; containment, the `f64[60]` neighbourhood sorts, β\*, + the magnification filter and χ² share the remaining ≈ 0.6M (≈ 18 %). +- **Cluster (39.47M FLOP).** ≈ 435 FLOP per step-0 row → the 46 516-row step 0 is ≈ 20M (**≈ 51 %**); + the refinement steps and the rest are ≈ 19M. Deflections of the 13-component lens still dominate + both halves. +- **GPU.** The A100 call barely moved with FLOPs, so FLOP levers will not show on GPU; any GPU + work is a launch-count/latency question, separately scoped. + +**Re-ranked phase-4 levers (proposed, none measured):** + +1. **Simple: initial scale versus refinement steps (old 4(b)).** The seven refinement steps now carry + ≈ 60 % of the simple call; fewer steps at a finer step 0 (or a coarser final precision where + admissible) is the largest remaining lever. It is a correctness knob: image completeness and + position precision across a prior must be shown. +2. **Cluster: dPIE/NFW deflection cost (old 4(d)).** Deflections dominate every cluster step; this is + a separately scoped PyAutoGalaxy phase. +3. **Grid-extent guidance (old 4(a)).** Now acts on the ≈ 22 % (simple) / ≈ 51 % (cluster) step-0 + share only, plus containment; still needs image-completeness evidence. Stronger at cluster scale. +4. **`MAX_CONTAINING_SIZE` / neighbourhood fan-out (old 4(c)).** Sets the 720-point refinement grids and + the `f64[60]` sorts, so it now scales the dominant simple share; correctness knob. + +Before ranking by wall time, run the phase-1 breakdown cells on the post-phase-3 code (after release) +so the per-step time split, not only FLOPs, backs the choice. + +### Reproduce (RAL) + +```bash +# RAL worktree of feature/point-source-cpu-p3, with the PyAutoArray / PyAutoLens branch clones beside it +cd hpc/batch_cpu && sbatch submit_breakdown_point_source_static_lattice_ab_ral_cpu_fp64 # folding off, then on +cd ../batch_gpu && sbatch submit_breakdown_point_source_static_lattice_ab_a100_fp64 +``` -- RAL CPU job (`hpc/batch_cpu/submit_breakdown_point_source_static_lattice_ab_ral_cpu_fp64`, folding - off then on, pinned to `euclid-ral-compute-10-2` — the phase-1 Xeon 8490H host, because - `euclid-ral-compute-1..19` were not responding on 2026-09-24) and the A100 leg - (`hpc/batch_gpu/submit_breakdown_point_source_static_lattice_ab_a100_fp64`), both importing branch - clones of PyAutoArray `ad0bf97b` / PyAutoLens `b346b6a0`. Accept or reject by the stop rule on - those numbers: gain ≥ max(5 %, 2× MDI), compile ≤ +20 % (simple and cluster), no memory or GPU - regression, all gates. +JSONs and PNGs: [`static_lattice_ab_hpc_ral_cpu_fp64`](../breakdown/point_source/static_lattice_ab_hpc_ral_cpu_fp64.json) +([png](../breakdown/point_source/static_lattice_ab_hpc_ral_cpu_fp64.png)), +[`static_lattice_ab_constant_folding_hpc_ral_cpu_fp64`](../breakdown/point_source/static_lattice_ab_constant_folding_hpc_ral_cpu_fp64.json) +([png](../breakdown/point_source/static_lattice_ab_constant_folding_hpc_ral_cpu_fp64.png)), +[`static_lattice_ab_hpc_ral_a100_fp64`](../breakdown/point_source/static_lattice_ab_hpc_ral_a100_fp64.json) +([png](../breakdown/point_source/static_lattice_ab_hpc_ral_a100_fp64.png)). +Logs: [`point_source_cpu_2026_09_24_ral_job_350636_static_lattice_ab.out`](point_source_cpu_2026_09_24_ral_job_350636_static_lattice_ab.out), +[`point_source_cpu_2026_09_24_ral_job_350637_static_lattice_ab_a100.out`](point_source_cpu_2026_09_24_ral_job_350637_static_lattice_ab_a100.out). ## Phase 4 — profile the residue and iterate — NOT STARTED -Rank by new evidence: (a) grid-extent guidance, (b) initial scale versus -refinement count, (c) `MAX_CONTAINING_SIZE` / neighbourhood fan-out and -(d) cluster dPIE/NFW deflections. Any PyAutoGalaxy work is its own phase. +Rank by new evidence; the phase-3 re-rank above puts (b) initial scale versus refinement count +first for `simple` and (d) cluster dPIE/NFW deflections first at cluster scale, then (a) grid-extent +guidance and (c) `MAX_CONTAINING_SIZE` / neighbourhood fan-out. Any PyAutoGalaxy work is its own phase. From 9055b3b101696a49e04c2d89380854dbad8b3a4a Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Thu, 24 Sep 2026 15:17:48 +0200 Subject: [PATCH 5/6] notes(point_source): phase-3 tie case PASSED by human decision 2026-09-24, pinned as a PyAutoLens test The source-on-step-0-vertex tie (control 3 images incl. a duplicate root vs lattice 2) is accepted as duplicate removal and pinned as test__source_on_a_step_0_vertex_returns_the_two_true_images (PyAutoLens feature/point-source-cpu-p3 972d454e). README compile figures made exact. Co-Authored-By: Claude Opus 5.5 --- README.md | 6 ++--- results/notes/point_source_cpu_campaign.md | 28 ++++++++++++++-------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 824fddd00..a407d8bf5 100644 --- a/README.md +++ b/README.md @@ -269,10 +269,10 @@ separately per likelihood × transform. Standing conclusions: (46 516 vs 276 507 on the cluster; PyAutoArray #568, PyAutoLens). Four-route in-process A/B `static_lattice_ab.py`, RAL job 350636 (`ral`, pinned Xeon 8490H, 8 CPUs, folding off): simple solved 3.54 → 1.76 ms (**2.01×**), vmap-4 1.43×, two-source cluster 47.4 → 9.1 ms (**5.21×**); FLOPs −52 % / - −72 %, XLA temp 4.8 → 1.7 MB / 91.6 → 22.6 MB, compile +3–12 % (+17 % worst with constant folding on, + −72 %, XLA temp 4.8 → 1.7 MB / 91.6 → 22.6 MB, compile +3.3–12.2 % (+16.5 % worst with constant folding on, which gives 2.1–4.5× on the scalar rows). A100 (job 350637): no regression, 1.01–1.07× faster. All 31 gates bit-identical. - Accepted; a bit-exact source-on-vertex tie (control 3 images incl. a duplicate root vs lattice 2) is a - human gate decision at ship. Post-fix, the refinement-step deflections (≈ 60 % of simple FLOPs) lead phase 4. + Accepted; a bit-exact source-on-vertex tie (control 3 images incl. a duplicate root vs lattice 2) PASSED by + human decision 2026-09-24 and is pinned as a PyAutoLens test. Post-fix, the refinement-step deflections (≈ 60 % of simple FLOPs) lead phase 4. Findings: [`results/notes/point_source_cpu_campaign.md`](./results/notes/point_source_cpu_campaign.md). ## How to read this repo diff --git a/results/notes/point_source_cpu_campaign.md b/results/notes/point_source_cpu_campaign.md index f8a100cf1..b1f0fd498 100644 --- a/results/notes/point_source_cpu_campaign.md +++ b/results/notes/point_source_cpu_campaign.md @@ -2,7 +2,7 @@ Issue: [autolens_profiling #297](https://github.com/PyAutoLabs/autolens_profiling/issues/297) (phase 1); [PyAutoArray #568](https://github.com/PyAutoLabs/PyAutoArray/issues/568) (phase 2) Branch: `feature/point-source-cpu-p1` (phase 1); `feature/point-source-cpu-p2` (phase 2, PyAutoArray + autolens_profiling); `feature/point-source-cpu-p3` (phase 3, PyAutoArray + PyAutoLens + autolens_profiling) -Status: phase 1 **DONE** (RAL baseline, job 350580); phase 2 **DONE, ACCEPTED** (vertex-dedup A/B, RAL job 350582: 4.47× simple, 1.98× cluster, bit-identical; library change awaiting merge and release); phase 3 **DONE, ACCEPTED** (static step-0 lattice A/B, RAL jobs 350636 CPU / 350637 A100: CPU control → library 2.0–2.1× simple, 1.43× vmap-4, 5.2× cluster, compile +3–12 %, all 31 gates bit-identical; tie-case gate decision pending at ship); phase 4 not started +Status: phase 1 **DONE** (RAL baseline, job 350580); phase 2 **DONE, ACCEPTED** (vertex-dedup A/B, RAL job 350582: 4.47× simple, 1.98× cluster, bit-identical; library change awaiting merge and release); phase 3 **DONE, ACCEPTED** (static step-0 lattice A/B, RAL jobs 350636 CPU / 350637 A100: CPU control → library 2.0–2.1× simple, 1.43× vmap-4, 5.2× cluster, compile +3–12 %, all 31 gates bit-identical; source-on-vertex tie case PASSED by human decision 2026-09-24, pinned as PyAutoLens `test__source_on_a_step_0_vertex_returns_the_two_true_images`); phase 4 not started Instrument: [`scripts/point_source/likelihood_breakdown/image_plane.py`](../../scripts/point_source/likelihood_breakdown/image_plane.py) (shipped in #293, see [point_source_shared_likelihood_breakdown.md](point_source_shared_likelihood_breakdown.md)) and [`scripts/cluster/likelihood_breakdown/image_plane.py`](../../scripts/cluster/likelihood_breakdown/image_plane.py) @@ -825,12 +825,12 @@ control / lattice: - Laptop, both runs: 31 / 31 gates pass and are **bit-identical** (log L on every streamed instance, solved positions and image counts, `jax.grad` finite and non-zero, vmap-4 vs scalar, simple-plain step-0 `containing_indices` sets). -- PyAutoArray suite 1645 passed (+13 static-table tests); PyAutoLens suite 755 passed, 1 xfailed - (+15 JAX tests in `test_static_lattice_jax.py`, which skip without jax). The shape guard (first +- PyAutoArray suite 1645 passed (+13 static-table tests); PyAutoLens suite 756 passed, 1 xfailed + (+16 JAX tests in `test_static_lattice_jax.py`, incl. the pinned tie case, which skip without jax). The shape guard (first traced deflection grid 11 859 rows) is red on main (69 849). - autolens_workspace_test `point_source/jax_likelihood/*.py` ×4 and `jax_grad/gradient.py`: rc 0 on the branch, output identical to main except timing lines; no rtol-1e-4 pin moved. -- **Tie finding (human gate decision pending at ship; see below).** A source placed *bit-exactly* on a traced step-0 +- **Tie finding (PASSED by human decision 2026-09-24; see below).** A source placed *bit-exactly* on a traced step-0 lattice vertex changes the step-0 kept set (16 / 50 constructed ties) and, in 1 / 13, the image count: control 3, lattice 2. The control's two positions at the tie vertex (|p − v| = 9.0e-4 each, μ ≈ 4.7) both Newton-converge to the same root, the vertex itself — a duplicate; the lattice path @@ -946,7 +946,7 @@ All **31 / 31** gates in `gate_summary` pass in all three JSONs, with max |Δ| = The same holds on CPU with folding on and on the A100. -### Tie finding — human gate decision pending at ship +### Tie finding — PASSED by human decision 2026-09-24 Not exercised by the RAL gates (stream sources are generic). From the laptop study above: a source placed **bit-exactly on a traced step-0 lattice vertex** can change the step-0 kept set (16 / 50 @@ -956,9 +956,17 @@ itself; the lattice path returns exactly the system's 2 true images. Main's own self-consistent** at such ties: eager vs jit differ in image count on **22 / 25** (lattice vs flat under jit: 1 / 25). Nudging the source by 1e-9 gives 2 images on both paths. The plan's gate asks for "identical image counts" and so is formally failed on this constructed measure-zero case; accepting it -(as a duplicate-removal, not a lost image) is a **human decision recorded at ship**. +(as a duplicate-removal, not a lost image) was put to the human at ship. -### Decision — ACCEPT (pending the tie-case sign-off) +**Decision (human, 2026-09-24): PASS.** The case is accepted as the removal of a duplicate and pinned +as a regression test, PyAutoLens `test_autolens/point/triangles/test_static_lattice_jax.py::test__source_on_a_step_0_vertex_returns_the_two_true_images` +(branch `feature/point-source-cpu-p3` `972d454e`): the simple SIE of the cell, source on the image of +step-0 vertex v = (−0.8, −1.99185843) (flat vertex 31 732), solved under `jit` with the source a traced +input; the static-lattice solver must return exactly the 2 true images (v and the counter-image +~(0.41013634, 0.89463539)) within 2 × `pixel_scale_precision`. With the source a closed-over constant +instead, the flat path also returns 2 here — one more face of the flat path's instability at ties. + +### Decision — ACCEPT Stop rule (PyAutoArray #568): reject if the simple gain < max(5 %, 2× MDI) with no cluster gain; any gate fails; compile +20 %; memory or GPU regression. @@ -967,12 +975,12 @@ gate fails; compile +20 %; memory or GPU regression. 78 %. The cluster clause alone rules out rejection. (Read as a fractional time reduction instead — 50 % simple vs 69 % — the simple row alone would not clear 2× MDI on this high-dispersion node, but the cluster's 81 % reduction does, and the paired per-round p10 is 1.79× simple / 4.91× cluster.) -- **Gates.** 31 / 31 bit-identical on CPU (both folding modes) and A100; the tie case above is the only - open item. +- **Gates.** 31 / 31 bit-identical on CPU (both folding modes) and A100; the tie case above PASSED by + human decision 2026-09-24 and is pinned as a PyAutoLens test. - **Compile.** Worst +12.2 % (folding off), +16.5 % (folding on), +13.2 % (A100): all < +20 %. - **Memory / GPU.** XLA temp memory −56 % to −88 %; A100 1.01–1.07× faster. -Ship library-first (PyAutoArray `ad0bf97b` → PyAutoLens `b346b6a0` → autolens_profiling), on by default +Ship library-first (PyAutoArray `ad0bf97b` → PyAutoLens `b346b6a0` + tie test `972d454e` → autolens_profiling), on by default for the JAX PointSolver as decided on 2026-09-24. ### Post-fix budget and phase-4 handoff From 629ce0c1b1cf92d2eb6bc6a8fc3ec576f4505657 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Thu, 24 Sep 2026 15:20:10 +0200 Subject: [PATCH 6/6] notes(point_source): phase-3 PyAutoArray test count is +19 cases (10 -> 29) Co-Authored-By: Claude Opus 5.5 --- results/notes/point_source_cpu_campaign.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/results/notes/point_source_cpu_campaign.md b/results/notes/point_source_cpu_campaign.md index b1f0fd498..a5f8b6acb 100644 --- a/results/notes/point_source_cpu_campaign.md +++ b/results/notes/point_source_cpu_campaign.md @@ -825,7 +825,7 @@ control / lattice: - Laptop, both runs: 31 / 31 gates pass and are **bit-identical** (log L on every streamed instance, solved positions and image counts, `jax.grad` finite and non-zero, vmap-4 vs scalar, simple-plain step-0 `containing_indices` sets). -- PyAutoArray suite 1645 passed (+13 static-table tests); PyAutoLens suite 756 passed, 1 xfailed +- PyAutoArray suite 1645 passed (+19 static-table test cases); PyAutoLens suite 756 passed, 1 xfailed (+16 JAX tests in `test_static_lattice_jax.py`, incl. the pinned tie case, which skip without jax). The shape guard (first traced deflection grid 11 859 rows) is red on main (69 849). - autolens_workspace_test `point_source/jax_likelihood/*.py` ×4 and `jax_grad/gradient.py`: rc 0 on