Herbie run

Date:Thursday, February 20th, 2025
Commit:87019920 on main
Seed:2025051
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:31 309.1 MB

Time bar (total: 29.4s)

sample11.1s (37.9%)

Memory
366.0MiB live, 11 722.9MiB allocated; 5.4s collecting garbage
Samples
6.5s70 114×0valid
1.1s4 183×2valid
202.0ms1 935×0invalid
1.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 4.9s
ival-sub: 1.2s (24.8% of total)
ival-mult: 1.2s (24.1% of total)
ival-div: 940.0ms (19.1% of total)
ival-sqrt: 441.0ms (9% of total)
ival-neg: 303.0ms (6.2% of total)
adjust: 220.0ms (4.5% of total)
ival-add: 216.0ms (4.4% of total)
ival-fabs: 125.0ms (2.5% of total)
ival-log: 100.0ms (2% of total)
ival-exp: 74.0ms (1.5% of total)
exact: 60.0ms (1.2% of total)
ival-assert: 25.0ms (0.5% of total)
ival-if: 7.0ms (0.1% of total)
ival->=: 6.0ms (0.1% of total)
Bogosity

rewrite5.7s (19.3%)

Memory
25.1MiB live, 5 546.5MiB allocated; 1.0s collecting garbage
Stop Event
72×iter limit
28×node limit
unsound
saturated
Counts
4 817 → 8 041

preprocess2.4s (8.2%)

Memory
88.7MiB live, 2 130.7MiB allocated; 341ms collecting garbage
Stop Event
18×iter limit
16×node limit
saturated
Compiler

Compiled 9 773 to 1 638 computations (83.2% saved)

derivations1.8s (6.1%)

Memory
22.6MiB live, 1 599.9MiB allocated; 328ms collecting garbage
Stop Event
fuel
done
Compiler

Compiled 4 616 to 631 computations (86.3% saved)

explain1.8s (6%)

Memory
-17.6MiB live, 2 175.5MiB allocated; 470ms collecting garbage
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64#foflow-rescue2770
+.f64#fcancellation1230
-.f64#fcancellation1110
sqrt.f64#fuflow-rescue570
/.f64#fu/n340
/.f64#fn/u220
-.f64#fnan-rescue220
*.f64(*.f64 (/.f64 x y) z)n*o90
*.f64(*.f64 (/.f64 x y) z)n*u50
exp.f64(exp.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))))sensitivity20
Confusion
Predicted +Predicted -
+28815
-2251776
Precision
0.5614035087719298
Recall
0.9504950495049505
Confusion?
Predicted +Predicted MaybePredicted -
+288015
-22501776
Precision?
0.5614035087719298
Recall?
0.9504950495049505
Freqs
test
numberfreq
01791
1376
2125
312
Total Confusion?
Predicted +Predicted MaybePredicted -
+500
-004
Precision?
1.0
Recall?
1.0
Samples
238.0ms3 690×0valid
202.0ms304×1valid
201.0ms570×2valid
21.0ms44×3valid
Compiler

