Herbie run

Date:Tuesday, August 6th, 2024
Commit:2.2 on release
Hostname:nightly with Racket 8.11.1
Seed:2024219
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: 19.9min)

soundness3.7min (18.6%)

Memory
111.7MiB live, 39 796.5MiB allocated
Rules
2 008 324×lower-fma.f32
2 007 892×lower-fma.f64
990 200×lower-*.f32
988 852×lower-*.f64
579 248×lower-+.f32
Stop Event
320×iter limit
209×node limit
35×fuel
21×done
unsound
saturated
Compiler

Compiled 36 473 to 14 476 computations (60.3% saved)

sample3.6min (18%)

Memory
877.6MiB live, 138 052.2MiB allocated
Samples
1.2min438 824×0valid
24.1s3 778×5exit
7.2s22 284×1valid
3.8s8 611×2valid
610.0ms7 853×0exit
295.0ms874×3valid
48.0ms539×0invalid
Precisions
Click to see histograms. Total time spent on operations: 1.5min
ival-mult: 35.2s (39.5% of total)
ival-sin: 19.2s (21.5% of total)
ival-add: 5.5s (6.2% of total)
adjust: 4.7s (5.2% of total)
const: 3.9s (4.4% of total)
ival-div: 3.6s (4% of total)
ival-exp: 3.0s (3.4% of total)
ival-hypot: 2.9s (3.3% of total)
ival-sub: 1.8s (2% of total)
ival-log: 1.7s (2% of total)
ival-asin: 1.2s (1.4% of total)
ival-cos: 1.2s (1.3% of total)
ival-sqrt: 842.0ms (0.9% of total)
ival-atan2: 715.0ms (0.8% of total)
ival-pi: 458.0ms (0.5% of total)
ival-<=: 426.0ms (0.5% of total)
ival-pow: 374.0ms (0.4% of total)
exact: 355.0ms (0.4% of total)
ival-asinh: 313.0ms (0.4% of total)
ival->: 276.0ms (0.3% of total)
ival-acosh: 271.0ms (0.3% of total)
ival-true: 264.0ms (0.3% of total)
ival-atanh: 252.0ms (0.3% of total)
ival-neg: 193.0ms (0.2% of total)
ival-assert: 189.0ms (0.2% of total)
ival-fabs: 171.0ms (0.2% of total)
ival->=: 119.0ms (0.1% of total)
ival-and: 75.0ms (0.1% of total)
Bogosity

simplify2.9min (14.4%)

Memory
-299.9MiB live, 177 126.9MiB allocated
Algorithm
444×egg-herbie
Rules
3 695 724×lower-fma.f32
3 694 868×lower-fma.f64
1 300 230×lower-*.f32
1 297 790×lower-*.f64
880 452×lower-+.f32
Stop Event
582×iter limit
268×node limit
176×saturated
Counts
57 936 → 57 150

prune2.6min (12.9%)

Memory
-1 994.5MiB live, 59 908.0MiB allocated
Counts
213 196 → 3 295
Compiler

Compiled 192 619 to 73 972 computations (61.6% saved)

end2.1min (10.4%)

Memory
-11.4MiB live, 1 018.9MiB allocated

rewrite1.8min (9.3%)

Memory
859.4MiB live, 113 224.2MiB allocated
Algorithm
194×batch-egg-rewrite
Rules
998 114×lower-fma.f32
997 270×lower-fma.f64
777 766×lower-*.f32
775 474×lower-*.f64
602 650×lower-/.f32
Stop Event
409×iter limit
185×node limit
saturated
unsound
Counts
2 869 → 112 201

eval48.1s (4%)

Memory
938.4MiB live, 70 088.4MiB allocated
Compiler

Compiled 12 938 502 to 504 633 computations (96.1% saved)

explain43.6s (3.6%)

