Details

Time bar (total: 2.8s)

analyze3.0ms (0.1%)

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

Compiled 17 to 11 computations (35.3% saved)

sample221.0ms (7.9%)

Algorithm
intervals
Results
9.0ms256×body128valid
6.0ms256×pre128true
Compiler

Compiled 30 to 20 computations (33.3% saved)

simplify87.0ms (3.1%)

Algorithm
egg-herbie
Rules
649×fma-neg_binary64
504×div-sub_binary64
481×fma-def_binary64
326×times-frac_binary64
174×associate-/l/_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
11310
22110
33710
46410
511310
621610
741510
875410
9118310
10153710
11161210
12165710
13168410
14169410
15170210
16170210
17160010

prune2.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
62.0b
Counts
2 → 1
Alt Table
StatusErrorProgram
62.0b
(/.f64 (-.f64 x lo) (-.f64 hi lo))
Compiler

Compiled 30 to 18 computations (40% saved)

localize4.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
62.0b
(/.f64 (-.f64 x lo) (-.f64 hi lo))

series23.0ms (0.8%)

Counts
1 → 36
Calls

1 calls:

23.0ms
(/.f64 (-.f64 x lo) (-.f64 hi lo))

rewrite11.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
37×*-un-lft-identity_binary64
37×add-sqr-sqrt_binary64
25×times-frac_binary64
13×add-cube-cbrt_binary64
12×distribute-lft-out--_binary64
Counts
1 → 54
Calls

1 calls:

7.0ms
(/.f64 (-.f64 x lo) (-.f64 hi lo))

simplify87.0ms (3.1%)

Algorithm
egg-herbie
Rules
810×fma-neg_binary64
418×fma-def_binary64
402×associate--l+_binary64
279×cancel-sign-sub-inv_binary64
264×times-frac_binary64
Counts
90 → 84
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01622093
14362033
213581879
346431879
453461879

prune46.0ms (1.6%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New79584
Fresh000
Picked101
Done000
Total80585
Error
51.2b
Counts
85 → 5
Alt Table
StatusErrorProgram
57.7b
(+.f64 (/.f64 x hi) (fma.f64 (/.f64 x hi) (*.f64 (+.f64 (/.f64 lo hi) 1) (/.f64 lo hi)) (*.f64 (/.f64 lo hi) (-.f64 -1 (/.f64 lo hi)))))
51.9b
(+.f64 (/.f64 x hi) (-.f64 (fma.f64 (/.f64 x hi) (*.f64 (+.f64 (/.f64 lo hi) 1) (/.f64 lo hi)) (*.f64 (/.f64 lo hi) (-.f64 -1 (/.f64 lo hi)))) (pow.f64 (/.f64 lo hi) 3)))
51.9b
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (+.f64 (/.f64 x lo) (*.f64 (/.f64 x lo) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))))
57.6b
(-.f64 (+.f64 1 (+.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) (pow.f64 (/.f64 hi lo) 3))) (+.f64 (/.f64 x lo) (*.f64 (/.f64 x lo) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))))
51.9b
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
Compiler

Compiled 1959 to 709 computations (63.8% saved)

localize9.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))
0.2b
(*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo))
0.4b
(*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))
1.5b
(+.f64 1 (/.f64 hi lo))

series99.0ms (3.5%)

Counts
4 → 90
Calls

4 calls:

53.0ms
(*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))
25.0ms
(*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo))
14.0ms
(+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))
6.0ms
(+.f64 1 (/.f64 hi lo))

rewrite33.0ms (1.2%)

Algorithm
rewrite-expression-head
Rules
32×add-sqr-sqrt_binary64
28×*-un-lft-identity_binary64
26×associate-*r*_binary64
22×add-cube-cbrt_binary64
20×times-frac_binary64
Counts
4 → 111
Calls

4 calls:

10.0ms
(*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))
9.0ms
(*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo))
4.0ms
(+.f64 1 (/.f64 hi lo))
3.0ms
(+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))

simplify79.0ms (2.8%)

Algorithm
egg-herbie
Rules
553×associate-*l/_binary64
505×distribute-rgt-in_binary64
475×distribute-lft-in_binary64
415×fma-def_binary64
398×associate-/l*_binary64
Counts
201 → 173
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01743122
14442831
215262532
351422532

