Details

Time bar (total: 6.1s)

analyze350.0ms (5.7%)

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 (24%)

Results
1.2s7941×body128valid
128.0ms866×body128invalid
82.0ms315×body256valid
Compiler

Compiled 106 to 76 computations (28.3% saved)

simplify258.0ms (4.2%)

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.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 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
Compiler

Compiled 111 to 74 computations (33.3% saved)

localize10.0ms (0.2%)

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 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
0.2b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
29.3b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))

series177.0ms (2.9%)

Counts
4 → 96
Calls

4 calls:

77.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
50.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
39.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
10.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))

rewrite29.0ms (0.5%)

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:

10.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))))
4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
3.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))

simplify118.0ms (1.9%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
02434208
16953858
225123724
346943704
450313704

prune141.0ms (2.3%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New19016206
Fresh011
Picked101
Done000
Total19117208
Error
0.7b
Counts
208 → 17
Alt Table
StatusErrorProgram
33.5b
(log1p.f64 (expm1.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
6.3b
(/.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))
29.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (*.f64 2 a))
6.3b
(/.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))
29.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))
29.2b
(/.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))))))))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
29.3b
(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))))
22.2b
(neg.f64 (/.f64 c b))
29.3b
(*.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))))
32.2b
(log.f64 (exp.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
47.3b
(/.f64 (log.f64 (*.f64 (/.f64 1 (exp.f64 b)) (exp.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
29.4b
(/.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))
34.8b
(/.f64 (expm1.f64 (log1p.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
6.1b
(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))))))
29.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))))))
29.3b
(cbrt.f64 (*.f64 (*.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
Compiler

Compiled 6554 to 3884 computations (40.7% saved)

localize24.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

series193.0ms (3.1%)

Counts
4 → 120
Calls

4 calls:

90.0ms
(/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5))
67.0ms
(/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))
20.0ms
(*.f64 (pow.f64 a 3) (pow.f64 c 4))
16.0ms
(*.f64 (*.f64 a a) (pow.f64 c 3))

rewrite36.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
109×add-exp-log_binary64
54×prod-exp_binary64
42×add-sqr-sqrt_binary64
30×div-exp_binary64
29×unpow-prod-down_binary64
Counts
4 → 186
Calls

4 calls:

7.0ms
(/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3))
6.0ms
(/.f64 (*.f64 (*.f64 a a) (pow.f64 c 3)) (pow.f64 b 5))
6.0ms
(*.f64 (pow.f64 a 3) (pow.f64 c 4))
6.0ms
(*.f64 (*.f64 a a) (pow.f64 c 3))

simplify414.0ms (6.8%)

Algorithm
egg-herbie
Rules
394×times-frac_binary64
381×associate-*l*_binary64
328×associate-*r*_binary64
312×log-div_binary64
300×associate-/l*_binary64
Counts
306 → 228
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02734694
16004318
234534239
347074239
451554239

prune436.0ms (7.1%)

Pruning

19 alts after pruning (18 fresh and 1 done)

PrunedKeptTotal
New2253228
Fresh11516
Picked011
Done000
Total22619245
Error
0.7b
Counts
245 → 19
Alt Table
StatusErrorProgram
33.5b
(log1p.f64 (expm1.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
6.3b
(/.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))
29.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (*.f64 2 a))
6.3b
(/.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))
47.3b
(/.f64 (log.f64 (*.f64 (/.f64 1 (exp.f64 b)) (exp.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
12.5b
(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))))))))
29.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))
29.2b
(/.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))))))))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
29.3b
(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))))
32.2b
(log.f64 (exp.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
8.3b
(neg.f64 (fma.f64 2 (log.f64 (exp.f64 (/.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))))))
29.4b
(/.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))
34.8b
(/.f64 (expm1.f64 (log1p.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
6.1b
(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))))))
21.7b
(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))))))
29.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))))))
29.3b
(*.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))))
29.3b
(cbrt.f64 (*.f64 (*.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
Compiler

Compiled 12031 to 7169 computations (40.4% saved)

localize33.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

series209.0ms (3.4%)

Counts
4 → 0
Calls

4 calls:

97.0ms
(/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))
80.0ms
(/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))
20.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 4))
12.0ms
(*.f64 (pow.f64 c 2) (pow.f64 a 2))

rewrite39.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
146×add-exp-log_binary64
72×prod-exp_binary64
68×pow-exp_binary64
68×pow-to-exp_binary64
60×div-exp_binary64
Counts
4 → 225
Calls

4 calls:

7.0ms
(*.f64 (pow.f64 c 2) (pow.f64 a 2))
6.0ms
(/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))
6.0ms
(/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))
5.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 4))

