Details

Time bar (total: 6.8s)

analyze361.0ms (5.3%)

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)

sample1.5s (22.4%)

Results
1.2s7934×body128valid
151.0ms1028×body128invalid
89.0ms322×body256valid
Compiler

Compiled 106 to 76 computations (28.3% saved)

simplify354.0ms (5.2%)

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
29.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
29.3b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 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.3b
(fma.f64 a (*.f64 c -3) (*.f64 b b))
0.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
0.3b
(/.f64 1/3 a)
29.2b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)

series106.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))
39.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))
1.0ms
(/.f64 1/3 a)

rewrite80.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
781×prod-diff_binary64
245×log1p-udef_binary64
168×egg-rr
139×add-sqr-sqrt_binary64
133×log1p-expm1-u_binary64
Counts
4 → 168
Calls

4 calls:

77.0ms
(fma.f64 a (*.f64 c -3) (*.f64 b b))
77.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
77.0ms
(/.f64 1/3 a)
77.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01353
128053
2340653
3511853

simplify72.0ms (1.1%)

Algorithm
egg-herbie
Rules
744×times-frac_binary64
459×associate-/l*_binary64
396×associate-/r*_binary64
333×fma-def_binary64
308×fma-neg_binary64
Counts
244 → 220
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01191772
13681700
212401671
349081665
450681665

prune172.0ms (2.5%)

Pruning

20 alts after pruning (20 fresh and 0 done)

PrunedKeptTotal
New20119220
Fresh011
Picked101
Done000
Total20220222
Error
0.6b
Counts
222 → 20
Alt Table
StatusErrorProgram
37.0b
(-.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a)))) 1)
29.4b
(*.f64 (fma.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (neg.f64 b)) (/.f64 1/3 a))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (expm1.f64 (log1p.f64 (/.f64 1/3 a))))
32.6b
(*.f64 (log.f64 (exp.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b))) (/.f64 1/3 a))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (sqrt.f64 (/.f64 1/9 (*.f64 a a))))
28.6b
(*.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 (neg.f64 b) 3)) (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (neg.f64 b))))) (/.f64 1/3 a))
6.0b
(*.f64 (-.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) (fma.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7)))))) (/.f64 1/3 a))
29.3b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
28.3b
(/.f64 (*.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (/.f64 1/3 a)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3))
28.3b
(*.f64 (/.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))) (/.f64 1/3 a))
31.0b
(*.f64 (+.f64 (fma.f64 (cbrt.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b)) (/.f64 1/3 a))
7.7b
(*.f64 (fma.f64 -3/2 (/.f64 (*.f64 c a) b) (fma.f64 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) -27/16 (*.f64 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) -9/8))) (/.f64 1/3 a))
33.8b
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a)))))
29.3b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)) 3) (/.f64 1/3 a))
28.6b
(/.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) 1/3) (*.f64 (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))))) a))
29.5b
(*.f64 (+.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b)) (/.f64 1/3 a))
28.3b
(/.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (*.f64 (*.f64 a 3) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))
28.6b
(/.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) (*.f64 (*.f64 a 3) (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))))
5.8b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
Compiler

Compiled 6862 to 4044 computations (41.1% saved)

localize26.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 a a) (pow.f64 c 3))
0.4b
(/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5))
0.4b
(/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7))
0.4b
(/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))

series309.0ms (4.6%)

Counts
4 → 132
Calls

4 calls:

122.0ms
(/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))
89.0ms
(/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7))
81.0ms
(/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5))
16.0ms
(*.f64 (*.f64 a a) (pow.f64 c 3))

rewrite91.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
224×add-sqr-sqrt_binary64
220×log1p-expm1-u_binary64
220×expm1-log1p-u_binary64
213×add-cbrt-cube_binary64
212×add-log-exp_binary64
Counts
4 → 127
Calls

4 calls:

89.0ms
(*.f64 (*.f64 a a) (pow.f64 c 3))
89.0ms
(/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5))
89.0ms
(/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7))
89.0ms
(/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02255
148755
2493455
3505755

simplify144.0ms (2.1%)

Algorithm
egg-herbie
Rules
732×associate-*l*_binary64
679×associate-/r*_binary64
308×associate-/l/_binary64
297×associate-/r/_binary64
285×unswap-sqr_binary64
Counts
259 → 134
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0231860
1651860
22121860
310101860
441371860
542301860
644161860
747051860
849741860
949041860

prune260.0ms (3.8%)

Pruning

24 alts after pruning (23 fresh and 1 done)

PrunedKeptTotal
New1304134
Fresh01919
Picked011
Done000
Total13024154
Error
0.6b
Counts
154 → 24
Alt Table
StatusErrorProgram
37.0b
(-.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a)))) 1)
29.4b
(*.f64 (fma.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (neg.f64 b)) (/.f64 1/3 a))
33.8b
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a)))))
6.3b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (log.f64 (exp.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)))) -135/128 (fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (expm1.f64 (log1p.f64 (/.f64 1/3 a))))
32.6b
(*.f64 (log.f64 (exp.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b))) (/.f64 1/3 a))
6.0b
(*.f64 (-.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) (fma.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7)))))) (/.f64 1/3 a))
7.1b
(fma.f64 (log.f64 (exp.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)))) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (sqrt.f64 (/.f64 1/9 (*.f64 a a))))
28.6b
(*.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 (neg.f64 b) 3)) (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (neg.f64 b))))) (/.f64 1/3 a))
29.3b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
28.3b
(/.f64 (*.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (/.f64 1/3 a)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3))
28.3b
(*.f64 (/.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))) (/.f64 1/3 a))
31.0b
(*.f64 (+.f64 (fma.f64 (cbrt.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b)) (/.f64 1/3 a))
7.7b
(*.f64 (fma.f64 -3/2 (/.f64 (*.f64 c a) b) (fma.f64 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) -27/16 (*.f64 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) -9/8))) (/.f64 1/3 a))
28.6b
(/.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) 1/3) (*.f64 (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))))) a))
11.3b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (-.f64 (exp.f64 (log1p.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)))) 1) -3/8 (*.f64 -1/2 (/.f64 c b)))))
28.6b
(/.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) (*.f64 (*.f64 a 3) (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))))
11.4b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (log.f64 (exp.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)))) -3/8 (*.f64 -1/2 (/.f64 c b)))))
29.3b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)) 3) (/.f64 1/3 a))
29.5b
(*.f64 (+.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b)) (/.f64 1/3 a))
28.3b
(/.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (*.f64 (*.f64 a 3) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))
5.8b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
Compiler

Compiled 7774 to 4831 computations (37.9% saved)

localize29.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (pow.f64 c 4) (pow.f64 a 4))
0.4b
(/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3))
0.4b
(*.f64 (pow.f64 c 3) (pow.f64 a 3))
0.5b
(*.f64 (*.f64 c a) (*.f64 c a))

series110.0ms (1.6%)

Counts
4 → 60
Calls

4 calls:

65.0ms
(/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3))
19.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 4))
17.0ms
(*.f64 (pow.f64 c 3) (pow.f64 a 3))
10.0ms
(*.f64 (*.f64 c a) (*.f64 c a))

rewrite72.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
253×expm1-udef_binary64
253×log1p-udef_binary64
251×log-pow_binary64
153×log1p-expm1-u_binary64
153×expm1-log1p-u_binary64
Counts
4 → 103
Calls

4 calls:

71.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 4))
71.0ms
(/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3))
71.0ms
(*.f64 (pow.f64 c 3) (pow.f64 a 3))
71.0ms
(*.f64 (*.f64 c a) (*.f64 c a))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01634
134634
2373334
3490434

simplify160.0ms (2.4%)

Algorithm
egg-herbie
Rules
620×times-frac_binary64
581×sqr-pow_binary64
507×unswap-sqr_binary64
460×associate-/l*_binary64
246×associate-/r*_binary64
Counts
163 → 107
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
011816
129816
288816
3390816
42482816
53415816
63369816
73508816
83672816
93838816
103998816
114170816
124395816
134601816
144900816
154892816

prune253.0ms (3.7%)

Pruning

25 alts after pruning (23 fresh and 2 done)

PrunedKeptTotal
New1061107
Fresh02222
Picked011
Done011
Total10625131
Error
0.5b
Counts
131 → 25
Alt Table
StatusErrorProgram
37.0b
(-.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a)))) 1)
29.4b
(*.f64 (fma.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (neg.f64 b)) (/.f64 1/3 a))
33.8b
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a)))))
6.3b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (log.f64 (exp.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)))) -135/128 (fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
7.7b
(*.f64 (-.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) (fma.f64 27/16 (/.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 c a) 3))) 1) (pow.f64 b 5)) (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7)))))) (/.f64 1/3 a))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (expm1.f64 (log1p.f64 (/.f64 1/3 a))))
32.6b
(*.f64 (log.f64 (exp.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b))) (/.f64 1/3 a))
6.0b
(*.f64 (-.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) (fma.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7)))))) (/.f64 1/3 a))
7.1b
(fma.f64 (log.f64 (exp.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)))) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (sqrt.f64 (/.f64 1/9 (*.f64 a a))))
28.6b
(*.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 (neg.f64 b) 3)) (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (neg.f64 b))))) (/.f64 1/3 a))
29.3b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
28.3b
(/.f64 (*.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (/.f64 1/3 a)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3))
28.3b
(*.f64 (/.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))) (/.f64 1/3 a))
31.0b
(*.f64 (+.f64 (fma.f64 (cbrt.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b)) (/.f64 1/3 a))
7.7b
(*.f64 (fma.f64 -3/2 (/.f64 (*.f64 c a) b) (fma.f64 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) -27/16 (*.f64 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) -9/8))) (/.f64 1/3 a))
28.6b
(/.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) 1/3) (*.f64 (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))))) a))
11.3b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (-.f64 (exp.f64 (log1p.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)))) 1) -3/8 (*.f64 -1/2 (/.f64 c b)))))
28.6b
(/.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) (*.f64 (*.f64 a 3) (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))))
11.4b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (log.f64 (exp.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)))) -3/8 (*.f64 -1/2 (/.f64 c b)))))
29.3b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)) 3) (/.f64 1/3 a))
29.5b
(*.f64 (+.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b)) (/.f64 1/3 a))
28.3b
(/.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (*.f64 (*.f64 a 3) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))
5.8b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
Compiler

