Details

Time bar (total: 10.3s)

analyze2.4s (22.9%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.7%0.3%0
0%99.7%0.3%1
0%99.7%0.3%2
0%99.7%0.3%3
0%99.7%0.3%4
0%99.7%0.3%5
0%99.7%0.3%6
0%99.7%0.3%7
0%99.7%0.3%8
0%99.7%0.3%9
0%99.7%0.3%10
0%99.7%0.3%11
1.1%98.6%0.3%12
1.9%97.8%0.3%13
7%92.7%0.3%14
Compiler

Compiled 28 to 17 computations (39.3% saved)

sample1.5s (14.5%)

Results
1.4s8252×body128valid
1.0msbody1024valid
1.0msbody512valid
Compiler

Compiled 83 to 50 computations (39.8% saved)

simplify94.0ms (0.9%)

Algorithm
egg-herbie
Rules
765×sub-neg_binary64
731×fma-neg_binary64
652×neg-mul-1_binary64
505×fma-def_binary64
495×cancel-sign-sub-inv_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01729
13729
28529
319427
448627
5100327
6192027
7340627
8407827
9443127
10491927
11508527

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
26.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
26.1b
(/.f64 (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 x y) z (*.f64 t a))) (+.f64 x (+.f64 y t)))
26.1b
(/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y))
Compiler

Compiled 150 to 83 computations (44.7% saved)

localize12.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(fma.f64 (+.f64 x y) z (*.f64 t a))
1.5b
(fma.f64 y (-.f64 a b) (fma.f64 (+.f64 x y) z (*.f64 t a)))
24.5b
(/.f64 (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 x y) z (*.f64 t a))) (+.f64 x (+.f64 y t)))

series213.0ms (2.1%)

Counts
3 → 204
Calls

3 calls:

169.0ms
(/.f64 (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 x y) z (*.f64 t a))) (+.f64 x (+.f64 y t)))
27.0ms
(fma.f64 y (-.f64 a b) (fma.f64 (+.f64 x y) z (*.f64 t a)))
16.0ms
(fma.f64 (+.f64 x y) z (*.f64 t a))

rewrite82.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
334×log1p-udef_binary64
182×add-sqr-sqrt_binary64
174×log1p-expm1-u_binary64
174×expm1-log1p-u_binary64
168×add-log-exp_binary64
Counts
3 → 79
Calls

3 calls:

79.0ms
(fma.f64 (+.f64 x y) z (*.f64 t a))
79.0ms
(fma.f64 y (-.f64 a b) (fma.f64 (+.f64 x y) z (*.f64 t a)))
79.0ms
(/.f64 (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 x y) z (*.f64 t a))) (+.f64 x (+.f64 y t)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01556
134356
2493156
3549656
000
100

simplify148.0ms (1.4%)

Algorithm
egg-herbie
Rules
623×associate-+l+_binary64
575×associate-/l*_binary64
369×associate-/r*_binary64
284×+-commutative_binary64
240×associate-+r+_binary64
Counts
283 → 186
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05989338
118229213
259029213

prune300.0ms (2.9%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New17511186
Fresh101
Picked101
Done000
Total17711188
Error
2.8b
Counts
188 → 11
Alt Table
StatusErrorProgram
26.1b
(/.f64 (+.f64 (*.f64 y (-.f64 a b)) (fma.f64 (+.f64 y x) z (*.f64 a t))) (+.f64 x (+.f64 y t)))
40.8b
z
43.2b
(pow.f64 (sqrt.f64 (/.f64 (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 y x) z (*.f64 a t))) (+.f64 x (+.f64 y t)))) 2)
55.7b
(neg.f64 (/.f64 (*.f64 y b) (+.f64 (+.f64 t x) y)))
26.2b
(pow.f64 (/.f64 (+.f64 x (+.f64 y t)) (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 y x) z (*.f64 a t)))) -1)
26.1b
(-.f64 (+.f64 (/.f64 (*.f64 y z) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 z x) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 a t) (+.f64 y (+.f64 t x))) (/.f64 (*.f64 y a) (+.f64 y (+.f64 t x)))))) (/.f64 (*.f64 y b) (+.f64 y (+.f64 t x))))
42.7b
(*.f64 (/.f64 1 (sqrt.f64 (+.f64 x (+.f64 y t)))) (/.f64 (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 y x) z (*.f64 a t))) (sqrt.f64 (+.f64 x (+.f64 y t)))))
43.5b
a
25.7b
(-.f64 (+.f64 a z) b)
40.5b
(*.f64 (/.f64 z (+.f64 (+.f64 t x) y)) (+.f64 x y))
26.2b
(*.f64 (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 y x) z (*.f64 a t))) (/.f64 1 (+.f64 x (+.f64 y t))))
Compiler

