Details

Time bar (total: 13.7s)

analyze2.0ms (0%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
99.9%0%0.1%1
Compiler

Compiled 34 to 22 computations (35.3% saved)

sample1.0s (7.4%)

Results
960.0ms8256×body128valid
Compiler

Compiled 101 to 65 computations (35.6% saved)

simplify60.0ms (0.4%)

Algorithm
egg-herbie
Rules
725×fma-def_binary64
669×unsub-neg_binary64
596×cancel-sign-sub-inv_binary64
340×+-commutative_binary64
277×fma-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
02042
16340
217036
354236
4186732
5328132
6488132
7495832

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
13.5b
Counts
3 → 1
Alt Table
StatusErrorProgram
13.5b
(+.f64 (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 a -3 1))) (pow.f64 (hypot.f64 a b) 4)) -1)
Compiler

Compiled 106 to 66 computations (37.7% saved)

localize14.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 a -3 1)
3.2b
(*.f64 (*.f64 b b) (fma.f64 a -3 1))
4.5b
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 a -3 1)))
9.0b
(fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 a -3 1))) (pow.f64 (hypot.f64 a b) 4))

series68.0ms (0.5%)

Counts
4 → 84
Calls

4 calls:

41.0ms
(fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 a -3 1))) (pow.f64 (hypot.f64 a b) 4))
13.0ms
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 a -3 1)))
12.0ms
(*.f64 (*.f64 b b) (fma.f64 a -3 1))
2.0ms
(fma.f64 a -3 1)

rewrite8.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
add-cbrt-cube_binary64
add-exp-log_binary64
pow1_binary64
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
Counts
4 → 53
Calls

4 calls:

5.0ms
(*.f64 (*.f64 b b) (fma.f64 a -3 1))
0.0ms
(fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 a -3 1))) (pow.f64 (hypot.f64 a b) 4))
0.0ms
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 a -3 1)))
0.0ms
(fma.f64 a -3 1)

simplify105.0ms (0.8%)

Algorithm
egg-herbie
Rules
786×fma-def_binary64
528×fma-neg_binary64
415×associate-+l+_binary64
313×cancel-sign-sub-inv_binary64
229×associate-+r+_binary64
Counts
137 → 125
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01252832
13182352
29692192
331842169
448182143
549832143

prune210.0ms (1.5%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New1241125
Fresh000
Picked011
Done000
Total1242126
Error
0.0b
Counts
126 → 2
Alt Table
StatusErrorProgram
14.2b
(+.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) -1)
13.5b
(+.f64 (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 a -3 1))) (pow.f64 (hypot.f64 a b) 4)) -1)
Compiler

Compiled 3472 to 1988 computations (42.7% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) -1)
0.0b
(*.f64 2 (*.f64 b b))
0.0b
(*.f64 a (+.f64 4 a))
8.6b
(*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))

series59.0ms (0.4%)

Counts
4 → 72
Calls

4 calls:

31.0ms
(+.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) -1)
24.0ms
(*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))
2.0ms
(*.f64 2 (*.f64 b b))
2.0ms
(*.f64 a (+.f64 4 a))

rewrite40.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
16×add-cbrt-cube_binary64
16×add-exp-log_binary64
16×pow1_binary64
12×associate-*r/_binary64
12×add-sqr-sqrt_binary64
Counts
4 → 91
Calls

4 calls:

12.0ms
(*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))
11.0ms
(+.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) -1)
4.0ms
(*.f64 2 (*.f64 b b))
4.0ms
(*.f64 a (+.f64 4 a))

simplify80.0ms (0.6%)

Algorithm
egg-herbie
Rules
436×associate-+r+_binary64
424×associate-+l+_binary64
363×associate-*l*_binary64
290×associate-*r*_binary64
215×fma-neg_binary64
Counts
163 → 164
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01993291
16282667
224802630
351832630

prune173.0ms (1.3%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1622164
Fresh000
Picked101
Done011
Total1633166
Error
0b
Counts
166 → 3
Alt Table
StatusErrorProgram
19.0b
(+.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 a a) (*.f64 a a)) (*.f64 a a)) (*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))))) -1)
46.1b
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))) (*.f64 -1 -1)) (-.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) -1))
13.5b
(+.f64 (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 a -3 1))) (pow.f64 (hypot.f64 a b) 4)) -1)
Compiler

