Herbie run

Date:Tuesday, March 18th, 2025
Commit:78869eed on main
Seed:2025077
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 964.3 MB

Time bar (total: 30.0s)

sample10.9s (36.3%)

Memory
197.4MiB live, 11 911.5MiB allocated; 5.2s collecting garbage
Samples
6.3s70 216×0valid
875.0ms4 083×2valid
205.0ms1 764×0invalid
0.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 4.7s
ival-mult: 1.2s (25.6% of total)
ival-div: 967.0ms (20.4% of total)
ival-sub: 683.0ms (14.4% of total)
ival-neg: 582.0ms (12.3% of total)
ival-sqrt: 377.0ms (8% of total)
ival-add: 217.0ms (4.6% of total)
adjust: 177.0ms (3.7% of total)
ival-fabs: 175.0ms (3.7% of total)
ival-log: 159.0ms (3.4% of total)
ival-exp: 85.0ms (1.8% of total)
exact: 60.0ms (1.3% of total)
ival-assert: 25.0ms (0.5% of total)
ival->=: 8.0ms (0.2% of total)
ival-if: 7.0ms (0.1% of total)
Bogosity

rewrite5.9s (19.7%)

Memory
133.3MiB live, 6 341.8MiB allocated; 1.0s collecting garbage
Stop Event
73×iter limit
28×node limit
unsound
saturated
Counts
4 821 → 7 932

preprocess2.3s (7.8%)

Memory
113.4MiB live, 2 177.9MiB allocated; 373ms collecting garbage
Stop Event
18×iter limit
16×node limit
saturated
Compiler

Compiled 10 449 to 2 260 computations (78.4% saved)

derivations2.0s (6.7%)

Memory
83.1MiB live, 1 544.6MiB allocated; 316ms collecting garbage
Stop Event
done
fuel
Compiler

Compiled 4 469 to 618 computations (86.2% saved)

eval1.8s (6.1%)

Memory
67.1MiB live, 2 506.1MiB allocated; 679ms collecting garbage
Compiler

Compiled 540 076 to 39 885 computations (92.6% saved)

explain1.6s (5.4%)

Memory
-42.5MiB live, 1 954.8MiB allocated; 361ms collecting garbage
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64#foflow-rescue2490
+.f64#fcancellation1271
-.f64#fcancellation1220
sqrt.f64#fuflow-rescue760
/.f64#fu/n260
/.f64#fn/u200
-.f64#fnan-rescue120
*.f64(*.f64 (/.f64 x y) z)n*o70
*.f64(*.f64 (/.f64 x y) z)n*u70
log.f64(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))oflow-rescue10
(/.f64 #s(literal 1 binary64) x)overflow1
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))overflow1
Confusion
Predicted +Predicted -
+29010
-2201784
Precision
0.5686274509803921
Recall
0.9666666666666667
Confusion?
Predicted +Predicted MaybePredicted -
+290010
-22011783
Precision?
0.5675146771037182
Recall?
0.9666666666666667
Freqs
test
numberfreq
01794
1377
2129
34
Total Confusion?
Predicted +Predicted MaybePredicted -
+500
-004
Precision?
1.0
Recall?
1.0
Samples
356.0ms3 694×0valid
157.0ms554×2valid
137.0ms312×1valid
23.0ms48×3valid
Compiler

