Herbie run

Date:Thursday, September 5th, 2024
Commit:9205cc88 on zane-concrete-values
Hostname:nightly with Racket 8.11.1
Seed:2024249
Parameters:256 points for 4 iterations
Flags:
localize:costslocalize:errorsreduce:regimesreduce:avg-errorreduce:binary-searchreduce:branch-expressionssetup:simplifysetup:searchrules:arithmeticrules:polynomialsrules:fractionsrules:exponentsrules:trigonometryrules:hyperbolicrules:numericsrules:specialrules:boolsrules:branchesgenerate:rrgenerate:taylorgenerate:simplifygenerate:proofs
default

Time bar (total: 8.9min)

end1.5min (17.3%)

Memory
6.8MiB live, 54 248.1MiB allocated

sample1.3min (15%)

Memory
-16.9MiB live, 101 202.4MiB allocated
Samples
56.9s247 617×0valid
2.1s10 643×0invalid
9.0ms63×1valid
Precisions
Click to see histograms. Total time spent on operations: 46.9s
ival-mult: 10.9s (23.2% of total)
const: 7.3s (15.5% of total)
ival-<=: 6.5s (13.8% of total)
ival-div: 4.0s (8.4% of total)
ival-log: 2.1s (4.4% of total)
ival-add: 1.9s (4.1% of total)
ival-sub: 1.8s (3.9% of total)
ival-sqrt: 1.7s (3.7% of total)
ival-sin: 1.6s (3.4% of total)
ival-fabs: 1.5s (3.2% of total)
ival-and: 1.1s (2.4% of total)
ival-floor: 900.0ms (1.9% of total)
ival-pi: 852.0ms (1.8% of total)
ival-exp: 761.0ms (1.6% of total)
ival-cos: 719.0ms (1.5% of total)
ival-neg: 650.0ms (1.4% of total)
exact: 412.0ms (0.9% of total)
ival-fmax: 353.0ms (0.8% of total)
ival-tan: 333.0ms (0.7% of total)
ival-if: 303.0ms (0.6% of total)
ival-log2: 267.0ms (0.6% of total)
ival->: 192.0ms (0.4% of total)
ival-asin: 184.0ms (0.4% of total)
ival-<: 168.0ms (0.4% of total)
ival-==: 154.0ms (0.3% of total)
ival-sinh: 98.0ms (0.2% of total)
ival-assert: 91.0ms (0.2% of total)
ival-atan: 90.0ms (0.2% of total)
ival->=: 43.0ms (0.1% of total)
adjust: 1.0ms (0% of total)
Bogosity

eval1.2min (13.5%)

Memory
1 524.2MiB live, 120 429.6MiB allocated
Compiler

Compiled 42 592 487 to 598 334 computations (98.6% saved)

simplify50.6s (9.5%)

Memory
868.4MiB live, 60 178.1MiB allocated
Algorithm
270×egg-herbie
Rules
2 233 852×lower-fma.f64
2 233 382×lower-fma.f32
1 041 672×lower-*.f64
1 038 866×lower-*.f32
582 314×lower-+.f64
Stop Event
365×iter limit
198×node limit
67×saturated
unsound
Counts
62 884 → 62 646

regimes47.6s (8.9%)

Memory
123.3MiB live, 68 297.8MiB allocated
Counts
21 746 → 402
Calls

145 calls:

