Herbie run

Date:Thursday, February 13th, 2025
Commit:0e88e39c on custom-lifting-lowering
Seed:2025044
Parameters:256 points for 4 iterations
Flags:
reduce:regimesreduce:binary-searchreduce:branch-expressionsreduce:simplifysetup:simplifysetup:searchrules:arithmeticrules:polynomialsrules:fractionsrules:exponentsrules:trigonometryrules:hyperbolicrules:numericsrules:specialrules:boolsrules:branchesgenerate:rrgenerate:taylorgenerate:simplifygenerate:proofs
default
Memory:32 624.0 MB

Time bar (total: 29.0s)

sample11.0s (38.1%)

Memory
244.2MiB live, 12 181.8MiB allocated; 5.2s collecting garbage
Samples
6.4s70 238×0valid
1.0s4 060×2valid
282.0ms1 891×0invalid
0.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 4.6s
ival-mult: 1.1s (24.3% of total)
ival-div: 1.1s (23.7% of total)
ival-sub: 702.0ms (15.4% of total)
ival-sqrt: 694.0ms (15.2% of total)
ival-neg: 277.0ms (6.1% of total)
ival-add: 156.0ms (3.4% of total)
adjust: 155.0ms (3.4% of total)
ival-fabs: 102.0ms (2.2% of total)
ival-log: 88.0ms (1.9% of total)
ival-exp: 74.0ms (1.6% of total)
exact: 59.0ms (1.3% of total)
ival-if: 27.0ms (0.6% of total)
ival-assert: 26.0ms (0.6% of total)
ival->=: 3.0ms (0.1% of total)
Bogosity

rewrite5.7s (19.5%)

Memory
237.0MiB live, 5 945.4MiB allocated; 1.1s collecting garbage
Stop Event
45×iter limit
28×node limit
unsound
Counts
4 845 → 7 968

preprocess2.4s (8.2%)

Memory
13.7MiB live, 2 142.5MiB allocated; 440ms collecting garbage
Stop Event
18×iter limit
16×node limit
saturated
Compiler

Compiled 8 913 to 1 512 computations (83% saved)

eval2.0s (6.7%)

Memory
-275.1MiB live, 2 679.2MiB allocated; 637ms collecting garbage
Compiler

Compiled 560 378 to 41 492 computations (92.6% saved)

explain1.6s (5.4%)

