Details

Time bar (total: 4.2s)

analyze22.0ms (0.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%0%100%0
0%0%100%1
Compiler

Compiled 30 to 22 computations (26.7% saved)

sample43.0ms (1%)

Algorithm
intervals
Results
10.0ms256×body128valid
10.0ms256×pre128true
Compiler

Compiled 47 to 35 computations (25.5% saved)

simplify11.0ms (0.3%)

Algorithm
egg-herbie
Rules
49×distribute-rgt-in_binary64
46×distribute-lft-in_binary64
40×associate-+l+_binary64
32×associate-+r+_binary64
17×+-commutative_binary64
Counts
1 → 0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01013
11813
25213
311813
415713
514913
613613

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done000
Total011
Error
3.8b
Counts
1 → 1
Alt Table
StatusErrorProgram
3.8b
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) 2)
Compiler

Compiled 26 to 18 computations (30.8% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.4b
(+.f64 b (+.f64 c d))
2.9b
(+.f64 a (+.f64 b (+.f64 c d)))

rewrite26.0ms (0.6%)

Algorithm
rewrite-expression-head
Error
1.2b
Rules
16×*-un-lft-identity_binary64
16×add-log-exp_binary64
distribute-lft-out_binary64
sum-log_binary64
+-commutative_binary64
Counts
2 → 32
Calls

2 calls:

7.0ms
(+.f64 a (+.f64 b (+.f64 c d)))
4.0ms
(+.f64 b (+.f64 c d))
Compiler

Compiled 442 to 155 computations (64.9% saved)

series41.0ms (1%)

Error
2.1b
Counts
2 → 42
Calls

2 calls:

21.0ms
(+.f64 a (+.f64 b (+.f64 c d)))
15.0ms
(+.f64 b (+.f64 c d))
Compiler

Compiled 824 to 572 computations (30.6% saved)

simplify67.0ms (1.6%)

Algorithm
egg-herbie
Rules
791×associate--l+_binary64
721×distribute-rgt-in_binary64
666×distribute-lft-in_binary64
390×associate-*l*_binary64
248×associate-+r+_binary64
Counts
74 → 40
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
063666
1188645
2652645
33188645
44920645
54896645

prune24.0ms (0.6%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New31940
Fresh000
Picked101
Done000
Total32941
Error
1.7b
Counts
41 → 9
Alt Table
StatusErrorProgram
3.1b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (+.f64 c (+.f64 (+.f64 d b) a))) (cbrt.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) (cbrt.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
2.9b
(*.f64 (cbrt.f64 (pow.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 3)) 2)
22.5b
(*.f64 (exp.f64 (log.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
3.0b
(*.f64 (log.f64 (exp.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
2.7b
(*.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 2)
2.9b
(*.f64 (+.f64 a (+.f64 (+.f64 c b) d)) 2)
3.6b
(*.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 (+.f64 c (+.f64 d b)) (+.f64 c (+.f64 d b)))) (-.f64 a (+.f64 c (+.f64 d b)))) 2)
3.6b
(*.f64 (/.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 c (+.f64 d b)) 3)) (+.f64 (*.f64 a a) (*.f64 (+.f64 c (+.f64 d b)) (-.f64 (+.f64 c (+.f64 d b)) a)))) 2)
22.5b
(*.f64 (*.f64 (sqrt.f64 (+.f64 c (+.f64 (+.f64 d b) a))) (sqrt.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
Compiler

Compiled 695 to 330 computations (52.5% saved)

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

0.9b
(+.f64 (+.f64 d b) a)

rewrite15.0ms (0.4%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
*-un-lft-identity_binary64
add-log-exp_binary64
distribute-lft-out_binary64
sum-log_binary64
+-commutative_binary64
Counts
1 → 15
Calls

1 calls:

4.0ms
(+.f64 (+.f64 d b) a)
Compiler

Compiled 206 to 87 computations (57.8% saved)

series16.0ms (0.4%)

Error
1.7b
Counts
1 → 18
Calls

1 calls:

14.0ms
(+.f64 (+.f64 d b) a)
Compiler

Compiled 370 to 257 computations (30.5% saved)

simplify71.0ms (1.7%)

Algorithm
egg-herbie
Rules
712×unswap-sqr_binary64
520×associate-*l*_binary64
435×associate--r+_binary64
337×associate--l+_binary64
289×+-commutative_binary64
Counts
33 → 22
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
035265
193250
2275247
3987247
41468247
53380247
64401247
75895247

prune18.0ms (0.4%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New18422
Fresh088
Picked011
Done000
Total181331
Error
0.9b
Counts
31 → 13
Alt Table
StatusErrorProgram
2.9b
(*.f64 (+.f64 c (/.f64 (-.f64 (*.f64 (+.f64 b d) (+.f64 b d)) (*.f64 a a)) (-.f64 (+.f64 b d) a))) 2)
22.5b
(*.f64 (exp.f64 (log.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
3.2b
(*.f64 (+.f64 c (/.f64 (+.f64 (pow.f64 (+.f64 b d) 3) (pow.f64 a 3)) (+.f64 (*.f64 a a) (*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a))))) 2)
3.0b
(*.f64 (log.f64 (exp.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
4.0b
(*.f64 (+.f64 c (*.f64 (*.f64 (cbrt.f64 (+.f64 a (+.f64 b d))) (cbrt.f64 (+.f64 a (+.f64 b d)))) (cbrt.f64 (+.f64 a (+.f64 b d))))) 2)
2.7b
(*.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 2)
3.1b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (+.f64 c (+.f64 (+.f64 d b) a))) (cbrt.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) (cbrt.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
2.9b
(*.f64 (cbrt.f64 (pow.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 3)) 2)
3.0b
(*.f64 (+.f64 c (cbrt.f64 (pow.f64 (+.f64 a (+.f64 b d)) 3))) 2)
2.9b
(*.f64 (+.f64 a (+.f64 (+.f64 c b) d)) 2)
3.6b
(*.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 (+.f64 c (+.f64 d b)) (+.f64 c (+.f64 d b)))) (-.f64 a (+.f64 c (+.f64 d b)))) 2)
3.6b
(*.f64 (/.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 c (+.f64 d b)) 3)) (+.f64 (*.f64 a a) (*.f64 (+.f64 c (+.f64 d b)) (-.f64 (+.f64 c (+.f64 d b)) a)))) 2)
22.5b
(*.f64 (*.f64 (sqrt.f64 (+.f64 c (+.f64 (+.f64 d b) a))) (sqrt.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
Compiler

Compiled 732 to 381 computations (48% saved)

localize9.0ms (0.2%)

Local error

Found 2 expressions with local error:

0.6b
(cbrt.f64 (pow.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 3))
0.9b
(+.f64 (+.f64 d b) a)

rewrite33.0ms (0.8%)

Algorithm
rewrite-expression-head
Error
0.2b
Rules
28×*-un-lft-identity_binary64
18×cbrt-prod_binary64
15×distribute-lft-out_binary64
add-log-exp_binary64
cube-prod_binary64
Counts
2 → 44
Calls

2 calls:

6.0ms
(cbrt.f64 (pow.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 3))
5.0ms
(+.f64 (+.f64 d b) a)
Compiler

Compiled 727 to 319 computations (56.1% saved)

series45.0ms (1.1%)

Error
0.9b
Counts
2 → 42
Calls

2 calls:

21.0ms
(cbrt.f64 (pow.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 3))
19.0ms
(+.f64 (+.f64 d b) a)
Compiler

Compiled 933 to 673 computations (27.9% saved)

simplify82.0ms (2%)

Algorithm
egg-herbie
Rules
908×distribute-rgt-in_binary64
863×distribute-lft-in_binary64
368×associate-*l*_binary64
294×associate-*r*_binary64
105×unsub-neg_binary64
Counts
86 → 63
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
089951
1230909
2829906
34783906
45000906
54973906

prune31.0ms (0.7%)

Pruning

16 alts after pruning (15 fresh and 1 done)

PrunedKeptTotal
New57663
Fresh2911
Picked011
Done101
Total601676
Error
0.9b
Counts
76 → 16
Alt Table
StatusErrorProgram
2.9b
(*.f64 (+.f64 c (/.f64 (-.f64 (*.f64 (+.f64 b d) (+.f64 b d)) (*.f64 a a)) (-.f64 (+.f64 b d) a))) 2)
22.5b
(*.f64 (exp.f64 (log.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
3.2b
(*.f64 (+.f64 c (/.f64 (+.f64 (pow.f64 (+.f64 b d) 3) (pow.f64 a 3)) (+.f64 (*.f64 a a) (*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a))))) 2)
3.0b
(*.f64 (log.f64 (exp.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
3.6b
(*.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 (+.f64 c (+.f64 d b)) (+.f64 c (+.f64 d b)))) (-.f64 a (+.f64 c (+.f64 d b)))) 2)
3.1b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 a (+.f64 b d)) c)) 6)) (cbrt.f64 (+.f64 (+.f64 a (+.f64 b d)) c))) 2)
3.6b
(*.f64 (/.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 c (+.f64 d b)) 3)) (+.f64 (*.f64 a a) (*.f64 (+.f64 c (+.f64 d b)) (-.f64 (+.f64 c (+.f64 d b)) a)))) 2)
3.1b
(*.f64 (cbrt.f64 (pow.f64 (+.f64 c (/.f64 (-.f64 (*.f64 (+.f64 b d) (+.f64 b d)) (*.f64 a a)) (-.f64 (+.f64 b d) a))) 3)) 2)
4.0b
(*.f64 (cbrt.f64 (pow.f64 (+.f64 c (*.f64 (*.f64 (cbrt.f64 (+.f64 a (+.f64 b d))) (cbrt.f64 (+.f64 a (+.f64 b d)))) (cbrt.f64 (+.f64 a (+.f64 b d))))) 3)) 2)
2.9b
(*.f64 (cbrt.f64 (pow.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 3)) 2)
4.0b
(*.f64 (+.f64 c (*.f64 (*.f64 (cbrt.f64 (+.f64 a (+.f64 b d))) (cbrt.f64 (+.f64 a (+.f64 b d)))) (cbrt.f64 (+.f64 a (+.f64 b d))))) 2)
3.0b
(*.f64 (+.f64 c (cbrt.f64 (pow.f64 (+.f64 a (+.f64 b d)) 3))) 2)
2.9b
(*.f64 (+.f64 a (+.f64 (+.f64 c b) d)) 2)
3.1b
(*.f64 (/.f64 (-.f64 (*.f64 c c) (*.f64 (+.f64 a (+.f64 b d)) (+.f64 a (+.f64 b d)))) (-.f64 c (+.f64 a (+.f64 b d)))) 2)
3.1b
(*.f64 (/.f64 (+.f64 (pow.f64 (+.f64 a (+.f64 b d)) 3) (pow.f64 c 3)) (+.f64 (*.f64 c c) (*.f64 (+.f64 a (+.f64 b d)) (-.f64 (+.f64 a (+.f64 b d)) c)))) 2)
3.3b
(*.f64 (cbrt.f64 (pow.f64 (+.f64 c (/.f64 (+.f64 (pow.f64 (+.f64 b d) 3) (pow.f64 a 3)) (+.f64 (*.f64 a a) (*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a))))) 3)) 2)
Compiler

