Herbie run

Date:Wednesday, September 4th, 2024
Commit:ac261103 on main
Hostname:nightly with Racket 8.11.1
Seed:2024248
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: 1.1min)

sample12.3s (19.2%)

Memory
439.3MiB live, 11 312.7MiB allocated
Samples
7.1s70 085×0valid
796.0ms4 211×2valid
200.0ms2 001×0invalid
1.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 5.2s
ival-mult: 1.3s (25.7% of total)
ival-div: 850.0ms (16.5% of total)
ival-sub: 653.0ms (12.6% of total)
ival-sqrt: 603.0ms (11.7% of total)
ival-add: 510.0ms (9.9% of total)
ival-log: 378.0ms (7.3% of total)
ival-neg: 241.0ms (4.7% of total)
adjust: 130.0ms (2.5% of total)
ival-if: 97.0ms (1.9% of total)
ival->=: 96.0ms (1.9% of total)
ival-fabs: 89.0ms (1.7% of total)
ival-exp: 69.0ms (1.3% of total)
exact: 51.0ms (1% of total)
ival-true: 49.0ms (0.9% of total)
ival-assert: 26.0ms (0.5% of total)
Bogosity

simplify10.9s (17%)

Memory
132.8MiB live, 9 667.3MiB allocated
Algorithm
71×egg-herbie
Rules
381 572×lower-fma.f32
381 506×lower-fma.f64
173 948×lower-*.f32
173 732×lower-*.f64
91 286×lower-+.f32
Stop Event
91×iter limit
38×node limit
35×saturated
Counts
9 192 → 9 024

eval8.9s (14%)

Memory
277.6MiB live, 10 879.2MiB allocated
Compiler

Compiled 1 303 330 to 94 076 computations (92.8% saved)

rewrite8.0s (12.6%)

Memory
44.4MiB live, 8 365.0MiB allocated
Rules
125 102×lower-fma.f32
125 036×lower-fma.f64
121 758×lower-*.f32
121 552×lower-*.f64
112 170×lower-/.f32
Stop Event
66×iter limit
29×node limit
unsound
saturated
Counts
347 → 18 349

soundness8.0s (12.6%)

Memory
-83.2MiB live, 5 159.6MiB allocated
Rules
276 932×lower-fma.f32
276 894×lower-fma.f64
168 378×lower-*.f32
168 260×lower-*.f64
87 062×lower-/.f32
Stop Event
55×iter limit
36×node limit
done
fuel
saturated
Compiler

Compiled 3 311 to 1 811 computations (45.3% saved)

localize4.2s (6.6%)

Memory
-130.0MiB live, 5 016.7MiB allocated
Samples
1.4s6 173×0valid
803.0ms589×1valid
641.0ms765×2valid
339.0ms164×3valid
59.0ms39×1invalid
27.0ms70×0invalid
13.0ms131×0exit
5.0ms2invalid
Compiler

