Details

Time bar (total: 6.0s)

analyze1.0s (17.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%48.6%51.4%0
0%48.6%51.4%1
24.3%24.3%51.4%2
24.3%24.3%51.4%3
30.4%18.2%51.4%4
30.4%18.2%51.4%5
33.4%15.2%51.4%6
33.4%15.2%51.4%7
34.6%14.1%51.4%8
34.8%13.9%51.4%9
35.4%13.2%51.4%10
35.6%13.1%51.4%11
35.9%12.7%51.4%12
36%12.6%51.4%13
36.2%12.4%51.4%14
Compiler

Compiled 28 to 20 computations (28.6% saved)

sample1.9s (32.2%)

Results
837.0ms6230×body128valid
498.0ms813×body2048valid
223.0ms504×body1024valid
218.0ms301×body4096valid
96.0ms271×body512valid
35.0ms137×body256valid
Compiler

Compiled 75 to 54 computations (28% saved)

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Rules
fma-def_binary64
*-commutative_binary64
+-commutative_binary64
associate-/l*_binary64
distribute-lft-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01524
13124
23922
34522
44722
54922
65022
74722

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
14.4b
Counts
3 → 1
Alt Table
StatusErrorProgram
14.4b
(sqrt.f64 (fma.f64 1/2 (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p))))) 1/2))
Compiler

Compiled 68 to 48 computations (29.4% saved)

localize12.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (fma.f64 1/2 (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p))))) 1/2))
0.2b
(/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p)))))
0.3b
(fma.f64 1/2 (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p))))) 1/2)
15.1b
(sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p))))

series98.0ms (1.6%)

Counts
4 → 96
Calls

4 calls:

31.0ms
(fma.f64 1/2 (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p))))) 1/2)
28.0ms
(sqrt.f64 (fma.f64 1/2 (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p))))) 1/2))
27.0ms
(/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p)))))
12.0ms
(sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p))))

rewrite66.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
560×log-prod_binary64
208×expm1-udef_binary64
208×log1p-udef_binary64
192×log-pow_binary64
169×prod-diff_binary64
Counts
4 → 121
Calls

4 calls:

63.0ms
(sqrt.f64 (fma.f64 1/2 (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p))))) 1/2))
63.0ms
(/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p)))))
63.0ms
(fma.f64 1/2 (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p))))) 1/2)
63.0ms
(sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01271
124467
2277367
3500567
000
100

simplify83.0ms (1.4%)

Algorithm
egg-herbie
Rules
638×associate-/l*_binary64
565×fma-def_binary64
497×fma-neg_binary64
413×cancel-sign-sub-inv_binary64
237×neg-mul-1_binary64
Counts
217 → 234
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01832325
16032253
219982139
346252133
449912133

prune195.0ms (3.2%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New2295234
Fresh000
Picked011
Done000
Total2296235
Error
4.2b
Counts
235 → 6
Alt Table
StatusErrorProgram
56.1b
(sqrt.f64 (fma.f64 10 (/.f64 (pow.f64 p 6) (pow.f64 x 6)) (fma.f64 (/.f64 p x) (/.f64 p x) (fma.f64 (/.f64 (pow.f64 p 8) (pow.f64 x 8)) -35 (*.f64 (/.f64 (pow.f64 p 4) (pow.f64 x 4)) -3)))))
56.0b
(sqrt.f64 (-.f64 (+.f64 (*.f64 10 (/.f64 (pow.f64 p 6) (pow.f64 x 6))) (/.f64 (pow.f64 p 2) (pow.f64 x 2))) (*.f64 3 (/.f64 (pow.f64 p 4) (pow.f64 x 4)))))
52.7b
(neg.f64 (/.f64 p x))
14.4b
(sqrt.f64 (fma.f64 1/2 (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p))))) 1/2))
50.7b
(sqrt.f64 (/.f64 p (/.f64 (*.f64 x x) p)))
14.9b
(pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 p (*.f64 p 4))))) 1/2))) 3)
Compiler

Compiled 5302 to 3841 computations (27.6% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(fma.f64 1/2 (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 p (*.f64 p 4))))) 1/2)
0.5b
(pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 p (*.f64 p 4))))) 1/2))) 3)
0.5b
(cbrt.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 p (*.f64 p 4))))) 1/2)))
30.2b
(sqrt.f64 (*.f64 p (*.f64 p 4)))

