Details

Time bar (total: 3.5s)

analyze13.0ms (0.4%)

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 (51.9%)

Results
1.8s8256×body128valid
Compiler

Compiled 524 to 140 computations (73.3% saved)

simplify23.0ms (0.7%)

Algorithm
egg-herbie
Rules
705×fma-def_binary64
691×distribute-rgt-out_binary64
550×+-commutative_binary64
437×*-commutative_binary64
350×associate-*l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
046256
1133150
2590101
3327790
Stop Event
node limit
Counts
1 → 2

prune8.0ms (0.2%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
29.8b
Counts
3 → 2
Alt Table
StatusErrorProgram
29.8b
(*.f64 x (/.f64 (fma.f64 1789971/10000000000 (pow.f64 (*.f64 x x) 5) (fma.f64 2532017/5000000000 (pow.f64 x 8) (fma.f64 36322091/5000000000 (pow.f64 x 6) (fma.f64 1049934947/10000000000 (*.f64 x x) (fma.f64 106015151/2500000000 (pow.f64 x 4) 1))))) (fma.f64 (pow.f64 (*.f64 x x) 5) 1665589/2000000000 (fma.f64 1789971/5000000000 (pow.f64 x 12) (fma.f64 (pow.f64 x 6) 694555761/10000000000 (fma.f64 (pow.f64 x 8) 70002721/5000000000 (fma.f64 x (*.f64 x 7715471019/10000000000) (fma.f64 (pow.f64 x 4) 2909738639/10000000000 1))))))))
29.8b
(*.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 716 to 277 computations (61.3% saved)

localize43.0ms (1.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 7715471019/10000000000 (*.f64 x x))
0.2b
(*.f64 1049934947/10000000000 (*.f64 x x))
14.6b
(*.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)
29.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)))))

series18.0ms (0.5%)

Counts
4 → 48
Calls

4 calls:

6.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)
6.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)))))
2.0ms
(*.f64 1049934947/10000000000 (*.f64 x x))
2.0ms
(*.f64 7715471019/10000000000 (*.f64 x x))

rewrite73.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
506×log1p-expm1-u_binary64
506×expm1-log1p-u_binary64
192×prod-diff_binary64
178×unpow-prod-down_binary64
177×fma-def_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
046367
11073287
Stop Event
node limit
Counts
4 → 53
Calls

4 calls:

70.0ms
(*.f64 7715471019/10000000000 (*.f64 x x))
70.0ms
(*.f64 1049934947/10000000000 (*.f64 x x))
70.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)
70.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)))))

simplify33.0ms (1%)

Algorithm
egg-herbie
Rules
634×fma-def_binary64
627×associate-*l*_binary64
426×associate-/r*_binary64
426×cancel-sign-sub-inv_binary64
244×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
072576
1192576
2486568
31454564
Stop Event
node limit
Counts
101 → 86

prune154.0ms (4.4%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New82486
Fresh101
Picked101
Done000
Total84488
Error
0b
Counts
88 → 4
Alt Table
StatusErrorProgram
32.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 (log.f64 (exp.f64 (*.f64 (*.f64 x x) 7715471019/10000000000)))) (*.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)
29.8b
(expm1.f64 (log1p.f64 (/.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))))) x) (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)))))))))
30.2b
(/.f64 1/2 x)
32.7b
(-.f64 (+.f64 (*.f64 3321371254951887171/12500000000000000000 (pow.f64 x 5)) x) (+.f64 (*.f64 9156128575487588197208397249/125000000000000000000000000000 (pow.f64 x 7)) (*.f64 833192009/1250000000 (pow.f64 x 3))))
Compiler

Compiled 9022 to 3973 computations (56% saved)

localize32.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(pow.f64 (*.f64 (pow.f64 x 3) x) 3)
0.1b
(fma.f64 1049934947/10000000000 (*.f64 x x) 1)
0.1b
(pow.f64 (*.f64 x x) 3)
29.3b
(/.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))))) x) (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)))))))

series15.0ms (0.4%)

Counts
4 → 48
Calls

4 calls:

7.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))))) x) (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)))))))
3.0ms
(pow.f64 (*.f64 (pow.f64 x 3) x) 3)
3.0ms
(pow.f64 (*.f64 x x) 3)
2.0ms
(fma.f64 1049934947/10000000000 (*.f64 x x) 1)

rewrite47.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
334×log1p-expm1-u_binary64
334×expm1-log1p-u_binary64
327×add-cbrt-cube_binary64
322×add-log-exp_binary64
321×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
036139
1763112
Stop Event
node limit
Counts
4 → 72
Calls

4 calls:

45.0ms
(pow.f64 (*.f64 (pow.f64 x 3) x) 3)
45.0ms
(fma.f64 1049934947/10000000000 (*.f64 x x) 1)
45.0ms
(pow.f64 (*.f64 x x) 3)
45.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))))) x) (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)))))))

simplify36.0ms (1%)

Algorithm
egg-herbie
Rules
688×fma-neg_binary64
547×cancel-sign-sub-inv_binary64
514×associate-*l*_binary64
374×associate-*r*_binary64
363×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
046393
1120375
2308371
3938369
43390369
Stop Event
node limit
Counts
120 → 93

