Details

Time bar (total: 4.0s)

analyze9.0ms (0.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
0%100%0%2
50%50%0%3
50%50%0%4
50%50%0%5
81.2%18.7%0%6
100%0%0%7
Compiler

Compiled 175 to 47 computations (73.1% saved)

sample1.8s (45.4%)

Results
1.7s8256×body128valid
Compiler

Compiled 524 to 140 computations (73.3% saved)

simplify66.0ms (1.6%)

Algorithm
egg-herbie
Rules
755×unswap-sqr_binary64
705×fma-def_binary64
691×distribute-rgt-out_binary64
576×+-commutative_binary64
488×*-commutative_binary64
Counts
1 → 2
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
046256
1133150
2549101
3242790
4370584
5452984
6487484
7588784

prune6.0ms (0.2%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
31.7b
Counts
3 → 1
Alt Table
StatusErrorProgram
31.7b
(*.f64 (/.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 1049934947/10000000000 (*.f64 x x))) (*.f64 106015151/2500000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 36322091/5000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 2532017/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1789971/10000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 7715471019/10000000000 (*.f64 x x))) (*.f64 2909738639/10000000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 694555761/10000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 70002721/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1665589/2000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 (*.f64 2 1789971/10000000000) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x))))) x)
Compiler

Compiled 582 to 182 computations (68.7% saved)

localize38.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 7715471019/10000000000 (*.f64 x x))
0.2b
(*.f64 1049934947/10000000000 (*.f64 x x))
17.4b
(*.f64 (/.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 1049934947/10000000000 (*.f64 x x))) (*.f64 106015151/2500000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 36322091/5000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 2532017/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1789971/10000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 7715471019/10000000000 (*.f64 x x))) (*.f64 2909738639/10000000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 694555761/10000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 70002721/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1665589/2000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 (*.f64 2 1789971/10000000000) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x))))) x)
31.2b
(/.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 1049934947/10000000000 (*.f64 x x))) (*.f64 106015151/2500000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 36322091/5000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 2532017/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1789971/10000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 7715471019/10000000000 (*.f64 x x))) (*.f64 2909738639/10000000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 694555761/10000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 70002721/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1665589/2000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 (*.f64 2 1789971/10000000000) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))))

series25.0ms (0.6%)

Counts
4 → 48
Calls

4 calls:

13.0ms
(/.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 1049934947/10000000000 (*.f64 x x))) (*.f64 106015151/2500000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 36322091/5000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 2532017/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1789971/10000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 7715471019/10000000000 (*.f64 x x))) (*.f64 2909738639/10000000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 694555761/10000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 70002721/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1665589/2000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 (*.f64 2 1789971/10000000000) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))))
7.0ms
(*.f64 (/.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 1049934947/10000000000 (*.f64 x x))) (*.f64 106015151/2500000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 36322091/5000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 2532017/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1789971/10000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 7715471019/10000000000 (*.f64 x x))) (*.f64 2909738639/10000000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 694555761/10000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 70002721/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1665589/2000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 (*.f64 2 1789971/10000000000) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x))))) x)
2.0ms
(*.f64 7715471019/10000000000 (*.f64 x x))
2.0ms
(*.f64 1049934947/10000000000 (*.f64 x x))

rewrite90.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
506×log1p-expm1-u_binary64
506×expm1-log1p-u_binary64
424×prod-diff_binary64
178×unpow-prod-down_binary64
177×fma-def_binary64
Counts
4 → 57
Calls

4 calls:

