Herbie run

Date:Monday, January 6th, 2025
Commit:766effe6 on store-egraph
Seed:2025006
Parameters:256 points for 4 iterations
Flags:
localize:costslocalize:errorsreduce:regimesreduce:binary-searchreduce:branch-expressionssetup:simplifysetup:searchrules:arithmeticrules:polynomialsrules:fractionsrules:exponentsrules:trigonometryrules:hyperbolicrules:numericsrules:specialrules:boolsrules:branchesgenerate:rrgenerate:taylorgenerate:simplifygenerate:proofs
default
Memory:417 324.3 MB

Time bar (total: 6.0min)

sample1.6min (27.2%)

Memory
1 562.1MiB live, 121 150.1MiB allocated; 34.7s collecting garbage
Samples
50.2s434 200×0valid
10.4s26 374×1valid
4.6s9 157×2valid
3.0s4 383×0invalid
2.0s8 882×0exit
701.0ms889×3valid
Precisions
Click to see histograms. Total time spent on operations: 50.3s
ival-mult: 13.1s (26.1% of total)
ival-add: 5.8s (11.6% of total)
ival-div: 4.9s (9.8% of total)
const: 4.6s (9.2% of total)
ival-exp: 3.2s (6.4% of total)
adjust: 2.8s (5.6% of total)
ival-hypot: 2.4s (4.7% of total)
ival-sub: 2.2s (4.5% of total)
ival-log: 1.8s (3.5% of total)
ival-asin: 1.3s (2.6% of total)
ival-cos: 1.2s (2.5% of total)
ival-sin: 938.0ms (1.9% of total)
ival-atan2: 834.0ms (1.7% of total)
ival-sqrt: 825.0ms (1.6% of total)
ival->: 447.0ms (0.9% of total)
ival-asinh: 438.0ms (0.9% of total)
ival-sinu: 380.0ms (0.8% of total)
ival-acosh: 373.0ms (0.7% of total)
exact: 372.0ms (0.7% of total)
ival-neg: 312.0ms (0.6% of total)
ival-pow: 308.0ms (0.6% of total)
ival-true: 268.0ms (0.5% of total)
ival-pi: 234.0ms (0.5% of total)
ival-fabs: 230.0ms (0.5% of total)
ival-atanh: 205.0ms (0.4% of total)
ival-<=: 193.0ms (0.4% of total)
ival-assert: 192.0ms (0.4% of total)
ival->=: 151.0ms (0.3% of total)
ival-cosu: 105.0ms (0.2% of total)
ival-and: 81.0ms (0.2% of total)
Bogosity

simplify1.2min (20.1%)

Memory
-2.4MiB live, 72 492.7MiB allocated; 24.4s collecting garbage
Stop Event
604×iter limit
347×node limit
111×saturated
unsound
Counts
16 133 → 15 954

rewrite42.8s (11.8%)

Memory
19.3MiB live, 45 298.6MiB allocated; 12.6s collecting garbage
Stop Event
436×iter limit
190×node limit
unsound
saturated
Counts
2 812 → 96 147

localize32.0s (8.8%)

Memory
401.8MiB live, 39 872.9MiB allocated; 7.6s collecting garbage
Samples
12.6s41 496×0valid
5.9s4 899×1valid
3.3s1 757×2valid
951.0ms2 193×0invalid
615.0ms946×0exit
495.0ms107×5exit
50.0ms58×3valid
Compiler