Compiled 7260 to 4670 computations (35.7% saved)

localize29.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5))
0.4b
(/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7))
0.4b
(/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))
30.6b
(log.f64 (exp.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7))))

series111.0ms (1.6%)

Counts
1 → 36
Calls

1 calls:

111.0ms
(log.f64 (exp.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7))))

rewrite56.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
603×log-prod_binary64
223×expm1-udef_binary64
223×log1p-udef_binary64
205×log-pow_binary64
128×add-sqr-sqrt_binary64
Counts
1 → 66
Calls

1 calls:

55.0ms
(log.f64 (exp.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01416
127716
2305716
3513516

simplify90.0ms (1.3%)

Algorithm
egg-herbie
Rules
1397×associate-/r/_binary64
532×times-frac_binary64
493×unswap-sqr_binary64
378×associate-/l*_binary64
219×sqr-pow_binary64
Counts
102 → 67
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
012576
130576
291576
3361576
42264576
53155576
63107576
73236576
83390576
93537576
105216576

prune364.0ms (5.4%)

Pruning

24 alts after pruning (22 fresh and 2 done)

PrunedKeptTotal
New1812183
Fresh22022
Picked101
Done022
Total18424208
Error
0.5b
Counts
208 → 24
Alt Table
StatusErrorProgram
37.0b
(-.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a)))) 1)
29.4b
(*.f64 (fma.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (neg.f64 b)) (/.f64 1/3 a))
33.8b
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a)))))
11.4b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (log.f64 (exp.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)))) -135/128 (fma.f64 (-.f64 (exp.f64 (log1p.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)))) 1) -3/8 (*.f64 -1/2 (/.f64 c b)))))
7.7b
(*.f64 (-.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) (fma.f64 27/16 (/.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 c a) 3))) 1) (pow.f64 b 5)) (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7)))))) (/.f64 1/3 a))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (expm1.f64 (log1p.f64 (/.f64 1/3 a))))
32.6b
(*.f64 (log.f64 (exp.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b))) (/.f64 1/3 a))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (sqrt.f64 (/.f64 1/9 (*.f64 a a))))
28.6b
(*.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 (neg.f64 b) 3)) (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (neg.f64 b))))) (/.f64 1/3 a))
6.0b
(*.f64 (-.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) (fma.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7)))))) (/.f64 1/3 a))
29.3b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
28.3b
(/.f64 (*.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (/.f64 1/3 a)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3))
28.3b
(*.f64 (/.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))) (/.f64 1/3 a))
31.0b
(*.f64 (+.f64 (fma.f64 (cbrt.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b)) (/.f64 1/3 a))
7.7b
(*.f64 (fma.f64 -3/2 (/.f64 (*.f64 c a) b) (fma.f64 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)) -27/16 (*.f64 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) -9/8))) (/.f64 1/3 a))
29.5b
(*.f64 (+.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b)) (/.f64 1/3 a))
7.1b
(fma.f64 (log.f64 (exp.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)))) -9/16 (fma.f64 (log.f64 (exp.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)))) -135/128 (fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
28.6b
(/.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) (*.f64 (*.f64 a 3) (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))))
11.4b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (log.f64 (exp.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)))) -3/8 (*.f64 -1/2 (/.f64 c b)))))
29.3b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)) 3) (/.f64 1/3 a))
28.6b
(/.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) 1/3) (*.f64 (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))))) a))
28.3b
(/.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (*.f64 (*.f64 a 3) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))
5.8b
(fma.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) -9/16 (fma.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) -135/128 (fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
Compiler

Compiled 9577 to 5978 computations (37.6% saved)

regimes1.1s (16.5%)

Accuracy

Total 4.3b remaining (86.2%)

Threshold costs 0b (0%)

Counts
132 → 2
Compiler

Compiled 24561 to 17171 computations (30.1% saved)

bsearch7.0ms (0.1%)

Compiler

Compiled 20 to 14 computations (30% saved)

simplify6.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
055136
181134
2101134
3112134
4119134
5121134
6119134

end871.0ms (12.8%)

Compiler

Compiled 1023 to 669 computations (34.6% saved)

Profiling

Loading profile data...