Details

Time bar (total: 12.0s)

analyze650.0ms (5.4%)

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)

sample3.2s (27.1%)

Results
1.5s3064×body256valid
1.4s5187×body128valid
219.0ms864×body128invalid
3.0msbody512valid
Compiler

Compiled 106 to 76 computations (28.3% saved)

simplify394.0ms (3.3%)

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

prune7.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
43.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
43.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
43.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)

localize19.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(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.4b
(/.f64 1/3 a)
37.4b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)

series273.0ms (2.3%)

Counts
4 → 76
Calls

4 calls:

156.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
96.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
17.0ms
(fma.f64 a (*.f64 c -3) (*.f64 b b))
3.0ms
(/.f64 1/3 a)

rewrite217.0ms (1.8%)

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

4 calls:

209.0ms
(fma.f64 a (*.f64 c -3) (*.f64 b b))
209.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
209.0ms
(/.f64 1/3 a)
208.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
000
100

simplify131.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
240 → 216
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01191772
13681700
212401671
349081665
450681665

prune389.0ms (3.3%)

Pruning

20 alts after pruning (19 fresh and 1 done)

PrunedKeptTotal
New19719216
Fresh101
Picked011
Done000
Total19820218
Error
0.5b
Counts
218 → 20
Alt Table
StatusErrorProgram
42.5b
(/.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)))))
43.9b
(*.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (sqrt.f64 b)) (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (sqrt.f64 b))) (/.f64 1/3 a))
42.7b
(*.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))
43.2b
(/.f64 (/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a))
42.4b
(*.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) (/.f64 1 (+.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)))))))) (/.f64 1/3 a))
2.6b
(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)))))
42.4b
(/.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))
43.5b
(*.f64 (+.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (neg.f64 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 b) 2)) (sqrt.f64 (cbrt.f64 (pow.f64 b 4)))))) (fma.f64 (neg.f64 (sqrt.f64 (pow.f64 (cbrt.f64 b) 2))) (sqrt.f64 (cbrt.f64 (pow.f64 b 4))) (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 b) 2)) (sqrt.f64 (cbrt.f64 (pow.f64 b 4)))))) (/.f64 1/3 a))
42.5b
(/.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))))))
43.2b
(*.f64 (+.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b)) (/.f64 1/3 a))
43.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
43.4b
(+.f64 (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (/.f64 1/3 a)) (*.f64 (neg.f64 b) (/.f64 1/3 a)))
43.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (expm1.f64 (log1p.f64 (/.f64 1/3 a))))
2.9b
(*.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))
43.4b
(*.f64 (+.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b)) (/.f64 1/3 a))
42.5b
(/.f64 (*.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) 1/3) (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) a))
42.4b
(/.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))))))))
43.2b
(/.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (*.f64 a 3))
4.2b
(*.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))
42.4b
(*.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))
Compiler

Compiled 6946 to 4098 computations (41% saved)

localize53.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 a a) (pow.f64 c 3))
0.3b
(/.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))
0.4b
(/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5))

series508.0ms (4.2%)

Counts
4 → 132
Calls

4 calls:

189.0ms
(/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7))
169.0ms
(/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5))
122.0ms
(/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))
27.0ms
(*.f64 (*.f64 a a) (pow.f64 c 3))

rewrite120.0ms (1%)

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 → 123
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02255
148755
2493455
3505755
000
100

simplify221.0ms (1.9%)

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
255 → 130
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0231860
1651860
22121860
310101860
441371860
542301860
644161860
747051860
849741860
949041860

prune517.0ms (4.3%)

Pruning

23 alts after pruning (21 fresh and 2 done)

PrunedKeptTotal
New1273130
Fresh01818
Picked011
Done011
Total12723150
Error
0.4b
Counts
150 → 23
Alt Table
StatusErrorProgram
42.7b
(*.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))
3.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 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
42.5b
(/.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)))))
43.9b
(*.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (sqrt.f64 b)) (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (sqrt.f64 b))) (/.f64 1/3 a))
2.6b
(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)))))
7.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 a c)) (pow.f64 b 3)))) -3/8 (*.f64 -1/2 (/.f64 c b)))))
43.2b
(/.f64 (/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a))
42.4b
(*.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) (/.f64 1 (+.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)))))))) (/.f64 1/3 a))
42.4b
(/.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))
43.5b
(*.f64 (+.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (neg.f64 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 b) 2)) (sqrt.f64 (cbrt.f64 (pow.f64 b 4)))))) (fma.f64 (neg.f64 (sqrt.f64 (pow.f64 (cbrt.f64 b) 2))) (sqrt.f64 (cbrt.f64 (pow.f64 b 4))) (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 b) 2)) (sqrt.f64 (cbrt.f64 (pow.f64 b 4)))))) (/.f64 1/3 a))
42.5b
(/.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))))))
43.2b
(*.f64 (+.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b)) (/.f64 1/3 a))
43.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
43.4b
(+.f64 (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (/.f64 1/3 a)) (*.f64 (neg.f64 b) (/.f64 1/3 a)))
43.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (expm1.f64 (log1p.f64 (/.f64 1/3 a))))
2.9b
(*.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))
3.5b
(fma.f64 (/.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)))) 1) (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)))))
43.4b
(*.f64 (+.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b)) (/.f64 1/3 a))
42.5b
(/.f64 (*.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) 1/3) (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) a))
42.4b
(/.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))))))))
43.2b
(/.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (*.f64 a 3))
4.2b
(*.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))
42.4b
(*.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))
Compiler