Compiled 7 496 to 778 computations (89.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 2.1s
ival-sub: 489.0ms (23% of total)
ival-div: 460.0ms (21.7% of total)
ival-mult: 328.0ms (15.4% of total)
adjust: 280.0ms (13.2% of total)
ival-add: 162.0ms (7.6% of total)
ival-sqrt: 130.0ms (6.1% of total)
ival-if: 66.0ms (3.1% of total)
ival-pow: 44.0ms (2.1% of total)
ival-log: 33.0ms (1.6% of total)
ival-fabs: 33.0ms (1.6% of total)
ival-neg: 30.0ms (1.4% of total)
ival->=: 24.0ms (1.1% of total)
ival-exp: 15.0ms (0.7% of total)
exact: 11.0ms (0.5% of total)
ival-pow2: 7.0ms (0.3% of total)
ival-true: 6.0ms (0.3% of total)
ival-e: 5.0ms (0.2% of total)
ival-assert: 3.0ms (0.1% of total)

prune3.9s (6.1%)

Memory
-321.4MiB live, 4 043.9MiB allocated
Counts
35 651 → 300
Compiler

Compiled 14 146 to 7 649 computations (45.9% saved)

preprocess2.2s (3.4%)

Memory
45.0MiB live, 1 709.4MiB allocated
Algorithm
egg-herbie
Rules
11 858×lower-fma.f32
11 858×lower-fma.f64
5 976×div-sub
5 512×lower-*.f32
5 482×lower-*.f64
Stop Event
18×iter limit
13×saturated
node limit
Compiler

Compiled 3 011 to 1 036 computations (65.6% saved)

explain1.8s (2.8%)

Memory
-18.5MiB live, 1 757.9MiB allocated
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64#foflow-rescue2550
-.f64#fcancellation1340
+.f64#fcancellation1090
sqrt.f64#fuflow-rescue770
/.f64#fu/n260
/.f64#fn/u240
-.f64#fnan-rescue200
*.f64(*.f64 (/.f64 x y) z)n*o110
*.f64(*.f64 (/.f64 x y) z)n*u40
/.f64(/.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)))))o/n10
(*.f64 #s(literal 2 binary64) c)overflow1
Confusion
Predicted +Predicted -
+29311
-2301770
Precision
0.5602294455066922
Recall
0.9638157894736842
Confusion?
Predicted +Predicted MaybePredicted -
+293011
-23001770
Precision?
0.5602294455066922
Recall?
0.9638157894736842
Freqs
test
numberfreq
01781
1395
2118
310
Total Confusion?
Predicted +Predicted MaybePredicted -
+400
-005
Precision?
1.0
Recall?
1.0
Samples
376.0ms3 690×0valid
176.0ms534×2valid
84.0ms314×1valid
35.0ms70×3valid
Compiler

Compiled 1 107 to 300 computations (72.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 431.0ms
ival-div: 83.0ms (19.3% of total)
ival-sub: 76.0ms (17.6% of total)
ival-sqrt: 65.0ms (15.1% of total)
ival-mult: 65.0ms (15.1% of total)
ival-neg: 50.0ms (11.6% of total)
adjust: 42.0ms (9.8% of total)
ival-add: 15.0ms (3.5% of total)
ival-if: 8.0ms (1.9% of total)
ival-log: 6.0ms (1.4% of total)
ival-fabs: 5.0ms (1.2% of total)
ival-exp: 4.0ms (0.9% of total)
ival-true: 4.0ms (0.9% of total)
ival->=: 3.0ms (0.7% of total)
exact: 3.0ms (0.7% of total)
ival-assert: 2.0ms (0.5% of total)

series1.5s (2.3%)

Memory
205.5MiB live, 1 679.1MiB allocated
Counts
347 → 9 192
Calls

183 calls:

TimeVariablePointExpression
47.0ms
c
@-inf
((/ (* 2 c) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (- (* b b) (* (* 4 a) c)) (+ (neg b) (/ 1 (sqrt (/ 1 (+ (* (* -4 c) a) (* b b)))))) (>= b 0) (* (- (/ 1 a) (/ c (* b b))) b) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (/ (* (* c 2) (+ (* b b) (+ (* (* a 4) c) (* b b)))) (* (+ (* b b) (+ (* (* a 4) c) (* b b))) (- b (sqrt (+ (* (* -4 c) a) (* b b)))))) (if (>= b 0) (/ (* 2 c) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))) (* (+ (* (* a (/ c (* b b))) -4) 1) (* b b)) (* (neg b) (+ (* (* (/ a b) -2) (/ c b)) 2)) (/ (* 2 c) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (- (+ (* (* -4 c) a) (* b b)) (* b b)) (/ -2 (- (+ (* (* -4 c) a) (* b b)) (* b b))) (if (>= b 0) (* c (* (/ -2 (- (+ (* (* -4 c) a) (* b b)) (* b b))) (- (sqrt (+ (* (* -4 c) a) (* b b))) b))) (* (/ 1/2 a) (- (sqrt (+ (* a (* c -4)) (* b b))) b))) (sqrt (- (* b b) (* (* 4 a) c))) (sqrt (/ 1 (+ (* (* -4 c) a) (* b b)))) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (- (* b b) (* (* 4 a) c))) (/ c (* b b)) (* (neg b) (+ (* (* (/ a b) -2) (/ c b)) 2)) (+ (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)))) (sqrt (+ (* a (* c -4)) (* b b))) (sqrt (+ (* (* -4 c) a) (* b b))) (- (sqrt (+ (* a (* c -4)) (* b b))) b))
39.0ms
x
@0
((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))
35.0ms
b
@0
((if (>= b 0) (/ (* 2 c) (- (neg b) (/ 1 (sqrt (/ 1 (+ (* (* -4 c) a) (* b b))))))) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))) (if (>= b 0) (/ (* -2 c) (+ (sqrt (+ (* -4 (* c a)) (* b b))) b)) (* (/ (- (sqrt (+ (* -4 (* c a)) (* b b))) b) a) 1/2)) (>= b 0) (/ (* -2 c) (+ (sqrt (+ (* -4 (* c a)) (* b b))) b)) (if (>= b 0) (* c (/ -2 (+ (sqrt (+ (* a (* c -4)) (* b b))) b))) (* (/ 1/2 a) (- (sqrt (+ (* a (* c -4)) (* b b))) b))) (* c (/ -2 (+ (sqrt (+ (* a (* c -4)) (* b b))) b))) (/ -2 (+ (sqrt (+ (* a (* c -4)) (* b b))) b)) (* (- (/ 1 a) (/ c (* b b))) b) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (- (* b b) (* (* 4 a) c)) (* (neg b) (+ (* (* (/ a b) -2) (/ c b)) 2)) (/ (* 2 c) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (+ (neg b) (/ (+ (* (* -4 c) a) (* b b)) (sqrt (+ (* (* -4 c) a) (* b b))))) (sqrt (+ (* -4 (* c a)) (* b b))) (+ (sqrt (+ (* -4 (* c a)) (* b b))) b) (- (sqrt (+ (* -4 (* c a)) (* b b))) b) (sqrt (+ (* a (* c -4)) (* b b))) (+ (sqrt (+ (* a (* c -4)) (* b b))) b) (- (sqrt (+ (* a (* c -4)) (* b b))) b) (/ (* (* c 2) (+ (* b b) (+ (* (* a 4) c) (* b b)))) (* (+ (* b b) (+ (* (* a 4) c) (* b b))) (- b (sqrt (+ (* (* -4 c) a) (* b b)))))) (sqrt (- (* b b) (* (* 4 a) c))) (/ c (* b b)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (/ (+ (* (* -4 c) a) (* b b)) (sqrt (+ (* (* -4 c) a) (* b b)))) (sqrt (+ (* (* -4 c) a) (* b b))))
31.0ms
c
@0
((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 (* c a)) (* b b))) b) a) -1/2) (/ (* 2 c) (- (sqrt (+ (* -4 (* c a)) (* b b))) b))) (>= b 0) (* (/ (+ (sqrt (+ (* -4 (* c a)) (* b b))) b) a) -1/2) (if (>= b 0) (* (/ 1/2 a) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (* 2 c) (- (sqrt (- (* b b) (* (* 4 a) c))) b))) (* (/ 1/2 a) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ 1/2 a) (/ 1 (/ (* 2 a) (- (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))))) (/ 1/2 (/ a (- b (sqrt (+ (* (* -4 c) a) (* b b)))))) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (- (* b b) (* (* 4 a) c)) (exp (* (log (/ (* 2 a) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c)))))) -1)) (* (log (/ (* 2 a) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c)))))) -1) (sqrt (+ (* -4 (* c a)) (* b b))) (+ (sqrt (+ (* -4 (* c a)) (* b b))) b) (- (sqrt (+ (* -4 (* c a)) (* b b))) b) (/ (+ (sqrt (+ (* -4 (* c a)) (* b b))) b) a) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (- (* b b) (* (* 4 a) c))) (- (sqrt (- (* b b) (* (* 4 a) c))) b) (sqrt (- (* b b) (* (* 4 a) c))) (sqrt (+ (* (* -4 c) a) (* b b))) (- b (sqrt (+ (* (* -4 c) a) (* b b)))) (log (/ (* 2 a) (- (neg b) (sqrt (- (* b b) (* (* 4 a) c)))))))
21.0ms
x
@-inf
((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))

