Details

Time bar (total: 6.4s)

analyze350.0ms (5.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%0%100%0
0%0%100%1
0%0%100%2
0%0%100%3
0%0%100%4
0%0%100%5
0%0%100%6
0%0%100%7
0%0%100%8
0%0%100%9
0%0%100%10
0%0%100%11
0%0%100%12
0%0%100%13
0%0%100%14
Compiler

Compiled 43 to 31 computations (27.9% saved)

sample2.2s (35.1%)

Results
1.0s3960×body256valid
562.0ms1498×body512valid
419.0ms2798×body128valid
116.0ms824×body128invalid
Compiler

Compiled 106 to 76 computations (28.3% saved)

simplify358.0ms (5.6%)

Algorithm
egg-herbie
Rules
1968×fma-neg_binary64
1363×fma-def_binary64
898×div-sub_binary64
743×associate-/l*_binary64
567×times-frac_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01326
13022
26422
313522
420122
533522
655422
792922
8147722
9211522
10259922
11255422
12260222
13267122
14311722
15232722
16237522
17238322
18238922
19239522
20239722
21239722
22258522
23268522
24261922
25263122
26266122
27267722
28270722
29270722
30275122
31285122
32282722
33282722
34263822

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
55.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
55.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
55.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
Compiler

Compiled 111 to 74 computations (33.3% saved)

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 a (*.f64 c -3) (*.f64 b b))
0.1b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
0.4b
(/.f64 1/3 a)
27.1b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)

series102.0ms (1.6%)

Counts
4 → 76
Calls

4 calls:

56.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
33.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
9.0ms
(fma.f64 a (*.f64 c -3) (*.f64 b b))
3.0ms
(/.f64 1/3 a)

rewrite23.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
48×add-sqr-sqrt_binary64
39×*-un-lft-identity_binary64
35×add-cube-cbrt_binary64
19×times-frac_binary64
18×prod-diff_binary64
Counts
4 → 123
Calls

4 calls:

8.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
4.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
2.0ms
(/.f64 1/3 a)
0.0ms
(fma.f64 a (*.f64 c -3) (*.f64 b b))

simplify99.0ms (1.5%)

Algorithm
egg-herbie
Rules
797×fma-def_binary64
340×distribute-rgt-in_binary64
235×cancel-sign-sub-inv_binary64
185×fma-neg_binary64
160×associate-*r*_binary64
Counts
199 → 221
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02835008
16614039
224643848
349113848

prune135.0ms (2.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New2183221
Fresh101
Picked101
Done000
Total2203223
Error
0.0b
Counts
223 → 3
Alt Table
StatusErrorProgram
0.9b
(neg.f64 (fma.f64 9/16 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) (fma.f64 135/128 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) (fma.f64 1/2 (/.f64 c b) (*.f64 3/8 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)))))))
0.5b
(/.f64 (*.f64 (fma.f64 a (*.f64 c -3) 0) (/.f64 1/3 a)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b))
1.9b
(*.f64 (fma.f64 -3/2 (/.f64 (*.f64 c a) b) (fma.f64 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) -9/8 (*.f64 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) -27/16))) (/.f64 1/3 a))
Compiler

Compiled 5835 to 3381 computations (42.1% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 a (*.f64 c -3) (*.f64 b b))
0.2b
(fma.f64 a (*.f64 c -3) 0)
0.2b
(*.f64 (fma.f64 a (*.f64 c -3) 0) (/.f64 1/3 a))
0.4b
(/.f64 1/3 a)

series14.0ms (0.2%)

Counts
2 → 48
Calls

2 calls:

9.0ms
(*.f64 (fma.f64 a (*.f64 c -3) 0) (/.f64 1/3 a))
5.0ms
(fma.f64 a (*.f64 c -3) 0)

rewrite9.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
15×add-sqr-sqrt_binary64
13×associate-*r*_binary64
10×times-frac_binary64
10×*-un-lft-identity_binary64
10×add-cube-cbrt_binary64
Counts
2 → 44
Calls

2 calls:

5.0ms
(*.f64 (fma.f64 a (*.f64 c -3) 0) (/.f64 1/3 a))
0.0ms
(fma.f64 a (*.f64 c -3) 0)

simplify94.0ms (1.5%)

Algorithm
egg-herbie
Rules
517×distribute-rgt-in_binary64
506×associate-/l/_binary64
492×associate-*l*_binary64
430×associate-/r/_binary64
383×associate-*r*_binary64
Counts
92 → 79
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0851049
1175901
2597847
32395797
44205797
54724797
65000797
74845797

prune138.0ms (2.2%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New1324136
Fresh112
Picked101
Done000
Total1345139
Error
0.0b
Counts
139 → 5
Alt Table
StatusErrorProgram
0.8b
(/.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (fma.f64 a (*.f64 c -3) 0) (fma.f64 a (*.f64 c -3) 0)) (fma.f64 a (*.f64 c -3) 0))) (/.f64 1/3 a)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b))
0.9b
(neg.f64 (fma.f64 9/16 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) (fma.f64 135/128 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) (fma.f64 1/2 (/.f64 c b) (*.f64 3/8 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)))))))
0.8b
(/.f64 (*.f64 (*.f64 (*.f64 -3 (*.f64 c a)) (/.f64 (sqrt.f64 1/3) (sqrt.f64 a))) (/.f64 (sqrt.f64 1/3) (sqrt.f64 a))) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b))
0.3b
(/.f64 (*.f64 (*.f64 (neg.f64 c) a) (/.f64 1 a)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b))
2.0b
(/.f64 (*.f64 (fma.f64 a (*.f64 c -3) 0) (/.f64 1/3 a)) (+.f64 (sqrt.f64 (expm1.f64 (log1p.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b))))) b))
Compiler