prune161.0ms (5.7%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New18213195
Fresh224
Picked101
Done000
Total18515200
Error
51.2b
Counts
200 → 15
Alt Table
StatusErrorProgram
51.9b
(-.f64 (/.f64 (+.f64 (pow.f64 1 3) (pow.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) 3)) (+.f64 (*.f64 1 1) (-.f64 (*.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (*.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (+.f64 1 (*.f64 (fma.f64 hi (/.f64 hi lo) hi) (/.f64 1 lo))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1)) (cbrt.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1))) (cbrt.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (/.f64 x lo))
51.9b
(-.f64 (cbrt.f64 (pow.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1) 3)) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
52.0b
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (*.f64 (/.f64 hi lo) (/.f64 x lo)))
51.9b
(+.f64 (/.f64 x hi) (-.f64 (fma.f64 (/.f64 x hi) (*.f64 (+.f64 (/.f64 lo hi) 1) (/.f64 lo hi)) (*.f64 (/.f64 lo hi) (-.f64 -1 (/.f64 lo hi)))) (pow.f64 (/.f64 lo hi) 3)))
51.9b
(-.f64 (log.f64 (*.f64 (exp.f64 1) (exp.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (+.f64 1 (*.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (*.f64 (cbrt.f64 (/.f64 hi lo)) (cbrt.f64 (/.f64 hi lo)))) (cbrt.f64 (/.f64 hi lo)))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (*.f64 (sqrt.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1)) (sqrt.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (cbrt.f64 (*.f64 (*.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))) (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (+.f64 1 (*.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 (*.f64 (cbrt.f64 hi) (cbrt.f64 hi)) (*.f64 (cbrt.f64 lo) (cbrt.f64 lo)))) (/.f64 (cbrt.f64 hi) (cbrt.f64 lo)))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
57.6b
(-.f64 (+.f64 1 (+.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) (pow.f64 (/.f64 hi lo) 3))) (+.f64 (/.f64 x lo) (*.f64 (/.f64 x lo) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))))
51.9b
(-.f64 (expm1.f64 (log1p.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (/.f64 (*.f64 x (-.f64 1 (*.f64 (/.f64 hi lo) (/.f64 hi lo)))) (*.f64 lo (-.f64 1 (/.f64 hi lo)))))
Compiler

Compiled 6525 to 3005 computations (53.9% saved)

localize15.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (/.f64 hi lo) (/.f64 hi lo))
1.0b
(-.f64 1 (*.f64 (/.f64 hi lo) (/.f64 hi lo)))
1.5b
(+.f64 1 (/.f64 hi lo))
34.9b
(/.f64 (*.f64 x (-.f64 1 (*.f64 (/.f64 hi lo) (/.f64 hi lo)))) (*.f64 lo (-.f64 1 (/.f64 hi lo))))

series185.0ms (6.6%)

Counts
3 → 84
Calls

3 calls:

92.0ms
(/.f64 (*.f64 x (-.f64 1 (*.f64 (/.f64 hi lo) (/.f64 hi lo)))) (*.f64 lo (-.f64 1 (/.f64 hi lo))))
61.0ms
(-.f64 1 (*.f64 (/.f64 hi lo) (/.f64 hi lo)))
32.0ms
(*.f64 (/.f64 hi lo) (/.f64 hi lo))

rewrite37.0ms (1.3%)

Algorithm
rewrite-expression-head
Rules
46×add-sqr-sqrt_binary64
41×times-frac_binary64
34×*-un-lft-identity_binary64
33×add-cube-cbrt_binary64
27×add-cbrt-cube_binary64
Counts
3 → 118
Calls

3 calls:

11.0ms
(/.f64 (*.f64 x (-.f64 1 (*.f64 (/.f64 hi lo) (/.f64 hi lo)))) (*.f64 lo (-.f64 1 (/.f64 hi lo))))
8.0ms
(*.f64 (/.f64 hi lo) (/.f64 hi lo))
8.0ms
(-.f64 1 (*.f64 (/.f64 hi lo) (/.f64 hi lo)))

simplify89.0ms (3.2%)

Algorithm
egg-herbie
Rules
610×associate-/l/_binary64
342×distribute-rgt-in_binary64
323×distribute-lft-in_binary64
255×fma-def_binary64
222×times-frac_binary64
Counts
202 → 195
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02033730
15883218
222402914
352082914

prune193.0ms (6.9%)

Pruning

15 alts after pruning (14 fresh and 1 done)

PrunedKeptTotal
New2170217
Fresh01414
Picked011
Done000
Total21715232
Error
51.2b
Counts
232 → 15
Alt Table
StatusErrorProgram
51.9b
(-.f64 (/.f64 (+.f64 (pow.f64 1 3) (pow.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) 3)) (+.f64 (*.f64 1 1) (-.f64 (*.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (*.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (+.f64 1 (*.f64 (fma.f64 hi (/.f64 hi lo) hi) (/.f64 1 lo))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1)) (cbrt.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1))) (cbrt.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (/.f64 x lo))
51.9b
(-.f64 (cbrt.f64 (pow.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1) 3)) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
52.0b
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (*.f64 (/.f64 hi lo) (/.f64 x lo)))
51.9b
(+.f64 (/.f64 x hi) (-.f64 (fma.f64 (/.f64 x hi) (*.f64 (+.f64 (/.f64 lo hi) 1) (/.f64 lo hi)) (*.f64 (/.f64 lo hi) (-.f64 -1 (/.f64 lo hi)))) (pow.f64 (/.f64 lo hi) 3)))
51.9b
(-.f64 (log.f64 (*.f64 (exp.f64 1) (exp.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (+.f64 1 (*.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (*.f64 (cbrt.f64 (/.f64 hi lo)) (cbrt.f64 (/.f64 hi lo)))) (cbrt.f64 (/.f64 hi lo)))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (*.f64 (sqrt.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1)) (sqrt.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (cbrt.f64 (*.f64 (*.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))) (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (+.f64 1 (*.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 (*.f64 (cbrt.f64 hi) (cbrt.f64 hi)) (*.f64 (cbrt.f64 lo) (cbrt.f64 lo)))) (/.f64 (cbrt.f64 hi) (cbrt.f64 lo)))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
57.6b
(-.f64 (+.f64 1 (+.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) (pow.f64 (/.f64 hi lo) 3))) (+.f64 (/.f64 x lo) (*.f64 (/.f64 x lo) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))))
51.9b
(-.f64 (expm1.f64 (log1p.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.9b
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (/.f64 (*.f64 x (-.f64 1 (*.f64 (/.f64 hi lo) (/.f64 hi lo)))) (*.f64 lo (-.f64 1 (/.f64 hi lo)))))
Compiler

Compiled 9334 to 4234 computations (54.6% saved)

localize12.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo))
0.2b
(log1p.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1))
0.4b
(expm1.f64 (log1p.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1)))
1.5b
(+.f64 1 (/.f64 hi lo))

series25.0ms (0.9%)

Counts
2 → 48
Calls

2 calls:

14.0ms
(log1p.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1))
11.0ms
(expm1.f64 (log1p.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1)))

rewrite3.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
expm1-log1p-u_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
2 → 22
Calls

2 calls:

0.0ms
(log1p.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1))
0.0ms
(expm1.f64 (log1p.f64 (fma.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo)) 1)))

simplify76.0ms (2.7%)

Algorithm
egg-herbie
Rules
615×fma-neg_binary64
278×distribute-neg-frac_binary64
247×distribute-rgt-neg-in_binary64
244×distribute-lft-neg-in_binary64
241×sub-neg_binary64
Counts
70 → 65
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0881405
12231282
26061142
325191121
448751121
550301121

prune142.0ms (5.1%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New1683171
Fresh11213
Picked101
Done101
Total1815186
Error
50.4b
Counts
186 → 5
Alt Table
StatusErrorProgram
52.0b
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (*.f64 (/.f64 hi lo) (/.f64 x lo)))
51.9b
(+.f64 (/.f64 x hi) (-.f64 (fma.f64 (/.f64 x hi) (*.f64 (+.f64 (/.f64 lo hi) 1) (/.f64 lo hi)) (*.f64 (/.f64 lo hi) (-.f64 -1 (/.f64 lo hi)))) (pow.f64 (/.f64 lo hi) 3)))
51.1b
(-.f64 (expm1.f64 (+.f64 (log.f64 2) (*.f64 (/.f64 hi lo) (+.f64 1/2 (/.f64 (*.f64 hi 3/8) lo))))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
57.5b
(-.f64 (*.f64 (/.f64 hi lo) (+.f64 1 (/.f64 hi lo))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
51.5b
(-.f64 (*.f64 (/.f64 hi lo) (/.f64 hi lo)) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo)))
Compiler

Compiled 4954 to 2431 computations (50.9% saved)

regimes338.0ms (12%)

Accuracy

Total 0.8b remaining (1.5%)

Threshold costs 0.8b (1.5%)

Counts
78 → 1
Compiler

Compiled 9282 to 5268 computations (43.2% saved)

simplify4.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02038
13338
24638
35938
46938
57538
67738
77538

end1.0ms (0%)

Compiler

Compiled 28 to 19 computations (32.1% saved)

sample819.0ms (29.2%)

Algorithm
intervals
Results
261.0ms8000×body128valid
177.0ms8000×pre128true
Compiler

Compiled 175 to 102 computations (41.7% saved)

Profiling

Loading profile data...