Herbie run

Date:Thursday, June 13th, 2024
Commit:63d27371 on web-cleanup
Hostname:nightly with Racket 8.11.1
Seed:2024165
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.5min)

simplify2.5min (25.9%)

Algorithm
268×egg-herbie
Rules
232 544×fma-define
118 052×distribute-lft-in
117 306×fmm-def
111 380×*-commutative
110 456×times-frac
Stop Event
197×node limit
71×saturated
Counts
100 703 → 73 288

soundness1.6min (16.4%)

Rules
107 290×fma-define
69 284×associate-*r*
62 616×*-commutative
60 514×times-frac
54 886×distribute-lft-in
Stop Event
161×node limit
29×fuel
saturated
done
Compiler

Compiled 69 486 to 12 181 computations (82.5% saved)

sample1.4min (15.1%)

Samples
1.1min247 627×0valid
2.0s10 306×0invalid
8.0ms53×1valid
Precisions
Click to see histograms. Total time spent on operations: 52.4s
ival-mult: 10.5s (20% of total)
...in/eval/compile.rkt:71:19: 8.9s (16.9% of total)
ival-<=: 7.8s (14.9% of total)
ival-div: 5.3s (10.1% of total)
ival-add: 2.6s (5% of total)
ival-sub: 2.2s (4.3% of total)
ival-sin: 1.8s (3.5% of total)
ival-log: 1.6s (3.1% of total)
ival-sqrt: 1.5s (2.8% of total)
ival-and: 1.4s (2.6% of total)
ival-neg: 1.3s (2.4% of total)
ival-fabs: 1.3s (2.4% of total)
ival-floor: 1.1s (2.1% of total)
ival-cos: 790.0ms (1.5% of total)
ival-pi: 710.0ms (1.4% of total)
ival-exp: 659.0ms (1.3% of total)
ival-log2: 558.0ms (1.1% of total)
ival-tan: 401.0ms (0.8% of total)
...in/eval/compile.rkt:70:19: 328.0ms (0.6% of total)
ival-fmax: 311.0ms (0.6% of total)
ival-<: 248.0ms (0.5% of total)
ival->: 246.0ms (0.5% of total)
ival-if: 236.0ms (0.5% of total)
ival-==: 153.0ms (0.3% of total)
ival-asin: 140.0ms (0.3% of total)
ival-assert: 135.0ms (0.3% of total)
ival-sinh: 128.0ms (0.2% of total)
ival-atan: 123.0ms (0.2% of total)
ival->=: 60.0ms (0.1% of total)
adjust: 1.0ms (0% of total)
Bogosity

prune43.5s (7.6%)

Counts
140 468 → 4 057
Compiler

Compiled 344 970 to 127 656 computations (63% saved)

localize36.1s (6.3%)

Samples
14.8s26 941×0valid
4.6s655×5exit
1.7s2 303×0invalid
1.2s565×1valid
Compiler

