Details

Time bar (total: 11.2s)

analyze404.0ms (3.6%)

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 33 to 24 computations (27.3% saved)

sample41.0ms (0.4%)

Algorithm
intervals
Results
17.0ms245×body128valid
8.0ms283×pre128true
2.0ms27×body128nan
1.0ms11×body256valid
Compiler

Compiled 56 to 41 computations (26.8% saved)

simplify276.0ms (2.5%)

Algorithm
egg-herbie
Rules
1743×fma-neg_binary64
1393×fma-def_binary64
800×div-sub_binary64
619×times-frac_binary64
473×associate-/r/_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01526
13322
26722
313822
420422
533822
655822
792422
8138822
9160422
10237522
11274222
12253322
13262122
14317122
15331322
16387322
17367922
18402922
19431722
20448522
21456122
22480522
23479322
24479722
25479722
26494822

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 111 to 74 computations (33.3% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
0.2b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
0.3b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
26.1b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))

rewrite34.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
22×*-un-lft-identity_binary64
11×add-sqr-sqrt_binary64
10×add-log-exp_binary64
10×fma-def_binary64
10×add-cube-cbrt_binary64
Counts
4 → 90
Calls

4 calls:

15.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
7.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
3.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
3.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))

series200.0ms (1.8%)

Counts
4 → 96
Calls

4 calls:

79.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
45.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
40.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
35.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))

simplify377.0ms (3.4%)

Algorithm
egg-herbie
Rules
701×fma-neg_binary64
314×cancel-sign-sub-inv_binary64
215×distribute-rgt-neg-in_binary64
159×associate-*r*_binary64
150×distribute-rgt-neg-out_binary64
Counts
186 → 343
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02434178
16953846
225123724
346923704
450313704

prune266.0ms (2.4%)

Pruning

18 alts after pruning (18 fresh and 0 done)

