Details

Time bar (total: 2.8s)

analyze10.0ms (0.3%)

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)

sample2.0s (70.1%)

Results
1.9s8256×body128valid
Compiler

Compiled 524 to 140 computations (73.3% saved)

prune4.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
31.3b
Counts
2 → 1
Alt Table
StatusErrorProgram
31.3b
(*.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 522 to 138 computations (73.6% saved)

localize40.0ms (1.4%)

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))
15.1b
(*.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)
30.7b
(/.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)))))

series21.0ms (0.7%)

Counts
4 → 48
Calls

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

rewrite94.0ms (3.3%)

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 → 53
Calls

4 calls:

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

prune140.0ms (4.9%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New992101
Fresh000
Picked101
Done000
Total1002102
Error
0b
Counts
102 → 2
Alt Table
StatusErrorProgram
32.4b
(-.f64 x (*.f64 833192009/1250000000 (pow.f64 x 3)))
31.1b
(+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 600041/2386628 (/.f64 1 (pow.f64 x 3))))
Compiler

Compiled 11895 to 4558 computations (61.7% saved)

localize7.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

series9.0ms (0.3%)

Counts
3 → 15
Calls

3 calls:

3.0ms
(*.f64 600041/2386628 (/.f64 1 (pow.f64 x 3)))
3.0ms
(+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 600041/2386628 (/.f64 1 (pow.f64 x 3))))
3.0ms
(/.f64 1 (pow.f64 x 3))

rewrite62.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
509×log-prod_binary64
296×fma-def_binary64
203×expm1-udef_binary64
203×log1p-udef_binary64
177×log-pow_binary64
Counts
3 → 113
Calls

3 calls:

60.0ms
(+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 600041/2386628 (/.f64 1 (pow.f64 x 3))))
60.0ms
(*.f64 600041/2386628 (/.f64 1 (pow.f64 x 3)))
60.0ms
(/.f64 1 (pow.f64 x 3))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01224
126722
2290322
3509322

prune81.0ms (2.8%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New1280128
Fresh011
Picked011
Done000
Total1282130
Error
0b
Counts
130 → 2
Alt Table
StatusErrorProgram
32.4b
(-.f64 x (*.f64 833192009/1250000000 (pow.f64 x 3)))
31.1b
(+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 600041/2386628 (/.f64 1 (pow.f64 x 3))))
Compiler

Compiled 1900 to 1533 computations (19.3% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 833192009/1250000000 (pow.f64 x 3))

series3.0ms (0.1%)

Counts
1 → 0
Calls

1 calls:

3.0ms
(*.f64 833192009/1250000000 (pow.f64 x 3))

rewrite74.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
880×log1p-udef_binary64
476×log1p-expm1-u_binary64
476×expm1-log1p-u_binary64
319×unpow-prod-down_binary64
235×log-prod_binary64
Counts
1 → 17
Calls

1 calls:

74.0ms
(*.f64 833192009/1250000000 (pow.f64 x 3))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11257
212627
348507
462067

prune9.0ms (0.3%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New17017
Fresh000
Picked011
Done011
Total17219
Error
0b
Counts
19 → 2
Alt Table
StatusErrorProgram
32.4b
(-.f64 x (*.f64 833192009/1250000000 (pow.f64 x 3)))
31.1b
(+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 600041/2386628 (/.f64 1 (pow.f64 x 3))))
Compiler

Compiled 202 to 162 computations (19.8% saved)

regimes125.0ms (4.4%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0.0b (0%)

Counts
36 → 3
Compiler

Compiled 1466 to 808 computations (44.9% saved)

bsearch93.0ms (3.3%)

Steps
ItersRangePoint
11
1.1016569631647013e-5
41566557878534690.0
0.941640817299435
10
-220825.39260781326
-2.058476138691911e-6
-0.9501696052492691
Compiler

Compiled 2 to 1 computations (50% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
sub-neg_binary64
distribute-lft-neg-in_binary64
distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02252
12952
23752
34152
44452
54552
64452

end72.0ms (2.5%)

Compiler

Compiled 94 to 74 computations (21.3% saved)

Profiling

Loading profile data...