Compiled 101 022 to 5 552 computations (94.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 14.0s
ival-mult: 3.8s (27.5% of total)
ival-div: 1.8s (13% of total)
ival-pow: 1.1s (8.2% of total)
ival-add: 841.0ms (6% of total)
ival-sqrt: 824.0ms (5.9% of total)
adjust: 671.0ms (4.8% of total)
ival-sin: 624.0ms (4.5% of total)
ival-sub: 535.0ms (3.8% of total)
ival-tan: 499.0ms (3.6% of total)
ival-hypot: 429.0ms (3.1% of total)
ival-fma: 336.0ms (2.4% of total)
ival-log: 332.0ms (2.4% of total)
ival-exp: 271.0ms (1.9% of total)
...in/eval/compile.rkt:71:19: 221.0ms (1.6% of total)
ival-log1p: 214.0ms (1.5% of total)
ival-fmax: 171.0ms (1.2% of total)
ival-atan: 146.0ms (1% of total)
ival-neg: 138.0ms (1% of total)
ival-cos: 131.0ms (0.9% of total)
ival-if: 131.0ms (0.9% of total)
ival-pi: 126.0ms (0.9% of total)
ival-log2: 98.0ms (0.7% of total)
ival-floor: 93.0ms (0.7% of total)
ival-expm1: 55.0ms (0.4% of total)
...in/eval/compile.rkt:70:19: 42.0ms (0.3% of total)
ival-asin: 41.0ms (0.3% of total)
ival-cbrt: 34.0ms (0.2% of total)
ival-fabs: 33.0ms (0.2% of total)
ival-true: 32.0ms (0.2% of total)
ival->=: 30.0ms (0.2% of total)
ival->: 21.0ms (0.2% of total)
ival-assert: 20.0ms (0.1% of total)
ival-sinh: 11.0ms (0.1% of total)
ival-<: 10.0ms (0.1% of total)
ival-e: 8.0ms (0.1% of total)

rewrite34.5s (6%)

Algorithm
119×batch-egg-rewrite
Rules
65 149×log1p-expm1-u
50 043×expm1-log1p-u
37 171×pow1
35 626×log-prod
35 277×add-exp-log
Stop Event
119×node limit
Counts
1 990 → 44 265

series31.1s (5.4%)

Counts
1 990 → 56 438
Calls

13572 calls:

TimeVariablePointExpression
715.0ms
h
@-inf
(pow (fmax (pow (sqrt (+ (* (* (floor d) dX.w) (* (floor d) dX.w)) (* (sqrt (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)))) (sqrt (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))))))) 2) (pow (sqrt (+ (* (* (floor d) dY.w) (* (floor d) dY.w)) (* (sqrt (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (sqrt (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))))))) 2)) 1/4)
429.0ms
dX.w
@inf
(log (log2 (sqrt (fmax (pow (sqrt (+ (* (* dX.w (floor d)) (* dX.w (floor d))) (* (sqrt (+ (* (* dX.u (floor w)) (* dX.u (floor w))) (* (* (floor h) dX.v) (* (floor h) dX.v)))) (sqrt (+ (* (* dX.u (floor w)) (* dX.u (floor w))) (* (* (floor h) dX.v) (* (floor h) dX.v))))))) 2) (pow (* (floor d) dY.w) 2)))))
415.0ms
dY.u
@inf
(if (>= (+ (* (* dX.v dX.v) (* (floor h) (floor h))) (* (floor w) (* (floor w) (* dX.u dX.u)))) (+ (* (floor w) (* (floor w) (* dY.u dY.u))) (* (floor h) (* (floor h) (* dY.v dY.v))))) (* dX.v (/ (floor h) (sqrt (fmax (+ (* (* dX.v dX.v) (* (floor h) (floor h))) (* (floor w) (* (floor w) (* dX.u dX.u)))) (+ (* (floor w) (* (floor w) (* dY.u dY.u))) (* (floor h) (* (floor h) (* dY.v dY.v)))))))) (* (floor h) (/ dY.v (sqrt (fmax (+ (* (* dX.v dX.v) (* (floor h) (floor h))) (* (floor w) (* (floor w) (* dX.u dX.u)))) (+ (* (floor w) (* (floor w) (* dY.u dY.u))) (* (floor h) (* (floor h) (* dY.v dY.v)))))))))
402.0ms
w
@inf
(> (/ (fmax (+ (* (floor w) (* (* dX.u dX.u) (floor w))) (* (floor h) (* (* dX.v dX.v) (floor h)))) (+ (* (floor w) (* (* dY.u dY.u) (floor w))) (* (floor h) (* (* dY.v dY.v) (floor h))))) (fabs (* (floor h) (- (* dX.u (* (floor w) dY.v)) (* (* dY.u dX.v) (floor w)))))) (floor maxAniso))
380.0ms
cosTheta_i
@-inf
(exp (- (log (/ (* cosTheta_O cosTheta_i) (* (sinh (/ 1 v)) (* v (* v 2))))) (* sinTheta_i (/ sinTheta_O v))))

regimes28.7s (5%)

Counts
9 504 → 395
Calls

145 calls:

1.4s
s
1.1s
cosTheta_i
689.0ms
dX.v
672.0ms
x
656.0ms
ux
Compiler

Compiled 13 320 to 9 241 computations (30.6% saved)

eval27.7s (4.8%)

Compiler

Compiled 14 001 445 to 594 859 computations (95.8% saved)

