Details

Time bar (total: 2.8s)

analyze93.0ms (3.4%)

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
25%74.9%0.1%5
25%50%25.1%6
25%31.2%43.8%7
31.2%25%43.8%8
39%17.2%43.8%9
42.9%13.3%43.8%10
47.2%9%43.8%11
49.4%6.8%43.8%12
51.6%4.6%43.8%13
52.7%3.5%43.8%14
Compiler

Compiled 18 to 8 computations (55.6% saved)

sample768.0ms (27.9%)

Results
739.0ms8256×body128valid
1.0msbody128invalid
Compiler

Compiled 53 to 23 computations (56.6% saved)

simplify7.0ms (0.3%)

Algorithm
egg-herbie
Rules
28×fma-def_binary64
*-commutative_binary64
associate-+l+_binary64
associate-*r*_binary64
+-commutative_binary64
Counts
1 → 2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0820
11515
23011
34911
46311
56711
66511

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.1b
(fma.f64 y (*.f64 y 3) (*.f64 x x))
0.1b
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
Compiler

Compiled 79 to 36 computations (54.4% saved)

localize6.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))
0.1b
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))

series19.0ms (0.7%)

Counts
2 → 48
Calls

2 calls:

10.0ms
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))
8.0ms
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))

rewrite12.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
16×add-log-exp_binary64
sum-log_binary64
fma-def_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
Counts
2 → 37
Calls

2 calls:

6.0ms
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
4.0ms
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))

simplify76.0ms (2.8%)

Algorithm
egg-herbie
Rules
520×cancel-sign-sub-inv_binary64
492×fma-neg_binary64
453×fma-def_binary64
414×distribute-rgt-out_binary64
376×distribute-rgt-in_binary64
Counts
85 → 67
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0611132
11861028
2588941
32530937
44456937
54891937

prune50.0ms (1.8%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New63467
Fresh011
Picked011
Done000
Total63669
Error
0b
Counts
69 → 6
Alt Table
StatusErrorProgram
0.1b
(fma.f64 y (*.f64 y 3) (*.f64 x x))
45.9b
(/.f64 (+.f64 (pow.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) 3) (pow.f64 (*.f64 y y) 3)) (+.f64 (*.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (-.f64 (*.f64 (*.f64 y y) (*.f64 y y)) (*.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y)))))
0.1b
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
0.3b
(*.f64 (sqrt.f64 (+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))) (sqrt.f64 (+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))))
1.3b
(*.f64 (*.f64 (cbrt.f64 (fma.f64 3 (*.f64 y y) (*.f64 x x))) (cbrt.f64 (fma.f64 3 (*.f64 y y) (*.f64 x x)))) (cbrt.f64 (fma.f64 3 (*.f64 y y) (*.f64 x x))))
0.2b
(fma.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 y y))
Compiler

Compiled 1768 to 400 computations (77.4% saved)

localize5.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 y (*.f64 y 3) (*.f64 x x))

series7.0ms (0.3%)

Counts
1 → 24
Calls

1 calls:

7.0ms
(fma.f64 y (*.f64 y 3) (*.f64 x x))

rewrite1.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
Counts
1 → 10
Calls

1 calls:

0.0ms
(fma.f64 y (*.f64 y 3) (*.f64 x x))

simplify57.0ms (2.1%)

Algorithm
egg-herbie
Rules
911×fma-def_binary64
466×distribute-rgt-in_binary64
460×distribute-lft-in_binary64
356×unswap-sqr_binary64
323×*-commutative_binary64
Counts
34 → 24
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
022394
135371
266371
3184371
4793371
53022371
64320371
75097371

prune24.0ms (0.9%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New23124
Fresh134
Picked011
Done011
Total24630
Error
0b
Counts
30 → 6
Alt Table
StatusErrorProgram
0.3b
(*.f64 (sqrt.f64 (fma.f64 x x (*.f64 3 (*.f64 y y)))) (sqrt.f64 (fma.f64 x x (*.f64 3 (*.f64 y y)))))
0.1b
(fma.f64 y (*.f64 y 3) (*.f64 x x))
45.9b
(/.f64 (+.f64 (pow.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) 3) (pow.f64 (*.f64 y y) 3)) (+.f64 (*.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (-.f64 (*.f64 (*.f64 y y) (*.f64 y y)) (*.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y)))))
0.1b
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
1.3b
(*.f64 (*.f64 (cbrt.f64 (fma.f64 3 (*.f64 y y) (*.f64 x x))) (cbrt.f64 (fma.f64 3 (*.f64 y y) (*.f64 x x)))) (cbrt.f64 (fma.f64 3 (*.f64 y y) (*.f64 x x))))
0.2b
(fma.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 y y))
Compiler