85.0ms
(*.f64 7715471019/10000000000 (*.f64 x x))
85.0ms
(*.f64 1049934947/10000000000 (*.f64 x x))
85.0ms
(*.f64 (/.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 1049934947/10000000000 (*.f64 x x))) (*.f64 106015151/2500000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 36322091/5000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 2532017/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1789971/10000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 7715471019/10000000000 (*.f64 x x))) (*.f64 2909738639/10000000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 694555761/10000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 70002721/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1665589/2000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 (*.f64 2 1789971/10000000000) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x))))) x)
85.0ms
(/.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 1049934947/10000000000 (*.f64 x x))) (*.f64 106015151/2500000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 36322091/5000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 2532017/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1789971/10000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 7715471019/10000000000 (*.f64 x x))) (*.f64 2909738639/10000000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 694555761/10000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 70002721/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1665589/2000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 (*.f64 2 1789971/10000000000) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
046367
11067287
24877287
35148287

simplify56.0ms (1.4%)

Algorithm
egg-herbie
Rules
710×times-frac_binary64
660×associate-*l*_binary64
636×fma-def_binary64
441×associate-/r*_binary64
428×cancel-sign-sub-inv_binary64
Counts
105 → 89
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
072576
1191576
2464568
31223564
43825564
54967564

prune189.0ms (4.7%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New85489
Fresh000
Picked011
Done000
Total85590
Error
0b
Counts
90 → 5
Alt Table
StatusErrorProgram
31.8b
(*.f64 (*.f64 (fma.f64 1789971/10000000000 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) (fma.f64 2532017/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) (fma.f64 36322091/5000000000 (pow.f64 (*.f64 x x) 3) (fma.f64 106015151/2500000000 (*.f64 (pow.f64 x 3) x) (fma.f64 1049934947/10000000000 (*.f64 x x) 1))))) (/.f64 1 (fma.f64 1789971/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 3) (fma.f64 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) 1665589/2000000000 (fma.f64 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) 70002721/5000000000 (fma.f64 (pow.f64 (*.f64 x x) 3) 694555761/10000000000 (fma.f64 (*.f64 (pow.f64 x 3) x) 2909738639/10000000000 (fma.f64 (*.f64 x x) 7715471019/10000000000 1)))))))) x)
29.8b
(+.f64 (+.f64 (/.f64 1/2 x) (/.f64 600041/2386628 (pow.f64 x 3))) (/.f64 1307076337763/8543989815576 (pow.f64 x 5)))
33.9b
(fma.f64 (pow.f64 x 3) -833192009/1250000000 x)
47.7b
(*.f64 (+.f64 (/.f64 600041/2386628 (pow.f64 x 4)) (+.f64 (/.f64 1307076337763/8543989815576 (pow.f64 x 6)) (+.f64 (/.f64 1/2 (*.f64 x x)) (/.f64 344398180852034095277/30586987988352776592 (pow.f64 x 8))))) x)
31.7b
(*.f64 (/.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 1049934947/10000000000 (*.f64 x x))) (*.f64 106015151/2500000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 36322091/5000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 2532017/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1789971/10000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 7715471019/10000000000 (*.f64 x x))) (*.f64 2909738639/10000000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 694555761/10000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 70002721/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1665589/2000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 (*.f64 2 1789971/10000000000) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x))))) x)
Compiler

Compiled 9259 to 4124 computations (55.5% saved)

localize8.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (/.f64 1/2 x) (/.f64 600041/2386628 (pow.f64 x 3)))
0.0b
(+.f64 (+.f64 (/.f64 1/2 x) (/.f64 600041/2386628 (pow.f64 x 3))) (/.f64 1307076337763/8543989815576 (pow.f64 x 5)))
0.2b
(/.f64 1307076337763/8543989815576 (pow.f64 x 5))
0.4b
(/.f64 600041/2386628 (pow.f64 x 3))

series15.0ms (0.4%)

Counts
4 → 24
Calls

4 calls:

6.0ms
(/.f64 600041/2386628 (pow.f64 x 3))
3.0ms
(+.f64 (+.f64 (/.f64 1/2 x) (/.f64 600041/2386628 (pow.f64 x 3))) (/.f64 1307076337763/8543989815576 (pow.f64 x 5)))
3.0ms
(/.f64 1307076337763/8543989815576 (pow.f64 x 5))
3.0ms
(+.f64 (/.f64 1/2 x) (/.f64 600041/2386628 (pow.f64 x 3)))

