Details

Time bar (total: 4.2s)

analyze1.0ms (0%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
50%0%50%2
Compiler

Compiled 13 to 11 computations (15.4% saved)

sample1.8s (41.8%)

Results
874.0ms2340×body1024valid
491.0ms4411×body128valid
288.0ms1003×body512valid
94.0ms502×body256valid
Compiler

Compiled 38 to 32 computations (15.8% saved)

simplify11.0ms (0.3%)

Algorithm
egg-herbie
Rules
39×fma-def_binary64
32×fma-neg_binary64
14×cancel-sign-sub-inv_binary64
12×sub-neg_binary64
10×distribute-rgt-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
11417
22017
32817
43617
55417
67917
79617
811317
912317
1012717
1112917
1211517

prune2.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
21.7b
Counts
3 → 1
Alt Table
StatusErrorProgram
21.7b
(-.f64 (/.f64 1 (sqrt.f64 x)) (/.f64 1 (sqrt.f64 (+.f64 x 1))))
Compiler

Compiled 47 to 38 computations (19.1% saved)

localize9.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(/.f64 1 (sqrt.f64 (+.f64 x 1)))
0.3b
(/.f64 1 (sqrt.f64 x))
2.9b
(-.f64 (/.f64 1 (sqrt.f64 x)) (/.f64 1 (sqrt.f64 (+.f64 x 1))))

series25.0ms (0.6%)

Counts
3 → 4
Calls

3 calls:

10.0ms
(/.f64 1 (sqrt.f64 x))
9.0ms
(-.f64 (/.f64 1 (sqrt.f64 x)) (/.f64 1 (sqrt.f64 (+.f64 x 1))))
6.0ms
(/.f64 1 (sqrt.f64 (+.f64 x 1)))

rewrite98.0ms (2.3%)

Algorithm
batch-egg-rewrite
Rules
776×prod-diff_binary64
428×fma-def_binary64
246×fma-neg_binary64
170×log1p-udef_binary64
169×expm1-udef_binary64
Counts
3 → 168
Calls

3 calls:

94.0ms
(/.f64 1 (sqrt.f64 (+.f64 x 1)))
94.0ms
(/.f64 1 (sqrt.f64 x))
94.0ms
(-.f64 (/.f64 1 (sqrt.f64 x)) (/.f64 1 (sqrt.f64 (+.f64 x 1))))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0932
120524
2257024
3475724
4494824

simplify123.0ms (2.9%)

Algorithm
egg-herbie
Rules
695×fma-neg_binary64
559×cancel-sign-sub-inv_binary64
543×unsub-neg_binary64
474×distribute-rgt-neg-in_binary64
424×sub-neg_binary64
Counts
172 → 175
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01847
15143
212239
333031
4105831
5209331
6352631
7413931
8486431
9494931
10500031
11480231

prune248.0ms (5.8%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New15817175
Fresh000
Picked101
Done000
Total15917176
Error
21.0b
Counts
176 → 17
Alt Table
StatusErrorProgram
34.1b
(fma.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (-.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (fma.f64 (neg.f64 (pow.f64 (pow.f64 (+.f64 1 x) 1/4) -1)) (pow.f64 (pow.f64 (+.f64 1 x) 1/4) -1) (pow.f64 (+.f64 1 x) -1/2)))
33.8b
(fma.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 x) -1/2) (/.f64 -1 (sqrt.f64 (+.f64 1 x))))
33.6b
(fma.f64 (*.f64 (cbrt.f64 (/.f64 -1 (sqrt.f64 (+.f64 1 x)))) (cbrt.f64 (/.f64 -1 (sqrt.f64 (+.f64 1 x))))) (cbrt.f64 (/.f64 -1 (sqrt.f64 (+.f64 1 x)))) (pow.f64 x -1/2))
33.5b
(fma.f64 (cbrt.f64 (/.f64 1 (+.f64 1 x))) (neg.f64 (cbrt.f64 (pow.f64 (+.f64 1 x) -1/2))) (pow.f64 x -1/2))
31.0b
(/.f64 (+.f64 (pow.f64 (sqrt.f64 x) -3) (pow.f64 (/.f64 -1 (sqrt.f64 (+.f64 1 x))) 3)) (+.f64 (/.f64 1 x) (-.f64 (*.f64 (/.f64 -1 (sqrt.f64 (+.f64 1 x))) (/.f64 -1 (sqrt.f64 (+.f64 1 x)))) (*.f64 (pow.f64 x -1/2) (/.f64 -1 (sqrt.f64 (+.f64 1 x)))))))
32.4b
(+.f64 (fma.f64 (cbrt.f64 (pow.f64 x -1/2)) (cbrt.f64 (/.f64 1 x)) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1)) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1) (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1))))
21.8b
(/.f64 (-.f64 (/.f64 1 x) (/.f64 1 (+.f64 1 x))) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
33.6b
(+.f64 (fma.f64 -1 (/.f64 1 (neg.f64 (sqrt.f64 x))) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1)) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1) (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1))))
25.3b
(-.f64 (/.f64 1 (sqrt.f64 x)) (pow.f64 (+.f64 1 x) -1/2))
23.6b
(exp.f64 (log.f64 (-.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))))
21.9b
(*.f64 (+.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (-.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)))
33.8b
(fma.f64 (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2) (neg.f64 (pow.f64 (sqrt.f64 (+.f64 1 x)) -1/2)) (pow.f64 x -1/2))
34.2b
(fma.f64 (cbrt.f64 (pow.f64 x -1/2)) (cbrt.f64 (/.f64 1 x)) (/.f64 -1 (sqrt.f64 (+.f64 1 x))))
33.8b
(fma.f64 (pow.f64 (pow.f64 x 1/4) -1) (pow.f64 (pow.f64 x 1/4) -1) (/.f64 -1 (sqrt.f64 (+.f64 1 x))))
34.3b
(fma.f64 (pow.f64 (cbrt.f64 x) -1) (pow.f64 (cbrt.f64 (sqrt.f64 x)) -1) (/.f64 -1 (sqrt.f64 (+.f64 1 x))))
33.8b
(+.f64 (fma.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 x) -1/2) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1)) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1) (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 1 x))) -1) (pow.f64 (cbrt.f64 (+.f64 1 x)) -1))))
29.0b
(/.f64 (-.f64 (/.f64 1 x) (*.f64 (/.f64 -1 (sqrt.f64 (+.f64 1 x))) (/.f64 -1 (sqrt.f64 (+.f64 1 x))))) (-.f64 (pow.f64 x -1/2) (/.f64 -1 (sqrt.f64 (+.f64 1 x)))))
Compiler