Compiled 1193 to 608 computations (49% saved)

localize11.0ms (0.3%)

Local error

Found 4 expressions with local error:

0.2b
(-.f64 (+.f64 b d) a)
0.3b
(/.f64 (-.f64 (*.f64 (+.f64 b d) (+.f64 b d)) (*.f64 a a)) (-.f64 (+.f64 b d) a))
0.6b
(-.f64 (*.f64 (+.f64 b d) (+.f64 b d)) (*.f64 a a))
0.6b
(*.f64 (+.f64 b d) (+.f64 b d))

rewrite125.0ms (3%)

Algorithm
rewrite-expression-head
Error
0.1b
Rules
65×*-un-lft-identity_binary64
35×add-sqr-sqrt_binary64
24×times-frac_binary64
21×add-cube-cbrt_binary64
14×difference-of-squares_binary64
Counts
4 → 125
Calls

4 calls:

13.0ms
(/.f64 (-.f64 (*.f64 (+.f64 b d) (+.f64 b d)) (*.f64 a a)) (-.f64 (+.f64 b d) a))
8.0ms
(-.f64 (*.f64 (+.f64 b d) (+.f64 b d)) (*.f64 a a))
7.0ms
(*.f64 (+.f64 b d) (+.f64 b d))
6.0ms
(-.f64 (+.f64 b d) a)
Compiler