3.1s
s
1.4s
u
1.2s
(*.f32 (neg.f32 s) (log.f32 (-.f32 (/.f32 #s(literal 1 binary32) (+.f32 (*.f32 u (-.f32 (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (PI.f32) s)))))) (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (PI.f32) s)))))) #s(literal 1 binary32))))
1.1s
r
1.0s
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
Compiler

Compiled 27 133 to 16 905 computations (37.7% saved)

soundness38.1s (7.1%)

Memory
247.7MiB live, 29 033.6MiB allocated
Rules
1 468 504×lower-fma.f64
1 468 156×lower-fma.f32
941 784×lower-*.f64
939 798×lower-*.f32
469 538×lower-+.f64
Stop Event
283×iter limit
181×node limit
30×fuel
unsound
Compiler

Compiled 50 186 to 14 946 computations (70.2% saved)

prune35.3s (6.6%)

Memory
-988.2MiB live, 57 912.3MiB allocated
Counts
255 156 → 7 217
Compiler

Compiled 782 023 to 286 642 computations (63.3% saved)

rewrite29.7s (5.6%)

Memory
40.1MiB live, 39 107.0MiB allocated
Rules
535 900×lower-fma.f64
535 426×lower-fma.f32
486 764×lower-*.f64
484 078×lower-*.f32
373 794×lower-/.f64
Stop Event
255×iter limit
113×node limit
unsound
Counts
2 307 → 81 699

localize24.7s (4.6%)

Memory
92.3MiB live, 35 341.8MiB allocated
Samples
13.4s26 614×0valid
1.7s2 943×0invalid
1.3s1 068×1valid
332.0ms92×5exit
2.0ms1exit
Compiler

Compiled 136 437 to 6 156 computations (95.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.2s
ival-mult: 3.8s (30.8% of total)
ival-div: 1.7s (13.9% of total)
ival-pow2: 943.0ms (7.7% of total)
ival-add: 938.0ms (7.7% of total)
ival-pow: 651.0ms (5.3% of total)
ival-sub: 482.0ms (3.9% of total)
ival-log: 467.0ms (3.8% of total)
ival-sqrt: 404.0ms (3.3% of total)
ival-sin: 401.0ms (3.3% of total)
const: 345.0ms (2.8% of total)
ival-exp: 303.0ms (2.5% of total)
ival-cos: 294.0ms (2.4% of total)
adjust: 206.0ms (1.7% of total)
ival-neg: 164.0ms (1.3% of total)
ival->: 155.0ms (1.3% of total)
ival-floor: 150.0ms (1.2% of total)
ival-fmax: 124.0ms (1% of total)
ival-log2: 106.0ms (0.9% of total)
ival-log1p: 88.0ms (0.7% of total)
ival-if: 87.0ms (0.7% of total)
ival-tan: 83.0ms (0.7% of total)
ival-pi: 65.0ms (0.5% of total)
exact: 56.0ms (0.5% of total)
ival-asin: 50.0ms (0.4% of total)
ival-atan: 41.0ms (0.3% of total)
ival-fabs: 35.0ms (0.3% of total)
ival-true: 26.0ms (0.2% of total)
ival-assert: 13.0ms (0.1% of total)
ival->=: 13.0ms (0.1% of total)
ival-e: 12.0ms (0.1% of total)
ival-sinh: 12.0ms (0.1% of total)
ival-cbrt: 10.0ms (0.1% of total)
ival-cosh: 10.0ms (0.1% of total)
ival-acos: 9.0ms (0.1% of total)
ival-<: 4.0ms (0% of total)

series24.5s (4.6%)

Memory
-378.0MiB live, 34 696.8MiB allocated
Counts
2 307 → 62 884
Calls

1251 calls:

TimeVariablePointExpression
277.0ms
u
@inf
((/ 1 (/ (tan normAngle) (* normAngle u))) (+ (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) (+ (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (+ (* (- 1 u) n0_i) (* u n1_i)) (* (- 1 u) n0_i) (- 1 u) (* (- (/ 1 u) 1) n0_i) (+ (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (+ (* (- 1 u) n0_i) (* u n1_i)) (* (+ (- (/ n0_i u) n0_i) n1_i) u) (/ (- (* 1 (+ n0_i n1_i)) (* (/ u n0_i) (- (* n0_i n0_i) (* n1_i n1_i)))) (* (/ u n0_i) (+ n0_i n1_i))) (* 1 (+ n0_i n1_i)) (- (* 1 (+ n0_i n1_i)) (* (/ u n0_i) (- (* n0_i n0_i) (* n1_i n1_i)))) (* (/ u n0_i) (- (* n0_i n0_i) (* n1_i n1_i))) (/ (- (* (pow (- (/ n0_i u) n0_i) 2) (- (- (/ n0_i u) n0_i) n1_i)) (* (- (- (/ n0_i u) n0_i) n1_i) (* n1_i n1_i))) (* (- (- (/ n0_i u) n0_i) n1_i) (- (- (/ n0_i u) n0_i) n1_i))) (- (* (pow (- (/ n0_i u) n0_i) 2) (- (- (/ n0_i u) n0_i) n1_i)) (* (- (- (/ n0_i u) n0_i) n1_i) (* n1_i n1_i))) (+ (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (+ (* (- 1 u) n0_i) (* u n1_i)) (/ (tan normAngle) (* normAngle u)) (* (sin (* u normAngle)) (/ 1 (sin normAngle))) (+ (- (/ n0_i u) n0_i) n1_i) (+ (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (* (/ u n0_i) (+ n0_i n1_i)) (* (- (- (/ n0_i u) n0_i) n1_i) (- (- (/ n0_i u) n0_i) n1_i)) (pow (- (/ n0_i u) n0_i) 2))
255.0ms
dX.w
@0
((exp (* (log (fmax (+ (pow (* (floor d) dX.w) 2) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)))) (+ (+ (pow (* dY.v (floor h)) 2) (pow (* (floor w) dY.u) 2)) (pow (* dY.w (floor d)) 2)))) 1/2)) (log2 (exp (* (log (fmax (+ (pow (* (floor d) dX.w) 2) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)))) (+ (+ (pow (* dY.v (floor h)) 2) (pow (* (floor w) dY.u) 2)) (pow (* dY.w (floor d)) 2)))) 1/2))) (* (log (fmax (+ (pow (* (floor d) dX.w) 2) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)))) (+ (+ (pow (* dY.v (floor h)) 2) (pow (* (floor w) dY.u) 2)) (pow (* dY.w (floor d)) 2)))) 1/2) (log (fmax (+ (pow (* (floor d) dX.w) 2) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)))) (+ (+ (pow (* dY.v (floor h)) 2) (pow (* (floor w) dY.u) 2)) (pow (* dY.w (floor d)) 2)))) (* (pow (floor w) 2) (* dX.u dX.u)) (log2 (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 2))))) (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 2)))) (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 2))) (exp (+ (* (log (floor d)) 2) (* (log dX.w) 2))) (+ (* (log (floor d)) 2) (* (log dX.w) 2)) (log2 (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (exp (+ (* (log (floor d)) 2) (* (log dX.w) 2)))) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 2))))) (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (exp (+ (* (log (floor d)) 2) (* (log dX.w) 2)))) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 2)))) (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)) (* (* (floor d) dY.w) (* (floor d) dY.w)) (+ (* (* dX.u (floor w)) (* dX.u (floor w))) (+ (pow (* dX.w (floor d)) 2) (pow (* dX.v (floor h)) 2))) (exp (log (* dX.u (floor w)))) (+ (* (exp (log (* dX.u (floor w)))) (exp (log (* dX.u (floor w))))) (+ (pow (* dX.w (floor d)) 2) (pow (* dX.v (floor h)) 2))) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* (floor d) dX.w) 2) (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (pow (* dY.u (floor w)) 2) (pow (* dY.w (floor d)) 2) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (sqrt (fmax (+ (* (* dX.u (floor w)) (* dX.u (floor w))) (+ (pow (* dX.w (floor d)) 2) (pow (* dX.v (floor h)) 2))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))))) (pow (* dX.w (floor d)) 2) (sqrt (fmax (+ (* (exp (log (* dX.u (floor w)))) (exp (log (* dX.u (floor w))))) (+ (pow (* dX.w (floor d)) 2) (pow (* dX.v (floor h)) 2))) (+ (+ (pow (* dY.u (floor w)) 2) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))))))
233.0ms
w
@inf
((- (* (* (floor w) dX.u) (* (floor h) dY.v)) (* (* (floor h) dX.v) (* (floor w) dY.u))) (pow (pow (fmax (+ (pow (* dX.v (floor h)) 2) (pow (* dX.u (floor w)) 2)) (+ (pow (* dY.v (floor h)) 2) (pow (* dY.u (floor w)) 2))) 1/4) 2) (- (* dY.v (* dX.u (floor w))) (* (* dY.u (floor w)) dX.v)) (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)) (* (* (floor w) dY.u) (* (floor w) dY.u)) (- (* (* (* dY.v (floor h)) dX.u) (floor w)) (* (* (* dX.v (floor h)) dY.u) (floor w))) (exp (log (pow (/ (fmax (+ (pow (* dX.v (floor h)) 2) (pow (* dX.u (floor w)) 2)) (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2))) (* (fabs (- (* dY.v (* dX.u (floor w))) (* (* dY.u (floor w)) dX.v))) (floor h))) -2))) (+ (* (* (pow (floor h) 2) dY.v) dY.v) (* (* (pow (floor w) 2) dY.u) dY.u)) (+ (* (* (pow (floor h) 2) dX.v) dX.v) (* (* (pow (floor w) 2) dX.u) dX.u)) (pow (fmax (+ (pow (* dX.v (floor h)) 2) (pow (* dX.u (floor w)) 2)) (+ (pow (* dY.v (floor h)) 2) (pow (* dY.u (floor w)) 2))) 1/4) (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))))) (+ (* (neg dX.u) dY.v) (* dY.u dX.v)) (+ (* (* (pow (floor w) 2) dX.u) dX.u) (* (* (pow (floor h) 2) dX.v) dX.v)) (+ (* (* (pow (floor h) 2) dX.v) dX.v) (* (* (pow (floor w) 2) dX.u) dX.u)))
232.0ms
cosTheta_i
@0
((* (/ 1 v) (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1)) (/ (exp (+ 6931/10000 (* (/ 1 v) (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1)))) (* 2 v)) (exp (+ 6931/10000 (* (/ 1 v) (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1)))) (+ 6931/10000 (* (/ 1 v) (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1))) (exp (- (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v)) (log (* 2 v)))) (- (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v)) (log (* 2 v))) (* (/ cosTheta_O v) cosTheta_i) (/ cosTheta_O v) (exp (- (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v)) (log (* 2 v)))) (- (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v)) (log (* 2 v))) (/ (* (neg sinTheta_i) sinTheta_O) v) (* (neg sinTheta_i) sinTheta_O) (exp (- (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v)) (log (* 2 v)))) (- (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v)) (log (* 2 v))) (/ (+ (* (neg sinTheta_O) sinTheta_i) (+ (* cosTheta_i cosTheta_O) -1)) v) (+ (* (neg sinTheta_O) sinTheta_i) (+ (* cosTheta_i cosTheta_O) -1)) (exp (- (+ (* (+ (* sinTheta_i sinTheta_O) 1) (/ -1 v)) 6931/10000) (log (* 2 v)))) (exp (+ (+ (- (- (/ (* cosTheta_i cosTheta_O) v) (/ (* sinTheta_i sinTheta_O) v)) (/ 1 v)) 6931/10000) (log (/ 1 (* 2 v))))) (- (+ (* (+ (* sinTheta_i sinTheta_O) 1) (/ -1 v)) 6931/10000) (log (* 2 v))) (+ (* (+ (* sinTheta_i sinTheta_O) 1) (/ -1 v)) 6931/10000) (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) (neg sinTheta_i) (+ (* cosTheta_i cosTheta_O) -1) (- 6931/10000 (/ 1 v)))
223.0ms
sinTheta_i
@-inf
((* (/ 1 v) (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1)) (/ (exp (+ 6931/10000 (* (/ 1 v) (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1)))) (* 2 v)) (exp (+ 6931/10000 (* (/ 1 v) (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1)))) (+ 6931/10000 (* (/ 1 v) (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1))) (exp (- (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v)) (log (* 2 v)))) (- (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v)) (log (* 2 v))) (* (/ cosTheta_O v) cosTheta_i) (/ cosTheta_O v) (exp (- (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v)) (log (* 2 v)))) (- (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v)) (log (* 2 v))) (/ (* (neg sinTheta_i) sinTheta_O) v) (* (neg sinTheta_i) sinTheta_O) (exp (- (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v)) (log (* 2 v)))) (- (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v)) (log (* 2 v))) (/ (+ (* (neg sinTheta_O) sinTheta_i) (+ (* cosTheta_i cosTheta_O) -1)) v) (+ (* (neg sinTheta_O) sinTheta_i) (+ (* cosTheta_i cosTheta_O) -1)) (exp (- (+ (* (+ (* sinTheta_i sinTheta_O) 1) (/ -1 v)) 6931/10000) (log (* 2 v)))) (exp (+ (+ (- (- (/ (* cosTheta_i cosTheta_O) v) (/ (* sinTheta_i sinTheta_O) v)) (/ 1 v)) 6931/10000) (log (/ 1 (* 2 v))))) (- (+ (* (+ (* sinTheta_i sinTheta_O) 1) (/ -1 v)) 6931/10000) (log (* 2 v))) (+ (* (+ (* sinTheta_i sinTheta_O) 1) (/ -1 v)) 6931/10000) (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) (neg sinTheta_i) (+ (* cosTheta_i cosTheta_O) -1) (- 6931/10000 (/ 1 v)))

