Herbie run

Date:Thursday, February 6th, 2025
Commit:f63971dc on main
Seed:2025037
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:170 071.6 MB

Time bar (total: 2.9min)

sample1.9min (66.6%)

Memory
1 137.7MiB live, 110 581.4MiB allocated; 38.7s collecting garbage
Samples
28.7s43 927×2valid
22.0s96 648×1valid
21.1s148 029×0invalid
15.6s6 990×5exit
7.2s87 280×0valid
2.8s3 305×3valid
358.0ms4 101×0exit
10.0ms4valid
Precisions
Click to see histograms. Total time spent on operations: 1.3min
ival-pow: 15.1s (19.1% of total)
ival-tan: 13.1s (16.6% of total)
adjust: 9.2s (11.6% of total)
ival-mult: 5.7s (7.2% of total)
ival-div: 4.3s (5.4% of total)
ival-cos: 4.0s (5.1% of total)
ival-log: 4.0s (5% of total)
ival-sub: 3.8s (4.7% of total)
ival-add: 3.2s (4% of total)
const: 3.1s (3.9% of total)
ival-sin: 3.1s (3.9% of total)
ival-expm1: 2.2s (2.7% of total)
ival-exp: 1.8s (2.3% of total)
ival-fabs: 1.6s (2% of total)
ival-sqrt: 1.4s (1.7% of total)
ival-log1p: 1.2s (1.5% of total)
ival-<: 494.0ms (0.6% of total)
ival-<=: 420.0ms (0.5% of total)
ival-and: 405.0ms (0.5% of total)
ival-atan: 368.0ms (0.5% of total)
ival-neg: 309.0ms (0.4% of total)
ival-cbrt: 273.0ms (0.3% of total)
exact: 156.0ms (0.2% of total)
ival-assert: 140.0ms (0.2% of total)
ival-fmin: 72.0ms (0.1% of total)
ival->: 4.0ms (0% of total)
Bogosity

rewrite20.5s (11.7%)

Memory
251.5MiB live, 18 834.3MiB allocated; 4.2s collecting garbage
Stop Event
260×iter limit
108×node limit
Counts
16 476 → 34 836

preprocess7.1s (4%)

Memory
280.2MiB live, 6 376.9MiB allocated; 1.2s collecting garbage
Stop Event
56×iter limit
51×node limit
saturated
Compiler

Compiled 18 406 to 5 055 computations (72.5% saved)

eval6.0s (3.4%)

Memory
71.8MiB live, 8 346.7MiB allocated; 1.4s collecting garbage
Compiler

Compiled 1 669 486 to 183 372 computations (89% saved)

derivations5.6s (3.2%)

Memory
62.4MiB live, 4 163.4MiB allocated; 942ms collecting garbage
Stop Event
23×fuel
done
Compiler

Compiled 7 992 to 1 811 computations (77.3% saved)

explain5.4s (3.1%)

Memory
-49.2MiB live, 5 926.6MiB allocated; 1.1s collecting garbage
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
-.f64#fcancellation405129
log.f64#fsensitivity7596
sqrt.f64#foflow-rescue4740
/.f64#fu/u4480
+.f64#fcancellation3451
/.f64#fu/n1120
pow.f64(pow.f64 (+.f64 x #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) n))sensitivity780
sqrt.f64#fuflow-rescue220
/.f64(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 a b) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64))))n/u180
(*.f64 b eps)underflow152
(-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64))underflow158
(-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64))underflow152
(*.f64 (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64)))underflow231
(*.f64 a eps)underflow158
-.f64#fnan-rescue140
sin.f64(sin.f64 (+.f64 x eps))sensitivity40
tan.f64(tan.f64 (+.f64 x eps))sensitivity40
cos.f64(cos.f64 (+.f64 x eps))sensitivity30
Confusion
Predicted +Predicted -
+520621
-1601781
Precision
0.9701826313827805
Recall
0.9959823990816912
Confusion?
Predicted +Predicted MaybePredicted -
+5206156
-160221759
Precision?
0.9663150101795299
Recall?
0.9988521140233404
Freqs
test
numberfreq
01802
14582
2643
3100
441
Total Confusion?
Predicted +Predicted MaybePredicted -
+2800
-000
Precision?
1.0
Recall?
1.0
Samples
1.5s2 750×2valid
1.3s6 002×1valid
394.0ms5 326×0valid
184.0ms258×3valid
Compiler

