Herbie run

Date:Wednesday, September 11th, 2024
Commit:b5881a3c on zane-concrete-values
Hostname:nightly with Racket 8.11.1
Seed:2024255
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 (16.7%)

Memory
-16.2MiB live, 59 027.0MiB allocated

eval1.3min (15.1%)

Memory
516.3MiB live, 124 066.8MiB allocated
Compiler

Compiled 43 541 757 to 642 478 computations (98.5% saved)

sample1.3min (14.6%)

Memory
870.2MiB live, 104 442.6MiB allocated
Samples
56.5s247 589×0valid
1.9s10 388×0invalid
13.0ms91×1valid
Precisions
Click to see histograms. Total time spent on operations: 46.7s
ival-mult: 10.6s (22.8% of total)
const: 7.1s (15.1% of total)
ival-<=: 6.5s (13.8% of total)
ival-div: 3.7s (8% of total)
ival-sqrt: 2.1s (4.6% of total)
ival-add: 2.0s (4.3% of total)
ival-sub: 1.9s (4.2% of total)
ival-fabs: 1.9s (4% of total)
ival-log: 1.5s (3.1% of total)
ival-and: 1.2s (2.6% of total)
ival-sin: 1.0s (2.2% of total)
ival-exp: 766.0ms (1.6% of total)
ival-floor: 752.0ms (1.6% of total)
ival-cosu: 687.0ms (1.5% of total)
ival-sinu: 620.0ms (1.3% of total)
ival-neg: 560.0ms (1.2% of total)
ival-cos: 453.0ms (1% of total)
exact: 441.0ms (0.9% of total)
ival-pi: 362.0ms (0.8% of total)
ival-fmax: 358.0ms (0.8% of total)
ival-tan: 331.0ms (0.7% of total)
ival-log2: 273.0ms (0.6% of total)
ival->: 268.0ms (0.6% of total)
ival-<: 260.0ms (0.6% of total)
ival-if: 258.0ms (0.6% of total)
ival-asin: 185.0ms (0.4% of total)
ival-atan: 140.0ms (0.3% of total)
ival-==: 140.0ms (0.3% of total)
ival-assert: 101.0ms (0.2% of total)
ival->=: 96.0ms (0.2% of total)
ival-sinh: 90.0ms (0.2% of total)
adjust: 2.0ms (0% of total)
Bogosity

simplify52.5s (9.8%)

Memory
864.2MiB live, 59 226.4MiB allocated
Algorithm
270×egg-herbie
Rules
2 322 658×lower-fma.f64
2 322 262×lower-fma.f32
1 051 552×lower-*.f64
1 048 630×lower-*.f32
579 400×lower-+.f64
Stop Event
364×iter limit
201×node limit
65×saturated
unsound
Counts
62 904 → 62 633

regimes43.7s (8.2%)

Memory
399.2MiB live, 63 831.7MiB allocated
Counts
20 070 → 375
Calls

145 calls:

2.1s
s
1.2s
u
1.1s
cosTheta_i
975.0ms
x
927.0ms
(*.f32 cosTheta_i cosTheta_O)
Compiler

Compiled 24 822 to 16 033 computations (35.4% saved)

soundness40.5s (7.6%)

Memory
205.8MiB live, 30 117.1MiB allocated
Rules
1 502 456×lower-fma.f64
1 502 142×lower-fma.f32
984 394×lower-*.f64
982 200×lower-*.f32
485 950×lower-/.f64
Stop Event
282×iter limit
186×node limit
29×fuel
done
Compiler

Compiled 42 820 to 13 851 computations (67.7% saved)

prune37.8s (7.1%)

Memory
-456.1MiB live, 64 095.7MiB allocated
Counts
267 838 → 7 406
Compiler

Compiled 808 580 to 299 122 computations (63% saved)

rewrite29.2s (5.5%)

Memory
-138.3MiB live, 34 823.0MiB allocated
Rules
555 580×lower-fma.f64
555 188×lower-fma.f32
509 260×lower-*.f64
506 486×lower-*.f32
400 924×lower-/.f64
Stop Event
246×iter limit
116×node limit
unsound
Counts
2 312 → 89 813

localize23.6s (4.4%)

Memory
-245.0MiB live, 34 016.1MiB allocated
Samples
13.0s27 617×0valid
1.8s1 382×1valid
695.0ms1 407×0invalid
188.0ms89×5exit
95.0ms220×0exit
4.0ms1exit
Compiler

