date: 2026-09-15T09:38:04Z
os: Darwin 25.2.0 arm64
macos: 26.2 (25C56)
cpu: Apple M4 Pro
logical cpus: 14
performance cores: 10  efficiency cores: 4  smt: none
P-core L1d: 131072 B  L2 (shared per cluster of 5): 16777216 B
E-core L1d: 65536 B  L2 (shared per cluster of 4): 4194304 B
cache line: 128 B  page: 16384 B  memory: 24 GiB
isa features: CRC32 FlagM FlagM2 FHM DotProd SHA3 RDM LSE SHA256 SHA512 SHA1 AES PMULL SB FRINTTS PACIMP LRCPC LRCPC2 FCMA JSCVT PAuth PAuth2 FPAC FPACCOMBINE DPB DPB2 BF16 I8MM WFxT RPRES ECV AFP LSE2 CSV2 CSV3 DIT FP16 BTI SME SME2 SME_F64F64 SME_I16I64 
power: 'AC Power'
load average at start: 7.02 7.46 7.78
frequency: not published by the vendor for this part; see estimated clock below
compiler: Apple clang version 17.0.0 (clang-1700.4.4.1)
estimated clock: 4.50 GHz (dependent 1-cycle add chain, 400000000 adds, min of 7 runs)
bench: QUICK=0 REPS=default CLOCK_GHZ=4.50
--- bench_O2
build: O2 = -std=c11 -Wall -Wextra -O2
clock estimate 4.50 GHz  reps 31  quick 0  probe 0
RESULT clock 4.50 GHz
size: n 4194304 floats, 16777216 bytes per array, 50331648 bytes for the three arrays, 1 calls per sample, reps 31 (plus 1 warmup, discarded)
checksum: out of place 0xf2b41bddb9818632, in place after 1 calls 0xf2b41bddb9818632
RESULT O2_n4194304_checksum 0xf2b41bddb9818632 hash
O2 n4194304 plain                        min        0.089  median        0.095  max        0.112  cv   3.7%  n 31  ns/elem
RESULT O2_n4194304_plain_median 0.0947 ns/elem
RESULT O2_n4194304_plain_min 0.0885 ns/elem
RESULT O2_n4194304_plain_cv 3.70 percent
O2 n4194304 restrict                     min        0.088  median        0.096  max        0.110  cv   3.6%  n 31  ns/elem
RESULT O2_n4194304_restrict_median 0.0956 ns/elem
RESULT O2_n4194304_restrict_min 0.0879 ns/elem
RESULT O2_n4194304_restrict_cv 3.63 percent
O2 n4194304 pragma                       min        0.092  median        0.096  max        0.111  cv   4.1%  n 31  ns/elem
RESULT O2_n4194304_pragma_median 0.0957 ns/elem
RESULT O2_n4194304_pragma_min 0.0918 ns/elem
RESULT O2_n4194304_pragma_cv 4.07 percent
O2 n4194304 stride                       min        0.088  median        0.095  max        0.099  cv   2.5%  n 31  ns/elem
RESULT O2_n4194304_stride_median 0.0948 ns/elem
RESULT O2_n4194304_stride_min 0.0879 ns/elem
RESULT O2_n4194304_stride_cv 2.54 percent
O2 n4194304 last                         min        0.089  median        0.096  max        0.106  cv   3.0%  n 31  ns/elem
RESULT O2_n4194304_last_median 0.0958 ns/elem
RESULT O2_n4194304_last_min 0.0887 ns/elem
RESULT O2_n4194304_last_cv 3.04 percent
O2 n4194304 scalar                       min        0.234  median        0.249  max        0.285  cv   3.0%  n 31  ns/elem
RESULT O2_n4194304_scalar_median 0.2487 ns/elem
RESULT O2_n4194304_scalar_min 0.2339 ns/elem
RESULT O2_n4194304_scalar_cv 3.04 percent
O2 n4194304 plain in place               min        0.246  median        0.250  max        0.262  cv   1.3%  n 31  ns/elem
RESULT O2_n4194304_plain_inplace_median 0.2504 ns/elem
RESULT O2_n4194304_plain_inplace_min 0.2464 ns/elem
RESULT O2_n4194304_plain_inplace_cv 1.26 percent
O2 n4194304 pragma in place              min        0.078  median        0.080  max        0.083  cv   1.7%  n 31  ns/elem
RESULT O2_n4194304_pragma_inplace_median 0.0798 ns/elem
RESULT O2_n4194304_pragma_inplace_min 0.0777 ns/elem
RESULT O2_n4194304_pragma_inplace_cv 1.67 percent
O2 n4194304 restrict / plain             min        0.938  median        1.005  max        1.115  cv   3.3%  n 31  ratio, paired per round
RESULT O2_n4194304_restrict_vsplain 1.005 ratio
RESULT O2_n4194304_restrict_vsplaincv 3.26 percent
O2 n4194304 pragma / plain               min        0.962  median        1.002  max        1.168  cv   3.8%  n 31  ratio, paired per round
RESULT O2_n4194304_pragma_vsplain 1.002 ratio
RESULT O2_n4194304_pragma_vsplaincv 3.76 percent
O2 n4194304 stride / plain               min        0.884  median        0.996  max        1.073  cv   3.4%  n 31  ratio, paired per round
RESULT O2_n4194304_stride_vsplain 0.996 ratio
RESULT O2_n4194304_stride_vsplaincv 3.40 percent
O2 n4194304 last / plain                 min        0.941  median        1.010  max        1.092  cv   2.7%  n 31  ratio, paired per round
RESULT O2_n4194304_last_vsplain 1.010 ratio
RESULT O2_n4194304_last_vsplaincv 2.72 percent
O2 n4194304 scalar / plain               min        2.466  median        2.616  max        2.802  cv   2.6%  n 31  ratio, paired per round
RESULT O2_n4194304_scalar_vsplain 2.616 ratio
RESULT O2_n4194304_scalar_vsplaincv 2.55 percent
O2 n4194304 plain in place / plain       min        2.228  median        2.641  max        2.836  cv   3.4%  n 31  ratio, paired per round
RESULT O2_n4194304_plain_inplace_vsplain 2.641 ratio
RESULT O2_n4194304_plain_inplace_vsplaincv 3.37 percent
O2 n4194304 plain in place / pragma in place min        3.033  median        3.128  max        3.294  cv   1.7%  n 31  ratio, paired per round
RESULT O2_n4194304_pragma_inplace_vspragmainplace 3.128 ratio
RESULT O2_n4194304_pragma_inplace_vspragmainplacecv 1.66 percent
size: n 8192 floats, 32768 bytes per array, 98304 bytes for the three arrays, 32 calls per sample, reps 31 (plus 1 warmup, discarded)
checksum: out of place 0x5abbee151d89e35f, in place after 32 calls 0xc8959109664e8886
RESULT O2_n8192_checksum 0x5abbee151d89e35f hash
O2 n8192 plain                           min        0.042  median        0.047  max        0.052  cv   5.2%  n 31  ns/elem
RESULT O2_n8192_plain_median 0.0471 ns/elem
RESULT O2_n8192_plain_min 0.0420 ns/elem
RESULT O2_n8192_plain_cv 5.21 percent
O2 n8192 restrict                        min        0.042  median        0.047  max        0.059  cv   7.3%  n 31  ns/elem
RESULT O2_n8192_restrict_median 0.0469 ns/elem
RESULT O2_n8192_restrict_min 0.0421 ns/elem
RESULT O2_n8192_restrict_cv 7.34 percent
O2 n8192 pragma                          min        0.042  median        0.047  max        0.055  cv   6.0%  n 31  ns/elem
RESULT O2_n8192_pragma_median 0.0471 ns/elem
RESULT O2_n8192_pragma_min 0.0421 ns/elem
RESULT O2_n8192_pragma_cv 6.02 percent
O2 n8192 stride                          min        0.042  median        0.047  max        0.058  cv   6.7%  n 31  ns/elem
RESULT O2_n8192_stride_median 0.0472 ns/elem
RESULT O2_n8192_stride_min 0.0421 ns/elem
RESULT O2_n8192_stride_cv 6.74 percent
O2 n8192 last                            min        0.042  median        0.047  max        0.057  cv   6.7%  n 31  ns/elem
RESULT O2_n8192_last_median 0.0471 ns/elem
RESULT O2_n8192_last_min 0.0423 ns/elem
RESULT O2_n8192_last_cv 6.70 percent
O2 n8192 scalar                          min        0.223  median        0.249  max        0.284  cv   5.5%  n 31  ns/elem
RESULT O2_n8192_scalar_median 0.2487 ns/elem
RESULT O2_n8192_scalar_min 0.2230 ns/elem
RESULT O2_n8192_scalar_cv 5.53 percent
O2 n8192 plain in place                  min        0.223  median        0.249  max        0.281  cv   4.8%  n 31  ns/elem
RESULT O2_n8192_plain_inplace_median 0.2487 ns/elem
RESULT O2_n8192_plain_inplace_min 0.2230 ns/elem
RESULT O2_n8192_plain_inplace_cv 4.76 percent
O2 n8192 pragma in place                 min        0.042  median        0.047  max        0.051  cv   5.1%  n 31  ns/elem
RESULT O2_n8192_pragma_inplace_median 0.0474 ns/elem
RESULT O2_n8192_pragma_inplace_min 0.0423 ns/elem
RESULT O2_n8192_pragma_inplace_cv 5.12 percent
O2 n8192 restrict / plain                min        0.855  median        1.000  max        1.243  cv   8.5%  n 31  ratio, paired per round
RESULT O2_n8192_restrict_vsplain 1.000 ratio
RESULT O2_n8192_restrict_vsplaincv 8.53 percent
O2 n8192 pragma / plain                  min        0.855  median        1.000  max        1.169  cv   7.4%  n 31  ratio, paired per round
RESULT O2_n8192_pragma_vsplain 1.000 ratio
RESULT O2_n8192_pragma_vsplaincv 7.40 percent
O2 n8192 stride / plain                  min        0.829  median        1.003  max        1.331  cv   8.3%  n 31  ratio, paired per round
RESULT O2_n8192_stride_vsplain 1.003 ratio
RESULT O2_n8192_stride_vsplaincv 8.34 percent
O2 n8192 last / plain                    min        0.861  median        1.000  max        1.207  cv   7.6%  n 31  ratio, paired per round
RESULT O2_n8192_last_vsplain 1.000 ratio
RESULT O2_n8192_last_vsplaincv 7.56 percent
O2 n8192 scalar / plain                  min        4.886  median        5.291  max        6.598  cv   7.0%  n 31  ratio, paired per round
RESULT O2_n8192_scalar_vsplain 5.291 ratio
RESULT O2_n8192_scalar_vsplaincv 7.05 percent
O2 n8192 plain in place / plain          min        4.712  median        5.294  max        5.913  cv   5.5%  n 31  ratio, paired per round
RESULT O2_n8192_plain_inplace_vsplain 5.294 ratio
RESULT O2_n8192_plain_inplace_vsplaincv 5.48 percent
O2 n8192 plain in place / pragma in place min        4.690  median        5.269  max        6.476  cv   6.6%  n 31  ratio, paired per round
RESULT O2_n8192_pragma_inplace_vspragmainplace 5.269 ratio
RESULT O2_n8192_pragma_inplace_vspragmainplacecv 6.60 percent
outputs: every variant matched the reference bit for bit
--- bench_O2nu
build: O2nu = -std=c11 -Wall -Wextra -O2 -fno-unroll-loops
clock estimate 4.50 GHz  reps 31  quick 0  probe 0
RESULT clock 4.50 GHz
size: n 4194304 floats, 16777216 bytes per array, 50331648 bytes for the three arrays, 1 calls per sample, reps 31 (plus 1 warmup, discarded)
checksum: out of place 0xf2b41bddb9818632, in place after 1 calls 0xf2b41bddb9818632
RESULT O2nu_n4194304_checksum 0xf2b41bddb9818632 hash
O2nu n4194304 plain                      min        0.088  median        0.096  max        0.102  cv   2.3%  n 31  ns/elem
RESULT O2nu_n4194304_plain_median 0.0962 ns/elem
RESULT O2nu_n4194304_plain_min 0.0884 ns/elem
RESULT O2nu_n4194304_plain_cv 2.28 percent
O2nu n4194304 restrict                   min        0.088  median        0.096  max        0.100  cv   2.1%  n 31  ns/elem
RESULT O2nu_n4194304_restrict_median 0.0965 ns/elem
RESULT O2nu_n4194304_restrict_min 0.0876 ns/elem
RESULT O2nu_n4194304_restrict_cv 2.10 percent
O2nu n4194304 pragma                     min        0.087  median        0.096  max        0.099  cv   2.0%  n 31  ns/elem
RESULT O2nu_n4194304_pragma_median 0.0963 ns/elem
RESULT O2nu_n4194304_pragma_min 0.0874 ns/elem
RESULT O2nu_n4194304_pragma_cv 2.02 percent
O2nu n4194304 stride                     min        0.088  median        0.096  max        0.100  cv   2.1%  n 31  ns/elem
RESULT O2nu_n4194304_stride_median 0.0962 ns/elem
RESULT O2nu_n4194304_stride_min 0.0880 ns/elem
RESULT O2nu_n4194304_stride_cv 2.14 percent
O2nu n4194304 last                       min        0.095  median        0.096  max        0.100  cv   1.4%  n 31  ns/elem
RESULT O2nu_n4194304_last_median 0.0961 ns/elem
RESULT O2nu_n4194304_last_min 0.0947 ns/elem
RESULT O2nu_n4194304_last_cv 1.38 percent
O2nu n4194304 scalar                     min        0.226  median        0.248  max        0.253  cv   1.8%  n 31  ns/elem
RESULT O2nu_n4194304_scalar_median 0.2482 ns/elem
RESULT O2nu_n4194304_scalar_min 0.2258 ns/elem
RESULT O2nu_n4194304_scalar_cv 1.76 percent
O2nu n4194304 plain in place             min        0.229  median        0.250  max        0.254  cv   2.0%  n 31  ns/elem
RESULT O2nu_n4194304_plain_inplace_median 0.2505 ns/elem
RESULT O2nu_n4194304_plain_inplace_min 0.2287 ns/elem
RESULT O2nu_n4194304_plain_inplace_cv 2.00 percent
O2nu n4194304 pragma in place            min        0.078  median        0.080  max        0.083  cv   1.3%  n 31  ns/elem
RESULT O2nu_n4194304_pragma_inplace_median 0.0804 ns/elem
RESULT O2nu_n4194304_pragma_inplace_min 0.0784 ns/elem
RESULT O2nu_n4194304_pragma_inplace_cv 1.29 percent
O2nu n4194304 restrict / plain           min        0.902  median        0.999  max        1.097  cv   3.1%  n 31  ratio, paired per round
RESULT O2nu_n4194304_restrict_vsplain 0.999 ratio
RESULT O2nu_n4194304_restrict_vsplaincv 3.13 percent
O2nu n4194304 pragma / plain             min        0.900  median        0.999  max        1.093  cv   2.9%  n 31  ratio, paired per round
RESULT O2nu_n4194304_pragma_vsplain 0.999 ratio
RESULT O2nu_n4194304_pragma_vsplaincv 2.91 percent
O2nu n4194304 stride / plain             min        0.957  median        0.995  max        1.042  cv   2.0%  n 31  ratio, paired per round
RESULT O2nu_n4194304_stride_vsplain 0.995 ratio
RESULT O2nu_n4194304_stride_vsplaincv 1.99 percent
O2nu n4194304 last / plain               min        0.964  median        0.997  max        1.079  cv   2.3%  n 31  ratio, paired per round
RESULT O2nu_n4194304_last_vsplain 0.997 ratio
RESULT O2nu_n4194304_last_vsplaincv 2.29 percent
O2nu n4194304 scalar / plain             min        2.366  median        2.573  max        2.819  cv   2.8%  n 31  ratio, paired per round
RESULT O2nu_n4194304_scalar_vsplain 2.573 ratio
RESULT O2nu_n4194304_scalar_vsplaincv 2.85 percent
O2nu n4194304 plain in place / plain     min        2.343  median        2.591  max        2.749  cv   2.9%  n 31  ratio, paired per round
RESULT O2nu_n4194304_plain_inplace_vsplain 2.591 ratio
RESULT O2nu_n4194304_plain_inplace_vsplaincv 2.91 percent
O2nu n4194304 plain in place / pragma in place min        2.834  median        3.105  max        3.160  cv   2.0%  n 31  ratio, paired per round
RESULT O2nu_n4194304_pragma_inplace_vspragmainplace 3.105 ratio
RESULT O2nu_n4194304_pragma_inplace_vspragmainplacecv 2.03 percent
size: n 8192 floats, 32768 bytes per array, 98304 bytes for the three arrays, 32 calls per sample, reps 31 (plus 1 warmup, discarded)
checksum: out of place 0x5abbee151d89e35f, in place after 32 calls 0xc8959109664e8886
RESULT O2nu_n8192_checksum 0x5abbee151d89e35f hash
O2nu n8192 plain                         min        0.056  median        0.063  max        0.064  cv   3.5%  n 31  ns/elem
RESULT O2nu_n8192_plain_median 0.0631 ns/elem
RESULT O2nu_n8192_plain_min 0.0564 ns/elem
RESULT O2nu_n8192_plain_cv 3.55 percent
O2nu n8192 restrict                      min        0.056  median        0.063  max        0.064  cv   4.1%  n 31  ns/elem
RESULT O2nu_n8192_restrict_median 0.0629 ns/elem
RESULT O2nu_n8192_restrict_min 0.0564 ns/elem
RESULT O2nu_n8192_restrict_cv 4.11 percent
O2nu n8192 pragma                        min        0.057  median        0.063  max        0.064  cv   4.3%  n 31  ns/elem
RESULT O2nu_n8192_pragma_median 0.0633 ns/elem
RESULT O2nu_n8192_pragma_min 0.0567 ns/elem
RESULT O2nu_n8192_pragma_cv 4.27 percent
O2nu n8192 stride                        min        0.056  median        0.063  max        0.079  cv   6.4%  n 31  ns/elem
RESULT O2nu_n8192_stride_median 0.0629 ns/elem
RESULT O2nu_n8192_stride_min 0.0564 ns/elem
RESULT O2nu_n8192_stride_cv 6.40 percent
O2nu n8192 last                          min        0.057  median        0.063  max        0.064  cv   3.1%  n 31  ns/elem
RESULT O2nu_n8192_last_median 0.0634 ns/elem
RESULT O2nu_n8192_last_min 0.0569 ns/elem
RESULT O2nu_n8192_last_cv 3.11 percent
O2nu n8192 scalar                        min        0.223  median        0.248  max        0.256  cv   2.9%  n 31  ns/elem
RESULT O2nu_n8192_scalar_median 0.2484 ns/elem
RESULT O2nu_n8192_scalar_min 0.2230 ns/elem
RESULT O2nu_n8192_scalar_cv 2.93 percent
O2nu n8192 plain in place                min        0.223  median        0.249  max        0.253  cv   4.1%  n 31  ns/elem
RESULT O2nu_n8192_plain_inplace_median 0.2486 ns/elem
RESULT O2nu_n8192_plain_inplace_min 0.2230 ns/elem
RESULT O2nu_n8192_plain_inplace_cv 4.05 percent
O2nu n8192 pragma in place               min        0.057  median        0.064  max        0.081  cv   6.7%  n 31  ns/elem
RESULT O2nu_n8192_pragma_inplace_median 0.0636 ns/elem
RESULT O2nu_n8192_pragma_inplace_min 0.0569 ns/elem
RESULT O2nu_n8192_pragma_inplace_cv 6.70 percent
O2nu n8192 restrict / plain              min        0.894  median        0.998  max        1.118  cv   4.7%  n 31  ratio, paired per round
RESULT O2nu_n8192_restrict_vsplain 0.998 ratio
RESULT O2nu_n8192_restrict_vsplaincv 4.66 percent
O2nu n8192 pragma / plain                min        0.899  median        1.000  max        1.124  cv   5.6%  n 31  ratio, paired per round
RESULT O2nu_n8192_pragma_vsplain 1.000 ratio
RESULT O2nu_n8192_pragma_vsplaincv 5.58 percent
O2nu n8192 stride / plain                min        0.892  median        1.000  max        1.270  cv   7.5%  n 31  ratio, paired per round
RESULT O2nu_n8192_stride_vsplain 1.000 ratio
RESULT O2nu_n8192_stride_vsplaincv 7.50 percent
O2nu n8192 last / plain                  min        0.902  median        1.005  max        1.124  cv   4.1%  n 31  ratio, paired per round
RESULT O2nu_n8192_last_vsplain 1.005 ratio
RESULT O2nu_n8192_last_vsplaincv 4.06 percent
O2nu n8192 scalar / plain                min        3.507  median        3.934  max        4.400  cv   5.0%  n 31  ratio, paired per round
RESULT O2nu_n8192_scalar_vsplain 3.934 ratio
RESULT O2nu_n8192_scalar_vsplaincv 5.04 percent
O2nu n8192 plain in place / plain        min        3.519  median        3.935  max        4.219  cv   4.4%  n 31  ratio, paired per round
RESULT O2nu_n8192_plain_inplace_vsplain 3.935 ratio
RESULT O2nu_n8192_plain_inplace_vsplaincv 4.41 percent
O2nu n8192 plain in place / pragma in place min        3.073  median        3.905  max        4.369  cv   6.7%  n 31  ratio, paired per round
RESULT O2nu_n8192_pragma_inplace_vspragmainplace 3.905 ratio
RESULT O2nu_n8192_pragma_inplace_vspragmainplacecv 6.74 percent
outputs: every variant matched the reference bit for bit
--- bench_O3
build: O3 = -std=c11 -Wall -Wextra -O3
clock estimate 4.50 GHz  reps 31  quick 0  probe 0
RESULT clock 4.50 GHz
size: n 4194304 floats, 16777216 bytes per array, 50331648 bytes for the three arrays, 1 calls per sample, reps 31 (plus 1 warmup, discarded)
checksum: out of place 0xf2b41bddb9818632, in place after 1 calls 0xf2b41bddb9818632
RESULT O3_n4194304_checksum 0xf2b41bddb9818632 hash
O3 n4194304 plain                        min        0.089  median        0.096  max        0.101  cv   2.3%  n 31  ns/elem
RESULT O3_n4194304_plain_median 0.0958 ns/elem
RESULT O3_n4194304_plain_min 0.0894 ns/elem
RESULT O3_n4194304_plain_cv 2.28 percent
O3 n4194304 restrict                     min        0.091  median        0.096  max        0.114  cv   3.9%  n 31  ns/elem
RESULT O3_n4194304_restrict_median 0.0961 ns/elem
RESULT O3_n4194304_restrict_min 0.0905 ns/elem
RESULT O3_n4194304_restrict_cv 3.91 percent
O3 n4194304 pragma                       min        0.092  median        0.096  max        0.110  cv   3.0%  n 31  ns/elem
RESULT O3_n4194304_pragma_median 0.0958 ns/elem
RESULT O3_n4194304_pragma_min 0.0918 ns/elem
RESULT O3_n4194304_pragma_cv 2.98 percent
O3 n4194304 stride                       min        0.088  median        0.096  max        0.108  cv   3.3%  n 31  ns/elem
RESULT O3_n4194304_stride_median 0.0958 ns/elem
RESULT O3_n4194304_stride_min 0.0883 ns/elem
RESULT O3_n4194304_stride_cv 3.32 percent
O3 n4194304 last                         min        0.088  median        0.096  max        0.099  cv   2.2%  n 31  ns/elem
RESULT O3_n4194304_last_median 0.0958 ns/elem
RESULT O3_n4194304_last_min 0.0880 ns/elem
RESULT O3_n4194304_last_cv 2.21 percent
O3 n4194304 scalar                       min        0.226  median        0.249  max        0.260  cv   2.4%  n 31  ns/elem
RESULT O3_n4194304_scalar_median 0.2487 ns/elem
RESULT O3_n4194304_scalar_min 0.2261 ns/elem
RESULT O3_n4194304_scalar_cv 2.40 percent
O3 n4194304 plain in place               min        0.236  median        0.251  max        0.253  cv   1.1%  n 31  ns/elem
RESULT O3_n4194304_plain_inplace_median 0.2512 ns/elem
RESULT O3_n4194304_plain_inplace_min 0.2360 ns/elem
RESULT O3_n4194304_plain_inplace_cv 1.15 percent
O3 n4194304 pragma in place              min        0.073  median        0.080  max        0.082  cv   2.1%  n 31  ns/elem
RESULT O3_n4194304_pragma_inplace_median 0.0798 ns/elem
RESULT O3_n4194304_pragma_inplace_min 0.0734 ns/elem
RESULT O3_n4194304_pragma_inplace_cv 2.08 percent
O3 n4194304 restrict / plain             min        0.953  median        0.995  max        1.193  cv   4.6%  n 31  ratio, paired per round
RESULT O3_n4194304_restrict_vsplain 0.995 ratio
RESULT O3_n4194304_restrict_vsplaincv 4.65 percent
O3 n4194304 pragma / plain               min        0.949  median        0.998  max        1.170  cv   3.9%  n 31  ratio, paired per round
RESULT O3_n4194304_pragma_vsplain 0.998 ratio
RESULT O3_n4194304_pragma_vsplaincv 3.86 percent
O3 n4194304 stride / plain               min        0.926  median        1.000  max        1.129  cv   3.7%  n 31  ratio, paired per round
RESULT O3_n4194304_stride_vsplain 1.000 ratio
RESULT O3_n4194304_stride_vsplaincv 3.67 percent
O3 n4194304 last / plain                 min        0.923  median        1.009  max        1.048  cv   2.7%  n 31  ratio, paired per round
RESULT O3_n4194304_last_vsplain 1.009 ratio
RESULT O3_n4194304_last_vsplaincv 2.67 percent
O3 n4194304 scalar / plain               min        2.231  median        2.606  max        2.769  cv   3.7%  n 31  ratio, paired per round
RESULT O3_n4194304_scalar_vsplain 2.606 ratio
RESULT O3_n4194304_scalar_vsplaincv 3.73 percent
O3 n4194304 plain in place / plain       min        2.473  median        2.626  max        2.826  cv   2.3%  n 31  ratio, paired per round
RESULT O3_n4194304_plain_inplace_vsplain 2.626 ratio
RESULT O3_n4194304_plain_inplace_vsplaincv 2.34 percent
O3 n4194304 plain in place / pragma in place min        3.035  median        3.142  max        3.396  cv   2.1%  n 31  ratio, paired per round
RESULT O3_n4194304_pragma_inplace_vspragmainplace 3.142 ratio
RESULT O3_n4194304_pragma_inplace_vspragmainplacecv 2.11 percent
size: n 8192 floats, 32768 bytes per array, 98304 bytes for the three arrays, 32 calls per sample, reps 31 (plus 1 warmup, discarded)
checksum: out of place 0x5abbee151d89e35f, in place after 32 calls 0xc8959109664e8886
RESULT O3_n8192_checksum 0x5abbee151d89e35f hash
O3 n8192 plain                           min        0.042  median        0.047  max        0.068  cv   8.6%  n 31  ns/elem
RESULT O3_n8192_plain_median 0.0470 ns/elem
RESULT O3_n8192_plain_min 0.0421 ns/elem
RESULT O3_n8192_plain_cv 8.57 percent
O3 n8192 restrict                        min        0.042  median        0.047  max        0.061  cv   6.4%  n 31  ns/elem
RESULT O3_n8192_restrict_median 0.0470 ns/elem
RESULT O3_n8192_restrict_min 0.0420 ns/elem
RESULT O3_n8192_restrict_cv 6.38 percent
O3 n8192 pragma                          min        0.042  median        0.047  max        0.048  cv   4.9%  n 31  ns/elem
RESULT O3_n8192_pragma_median 0.0470 ns/elem
RESULT O3_n8192_pragma_min 0.0420 ns/elem
RESULT O3_n8192_pragma_cv 4.89 percent
O3 n8192 stride                          min        0.042  median        0.047  max        0.048  cv   4.7%  n 31  ns/elem
RESULT O3_n8192_stride_median 0.0470 ns/elem
RESULT O3_n8192_stride_min 0.0421 ns/elem
RESULT O3_n8192_stride_cv 4.74 percent
O3 n8192 last                            min        0.042  median        0.047  max        0.054  cv   4.9%  n 31  ns/elem
RESULT O3_n8192_last_median 0.0470 ns/elem
RESULT O3_n8192_last_min 0.0421 ns/elem
RESULT O3_n8192_last_cv 4.85 percent
O3 n8192 scalar                          min        0.224  median        0.248  max        0.250  cv   2.8%  n 31  ns/elem
RESULT O3_n8192_scalar_median 0.2483 ns/elem
RESULT O3_n8192_scalar_min 0.2240 ns/elem
RESULT O3_n8192_scalar_cv 2.84 percent
O3 n8192 plain in place                  min        0.223  median        0.249  max        0.265  cv   3.0%  n 31  ns/elem
RESULT O3_n8192_plain_inplace_median 0.2487 ns/elem
RESULT O3_n8192_plain_inplace_min 0.2227 ns/elem
RESULT O3_n8192_plain_inplace_cv 3.03 percent
O3 n8192 pragma in place                 min        0.042  median        0.047  max        0.066  cv   9.9%  n 31  ns/elem
RESULT O3_n8192_pragma_inplace_median 0.0472 ns/elem
RESULT O3_n8192_pragma_inplace_min 0.0421 ns/elem
RESULT O3_n8192_pragma_inplace_cv 9.90 percent
O3 n8192 restrict / plain                min        0.699  median        1.000  max        1.262  cv   7.3%  n 31  ratio, paired per round
RESULT O3_n8192_restrict_vsplain 1.000 ratio
RESULT O3_n8192_restrict_vsplaincv 7.25 percent
O3 n8192 pragma / plain                  min        0.692  median        1.000  max        1.017  cv   6.9%  n 31  ratio, paired per round
RESULT O3_n8192_pragma_vsplain 1.000 ratio
RESULT O3_n8192_pragma_vsplaincv 6.85 percent
O3 n8192 stride / plain                  min        0.701  median        1.000  max        1.117  cv   7.9%  n 31  ratio, paired per round
RESULT O3_n8192_stride_vsplain 1.000 ratio
RESULT O3_n8192_stride_vsplaincv 7.88 percent
O3 n8192 last / plain                    min        0.792  median        1.000  max        1.117  cv   5.9%  n 31  ratio, paired per round
RESULT O3_n8192_last_vsplain 1.000 ratio
RESULT O3_n8192_last_vsplaincv 5.92 percent
O3 n8192 scalar / plain                  min        3.678  median        5.274  max        5.872  cv   6.9%  n 31  ratio, paired per round
RESULT O3_n8192_scalar_vsplain 5.274 ratio
RESULT O3_n8192_scalar_vsplaincv 6.91 percent
O3 n8192 plain in place / plain          min        3.654  median        5.284  max        5.905  cv   7.3%  n 31  ratio, paired per round
RESULT O3_n8192_plain_inplace_vsplain 5.284 ratio
RESULT O3_n8192_plain_inplace_vsplaincv 7.30 percent
O3 n8192 plain in place / pragma in place min        3.671  median        5.284  max        5.884  cv   8.4%  n 31  ratio, paired per round
RESULT O3_n8192_pragma_inplace_vspragmainplace 5.284 ratio
RESULT O3_n8192_pragma_inplace_vspragmainplacecv 8.42 percent
outputs: every variant matched the reference bit for bit
--- bench_O2 PROBE=1
build: O2probe = -std=c11 -Wall -Wextra -O2 PROBE=1
clock estimate 4.50 GHz  reps 31  quick 0  probe 1
RESULT clock 4.50 GHz
cycles: each pass is converted with the clock sampled just before it (min of three dependent integer add chains of 32000 adds), then the median of the conversions is taken
size: n 4194304 floats, 16777216 bytes per array, 50331648 bytes for the three arrays, 1 calls per sample, reps 31 (plus 1 warmup, discarded)
checksum: out of place 0xf2b41bddb9818632, in place after 1 calls 0xf2b41bddb9818632
RESULT O2probe_n4194304_checksum 0xf2b41bddb9818632 hash
O2probe n4194304 plain                   min        0.089  median        0.096  max        0.105  cv   3.0%  n 31  ns/elem
RESULT O2probe_n4194304_plain_median 0.0962 ns/elem
RESULT O2probe_n4194304_plain_min 0.0889 ns/elem
RESULT O2probe_n4194304_plain_cv 3.03 percent
RESULT O2probe_n4194304_plain_cycles 0.394 cycles/elem
O2probe n4194304 restrict                min        0.095  median        0.096  max        0.100  cv   1.3%  n 31  ns/elem
RESULT O2probe_n4194304_restrict_median 0.0960 ns/elem
RESULT O2probe_n4194304_restrict_min 0.0950 ns/elem
RESULT O2probe_n4194304_restrict_cv 1.26 percent
RESULT O2probe_n4194304_restrict_cycles 0.394 cycles/elem
O2probe n4194304 pragma                  min        0.093  median        0.096  max        0.108  cv   2.7%  n 31  ns/elem
RESULT O2probe_n4194304_pragma_median 0.0965 ns/elem
RESULT O2probe_n4194304_pragma_min 0.0930 ns/elem
RESULT O2probe_n4194304_pragma_cv 2.67 percent
RESULT O2probe_n4194304_pragma_cycles 0.393 cycles/elem
O2probe n4194304 stride                  min        0.088  median        0.096  max        0.099  cv   2.7%  n 31  ns/elem
RESULT O2probe_n4194304_stride_median 0.0960 ns/elem
RESULT O2probe_n4194304_stride_min 0.0882 ns/elem
RESULT O2probe_n4194304_stride_cv 2.74 percent
RESULT O2probe_n4194304_stride_cycles 0.397 cycles/elem
O2probe n4194304 last                    min        0.093  median        0.097  max        0.101  cv   1.4%  n 31  ns/elem
RESULT O2probe_n4194304_last_median 0.0969 ns/elem
RESULT O2probe_n4194304_last_min 0.0933 ns/elem
RESULT O2probe_n4194304_last_cv 1.40 percent
RESULT O2probe_n4194304_last_cycles 0.397 cycles/elem
O2probe n4194304 scalar                  min        0.238  median        0.250  max        0.255  cv   1.1%  n 31  ns/elem
RESULT O2probe_n4194304_scalar_median 0.2502 ns/elem
RESULT O2probe_n4194304_scalar_min 0.2378 ns/elem
RESULT O2probe_n4194304_scalar_cv 1.14 percent
RESULT O2probe_n4194304_scalar_cycles 1.022 cycles/elem
O2probe n4194304 plain in place          min        0.247  median        0.252  max        0.255  cv   0.7%  n 31  ns/elem
RESULT O2probe_n4194304_plain_inplace_median 0.2523 ns/elem
RESULT O2probe_n4194304_plain_inplace_min 0.2470 ns/elem
RESULT O2probe_n4194304_plain_inplace_cv 0.74 percent
RESULT O2probe_n4194304_plain_inplace_cycles 1.038 cycles/elem
O2probe n4194304 pragma in place         min        0.078  median        0.080  max        0.083  cv   1.6%  n 31  ns/elem
RESULT O2probe_n4194304_pragma_inplace_median 0.0801 ns/elem
RESULT O2probe_n4194304_pragma_inplace_min 0.0783 ns/elem
RESULT O2probe_n4194304_pragma_inplace_cv 1.55 percent
RESULT O2probe_n4194304_pragma_inplace_cycles 0.328 cycles/elem
O2probe n4194304 restrict / plain        min        0.902  median        1.001  max        1.078  cv   3.1%  n 31  ratio, paired per round
RESULT O2probe_n4194304_restrict_vsplain 1.001 ratio
RESULT O2probe_n4194304_restrict_vsplaincv 3.15 percent
O2probe n4194304 pragma / plain          min        0.952  median        1.006  max        1.115  cv   3.2%  n 31  ratio, paired per round
RESULT O2probe_n4194304_pragma_vsplain 1.006 ratio
RESULT O2probe_n4194304_pragma_vsplaincv 3.20 percent
O2probe n4194304 stride / plain          min        0.910  median        1.001  max        1.079  cv   2.9%  n 31  ratio, paired per round
RESULT O2probe_n4194304_stride_vsplain 1.001 ratio
RESULT O2probe_n4194304_stride_vsplaincv 2.94 percent
O2probe n4194304 last / plain            min        0.924  median        1.008  max        1.090  cv   3.2%  n 31  ratio, paired per round
RESULT O2probe_n4194304_last_vsplain 1.008 ratio
RESULT O2probe_n4194304_last_vsplaincv 3.22 percent
O2probe n4194304 scalar / plain          min        2.406  median        2.604  max        2.823  cv   2.7%  n 31  ratio, paired per round
RESULT O2probe_n4194304_scalar_vsplain 2.604 ratio
RESULT O2probe_n4194304_scalar_vsplaincv 2.74 percent
O2probe n4194304 plain in place / plain  min        2.420  median        2.618  max        2.853  cv   2.8%  n 31  ratio, paired per round
RESULT O2probe_n4194304_plain_inplace_vsplain 2.618 ratio
RESULT O2probe_n4194304_plain_inplace_vsplaincv 2.82 percent
O2probe n4194304 plain in place / pragma in place min        3.025  median        3.141  max        3.213  cv   1.6%  n 31  ratio, paired per round
RESULT O2probe_n4194304_pragma_inplace_vspragmainplace 3.141 ratio
RESULT O2probe_n4194304_pragma_inplace_vspragmainplacecv 1.61 percent
O2probe n4194304 clock before each timed pass: min 3.879  median 4.107  max 4.599 GHz  (248 probes)
RESULT O2probe_n4194304_clock_median 4.107 GHz
RESULT O2probe_n4194304_clock_min 3.879 GHz
RESULT O2probe_n4194304_clock_max 4.599 GHz
size: n 8192 floats, 32768 bytes per array, 98304 bytes for the three arrays, 32 calls per sample, reps 31 (plus 1 warmup, discarded)
checksum: out of place 0x5abbee151d89e35f, in place after 32 calls 0xc8959109664e8886
RESULT O2probe_n8192_checksum 0x5abbee151d89e35f hash
O2probe n8192 plain                      min        0.042  median        0.042  max        0.043  cv   0.6%  n 31  ns/elem
RESULT O2probe_n8192_plain_median 0.0420 ns/elem
RESULT O2probe_n8192_plain_min 0.0418 ns/elem
RESULT O2probe_n8192_plain_cv 0.63 percent
RESULT O2probe_n8192_plain_cycles 0.191 cycles/elem
O2probe n8192 restrict                   min        0.042  median        0.042  max        0.043  cv   0.5%  n 31  ns/elem
RESULT O2probe_n8192_restrict_median 0.0421 ns/elem
RESULT O2probe_n8192_restrict_min 0.0420 ns/elem
RESULT O2probe_n8192_restrict_cv 0.46 percent
RESULT O2probe_n8192_restrict_cycles 0.191 cycles/elem
O2probe n8192 pragma                     min        0.042  median        0.042  max        0.047  cv   3.3%  n 31  ns/elem
RESULT O2probe_n8192_pragma_median 0.0421 ns/elem
RESULT O2probe_n8192_pragma_min 0.0418 ns/elem
RESULT O2probe_n8192_pragma_cv 3.35 percent
RESULT O2probe_n8192_pragma_cycles 0.191 cycles/elem
O2probe n8192 stride                     min        0.041  median        0.042  max        0.053  cv   5.0%  n 31  ns/elem
RESULT O2probe_n8192_stride_median 0.0421 ns/elem
RESULT O2probe_n8192_stride_min 0.0412 ns/elem
RESULT O2probe_n8192_stride_cv 5.00 percent
RESULT O2probe_n8192_stride_cycles 0.191 cycles/elem
O2probe n8192 last                       min        0.042  median        0.042  max        0.047  cv   2.0%  n 31  ns/elem
RESULT O2probe_n8192_last_median 0.0421 ns/elem
RESULT O2probe_n8192_last_min 0.0420 ns/elem
RESULT O2probe_n8192_last_cv 2.03 percent
RESULT O2probe_n8192_last_cycles 0.191 cycles/elem
O2probe n8192 scalar                     min        0.222  median        0.223  max        0.223  cv   0.1%  n 31  ns/elem
RESULT O2probe_n8192_scalar_median 0.2227 ns/elem
RESULT O2probe_n8192_scalar_min 0.2224 ns/elem
RESULT O2probe_n8192_scalar_cv 0.09 percent
RESULT O2probe_n8192_scalar_cycles 1.007 cycles/elem
O2probe n8192 plain in place             min        0.223  median        0.223  max        0.233  cv   1.2%  n 31  ns/elem
RESULT O2probe_n8192_plain_inplace_median 0.2228 ns/elem
RESULT O2probe_n8192_plain_inplace_min 0.2225 ns/elem
RESULT O2probe_n8192_plain_inplace_cv 1.18 percent
RESULT O2probe_n8192_plain_inplace_cycles 1.008 cycles/elem
O2probe n8192 pragma in place            min        0.042  median        0.042  max        0.047  cv   2.8%  n 31  ns/elem
RESULT O2probe_n8192_pragma_inplace_median 0.0423 ns/elem
RESULT O2probe_n8192_pragma_inplace_min 0.0420 ns/elem
RESULT O2probe_n8192_pragma_inplace_cv 2.77 percent
RESULT O2probe_n8192_pragma_inplace_cycles 0.191 cycles/elem
O2probe n8192 restrict / plain           min        0.974  median        1.000  max        1.023  cv   0.8%  n 31  ratio, paired per round
RESULT O2probe_n8192_restrict_vsplain 1.000 ratio
RESULT O2probe_n8192_restrict_vsplaincv 0.76 percent
O2probe n8192 pragma / plain             min        0.978  median        1.004  max        1.122  cv   3.4%  n 31  ratio, paired per round
RESULT O2probe_n8192_pragma_vsplain 1.004 ratio
RESULT O2probe_n8192_pragma_vsplaincv 3.40 percent
O2probe n8192 stride / plain             min        0.977  median        1.000  max        1.269  cv   5.1%  n 31  ratio, paired per round
RESULT O2probe_n8192_stride_vsplain 1.000 ratio
RESULT O2probe_n8192_stride_vsplaincv 5.06 percent
O2probe n8192 last / plain               min        0.978  median        1.000  max        1.117  cv   2.2%  n 31  ratio, paired per round
RESULT O2probe_n8192_last_vsplain 1.000 ratio
RESULT O2probe_n8192_last_vsplaincv 2.16 percent
O2probe n8192 scalar / plain             min        5.170  median        5.299  max        5.335  cv   0.6%  n 31  ratio, paired per round
RESULT O2probe_n8192_scalar_vsplain 5.299 ratio
RESULT O2probe_n8192_scalar_vsplaincv 0.63 percent
O2probe n8192 plain in place / plain     min        5.173  median        5.307  max        5.561  cv   1.4%  n 31  ratio, paired per round
RESULT O2probe_n8192_plain_inplace_vsplain 5.307 ratio
RESULT O2probe_n8192_plain_inplace_vsplaincv 1.40 percent
O2probe n8192 plain in place / pragma in place min        4.759  median        5.282  max        5.540  cv   2.7%  n 31  ratio, paired per round
RESULT O2probe_n8192_pragma_inplace_vspragmainplace 5.282 ratio
RESULT O2probe_n8192_pragma_inplace_vspragmainplacecv 2.69 percent
O2probe n8192 clock before each timed pass: min 4.063  median 4.544  max 4.599 GHz  (248 probes)
RESULT O2probe_n8192_clock_median 4.544 GHz
RESULT O2probe_n8192_clock_min 4.063 GHz
RESULT O2probe_n8192_clock_max 4.599 GHz
outputs: every variant matched the reference bit for bit