rewrite91.0ms (2.3%)

Algorithm
batch-egg-rewrite
Rules
290×log1p-udef_binary64
166×add-sqr-sqrt_binary64
164×egg-rr
164×log1p-expm1-u_binary64
164×expm1-log1p-u_binary64
Counts
4 → 164
Calls

4 calls:

87.0ms
(+.f64 (/.f64 1/2 x) (/.f64 600041/2386628 (pow.f64 x 3)))
87.0ms
(+.f64 (+.f64 (/.f64 1/2 x) (/.f64 600041/2386628 (pow.f64 x 3))) (/.f64 1307076337763/8543989815576 (pow.f64 x 5)))
87.0ms
(/.f64 1307076337763/8543989815576 (pow.f64 x 5))
87.0ms
(/.f64 600041/2386628 (pow.f64 x 3))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01449
134143
2456443
3476443

simplify108.0ms (2.7%)

Algorithm
egg-herbie
Rules
724×unswap-sqr_binary64
510×sqr-pow_binary64
503×associate-/l/_binary64
501×associate-/r*_binary64
356×times-frac_binary64
Counts
188 → 171
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022321
150321
291321
3149321
4263321
5691321
62517321
73895321
83862321
94136321
104451321
114668321
124877321

prune154.0ms (3.8%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New1710171
Fresh033
Picked011
Done011
Total1715176
Error
0b
Counts
176 → 5
Alt Table
StatusErrorProgram
31.8b
(*.f64 (*.f64 (fma.f64 1789971/10000000000 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) (fma.f64 2532017/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) (fma.f64 36322091/5000000000 (pow.f64 (*.f64 x x) 3) (fma.f64 106015151/2500000000 (*.f64 (pow.f64 x 3) x) (fma.f64 1049934947/10000000000 (*.f64 x x) 1))))) (/.f64 1 (fma.f64 1789971/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 3) (fma.f64 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) 1665589/2000000000 (fma.f64 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) 70002721/5000000000 (fma.f64 (pow.f64 (*.f64 x x) 3) 694555761/10000000000 (fma.f64 (*.f64 (pow.f64 x 3) x) 2909738639/10000000000 (fma.f64 (*.f64 x x) 7715471019/10000000000 1)))))))) x)
29.8b
(+.f64 (+.f64 (/.f64 1/2 x) (/.f64 600041/2386628 (pow.f64 x 3))) (/.f64 1307076337763/8543989815576 (pow.f64 x 5)))
33.9b
(fma.f64 (pow.f64 x 3) -833192009/1250000000 x)
47.7b
(*.f64 (+.f64 (/.f64 600041/2386628 (pow.f64 x 4)) (+.f64 (/.f64 1307076337763/8543989815576 (pow.f64 x 6)) (+.f64 (/.f64 1/2 (*.f64 x x)) (/.f64 344398180852034095277/30586987988352776592 (pow.f64 x 8))))) x)
31.7b
(*.f64 (/.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 1049934947/10000000000 (*.f64 x x))) (*.f64 106015151/2500000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 36322091/5000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 2532017/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1789971/10000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 7715471019/10000000000 (*.f64 x x))) (*.f64 2909738639/10000000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 694555761/10000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 70002721/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1665589/2000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 (*.f64 2 1789971/10000000000) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x))))) x)
Compiler

Compiled 4571 to 3526 computations (22.9% saved)