PrunedKeptTotal
New32617343
Fresh011
Picked101
Done000
Total32718345
Error
1.0b
Counts
345 → 18
Alt Table
StatusErrorProgram
26.3b
(/.f64 (/.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 2 a))
26.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
26.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 b b (neg.f64 (*.f64 c (*.f64 4 a)))) (fma.f64 (neg.f64 c) (*.f64 4 a) (*.f64 c (*.f64 4 a)))))) (*.f64 2 a))
26.2b
(/.f64 (*.f64 (*.f64 (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
26.3b
(/.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
6.5b
(/.f64 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (+.f64 (*.f64 10 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))) (*.f64 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))) (*.f64 2 a))
26.3b
(/.f64 (+.f64 (pow.f64 (neg.f64 b) 3) (pow.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) 3)) (*.f64 (*.f64 2 a) (+.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))))
45.4b
(/.f64 (log.f64 (*.f64 (exp.f64 (neg.f64 b)) (exp.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
26.2b
(cbrt.f64 (/.f64 (*.f64 (*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 (*.f64 (*.f64 2 a) (*.f64 2 a)) (*.f64 2 a))))
26.7b
(/.f64 (fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
14.1b
(/.f64 (*.f64 -2 (+.f64 (/.f64 (*.f64 c a) b) (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (*.f64 2 a))
26.5b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (/.f64 (fma.f64 (pow.f64 (*.f64 c a) 3) -64 (pow.f64 b 6)) (fma.f64 4 (*.f64 (*.f64 c a) (fma.f64 4 (*.f64 c a) (*.f64 b b))) (pow.f64 b 4))))) (*.f64 2 a))
28.6b
(log.f64 (exp.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
30.3b
(/.f64 (log1p.f64 (expm1.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
9.2b
(neg.f64 (fma.f64 2 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) (+.f64 (/.f64 c b) (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)))))
6.5b
(/.f64 (-.f64 (*.f64 -2 (+.f64 (/.f64 (*.f64 c a) b) (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (fma.f64 4 (/.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 b 5)) (*.f64 10 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))))) (*.f64 2 a))
26.2b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
6.4b
(neg.f64 (fma.f64 2 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) (fma.f64 5 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) (+.f64 (/.f64 c b) (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))))))
Compiler

Compiled 6712 to 3978 computations (40.7% saved)

localize50.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 (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 (pow.f64 a 3) (pow.f64 c 4))

rewrite77.0ms (0.7%)

Algorithm
rewrite-expression-head
Rules
112×add-exp-log_binary64
54×prod-exp_binary64
42×add-sqr-sqrt_binary64
39×div-exp_binary64
39×pow-exp_binary64
Counts
4 → 194
Calls

4 calls:

15.0ms
(*.f64 (*.f64 a a) (pow.f64 c 3))
13.0ms
(/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))
13.0ms
(*.f64 (pow.f64 a 3) (pow.f64 c 4))
13.0ms
(/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7))

series755.0ms (6.7%)

Counts
4 → 120
Calls

4 calls:

335.0ms
(/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7))
196.0ms
(/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))
140.0ms
(*.f64 (pow.f64 a 3) (pow.f64 c 4))
83.0ms
(*.f64 (*.f64 a a) (pow.f64 c 3))

simplify312.0ms (2.8%)

Algorithm
egg-herbie
Rules
381×associate-*l*_binary64
354×times-frac_binary64
322×associate-*r*_binary64
274×log-div_binary64
272×associate-/l*_binary64
Counts
314 → 547
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02724804
15864461
232164382
346014382
450084382

prune795.0ms (7.1%)

Pruning

20 alts after pruning (19 fresh and 1 done)

PrunedKeptTotal
New5443547
Fresh11617
Picked011
Done000
Total54520565
Error
1.0b
Counts
565 → 20
Alt Table
StatusErrorProgram
26.3b
(/.f64 (/.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 2 a))
26.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
26.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 b b (neg.f64 (*.f64 c (*.f64 4 a)))) (fma.f64 (neg.f64 c) (*.f64 4 a) (*.f64 c (*.f64 4 a)))))) (*.f64 2 a))
26.2b
(/.f64 (*.f64 (*.f64 (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
26.3b
(/.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
6.5b
(/.f64 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (+.f64 (*.f64 10 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))) (*.f64 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))) (*.f64 2 a))
24.9b
(neg.f64 (fma.f64 2 (/.f64 (log.f64 (exp.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)))) (pow.f64 b 5)) (fma.f64 5 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) (+.f64 (/.f64 c b) (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))))))
26.3b
(/.f64 (+.f64 (pow.f64 (neg.f64 b) 3) (pow.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) 3)) (*.f64 (*.f64 2 a) (+.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))))
45.4b
(/.f64 (log.f64 (*.f64 (exp.f64 (neg.f64 b)) (exp.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
7.2b
(neg.f64 (fma.f64 2 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) (fma.f64 5 (log.f64 (exp.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)))) (+.f64 (/.f64 c b) (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))))))
26.2b
(cbrt.f64 (/.f64 (*.f64 (*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 (*.f64 (*.f64 2 a) (*.f64 2 a)) (*.f64 2 a))))
26.7b
(/.f64 (fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
14.1b
(/.f64 (*.f64 -2 (+.f64 (/.f64 (*.f64 c a) b) (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (*.f64 2 a))
26.5b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (/.f64 (fma.f64 (pow.f64 (*.f64 c a) 3) -64 (pow.f64 b 6)) (fma.f64 4 (*.f64 (*.f64 c a) (fma.f64 4 (*.f64 c a) (*.f64 b b))) (pow.f64 b 4))))) (*.f64 2 a))
28.6b
(log.f64 (exp.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
30.3b
(/.f64 (log1p.f64 (expm1.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
6.5b
(/.f64 (-.f64 (*.f64 -2 (+.f64 (/.f64 (*.f64 c a) b) (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (fma.f64 4 (/.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 b 5)) (*.f64 10 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))))) (*.f64 2 a))
26.2b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
12.2b
(neg.f64 (fma.f64 2 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) (fma.f64 5 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) (+.f64 (/.f64 c b) (log.f64 (exp.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))))))))
6.4b
(neg.f64 (fma.f64 2 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) (fma.f64 5 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) (+.f64 (/.f64 c b) (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))))))
Compiler

Compiled 11942 to 7145 computations (40.2% saved)

localize52.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

rewrite56.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
80×add-exp-log_binary64
46×pow1_binary64
42×prod-exp_binary64
39×add-cbrt-cube_binary64
27×add-sqr-sqrt_binary64
Counts
4 → 161
Calls

4 calls:

15.0ms
(/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3))
11.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 4))
9.0ms
(*.f64 (*.f64 c a) (*.f64 c a))
5.0ms
(pow.f64 (*.f64 c a) 3)

series441.0ms (3.9%)

Counts
4 → 84
Calls

4 calls:

221.0ms
(/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3))
94.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 4))
68.0ms
(pow.f64 (*.f64 c a) 3)
57.0ms
(*.f64 (*.f64 c a) (*.f64 c a))

simplify231.0ms (2.1%)

Algorithm
egg-herbie
Rules
606×associate-/r/_binary64
575×unswap-sqr_binary64
271×times-frac_binary64
225×associate-*l*_binary64
209×associate-*r*_binary64
Counts
245 → 462
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01973172
13842525
222712487
349872487
450172487

prune705.0ms (6.3%)

