Details

Time bar (total: 2.3s)

analyze16.0ms (0.7%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
25%74.9%0.1%6
93.7%6.2%0.1%7
96.8%3.1%0.1%8
99.5%0.4%0.1%9
99.7%0.2%0.1%10
99.8%0.1%0.1%11
99.9%0%0.1%12
99.9%0%0.1%13
99.9%0%0.1%14
Compiler

Compiled 22 to 13 computations (40.9% saved)

sample1.1s (46.9%)

Results
932.0ms8256×body128valid
Compiler

Compiled 65 to 38 computations (41.5% saved)

simplify113.0ms (4.9%)

Algorithm
egg-herbie
Rules
620×fma-def_binary64
549×sub-neg_binary64
460×distribute-neg-frac_binary64
455×cancel-sign-sub-inv_binary64
430×times-frac_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01026
12324
25224
310524
419924
533024
644224
760324
890124
9230424
10338624
11395624
12445424
13473524
14523824

prune3.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
34.5b
Counts
3 → 1
Alt Table
StatusErrorProgram
34.5b
(/.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)) (fma.f64 x x (*.f64 y (*.f64 y 4))))
Compiler

Compiled 76 to 42 computations (44.7% saved)

localize10.0ms (0.4%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 x x (*.f64 y (*.f64 y 4)))
5.4b
(fma.f64 -4 (*.f64 y y) (*.f64 x x))
33.9b
(/.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)) (fma.f64 x x (*.f64 y (*.f64 y 4))))

series30.0ms (1.3%)

Counts
3 → 72
Calls

3 calls:

15.0ms
(/.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)) (fma.f64 x x (*.f64 y (*.f64 y 4))))
7.0ms
(fma.f64 x x (*.f64 y (*.f64 y 4)))
7.0ms
(fma.f64 -4 (*.f64 y y) (*.f64 x x))

rewrite7.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
11×*-un-lft-identity_binary64
11×add-sqr-sqrt_binary64
11×add-cube-cbrt_binary64
times-frac_binary64
add-cbrt-cube_binary64
Counts
3 → 49
Calls

3 calls:

4.0ms
(/.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)) (fma.f64 x x (*.f64 y (*.f64 y 4))))
0.0ms
(fma.f64 -4 (*.f64 y y) (*.f64 x x))
0.0ms
(fma.f64 x x (*.f64 y (*.f64 y 4)))

simplify93.0ms (4.1%)

Algorithm
egg-herbie
Rules
639×fma-def_binary64
500×div-sub_binary64
426×fma-neg_binary64
356×cancel-sign-sub-inv_binary64
223×distribute-rgt-in_binary64
Counts
121 → 111
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01082496
12212296
25812284
320832266
444902230
555082230

prune68.0ms (3%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1074111
Fresh000
Picked011
Done000
Total1075112
Error
0.6b
Counts
112 → 5
Alt Table
StatusErrorProgram
34.5b
(/.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)) (fma.f64 x x (*.f64 y (*.f64 y 4))))
31.0b
-1
35.2b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x))) (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)))) (sqrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 4))))) (/.f64 (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x))) (sqrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 4))))))
36.3b
(fma.f64 1/2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
33.0b
1
Compiler

Compiled 2999 to 1445 computations (51.8% saved)

localize0.0ms (0%)

prune4.0ms (0.2%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New000
Fresh033
Picked011
Done011
Total055
Error
0.6b
Counts
5 → 5
Alt Table
StatusErrorProgram
34.5b
(/.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)) (fma.f64 x x (*.f64 y (*.f64 y 4))))
31.0b
-1
35.2b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x))) (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)))) (sqrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 4))))) (/.f64 (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x))) (sqrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 4))))))
36.3b
(fma.f64 1/2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
33.0b
1
Compiler

Compiled 154 to 90 computations (41.6% saved)

localize0.0ms (0%)

prune4.0ms (0.2%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New000
Fresh022
Picked011
Done022
Total055
Error
0.6b
Counts
5 → 5
Alt Table
StatusErrorProgram
34.5b
(/.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)) (fma.f64 x x (*.f64 y (*.f64 y 4))))
31.0b
-1
35.2b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x))) (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)))) (sqrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 4))))) (/.f64 (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x))) (sqrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 4))))))
36.3b
(fma.f64 1/2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
33.0b
1
Compiler

Compiled 151 to 87 computations (42.4% saved)

localize17.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
5.4b
(fma.f64 -4 (*.f64 y y) (*.f64 x x))
18.3b
(/.f64 (*.f64 (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x))) (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)))) (sqrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 4)))))
32.0b
(sqrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 4))))
33.2b
(cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)))

series89.0ms (3.9%)

Counts
3 → 72
Calls

3 calls:

50.0ms
(/.f64 (*.f64 (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x))) (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)))) (sqrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 4)))))
29.0ms
(cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)))
9.0ms
(sqrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 4))))

rewrite10.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
10×add-sqr-sqrt_binary64
sqrt-prod_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
add-exp-log_binary64
Counts
3 → 57
Calls

3 calls:

5.0ms
(/.f64 (*.f64 (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x))) (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)))) (sqrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 4)))))
1.0ms
(sqrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 4))))
1.0ms
(cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)))

simplify108.0ms (4.7%)

Algorithm
egg-herbie
Rules
731×fma-def_binary64
503×cancel-sign-sub-inv_binary64
286×fma-neg_binary64
209×sub-neg_binary64
159×unswap-sqr_binary64
Counts
129 → 186
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03254835
18924493
228154311
350034311

prune408.0ms (17.7%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New4131414
Fresh011
Picked101
Done033
Total4145419
Error
0.6b
Counts
419 → 5
Alt Table
StatusErrorProgram
34.5b
(/.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)) (fma.f64 x x (*.f64 y (*.f64 y 4))))
31.0b
-1
36.3b
(fma.f64 1/2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
33.0b
1
36.6b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x))) (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x)))) (sqrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 4))))) (/.f64 (cbrt.f64 (fma.f64 -4 (*.f64 y y) (*.f64 x x))) (exp.f64 (log.f64 (sqrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 4))))))))
Compiler

Compiled 24944 to 13851 computations (44.5% saved)

regimes159.0ms (6.9%)

Accuracy

Total 11.8b remaining (97.1%)

Threshold costs 0b (0%)

Counts
12 → 3
Compiler

Compiled 2288 to 1263 computations (44.8% saved)

bsearch1.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

simplify4.0ms (0.2%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
distribute-rgt-neg-in_binary64
sub-neg_binary64
distribute-lft-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01948
12948
24348
34948
45348
55448
65248

end80.0ms (3.5%)

Compiler

Compiled 160 to 94 computations (41.3% saved)

Profiling

Loading profile data...