Compiled 2 154 to 763 computations (64.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 2.6s
ival-tan: 592.0ms (22.7% of total)
adjust: 416.0ms (15.9% of total)
ival-log: 199.0ms (7.6% of total)
ival-cos: 187.0ms (7.2% of total)
ival-sin: 187.0ms (7.2% of total)
ival-div: 180.0ms (6.9% of total)
ival-sub: 158.0ms (6.1% of total)
ival-exp: 135.0ms (5.2% of total)
ival-mult: 133.0ms (5.1% of total)
ival-pow: 106.0ms (4.1% of total)
ival-add: 96.0ms (3.7% of total)
ival-sqrt: 59.0ms (2.3% of total)
ival-log1p: 58.0ms (2.2% of total)
ival-atan: 22.0ms (0.8% of total)
ival-expm1: 22.0ms (0.8% of total)
ival-cbrt: 16.0ms (0.6% of total)
ival-neg: 16.0ms (0.6% of total)
ival-true: 12.0ms (0.5% of total)
exact: 9.0ms (0.3% of total)
ival-assert: 6.0ms (0.2% of total)

series3.9s (2.2%)

Memory
65.3MiB live, 4 084.3MiB allocated; 697ms collecting garbage
Counts
2 792 → 13 684
Calls

504 calls:

TimeVariablePointExpression
70.0ms
c
@0
((/ (+ (sqrt (+ (* (* -4 a) c) (* b b))) (neg b)) (+ a a)) (+ (sqrt (+ (* (* -4 a) c) (* b b))) (neg b)) (sqrt (+ (* (* -4 a) c) (* b b))) (+ (* (* -4 a) c) (* b b)) (* -4 a) -4 a c (* b b) b (neg b) (+ a a) (/ (+ (neg b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)) (/ (neg c) b) (neg c) (/ (+ (neg b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)) (+ (* (sqrt (* (/ c a) -4)) 1/2) (* (/ b a) -1/2)) (sqrt (/ (neg c) a)) (/ (neg c) a) (/ (+ (neg b) (sqrt (- (* b b) (* 4 (* a c))))) (+ a a)) (+ (neg b) (sqrt (- (* b b) (* 4 (* a c))))) (sqrt (- (* b b) (* 4 (* a c)))) (- (* b b) (* 4 (* a c))) (* -4 (* c a)) (* c a) (/ (+ (neg b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* 4 (* a c))))) (* (+ (* (/ b c) -1) (sqrt (* (/ a c) -4))) c) (+ (* (/ b c) -1) (sqrt (* (/ a c) -4))) (/ b c) -1 (sqrt (* (/ a c) -4)) (* (/ a c) -4) (/ a c) (* 2 a) 2)
68.0ms
n
@0
((- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) (neg (/ (+ (* -1 (+ (log (+ 1 x)) (/ (+ (* (/ (+ (* (/ (* 1/24 (- (pow (log (+ 1 x)) 4) (pow (log x) 4))) n) -1) (* -1/6 (- (pow (log (+ 1 x)) 3) (pow (log x) 3)))) n) -1) (* 1/2 (- (pow (log (+ 1 x)) 2) (pow (log x) 2)))) n))) (log x)) n)) (/ (+ (* -1 (+ (log (+ 1 x)) (/ (+ (* (/ (+ (* (/ (* 1/24 (- (pow (log (+ 1 x)) 4) (pow (log x) 4))) n) -1) (* -1/6 (- (pow (log (+ 1 x)) 3) (pow (log x) 3)))) n) -1) (* 1/2 (- (pow (log (+ 1 x)) 2) (pow (log x) 2)))) n))) (log x)) n) (+ (* -1 (+ (log (+ 1 x)) (/ (+ (* (/ (+ (* (/ (* 1/24 (- (pow (log (+ 1 x)) 4) (pow (log x) 4))) n) -1) (* -1/6 (- (pow (log (+ 1 x)) 3) (pow (log x) 3)))) n) -1) (* 1/2 (- (pow (log (+ 1 x)) 2) (pow (log x) 2)))) n))) (log x)) -1 (+ (log (+ 1 x)) (/ (+ (* (/ (+ (* (/ (* 1/24 (- (pow (log (+ 1 x)) 4) (pow (log x) 4))) n) -1) (* -1/6 (- (pow (log (+ 1 x)) 3) (pow (log x) 3)))) n) -1) (* 1/2 (- (pow (log (+ 1 x)) 2) (pow (log x) 2)))) n)) (log (+ 1 x)) x (/ (+ (* (/ (+ (* (/ (* 1/24 (- (pow (log (+ 1 x)) 4) (pow (log x) 4))) n) -1) (* -1/6 (- (pow (log (+ 1 x)) 3) (pow (log x) 3)))) n) -1) (* 1/2 (- (pow (log (+ 1 x)) 2) (pow (log x) 2)))) n) (+ (* (/ (+ (* (/ (* 1/24 (- (pow (log (+ 1 x)) 4) (pow (log x) 4))) n) -1) (* -1/6 (- (pow (log (+ 1 x)) 3) (pow (log x) 3)))) n) -1) (* 1/2 (- (pow (log (+ 1 x)) 2) (pow (log x) 2)))) (/ (+ (* (/ (* 1/24 (- (pow (log (+ 1 x)) 4) (pow (log x) 4))) n) -1) (* -1/6 (- (pow (log (+ 1 x)) 3) (pow (log x) 3)))) n) (+ (* (/ (* 1/24 (- (pow (log (+ 1 x)) 4) (pow (log x) 4))) n) -1) (* -1/6 (- (pow (log (+ 1 x)) 3) (pow (log x) 3)))) (/ (* 1/24 (- (pow (log (+ 1 x)) 4) (pow (log x) 4))) n) (* 1/24 (- (pow (log (+ 1 x)) 4) (pow (log x) 4))) 1/24 (- (pow (log (+ 1 x)) 4) (pow (log x) 4)) (pow (log (+ 1 x)) 4) 4 (pow (log x) 4) (log x) n (* -1/6 (- (pow (log (+ 1 x)) 3) (pow (log x) 3))) -1/6 (- (pow (log (+ 1 x)) 3) (pow (log x) 3)) (pow (log (+ 1 x)) 3) 3 (pow (log x) 3) (* 1/2 (- (pow (log (+ 1 x)) 2) (pow (log x) 2))) 1/2 (- (pow (log (+ 1 x)) 2) (pow (log x) 2)) (pow (log (+ 1 x)) 2) 2 (pow (log x) 2) (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) (pow (+ x 1) (/ 1 n)) 1 (pow x (/ 1 n)) (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) (/ (log (/ (+ 1 x) x)) n) (log (/ (+ 1 x) x)) (/ (+ 1 x) x) (+ 1 x) (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) (pow (+ x 1) (/ 1 n)) (exp (/ (log (+ 1 x)) n)) (/ (log (+ 1 x)) n) (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) (/ (+ (+ (* (exp (neg (/ (neg (log x)) n))) (/ (- (* (pow n -2) 1/2) (/ 1/2 n)) x)) (* (exp (neg (/ (neg (log x)) n))) (/ (- (+ (* (pow n -3) 1/6) (/ 1/3 n)) (* (pow n -2) 1/2)) (* x x)))) (/ (exp (neg (/ (neg (log x)) n))) n)) x) (/ (- (+ (* -1/2 (/ (log x) (* n (* x x)))) (+ (* 1/3 (/ (log x) (* n (pow x 3)))) (+ (/ 1/3 (pow x 3)) (+ (/ 1/2 (* n (* x x))) (+ (pow x -1) (/ (log x) (* n x))))))) (+ (/ 1/2 (* n (pow x 3))) (/ 1/2 (* x x)))) n) (- (+ (* -1/2 (/ (log x) (* n (* x x)))) (+ (* 1/3 (/ (log x) (* n (pow x 3)))) (+ (/ 1/3 (pow x 3)) (+ (/ 1/2 (* n (* x x))) (+ (pow x -1) (/ (log x) (* n x))))))) (+ (/ 1/2 (* n (pow x 3))) (/ 1/2 (* x x)))) (+ (* -1/2 (/ (log x) (* n (* x x)))) (+ (* 1/3 (/ (log x) (* n (pow x 3)))) (+ (/ 1/3 (pow x 3)) (+ (/ 1/2 (* n (* x x))) (+ (pow x -1) (/ (log x) (* n x))))))) -1/2 (/ (log x) (* n (* x x))) (* n (* x x)) (* x x) (+ (* 1/3 (/ (log x) (* n (pow x 3)))) (+ (/ 1/3 (pow x 3)) (+ (/ 1/2 (* n (* x x))) (+ (pow x -1) (/ (log x) (* n x)))))) 1/3 (/ (log x) (* n (pow x 3))) (* n (pow x 3)) (pow x 3) (+ (/ 1/3 (pow x 3)) (+ (/ 1/2 (* n (* x x))) (+ (pow x -1) (/ (log x) (* n x))))) (/ 1/3 (pow x 3)) (+ (/ 1/2 (* n (* x x))) (+ (pow x -1) (/ (log x) (* n x)))) (/ 1/2 (* n (* x x))) (+ (pow x -1) (/ (log x) (* n x))) (pow x -1) (/ (log x) (* n x)) (* n x) (+ (/ 1/2 (* n (pow x 3))) (/ 1/2 (* x x))) (/ 1/2 (* n (pow x 3))) (/ 1/2 (* x x)))
49.0ms
x
@inf
((+ (- (exp x) 2) (exp (neg x))) (+ (* x x) (* (* (* (+ (* (+ (* (* x x) 1/20160) 1/360) (* x x)) 1/12) x) x) (* x x))) x (* (* (* (+ (* (+ (* (* x x) 1/20160) 1/360) (* x x)) 1/12) x) x) (* x x)) (* (* (+ (* (+ (* (* x x) 1/20160) 1/360) (* x x)) 1/12) x) x) (* (+ (* (+ (* (* x x) 1/20160) 1/360) (* x x)) 1/12) x) (+ (* (+ (* (* x x) 1/20160) 1/360) (* x x)) 1/12) (+ (* (* x x) 1/20160) 1/360) (* x x) 1/20160 1/360 1/12 (+ (- (exp x) 2) (exp (neg x))) (- (exp x) 2) -1 (exp (neg x)) 1 (+ (- (exp x) 2) (exp (neg x))) (* (+ (* (* (* x x) 1/12) x) x) x) (+ (* (* (* x x) 1/12) x) x) (* (* x x) 1/12) (+ (- (exp x) 2) (exp (neg x))) (* (+ (* (* (* (+ (* (* x x) 1/360) 1/12) x) x) x) x) x) (+ (* (* (* (+ (* (* x x) 1/360) 1/12) x) x) x) x) (* (* (+ (* (* x x) 1/360) 1/12) x) x) (* (+ (* (* x x) 1/360) 1/12) x) (+ (* (* x x) 1/360) 1/12) (+ (- (exp x) 2) (exp (neg x))) (* (* (+ (* (+ (* (+ (* 1/20160 (* x x)) 1/360) (* x x)) 1/12) (* x x)) 1) x) x) (* (+ (* (+ (* (+ (* 1/20160 (* x x)) 1/360) (* x x)) 1/12) (* x x)) 1) x) (+ (* (+ (* (+ (* 1/20160 (* x x)) 1/360) (* x x)) 1/12) (* x x)) 1) (+ (* (+ (* 1/20160 (* x x)) 1/360) (* x x)) 1/12) (+ (* 1/20160 (* x x)) 1/360) (* (* x x) 1/20160))
48.0ms
N
@inf
((log (+ 1 (pow (* N N) -1/2))) (pow (* N N) -1/2) (* N N) N -1/2 (- (log (+ N 1)) (log N)) (/ (- 1 (/ 1/2 N)) N) (/ (- N 1/2) (* N N)) (- N 1/2) 1/2 (- (log (+ N 1)) (log N)) (/ (/ (+ (* (* (+ (* (/ (- (/ 1/4 N) 1/3) N) -1) -1/2) -1) 2) (* N -2)) (* N 2)) (neg N)) (/ (+ (* (* (+ (* (/ (- (/ 1/4 N) 1/3) N) -1) -1/2) -1) 2) (* N -2)) (* N 2)) (+ (* (* (+ (* (/ (- (/ 1/4 N) 1/3) N) -1) -1/2) -1) 2) (* N -2)) (* (+ (* (/ (- (/ 1/4 N) 1/3) N) -1) -1/2) -1) (- 1/2 (/ 1/3 N)) (/ 1/3 N) 1/3 2 (* N -2) -2 (* N 2) (neg N) (- (log (+ N 1)) (log N)) (* (/ (+ (/ (+ (* (/ (- (/ 1/4 N) 1/3) N) -1) -1/2) N) 1) -1) (/ -1 N)) (/ (+ (/ (+ (* (/ (- (/ 1/4 N) 1/3) N) -1) -1/2) N) 1) -1) (+ (/ (+ (* (/ (- (/ 1/4 N) 1/3) N) -1) -1/2) N) 1) (/ (+ (* (/ (- (/ 1/4 N) 1/3) N) -1) -1/2) N) (+ (* (/ (- (/ 1/4 N) 1/3) N) -1) -1/2) (/ (- (/ 1/4 N) 1/3) N) (- (/ 1/4 N) 1/3) (/ 1/4 N) 1/4 -1 1 (/ -1 N) (log (+ 1 (exp (neg (log N))))) (exp (neg (log N))) (neg (log N)) (log N))
48.0ms
c
@inf
((/ (- (neg b_2) (sqrt (- (* b_2 b_2) (* a c)))) a) (- (neg b_2) (sqrt (- (* b_2 b_2) (* a c)))) (neg b_2) b_2 (sqrt (- (* b_2 b_2) (* a c))) (- (* b_2 b_2) (* a c)) (* b_2 b_2) (* a c) a c)

regimes3.0s (1.7%)

Memory
-263.8MiB live, 3 205.5MiB allocated; 1.4s collecting garbage
Counts
3 065 → 306
Calls

43 calls:

1.2s
x
283.0ms
eps
87.0ms
b
87.0ms
a
86.0ms
b_2
Compiler

Compiled 1 924 to 1 846 computations (4.1% saved)

prune2.6s (1.5%)

Memory
-69.3MiB live, 4 006.0MiB allocated; 613ms collecting garbage
Counts
41 953 → 1 596
Compiler

Compiled 94 284 to 48 706 computations (48.3% saved)

analyze1.8s (1%)

Memory
4.5MiB live, 1 901.4MiB allocated; 456ms collecting garbage
Algorithm
28×search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%61.1%38.9%0%0%0%0
7.4%4.5%56.6%38.9%0%0%0%1
22.3%13.6%47.5%38.9%0%0%0%2
40.2%23.5%34.9%38.9%0%2.7%0%3
53.4%31.1%27.2%38.9%0%2.8%0%4
63%36.3%21.3%38.9%0%3.6%0%5
65.9%37.5%19.4%38.9%0%4.2%0%6
70.4%38.8%16.3%38.9%0%6%0%7
73.6%40.2%14.4%38.9%0%6.5%0%8
76.3%40.9%12.7%38.9%0%7.5%0%9
78.4%41.4%11.4%38.9%0%8.3%0%10
81.1%42.4%9.9%38.9%0%8.8%0%11
82.3%42.7%9.2%38.9%0%9.3%0%12
Compiler

Compiled 483 to 337 computations (30.2% saved)

bsearch1.4s (0.8%)

Memory
-74.6MiB live, 1 362.0MiB allocated; 216ms collecting garbage
Algorithm
80×binary-search
26×left-value
Stop Event
79×narrow-enough
predicate-same
Samples
394.0ms4 739×0valid
196.0ms1 690×0invalid
151.0ms366×2valid
125.0ms812×1valid
1.0ms12×0exit
1.0ms3valid
Compiler

Compiled 32 660 to 24 990 computations (23.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 613.0ms
ival-mult: 197.0ms (32.1% of total)
ival-pow: 100.0ms (16.3% of total)
ival-div: 64.0ms (10.4% of total)
ival-sub: 55.0ms (9% of total)
adjust: 50.0ms (8.2% of total)
ival-sqrt: 44.0ms (7.2% of total)
ival-neg: 34.0ms (5.5% of total)
ival-add: 30.0ms (4.9% of total)
ival-cos: 15.0ms (2.4% of total)
ival-cbrt: 9.0ms (1.5% of total)
ival-true: 6.0ms (1% of total)
exact: 5.0ms (0.8% of total)
ival-assert: 3.0ms (0.5% of total)
ival-expm1: 3.0ms (0.5% of total)

simplify1.3s (0.8%)

Memory
-43.3MiB live, 1 280.6MiB allocated; 165ms collecting garbage
Stop Event
28×node limit

start1.0ms (0%)

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

end0.0ms (0%)

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

Profiling

Loading profile data...