Compiled 67 443 to 6 358 computations (90.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.5s
ival-mult: 4.7s (27% of total)
ival-add: 2.1s (12% of total)
ival-div: 1.7s (9.6% of total)
adjust: 1.7s (9.5% of total)
const: 1.5s (8.5% of total)
ival-pow: 849.0ms (4.8% of total)
ival-sub: 823.0ms (4.7% of total)
ival-log: 774.0ms (4.4% of total)
ival-exp: 608.0ms (3.5% of total)
ival-hypot: 502.0ms (2.9% of total)
ival-sqrt: 358.0ms (2% of total)
ival-sin: 272.0ms (1.6% of total)
ival-asin: 251.0ms (1.4% of total)
ival-cos: 198.0ms (1.1% of total)
ival-neg: 190.0ms (1.1% of total)
ival-pow2: 157.0ms (0.9% of total)
ival-atan2: 154.0ms (0.9% of total)
ival-copysign: 115.0ms (0.7% of total)
ival-acos: 104.0ms (0.6% of total)
ival-fabs: 104.0ms (0.6% of total)
exact: 80.0ms (0.5% of total)
ival-pi: 44.0ms (0.3% of total)
ival-log1p: 43.0ms (0.2% of total)
ival-true: 42.0ms (0.2% of total)
ival-cosh: 33.0ms (0.2% of total)
ival-sinu: 30.0ms (0.2% of total)
ival-cosu: 27.0ms (0.2% of total)
ival-acosh: 24.0ms (0.1% of total)
ival-assert: 22.0ms (0.1% of total)
ival-asinh: 21.0ms (0.1% of total)
ival-sinh: 19.0ms (0.1% of total)
ival->: 4.0ms (0% of total)
ival-exp2: 3.0ms (0% of total)
ival-then: 1.0ms (0% of total)

derivations24.6s (6.8%)

Memory
-80.6MiB live, 18 723.8MiB allocated; 2.9s collecting garbage
Stop Event
38×fuel
19×done
Compiler

Compiled 35 877 to 4 504 computations (87.4% saved)

eval24.0s (6.6%)

Memory
-457.4MiB live, 31 002.5MiB allocated; 10.7s collecting garbage
Compiler

Compiled 6 247 284 to 479 650 computations (92.3% saved)

explain15.6s (4.3%)

Memory
41.3MiB live, 19 911.2MiB allocated; 3.7s collecting garbage
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64#foflow-rescue12120
-.f64#fcancellation7453
/.f64#fo/o6060
/.f64#fo/n2060
sin.f64#fsensitivity1860
+.f64#fcancellation1860
sqrt.f32#foflow-rescue1830
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)))sensitivity1800
log.f64(log.f64 (+.f64 (fabs.f64 x) (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))))sensitivity1390
log.f32(log.f32 (+.f32 (fabs.f32 x) (sqrt.f32 (+.f32 (*.f32 x x) #s(literal 1 binary32)))))sensitivity1231
sqrt.f64#fuflow-rescue1210
/.f64#fn/o1000
-.f64#fnan-rescue720
/.f64#fu/u590
*.f64#fn*u510
/.f64#fu/n440
+.f64#fnan-rescue440
*.f64#fn*o280
/.f64#fn/u100
*.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*u60
(*.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))))overflow6
(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)))overflow6
(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))))underflow6
exp.f64#fsensitivity40
log.f32#foflow-rescue30
pow.f64(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)))sensitivity10
Confusion
Predicted +Predicted -
+357228
-18710805
Precision
0.9502527267890396
Recall
0.9922222222222222
Confusion?
Predicted +Predicted MaybePredicted -
+3572028
-187410801
Precision?
0.9492426255647091
Recall?
0.9922222222222222
Freqs
test
numberfreq
010833
13210
2548
31
Total Confusion?
Predicted +Predicted MaybePredicted -
+3600
-1020
Precision?
0.972972972972973
Recall?
1.0
Samples
3.4s25 460×0valid
1.4s2 736×1valid
790.0ms958×2valid
11.0ms28×3valid
1.0ms5exit
Compiler