series124.0ms (2%)

Counts
4 → 84
Calls

4 calls:

63.0ms
(pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 p (*.f64 p 4))))) 1/2))) 3)
38.0ms
(cbrt.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 p (*.f64 p 4))))) 1/2)))
21.0ms
(fma.f64 1/2 (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 p (*.f64 p 4))))) 1/2)
2.0ms
(sqrt.f64 (*.f64 p (*.f64 p 4)))

rewrite66.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
639×log-prod_binary64
235×expm1-udef_binary64
235×log1p-udef_binary64
217×log-pow_binary64
209×prod-diff_binary64
Counts
4 → 119
Calls

4 calls:

63.0ms
(fma.f64 1/2 (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 p (*.f64 p 4))))) 1/2)
63.0ms
(pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 p (*.f64 p 4))))) 1/2))) 3)
63.0ms
(cbrt.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 p (*.f64 p 4))))) 1/2)))
63.0ms
(sqrt.f64 (*.f64 p (*.f64 p 4)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01572
129451
2318851
3570151
000
100

simplify57.0ms (0.9%)

Algorithm
egg-herbie
Rules
627×associate-/l*_binary64
560×associate-/r*_binary64
489×fma-def_binary64
385×cancel-sign-sub-inv_binary64
190×fma-neg_binary64
Counts
203 → 204
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01662238
15272137
218021951
352391951

prune178.0ms (2.9%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New2022204
Fresh044
Picked011
Done011
Total2028210
Error
2.4b
Counts
210 → 8
Alt Table
StatusErrorProgram
14.9b
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3) (pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3))
51.6b
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 (pow.f64 p 2))))) 3)
56.1b
(sqrt.f64 (fma.f64 10 (/.f64 (pow.f64 p 6) (pow.f64 x 6)) (fma.f64 (/.f64 p x) (/.f64 p x) (fma.f64 (/.f64 (pow.f64 p 8) (pow.f64 x 8)) -35 (*.f64 (/.f64 (pow.f64 p 4) (pow.f64 x 4)) -3)))))
56.0b
(sqrt.f64 (-.f64 (+.f64 (*.f64 10 (/.f64 (pow.f64 p 6) (pow.f64 x 6))) (/.f64 (pow.f64 p 2) (pow.f64 x 2))) (*.f64 3 (/.f64 (pow.f64 p 4) (pow.f64 x 4)))))
52.7b
(neg.f64 (/.f64 p x))
14.4b
(sqrt.f64 (fma.f64 1/2 (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p))))) 1/2))
50.7b
(sqrt.f64 (/.f64 p (/.f64 (*.f64 x x) p)))
14.9b
(pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 p (*.f64 p 4))))) 1/2))) 3)
Compiler

Compiled 5156 to 3973 computations (22.9% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 x (hypot.f64 (*.f64 p 2) x))
0.3b
(fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)
0.5b
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3) (pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3))
0.5b
(pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3)

series146.0ms (2.4%)

Counts
4 → 96
Calls

4 calls:

80.0ms
(pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3)
25.0ms
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3) (pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3))
22.0ms
(fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)
19.0ms
(/.f64 x (hypot.f64 (*.f64 p 2) x))

rewrite66.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
597×log-prod_binary64
236×expm1-udef_binary64
236×log1p-udef_binary64
218×log-pow_binary64
143×log1p-expm1-u_binary64
Counts
4 → 122
Calls

4 calls:

64.0ms
(/.f64 x (hypot.f64 (*.f64 p 2) x))
64.0ms
(fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)
64.0ms
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3) (pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3))
64.0ms
(pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01563
132357
2316057
3533757
000
100

simplify94.0ms (1.6%)

Algorithm
egg-herbie
Rules
725×fma-def_binary64
509×cancel-sign-sub-inv_binary64
439×fma-neg_binary64
291×neg-sub0_binary64
289×neg-mul-1_binary64
Counts
218 → 232
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02182861
17072747
224222550
344942508
450812508

prune409.0ms (6.8%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New4140414
Fresh055
Picked011
Done022
Total4148422
Error
2.4b
Counts
422 → 8
Alt Table
StatusErrorProgram
14.9b
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3) (pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3))
51.6b
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 (pow.f64 p 2))))) 3)
56.1b
(sqrt.f64 (fma.f64 10 (/.f64 (pow.f64 p 6) (pow.f64 x 6)) (fma.f64 (/.f64 p x) (/.f64 p x) (fma.f64 (/.f64 (pow.f64 p 8) (pow.f64 x 8)) -35 (*.f64 (/.f64 (pow.f64 p 4) (pow.f64 x 4)) -3)))))
56.0b
(sqrt.f64 (-.f64 (+.f64 (*.f64 10 (/.f64 (pow.f64 p 6) (pow.f64 x 6))) (/.f64 (pow.f64 p 2) (pow.f64 x 2))) (*.f64 3 (/.f64 (pow.f64 p 4) (pow.f64 x 4)))))
52.7b
(neg.f64 (/.f64 p x))
14.4b
(sqrt.f64 (fma.f64 1/2 (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p))))) 1/2))
50.7b
(sqrt.f64 (/.f64 p (/.f64 (*.f64 x x) p)))
14.9b
(pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 p (*.f64 p 4))))) 1/2))) 3)
Compiler

Compiled 16063 to 11291 computations (29.7% saved)

localize5.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(/.f64 p (/.f64 (*.f64 x x) p))
0.2b
(/.f64 (*.f64 x x) p)
21.0b
(sqrt.f64 (/.f64 p (/.f64 (*.f64 x x) p)))

series42.0ms (0.7%)

Counts
3 → 72
Calls

3 calls:

27.0ms
(/.f64 p (/.f64 (*.f64 x x) p))
10.0ms
(/.f64 (*.f64 x x) p)
5.0ms
(sqrt.f64 (/.f64 p (/.f64 (*.f64 x x) p)))

rewrite54.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
761×log1p-expm1-u_binary64
761×expm1-log1p-u_binary64
132×egg-rr
129×log1p-udef_binary64
75×add-sqr-sqrt_binary64
Counts
3 → 132
Calls

3 calls:

52.0ms
(/.f64 p (/.f64 (*.f64 x x) p))
52.0ms
(/.f64 (*.f64 x x) p)
52.0ms
(sqrt.f64 (/.f64 p (/.f64 (*.f64 x x) p)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0729
115218
2200018
3508418
000
100

simplify66.0ms (1.1%)

Algorithm
egg-herbie
Rules
822×fma-def_binary64
738×unswap-sqr_binary64
718×times-frac_binary64
333×associate-/l*_binary64
325×fma-neg_binary64
Counts
204 → 137
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
011520
123520
240520
3106520
4397520
52323520
63969520
74320520
85229520

prune47.0ms (0.8%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New1361137
Fresh224
Picked101
Done033
Total1396145
Error
0.0b
Counts
145 → 6
Alt Table
StatusErrorProgram
50.3b
(/.f64 p x)
14.9b
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3) (pow.f64 (pow.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 (*.f64 p 2) x)) 1/2)) 1/6) 3))
56.0b
(sqrt.f64 (-.f64 (+.f64 (*.f64 10 (/.f64 (pow.f64 p 6) (pow.f64 x 6))) (/.f64 (pow.f64 p 2) (pow.f64 x 2))) (*.f64 3 (/.f64 (pow.f64 p 4) (pow.f64 x 4)))))
52.7b
(neg.f64 (/.f64 p x))
14.4b
(sqrt.f64 (fma.f64 1/2 (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 p (*.f64 4 p))))) 1/2))
14.9b
(pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 1/2 (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 p (*.f64 p 4))))) 1/2))) 3)
Compiler

Compiled 1540 to 720 computations (53.2% saved)

regimes1.1s (18.4%)

Accuracy

Total 6.9b remaining (99.3%)

Threshold costs 0b (0%)

Counts
127 → 2
Compiler

Compiled 14155 to 11176 computations (21% saved)

bsearch3.0ms (0.1%)

Compiler

Compiled 14 to 9 computations (35.7% saved)

simplify2.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02249
12449
22449

end105.0ms (1.7%)

Compiler

Compiled 180 to 131 computations (27.2% saved)

Profiling

Loading profile data...