Details

Time bar (total: 2.5min)

analyze1.8s (1.2%)

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
6.2%93.7%0.1%5
6.2%90.5%3.2%6
21.9%67.1%11%7
23.4%64.8%11.8%8
32%52.7%15.3%9
33.2%51.3%15.5%10
37.7%45.2%17.2%11
38.3%44.4%17.2%12
40.6%41.3%18%13
41%41%18%14
Compiler

Compiled 15 to 12 computations (20% saved)

sample3.7s (2.5%)

Results
1.3s6038×body128valid
797.0ms1057×body1024valid
374.0ms661×body512valid
342.0ms528×body1024invalid
265.0ms1494×body128invalid
170.0ms351×body512invalid
156.0ms420×body256valid
77.0ms80×body2048valid
59.0ms178×body256invalid
Compiler

Compiled 44 to 35 computations (20.5% saved)

simplify223.0ms (0.1%)

Algorithm
egg-herbie
Rules
2748×fma-def_binary64
1264×fma-neg_binary64
934×associate--r-_binary64
475×cancel-sign-sub-inv_binary64
423×sub-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01018
12217
24017
38615
416315
534415
666615
7121715
8146315
9160815
10178715
11232215
12292615
13298715
14308915
15313315
16314215
17314215
18322515
19323315
20323715
21497915

prune5.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
20.0b
Counts
3 → 1
Alt Table
StatusErrorProgram
20.0b
(-.f64 1 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))))
Compiler

Compiled 48 to 35 computations (27.1% saved)

localize13.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (-.f64 x y) (+.f64 y -1))
3.4b
(log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1)))

series125.0ms (0.1%)

Counts
2 → 48
Calls

2 calls:

108.0ms
(log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1)))
17.0ms
(/.f64 (-.f64 x y) (+.f64 y -1))

rewrite169.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
898×prod-diff_binary64
716×fma-udef_binary64
231×fma-neg_binary64
170×expm1-udef_binary64
170×log1p-udef_binary64
Counts
2 → 88
Calls

2 calls:

165.0ms
(/.f64 (-.f64 x y) (+.f64 y -1))
165.0ms
(log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0822
118122
2254622
3471422
4451722
5500622
000
100

simplify132.0ms (0.1%)

Algorithm
egg-herbie
Rules
475×associate-+r+_binary64
373×sub-neg_binary64
335×+-commutative_binary64
305×cancel-sign-sub-inv_binary64
303×associate-+l+_binary64
Counts
136 → 155
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02792659
19182609
240072577
351502577

prune263.0ms (0.2%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1514155
Fresh000
Picked011
Done000
Total1515156
Error
0.1b
Counts
156 → 5
Alt Table
StatusErrorProgram
20.0b
(-.f64 1 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))))
44.9b
(-.f64 1 (-.f64 (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) y)) (+.f64 (/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2))) (+.f64 (log.f64 (/.f64 -1 y)) (+.f64 (/.f64 1 (pow.f64 y 2)) (log.f64 (-.f64 1 x)))))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))) (+.f64 (/.f64 x (*.f64 (-.f64 1 x) y)) (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2))))))))
47.6b
(-.f64 1 (+.f64 (+.f64 (/.f64 y (*.f64 (-.f64 y 1) x)) (log.f64 (/.f64 -1 (-.f64 y 1)))) (-.f64 (/.f64 y x) (+.f64 (*.f64 (/.f64 y (-.f64 y 1)) (/.f64 y x)) (+.f64 (/.f64 1 x) (log.f64 (/.f64 -1 x)))))))
58.3b
(-.f64 1 (-.f64 (log.f64 x) (log.f64 (-.f64 y 1))))
40.4b
(-.f64 1 (+.f64 (+.f64 (log1p.f64 (neg.f64 x)) (log.f64 (/.f64 -1 y))) (-.f64 (/.f64 1 (*.f64 y (-.f64 1 x))) (/.f64 x (*.f64 y (-.f64 1 x))))))
Compiler

Compiled 5723 to 3985 computations (30.4% saved)

localize26.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 y (-.f64 1 x))
0.2b
(+.f64 (log1p.f64 (neg.f64 x)) (log.f64 (/.f64 -1 y)))
0.7b
(/.f64 1 (*.f64 y (-.f64 1 x)))
5.9b
(/.f64 x (*.f64 y (-.f64 1 x)))