Compiled 3370 to 742 computations (78% saved)

series169.0ms (4.1%)

Error
0.3b
Counts
4 → 72
Calls

4 calls:

68.0ms
(/.f64 (-.f64 (*.f64 (+.f64 b d) (+.f64 b d)) (*.f64 a a)) (-.f64 (+.f64 b d) a))
34.0ms
(-.f64 (*.f64 (+.f64 b d) (+.f64 b d)) (*.f64 a a))
19.0ms
(-.f64 (+.f64 b d) a)
15.0ms
(*.f64 (+.f64 b d) (+.f64 b d))
Compiler

Compiled 4548 to 2744 computations (39.7% saved)

simplify160.0ms (3.8%)

Algorithm
egg-herbie
Rules
353×div-sub_binary64
256×associate-+r+_binary64
236×associate-/l*_binary64
225×sub-neg_binary64
224×times-frac_binary64
Counts
197 → 165
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03474696
19904297
241684285
347334273
454224273

prune101.0ms (2.4%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New15114165
Fresh11314
Picked101
Done101
Total16417181
Error
0.0b
Counts
181 → 17
Alt Table
StatusErrorProgram
3.1b
(*.f64 (+.f64 c (/.f64 (-.f64 (*.f64 (*.f64 (+.f64 b d) (+.f64 b d)) (*.f64 (+.f64 b d) (+.f64 b d))) (*.f64 (*.f64 a a) (*.f64 a a))) (*.f64 (+.f64 d (-.f64 b a)) (+.f64 (*.f64 a a) (pow.f64 (+.f64 d b) 2))))) 2)
2.7b
(*.f64 (+.f64 c (/.f64 (+.f64 (*.f64 b (+.f64 b d)) (-.f64 (*.f64 d (+.f64 d b)) (*.f64 a a))) (-.f64 (+.f64 b d) a))) 2)
3.4b
(*.f64 (+.f64 c (+.f64 (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 b 3)) (pow.f64 (-.f64 d a) 4)) (+.f64 (/.f64 (*.f64 (*.f64 d d) (*.f64 b b)) (pow.f64 (-.f64 d a) 3)) (+.f64 (/.f64 (*.f64 b (*.f64 a a)) (pow.f64 (-.f64 d a) 2)) (+.f64 (/.f64 (*.f64 d d) (-.f64 d a)) (*.f64 2 (+.f64 (/.f64 (*.f64 d b) (-.f64 d a)) (/.f64 d (pow.f64 (/.f64 (-.f64 d a) b) 3)))))))) (-.f64 (/.f64 (*.f64 b b) (-.f64 d a)) (+.f64 (*.f64 2 (/.f64 (*.f64 d (*.f64 b b)) (pow.f64 (-.f64 d a) 2))) (+.f64 (/.f64 (*.f64 b (*.f64 b (*.f64 a a))) (pow.f64 (-.f64 d a) 3)) (+.f64 (/.f64 (*.f64 d (*.f64 d (pow.f64 b 3))) (pow.f64 (-.f64 d a) 4)) (+.f64 (/.f64 (*.f64 d (*.f64 d b)) (pow.f64 (-.f64 d a) 2)) (+.f64 (/.f64 (*.f64 a a) (-.f64 d a)) (/.f64 (pow.f64 b 3) (pow.f64 (-.f64 d a) 2)))))))))) 2)
4.0b
(*.f64 (+.f64 c (*.f64 (*.f64 (cbrt.f64 (+.f64 a (+.f64 b d))) (cbrt.f64 (+.f64 a (+.f64 b d)))) (cbrt.f64 (+.f64 a (+.f64 b d))))) 2)
3.0b
(*.f64 (+.f64 c (/.f64 (/.f64 (-.f64 (pow.f64 (+.f64 d b) 4) (pow.f64 a 4)) (+.f64 (*.f64 a a) (pow.f64 (+.f64 d b) 2))) (-.f64 (+.f64 b d) a))) 2)
3.9b
(*.f64 (+.f64 c (/.f64 (*.f64 (*.f64 (cbrt.f64 (-.f64 (pow.f64 (+.f64 d b) 2) (*.f64 a a))) (cbrt.f64 (-.f64 (pow.f64 (+.f64 d b) 2) (*.f64 a a)))) (cbrt.f64 (-.f64 (pow.f64 (+.f64 d b) 2) (*.f64 a a)))) (-.f64 (+.f64 b d) a))) 2)
2.8b
(*.f64 (+.f64 c (-.f64 (+.f64 (/.f64 (*.f64 d d) (-.f64 d a)) (+.f64 (*.f64 2 (/.f64 (*.f64 d b) (-.f64 d a))) (/.f64 (*.f64 b (*.f64 a a)) (pow.f64 (-.f64 d a) 2)))) (+.f64 (/.f64 (*.f64 d (*.f64 d b)) (pow.f64 (-.f64 d a) 2)) (/.f64 (*.f64 a a) (-.f64 d a))))) 2)
2.9b
(*.f64 (+.f64 a (+.f64 (+.f64 c b) d)) 2)
2.5b
(*.f64 (+.f64 c (/.f64 (+.f64 (*.f64 b (+.f64 (*.f64 d 2) b)) (-.f64 (*.f64 d d) (*.f64 a a))) (-.f64 (+.f64 b d) a))) 2)
4.8b
(*.f64 (+.f64 c (+.f64 (/.f64 (*.f64 b b) (+.f64 d b)) (+.f64 (/.f64 (*.f64 (*.f64 d d) a) (pow.f64 (+.f64 d b) 2)) (+.f64 (+.f64 (/.f64 (*.f64 d d) (+.f64 d b)) (/.f64 (*.f64 (*.f64 b b) a) (pow.f64 (+.f64 d b) 2))) (*.f64 2 (+.f64 (/.f64 (*.f64 (*.f64 d b) a) (pow.f64 (+.f64 d b) 2)) (/.f64 (*.f64 d b) (+.f64 d b)))))))) 2)
3.1b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 a (+.f64 b d)) c)) 6)) (cbrt.f64 (+.f64 (+.f64 a (+.f64 b d)) c))) 2)
2.7b
(*.f64 (+.f64 c (*.f64 1 (+.f64 (+.f64 b d) a))) 2)
3.2b
(*.f64 (+.f64 c (*.f64 (/.f64 (-.f64 (pow.f64 (+.f64 d b) 2) (*.f64 a a)) (-.f64 (pow.f64 (+.f64 d b) 3) (pow.f64 a 3))) (+.f64 (*.f64 (+.f64 b d) (+.f64 b d)) (+.f64 (*.f64 a a) (*.f64 (+.f64 b d) a))))) 2)
3.0b
(*.f64 (+.f64 c (/.f64 (-.f64 (pow.f64 (*.f64 (+.f64 b d) (+.f64 b d)) 3) (pow.f64 (*.f64 a a) 3)) (*.f64 (+.f64 d (-.f64 b a)) (+.f64 (pow.f64 (+.f64 d b) 4) (+.f64 (pow.f64 a 4) (*.f64 (*.f64 a a) (pow.f64 (+.f64 d b) 2))))))) 2)
4.1b
(*.f64 (+.f64 c (*.f64 (/.f64 (+.f64 a (+.f64 d b)) (*.f64 (cbrt.f64 (+.f64 d (-.f64 b a))) (cbrt.f64 (+.f64 d (-.f64 b a))))) (/.f64 (+.f64 d (-.f64 b a)) (cbrt.f64 (+.f64 d (-.f64 b a)))))) 2)
3.0b
(*.f64 (+.f64 c (/.f64 (-.f64 (*.f64 (+.f64 b d) (+.f64 b d)) (*.f64 a a)) (exp.f64 (log.f64 (+.f64 d (-.f64 b a)))))) 2)
4.0b
(*.f64 (+.f64 c (*.f64 (/.f64 1 (*.f64 (cbrt.f64 (+.f64 d (-.f64 b a))) (cbrt.f64 (+.f64 d (-.f64 b a))))) (/.f64 (-.f64 (pow.f64 (+.f64 d b) 2) (*.f64 a a)) (cbrt.f64 (+.f64 d (-.f64 b a)))))) 2)
Compiler

Compiled 4218 to 1595 computations (62.2% saved)

regimes1.9s (44.4%)

Accuracy

Total -0.1b remaining (-49.5%)

Threshold costs -0.1b (-49.5%)

Compiler

Compiled 47467 to 24934 computations (47.5% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01421
11821
21821

end12.0ms (0.3%)

Remove

(sort a b c d)

Compiler

Compiled 51 to 39 computations (23.5% saved)

sample1.2s (28.1%)

Algorithm
intervals
Results
302.0ms8000×pre128true
278.0ms8000×body128valid
Compiler

Compiled 799 to 427 computations (46.6% saved)

Profiling

Loading profile data...