Herbie run

Date:Thursday, August 22nd, 2024
Commit:efa1c98c on faster-localize
Hostname:nightly with Racket 8.11.1
Seed:2024235
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: 9.9min)

prune2.8min (28.6%)

Memory
-471.3MiB live, 143 802.2MiB allocated
Counts
219 685 → 4 619
Compiler

Compiled 421 939 to 159 118 computations (62.3% saved)

sample1.3min (12.9%)

Memory
609.0MiB live, 92 588.6MiB allocated
Samples
52.6s247 603×0valid
1.9s10 743×0invalid
8.0ms77×1valid
Precisions
Click to see histograms. Total time spent on operations: 43.6s
ival-mult: 9.4s (21.6% of total)
const: 6.5s (14.9% of total)
ival-<=: 6.2s (14.1% of total)
ival-div: 4.4s (10% of total)
ival-sin: 2.6s (5.9% of total)
ival-sub: 1.7s (3.9% of total)
ival-add: 1.6s (3.7% of total)
ival-fabs: 1.4s (3.3% of total)
ival-log: 1.4s (3.1% of total)
ival-sqrt: 1.3s (3% of total)
ival-and: 1.1s (2.6% of total)
ival-exp: 825.0ms (1.9% of total)
ival-cos: 779.0ms (1.8% of total)
ival-floor: 682.0ms (1.6% of total)
ival-neg: 587.0ms (1.3% of total)
ival-pi: 586.0ms (1.3% of total)
exact: 400.0ms (0.9% of total)
ival-fmax: 354.0ms (0.8% of total)
ival-tan: 322.0ms (0.7% of total)
ival->: 272.0ms (0.6% of total)
ival-if: 209.0ms (0.5% of total)
ival-<: 206.0ms (0.5% of total)
ival-log2: 188.0ms (0.4% of total)
ival-==: 130.0ms (0.3% of total)
ival-sinh: 120.0ms (0.3% of total)
ival-atan: 119.0ms (0.3% of total)
ival-asin: 110.0ms (0.3% of total)
ival-assert: 90.0ms (0.2% of total)
ival->=: 63.0ms (0.1% of total)
adjust: 2.0ms (0% of total)
Bogosity

simplify55.9s (9.4%)

Memory
427.1MiB live, 57 153.6MiB allocated
Algorithm
269×egg-herbie
Rules
2 448 516×lower-fma.f64
2 447 744×lower-fma.f32
1 104 188×lower-*.f64
1 100 980×lower-*.f32
624 464×lower-+.f64
Stop Event
363×iter limit
205×node limit
61×saturated
unsound
Counts
65 544 → 65 319

eval55.2s (9.3%)

Memory
994.3MiB live, 75 935.3MiB allocated
Compiler

Compiled 38 571 791 to 483 040 computations (98.7% saved)

localize52.5s (8.9%)

Memory
49.5MiB live, 57 515.3MiB allocated
Samples
29.5s294×5exit
12.2s26 779×0valid
1.5s1 083×1valid
923.0ms1 726×0invalid
395.0ms762×0exit
25.0ms76×1exit
Compiler