Pruning

22 alts after pruning (20 fresh and 2 done)

PrunedKeptTotal
New4602462
Fresh01818
Picked011
Done011
Total46022482
Error
1.0b
Counts
482 → 22
Alt Table
StatusErrorProgram
26.3b
(/.f64 (/.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 2 a))
26.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
26.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 b b (neg.f64 (*.f64 c (*.f64 4 a)))) (fma.f64 (neg.f64 c) (*.f64 4 a) (*.f64 c (*.f64 4 a)))))) (*.f64 2 a))
26.2b
(/.f64 (*.f64 (*.f64 (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
12.2b
(/.f64 (-.f64 (*.f64 -2 (+.f64 (/.f64 (*.f64 c a) b) (log.f64 (exp.f64 (/.f64 (pow.f64 (*.f64 c a) 2) (pow.f64 b 3)))))) (fma.f64 4 (/.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 b 5)) (*.f64 10 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))))) (*.f64 2 a))
6.5b
(/.f64 (-.f64 (*.f64 -2 (+.f64 (/.f64 (*.f64 c a) b) (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (fma.f64 4 (/.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 b 5)) (*.f64 10 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))))) (*.f64 2 a))
26.3b
(/.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
6.5b
(/.f64 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (+.f64 (*.f64 10 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))) (*.f64 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))) (*.f64 2 a))
24.9b
(neg.f64 (fma.f64 2 (/.f64 (log.f64 (exp.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)))) (pow.f64 b 5)) (fma.f64 5 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) (+.f64 (/.f64 c b) (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))))))
24.6b
(/.f64 (-.f64 (*.f64 -2 (+.f64 (/.f64 (*.f64 c a) b) (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (fma.f64 4 (/.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 b 5)) (*.f64 10 (/.f64 (log.f64 (exp.f64 (pow.f64 (*.f64 c a) 4))) (pow.f64 b 7))))) (*.f64 2 a))
26.3b
(/.f64 (+.f64 (pow.f64 (neg.f64 b) 3) (pow.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) 3)) (*.f64 (*.f64 2 a) (+.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))))
45.4b
(/.f64 (log.f64 (*.f64 (exp.f64 (neg.f64 b)) (exp.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
7.2b
(neg.f64 (fma.f64 2 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) (fma.f64 5 (log.f64 (exp.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)))) (+.f64 (/.f64 c b) (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))))))
26.2b
(cbrt.f64 (/.f64 (*.f64 (*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 (*.f64 (*.f64 2 a) (*.f64 2 a)) (*.f64 2 a))))
26.7b
(/.f64 (fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
14.1b
(/.f64 (*.f64 -2 (+.f64 (/.f64 (*.f64 c a) b) (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (*.f64 2 a))
26.5b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (/.f64 (fma.f64 (pow.f64 (*.f64 c a) 3) -64 (pow.f64 b 6)) (fma.f64 4 (*.f64 (*.f64 c a) (fma.f64 4 (*.f64 c a) (*.f64 b b))) (pow.f64 b 4))))) (*.f64 2 a))
28.6b
(log.f64 (exp.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
30.3b
(/.f64 (log1p.f64 (expm1.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
26.2b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
12.2b
(neg.f64 (fma.f64 2 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) (fma.f64 5 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) (+.f64 (/.f64 c b) (log.f64 (exp.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))))))))
6.4b
(neg.f64 (fma.f64 2 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) (fma.f64 5 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) (+.f64 (/.f64 c b) (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))))))
Compiler

Compiled 11445 to 6687 computations (41.6% saved)

localize102.0ms (0.9%)

Local error

Found 4 expressions with local error:

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

rewrite66.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
86×add-exp-log_binary64
59×add-sqr-sqrt_binary64
45×prod-exp_binary64
40×pow-exp_binary64
40×pow-to-exp_binary64
Counts
3 → 183
Calls

3 calls:

16.0ms
(*.f64 (pow.f64 c 3) (pow.f64 a 3))
15.0ms
(/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))
12.0ms
(*.f64 (pow.f64 c 2) (pow.f64 a 2))

series377.0ms (3.4%)

Counts
3 → 0
Calls

3 calls:

214.0ms
(/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))
106.0ms
(*.f64 (pow.f64 c 3) (pow.f64 a 3))
57.0ms
(*.f64 (pow.f64 c 2) (pow.f64 a 2))

simplify201.0ms (1.8%)

Algorithm
egg-herbie
Rules
655×associate-*l/_binary64
505×associate-*r/_binary64
330×associate-/r/_binary64
276×associate-*l*_binary64
259×associate-*r*_binary64
Counts
183 → 344
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02142834
14062584
220552416
348852416
449992416