Compiled 4055 to 2519 computations (37.9% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (*.f64 (*.f64 (neg.f64 c) a) (/.f64 1 a)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b))
0.1b
(+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
0.1b
(fma.f64 a (*.f64 c -3) (*.f64 b b))
0.2b
(*.f64 (*.f64 (neg.f64 c) a) (/.f64 1 a))

series157.0ms (2.5%)

Counts
3 → 64
Calls

3 calls:

122.0ms
(/.f64 (*.f64 (*.f64 (neg.f64 c) a) (/.f64 1 a)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b))
32.0ms
(+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
3.0ms
(*.f64 (*.f64 (neg.f64 c) a) (/.f64 1 a))

rewrite29.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
57×add-exp-log_binary64
33×add-cbrt-cube_binary64
24×prod-exp_binary64
20×*-un-lft-identity_binary64
17×div-exp_binary64
Counts
3 → 101
Calls

3 calls:

9.0ms
(/.f64 (*.f64 (*.f64 (neg.f64 c) a) (/.f64 1 a)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b))
7.0ms
(*.f64 (*.f64 (neg.f64 c) a) (/.f64 1 a))
3.0ms
(+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)

simplify124.0ms (2%)

Algorithm
egg-herbie
Rules
564×fma-def_binary64
352×distribute-frac-neg_binary64
237×div-sub_binary64
233×associate-/l*_binary64
186×associate-*l*_binary64
Counts
165 → 189
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02383498
16742907
225682812
347632812
449772812
549182812

prune172.0ms (2.7%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New2094213
Fresh314
Picked101
Done000
Total2135218
Error
0b
Counts
218 → 5
Alt Table
StatusErrorProgram
0.9b
(neg.f64 (fma.f64 9/16 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) (fma.f64 135/128 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) (fma.f64 1/2 (/.f64 c b) (*.f64 3/8 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)))))))
0.4b
(/.f64 (*.f64 (neg.f64 c) a) (*.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) a))
0.5b
(*.f64 (*.f64 (*.f64 (neg.f64 c) a) (/.f64 1 a)) (/.f64 1 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)))
0.5b
(/.f64 1 (/.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (*.f64 (*.f64 (neg.f64 c) a) (/.f64 1 a))))
0.7b
(cbrt.f64 (/.f64 (*.f64 (*.f64 (*.f64 (*.f64 (neg.f64 c) a) (/.f64 1 a)) (*.f64 (*.f64 (neg.f64 c) a) (/.f64 1 a))) (*.f64 (*.f64 (neg.f64 c) a) (/.f64 1 a))) (*.f64 (*.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b))))
Compiler

Compiled 6265 to 3261 computations (47.9% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) a)
0.1b
(+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
0.1b
(fma.f64 a (*.f64 c -3) (*.f64 b b))
0.4b
(/.f64 (*.f64 (neg.f64 c) a) (*.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) a))

series164.0ms (2.6%)

Counts
2 → 40
Calls

2 calls:

122.0ms
(/.f64 (*.f64 (neg.f64 c) a) (*.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) a))
41.0ms
(*.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) a)

rewrite18.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
16×add-cbrt-cube_binary64
16×add-exp-log_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
cbrt-unprod_binary64
Counts
2 → 49
Calls

2 calls:

7.0ms
(*.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) a)
7.0ms
(/.f64 (*.f64 (neg.f64 c) a) (*.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) a))

simplify90.0ms (1.4%)

Algorithm
egg-herbie
Rules
618×fma-def_binary64
351×distribute-frac-neg_binary64
301×times-frac_binary64
213×distribute-rgt-neg-out_binary64
189×associate-/l*_binary64
Counts
89 → 125
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01932920
15882489
225652400
348052394
449522394

prune160.0ms (2.5%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1972199
Fresh224
Picked011
Done000
Total1995204
Error
0b
Counts
204 → 5
Alt Table
StatusErrorProgram
0.4b
(/.f64 (*.f64 (neg.f64 c) a) (*.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) a))
0.5b
(*.f64 (*.f64 (*.f64 (neg.f64 c) a) (/.f64 1 a)) (/.f64 1 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)))
0.5b
(/.f64 1 (/.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (*.f64 (*.f64 (neg.f64 c) a) (/.f64 1 a))))
0.9b
(fma.f64 (/.f64 (*.f64 (pow.f64 c 3) (*.f64 a a)) (pow.f64 b 5)) -9/16 (fma.f64 -1/2 (/.f64 c b) (fma.f64 (/.f64 (*.f64 (*.f64 c c) a) (pow.f64 b 3)) -3/8 (/.f64 -135/128 (/.f64 (pow.f64 b 7) (*.f64 (pow.f64 c 4) (pow.f64 a 3)))))))
0.7b
(cbrt.f64 (/.f64 (*.f64 (*.f64 (*.f64 (neg.f64 c) (neg.f64 c)) (neg.f64 c)) (*.f64 (*.f64 a a) a)) (*.f64 (*.f64 (*.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)) (*.f64 (*.f64 a a) a))))
Compiler

Compiled 5663 to 2885 computations (49.1% saved)

regimes1.7s (27.2%)

Accuracy

Total 0.1b remaining (76.7%)

Threshold costs 0.1b (76.7%)

Counts
272 → 1
Compiler

Compiled 42316 to 27676 computations (34.6% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
neg-sub0_binary64
neg-mul-1_binary64
sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01427
12327
23127
33827
44527
55027
65327
75427
85427

end115.0ms (1.8%)

Compiler

Compiled 218 to 135 computations (38.1% saved)

Profiling

Loading profile data...