Compiled 13 558 to 2 283 computations (83.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.8s
ival-mult: 1.2s (31.9% of total)
adjust: 401.0ms (10.7% of total)
ival-add: 397.0ms (10.6% of total)
const: 268.0ms (7.1% of total)
ival-exp: 230.0ms (6.1% of total)
ival-hypot: 218.0ms (5.8% of total)
ival-log: 210.0ms (5.6% of total)
ival-div: 207.0ms (5.5% of total)
ival-sub: 113.0ms (3% of total)
ival-atan2: 89.0ms (2.4% of total)
ival-asin: 64.0ms (1.7% of total)
ival-sin: 58.0ms (1.5% of total)
ival-cos: 52.0ms (1.4% of total)
ival-sqrt: 49.0ms (1.3% of total)
ival-fabs: 35.0ms (0.9% of total)
ival-pi: 32.0ms (0.9% of total)
ival-true: 25.0ms (0.7% of total)
ival-pow: 24.0ms (0.6% of total)
exact: 21.0ms (0.6% of total)
ival-neg: 16.0ms (0.4% of total)
ival-copysign: 13.0ms (0.3% of total)
ival-assert: 12.0ms (0.3% of total)
ival-sinu: 10.0ms (0.3% of total)
ival-log1p: 7.0ms (0.2% of total)
ival-cosu: 6.0ms (0.2% of total)

regimes13.1s (3.6%)

Memory
258.5MiB live, 17 102.3MiB allocated; 2.5s collecting garbage
Counts
8 233 → 895
Calls

132 calls:

845.0ms
y.re
746.0ms
re
717.0ms
im
471.0ms
y.im
450.0ms
x
Compiler

Compiled 15 132 to 10 545 computations (30.3% saved)

series12.4s (3.4%)

Memory
-129.3MiB live, 15 748.4MiB allocated; 4.9s collecting garbage
Counts
2 812 → 16 133
Calls

1254 calls:

TimeVariablePointExpression
972.0ms
x
@0
((* (/ 1 (sqrt (PI))) (+ (* (* 1/21 (pow x 6)) x) (+ (* 1/5 (pow x 5)) (+ (* 2/3 (pow x 3)) (* 2 x))))) (fabs (* (/ 1 (sqrt (PI))) (+ (* (* 1/21 (pow x 6)) x) (+ (* 1/5 (pow x 5)) (+ (* 2/3 (pow x 3)) (* 2 x)))))) (/ 1 (sqrt (PI))) (sqrt (PI)) (/ (fabs (+ (* (* 1/21 (pow x 6)) x) (+ (* 1/5 (pow x 5)) (+ (* 2/3 (pow x 3)) (* 2 x))))) (sqrt (PI))) (fabs (+ (* (* 1/21 (pow x 6)) x) (+ (* 1/5 (pow x 5)) (+ (* 2/3 (pow x 3)) (* 2 x))))) (+ (* (* 1/21 (pow x 6)) x) (+ (* 1/5 (pow x 5)) (+ (* 2/3 (pow x 3)) (* 2 x)))) (* 2 x) (* (/ 1 (sqrt (PI))) (+ (* (* 1/21 (pow x 6)) x) (+ (* 1/5 (pow x 5)) (+ (* 2/3 (pow x 3)) (* 2 x))))) (fabs (* (/ 1 (sqrt (PI))) (+ (* (* 1/21 (pow x 6)) x) (+ (* 1/5 (pow x 5)) (+ (* 2/3 (pow x 3)) (* 2 x)))))) (/ (fabs (+ (* (* 1/21 (pow x 6)) x) (+ (* 1/5 (pow x 5)) (+ (* 2/3 (pow x 3)) (* 2 x))))) (sqrt (PI))) (fabs (+ (* (* 1/21 (pow x 6)) x) (+ (* 1/5 (pow x 5)) (+ (* 2/3 (pow x 3)) (* 2 x))))) (+ (* (* 1/21 (pow x 6)) x) (+ (* 1/5 (pow x 5)) (+ (* 2/3 (pow x 3)) (* 2 x)))) (* (+ (* (+ (* (* x x) 1/5) 2/3) (* x x)) 2) x) (* (/ 1 (sqrt (PI))) (+ (* (* 1/21 (pow x 6)) x) (+ (* 1/5 (pow x 5)) (+ (* 2/3 (pow x 3)) (* 2 x))))) (fabs (* (/ 1 (sqrt (PI))) (+ (* (* 1/21 (pow x 6)) x) (+ (* 1/5 (pow x 5)) (+ (* 2/3 (pow x 3)) (* 2 x)))))) (+ (* (* x x) 1/21) 1/5) (+ (* (+ (* (* x x) 1/21) 1/5) (* x x)) 2/3) (PI) (+ (* (* 1/21 (pow x 6)) x) (+ (* 1/5 (pow x 5)) (+ (* 2/3 (pow x 3)) (* 2 x)))) (+ (* (* x x) 2/3) 2) (+ (* (* x x) 1/5) 2/3) (+ (* (* 1/21 (pow x 6)) x) (+ (* 1/5 (pow x 5)) (+ (* 2/3 (pow x 3)) (* 2 x)))) (* 1/5 x))
139.0ms
base
@0
((* (log (sqrt (+ (* im im) (* re re)))) (pow (log base) -1)) (log (sqrt (+ (* im im) (* re re)))) (sqrt (+ (* im im) (* re re))) (pow (log base) -1) (/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0)) (+ (* (log base) (log base)) (* 0 0))) (/ (* (log (+ (* im im) (* re re))) 1/2) (log base)) (* (log (* im im)) (/ 1/2 (log base))) (log (* im im)) (exp (log (log base))) (/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0)) (+ (* (log base) (log base)) (* 0 0))) (/ (log im) (exp (log (log base)))) (log im) (* (log base) (/ (* (log (+ (* im im) (* re re))) 1/2) (pow (log base) 2))) (log base) (/ (* (log (+ (* im im) (* re re))) 1/2) (pow (log base) 2)) (* (log (+ (* im im) (* re re))) 1/2) (* (pow (log base) 5) (/ (log (sqrt (+ (* im im) (* re re)))) (pow (log base) 6))) (pow (log base) 5) (/ (log (sqrt (+ (* im im) (* re re)))) (pow (log base) 6)) (/ 1/2 (log base)) (log (log base)) (log (+ (* im im) (* re re))) (pow (log base) 2) (pow (log base) 6))
136.0ms
x
@-inf
((log (* (log x) x)) (* (log x) x) (log x) (log (/ x (log x))) (/ x (log x)))
111.0ms
base
@inf
((* (log (sqrt (+ (* im im) (* re re)))) (pow (log base) -1)) (log (sqrt (+ (* im im) (* re re)))) (sqrt (+ (* im im) (* re re))) (pow (log base) -1) (/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0)) (+ (* (log base) (log base)) (* 0 0))) (/ (* (log (+ (* im im) (* re re))) 1/2) (log base)) (* (log (* im im)) (/ 1/2 (log base))) (log (* im im)) (exp (log (log base))) (/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0)) (+ (* (log base) (log base)) (* 0 0))) (/ (log im) (exp (log (log base)))) (log im) (* (log base) (/ (* (log (+ (* im im) (* re re))) 1/2) (pow (log base) 2))) (log base) (/ (* (log (+ (* im im) (* re re))) 1/2) (pow (log base) 2)) (* (log (+ (* im im) (* re re))) 1/2) (* (pow (log base) 5) (/ (log (sqrt (+ (* im im) (* re re)))) (pow (log base) 6))) (pow (log base) 5) (/ (log (sqrt (+ (* im im) (* re re)))) (pow (log base) 6)) (/ 1/2 (log base)) (log (log base)) (log (+ (* im im) (* re re))) (pow (log base) 2) (pow (log base) 6))
111.0ms
x.im
@inf
((/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))) (/ (- (/ (* x.im y.re) y.im) x.re) y.im) (- (/ (* x.im y.re) y.im) x.re) (/ (* x.im y.re) y.im) (/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))) (* (/ x.im (+ (* y.im y.im) (* y.re y.re))) y.re) (/ x.im (+ (* y.im y.im) (* y.re y.re))) (+ (* y.im y.im) (* y.re y.re)) (/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))) (* x.im (/ y.re (+ (* y.im y.im) (* y.re y.re)))) (/ y.re (+ (* y.im y.im) (* y.re y.re))) (+ (* y.im y.im) (* y.re y.re)) (/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))) (/ (- x.im (/ (* x.re y.im) y.re)) y.re) (* (/ (/ (neg x.re) y.re) y.re) y.im) (/ (/ (neg x.re) y.re) y.re) (/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))) (- (* x.im y.re) (* x.re y.im)) (* x.im y.re) (* x.re y.im) (* y.re y.re) (+ (* y.re y.re) (* y.im y.im)))

