Details

Time bar (total: 4.5s)

analyze25.0ms (0.6%)

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
11.0ms256×pre128true
8.0ms256×body128valid
Compiler

Compiled 47 to 35 computations (25.5% saved)

simplify10.0ms (0.2%)

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

prune3.0ms (0.1%)

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.8b
(+.f64 a (+.f64 b (+.f64 c d)))

rewrite29.0ms (0.6%)

Algorithm
rewrite-expression-head
Error
1.1b
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:

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

Compiled 442 to 155 computations (64.9% saved)

series43.0ms (1%)

Error
2.2b
Counts
2 → 42
Calls

2 calls:

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

Compiled 824 to 572 computations (30.6% saved)

simplify72.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

prune26.0ms (0.6%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New31940
Fresh000
Picked101
Done000
Total32941
Error
1.6b
Counts
41 → 9
Alt Table
StatusErrorProgram
2.8b
(*.f64 (+.f64 a (+.f64 (+.f64 c b) d)) 2)
3.7b
(*.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.8b
(*.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)
24.9b
(*.f64 (*.f64 (sqrt.f64 (+.f64 c (+.f64 (+.f64 d b) a))) (sqrt.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
3.3b
(*.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)
3.1b
(*.f64 (cbrt.f64 (pow.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 3)) 2)
24.8b
(*.f64 (exp.f64 (log.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
3.2b
(*.f64 (log.f64 (exp.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
3.0b
(*.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 2)
Compiler

Compiled 695 to 330 computations (52.5% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

2.8b
(+.f64 a (+.f64 (+.f64 c b) d))

rewrite17.0ms (0.4%)

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

1 calls:

6.0ms
(+.f64 a (+.f64 (+.f64 c b) d))
Compiler

Compiled 240 to 83 computations (65.4% saved)

series26.0ms (0.6%)

Error
1.6b
Counts
1 → 24
Calls

1 calls:

24.0ms
(+.f64 a (+.f64 (+.f64 c b) d))
Compiler

Compiled 465 to 326 computations (29.9% saved)

simplify57.0ms (1.3%)

Algorithm
egg-herbie
Rules
628×distribute-rgt-in_binary64
602×distribute-lft-in_binary64
595×associate--l+_binary64
535×associate--r+_binary64
484×distribute-neg-in_binary64
Counts
41 → 29
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
047422
1130401
2489401
32673401
44685401
55147401

prune16.0ms (0.3%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New29029
Fresh088
Picked011
Done000
Total29938
Error
1.6b
Counts
38 → 9
Alt Table
StatusErrorProgram
2.8b
(*.f64 (+.f64 a (+.f64 (+.f64 c b) d)) 2)
3.7b
(*.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.8b
(*.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)
24.9b
(*.f64 (*.f64 (sqrt.f64 (+.f64 c (+.f64 (+.f64 d b) a))) (sqrt.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
3.3b
(*.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)
3.1b
(*.f64 (cbrt.f64 (pow.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 3)) 2)
24.8b
(*.f64 (exp.f64 (log.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
3.2b
(*.f64 (log.f64 (exp.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
3.0b
(*.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 2)
Compiler

Compiled 560 to 270 computations (51.8% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

rewrite28.0ms (0.6%)

Algorithm
rewrite-expression-head
Error
0.0b
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 c (+.f64 (+.f64 d b) a))
5.0ms
(+.f64 (+.f64 d b) a)
Compiler

Compiled 442 to 155 computations (64.9% saved)

series43.0ms (0.9%)

Error
1.6b
Counts
2 → 42
Calls

2 calls:

23.0ms
(+.f64 c (+.f64 (+.f64 d b) a))
16.0ms
(+.f64 (+.f64 d b) a)
Compiler

Compiled 801 to 563 computations (29.7% saved)

simplify69.0ms (1.5%)

Algorithm
egg-herbie
Rules
723×distribute-rgt-in_binary64
681×distribute-lft-in_binary64
548×associate--l+_binary64
546×sub-neg_binary64
446×associate-*l*_binary64
Counts
74 → 52
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
061672
1176651
2625648
33120648
44566648
55138648

prune26.0ms (0.6%)

Pruning

13 alts after pruning (11 fresh and 2 done)

PrunedKeptTotal
New46652
Fresh257
Picked011
Done011
Total481361
Error
0.9b
Counts
61 → 13
Alt Table
StatusErrorProgram
3.3b
(*.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.7b
(*.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.2b
(*.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.8b
(*.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 (+.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.3b
(*.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)
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.1b
(*.f64 (cbrt.f64 (pow.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 3)) 2)
2.8b
(*.f64 (+.f64 a (+.f64 (+.f64 c b) d)) 2)
3.1b
(*.f64 (+.f64 c (/.f64 (-.f64 (*.f64 (+.f64 b d) (+.f64 b d)) (*.f64 a a)) (-.f64 (+.f64 b d) a))) 2)
3.2b
(*.f64 (+.f64 c (cbrt.f64 (pow.f64 (+.f64 a (+.f64 b d)) 3))) 2)
3.2b
(*.f64 (log.f64 (exp.f64 (+.f64 c (+.f64 (+.f64 d b) a)))) 2)
3.0b
(*.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 2)
Compiler

Compiled 965 to 452 computations (53.2% saved)

localize17.0ms (0.4%)

Local error

Found 4 expressions with local error:

0.3b
(+.f64 (*.f64 a a) (*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a)))
0.3b
(*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a))
0.6b
(+.f64 (pow.f64 (+.f64 b d) 3) (pow.f64 a 3))
0.7b
(pow.f64 (+.f64 b d) 3)

rewrite147.0ms (3.3%)

Algorithm
rewrite-expression-head
Error
0.1b
Rules
46×*-un-lft-identity_binary64
17×distribute-lft-out_binary64
17×add-sqr-sqrt_binary64
13×add-cube-cbrt_binary64
12×cancel-sign-sub-inv_binary64
Counts
4 → 109
Calls

4 calls:

12.0ms
(+.f64 (pow.f64 (+.f64 b d) 3) (pow.f64 a 3))
11.0ms
(*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a))
6.0ms
(+.f64 (*.f64 a a) (*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a)))
4.0ms
(pow.f64 (+.f64 b d) 3)
Compiler

Compiled 3319 to 1201 computations (63.8% saved)

series219.0ms (4.8%)

Error
0.5b
Counts
4 → 77
Calls

4 calls:

73.0ms
(+.f64 (*.f64 a a) (*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a)))
49.0ms
(+.f64 (pow.f64 (+.f64 b d) 3) (pow.f64 a 3))
42.0ms
(*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a))
22.0ms
(pow.f64 (+.f64 b d) 3)
Compiler

Compiled 5074 to 3236 computations (36.2% saved)

simplify126.0ms (2.8%)

Algorithm
egg-herbie
Rules
518×unswap-sqr_binary64
444×cancel-sign-sub-inv_binary64
300×exp-prod_binary64
284×associate-*l*_binary64
268×associate-*r*_binary64
Counts
186 → 159
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02223327
16683114
227733098
343933098
449933098

prune117.0ms (2.6%)

Pruning

21 alts after pruning (19 fresh and 2 done)

PrunedKeptTotal
New14613159
Fresh4610
Picked101
Done022
Total15121172
Error
0.1b
Counts
172 → 21
Alt Table
StatusErrorProgram
3.9b
(*.f64 (+.f64 c (/.f64 (+.f64 (pow.f64 (+.f64 b d) 3) (pow.f64 a 3)) (exp.f64 (log.f64 (+.f64 (pow.f64 (+.f64 d b) 2) (*.f64 a (-.f64 a (+.f64 d b)))))))) 2)
4.5b
(*.f64 (+.f64 c (/.f64 (+.f64 (pow.f64 (pow.f64 (+.f64 d b) (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (cbrt.f64 3)) (pow.f64 a 3)) (+.f64 (*.f64 a a) (*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a))))) 2)
3.2b
(*.f64 (+.f64 c (/.f64 (+.f64 (pow.f64 (+.f64 b d) 3) (pow.f64 a 3)) (+.f64 (*.f64 a a) (exp.f64 (log.f64 (*.f64 (+.f64 d b) (+.f64 d (-.f64 b a)))))))) 2)
2.8b
(*.f64 (+.f64 a (+.f64 (+.f64 c b) d)) 2)
3.3b
(*.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.4b
(*.f64 (+.f64 c (/.f64 (/.f64 (+.f64 (pow.f64 (pow.f64 (+.f64 d b) 3) 3) (pow.f64 (pow.f64 a 3) 3)) (+.f64 (pow.f64 (+.f64 d b) 6) (-.f64 (pow.f64 a 6) (*.f64 (pow.f64 a 3) (pow.f64 (+.f64 d b) 3))))) (+.f64 (*.f64 a a) (*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a))))) 2)
3.7b
(*.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)
4.1b
(*.f64 (+.f64 c (/.f64 (*.f64 (*.f64 (cbrt.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d b) 3))) (cbrt.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d b) 3)))) (cbrt.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d b) 3)))) (+.f64 (*.f64 a a) (*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a))))) 2)
3.8b
(*.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.0b
(*.f64 (+.f64 c (/.f64 (+.f64 (pow.f64 (+.f64 b d) 3) (pow.f64 a 3)) (+.f64 (*.f64 a a) (/.f64 (*.f64 (+.f64 d b) (-.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.1b
(*.f64 (+.f64 c (/.f64 (-.f64 (*.f64 (+.f64 b d) (+.f64 b d)) (*.f64 a a)) (-.f64 (+.f64 b d) a))) 2)
3.2b
(*.f64 (+.f64 c (/.f64 (cbrt.f64 (pow.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d b) 3)) 3)) (+.f64 (*.f64 a a) (*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a))))) 2)
3.5b
(*.f64 (+.f64 c (/.f64 (+.f64 (/.f64 (pow.f64 (+.f64 (pow.f64 d 3) (pow.f64 b 3)) 3) (pow.f64 (+.f64 (*.f64 b b) (*.f64 d (-.f64 d b))) 3)) (pow.f64 a 3)) (+.f64 (*.f64 a a) (*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a))))) 2)
3.3b
(*.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)
3.9b
(*.f64 (+.f64 c (/.f64 (+.f64 (pow.f64 (+.f64 b d) 3) (pow.f64 a 3)) (/.f64 (-.f64 (pow.f64 a 4) (*.f64 (pow.f64 (+.f64 d b) 2) (*.f64 (+.f64 d (-.f64 b a)) (+.f64 d (-.f64 b a))))) (-.f64 (*.f64 a a) (*.f64 (+.f64 d b) (+.f64 d (-.f64 b a))))))) 2)
3.2b
(*.f64 (+.f64 c (cbrt.f64 (pow.f64 (+.f64 a (+.f64 b d)) 3))) 2)
4.1b
(*.f64 (+.f64 c (/.f64 (+.f64 (pow.f64 (+.f64 b d) 3) (pow.f64 a 3)) (*.f64 (*.f64 (cbrt.f64 (+.f64 (pow.f64 (+.f64 d b) 2) (*.f64 a (-.f64 a (+.f64 d b))))) (cbrt.f64 (+.f64 (pow.f64 (+.f64 d b) 2) (*.f64 a (-.f64 a (+.f64 d b)))))) (cbrt.f64 (+.f64 (pow.f64 (+.f64 d b) 2) (*.f64 a (-.f64 a (+.f64 d b)))))))) 2)
4.3b
(*.f64 (+.f64 c (/.f64 (+.f64 (exp.f64 (*.f64 3 (log.f64 (+.f64 d b)))) (pow.f64 a 3)) (+.f64 (*.f64 a a) (*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a))))) 2)
3.0b
(*.f64 (+.f64 c (+.f64 (+.f64 d b) a)) 2)
3.3b
(*.f64 (+.f64 c (/.f64 (+.f64 (pow.f64 d 3) (+.f64 (*.f64 3 (+.f64 (*.f64 (*.f64 d d) b) (*.f64 d (*.f64 b b)))) (+.f64 (pow.f64 b 3) (pow.f64 a 3)))) (+.f64 (*.f64 a a) (*.f64 (+.f64 b d) (-.f64 (+.f64 b d) a))))) 2)
3.2b
(*.f64 (+.f64 c (/.f64 (+.f64 (pow.f64 (+.f64 b d) 3) (pow.f64 a 3)) (*.f64 (sqrt.f64 (+.f64 (pow.f64 (+.f64 d b) 2) (*.f64 a (-.f64 a (+.f64 d b))))) (sqrt.f64 (+.f64 (pow.f64 (+.f64 d b) 2) (*.f64 a (-.f64 a (+.f64 d b)))))))) 2)
Compiler

Compiled 3949 to 1779 computations (55% saved)

regimes2.0s (44.9%)

Accuracy

Total -0.1b remaining (-66.7%)

Threshold costs -0.1b (-66.7%)

Compiler

Compiled 49090 to 28686 computations (41.6% saved)

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01421
11821
21821

end16.0ms (0.3%)

Remove

(sort a b c d)

Compiler

Compiled 51 to 39 computations (23.5% saved)

sample1.3s (28.6%)

Algorithm
intervals
Results
340.0ms8000×pre128true
255.0ms8000×body128valid
Compiler

Compiled 832 to 492 computations (40.9% saved)

Profiling

Loading profile data...