series464.0ms (0.3%)

Counts
4 → 96
Calls

4 calls:

417.0ms
(+.f64 (log1p.f64 (neg.f64 x)) (log.f64 (/.f64 -1 y)))
21.0ms
(/.f64 x (*.f64 y (-.f64 1 x)))
18.0ms
(/.f64 1 (*.f64 y (-.f64 1 x)))
7.0ms
(*.f64 y (-.f64 1 x))

rewrite125.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
735×prod-diff_binary64
143×add-sqr-sqrt_binary64
139×egg-rr
134×expm1-log1p-u_binary64
133×log1p-expm1-u_binary64
Counts
4 → 139
Calls

4 calls:

116.0ms
(*.f64 y (-.f64 1 x))
116.0ms
(+.f64 (log1p.f64 (neg.f64 x)) (log.f64 (/.f64 -1 y)))
116.0ms
(/.f64 1 (*.f64 y (-.f64 1 x)))
115.0ms
(/.f64 x (*.f64 y (-.f64 1 x)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01440
129538
2354538
3492238
000
100

simplify151.0ms (0.1%)

Algorithm
egg-herbie
Rules
891×sub-neg_binary64
416×cancel-sign-sub-inv_binary64
378×distribute-neg-in_binary64
334×fma-neg_binary64
321×neg-mul-1_binary64
Counts
235 → 202
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01081379
12991309
28621309
327481275
443501275
547131247
650051247

prune450.0ms (0.3%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New2342236
Fresh033
Picked101
Done011
Total2356241
Error
0.1b
Counts
241 → 6
Alt Table
StatusErrorProgram
55.5b
(-.f64 1 (+.f64 (+.f64 (/.f64 -1 x) (-.f64 (log.f64 (/.f64 -1 y)) (log.f64 (/.f64 -1 x)))) (-.f64 (/.f64 1 (*.f64 y (-.f64 1 x))) (/.f64 x (*.f64 y (-.f64 1 x))))))
58.3b
(-.f64 1 (-.f64 (log.f64 x) (log.f64 (-.f64 y 1))))
20.0b
(-.f64 1 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))))
44.9b
(-.f64 1 (-.f64 (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) y)) (+.f64 (/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2))) (+.f64 (log.f64 (/.f64 -1 y)) (+.f64 (/.f64 1 (pow.f64 y 2)) (log.f64 (-.f64 1 x)))))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))) (+.f64 (/.f64 x (*.f64 (-.f64 1 x) y)) (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2))))))))
47.6b
(-.f64 1 (+.f64 (+.f64 (/.f64 y (*.f64 (-.f64 y 1) x)) (log.f64 (/.f64 -1 (-.f64 y 1)))) (-.f64 (/.f64 y x) (+.f64 (*.f64 (/.f64 y (-.f64 y 1)) (/.f64 y x)) (+.f64 (/.f64 1 x) (log.f64 (/.f64 -1 x)))))))
48.8b
(-.f64 1 (+.f64 (*.f64 (-.f64 (pow.f64 (log1p.f64 x) 2) (pow.f64 (log.f64 (/.f64 -1 y)) 2)) (/.f64 1 (-.f64 (log1p.f64 x) (log.f64 (/.f64 -1 y))))) (-.f64 (/.f64 1 (*.f64 y (-.f64 1 x))) (/.f64 x (*.f64 y (-.f64 1 x))))))
Compiler

Compiled 7783 to 5238 computations (32.7% saved)

localize64.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
5.9b
(/.f64 x (*.f64 (-.f64 1 x) y))
7.0b
(/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))
7.2b
(-.f64 (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) y)) (+.f64 (/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2))) (+.f64 (log.f64 (/.f64 -1 y)) (+.f64 (/.f64 1 (pow.f64 y 2)) (log.f64 (-.f64 1 x)))))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))) (+.f64 (/.f64 x (*.f64 (-.f64 1 x) y)) (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))))))
22.5b
(/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))

series301.0ms (0.2%)

Counts
4 → 58
Calls

4 calls:

127.0ms
(-.f64 (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) y)) (+.f64 (/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2))) (+.f64 (log.f64 (/.f64 -1 y)) (+.f64 (/.f64 1 (pow.f64 y 2)) (log.f64 (-.f64 1 x)))))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))) (+.f64 (/.f64 x (*.f64 (-.f64 1 x) y)) (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))))))
74.0ms
(/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))
74.0ms
(/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))
26.0ms
(/.f64 x (*.f64 (-.f64 1 x) y))

rewrite141.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
357×log1p-expm1-u_binary64
357×expm1-log1p-u_binary64
339×add-log-exp_binary64
338×add-exp-log_binary64
327×pow1_binary64
Counts
4 → 82
Calls

4 calls:

135.0ms
(/.f64 x (*.f64 (-.f64 1 x) y))
135.0ms
(/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))
135.0ms
(-.f64 (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) y)) (+.f64 (/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2))) (+.f64 (log.f64 (/.f64 -1 y)) (+.f64 (/.f64 1 (pow.f64 y 2)) (log.f64 (-.f64 1 x)))))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))) (+.f64 (/.f64 x (*.f64 (-.f64 1 x) y)) (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))))))
134.0ms
(/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031132
1747127
24977127
35066127
000
100

simplify163.0ms (0.1%)

Algorithm
egg-herbie
Rules
373×fma-def_binary64
327×associate-/r*_binary64
291×sub-neg_binary64
234×cancel-sign-sub-inv_binary64
194×times-frac_binary64
Counts
140 → 165
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01832086
15502034
218902016
347282016
449972016
549572016

prune548.0ms (0.4%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1632165
Fresh134
Picked011
Done011
Total1647171
Error
0.1b
Counts
171 → 7
Alt Table
StatusErrorProgram
20.0b
(-.f64 1 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))))
44.9b
(-.f64 1 (-.f64 (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) y)) (+.f64 (/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2))) (+.f64 (log.f64 (/.f64 -1 y)) (+.f64 (/.f64 1 (pow.f64 y 2)) (log.f64 (-.f64 1 x)))))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2)))) (+.f64 (/.f64 x (*.f64 (-.f64 1 x) y)) (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 x) 2) (pow.f64 y 2))))))))
47.6b
(-.f64 1 (+.f64 (+.f64 (/.f64 y (*.f64 (-.f64 y 1) x)) (log.f64 (/.f64 -1 (-.f64 y 1)))) (-.f64 (/.f64 y x) (+.f64 (*.f64 (/.f64 y (-.f64 y 1)) (/.f64 y x)) (+.f64 (/.f64 1 x) (log.f64 (/.f64 -1 x)))))))
58.3b
(-.f64 1 (-.f64 (log.f64 x) (log.f64 (-.f64 y 1))))
55.5b
(-.f64 1 (+.f64 (-.f64 (+.f64 (/.f64 1 y) (+.f64 (log.f64 (/.f64 -1 y)) (/.f64 1/2 (*.f64 y y)))) (log.f64 (/.f64 -1 x))) (/.f64 -1 x)))
45.1b
(-.f64 1 (/.f64 (-.f64 (pow.f64 (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) y)) (+.f64 (fma.f64 x (pow.f64 (*.f64 (-.f64 1 x) y) -2) (log.f64 (/.f64 -1 y))) (+.f64 (pow.f64 y -2) (log1p.f64 (neg.f64 x))))) 3) (pow.f64 (fma.f64 (/.f64 (*.f64 x x) (pow.f64 (*.f64 (-.f64 1 x) y) 2)) 1/2 (fma.f64 1/2 (pow.f64 (*.f64 (-.f64 1 x) y) -2) (/.f64 x (*.f64 (-.f64 1 x) y)))) 3)) (+.f64 (pow.f64 (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) y)) (+.f64 (fma.f64 x (pow.f64 (*.f64 (-.f64 1 x) y) -2) (log.f64 (/.f64 -1 y))) (+.f64 (pow.f64 y -2) (log1p.f64 (neg.f64 x))))) 2) (+.f64 (pow.f64 (fma.f64 (/.f64 (*.f64 x x) (pow.f64 (*.f64 (-.f64 1 x) y) 2)) 1/2 (fma.f64 1/2 (pow.f64 (*.f64 (-.f64 1 x) y) -2) (/.f64 x (*.f64 (-.f64 1 x) y)))) 2) (*.f64 (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) y)) (+.f64 (fma.f64 x (pow.f64 (*.f64 (-.f64 1 x) y) -2) (log.f64 (/.f64 -1 y))) (+.f64 (pow.f64 y -2) (log1p.f64 (neg.f64 x))))) (fma.f64 (/.f64 (*.f64 x x) (pow.f64 (*.f64 (-.f64 1 x) y) 2)) 1/2 (fma.f64 1/2 (pow.f64 (*.f64 (-.f64 1 x) y) -2) (/.f64 x (*.f64 (-.f64 1 x) y)))))))))
48.8b
(-.f64 1 (+.f64 (*.f64 (-.f64 (pow.f64 (log1p.f64 x) 2) (pow.f64 (log.f64 (/.f64 -1 y)) 2)) (/.f64 1 (-.f64 (log1p.f64 x) (log.f64 (/.f64 -1 y))))) (-.f64 (/.f64 1 (*.f64 y (-.f64 1 x))) (/.f64 x (*.f64 y (-.f64 1 x))))))
Compiler