analyze22.6s (4.2%)

Memory
46.0MiB live, 31 996.8MiB allocated
Algorithm
30×search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%2.6%97.4%0%0%0%0
0%0%2.6%97.4%0%0%0%1
7.8%0.2%2.4%97.4%0%0%0%2
8.5%0.2%2.4%97.4%0%0%0%3
12.8%0.3%2.3%97.4%0%0%0%4
47%1.2%1.4%97.4%0%0%0%5
51.8%1.3%1.2%97.4%0%0.1%0%6
69.5%1.8%0.8%97.4%0%0.1%0%7
71.6%1.8%0.7%97.4%0%0.1%0%8
81.1%2.1%0.5%97.4%0%0.1%0%9
82.6%2.1%0.4%97.4%0%0.1%0%10
88.3%2.2%0.3%97.4%0%0.1%0%11
89.1%2.2%0.3%97.4%0%0.1%0%12
Compiler

Compiled 2 586 to 1 076 computations (58.4% saved)

preprocess8.3s (1.6%)

Memory
249.2MiB live, 9 638.5MiB allocated
Algorithm
30×egg-herbie
Rules
132 696×lower-fma.f64
132 696×lower-fma.f32
46 474×lower-*.f64
46 188×lower-*.f32
27 984×unsub-neg
Stop Event
60×iter limit
31×saturated
29×node limit
Compiler