analyze22.9s (4%)

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)

explain10.2s (1.8%)

Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
log.f32#fsensitivity102071
-.f32#fcancellation39533
sqrt.f32#foflow-rescue3530
cos.f32#fsensitivity19419
tan.f32(tan.f32 (+.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) u1) (*.f32 #s(literal 1/2 binary32) (PI.f32))))cancellation18916
/.f32#fo/n1300
exp.f32#fsensitivity3714
/.f32#fu/n230
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-rescue180
(*.f32 sinTheta_O sinTheta_O)underflow276
(-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 sinTheta_O sinTheta_O)))))underflow18
(/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 sinTheta_O sinTheta_O))))underflow138
(*.f32 eta eta)underflow18
/.f32#fo/o140
/.f32#fn/o60
*.f32(*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 #s(literal 1 binary32) (sin.f32 normAngle)))n*u40
sin.f32(sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))cancellation10
*.f32(*.f32 (sin.f32 (*.f32 (-.f32 #s(literal 1 binary32) u) normAngle)) (/.f32 #s(literal 1 binary32) (sin.f32 normAngle)))n*o10
*.f32(*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 #s(literal 1 binary32) (sin.f32 normAngle)))u*o10
(*.f32 u normAngle)underflow5
(sin.f32 (*.f32 u normAngle))underflow5
(/.f32 #s(literal 1 binary32) (sin.f32 normAngle))overflow1
Confusion
Predicted +Predicted -
+166962
-3915558
Precision
0.8101941747572815
Recall
0.9641825534373195
Confusion?
Predicted +Predicted MaybePredicted -
+16693428
-3911015457
Precision?
0.7758542141230068
Recall?
0.9838243789716926
Freqs
test
numberfreq
05620
11749
2296
315
Total Confusion?
Predicted +Predicted MaybePredicted -
+2202
-312
Precision?
0.8461538461538461
Recall?
0.9166666666666666
Samples
3.4s15 274×0valid
36.0ms86×1valid
Compiler

Compiled 18 280 to 2 256 computations (87.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.9s
ival-mult: 653.0ms (34.4% of total)
ival-div: 269.0ms (14.2% of total)
ival-sin: 178.0ms (9.4% of total)
ival-add: 150.0ms (7.9% of total)
ival-floor: 111.0ms (5.8% of total)
ival-log: 83.0ms (4.4% of total)
ival-sub: 80.0ms (4.2% of total)
ival-sqrt: 67.0ms (3.5% of total)
ival-cos: 43.0ms (2.3% of total)
ival-exp: 41.0ms (2.2% of total)
ival-neg: 33.0ms (1.7% of total)
ival-pi: 26.0ms (1.4% of total)
...in/eval/compile.rkt:71:19: 26.0ms (1.4% of total)
ival-if: 19.0ms (1% of total)
ival-tan: 19.0ms (1% of total)
ival-fmax: 18.0ms (0.9% of total)
ival-log2: 16.0ms (0.8% of total)
ival-true: 16.0ms (0.8% of total)
ival-assert: 10.0ms (0.5% of total)
ival-fabs: 9.0ms (0.5% of total)
...in/eval/compile.rkt:70:19: 8.0ms (0.4% of total)
ival-atan: 7.0ms (0.4% of total)
ival-asin: 5.0ms (0.3% of total)
ival-sinh: 5.0ms (0.3% of total)
ival->=: 4.0ms (0.2% of total)
ival->: 3.0ms (0.2% of total)
adjust: 3.0ms (0.2% of total)
ival-<: 1.0ms (0.1% of total)

preprocess9.6s (1.7%)

Algorithm
30×egg-herbie
Rules
30 620×fma-define
21 784×fmm-def
14 698×distribute-lft-neg-in
14 266×unsub-neg
11 858×distribute-rgt-neg-in
Stop Event
19×node limit
11×saturated
Compiler

Compiled 49 944 to 15 844 computations (68.3% saved)

bsearch40.0ms (0%)

Algorithm
58×binary-search
20×left-value
Stop Event
58×narrow-enough
Compiler

Compiled 3 847 to 1 948 computations (49.4% saved)

end0.0ms (0%)

Profiling

Loading profile data...