Compiled 4898 to 3962 computations (19.1% saved)

localize14.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 1 (+.f64 1 x))
0.0b
(+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))
0.2b
(/.f64 (-.f64 (/.f64 1 x) (/.f64 1 (+.f64 1 x))) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
2.9b
(-.f64 (/.f64 1 x) (/.f64 1 (+.f64 1 x)))

series23.0ms (0.5%)

Counts
4 → 48
Calls

4 calls:

12.0ms
(/.f64 (-.f64 (/.f64 1 x) (/.f64 1 (+.f64 1 x))) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
5.0ms
(+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))
4.0ms
(/.f64 1 (+.f64 1 x))
3.0ms
(-.f64 (/.f64 1 x) (/.f64 1 (+.f64 1 x)))

rewrite84.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
347×fma-neg_binary64
243×expm1-udef_binary64
243×log1p-udef_binary64
192×egg-rr
147×log1p-expm1-u_binary64
Counts
4 → 192
Calls

4 calls:

81.0ms
(/.f64 1 (+.f64 1 x))
80.0ms
(+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))
80.0ms
(/.f64 (-.f64 (/.f64 1 x) (/.f64 1 (+.f64 1 x))) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
80.0ms
(-.f64 (/.f64 1 x) (/.f64 1 (+.f64 1 x)))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01261
129646
2389046
3486746

simplify73.0ms (1.7%)

Algorithm
egg-herbie
Rules
826×fma-neg_binary64
429×fma-def_binary64
342×associate-+l+_binary64
306×associate--l+_binary64
271×associate-/r*_binary64
Counts
240 → 264
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01561504
14591439
213861274
346641268
453531268

prune236.0ms (5.6%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New2604264
Fresh16016
Picked101
Done000
Total2774281
Error
5.9b
Counts
281 → 4
Alt Table
StatusErrorProgram
33.7b
(/.f64 (-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3)))) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
21.6b
(+.f64 (pow.f64 x -1/2) (neg.f64 (pow.f64 (+.f64 1 x) -1/2)))
38.2b
(fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 x 5))) -3/8 (fma.f64 1/2 (sqrt.f64 (/.f64 1 (pow.f64 x 3))) (*.f64 5/16 (sqrt.f64 (/.f64 1 (pow.f64 x 7))))))
21.3b
(/.f64 (/.f64 (/.f64 (-.f64 (+.f64 1 x) x) x) (+.f64 1 x)) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
Compiler

Compiled 7245 to 5756 computations (20.6% saved)

localize12.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (/.f64 (-.f64 (+.f64 1 x) x) x) (+.f64 1 x))
0.0b
(+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))
0.2b
(/.f64 (/.f64 (/.f64 (-.f64 (+.f64 1 x) x) x) (+.f64 1 x)) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
2.4b
(-.f64 (+.f64 1 x) x)

series22.0ms (0.5%)

Counts
3 → 36
Calls

3 calls:

19.0ms
(/.f64 (/.f64 (/.f64 (-.f64 (+.f64 1 x) x) x) (+.f64 1 x)) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
2.0ms
(/.f64 (/.f64 (-.f64 (+.f64 1 x) x) x) (+.f64 1 x))
1.0ms
(-.f64 (+.f64 1 x) x)

rewrite78.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
567×fma-def_binary64
351×fma-neg_binary64
230×expm1-udef_binary64
230×log1p-udef_binary64
147×add-sqr-sqrt_binary64
Counts
3 → 83
Calls

3 calls:

76.0ms
(/.f64 (/.f64 (-.f64 (+.f64 1 x) x) x) (+.f64 1 x))
76.0ms
(/.f64 (/.f64 (/.f64 (-.f64 (+.f64 1 x) x) x) (+.f64 1 x)) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
76.0ms
(-.f64 (+.f64 1 x) x)
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01254
129736
2387836
3527136

simplify64.0ms (1.5%)

Algorithm
egg-herbie
Rules
534×associate-+l+_binary64
487×fma-neg_binary64
436×fma-def_binary64
330×associate-/r*_binary64
303×associate--l+_binary64
Counts
119 → 121
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01361158
1394976
21233877
34789877
45176877

prune182.0ms (4.3%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New1764180
Fresh123
Picked101
Done000
Total1786184
Error
0.0b
Counts
184 → 6
Alt Table
StatusErrorProgram
33.7b
(/.f64 (-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3)))) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
0.1b
(*.f64 (/.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))) (/.f64 (pow.f64 x -1/2) (+.f64 1 x)))
38.2b
(fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 x 5))) -3/8 (fma.f64 1/2 (sqrt.f64 (/.f64 1 (pow.f64 x 3))) (*.f64 5/16 (sqrt.f64 (/.f64 1 (pow.f64 x 7))))))
0.5b
(*.f64 (/.f64 1 x) (/.f64 1 (*.f64 (+.f64 1 x) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))))
5.6b
(/.f64 (*.f64 (/.f64 (pow.f64 x -1/2) 1) (/.f64 (pow.f64 x -1/2) (+.f64 1 x))) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
0.6b
(*.f64 (/.f64 (/.f64 1 x) (hypot.f64 (pow.f64 x -1/4) (pow.f64 (+.f64 1 x) -1/4))) (/.f64 (/.f64 1 (+.f64 1 x)) (hypot.f64 (pow.f64 x -1/4) (pow.f64 (+.f64 1 x) -1/4))))
Compiler

Compiled 5499 to 4297 computations (21.9% saved)

localize11.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
0.0b
(+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))
0.0b
(*.f64 (/.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))) (/.f64 (pow.f64 x -1/2) (+.f64 1 x)))
0.1b
(/.f64 (pow.f64 x -1/2) (+.f64 1 x))