Memory
-20.9MiB live, 2 026.7MiB allocated; 501ms collecting garbage
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64#foflow-rescue2440
-.f64#fcancellation1160
+.f64#fcancellation1110
sqrt.f64#fuflow-rescue810
/.f64#fu/n310
/.f64#fn/u220
-.f64#fnan-rescue210
*.f64(*.f64 (/.f64 x y) z)n*o50
*.f64(*.f64 (/.f64 x y) z)n*u50
/.f64(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))n/o10
(*.f64 #s(literal 2 binary64) a)overflow1
Confusion
Predicted +Predicted -
+29129
-2171767
Precision
0.5728346456692913
Recall
0.909375
Confusion?
Predicted +Predicted MaybePredicted -
+291029
-21701767
Precision?
0.5728346456692913
Recall?
0.909375
Freqs
test
numberfreq
01796
1388
2112
37
41
Total Confusion?
Predicted +Predicted MaybePredicted -
+400
-005
Precision?
1.0
Recall?
1.0
Samples
357.0ms3 662×0valid
241.0ms598×2valid
77.0ms298×1valid
22.0ms50×3valid
Compiler

Compiled 1 107 to 300 computations (72.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 402.0ms
ival-mult: 86.0ms (21.4% of total)
ival-div: 79.0ms (19.7% of total)
adjust: 51.0ms (12.7% of total)
ival-sub: 43.0ms (10.7% of total)
ival-log: 40.0ms (10% of total)
ival-sqrt: 30.0ms (7.5% of total)
ival-add: 30.0ms (7.5% of total)
ival-neg: 11.0ms (2.7% of total)
ival-if: 9.0ms (2.2% of total)
ival-exp: 5.0ms (1.2% of total)
ival-fabs: 5.0ms (1.2% of total)
ival-true: 4.0ms (1% of total)
exact: 4.0ms (1% of total)
ival->=: 3.0ms (0.7% of total)
ival-assert: 2.0ms (0.5% of total)

derivations1.4s (4.8%)

Memory
-15.7MiB live, 1 274.6MiB allocated; 173ms collecting garbage
Stop Event
done
fuel
Compiler

Compiled 4 186 to 570 computations (86.4% saved)

series1.4s (4.7%)

Memory
3.8MiB live, 1 686.9MiB allocated; 263ms collecting garbage
Counts
715 → 4 130
Calls

180 calls:

TimeVariablePointExpression
98.0ms
x
@0
((neg (log (- (/ 1 x) 1))) (log x) x (neg (log (- (/ 1 x) 1))) (+ (log x) x) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* 1/2 x) 1) x) (log x)) (+ (* 1/2 x) 1) 1/2 1 (log (pow (- (exp (neg (log x))) 1) -1)) (pow (- (exp (neg (log x))) 1) -1) (- (exp (neg (log x))) 1) (neg (log x)) -1)
73.0ms
x
@-inf
((neg (log (- (/ 1 x) 1))) (log x) x (neg (log (- (/ 1 x) 1))) (+ (log x) x) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* 1/2 x) 1) x) (log x)) (+ (* 1/2 x) 1) 1/2 1 (log (pow (- (exp (neg (log x))) 1) -1)) (pow (- (exp (neg (log x))) 1) -1) (- (exp (neg (log x))) 1) (neg (log x)) -1)
38.0ms
a
@-inf
((if (>= b 0) (/ (* 2 c) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))) (if (>= b 0) (/ (* -2 c) (+ (sqrt (+ (* (* -4 a) c) (* b b))) b)) (* (- (/ (sqrt (+ (* (* -4 a) c) (* b b))) a) (/ b a)) 1/2)) (>= b 0) b 0 (/ (* -2 c) (+ (sqrt (+ (* (* -4 a) c) (* b b))) b)) (* -2 c) -2 c (+ (sqrt (+ (* (* -4 a) c) (* b b))) b) (sqrt (+ (* (* -4 a) c) (* b b))) (+ (* (* -4 a) c) (* b b)) (* -4 a) -4 a (* b b) (* (- (/ (sqrt (+ (* (* -4 a) c) (* b b))) a) (/ b a)) 1/2) (- (/ (sqrt (+ (* (* -4 a) c) (* b b))) a) (/ b a)) (/ (sqrt (+ (* (* -4 a) c) (* b b))) a) (/ b a) 1/2 (if (>= b 0) (/ (* 2 c) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))) (/ (* 2 c) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (* 2 c) 2 (- (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 (- (* a (/ c b)) b)) (- (* a (/ c b)) b) (* a (/ c b)) (/ c b) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg (sqrt (* (/ c a) -1))) (sqrt (* (/ c a) -1)) (* (/ c a) -1) (/ c a) -1 (if (>= b 0) (/ (* 2 c) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (neg b) (sqrt (- (* b b) (* (* 4 a) c))) (- (* b b) (* (* 4 a) c)) (* (* -4 a) c) (* 2 a) (if (>= b 0) (/ (* 2 c) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (* -1 (sqrt (* (/ c a) -1))) (* -1/2 (/ b a))) (* -1/2 (/ b a)) -1/2 (if (>= b 0) (/ (* 2 c) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))) (/ (* 2 c) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* (- (/ (neg b) c) (sqrt (* (/ a c) -4))) c) (- (/ (neg b) c) (sqrt (* (/ a c) -4))) (/ (neg b) c) (sqrt (* (/ a c) -4)) (* (/ a c) -4) (/ a c) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (- (* b b) (* (* 4 a) c))) (- (* b b) (* (* 4 a) c)) (* (* 4 a) c) (* 4 a) 4)
37.0ms
y
@0
((fabs (- (/ (+ x 4) y) (* (/ x y) z))) (- (/ (+ x 4) y) (* (/ x y) z)) (/ (+ x 4) y) (+ x 4) x 4 y (* (/ x y) z) (/ x y) z)
33.0ms
x
@inf
((neg (log (- (/ 1 x) 1))) (log x) x (neg (log (- (/ 1 x) 1))) (+ (log x) x) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* 1/2 x) 1) x) (log x)) (+ (* 1/2 x) 1) 1/2 1 (log (pow (- (exp (neg (log x))) 1) -1)) (pow (- (exp (neg (log x))) 1) -1) (- (exp (neg (log x))) 1) (neg (log x)) -1)