regimes1.1s (1.7%)

Memory
-79.1MiB live, 1 414.2MiB allocated
Counts
496 → 86
Calls

26 calls:

131.0ms
(if (>=.f64 b #s(literal 0 binary64)) (/.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)) (/.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))))))
113.0ms
b
94.0ms
(neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
90.0ms
(fabs.f64 (-.f64 (/.f64 (+.f64 x #s(literal 4 binary64)) y) (*.f64 (/.f64 x y) z)))
72.0ms
x
Compiler

Compiled 856 to 751 computations (12.3% saved)

bsearch531.0ms (0.8%)

Memory
-18.7MiB live, 606.2MiB allocated
Algorithm
29×binary-search
left-value
Stop Event
18×narrow-enough
11×predicate-same
Samples
299.0ms2 112×0valid
52.0ms96×2valid
9.0ms85×0invalid
Compiler

Compiled 6 615 to 5 662 computations (14.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 234.0ms
ival-mult: 131.0ms (56% of total)
ival-div: 49.0ms (20.9% of total)
ival-sub: 14.0ms (6% of total)
ival-add: 9.0ms (3.8% of total)
ival-sqrt: 6.0ms (2.6% of total)
ival->=: 5.0ms (2.1% of total)
ival-fabs: 5.0ms (2.1% of total)
ival-neg: 4.0ms (1.7% of total)
ival-if: 3.0ms (1.3% of total)
adjust: 2.0ms (0.9% of total)
ival-true: 2.0ms (0.9% of total)
exact: 2.0ms (0.9% of total)
ival-exp: 1.0ms (0.4% of total)
ival-assert: 1.0ms (0.4% of total)

analyze519.0ms (0.8%)

Memory
18.9MiB live, 472.8MiB allocated
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
67.2%56.9%27.7%0.1%0%15.3%0%5
74.4%62.4%21.5%0.1%0%16%0%6
78.9%64.9%17.3%0.1%0%17.7%0%7
80.8%66.3%15.8%0.1%0%17.9%0%8
85.9%69.9%11.5%0.1%0%18.5%0%9
88%70.7%9.7%0.1%0%19.6%0%10
90%72.1%8%0.1%0%19.8%0%11
92.3%73.5%6.2%0.1%0%20.3%0%12
Compiler

Compiled 153 to 106 computations (30.7% saved)

start0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated

end0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

Profiling

Loading profile data...