series68.0ms (1.6%)

Counts
3 → 8
Calls

3 calls:

28.0ms
(/.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
26.0ms
(*.f64 (/.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))) (/.f64 (pow.f64 x -1/2) (+.f64 1 x)))
13.0ms
(/.f64 (pow.f64 x -1/2) (+.f64 1 x))

rewrite80.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
782×prod-diff_binary64
127×add-sqr-sqrt_binary64
126×egg-rr
125×log1p-expm1-u_binary64
125×expm1-log1p-u_binary64
Counts
3 → 126
Calls

3 calls:

78.0ms
(/.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
78.0ms
(*.f64 (/.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))) (/.f64 (pow.f64 x -1/2) (+.f64 1 x)))
78.0ms
(/.f64 (pow.f64 x -1/2) (+.f64 1 x))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01160
125954
2355754
3504254

simplify66.0ms (1.6%)

Algorithm
egg-herbie
Rules
514×associate-+l+_binary64
445×sub-neg_binary64
388×associate-+r+_binary64
378×fma-def_binary64
375×fma-neg_binary64
Counts
134 → 141
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
097683
1283503
2921466
34185466
44989466
54950466

prune249.0ms (5.9%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New1964200
Fresh415
Picked101
Done000
Total2015206
Error
0b
Counts
206 → 5
Alt Table
StatusErrorProgram
0.1b
(/.f64 (*.f64 (neg.f64 (pow.f64 x -1/2)) (/.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 x 1) -1/2)))) (neg.f64 (+.f64 x 1)))
0.4b
(/.f64 (pow.f64 x -1) (*.f64 (+.f64 x 1) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 x 1) -1/2))))
33.7b
(/.f64 (-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3)))) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2)))
0.2b
(*.f64 (/.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))) (*.f64 (pow.f64 x -1/2) (/.f64 1 (+.f64 x 1))))
0.3b
(*.f64 (/.f64 (pow.f64 x -1/2) (+.f64 (pow.f64 x -1/2) (pow.f64 (+.f64 1 x) -1/2))) (pow.f64 (/.f64 (+.f64 x 1) (pow.f64 x -1/2)) -1))
Compiler

Compiled 5821 to 4603 computations (20.9% saved)

regimes529.0ms (12.5%)

Accuracy

Total 0.1b remaining (88%)

Threshold costs 0.1b (88%)

Counts
246 → 1
Compiler

Compiled 10990 to 8796 computations (20% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01335
12835
24233
35533
46133
56333
66133

end159.0ms (3.7%)

Compiler

Compiled 170 to 135 computations (20.6% saved)

Profiling

Loading profile data...