localize35.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 1049934947/10000000000 (*.f64 x x) 1)
0.1b
(pow.f64 (*.f64 x x) 3)
17.4b
(*.f64 (*.f64 (fma.f64 1789971/10000000000 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) (fma.f64 2532017/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) (fma.f64 36322091/5000000000 (pow.f64 (*.f64 x x) 3) (fma.f64 106015151/2500000000 (*.f64 (pow.f64 x 3) x) (fma.f64 1049934947/10000000000 (*.f64 x x) 1))))) (/.f64 1 (fma.f64 1789971/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 3) (fma.f64 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) 1665589/2000000000 (fma.f64 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) 70002721/5000000000 (fma.f64 (pow.f64 (*.f64 x x) 3) 694555761/10000000000 (fma.f64 (*.f64 (pow.f64 x 3) x) 2909738639/10000000000 (fma.f64 (*.f64 x x) 7715471019/10000000000 1)))))))) x)
31.2b
(*.f64 (fma.f64 1789971/10000000000 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) (fma.f64 2532017/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) (fma.f64 36322091/5000000000 (pow.f64 (*.f64 x x) 3) (fma.f64 106015151/2500000000 (*.f64 (pow.f64 x 3) x) (fma.f64 1049934947/10000000000 (*.f64 x x) 1))))) (/.f64 1 (fma.f64 1789971/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 3) (fma.f64 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) 1665589/2000000000 (fma.f64 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) 70002721/5000000000 (fma.f64 (pow.f64 (*.f64 x x) 3) 694555761/10000000000 (fma.f64 (*.f64 (pow.f64 x 3) x) 2909738639/10000000000 (fma.f64 (*.f64 x x) 7715471019/10000000000 1))))))))

series20.0ms (0.5%)

Counts
4 → 48
Calls

4 calls:

6.0ms
(pow.f64 (*.f64 x x) 3)
6.0ms
(*.f64 (*.f64 (fma.f64 1789971/10000000000 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) (fma.f64 2532017/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) (fma.f64 36322091/5000000000 (pow.f64 (*.f64 x x) 3) (fma.f64 106015151/2500000000 (*.f64 (pow.f64 x 3) x) (fma.f64 1049934947/10000000000 (*.f64 x x) 1))))) (/.f64 1 (fma.f64 1789971/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 3) (fma.f64 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) 1665589/2000000000 (fma.f64 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) 70002721/5000000000 (fma.f64 (pow.f64 (*.f64 x x) 3) 694555761/10000000000 (fma.f64 (*.f64 (pow.f64 x 3) x) 2909738639/10000000000 (fma.f64 (*.f64 x x) 7715471019/10000000000 1)))))))) x)
6.0ms
(*.f64 (fma.f64 1789971/10000000000 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) (fma.f64 2532017/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) (fma.f64 36322091/5000000000 (pow.f64 (*.f64 x x) 3) (fma.f64 106015151/2500000000 (*.f64 (pow.f64 x 3) x) (fma.f64 1049934947/10000000000 (*.f64 x x) 1))))) (/.f64 1 (fma.f64 1789971/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 3) (fma.f64 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) 1665589/2000000000 (fma.f64 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) 70002721/5000000000 (fma.f64 (pow.f64 (*.f64 x x) 3) 694555761/10000000000 (fma.f64 (*.f64 (pow.f64 x 3) x) 2909738639/10000000000 (fma.f64 (*.f64 x x) 7715471019/10000000000 1))))))))
2.0ms
(fma.f64 1049934947/10000000000 (*.f64 x x) 1)

rewrite57.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
343×log1p-expm1-u_binary64
343×expm1-log1p-u_binary64
336×add-cbrt-cube_binary64
333×add-log-exp_binary64
332×add-exp-log_binary64
Counts
4 → 67
Calls

4 calls:

55.0ms
(fma.f64 1049934947/10000000000 (*.f64 x x) 1)
55.0ms
(pow.f64 (*.f64 x x) 3)
55.0ms
(*.f64 (*.f64 (fma.f64 1789971/10000000000 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) (fma.f64 2532017/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) (fma.f64 36322091/5000000000 (pow.f64 (*.f64 x x) 3) (fma.f64 106015151/2500000000 (*.f64 (pow.f64 x 3) x) (fma.f64 1049934947/10000000000 (*.f64 x x) 1))))) (/.f64 1 (fma.f64 1789971/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 3) (fma.f64 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) 1665589/2000000000 (fma.f64 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) 70002721/5000000000 (fma.f64 (pow.f64 (*.f64 x x) 3) 694555761/10000000000 (fma.f64 (*.f64 (pow.f64 x 3) x) 2909738639/10000000000 (fma.f64 (*.f64 x x) 7715471019/10000000000 1)))))))) x)
55.0ms
(*.f64 (fma.f64 1789971/10000000000 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) (fma.f64 2532017/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) (fma.f64 36322091/5000000000 (pow.f64 (*.f64 x x) 3) (fma.f64 106015151/2500000000 (*.f64 (pow.f64 x 3) x) (fma.f64 1049934947/10000000000 (*.f64 x x) 1))))) (/.f64 1 (fma.f64 1789971/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 3) (fma.f64 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) 1665589/2000000000 (fma.f64 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) 70002721/5000000000 (fma.f64 (pow.f64 (*.f64 x x) 3) 694555761/10000000000 (fma.f64 (*.f64 (pow.f64 x 3) x) 2909738639/10000000000 (fma.f64 (*.f64 x x) 7715471019/10000000000 1))))))))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
037246
1782201
24750201

simplify59.0ms (1.5%)

Algorithm
egg-herbie
Rules
710×times-frac_binary64
645×associate-*l*_binary64
642×fma-def_binary64
441×associate-/r*_binary64
428×cancel-sign-sub-inv_binary64
Counts
115 → 100
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
071561
1190543
2461535
31214531
43812531
54950531

prune269.0ms (6.7%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New1230123
Fresh022
Picked011
Done022
Total1235128
Error
0b
Counts
128 → 5
Alt Table
StatusErrorProgram
31.8b
(*.f64 (*.f64 (fma.f64 1789971/10000000000 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) (fma.f64 2532017/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) (fma.f64 36322091/5000000000 (pow.f64 (*.f64 x x) 3) (fma.f64 106015151/2500000000 (*.f64 (pow.f64 x 3) x) (fma.f64 1049934947/10000000000 (*.f64 x x) 1))))) (/.f64 1 (fma.f64 1789971/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 3) (fma.f64 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) 1665589/2000000000 (fma.f64 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) 70002721/5000000000 (fma.f64 (pow.f64 (*.f64 x x) 3) 694555761/10000000000 (fma.f64 (*.f64 (pow.f64 x 3) x) 2909738639/10000000000 (fma.f64 (*.f64 x x) 7715471019/10000000000 1)))))))) x)
29.8b
(+.f64 (+.f64 (/.f64 1/2 x) (/.f64 600041/2386628 (pow.f64 x 3))) (/.f64 1307076337763/8543989815576 (pow.f64 x 5)))
33.9b
(fma.f64 (pow.f64 x 3) -833192009/1250000000 x)
47.7b
(*.f64 (+.f64 (/.f64 600041/2386628 (pow.f64 x 4)) (+.f64 (/.f64 1307076337763/8543989815576 (pow.f64 x 6)) (+.f64 (/.f64 1/2 (*.f64 x x)) (/.f64 344398180852034095277/30586987988352776592 (pow.f64 x 8))))) x)
31.7b
(*.f64 (/.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 1049934947/10000000000 (*.f64 x x))) (*.f64 106015151/2500000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 36322091/5000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 2532017/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1789971/10000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 7715471019/10000000000 (*.f64 x x))) (*.f64 2909738639/10000000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 694555761/10000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 70002721/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1665589/2000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 (*.f64 2 1789971/10000000000) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x))))) x)
Compiler

Compiled 9428 to 6388 computations (32.2% saved)

localize3.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 (pow.f64 x 3) -833192009/1250000000 x)

series4.0ms (0.1%)

Counts
1 → 12
Calls

1 calls:

4.0ms
(fma.f64 (pow.f64 x 3) -833192009/1250000000 x)