prune1.2s (10.3%)

Pruning

22 alts after pruning (19 fresh and 3 done)

PrunedKeptTotal
New4260426
Fresh01919
Picked011
Done022
Total42622448
Error
1.0b
Counts
448 → 22
Alt Table
StatusErrorProgram
26.3b
(/.f64 (/.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 2 a))
26.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
26.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 b b (neg.f64 (*.f64 c (*.f64 4 a)))) (fma.f64 (neg.f64 c) (*.f64 4 a) (*.f64 c (*.f64 4 a)))))) (*.f64 2 a))
26.2b
(/.f64 (*.f64 (*.f64 (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
12.2b
(/.f64 (-.f64 (*.f64 -2 (+.f64 (/.f64 (*.f64 c a) b) (log.f64 (exp.f64 (/.f64 (pow.f64 (*.f64 c a) 2) (pow.f64 b 3)))))) (fma.f64 4 (/.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 b 5)) (*.f64 10 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))))) (*.f64 2 a))
6.5b
(/.f64 (-.f64 (*.f64 -2 (+.f64 (/.f64 (*.f64 c a) b) (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (fma.f64 4 (/.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 b 5)) (*.f64 10 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))))) (*.f64 2 a))
26.3b
(/.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
6.5b
(/.f64 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (+.f64 (*.f64 10 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))) (*.f64 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))) (*.f64 2 a))
24.9b
(neg.f64 (fma.f64 2 (/.f64 (log.f64 (exp.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)))) (pow.f64 b 5)) (fma.f64 5 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) (+.f64 (/.f64 c b) (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))))))
24.6b
(/.f64 (-.f64 (*.f64 -2 (+.f64 (/.f64 (*.f64 c a) b) (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (fma.f64 4 (/.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 b 5)) (*.f64 10 (/.f64 (log.f64 (exp.f64 (pow.f64 (*.f64 c a) 4))) (pow.f64 b 7))))) (*.f64 2 a))
26.3b
(/.f64 (+.f64 (pow.f64 (neg.f64 b) 3) (pow.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) 3)) (*.f64 (*.f64 2 a) (+.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))))
45.4b
(/.f64 (log.f64 (*.f64 (exp.f64 (neg.f64 b)) (exp.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
7.2b
(neg.f64 (fma.f64 2 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) (fma.f64 5 (log.f64 (exp.f64 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)))) (+.f64 (/.f64 c b) (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))))))
26.2b
(cbrt.f64 (/.f64 (*.f64 (*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 (*.f64 (*.f64 2 a) (*.f64 2 a)) (*.f64 2 a))))
26.7b
(/.f64 (fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
14.1b
(/.f64 (*.f64 -2 (+.f64 (/.f64 (*.f64 c a) b) (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (*.f64 2 a))
26.5b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (/.f64 (fma.f64 (pow.f64 (*.f64 c a) 3) -64 (pow.f64 b 6)) (fma.f64 4 (*.f64 (*.f64 c a) (fma.f64 4 (*.f64 c a) (*.f64 b b))) (pow.f64 b 4))))) (*.f64 2 a))
28.6b
(log.f64 (exp.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
30.3b
(/.f64 (log1p.f64 (expm1.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
26.2b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
12.2b
(neg.f64 (fma.f64 2 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) (fma.f64 5 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) (+.f64 (/.f64 c b) (log.f64 (exp.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))))))))
6.4b
(neg.f64 (fma.f64 2 (/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5)) (fma.f64 5 (/.f64 (*.f64 (pow.f64 a 3) (pow.f64 c 4)) (pow.f64 b 7)) (+.f64 (/.f64 c b) (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))))))
Compiler

Compiled 15863 to 11152 computations (29.7% saved)

regimes821.0ms (7.3%)

Accuracy

Total 4.3b remaining (84.4%)

Threshold costs 0b (0%)

Compiler

Compiled 10054 to 6772 computations (32.6% saved)

bsearch40.0ms (0.4%)

Steps
ItersRangePoint
2
0.06041077750587276
0.06866206810737766
0.06736950397042363
Compiler

Compiled 4 to 3 computations (25% saved)

simplify18.0ms (0.2%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
046113
175107
2112107
3146107
4178107
5209107
6227107
7237107
8240107
9237107

end3.0ms (0%)

Compiler

Compiled 75 to 53 computations (29.3% saved)

sample3.3s (29.8%)

Algorithm
intervals
Results
978.0ms7696×body128valid
510.0ms8881×pre128true
108.0ms881×body128nan
76.0ms304×body256valid
Compiler

Compiled 1033 to 687 computations (33.5% saved)

Profiling

Loading profile data...