Compiled 9479 to 3100 computations (67.3% saved)

localize3.0ms (0%)

prune12.0ms (0.1%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New000
Fresh01010
Picked011
Done000
Total01111
Error
2.8b
Counts
11 → 11
Alt Table
StatusErrorProgram
26.1b
(/.f64 (+.f64 (*.f64 y (-.f64 a b)) (fma.f64 (+.f64 y x) z (*.f64 a t))) (+.f64 x (+.f64 y t)))
40.8b
z
43.2b
(pow.f64 (sqrt.f64 (/.f64 (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 y x) z (*.f64 a t))) (+.f64 x (+.f64 y t)))) 2)
55.7b
(neg.f64 (/.f64 (*.f64 y b) (+.f64 (+.f64 t x) y)))
26.2b
(pow.f64 (/.f64 (+.f64 x (+.f64 y t)) (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 y x) z (*.f64 a t)))) -1)
26.1b
(-.f64 (+.f64 (/.f64 (*.f64 y z) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 z x) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 a t) (+.f64 y (+.f64 t x))) (/.f64 (*.f64 y a) (+.f64 y (+.f64 t x)))))) (/.f64 (*.f64 y b) (+.f64 y (+.f64 t x))))
42.7b
(*.f64 (/.f64 1 (sqrt.f64 (+.f64 x (+.f64 y t)))) (/.f64 (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 y x) z (*.f64 a t))) (sqrt.f64 (+.f64 x (+.f64 y t)))))
43.5b
a
25.7b
(-.f64 (+.f64 a z) b)
40.5b
(*.f64 (/.f64 z (+.f64 (+.f64 t x) y)) (+.f64 x y))
26.2b
(*.f64 (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 y x) z (*.f64 a t))) (/.f64 1 (+.f64 x (+.f64 y t))))
Compiler

Compiled 501 to 284 computations (43.3% saved)

localize22.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
7.9b
(/.f64 (*.f64 y b) (+.f64 y (+.f64 t x)))
8.4b
(/.f64 (*.f64 z x) (+.f64 y (+.f64 t x)))
9.0b
(/.f64 (*.f64 y a) (+.f64 y (+.f64 t x)))
9.6b
(/.f64 (*.f64 y z) (+.f64 y (+.f64 t x)))

series194.0ms (1.9%)

Counts
4 → 156
Calls

4 calls:

55.0ms
(/.f64 (*.f64 y a) (+.f64 y (+.f64 t x)))
49.0ms
(/.f64 (*.f64 y b) (+.f64 y (+.f64 t x)))
46.0ms
(/.f64 (*.f64 z x) (+.f64 y (+.f64 t x)))
43.0ms
(/.f64 (*.f64 y z) (+.f64 y (+.f64 t x)))

rewrite88.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
266×prod-diff_binary64
198×add-sqr-sqrt_binary64
186×log1p-expm1-u_binary64
186×expm1-log1p-u_binary64
182×add-log-exp_binary64
Counts
4 → 140
Calls

4 calls:

82.0ms
(/.f64 (*.f64 y b) (+.f64 y (+.f64 t x)))
82.0ms
(/.f64 (*.f64 z x) (+.f64 y (+.f64 t x)))
82.0ms
(/.f64 (*.f64 y a) (+.f64 y (+.f64 t x)))
82.0ms
(/.f64 (*.f64 y z) (+.f64 y (+.f64 t x)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01752
138352
2488852
3547352
000
100

simplify159.0ms (1.5%)

Algorithm
egg-herbie
Rules
728×associate-/l*_binary64
455×associate-/r*_binary64
324×associate-*r*_binary64
211×sub-neg_binary64
199×associate-*l*_binary64
Counts
296 → 311
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05788532
118588480
251148480

prune359.0ms (3.5%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New3074311
Fresh279
Picked101
Done011
Total31012322
Error
1.9b
Counts
322 → 12
Alt Table
StatusErrorProgram
26.1b
(/.f64 (+.f64 (*.f64 y (-.f64 a b)) (fma.f64 (+.f64 y x) z (*.f64 a t))) (+.f64 x (+.f64 y t)))
22.6b
(-.f64 (+.f64 (/.f64 (*.f64 y z) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 z x) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 a t) (+.f64 y (+.f64 t x))) (/.f64 (*.f64 y a) (+.f64 y (+.f64 t x)))))) (*.f64 (/.f64 b 1) (/.f64 y (+.f64 y (+.f64 t x)))))
40.8b
z
43.2b
(pow.f64 (sqrt.f64 (/.f64 (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 y x) z (*.f64 a t))) (+.f64 x (+.f64 y t)))) 2)
25.3b
(-.f64 (+.f64 (/.f64 (*.f64 y z) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 z x) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 a t) (+.f64 y (+.f64 t x))) (*.f64 y (/.f64 1 (/.f64 (+.f64 y (+.f64 t x)) a)))))) (/.f64 (*.f64 y b) (+.f64 y (+.f64 t x))))
55.7b
(neg.f64 (/.f64 (*.f64 y b) (+.f64 (+.f64 t x) y)))
24.3b
(-.f64 (+.f64 (/.f64 (*.f64 y z) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 z x) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 a t) (+.f64 y (+.f64 t x))) (/.f64 (*.f64 y a) (+.f64 y (+.f64 t x)))))) (*.f64 (/.f64 y 1) (/.f64 b (+.f64 y (+.f64 t x)))))
24.9b
(-.f64 (+.f64 (*.f64 y (/.f64 1 (/.f64 (+.f64 y (+.f64 t x)) z))) (+.f64 (/.f64 (*.f64 z x) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 a t) (+.f64 y (+.f64 t x))) (/.f64 (*.f64 y a) (+.f64 y (+.f64 t x)))))) (/.f64 (*.f64 y b) (+.f64 y (+.f64 t x))))
42.7b
(*.f64 (/.f64 1 (sqrt.f64 (+.f64 x (+.f64 y t)))) (/.f64 (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 y x) z (*.f64 a t))) (sqrt.f64 (+.f64 x (+.f64 y t)))))
43.5b
a
25.7b
(-.f64 (+.f64 a z) b)
40.5b
(*.f64 (/.f64 z (+.f64 (+.f64 t x) y)) (+.f64 x y))
Compiler

Compiled 22523 to 4770 computations (78.8% saved)

localize23.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
7.2b
(/.f64 (*.f64 a t) (+.f64 y (+.f64 t x)))
8.4b
(/.f64 (*.f64 z x) (+.f64 y (+.f64 t x)))
9.0b
(/.f64 (*.f64 y a) (+.f64 y (+.f64 t x)))
9.6b
(/.f64 (*.f64 y z) (+.f64 y (+.f64 t x)))

series53.0ms (0.5%)

Counts
1 → 36
Calls

1 calls:

53.0ms
(/.f64 (*.f64 a t) (+.f64 y (+.f64 t x)))

rewrite59.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
381×fma-def_binary64
213×fma-neg_binary64
200×expm1-udef_binary64
200×log1p-udef_binary64
173×log-pow_binary64
Counts
1 → 46
Calls