Compiled 67 546 to 17 802 computations (73.6% saved)

explain7.6s (1.4%)

Memory
21.8MiB live, 13 433.4MiB allocated
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
log.f32#fsensitivity102763
-.f32#fcancellation39628
sqrt.f32#foflow-rescue3640
tan.f32(tan.f32 (+.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) u1) (*.f32 #s(literal 1/2 binary32) (PI.f32))))cancellation19312
cos.f32#fsensitivity19115
/.f32#fo/n1220
exp.f32#fsensitivity3620
/.f32#fu/n300
sqrt.f32(sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 sinTheta_O sinTheta_O))))))uflow-rescue130
(*.f32 sinTheta_O sinTheta_O)underflow266
(-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 sinTheta_O sinTheta_O)))))underflow13
(/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 sinTheta_O sinTheta_O))))underflow133
(*.f32 eta eta)underflow13
/.f32#fo/o80
/.f32(/.f32 (neg.f32 (log.f32 (-.f32 #s(literal 1 binary32) u0))) (+.f32 (/.f32 cos2phi (*.f32 alphax alphax)) (/.f32 sin2phi (*.f32 alphay alphay))))n/o60
(/.f32 sin2phi (*.f32 alphay alphay))overflow11
(+.f32 (/.f32 cos2phi (*.f32 alphax alphax)) (/.f32 sin2phi (*.f32 alphay alphay)))overflow11
*.f32(*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 #s(literal 1 binary32) (sin.f32 normAngle)))n*u40
sin.f32(sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))cancellation10
Confusion
Predicted +Predicted -
+169263
-3825543
Precision
0.8158148505303761
Recall
0.9641025641025641
Confusion?
Predicted +Predicted MaybePredicted -
+16923825
-382945449
Precision?
0.7842248413417952
Recall?
0.9857549857549858
Freqs
test
numberfreq
05606
11765
2301
38
Total Confusion?
Predicted +Predicted MaybePredicted -
+2020
-422
Precision?
0.7857142857142857
Recall?
1.0
Samples
2.3s15 318×0valid
15.0ms42×1valid
Compiler

Compiled 16 376 to 1 722 computations (89.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.5s
ival-mult: 536.0ms (36.1% of total)
ival-div: 202.0ms (13.6% of total)
ival-log: 98.0ms (6.6% of total)
ival-sub: 95.0ms (6.4% of total)
ival-add: 85.0ms (5.7% of total)
ival-sin: 66.0ms (4.4% of total)
ival-sqrt: 64.0ms (4.3% of total)
ival-pi: 48.0ms (3.2% of total)
ival-exp: 43.0ms (2.9% of total)
ival-cos: 38.0ms (2.6% of total)
ival-floor: 37.0ms (2.5% of total)
ival-neg: 28.0ms (1.9% of total)
const: 26.0ms (1.8% of total)
ival-tan: 17.0ms (1.1% of total)
ival-fmax: 16.0ms (1.1% of total)
ival-true: 14.0ms (0.9% of total)
exact: 13.0ms (0.9% of total)
ival-if: 12.0ms (0.8% of total)
ival-log2: 12.0ms (0.8% of total)
ival-fabs: 8.0ms (0.5% of total)
ival-assert: 6.0ms (0.4% of total)
ival-atan: 6.0ms (0.4% of total)
ival-sinh: 5.0ms (0.3% of total)
ival-asin: 4.0ms (0.3% of total)
ival->: 3.0ms (0.2% of total)
ival->=: 3.0ms (0.2% of total)
adjust: 1.0ms (0.1% of total)
ival-<: 1.0ms (0.1% of total)

bsearch168.0ms (0%)

Memory
45.9MiB live, 275.4MiB allocated
Algorithm
76×left-value
33×binary-search
Stop Event
33×narrow-enough
Compiler

Compiled 4 770 to 2 454 computations (48.6% saved)

start3.0ms (0%)

Memory
7.6MiB live, 7.6MiB allocated

Profiling

Loading profile data...