Details

Time bar (total: 2.4s)

analyze98.0ms (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)

sample779.0ms (31.8%)

Results
750.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.1b
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 3 expressions with local error:

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

series24.0ms (1%)

Counts
3 → 72
Calls

3 calls:

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

rewrite18.0ms (0.7%)

Algorithm
rewrite-expression-head
Rules
19×add-log-exp_binary64
10×sum-log_binary64
fma-def_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
Counts
3 → 51
Calls

3 calls:

9.0ms
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
5.0ms
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))
3.0ms
(+.f64 (*.f64 x x) (*.f64 y y))

simplify83.0ms (3.4%)

Algorithm
egg-herbie
Rules
728×fma-neg_binary64
620×fma-def_binary64
389×distribute-rgt-in_binary64
337×distribute-lft-in_binary64
286×unswap-sqr_binary64
Counts
123 → 94
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0771464
12491343
27451260
331121256
445281256
550221256

prune72.0ms (2.9%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New88694
Fresh011
Picked101
Done000
Total89796
Error
0.0b
Counts
96 → 7
Alt Table
StatusErrorProgram
0.1b
(+.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
0.2b
(*.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.1b
(*.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))
0.9b
(fma.f64 (*.f64 (cbrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (cbrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)))) (cbrt.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))) (*.f64 y y))
0.1b
(fma.f64 y (*.f64 y 3) (*.f64 x x))
0.8b
(+.f64 (+.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 y y (*.f64 x x))) (cbrt.f64 (fma.f64 y y (*.f64 x x)))) (cbrt.f64 (fma.f64 y y (*.f64 x x)))) (*.f64 y y)) (*.f64 y y))
Compiler

Compiled 2342 to 535 computations (77.2% saved)

localize6.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

series24.0ms (1%)

Counts
3 → 72
Calls

3 calls:

10.0ms
(+.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
9.0ms
(+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))
6.0ms
(fma.f64 x x (*.f64 y y))

rewrite8.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
10×add-log-exp_binary64
fma-def_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
Counts
3 → 45
Calls

3 calls:

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

simplify106.0ms (4.3%)

Algorithm
egg-herbie
Rules
371×fma-def_binary64
340×cancel-sign-sub-inv_binary64
335×fma-neg_binary64
322×associate--r+_binary64
294×distribute-rgt-out_binary64
Counts
117 → 86
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0651417
11811260
25141178
320041176
444891176
549501176
648811176

prune67.0ms (2.7%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New83386
Fresh336
Picked011
Done000
Total86793
Error
0.0b
Counts
93 → 7
Alt Table
StatusErrorProgram
0.1b
(fma.f64 y (*.f64 y 3) (*.f64 x x))
0.9b
(fma.f64 (*.f64 (cbrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (cbrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y)))) (cbrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (*.f64 y y))
0.1b
(+.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
1.1b
(*.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
(*.f64 (sqrt.f64 (+.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y)) (*.f64 y y))) (sqrt.f64 (+.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y)) (*.f64 y y))))
0.2b
(fma.f64 (sqrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (sqrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (*.f64 y y))
0.8b
(+.f64 (+.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 y y (*.f64 x x))) (cbrt.f64 (fma.f64 y y (*.f64 x x)))) (cbrt.f64 (fma.f64 y y (*.f64 x x)))) (*.f64 y y)) (*.f64 y y))
Compiler

Compiled 2040 to 470 computations (77% 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))

rewrite2.0ms (0.1%)

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))

simplify63.0ms (2.6%)

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

prune25.0ms (1%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New23124
Fresh145
Picked011
Done011
Total24731
Error
0.0b
Counts
31 → 7
Alt Table
StatusErrorProgram
0.1b
(fma.f64 y (*.f64 y 3) (*.f64 x x))
0.9b
(fma.f64 (*.f64 (cbrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (cbrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y)))) (cbrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (*.f64 y y))
0.1b
(+.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
0.2b
(*.f64 (sqrt.f64 (fma.f64 y (*.f64 y 3) (*.f64 x x))) (sqrt.f64 (fma.f64 y (*.f64 y 3) (*.f64 x x))))
1.1b
(*.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 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (sqrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (*.f64 y y))
0.8b
(+.f64 (+.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 y y (*.f64 x x))) (cbrt.f64 (fma.f64 y y (*.f64 x x)))) (cbrt.f64 (fma.f64 y y (*.f64 x x)))) (*.f64 y y)) (*.f64 y y))
Compiler

Compiled 619 to 259 computations (58.2% saved)

localize7.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

series114.0ms (4.7%)

Counts
2 → 48
Calls

2 calls:

99.0ms
(fma.f64 (sqrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (sqrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (*.f64 y y))
15.0ms
(sqrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y)))

rewrite4.0ms (0.1%)

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:

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

simplify71.0ms (2.9%)

Algorithm
egg-herbie
Rules
861×fma-neg_binary64
707×times-frac_binary64
321×associate-/l*_binary64
316×fma-def_binary64
309×associate-*r*_binary64
Counts
76 → 84
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01091723
12961415
29171273
348831273
455531273

prune210.0ms (8.6%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New2424246
Fresh224
Picked101
Done022
Total2458253
Error
0b
Counts
253 → 8
Alt Table
StatusErrorProgram
0.2b
(*.f64 (sqrt.f64 (fma.f64 y (*.f64 y 3) (*.f64 x x))) (sqrt.f64 (fma.f64 y (*.f64 y 3) (*.f64 x x))))
0.4b
(fma.f64 (sqrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 2 (*.f64 y y) (*.f64 x x)))) (sqrt.f64 (sqrt.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.9b
(fma.f64 (*.f64 (cbrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (cbrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y)))) (cbrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (*.f64 y y))
0.1b
(+.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
0.3b
(+.f64 (*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 2) 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
41.2b
(fma.f64 (sqrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (neg.f64 (*.f64 y (sqrt.f64 2))) (*.f64 y y))
34.2b
(fma.f64 (sqrt.f64 (+.f64 (fma.f64 x x (*.f64 y y)) (*.f64 y y))) (/.f64 (sqrt.f64 (*.f64 (fma.f64 2 (*.f64 y y) (*.f64 x x)) (fma.f64 x x 0))) (sqrt.f64 (fma.f64 x x 0))) (*.f64 y y))
Compiler

Compiled 8021 to 1838 computations (77.1% saved)

regimes521.0ms (21.3%)

Accuracy

Total 0.1b remaining (91.8%)

Threshold costs 0.1b (91.8%)

Counts
117 → 1
Compiler

Compiled 15853 to 6351 computations (59.9% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0720
1920
2920

end117.0ms (4.8%)

Compiler

Compiled 234 to 105 computations (55.1% saved)

Profiling

Loading profile data...