simplify95.0ms (1.5%)

Algorithm
egg-herbie
Rules
699×associate-/r/_binary64
477×unswap-sqr_binary64
255×associate-*l*_binary64
250×times-frac_binary64
236×associate-/l*_binary64
Counts
225 → 235
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02883670
15473316
226133269
352763269

prune520.0ms (8.5%)

Pruning

21 alts after pruning (19 fresh and 2 done)

PrunedKeptTotal
New2332235
Fresh01717
Picked011
Done011
Total23321254
Error
0.7b
Counts
254 → 21
Alt Table
StatusErrorProgram
33.5b
(log1p.f64 (expm1.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
6.3b
(/.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))
29.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (*.f64 2 a))
6.3b
(/.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))
7.8b
(/.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 (log.f64 (exp.f64 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))))) (*.f64 2 a))
47.3b
(/.f64 (log.f64 (*.f64 (/.f64 1 (exp.f64 b)) (exp.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
12.5b
(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))))))))
21.7b
(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))))))
12.4b
(/.f64 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 2 (log.f64 (exp.f64 (/.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))
29.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))
29.2b
(/.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))))))))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
29.3b
(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))))
32.2b
(log.f64 (exp.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
8.3b
(neg.f64 (fma.f64 2 (log.f64 (exp.f64 (/.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))))))
29.4b
(/.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))
34.8b
(/.f64 (expm1.f64 (log1p.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
6.1b
(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))))))
29.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))))))
29.3b
(*.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))))
29.3b
(cbrt.f64 (*.f64 (*.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
Compiler

Compiled 15838 to 11128 computations (29.7% saved)

localize25.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

series102.0ms (1.7%)

Counts
3 → 84
Calls

3 calls:

77.0ms
(/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3))
13.0ms
(pow.f64 (*.f64 c a) 3)
11.0ms
(*.f64 (*.f64 c a) (*.f64 c a))

rewrite24.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
67×add-exp-log_binary64
45×pow1_binary64
36×add-cbrt-cube_binary64
33×prod-exp_binary64
18×pow-prod-down_binary64
Counts
3 → 117
Calls

3 calls:

8.0ms
(/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3))
5.0ms
(*.f64 (*.f64 c a) (*.f64 c a))
2.0ms
(pow.f64 (*.f64 c a) 3)

simplify118.0ms (1.9%)

Algorithm
egg-herbie
Rules
606×associate-/r/_binary64
449×unswap-sqr_binary64
271×times-frac_binary64
213×log-div_binary64
178×associate-/l*_binary64
Counts
201 → 127
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01362595
12682056
218852030
345382030
449632030

prune337.0ms (5.5%)

Pruning

21 alts after pruning (18 fresh and 3 done)

PrunedKeptTotal
New1780178
Fresh01818
Picked011
Done022
Total17821199
Error
0.7b
Counts
199 → 21
Alt Table
StatusErrorProgram
33.5b
(log1p.f64 (expm1.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
6.3b
(/.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))
29.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (*.f64 2 a))
6.3b
(/.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))
7.8b
(/.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 (log.f64 (exp.f64 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))))) (*.f64 2 a))
47.3b
(/.f64 (log.f64 (*.f64 (/.f64 1 (exp.f64 b)) (exp.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
12.5b
(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))))))))
21.7b
(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))))))
12.4b
(/.f64 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 2 (log.f64 (exp.f64 (/.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))
29.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))
29.2b
(/.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))))))))
29.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
29.3b
(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))))
32.2b
(log.f64 (exp.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
8.3b
(neg.f64 (fma.f64 2 (log.f64 (exp.f64 (/.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))))))
29.4b
(/.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))
34.8b
(/.f64 (expm1.f64 (log1p.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a))
6.1b
(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))))))
29.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))))))
29.3b
(*.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))))
29.3b
(cbrt.f64 (*.f64 (*.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))))
Compiler

Compiled 10472 to 6085 computations (41.9% saved)

regimes430.0ms (7%)

Accuracy

Total 5.1b remaining (86.6%)

Threshold costs 0b (0%)

Counts
59 → 2
Compiler

Compiled 8628 to 5880 computations (31.8% saved)

bsearch22.0ms (0.4%)

Steps
ItersRangePoint
4
18.245874148098437
29.85484737511736
18.608654561442776
Compiler

Compiled 4 to 3 computations (25% saved)

simplify6.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
04393
16489
28689
311489
414489
517789
619989
721289
821689
921489

end503.0ms (8.2%)

Compiler

Compiled 1015 to 693 computations (31.7% saved)

Profiling

Loading profile data...