rewrite72.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
493×log1p-expm1-u_binary64
493×expm1-log1p-u_binary64
281×unpow-prod-down_binary64
223×log-prod_binary64
208×prod-diff_binary64
Counts
1 → 37
Calls

1 calls:

71.0ms
(fma.f64 (pow.f64 x 3) -833192009/1250000000 x)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068
11268
212808
348908
450118

simplify164.0ms (4.1%)

Algorithm
egg-herbie
Rules
1705×fma-def_binary64
865×fma-neg_binary64
818×unswap-sqr_binary64
615×sqr-pow_binary64
528×cube-prod_binary64
Counts
49 → 42
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
09105
123105
25987
314787
429887
577487
6112087
7171087
8321787
9416487
10427787
11426187
12404487
13330487
14393987
15436087
16481087
17477087

prune38.0ms (0.9%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New42042
Fresh011
Picked011
Done033
Total42547
Error
0b
Counts
47 → 5
Alt Table
StatusErrorProgram
31.8b
(*.f64 (*.f64 (fma.f64 1789971/10000000000 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) (fma.f64 2532017/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) (fma.f64 36322091/5000000000 (pow.f64 (*.f64 x x) 3) (fma.f64 106015151/2500000000 (*.f64 (pow.f64 x 3) x) (fma.f64 1049934947/10000000000 (*.f64 x x) 1))))) (/.f64 1 (fma.f64 1789971/5000000000 (pow.f64 (*.f64 (pow.f64 x 3) x) 3) (fma.f64 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (pow.f64 x 3) x) 2)) 1665589/2000000000 (fma.f64 (pow.f64 (*.f64 (pow.f64 x 3) x) 2) 70002721/5000000000 (fma.f64 (pow.f64 (*.f64 x x) 3) 694555761/10000000000 (fma.f64 (*.f64 (pow.f64 x 3) x) 2909738639/10000000000 (fma.f64 (*.f64 x x) 7715471019/10000000000 1)))))))) x)
29.8b
(+.f64 (+.f64 (/.f64 1/2 x) (/.f64 600041/2386628 (pow.f64 x 3))) (/.f64 1307076337763/8543989815576 (pow.f64 x 5)))
33.9b
(fma.f64 (pow.f64 x 3) -833192009/1250000000 x)
47.7b
(*.f64 (+.f64 (/.f64 600041/2386628 (pow.f64 x 4)) (+.f64 (/.f64 1307076337763/8543989815576 (pow.f64 x 6)) (+.f64 (/.f64 1/2 (*.f64 x x)) (/.f64 344398180852034095277/30586987988352776592 (pow.f64 x 8))))) x)
31.7b
(*.f64 (/.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 1049934947/10000000000 (*.f64 x x))) (*.f64 106015151/2500000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 36322091/5000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 2532017/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1789971/10000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 (+.f64 1 (*.f64 7715471019/10000000000 (*.f64 x x))) (*.f64 2909738639/10000000000 (*.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 694555761/10000000000 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)))) (*.f64 70002721/5000000000 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 1665589/2000000000 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)))) (*.f64 (*.f64 2 1789971/10000000000) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x)) (*.f64 x x))))) x)
Compiler

Compiled 827 to 541 computations (34.6% saved)

regimes398.0ms (9.9%)

Accuracy

Total 0.0b remaining (61.8%)

Threshold costs 0.0b (61.8%)

Counts
85 → 3
Compiler

Compiled 7162 to 5026 computations (29.8% saved)

bsearch23.0ms (0.6%)

Steps
ItersRangePoint
1
530.3167009443379
2976697009849985000.0
39972596664.81059
3
-653562289582589.5
-1436.104045000686
-32495593.19127476
Compiler

Compiled 2 to 1 computations (50% saved)

simplify5.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
051176
158176
257176

end203.0ms (5%)

Compiler

Compiled 568 to 325 computations (42.8% saved)

Profiling

Loading profile data...