1 calls:

58.0ms
(/.f64 (*.f64 a t) (+.f64 y (+.f64 t x)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0913
120713
2305913
3509213
000
100

simplify63.0ms (0.6%)

Algorithm
egg-herbie
Rules
456×associate-/r/_binary64
358×times-frac_binary64
328×cancel-sign-sub-inv_binary64
254×fma-neg_binary64
218×associate-/l*_binary64
Counts
82 → 93
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02222094
16052082
226361791
351861791

prune490.0ms (4.7%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New3271328
Fresh1910
Picked101
Done011
Total32911340
Error
1.3b
Counts
340 → 11
Alt Table
StatusErrorProgram
26.1b
(/.f64 (+.f64 (*.f64 y (-.f64 a b)) (fma.f64 (+.f64 y x) z (*.f64 a t))) (+.f64 x (+.f64 y t)))
40.8b
z
43.2b
(pow.f64 (sqrt.f64 (/.f64 (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 y x) z (*.f64 a t))) (+.f64 x (+.f64 y t)))) 2)
25.3b
(-.f64 (+.f64 (/.f64 (*.f64 y z) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 z x) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 a t) (+.f64 y (+.f64 t x))) (*.f64 y (/.f64 1 (/.f64 (+.f64 y (+.f64 t x)) a)))))) (/.f64 (*.f64 y b) (+.f64 y (+.f64 t x))))
55.7b
(neg.f64 (/.f64 (*.f64 y b) (+.f64 (+.f64 t x) y)))
24.3b
(-.f64 (+.f64 (/.f64 (*.f64 y z) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 z x) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 a t) (+.f64 y (+.f64 t x))) (/.f64 (*.f64 y a) (+.f64 y (+.f64 t x)))))) (*.f64 (/.f64 y 1) (/.f64 b (+.f64 y (+.f64 t x)))))
24.9b
(-.f64 (+.f64 (*.f64 y (/.f64 1 (/.f64 (+.f64 y (+.f64 t x)) z))) (+.f64 (/.f64 (*.f64 z x) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 a t) (+.f64 y (+.f64 t x))) (/.f64 (*.f64 y a) (+.f64 y (+.f64 t x)))))) (/.f64 (*.f64 y b) (+.f64 y (+.f64 t x))))
42.7b
(*.f64 (/.f64 1 (sqrt.f64 (+.f64 x (+.f64 y t)))) (/.f64 (fma.f64 y (-.f64 a b) (fma.f64 (+.f64 y x) z (*.f64 a t))) (sqrt.f64 (+.f64 x (+.f64 y t)))))
25.7b
(-.f64 (+.f64 a z) b)
40.5b
(*.f64 (/.f64 z (+.f64 (+.f64 t x) y)) (+.f64 x y))
19.3b
(-.f64 (+.f64 (/.f64 (*.f64 y z) (+.f64 y (+.f64 t x))) (+.f64 (/.f64 (*.f64 z x) (+.f64 y (+.f64 t x))) (+.f64 (*.f64 (/.f64 a 1) (/.f64 t (+.f64 y (+.f64 t x)))) (/.f64 (*.f64 y a) (+.f64 y (+.f64 t x)))))) (*.f64 (/.f64 b 1) (/.f64 y (+.f64 y (+.f64 t x)))))
Compiler

Compiled 23878 to 6059 computations (74.6% saved)

regimes3.9s (37.5%)

Accuracy

Total 7.0b remaining (84.6%)

Threshold costs 0b (0%)

Counts
111 → 3
Compiler

Compiled 28677 to 14055 computations (51% saved)

bsearch6.0ms (0.1%)

Compiler

Compiled 27 to 16 computations (40.7% saved)

simplify9.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
044159
172159
290159
3101159
4107159
5108159
6107159

end201.0ms (1.9%)

Compiler

Compiled 596 to 260 computations (56.4% saved)

Profiling

Loading profile data...