Compiled 1 107 to 300 computations (72.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 371.0ms
ival-mult: 74.0ms (19.9% of total)
adjust: 73.0ms (19.7% of total)
ival-div: 64.0ms (17.2% of total)
ival-sqrt: 46.0ms (12.4% of total)
ival-sub: 41.0ms (11% of total)
ival-neg: 19.0ms (5.1% of total)
ival-add: 16.0ms (4.3% of total)
ival-if: 9.0ms (2.4% of total)
ival-fabs: 7.0ms (1.9% of total)
ival-log: 6.0ms (1.6% of total)
ival-exp: 4.0ms (1.1% of total)
ival-true: 4.0ms (1.1% of total)
exact: 4.0ms (1.1% of total)
ival->=: 3.0ms (0.8% of total)
ival-assert: 2.0ms (0.5% of total)

bsearch1.4s (4.5%)

Memory
-9.3MiB live, 1 186.6MiB allocated; 801ms collecting garbage
Algorithm
64×binary-search
left-value
Stop Event
58×narrow-enough
predicate-same
Samples
490.0ms3 888×0valid
105.0ms615×0invalid
35.0ms80×2valid
Compiler

Compiled 39 974 to 25 609 computations (35.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 437.0ms
ival-mult: 127.0ms (29.1% of total)
ival-add: 126.0ms (28.8% of total)
ival-div: 53.0ms (12.1% of total)
ival-sub: 32.0ms (7.3% of total)
adjust: 26.0ms (6% of total)
ival-sqrt: 18.0ms (4.1% of total)
ival-neg: 13.0ms (3% of total)
ival-if: 11.0ms (2.5% of total)
ival->=: 9.0ms (2.1% of total)
ival-fabs: 7.0ms (1.6% of total)
exact: 5.0ms (1.1% of total)
ival-exp: 3.0ms (0.7% of total)
ival-true: 3.0ms (0.7% of total)
ival-assert: 2.0ms (0.5% of total)

regimes989.0ms (3.3%)

Memory
-84.0MiB live, 1 166.4MiB allocated; 255ms collecting garbage
Counts
617 → 133
Calls

26 calls:

121.0ms
b
108.0ms
(fabs.f64 (-.f64 (/.f64 (+.f64 x #s(literal 4 binary64)) y) (*.f64 (/.f64 x y) z)))
94.0ms
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
92.0ms
x
58.0ms
(neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
Compiler

Compiled 1 039 to 894 computations (14% saved)

series963.0ms (3.2%)

Memory
43.1MiB live, 1 492.2MiB allocated; 228ms collecting garbage
Counts
701 → 4 120
Calls

183 calls:

TimeVariablePointExpression
42.0ms
b
@0
((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))) 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))) b) a) 1/2) (/ (- (sqrt (+ (* (* -4 a) c) (* b b))) b) a) (- (sqrt (+ (* (* -4 a) c) (* b b))) b) 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 (/ (+ (* 1/2 b) (neg (sqrt (* (* a c) -1)))) a)) (/ (+ (* 1/2 b) (neg (sqrt (* (* a c) -1)))) a) (+ (* 1/2 b) (neg (sqrt (* (* a c) -1)))) (neg (sqrt (* (* a c) -1))) (sqrt (* (* a c) -1)) (* (* a c) -1) (* a c) -1 (/ (+ (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) (* 4 a) 4 (* 2 a) 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) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (- (* b b) (* (* 4 a) c))) (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) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (- (* b b) (* (* 4 a) c))) (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 c) (+ (* (sqrt (* (/ a c) -1)) 2) (/ b c))) (neg c) (+ (* (sqrt (* (/ a c) -1)) 2) (/ b c)) (sqrt (* (/ a c) -1)) (* (/ a c) -1) (/ a c) (/ b c))
36.0ms
c
@inf
((if (>= b 0) (/ (* 2 c) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))) (>= b 0) b 0 (/ (* 2 c) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (* 2 c) 2 c (- (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (neg b) (sqrt (- (* b b) (* (* 4 a) c))) (- (* b b) (* (* 4 a) c)) (* b b) (* (* 4 a) c) (* 4 a) 4 a (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))
29.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)
24.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)
21.0ms
c
@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))) 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))) b) a) 1/2) (/ (- (sqrt (+ (* (* -4 a) c) (* b b))) b) a) (- (sqrt (+ (* (* -4 a) c) (* b b))) b) 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 (/ (+ (* 1/2 b) (neg (sqrt (* (* a c) -1)))) a)) (/ (+ (* 1/2 b) (neg (sqrt (* (* a c) -1)))) a) (+ (* 1/2 b) (neg (sqrt (* (* a c) -1)))) (neg (sqrt (* (* a c) -1))) (sqrt (* (* a c) -1)) (* (* a c) -1) (* a c) -1 (/ (+ (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) (* 4 a) 4 (* 2 a) 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) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (- (* b b) (* (* 4 a) c))) (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) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (- (* b b) (* (* 4 a) c))) (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 c) (+ (* (sqrt (* (/ a c) -1)) 2) (/ b c))) (neg c) (+ (* (sqrt (* (/ a c) -1)) 2) (/ b c)) (sqrt (* (/ a c) -1)) (* (/ a c) -1) (/ a c) (/ b c))

prune945.0ms (3.2%)

Memory
-8.0MiB live, 1 485.1MiB allocated; 203ms collecting garbage
Counts
10 002 → 288
Compiler

Compiled 21 681 to 10 959 computations (49.5% saved)

simplify639.0ms (2.1%)

Memory
-89.4MiB live, 573.1MiB allocated; 146ms collecting garbage
Stop Event
node limit

analyze540.0ms (1.8%)

Memory
-14.2MiB live, 623.7MiB allocated; 125ms 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)

start0.0ms (0%)

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

end0.0ms (0%)

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

Profiling

Loading profile data...