Compiled 135 671 to 5 970 computations (95.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.1s
ival-mult: 3.7s (30.1% of total)
ival-div: 2.2s (17.8% of total)
ival-add: 901.0ms (7.4% of total)
ival-pow2: 494.0ms (4.1% of total)
ival-sqrt: 483.0ms (4% of total)
ival-sub: 477.0ms (3.9% of total)
ival-log: 467.0ms (3.8% of total)
ival-pow: 371.0ms (3.1% of total)
ival-log1p: 314.0ms (2.6% of total)
ival-floor: 307.0ms (2.5% of total)
ival-exp: 300.0ms (2.5% of total)
ival-sin: 284.0ms (2.3% of total)
ival-neg: 215.0ms (1.8% of total)
const: 206.0ms (1.7% of total)
ival-cos: 197.0ms (1.6% of total)
adjust: 178.0ms (1.5% of total)
ival-fmax: 156.0ms (1.3% of total)
ival-cosu: 143.0ms (1.2% of total)
ival-tan: 125.0ms (1% of total)
ival-sinu: 107.0ms (0.9% of total)
ival-log2: 93.0ms (0.8% of total)
ival-if: 82.0ms (0.7% of total)
ival-pi: 70.0ms (0.6% of total)
ival-tanu: 57.0ms (0.5% of total)
ival-atan: 55.0ms (0.5% of total)
exact: 55.0ms (0.5% of total)
ival-fabs: 43.0ms (0.4% of total)
ival-true: 29.0ms (0.2% of total)
ival-asin: 20.0ms (0.2% of total)
ival-e: 17.0ms (0.1% of total)
ival->: 14.0ms (0.1% of total)
ival-assert: 14.0ms (0.1% of total)
ival-acos: 13.0ms (0.1% of total)
ival->=: 10.0ms (0.1% of total)
ival-sinh: 9.0ms (0.1% of total)
ival-cbrt: 8.0ms (0.1% of total)
ival-expm1: 7.0ms (0.1% of total)
ival-<: 6.0ms (0% of total)

analyze22.9s (4.3%)

Memory
-324.1MiB live, 32 650.7MiB 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 062 computations (58.9% saved)

series20.1s (3.8%)

Memory
361.4MiB live, 28 832.9MiB allocated
Counts
2 312 → 62 904
Calls

1251 calls:

TimeVariablePointExpression
450.0ms
w
@-inf
((/ (* (neg dY.u) (floor w)) -1) (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)) (* (* (floor w) dY.u) (* (floor w) dY.u)) (pow (exp 2) (log (* dY.u (floor w)))) (* (* (floor h) dY.v) (* (floor h) dY.v)) (exp (+ (* (log dY.u) 2) (* (log (floor w)) 2))) (+ (* (log dY.u) 2) (* (log (floor w)) 2)) (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))))) (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)))) (>= (+ (* (* (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))) (+ (* (* (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))) (+ (pow (exp 2) (log (* dY.u (floor w)))) (* (* (floor h) dY.v) (* (floor h) dY.v))))) (+ (* (* (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))) (+ (pow (exp 2) (log (* dY.u (floor w)))) (* (* (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))) (+ (exp (+ (* (log dY.u) 2) (* (log (floor w)) 2))) (* (* (floor h) dY.v) (* (floor h) dY.v))))) (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (pow (* dX.u (floor w)) 2)) (sqrt (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (pow (* dX.u (floor w)) 2)) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))))))
283.0ms
dX.u
@0
((exp (* (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.w) 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))))) 1/2)) (log2 (exp (* (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.w) 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))))) 1/2))) (* (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.w) 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))))) 1/2) (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.w) 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 (floor d) 2) dX.w) dX.w) (log2 (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 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))) (pow (* dX.w (floor d)) 2)) (+ (+ (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))) (pow (* dX.w (floor d)) 2)) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (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)) (+ (* (* dY.u dY.u) (pow (floor w) 2)) (pow (* (floor h) dY.v) 2)) (* (* dY.v (pow (floor h) 2)) dY.v) (+ (* (* (pow (floor w) 2) dX.u) dX.u) (+ (* (* (pow (floor h) 2) dX.v) dX.v) (* (* (pow (floor d) 2) dX.w) dX.w))) (+ (* (* (pow (floor h) 2) dX.v) dX.v) (* (* (pow (floor d) 2) dX.w) dX.w)) (exp (+ (* (log (floor w)) 2) (* (log dX.u) 2))) (+ (* (log (floor w)) 2) (* (log dX.u) 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 (* dY.u (floor w)) 2) (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 2)) (pow (* dY.v (floor h)) 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))) (+ (+ (* (* (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) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))) (+ (* (* dY.w (pow (floor d) 2)) dY.w) (* (* dY.v (pow (floor h) 2)) dY.v)) (+ (* (* dY.u (pow (floor w) 2)) dY.u) (+ (* (* dY.w (pow (floor d) 2)) dY.w) (* (* dY.v (pow (floor h) 2)) dY.v))) (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 2)) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 2)))) (+ (* (* (pow (floor w) 2) dY.u) dY.u) (+ (pow (* dY.w (floor d)) 2) (pow (* dY.v (floor h)) 2))) (sqrt (fmax (+ (+ (exp (+ (* (log (floor w)) 2) (* (log dX.u) 2))) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (* (* (pow (floor w) 2) dY.u) dY.u) (+ (pow (* dY.w (floor d)) 2) (pow (* dY.v (floor h)) 2))))))
269.0ms
h
@-inf
((exp (* (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.w) 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))))) 1/2)) (log2 (exp (* (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.w) 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))))) 1/2))) (* (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.w) 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))))) 1/2) (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.w) 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 (floor d) 2) dX.w) dX.w) (log2 (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 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))) (pow (* dX.w (floor d)) 2)) (+ (+ (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))) (pow (* dX.w (floor d)) 2)) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (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)) (+ (* (* dY.u dY.u) (pow (floor w) 2)) (pow (* (floor h) dY.v) 2)) (* (* dY.v (pow (floor h) 2)) dY.v) (+ (* (* (pow (floor w) 2) dX.u) dX.u) (+ (* (* (pow (floor h) 2) dX.v) dX.v) (* (* (pow (floor d) 2) dX.w) dX.w))) (+ (* (* (pow (floor h) 2) dX.v) dX.v) (* (* (pow (floor d) 2) dX.w) dX.w)) (exp (+ (* (log (floor w)) 2) (* (log dX.u) 2))) (+ (* (log (floor w)) 2) (* (log dX.u) 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 (* dY.u (floor w)) 2) (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 2)) (pow (* dY.v (floor h)) 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))) (+ (+ (* (* (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) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))) (+ (* (* dY.w (pow (floor d) 2)) dY.w) (* (* dY.v (pow (floor h) 2)) dY.v)) (+ (* (* dY.u (pow (floor w) 2)) dY.u) (+ (* (* dY.w (pow (floor d) 2)) dY.w) (* (* dY.v (pow (floor h) 2)) dY.v))) (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 2)) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 2)))) (+ (* (* (pow (floor w) 2) dY.u) dY.u) (+ (pow (* dY.w (floor d)) 2) (pow (* dY.v (floor h)) 2))) (sqrt (fmax (+ (+ (exp (+ (* (log (floor w)) 2) (* (log dX.u) 2))) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (* (* (pow (floor w) 2) dY.u) dY.u) (+ (pow (* dY.w (floor d)) 2) (pow (* dY.v (floor h)) 2))))))
256.0ms
normAngle
@inf
((* (sin (- normAngle (* normAngle u))) (/ 1 (sin normAngle))) (+ (* (* (sin (- normAngle (* normAngle u))) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (* (* (sin (- normAngle (* normAngle u))) (/ 1 (sin normAngle))) n0_i) (sin (- normAngle (* normAngle u))) (+ (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (+ (* (- 1 u) n0_i) (* u n1_i)) (* u n1_i) (+ (* n1_i u) (* n0_i (- 1 u))) (+ (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (* n1_i u) (* n0_i (- 1 u)) (+ (* (* (sin (+ (* (neg u) normAngle) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (* (sin (* u normAngle)) (/ n1_i (sin normAngle))) (sin (* u normAngle)) (* u normAngle) (+ (* (* (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)) (/ n0_i (sin normAngle))) (sin (* (- 1 u) normAngle)) (* (sin (* u normAngle)) (/ 1 (sin normAngle))) (/ n1_i (sin normAngle)) (* (- 1 u) normAngle))
156.0ms
s
@0
((* (* 3 s) (log (/ 1 (+ (* -4/3 (- u 1/4)) 1)))) (/ 1 (+ (* -4/3 (- u 1/4)) 1)) (+ (* -4/3 (- u 1/4)) 1) (* -4/3 (- u 1/4)) (* (* 3 s) (log (/ 1 (- 1 (/ (- u 1/4) 3/4))))) (* (* (log 3/4) s) 3) (* (log 3/4) s) (log 3/4) (* (* 3 s) (log (/ 1 (- 1 (/ (- u 1/4) 3/4))))) (* (log (+ (* -4/3 u) 4/3)) (* -3 s)) (log (+ (* -4/3 u) 4/3)) (+ (* -4/3 u) 4/3) (* (* 3 s) (log (/ 1 (- 1 (/ (- u 1/4) 3/4))))) (* 3 s) (log (/ 1 (- 1 (/ (- u 1/4) 3/4)))) (+ (* (+ (* 1/2 u) 1) u) (log 3/4)) (* (* 3 s) (log (/ 1 (- 1 (+ (* 4/3 u) -1/3))))) (/ 1 (- 1 (+ (* 4/3 u) -1/3))) (- 1 (+ (* 4/3 u) -1/3)) (log (/ 1 (+ (* -4/3 (- u 1/4)) 1))) (+ (* 1/2 u) 1) (+ (* 4/3 u) -1/3) (log (/ 1 (- 1 (+ (* 4/3 u) -1/3)))))

preprocess8.4s (1.6%)

Memory
225.9MiB live, 10 191.0MiB 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 59 166 to 18 540 computations (68.7% saved)

explain8.1s (1.5%)

Memory
-209.7MiB live, 13 807.2MiB allocated
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
log.f32#fsensitivity102955
-.f32#fcancellation38138
sqrt.f32#foflow-rescue3420
cos.f32(cos.f32 (atan.f32 (*.f32 (/.f32 alphay alphax) (tan.f32 (+.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) u1) (*.f32 #s(literal 1/2 binary32) (PI.f32)))))))sensitivity19714
tan.f32(tan.f32 (+.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) u1) (*.f32 #s(literal 1/2 binary32) (PI.f32))))cancellation1918
/.f32#fo/n1200
exp.f32#fsensitivity3819
/.f32#fu/n280
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-rescue190
(*.f32 sinTheta_O sinTheta_O)underflow290
(-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 sinTheta_O sinTheta_O)))))underflow19
(/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 sinTheta_O sinTheta_O))))underflow145
(*.f32 eta eta)underflow19
/.f32(/.f32 (neg.f32 (log.f32 (-.f32 #s(literal 1 binary32) u0))) (+.f32 (/.f32 cos2phi (*.f32 alphax alphax)) (/.f32 sin2phi (*.f32 alphay alphay))))n/o70
(/.f32 sin2phi (*.f32 alphay alphay))overflow12
(+.f32 (/.f32 cos2phi (*.f32 alphax alphax)) (/.f32 sin2phi (*.f32 alphay alphay)))overflow12
*.f32(*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 #s(literal 1 binary32) (sin.f32 normAngle)))n*u50
/.f32#fo/o40
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 -
+165164
-4005565
Precision
0.8049731838127743
Recall
0.9626822157434403
Confusion?
Predicted +Predicted MaybePredicted -
+16513529
-400865479
Precision?
0.7762430939226519
Recall?
0.9830903790087464
Freqs
test
numberfreq
05629
11744
2303
34
Total Confusion?
Predicted +Predicted MaybePredicted -
+2011
-314
Precision?
0.84
Recall?
0.9545454545454546
Samples
2.5s15 306×0valid
17.0ms54×1valid
Compiler

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

Precisions
Click to see histograms. Total time spent on operations: 1.7s
ival-mult: 574.0ms (33.6% of total)
ival-div: 226.0ms (13.2% of total)
ival-add: 114.0ms (6.7% of total)
ival-sub: 106.0ms (6.2% of total)
ival-sqrt: 93.0ms (5.4% of total)
ival-log: 78.0ms (4.6% of total)
const: 61.0ms (3.6% of total)
ival-sinu: 47.0ms (2.8% of total)
ival-sin: 44.0ms (2.6% of total)
ival-exp: 42.0ms (2.5% of total)
ival-floor: 42.0ms (2.5% of total)
ival-neg: 42.0ms (2.5% of total)
ival-fabs: 32.0ms (1.9% of total)
ival-pi: 28.0ms (1.6% of total)
ival-cos: 24.0ms (1.4% of total)
ival-cosu: 24.0ms (1.4% of total)
ival-tan: 21.0ms (1.2% of total)
ival-fmax: 16.0ms (0.9% of total)
ival-if: 16.0ms (0.9% of total)
ival-true: 15.0ms (0.9% of total)
exact: 14.0ms (0.8% of total)
ival-log2: 13.0ms (0.8% of total)
ival-atan: 8.0ms (0.5% of total)
ival-assert: 7.0ms (0.4% of total)
ival-sinh: 6.0ms (0.4% of total)
ival-asin: 4.0ms (0.2% of total)
ival->=: 4.0ms (0.2% of total)
ival->: 3.0ms (0.2% of total)
adjust: 2.0ms (0.1% of total)
ival-<: 1.0ms (0.1% of total)

bsearch208.0ms (0%)

Memory
103.5MiB live, 300.7MiB allocated
Algorithm
55×left-value
37×binary-search
Stop Event
37×narrow-enough
Compiler

Compiled 4 327 to 2 052 computations (52.6% saved)

start2.0ms (0%)

Memory
6.8MiB live, 6.8MiB allocated

Profiling

Loading profile data...