Compiled 1 107 to 300 computations (72.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 457.0ms
ival-sub: 129.0ms (28.2% of total)
ival-mult: 108.0ms (23.6% of total)
ival-div: 56.0ms (12.2% of total)
adjust: 54.0ms (11.8% of total)
ival-sqrt: 44.0ms (9.6% of total)
ival-add: 18.0ms (3.9% of total)
ival-neg: 11.0ms (2.4% of total)
ival-if: 9.0ms (2% of total)
ival-fabs: 6.0ms (1.3% of total)
ival-log: 6.0ms (1.3% of total)
ival-exp: 5.0ms (1.1% of total)
ival-true: 4.0ms (0.9% of total)
exact: 4.0ms (0.9% of total)
ival->=: 3.0ms (0.7% of total)
ival-assert: 2.0ms (0.4% of total)

eval1.7s (5.8%)

Memory
-4.5MiB live, 2 277.3MiB allocated; 313ms collecting garbage
Compiler

Compiled 539 977 to 43 101 computations (92% saved)

series1.1s (3.9%)

Memory
-2.7MiB live, 1 286.3MiB allocated; 250ms collecting garbage
Counts
769 → 4 048
Calls

180 calls:

TimeVariablePointExpression
39.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))) (+ (* -2 (* a (/ c b))) b) (* a (/ c b)) a (/ c 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) (sqrt (+ (* (* -4 a) c) (* b b))) (+ (* (* -4 a) c) (* b b)) (* -4 a) -4 (* 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))))) (* 2 c) 2 (- (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)))) (* -2 b) (* 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)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (* (* a c) -4)) (* (* a c) -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))) (if (>= b 0) (/ (* -2 c) (+ (sqrt (+ (* (* -4 a) c) (* b b))) b)) (* (/ (- (sqrt (+ (* (* -4 a) c) (* b b))) b) a) 1/2)) (/ (* -2 c) (+ (sqrt (+ (* (* -4 a) c) (* b b))) b)) (+ (sqrt (+ (* (* -4 a) c) (* b b))) b) (* (/ (- (sqrt (+ (* (* -4 a) c) (* b b))) b) a) 1/2) (+ (* -1/2 (/ b a)) (neg (sqrt (* (/ c a) -1)))) -1/2 (/ b 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))) (/ (* 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)
34.0ms
a
@inf
((if (>= b 0) (/ (- (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))))) (if (>= b 0) (* (/ (+ (sqrt (+ (* (* -4 a) c) (* b b))) b) a) -1/2) (/ (* 2 c) (- (sqrt (+ (* (* -4 a) c) (* b b))) b))) (>= b 0) b 0 (* (/ (+ (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) (sqrt (+ (* (* -4 a) c) (* b b))) (+ (* (* -4 a) c) (* b b)) (* -4 a) -4 a c (* b b) -1/2 (/ (* 2 c) (- (sqrt (+ (* (* -4 a) c) (* b b))) b)) (* 2 c) 2 (- (sqrt (+ (* (* -4 a) c) (* b b))) b) (if (>= b 0) (/ (- (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)))) (* 2 a)) (* (sqrt (* (/ c a) -4)) -1/2) (sqrt (* (/ c a) -4)) (* (/ c a) -4) (/ c 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))) (- (* b b) (* (* 4 a) c)) (* (* 4 a) c) (* 4 a) 4 (if (>= b 0) (/ (- (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)))) (* 2 a)) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a) (/ (* 2 c) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (neg (/ (+ (* 1/2 b) (sqrt (* (* c a) -1))) a)) (/ (+ (* 1/2 b) (sqrt (* (* c a) -1))) a) (+ (* 1/2 b) (sqrt (* (* c a) -1))) 1/2 (sqrt (* (* c a) -1)) (* (* c a) -1) (* c a) -1 (if (>= b 0) (/ (- (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))))) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* (neg b) (+ (* (* a (/ c (* b b))) -2) 2)) (+ (* (* a (/ c (* b b))) -2) 2) (* a (/ c (* b b))) (/ c (* b b)) -2 (if (>= b 0) (/ (- (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)))) (* 2 a)) (- (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))
29.0ms
x
@-inf
((neg (log (- (/ 1 x) 1))) (log (- (/ 1 x) 1)) (- (/ 1 x) 1) (/ (- 1 x) x) (- 1 x) 1 x (neg (log (- (/ 1 x) 1))) (log 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 (neg (log (+ (* (pow x -1/2) (pow x -1/2)) -1))) (log (+ (* (pow x -1/2) (pow x -1/2)) -1)) (+ (* (pow x -1/2) (pow x -1/2)) -1) (pow x -1/2) -1/2 -1)
29.0ms
x
@inf
((* (sqrt (- x 1)) (sqrt x)) x (sqrt (* (- x 1) x)) (* (- x 1) x) (- x 1) 1)
28.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)))) (* 2 (- (* a (/ c b)) b)) (- (* a (/ c b)) b) (* a (/ c b)) a (/ c b) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* -2 b) -2 (* 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))) (/ (* 2 c) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (neg b) a) (neg b) (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)))) (sqrt (- (* b b) (* (* 4 a) c))) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (* 1/2 (sqrt (* (/ c a) -4))) 1/2 (sqrt (* (/ c a) -4)) (* (/ c a) -4) (/ c a) -4 (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)) (/ (* -2 c) (+ (sqrt (+ (* (* -4 a) c) (* b b))) b)) (* -2 c) (+ (sqrt (+ (* (* -4 a) c) (* b b))) b) (sqrt (+ (* (* -4 a) c) (* b b))) (+ (* -2 (* a (/ c 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) (sqrt (+ (* (* -4 a) c) (* b b))) (+ (* (* -4 a) c) (* b b)) (* (* -4 a) c) (* -4 a) (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 (sqrt (* (/ a c) -4))) (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)) (* b b) (* (* 4 a) c) (* 4 a) 4)

regimes1.1s (3.6%)

Memory
78.3MiB live, 1 444.4MiB allocated; 214ms collecting garbage
Counts
648 → 124
Calls

26 calls:

139.0ms
b
132.0ms
x
81.0ms
(*.f64 x x)
79.0ms
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
65.0ms
(-.f64 #s(literal 1 binary64) (*.f64 x x))
Compiler

Compiled 1 194 to 996 computations (16.6% saved)

prune908.0ms (3.1%)

Memory
-2.2MiB live, 1 173.7MiB allocated; 278ms collecting garbage
Counts
10 459 → 309
Compiler

Compiled 24 377 to 12 225 computations (49.9% saved)

bsearch688.0ms (2.3%)

Memory
-15.0MiB live, 751.1MiB allocated; 80ms collecting garbage
Algorithm
54×binary-search
left-value
Stop Event
45×narrow-enough
predicate-same
Samples
289.0ms3 568×0valid
47.0ms449×0invalid
26.0ms80×2valid
1.0ms16×1valid
Compiler

Compiled 34 661 to 21 383 computations (38.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 250.0ms
ival-mult: 81.0ms (32.4% of total)
ival-div: 62.0ms (24.8% of total)
ival-sub: 27.0ms (10.8% of total)
ival-sqrt: 16.0ms (6.4% of total)
ival-add: 16.0ms (6.4% of total)
ival-if: 11.0ms (4.4% of total)
ival-neg: 10.0ms (4% of total)
ival->=: 6.0ms (2.4% of total)
ival-fabs: 6.0ms (2.4% of total)
adjust: 4.0ms (1.6% of total)
exact: 4.0ms (1.6% of total)
ival-true: 3.0ms (1.2% of total)
ival-assert: 2.0ms (0.8% of total)
ival-exp: 1.0ms (0.4% of total)

analyze606.0ms (2.1%)

Memory
-47.6MiB live, 791.4MiB allocated; 151ms 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)

simplify491.0ms (1.7%)

Memory
-51.9MiB live, 408.6MiB allocated; 103ms collecting garbage
Stop Event
node limit

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...