prune921.0ms (3.2%)

Memory
96.6MiB live, 1 397.4MiB allocated; 146ms collecting garbage
Counts
10 606 → 302
Compiler

Compiled 26 191 to 12 976 computations (50.5% saved)

bsearch799.0ms (2.8%)

Memory
-67.6MiB live, 825.8MiB allocated; 165ms collecting garbage
Algorithm
52×binary-search
left-value
Stop Event
40×narrow-enough
12×predicate-same
Samples
313.0ms3 392×0valid
64.0ms641×0invalid
13.0ms80×2valid
2.0ms32×1valid
Compiler

Compiled 30 217 to 18 705 computations (38.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 261.0ms
ival-mult: 85.0ms (32.5% of total)
ival-div: 50.0ms (19.1% of total)
ival-sub: 28.0ms (10.7% of total)
ival->=: 22.0ms (8.4% of total)
ival-sqrt: 18.0ms (6.9% of total)
ival-add: 17.0ms (6.5% of total)
ival-neg: 11.0ms (4.2% of total)
ival-if: 10.0ms (3.8% of total)
ival-fabs: 8.0ms (3.1% of total)
adjust: 4.0ms (1.5% of total)
exact: 4.0ms (1.5% of total)
ival-true: 3.0ms (1.1% of total)
ival-assert: 2.0ms (0.8% of total)

regimes773.0ms (2.7%)

Memory
31.2MiB live, 1 111.7MiB allocated; 231ms collecting garbage
Counts
505 → 115
Calls

26 calls:

175.0ms
b
63.0ms
x
60.0ms
(neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
38.0ms
a
35.0ms
(if (>=.f64 b #s(literal 0 binary64)) (/.f64 (*.f64 #s(literal 2 binary64) c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a)))
Compiler

Compiled 1 007 to 862 computations (14.4% saved)

analyze705.0ms (2.4%)

Memory
-25.0MiB live, 842.1MiB allocated; 523ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
22.2%22.2%77.7%0.1%0%0%0%1
29.4%27.8%66.6%0.1%0%5.6%0%2
50%44.4%44.4%0.1%0%11.1%0%3
59.7%51.3%34.7%0.1%0%13.9%0%4
66.4%56.2%28.4%0.1%0%15.3%0%5
74%62.1%21.8%0.1%0%16%0%6
77.6%63.8%18.4%0.1%0%17.7%0%7
79.3%65%17%0.1%0%17.9%0%8
85%69.2%12.2%0.1%0%18.5%0%9
86.8%69.7%10.6%0.1%0%19.6%0%10
88.7%71.1%9.1%0.1%0%19.8%0%11
91.6%72.9%6.7%0.1%0%20.3%0%12
Compiler

Compiled 153 to 106 computations (30.7% saved)

simplify440.0ms (1.5%)

Memory
85.1MiB live, 509.1MiB allocated; 60ms collecting garbage
Stop Event
node limit

start0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated; 0ms collecting garbage

end0.0ms (0%)

Memory
0.2MiB live, 0.1MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...