preprocess10.7s (3%)

Memory
753.0MiB live, 13 284.3MiB allocated; 2.3s collecting garbage
Stop Event
114×iter limit
60×saturated
54×node limit
Compiler

Compiled 80 710 to 14 019 computations (82.6% saved)

prune6.7s (1.9%)

Memory
33.6MiB live, 11 960.5MiB allocated; 1.6s collecting garbage
Counts
116 529 → 2 751
Compiler

Compiled 254 681 to 107 435 computations (57.8% saved)

bsearch5.6s (1.6%)

Memory
-130.5MiB live, 6 594.8MiB allocated; 1.1s collecting garbage
Algorithm
242×binary-search
205×left-value
Stop Event
230×narrow-enough
12×predicate-same
Samples
2.5s15 586×0valid
975.0ms2 133×1valid
111.0ms273×2valid
7.0ms24×3valid
Compiler

Compiled 170 524 to 93 313 computations (45.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 2.8s
ival-mult: 782.0ms (28.3% of total)
ival-hypot: 422.0ms (15.3% of total)
ival-add: 244.0ms (8.8% of total)
ival-log: 184.0ms (6.7% of total)
adjust: 157.0ms (5.7% of total)
ival-sub: 154.0ms (5.6% of total)
ival-exp: 150.0ms (5.4% of total)
ival-sin: 141.0ms (5.1% of total)
const: 140.0ms (5.1% of total)
ival-div: 123.0ms (4.5% of total)
ival-cos: 94.0ms (3.4% of total)
ival-atan2: 82.0ms (3% of total)
ival-asin: 25.0ms (0.9% of total)
ival-sqrt: 15.0ms (0.5% of total)
ival-true: 14.0ms (0.5% of total)
ival-assert: 8.0ms (0.3% of total)
ival-sinu: 7.0ms (0.3% of total)
ival-fabs: 5.0ms (0.2% of total)
exact: 5.0ms (0.2% of total)
ival-neg: 3.0ms (0.1% of total)
ival-pi: 3.0ms (0.1% of total)
ival-pow: 3.0ms (0.1% of total)

analyze3.5s (1%)

Memory
125.3MiB live, 4 173.5MiB allocated; 2.2s collecting garbage
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 816 computations (45.5% saved)

start3.0ms (0%)

Memory
7.9MiB live, 7.7MiB allocated; 0ms collecting garbage

end0.0ms (0%)

Memory
1.2MiB live, 1.0MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...