Compiled 616 to 260 computations (57.8% saved)

localize7.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))
0.2b
(fma.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 y y))
5.7b
(sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)))

series139.0ms (5.1%)

Counts
2 → 48
Calls

2 calls:

125.0ms
(fma.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 y y))
14.0ms
(sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)))

rewrite6.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
sqrt-prod_binary64
add-cube-cbrt_binary64
pow1_binary64
Counts
2 → 28
Calls

2 calls:

4.0ms
(sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)))
0.0ms
(fma.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 y y))

simplify48.0ms (1.7%)

Algorithm
egg-herbie
Rules
707×times-frac_binary64
352×fma-def_binary64
323×associate-*r*_binary64
321×associate-/l*_binary64
279×associate-*l*_binary64
Counts
76 → 84
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01101723
13041313
29561216
349941216

prune170.0ms (6.2%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New2042206
Fresh303
Picked011
Done022
Total2075212
Error
0b
Counts
212 → 5
Alt Table
StatusErrorProgram
0.7b
(fma.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 2 (*.f64 y y) (*.f64 x x)))) (sqrt.f64 (cbrt.f64 (fma.f64 2 (*.f64 y y) (*.f64 x x))))) (*.f64 y y))
0.1b
(fma.f64 y (*.f64 y 3) (*.f64 x x))
0.1b
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
0.5b
(fma.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x)) (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x))) (*.f64 y y))
0.2b
(fma.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 y y))
Compiler

Compiled 7084 to 1709 computations (75.9% saved)

localize13.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(fma.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x)) (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x))) (*.f64 y y))
0.5b
(*.f64 y (sqrt.f64 2))
0.6b
(*.f64 (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x)) (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x)))
5.7b
(sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)))

series127.0ms (4.6%)

Counts
3 → 48
Calls

3 calls:

102.0ms
(fma.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x)) (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x))) (*.f64 y y))
21.0ms
(*.f64 (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x)) (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x)))
3.0ms
(*.f64 y (sqrt.f64 2))

rewrite15.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
34×add-sqr-sqrt_binary64
22×sqrt-prod_binary64
20×pow1_binary64
14×*-un-lft-identity_binary64
14×add-cube-cbrt_binary64
Counts
3 → 87
Calls

3 calls:

5.0ms
(*.f64 (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x)) (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x)))
3.0ms
(*.f64 y (sqrt.f64 2))
0.0ms
(fma.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x)) (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x))) (*.f64 y y))

simplify71.0ms (2.6%)

Algorithm
egg-herbie
Rules
711×fma-def_binary64
658×associate-/l*_binary64
601×associate-/r*_binary64
238×cancel-sign-sub-inv_binary64
140×fma-neg_binary64
Counts
135 → 147
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01933063
14772564
215692229
351282229

prune246.0ms (8.9%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New2290229
Fresh011
Picked011
Done033
Total2295234
Error
0b
Counts
234 → 5
Alt Table
StatusErrorProgram
0.7b
(fma.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 2 (*.f64 y y) (*.f64 x x)))) (sqrt.f64 (cbrt.f64 (fma.f64 2 (*.f64 y y) (*.f64 x x))))) (*.f64 y y))
0.1b
(fma.f64 y (*.f64 y 3) (*.f64 x x))
0.1b
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
0.5b
(fma.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x)) (sqrt.f64 (hypot.f64 (*.f64 y (sqrt.f64 2)) x))) (*.f64 y y))
0.2b
(fma.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (sqrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 y y))
Compiler

Compiled 8422 to 4174 computations (50.4% saved)

regimes708.0ms (25.7%)

Accuracy

Total 0.1b remaining (90.3%)

Threshold costs 0.1b (90.3%)

Counts
125 → 1
Compiler

Compiled 18901 to 10175 computations (46.2% saved)

simplify2.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01019
11319
21319

end76.0ms (2.8%)

Compiler

Compiled 159 to 79 computations (50.3% saved)

Profiling

Loading profile data...