Compiled 142 028 to 6 436 computations (95.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 40.5s
ival-sin: 24.6s (60.7% of total)
ival-mult: 4.5s (11.2% of total)
ival-cos: 3.8s (9.4% of total)
ival-div: 1.9s (4.6% of total)
ival-add: 1.2s (3% of total)
const: 654.0ms (1.6% of total)
adjust: 593.0ms (1.5% of total)
ival-sub: 493.0ms (1.2% of total)
ival-sqrt: 406.0ms (1% of total)
ival-log: 323.0ms (0.8% of total)
ival-exp: 305.0ms (0.8% of total)
ival-pow2: 283.0ms (0.7% of total)
ival-neg: 215.0ms (0.5% of total)
ival-tan: 212.0ms (0.5% of total)
ival-pow: 212.0ms (0.5% of total)
ival-log1p: 112.0ms (0.3% of total)
ival-pi: 100.0ms (0.2% of total)
ival-if: 89.0ms (0.2% of total)
ival-atan: 78.0ms (0.2% of total)
ival-fmax: 75.0ms (0.2% of total)
ival-floor: 71.0ms (0.2% of total)
ival-log2: 67.0ms (0.2% of total)
exact: 51.0ms (0.1% of total)
ival-fabs: 42.0ms (0.1% of total)
ival-true: 26.0ms (0.1% of total)
ival-assert: 14.0ms (0% of total)
ival->: 13.0ms (0% of total)
ival-asin: 13.0ms (0% of total)
ival-hypot: 11.0ms (0% of total)
ival->=: 10.0ms (0% of total)
ival-expm1: 10.0ms (0% of total)
ival-acos: 9.0ms (0% of total)
ival-sinh: 9.0ms (0% of total)
ival-<: 4.0ms (0% of total)
ival-e: 2.0ms (0% of total)

soundness46.4s (7.8%)

Memory
235.7MiB live, 31 729.7MiB allocated
Rules
1 603 184×lower-fma.f64
1 602 704×lower-fma.f32
994 194×lower-*.f64
992 052×lower-*.f32
499 966×lower-+.f64
Stop Event
263×iter limit
180×node limit
28×fuel
done
Compiler

Compiled 46 770 to 16 036 computations (65.7% saved)

regimes44.5s (7.5%)

Memory
-173.9MiB live, 58 986.9MiB allocated
Counts
15 623 → 512
Calls

144 calls:

1.8s
s
1.3s
u1
1.2s
cosTheta_i
1.2s
u2
850.0ms
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
Compiler

Compiled 35 875 to 21 268 computations (40.7% saved)

rewrite32.7s (5.5%)

Memory
-386.9MiB live, 35 556.5MiB allocated
Rules
591 386×lower-fma.f64
590 618×lower-fma.f32
544 358×lower-*.f64
541 260×lower-*.f32
404 056×lower-/.f64
Stop Event
243×iter limit
117×node limit
unsound
Counts
2 324 → 69 322

series21.1s (3.6%)

Memory
-620.7MiB live, 27 068.3MiB allocated
Counts
2 324 → 65 544
Calls

1245 calls:

TimeVariablePointExpression
398.0ms
dX.u
@inf
((/ 1 (/ (sqrt (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)))) (* dY.v (floor h)))) (* (* (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)) (exp (* (log (* dY.v (floor h))) 2)) (exp (* (log (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)))) 1/2)) (sqrt (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)))) (sqrt (fmax (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)))) (>= (+ (* (* (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)))) (pow (* dX.v (floor h)) 2) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (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))))) (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (pow (* dY.u (floor w)) 2) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (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)) (exp (* (log (* dY.v (floor h))) 2))))) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (log (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (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))))))
332.0ms
s
@-inf
((neg (- (log (+ 1 (neg (* (* 16 u) u)))) (log (+ 1 (* 4 u))))) (neg (* (* 16 u) u)) (* (neg (- (log (+ 1 (neg (* (* 16 u) u)))) (log (+ 1 (* 4 u))))) s) (- (log (+ 1 (neg (* (* 16 u) u)))) (log (+ 1 (* 4 u)))) (* s (log (/ 1 (- 1 (* 4 u))))) (* (* (+ (* 8 u) 4) s) u) (* (+ (* 8 u) 4) s) (+ (* 8 u) 4) (+ (* (+ (* 64/3 u) 8) u) 4) (* s (log (/ 1 (- 1 (* 4 u))))) (log (/ 1 (- 1 (* 4 u)))) (* (+ (* (+ (* 64/3 u) 8) u) 4) u) (+ (* (+ (* (+ (* 64 (* u s)) (* 64/3 s)) u) (* 8 s)) u) (* 4 s)) (+ (* (+ (* 64 (* u s)) (* 64/3 s)) u) (* 8 s)) (+ (* 64 (* u s)) (* 64/3 s)) (* (neg (log (+ 1 (* -4 u)))) s) (log (/ 1 (+ (* u -4) 1))) (* s (log (/ 1 (+ (* u -4) 1)))) (/ 1 (+ (* u -4) 1)) (+ (* u -4) 1) (log (+ 1 (neg (* (* 16 u) u)))) (log (+ 1 (* 4 u))) (* (+ (* 64/3 u) 8) u) (* 64/3 s) (* (+ (* (+ (* (+ (* 64 (* u s)) (* 64/3 s)) u) (* 8 s)) u) (* 4 s)) u))
327.0ms
d
@inf
((exp (+ (* (log (floor d)) 2) (* (log dX.w) 2))) (exp (* (log (* dY.v (floor h))) 2)) (* (* (floor d) dY.w) (* (floor d) dY.w)) (+ (* (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))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w)))))) (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))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))))) (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))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w)))) (+ (+ (* (* (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 (floor h) 2) dX.v) dX.v) (* (* (pow (floor h) 2) dY.v) dY.v) (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))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w)))))) (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))) (+ (+ (* (* (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 (floor d) 2) (* dX.w dX.w)) (pow (* (floor h) dX.v) 2)) (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))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w)))))) (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))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))))) (exp (* (log (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))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))))) 1/2)) (log2 (exp (* (log (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))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))))) 1/2))) (* (log (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))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))))) 1/2) (log (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))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))))) (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (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))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (exp (* (log (* dY.v (floor h))) 2))) (* (* (floor d) dY.w) (* (floor d) dY.w))))) (+ (+ (* (* (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 (* dY.w (floor d)) 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))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))) (+ (+ (* (* (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 (* (floor h) dX.v) 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))) (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))))
283.0ms
v
@-inf
((- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) (/ (exp (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v))) (* 2 v)) (exp (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v))) (+ 6931/10000 (/ (- (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) 1) v)) (* (* (exp 6931/10000) 1/2) (/ 1 v)) (exp (+ (+ (- (- (/ (* cosTheta_i cosTheta_O) v) (/ (* sinTheta_i sinTheta_O) v)) (/ 1 v)) 6931/10000) (log (/ 1 (* 2 v))))) (* (exp 6931/10000) 1/2) (exp 6931/10000) (* (+ (* sinTheta_i sinTheta_O) 1) (/ -1 v)) (+ 6931/10000 (* (+ (* sinTheta_i sinTheta_O) 1) (/ -1 v))) (exp (+ (+ (- (- (/ (* cosTheta_i cosTheta_O) v) (/ (* sinTheta_i sinTheta_O) v)) (/ 1 v)) 6931/10000) (log (/ 1 (* 2 v))))) (* (/ 1/2 v) (exp (+ 6931/10000 (* (+ (* sinTheta_i sinTheta_O) 1) (/ -1 v))))) (exp (+ (+ (log (/ 1/2 v)) (/ (+ (* cosTheta_i cosTheta_O) -1) v)) 6931/10000)) (log (/ 1/2 v)) (+ (log (/ 1/2 v)) (/ (+ (* cosTheta_i cosTheta_O) -1) v)) (exp (+ (+ (- (- (/ (* cosTheta_i cosTheta_O) v) (/ (* sinTheta_i sinTheta_O) v)) (/ 1 v)) 6931/10000) (log (/ 1 (* 2 v))))) (exp (+ (+ (- (- (/ (* cosTheta_i cosTheta_O) v) (/ (* sinTheta_i sinTheta_O) v)) (/ 1 v)) 6931/10000) (log (/ 1 (* 2 v))))) (* (- (/ (/ (+ (* cosTheta_i cosTheta_O) -1) v) sinTheta_i) (/ sinTheta_O v)) sinTheta_i) (/ (/ (+ (* cosTheta_i cosTheta_O) -1) v) sinTheta_i) (/ 1 (* 2 v)) (- (* cosTheta_O cosTheta_i) (* sinTheta_O sinTheta_i)) (exp (+ 6931/10000 (* (+ (* sinTheta_i sinTheta_O) 1) (/ -1 v)))) (+ (+ (log (/ 1/2 v)) (/ (+ (* cosTheta_i cosTheta_O) -1) v)) 6931/10000) (log (/ 1 (* 2 v))))
262.0ms
dY.u
@0
((/ 1 (/ (sqrt (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)))) (* dY.v (floor h)))) (* (* (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)) (exp (* (log (* dY.v (floor h))) 2)) (exp (* (log (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)))) 1/2)) (sqrt (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)))) (sqrt (fmax (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)))) (>= (+ (* (* (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)))) (pow (* dX.v (floor h)) 2) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (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))))) (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (pow (* dY.u (floor w)) 2) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (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)) (exp (* (log (* dY.v (floor h))) 2))))) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (log (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (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))))))