Compiled 12972 to 9613 computations (25.9% saved)

localize72.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
5.9b
(/.f64 x (*.f64 (-.f64 1 x) y))
12.2b
(-.f64 (pow.f64 (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) y)) (+.f64 (fma.f64 x (pow.f64 (*.f64 (-.f64 1 x) y) -2) (log.f64 (/.f64 -1 y))) (+.f64 (pow.f64 y -2) (log1p.f64 (neg.f64 x))))) 3) (pow.f64 (fma.f64 (/.f64 (*.f64 x x) (pow.f64 (*.f64 (-.f64 1 x) y) 2)) 1/2 (fma.f64 1/2 (pow.f64 (*.f64 (-.f64 1 x) y) -2) (/.f64 x (*.f64 (-.f64 1 x) y)))) 3))
13.2b
(/.f64 (-.f64 (pow.f64 (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) y)) (+.f64 (fma.f64 x (pow.f64 (*.f64 (-.f64 1 x) y) -2) (log.f64 (/.f64 -1 y))) (+.f64 (pow.f64 y -2) (log1p.f64 (neg.f64 x))))) 3) (pow.f64 (fma.f64 (/.f64 (*.f64 x x) (pow.f64 (*.f64 (-.f64 1 x) y) 2)) 1/2 (fma.f64 1/2 (pow.f64 (*.f64 (-.f64 1 x) y) -2) (/.f64 x (*.f64 (-.f64 1 x) y)))) 3)) (+.f64 (pow.f64 (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) y)) (+.f64 (fma.f64 x (pow.f64 (*.f64 (-.f64 1 x) y) -2) (log.f64 (/.f64 -1 y))) (+.f64 (pow.f64 y -2) (log1p.f64 (neg.f64 x))))) 2) (+.f64 (pow.f64 (fma.f64 (/.f64 (*.f64 x x) (pow.f64 (*.f64 (-.f64 1 x) y) 2)) 1/2 (fma.f64 1/2 (pow.f64 (*.f64 (-.f64 1 x) y) -2) (/.f64 x (*.f64 (-.f64 1 x) y)))) 2) (*.f64 (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) y)) (+.f64 (fma.f64 x (pow.f64 (*.f64 (-.f64 1 x) y) -2) (log.f64 (/.f64 -1 y))) (+.f64 (pow.f64 y -2) (log1p.f64 (neg.f64 x))))) (fma.f64 (/.f64 (*.f64 x x) (pow.f64 (*.f64 (-.f64 1 x) y) 2)) 1/2 (fma.f64 1/2 (pow.f64 (*.f64 (-.f64 1 x) y) -2) (/.f64 x (*.f64 (-.f64 1 x) y))))))))
22.5b
(/.f64 (*.f64 x x) (pow.f64 (*.f64 (-.f64 1 x) y) 2))

series2.4min (94%)

Calls

1 calls:

84.0ms
(/.f64 (*.f64 x x) (pow.f64 (*.f64 (-.f64 1 x) y) 2))

Profiling

Loading profile data...