prune286.0ms (8.2%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1160116
Fresh033
Picked011
Done000
Total1164120
Error
0b
Counts
120 → 4
Alt Table
StatusErrorProgram
32.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 (log.f64 (exp.f64 (*.f64 (*.f64 x x) 7715471019/10000000000)))) (*.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)
29.8b
(expm1.f64 (log1p.f64 (/.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))))) x) (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)))))))))
30.2b
(/.f64 1/2 x)
32.7b
(-.f64 (+.f64 (*.f64 3321371254951887171/12500000000000000000 (pow.f64 x 5)) x) (+.f64 (*.f64 9156128575487588197208397249/125000000000000000000000000000 (pow.f64 x 7)) (*.f64 833192009/1250000000 (pow.f64 x 3))))
Compiler

Compiled 10591 to 7125 computations (32.7% saved)

localize2.0ms (0%)

prune6.0ms (0.2%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New000
Fresh022
Picked011
Done011
Total044
Error
0b
Counts
4 → 4
Alt Table
StatusErrorProgram
32.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 (log.f64 (exp.f64 (*.f64 (*.f64 x x) 7715471019/10000000000)))) (*.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)
29.8b
(expm1.f64 (log1p.f64 (/.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))))) x) (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)))))))))
30.2b
(/.f64 1/2 x)
32.7b
(-.f64 (+.f64 (*.f64 3321371254951887171/12500000000000000000 (pow.f64 x 5)) x) (+.f64 (*.f64 9156128575487588197208397249/125000000000000000000000000000 (pow.f64 x 7)) (*.f64 833192009/1250000000 (pow.f64 x 3))))
Compiler

Compiled 495 to 198 computations (60% saved)

localize37.0ms (1.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 x x) 7715471019/10000000000)
0.2b
(*.f64 1049934947/10000000000 (*.f64 x x))
1.4b
(log.f64 (exp.f64 (*.f64 (*.f64 x x) 7715471019/10000000000)))
29.1b
(/.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 (log.f64 (exp.f64 (*.f64 (*.f64 x x) 7715471019/10000000000)))) (*.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)))))

series13.0ms (0.4%)

Counts
3 → 36
Calls

3 calls:

8.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 (log.f64 (exp.f64 (*.f64 (*.f64 x x) 7715471019/10000000000)))) (*.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)))))
2.0ms
(log.f64 (exp.f64 (*.f64 (*.f64 x x) 7715471019/10000000000)))
2.0ms
(*.f64 (*.f64 x x) 7715471019/10000000000)

rewrite48.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
504×log1p-expm1-u_binary64
504×expm1-log1p-u_binary64
192×prod-diff_binary64
178×unpow-prod-down_binary64
177×fma-def_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
047189
11074149
Stop Event
node limit
Counts
3 → 54
Calls

3 calls:

46.0ms
(*.f64 (*.f64 x x) 7715471019/10000000000)
46.0ms
(log.f64 (exp.f64 (*.f64 (*.f64 x x) 7715471019/10000000000)))
46.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 (log.f64 (exp.f64 (*.f64 (*.f64 x x) 7715471019/10000000000)))) (*.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)))))

simplify33.0ms (0.9%)

Algorithm
egg-herbie
Rules
983×fma-neg_binary64
476×times-frac_binary64
413×unswap-sqr_binary64
289×associate-*l*_binary64
262×associate-/r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
043384
1108384
2255380
3710378
43052378
Stop Event
node limit
Counts
90 → 58

prune148.0ms (4.2%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New71071
Fresh011
Picked011
Done022
Total71475
Error
0b
Counts
75 → 4
Alt Table
StatusErrorProgram
32.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 (log.f64 (exp.f64 (*.f64 (*.f64 x x) 7715471019/10000000000)))) (*.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)
29.8b
(expm1.f64 (log1p.f64 (/.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))))) x) (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)))))))))
30.2b
(/.f64 1/2 x)
32.7b
(-.f64 (+.f64 (*.f64 3321371254951887171/12500000000000000000 (pow.f64 x 5)) x) (+.f64 (*.f64 9156128575487588197208397249/125000000000000000000000000000 (pow.f64 x 7)) (*.f64 833192009/1250000000 (pow.f64 x 3))))
Compiler

Compiled 9365 to 3461 computations (63% saved)

regimes314.0ms (9%)

Accuracy

Total 0.2b remaining (95.5%)

Threshold costs 0.2b (95.5%)

Counts
58 → 3
Compiler

Compiled 7742 to 4938 computations (36.2% saved)

bsearch94.0ms (2.7%)

Steps
ItersRangePoint
10
2.585335835053264
115692508903.11041
30.46935738276203
10
-86777253315.26514
-0.027137818176204247
-30.324308548599628
Compiler

Compiled 2 to 1 computations (50% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
16×*-commutative_binary64
11×+-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057280
186280
Stop Event
saturated

end195.0ms (5.6%)

Compiler

Compiled 675 to 246 computations (63.6% saved)

Profiling

Loading profile data...