Compiled 7656 to 4751 computations (37.9% saved)

localize59.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

series230.0ms (1.9%)

Counts
4 → 60
Calls

4 calls:

138.0ms
(/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3))
36.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 4))
35.0ms
(*.f64 (pow.f64 c 3) (pow.f64 a 3))
20.0ms
(*.f64 (*.f64 c a) (*.f64 c a))

rewrite118.0ms (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 → 102
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01634
134634
2373334
3490434
000
100

simplify224.0ms (1.9%)

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
162 → 106
Iterations

Useful iterations: 0 (0.0ms)

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

prune435.0ms (3.6%)

Pruning

23 alts after pruning (20 fresh and 3 done)

PrunedKeptTotal
New1060106
Fresh02020
Picked011
Done022
Total10623129
Error
0.4b
Counts
129 → 23
Alt Table
StatusErrorProgram
42.7b
(*.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))
3.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 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
42.5b
(/.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)))))
43.9b
(*.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (sqrt.f64 b)) (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (sqrt.f64 b))) (/.f64 1/3 a))
2.6b
(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)))))
7.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 a c)) (pow.f64 b 3)))) -3/8 (*.f64 -1/2 (/.f64 c b)))))
43.2b
(/.f64 (/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a))
42.4b
(*.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) (/.f64 1 (+.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)))))))) (/.f64 1/3 a))
42.4b
(/.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))
43.5b
(*.f64 (+.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (neg.f64 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 b) 2)) (sqrt.f64 (cbrt.f64 (pow.f64 b 4)))))) (fma.f64 (neg.f64 (sqrt.f64 (pow.f64 (cbrt.f64 b) 2))) (sqrt.f64 (cbrt.f64 (pow.f64 b 4))) (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 b) 2)) (sqrt.f64 (cbrt.f64 (pow.f64 b 4)))))) (/.f64 1/3 a))
42.5b
(/.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))))))
43.2b
(*.f64 (+.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b)) (/.f64 1/3 a))
43.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
43.4b
(+.f64 (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (/.f64 1/3 a)) (*.f64 (neg.f64 b) (/.f64 1/3 a)))
43.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (expm1.f64 (log1p.f64 (/.f64 1/3 a))))
2.9b
(*.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))
3.5b
(fma.f64 (/.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)))) 1) (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)))))
43.4b
(*.f64 (+.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b)) (/.f64 1/3 a))
42.5b
(/.f64 (*.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) 1/3) (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) a))
42.4b
(/.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))))))))
43.2b
(/.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (*.f64 a 3))
4.2b
(*.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))
42.4b
(*.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))
Compiler

Compiled 7149 to 4579 computations (35.9% saved)

localize58.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.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))
0.4b
(/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5))
15.6b
(log.f64 (exp.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7))))

series193.0ms (1.6%)

Counts
1 → 36
Calls

1 calls:

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

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

92.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
000
100

simplify121.0ms (1%)

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

prune994.0ms (8.3%)

Pruning

23 alts after pruning (19 fresh and 4 done)

PrunedKeptTotal
New1800180
Fresh01919
Picked011
Done033
Total18023203
Error
0.4b
Counts
203 → 23
Alt Table
StatusErrorProgram
42.7b
(*.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))
3.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 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))))
42.5b
(/.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)))))
43.9b
(*.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (sqrt.f64 b)) (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 1/4) (sqrt.f64 b))) (/.f64 1/3 a))
2.6b
(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)))))
7.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 a c)) (pow.f64 b 3)))) -3/8 (*.f64 -1/2 (/.f64 c b)))))
43.2b
(/.f64 (/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a))
42.4b
(*.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) (/.f64 1 (+.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)))))))) (/.f64 1/3 a))
42.4b
(/.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))
43.5b
(*.f64 (+.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (neg.f64 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 b) 2)) (sqrt.f64 (cbrt.f64 (pow.f64 b 4)))))) (fma.f64 (neg.f64 (sqrt.f64 (pow.f64 (cbrt.f64 b) 2))) (sqrt.f64 (cbrt.f64 (pow.f64 b 4))) (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 b) 2)) (sqrt.f64 (cbrt.f64 (pow.f64 b 4)))))) (/.f64 1/3 a))
42.5b
(/.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))))))
43.2b
(*.f64 (+.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b)) (/.f64 1/3 a))
43.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
43.4b
(+.f64 (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (/.f64 1/3 a)) (*.f64 (neg.f64 b) (/.f64 1/3 a)))
43.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (expm1.f64 (log1p.f64 (/.f64 1/3 a))))
2.9b
(*.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))
3.5b
(fma.f64 (/.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)))) 1) (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)))))
43.4b
(*.f64 (+.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b)) (/.f64 1/3 a))
42.5b
(/.f64 (*.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) 1/3) (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) a))
42.4b
(/.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))))))))
43.2b
(/.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (*.f64 a 3))
4.2b
(*.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))
42.4b
(*.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))
Compiler

Compiled 9466 to 5906 computations (37.6% saved)

regimes1.5s (12.6%)

Accuracy

Total 2.7b remaining (88.6%)

Threshold costs 0b (0%)

Counts
70 → 1
Compiler

Compiled 13961 to 9516 computations (31.8% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03161
13661
23661

end1.2s (9.8%)

Compiler

Compiled 946 to 620 computations (34.5% saved)

Profiling

Loading profile data...