Compiled 4861 to 3015 computations (38% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))
0.2b
(*.f64 (*.f64 a a) (*.f64 a a))
13.2b
(*.f64 (*.f64 (*.f64 (*.f64 a a) (*.f64 a a)) (*.f64 a a)) (*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))))
14.7b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 a a) (*.f64 a a)) (*.f64 a a)) (*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))))

series152.0ms (1.1%)

Counts
4 → 84
Calls

4 calls:

93.0ms
(*.f64 (*.f64 (*.f64 (*.f64 a a) (*.f64 a a)) (*.f64 a a)) (*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))))
32.0ms
(cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 a a) (*.f64 a a)) (*.f64 a a)) (*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))))
24.0ms
(*.f64 (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))
3.0ms
(*.f64 (*.f64 a a) (*.f64 a a))

rewrite1.5s (10.9%)

Algorithm
rewrite-expression-head
Rules
2018×associate-*r/_binary64
1540×flip-+_binary64
1540×flip3-+_binary64
1232×frac-add_binary64
1217×pow1_binary64
Counts
4 → 1116
Calls

4 calls:

189.0ms
(cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 a a) (*.f64 a a)) (*.f64 a a)) (*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))))
151.0ms
(*.f64 (*.f64 (*.f64 (*.f64 a a) (*.f64 a a)) (*.f64 a a)) (*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))))
15.0ms
(*.f64 (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))
7.0ms
(*.f64 (*.f64 a a) (*.f64 a a))

simplify1.7s (12.6%)

Algorithm
egg-herbie
Rules
996×associate-*l*_binary64
396×distribute-lft-in_binary64
396×distribute-rgt-in_binary64
119×fma-def_binary64
20×sqr-pow_binary64
Counts
1200 → 1732
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02018137901
15869137901

prune5.5s (39.7%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New173201732
Fresh011
Picked011
Done011
Total173231735
Error
0b
Counts
1735 → 3
Alt Table
StatusErrorProgram
19.0b
(+.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 a a) (*.f64 a a)) (*.f64 a a)) (*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))))) -1)
46.1b
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))) (*.f64 -1 -1)) (-.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) -1))
13.5b
(+.f64 (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 a -3 1))) (pow.f64 (hypot.f64 a b) 4)) -1)
Compiler

Compiled 259985 to 168424 computations (35.2% saved)

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 a (+.f64 4 a))
0.1b
(*.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))))
8.6b
(*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))
27.4b
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))) (*.f64 -1 -1)) (-.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) -1))

series291.0ms (2.1%)

Counts
2 → 48
Calls

2 calls:

251.0ms
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))) (*.f64 -1 -1)) (-.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) -1))
40.0ms
(*.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))))

rewrite113.0ms (0.8%)

Algorithm
rewrite-expression-head
Rules
146×associate-*r/_binary64
116×pow1_binary64
70×flip-+_binary64
70×flip3-+_binary64
66×pow-prod-down_binary64
Counts
2 → 152
Calls

2 calls:

37.0ms
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))) (*.f64 -1 -1)) (-.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) -1))
20.0ms
(*.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))))

simplify215.0ms (1.6%)

Algorithm
egg-herbie
Rules
644×distribute-rgt-in_binary64
631×distribute-lft-in_binary64
587×fma-def_binary64
175×times-frac_binary64
152×*-commutative_binary64
Counts
200 → 241
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
055916384
1194414659
2609814659

prune799.0ms (5.8%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New5530553
Fresh000
Picked011
Done022
Total5533556
Error
0b
Counts
556 → 3
Alt Table
StatusErrorProgram
19.0b
(+.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 a a) (*.f64 a a)) (*.f64 a a)) (*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))))) -1)
46.1b
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b)))))) (*.f64 -1 -1)) (-.f64 (*.f64 (*.f64 a a) (+.f64 (*.f64 a (+.f64 4 a)) (+.f64 4 (*.f64 2 (*.f64 b b))))) -1))
13.5b
(+.f64 (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 a -3 1))) (pow.f64 (hypot.f64 a b) 4)) -1)
Compiler

Compiled 47765 to 30022 computations (37.1% saved)

regimes1.5s (11%)

Accuracy

Total 0.5b remaining (98.6%)

Threshold costs 0.5b (98.6%)

Counts
222 → 1
Compiler

Compiled 46039 to 31903 computations (30.7% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01017
11117
21117

end85.0ms (0.6%)

Compiler

Compiled 172 to 111 computations (35.5% saved)

Profiling

Loading profile data...