Memory
-285.2MiB live, 20 565.9MiB allocated
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64#foflow-rescue11770
-.f64#fcancellation7944
/.f64#fo/o6140
sin.f64#fsensitivity1960
cos.f64(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))sensitivity1930
/.f64#fo/n1880
sqrt.f32#foflow-rescue1840
+.f64#fcancellation1450
sqrt.f64#fuflow-rescue1430
log.f64(log.f64 (+.f64 (fabs.f64 x) (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))))sensitivity1320
log.f32(log.f32 (+.f32 (fabs.f32 x) (sqrt.f32 (+.f32 (*.f32 x x) #s(literal 1 binary32)))))sensitivity1275
-.f64#fnan-rescue1020
/.f64#fn/o930
*.f64#fn*u600
/.f64(/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 #s(literal 2 binary64) i) (*.f64 #s(literal 2 binary64) i)))u/u590
(*.f64 (*.f64 i i) (*.f64 i i))underflow92
(*.f64 i i)underflow118
(*.f64 (*.f64 #s(literal 2 binary64) i) (*.f64 #s(literal 2 binary64) i))underflow59
+.f64#fnan-rescue520
*.f64#fn*o400
/.f64#fu/n380
/.f64#fn/u90
*.f64(*.f64 (*.f64 (sqrt.f64 (*.f64 (PI.f64) #s(literal 2 binary64))) (pow.f64 (+.f64 (+.f64 (-.f64 (-.f64 #s(literal 1 binary64) z) #s(literal 1 binary64)) #s(literal 7 binary64)) #s(literal 1/2 binary64)) (+.f64 (-.f64 (-.f64 #s(literal 1 binary64) z) #s(literal 1 binary64)) #s(literal 1/2 binary64)))) (exp.f64 (neg.f64 (+.f64 (+.f64 (-.f64 (-.f64 #s(literal 1 binary64) z) #s(literal 1 binary64)) #s(literal 7 binary64)) #s(literal 1/2 binary64)))))o*u30
(*.f64 (sqrt.f64 (*.f64 (PI.f64) #s(literal 2 binary64))) (pow.f64 (+.f64 (+.f64 (-.f64 (-.f64 #s(literal 1 binary64) z) #s(literal 1 binary64)) #s(literal 7 binary64)) #s(literal 1/2 binary64)) (+.f64 (-.f64 (-.f64 #s(literal 1 binary64) z) #s(literal 1 binary64)) #s(literal 1/2 binary64))))overflow3
(pow.f64 (+.f64 (+.f64 (-.f64 (-.f64 #s(literal 1 binary64) z) #s(literal 1 binary64)) #s(literal 7 binary64)) #s(literal 1/2 binary64)) (+.f64 (-.f64 (-.f64 #s(literal 1 binary64) z) #s(literal 1 binary64)) #s(literal 1/2 binary64)))overflow3
(exp.f64 (neg.f64 (+.f64 (+.f64 (-.f64 (-.f64 #s(literal 1 binary64) z) #s(literal 1 binary64)) #s(literal 7 binary64)) #s(literal 1/2 binary64))))underflow3
log.f32#foflow-rescue20
cos.f64(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))oflow-rescue10
(+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))overflow1
(*.f64 x.re x.re)overflow59
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))overflow103
(*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im)overflow1
(*.f64 x.im x.im)overflow66
exp.f64(exp.f64 (neg.f64 (*.f64 (fabs.f64 x) (fabs.f64 x))))sensitivity10
sin.f64(sin.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))oflow-rescue10
(+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))overflow1
(*.f64 x.re x.re)overflow59
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))overflow103
(*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im)overflow1
(*.f64 x.im x.im)overflow66
Confusion
Predicted +Predicted -
+359946
-19710750
Precision
0.9481032665964173
Recall
0.9873799725651577
Confusion?
Predicted +Predicted MaybePredicted -
+3599640
-197510745
Precision?
0.9469398476490675
Recall?
0.9890260631001372
Freqs
test
numberfreq
010796
13240
2554
32
Total Confusion?
Predicted +Predicted MaybePredicted -
+3700
-0020
Precision?
1.0
Recall?
1.0
Samples
3.1s25 726×0valid
1.1s2 500×1valid
587.0ms906×2valid
21.0ms52×3valid
Compiler

Compiled 15 068 to 2 968 computations (80.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.2s
ival-mult: 894.0ms (28.2% of total)
ival-add: 365.0ms (11.5% of total)
ival-exp: 236.0ms (7.4% of total)
ival-log: 216.0ms (6.8% of total)
ival-div: 215.0ms (6.8% of total)
const: 203.0ms (6.4% of total)
adjust: 173.0ms (5.5% of total)
ival-hypot: 168.0ms (5.3% of total)
ival-sin: 129.0ms (4.1% of total)
ival-sub: 114.0ms (3.6% of total)
ival-cos: 97.0ms (3.1% of total)
ival-asin: 69.0ms (2.2% of total)
ival-atan2: 62.0ms (2% of total)
ival-sqrt: 51.0ms (1.6% of total)
ival-pi: 26.0ms (0.8% of total)
ival-true: 26.0ms (0.8% of total)
ival-pow: 26.0ms (0.8% of total)
ival-fabs: 26.0ms (0.8% of total)
exact: 20.0ms (0.6% of total)
ival-log1p: 16.0ms (0.5% of total)
ival-copysign: 12.0ms (0.4% of total)
ival-assert: 12.0ms (0.4% of total)
ival-neg: 12.0ms (0.4% of total)

localize35.7s (3%)

Memory
-43.7MiB live, 50 505.1MiB allocated
Samples
12.0s40 367×0valid
3.9s4 266×1valid
2.4s1 621×2valid
1.3s2 996×0invalid
452.0ms140×3valid
173.0ms259×1exit
5.0ms2exit
5.0ms4valid
4.0ms0exit
Compiler

Compiled 69 485 to 6 172 computations (91.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.2s
ival-mult: 4.9s (31.9% of total)
ival-add: 2.3s (14.9% of total)
ival-div: 1.3s (8.6% of total)
const: 1.2s (8.2% of total)
adjust: 1.0s (6.9% of total)
ival-log: 705.0ms (4.6% of total)
ival-exp: 576.0ms (3.8% of total)
ival-sub: 432.0ms (2.8% of total)
ival-sqrt: 412.0ms (2.7% of total)
ival-cos: 389.0ms (2.6% of total)
ival-hypot: 382.0ms (2.5% of total)
ival-sin: 286.0ms (1.9% of total)
ival-pow: 201.0ms (1.3% of total)
ival-asin: 190.0ms (1.2% of total)
ival-acos: 131.0ms (0.9% of total)
ival-neg: 125.0ms (0.8% of total)
ival-copysign: 109.0ms (0.7% of total)
ival-atan2: 107.0ms (0.7% of total)
ival-pi: 95.0ms (0.6% of total)
ival-pow2: 94.0ms (0.6% of total)
exact: 70.0ms (0.5% of total)
ival-log1p: 58.0ms (0.4% of total)
ival-fabs: 51.0ms (0.3% of total)
ival-true: 43.0ms (0.3% of total)
ival-assert: 21.0ms (0.1% of total)
ival-cosh: 12.0ms (0.1% of total)

preprocess34.5s (2.9%)

Memory
370.3MiB live, 22 860.3MiB allocated
Algorithm
57×egg-herbie
Rules
296 104×lower-fma.f64
296 104×lower-fma.f32
79 264×lower-*.f32
78 898×lower-*.f64
56 582×lower-+.f32
Stop Event
114×iter limit
76×saturated
38×node limit
Compiler

Compiled 43 614 to 10 480 computations (76% saved)

regimes15.2s (1.3%)

Memory
117.3MiB live, 21 552.7MiB allocated
Counts
9 777 → 956
Calls

130 calls:

1.1s
re
955.0ms
im
862.0ms
x
606.0ms
x.im
514.0ms
y.im
Compiler

Compiled 17 472 to 9 985 computations (42.9% saved)

series13.5s (1.1%)

Memory
255.3MiB live, 13 622.2MiB allocated
Counts
2 869 → 57 936
Calls

6924 calls:

TimeVariablePointExpression
360.0ms
x
@0
(/ (- (* 1 (+ (* (/ (+ 31853699/125000000 (/ (+ -8890523/31250000 (/ (+ 1421413741/1000000000 (/ (+ -1453152027/1000000000 (/ 1061405429/1000000000 (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (* (+ (* 3275911/10000000 (fabs x)) 1) (exp (* x x)))) (+ 1 (/ (+ 31853699/125000000 (/ (+ -8890523/31250000 (/ (+ 1421413741/1000000000 (/ (+ -1453152027/1000000000 (/ 1061405429/1000000000 (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (* (+ (* 3275911/10000000 (fabs x)) 1) (exp (* x x)))))) 1)) (* (+ (* (/ (+ 31853699/125000000 (/ (+ -8890523/31250000 (/ (+ 1421413741/1000000000 (/ (+ -1453152027/1000000000 (/ 1061405429/1000000000 (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (* (+ (* 3275911/10000000 (fabs x)) 1) (exp (* x x)))) (+ 1 (/ (+ 31853699/125000000 (/ (+ -8890523/31250000 (/ (+ 1421413741/1000000000 (/ (+ -1453152027/1000000000 (/ 1061405429/1000000000 (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (* (+ (* 3275911/10000000 (fabs x)) 1) (exp (* x x)))))) 1) (pow (/ (+ 31853699/125000000 (/ (+ -8890523/31250000 (/ (+ 1421413741/1000000000 (/ (+ -1453152027/1000000000 (/ 1061405429/1000000000 (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (* (+ (* 3275911/10000000 (fabs x)) 1) (exp (* x x)))) 3))) (* (+ (* (/ (+ 31853699/125000000 (/ (+ -8890523/31250000 (/ (+ 1421413741/1000000000 (/ (+ -1453152027/1000000000 (/ 1061405429/1000000000 (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (* (+ (* 3275911/10000000 (fabs x)) 1) (exp (* x x)))) (+ 1 (/ (+ 31853699/125000000 (/ (+ -8890523/31250000 (/ (+ 1421413741/1000000000 (/ (+ -1453152027/1000000000 (/ 1061405429/1000000000 (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (* (+ (* 3275911/10000000 (fabs x)) 1) (exp (* x x)))))) 1) (+ (* (/ (+ 31853699/125000000 (/ (+ -8890523/31250000 (/ (+ 1421413741/1000000000 (/ (+ -1453152027/1000000000 (/ 1061405429/1000000000 (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (* (+ (* 3275911/10000000 (fabs x)) 1) (exp (* x x)))) (+ 1 (/ (+ 31853699/125000000 (/ (+ -8890523/31250000 (/ (+ 1421413741/1000000000 (/ (+ -1453152027/1000000000 (/ 1061405429/1000000000 (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (* (+ (* 3275911/10000000 (fabs x)) 1) (exp (* x x)))))) 1)))
129.0ms
x.re
@0
(* (cos (+ (* y.im (log x.re)) (* y.re (atan2 x.im x.re)))) (exp (- (* y.re (log x.re)) (* y.im (atan2 x.im x.re)))))
108.0ms
x
@0
(/ (- (/ 1 (+ 1 (pow (/ (+ 31853699/125000000 (/ (+ -8890523/31250000 (/ (+ 1421413741/1000000000 (/ (+ -1453152027/1000000000 (/ 1061405429/1000000000 (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (* (+ (* 3275911/10000000 (fabs x)) 1) (exp (* x x)))) 2))) (/ (pow (/ (+ 31853699/125000000 (/ (+ -8890523/31250000 (/ (+ 1421413741/1000000000 (/ (+ -1453152027/1000000000 (/ 1061405429/1000000000 (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (* (+ (* 3275911/10000000 (fabs x)) 1) (exp (* x x)))) 4) (+ 1 (pow (/ (+ 31853699/125000000 (/ (+ -8890523/31250000 (/ (+ 1421413741/1000000000 (/ (+ -1453152027/1000000000 (/ 1061405429/1000000000 (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (* (+ (* 3275911/10000000 (fabs x)) 1) (exp (* x x)))) 2)))) (+ 1 (/ (+ 31853699/125000000 (/ (+ -8890523/31250000 (/ (+ 1421413741/1000000000 (/ (+ -1453152027/1000000000 (/ 1061405429/1000000000 (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (+ (* 3275911/10000000 (fabs x)) 1))) (* (+ (* 3275911/10000000 (fabs x)) 1) (exp (* x x))))))
104.0ms
d1
@0
(* d1 (* d1 (sqrt (sqrt d1))))
103.0ms
d1
@inf
(+ (* d1 d2) (* d1 d3))

bsearch3.4s (0.3%)

Memory
-100.2MiB live, 4 997.0MiB allocated
Algorithm
283×left-value
196×binary-search
Stop Event
184×narrow-enough
12×predicate-same
Samples
1.5s13 334×0valid
655.0ms1 565×1valid
56.0ms156×2valid
13.0ms49×3valid
Compiler

Compiled 54 054 to 33 011 computations (38.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.7s
ival-mult: 530.0ms (31.9% of total)
ival-hypot: 188.0ms (11.3% of total)
ival-log: 168.0ms (10.1% of total)
ival-add: 147.0ms (8.9% of total)
ival-sin: 146.0ms (8.8% of total)
const: 93.0ms (5.6% of total)
adjust: 69.0ms (4.2% of total)
ival-cos: 62.0ms (3.7% of total)
ival-exp: 61.0ms (3.7% of total)
ival-sub: 59.0ms (3.6% of total)
ival-atan2: 58.0ms (3.5% of total)
ival-div: 49.0ms (3% of total)
ival-sqrt: 11.0ms (0.7% of total)
ival-true: 11.0ms (0.7% of total)
ival-assert: 6.0ms (0.4% of total)
exact: 4.0ms (0.2% of total)

analyze2.7s (0.2%)

Memory
9.6MiB live, 3 559.4MiB allocated
Algorithm
58×search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%86.3%13.7%0%0%0%0
55.4%47.8%38.5%13.7%0%0%0%1
65.9%55.7%28.9%13.7%0%1.7%0%2
71.2%58.4%23.6%13.7%0%4.3%0%3
77.4%62%18.1%13.7%0%6.2%0%4
83.5%66.8%13.2%13.7%0%6.3%0%5
85.8%68.3%11.3%13.7%0%6.6%0%6
88.3%70.3%9.4%13.7%0%6.6%0%7
89.9%71.5%8%13.7%0%6.8%0%8
91.1%72.5%7.1%13.7%0%6.8%0%9
92.6%73.6%5.9%13.7%0%6.8%0%10
94%74.7%4.8%13.7%0%6.8%0%11
94.5%75.1%4.4%13.7%0%6.9%0%12
Compiler

Compiled 1 498 to 821 computations (45.2% saved)

Profiling

Loading profile data...