analyze19.6s (3.3%)

Memory
313.3MiB live, 28 968.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)

preprocess9.4s (1.6%)

Memory
287.4MiB live, 9 813.2MiB 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 58 730 to 17 170 computations (70.8% saved)

explain8.3s (1.4%)

Memory
-60.0MiB live, 11 587.5MiB allocated
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
log.f32#fsensitivity102984
-.f32#fcancellation41134
sqrt.f32#foflow-rescue3500
tan.f32(tan.f32 (+.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) u1) (*.f32 #s(literal 1/2 binary32) (PI.f32))))cancellation17619
cos.f32#fsensitivity17317
/.f32#fo/n1360
exp.f32#fsensitivity3525
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-rescue150
(*.f32 sinTheta_O sinTheta_O)underflow294
(-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 sinTheta_O sinTheta_O)))))underflow15
(/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 sinTheta_O sinTheta_O))))underflow147
(*.f32 eta eta)underflow15
/.f32#fu/n140
/.f32#fo/o100
/.f32(/.f32 (neg.f32 (log.f32 (-.f32 #s(literal 1 binary32) u0))) (+.f32 (/.f32 cos2phi (*.f32 alphax alphax)) (/.f32 sin2phi (*.f32 alphay alphay))))n/o50
(/.f32 sin2phi (*.f32 alphay alphay))overflow12
(+.f32 (/.f32 cos2phi (*.f32 alphax alphax)) (/.f32 sin2phi (*.f32 alphay alphay)))overflow12
*.f32#fn*o30
*.f32(*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 #s(literal 1 binary32) (sin.f32 normAngle)))n*u20
log.f32(log.f32 (/.f32 #s(literal 1 binary32) (*.f32 #s(literal 2 binary32) v)))oflow-rescue10
(/.f32 #s(literal 1 binary32) (*.f32 #s(literal 2 binary32) v))overflow1
Confusion
Predicted +Predicted -
+166555
-3895571
Precision
0.8106134371957157
Recall
0.9680232558139535
Confusion?
Predicted +Predicted MaybePredicted -
+16653619
-3891215450
Precision?
0.7693351424694709
Recall?
0.9889534883720931
Freqs
test
numberfreq
05626
11758
2286
310
Total Confusion?
Predicted +Predicted MaybePredicted -
+2010
-504
Precision?
0.8076923076923077
Recall?
1.0
Samples
2.9s15 290×0valid
21.0ms70×1valid
Compiler

Compiled 16 488 to 1 722 computations (89.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 2.1s
ival-mult: 535.0ms (25% of total)
ival-div: 482.0ms (22.5% of total)
ival-sub: 271.0ms (12.7% of total)
ival-log: 188.0ms (8.8% of total)
ival-sin: 109.0ms (5.1% of total)
ival-add: 90.0ms (4.2% of total)
ival-cos: 76.0ms (3.5% of total)
ival-pi: 60.0ms (2.8% of total)
ival-sqrt: 59.0ms (2.8% of total)
ival-floor: 44.0ms (2.1% of total)
ival-exp: 41.0ms (1.9% of total)
ival-fabs: 27.0ms (1.3% of total)
ival-neg: 23.0ms (1.1% of total)
const: 22.0ms (1% of total)
ival-tan: 18.0ms (0.8% of total)
ival-fmax: 15.0ms (0.7% of total)
ival-true: 14.0ms (0.7% of total)
ival-if: 13.0ms (0.6% of total)
ival-log2: 13.0ms (0.6% of total)
exact: 12.0ms (0.6% of total)
ival-assert: 6.0ms (0.3% of total)
ival-atan: 6.0ms (0.3% of total)
ival-sinh: 5.0ms (0.2% of total)
ival-asin: 4.0ms (0.2% of total)
ival->=: 3.0ms (0.1% of total)
adjust: 2.0ms (0.1% of total)
ival->: 2.0ms (0.1% of total)
ival-<: 1.0ms (0% of total)

bsearch56.0ms (0%)

Memory
16.4MiB live, 93.7MiB allocated
Algorithm
75×left-value
49×binary-search
Stop Event
49×narrow-enough
Compiler

Compiled 5 601 to 2 985 computations (46.7% saved)

start1.0ms (0%)

Memory
2.2MiB live, 2.2MiB allocated

end0.0ms (0%)

Memory
0.5MiB live, 0.4MiB allocated

Profiling

Loading profile data...