Details

Time bar (total: 8.0s)

analyze2.0s (25.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.6%0.4%0
0%99.6%0.4%1
0%99.6%0.4%2
0%99.6%0.4%3
0%99.6%0.4%4
0%99.6%0.4%5
0%99.6%0.4%6
0%99.6%0.4%7
0%99.6%0.4%8
0%99.6%0.4%9
0%99.6%0.4%10
0%99.6%0.4%11
0%99.6%0.4%12
0%99.6%0.4%13
0%99.6%0.4%14
Compiler

Compiled 28 to 19 computations (32.1% saved)

sample2.9s (36.4%)

Symmetry

(sort x y)

(sort z t)

Results
1.5s8256×body128valid
1.4s7650×body128invalid
Compiler

Compiled 83 to 56 computations (32.5% saved)

simplify33.0ms (0.4%)

Algorithm
egg-herbie
Rules
583×fma-def_binary64
441×fma-neg_binary64
435×distribute-rgt-in_binary64
372×distribute-lft-in_binary64
298×associate-*l*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01926
13724
210424
337124
4136824
5359524
Stop Event
node limit
Counts
1 → 2

prune5.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
1.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
6.4b
(*.f64 2 (-.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 (*.f64 (+.f64 a (*.f64 b c)) c) i)))
1.6b
(*.f64 2 (fma.f64 z t (fma.f64 (fma.f64 b c a) (*.f64 i (neg.f64 c)) (*.f64 x y))))
Compiler

Compiled 148 to 93 computations (37.2% saved)

localize13.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 z t (fma.f64 (fma.f64 b c a) (*.f64 i (neg.f64 c)) (*.f64 x y)))
2.1b
(fma.f64 (fma.f64 b c a) (*.f64 i (neg.f64 c)) (*.f64 x y))

series108.0ms (1.4%)

Counts
2 → 168
Calls

2 calls:

60.0ms
(fma.f64 z t (fma.f64 (fma.f64 b c a) (*.f64 i (neg.f64 c)) (*.f64 x y)))
48.0ms
(fma.f64 (fma.f64 b c a) (*.f64 i (neg.f64 c)) (*.f64 x y))

rewrite50.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
334×prod-diff_binary64
263×expm1-udef_binary64
263×log1p-udef_binary64
156×add-sqr-sqrt_binary64
142×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01538
130034
2373134
Stop Event
node limit
Counts
2 → 47
Calls

2 calls:

49.0ms
(fma.f64 z t (fma.f64 (fma.f64 b c a) (*.f64 i (neg.f64 c)) (*.f64 x y)))
49.0ms
(fma.f64 (fma.f64 b c a) (*.f64 i (neg.f64 c)) (*.f64 x y))

simplify93.0ms (1.2%)

Algorithm
egg-herbie
Rules
924×fma-neg_binary64
631×cancel-sign-sub-inv_binary64
426×fma-def_binary64
246×distribute-rgt-neg-in_binary64
241×associate-*l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0493618
11583216
23553082
38582814
424952814
549292814
Stop Event
node limit
Counts
215 → 80

prune97.0ms (1.2%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New76480
Fresh101
Picked011
Done000
Total77582
Error
0.0b
Counts
82 → 5
Alt Table
StatusErrorProgram
19.1b
(*.f64 2 (-.f64 (fma.f64 y x (*.f64 t z)) (*.f64 c (*.f64 c (*.f64 i b)))))
23.3b
(*.f64 2 (fma.f64 z t (*.f64 c (*.f64 (neg.f64 i) (fma.f64 c b a)))))
16.4b
(*.f64 2 (fma.f64 z t (fma.f64 y x (*.f64 c (*.f64 (*.f64 c i) (neg.f64 b))))))
6.4b
(*.f64 2 (fma.f64 y x (-.f64 (*.f64 t z) (*.f64 i (*.f64 c (fma.f64 c b a))))))
1.6b
(*.f64 2 (fma.f64 z t (fma.f64 (fma.f64 b c a) (*.f64 i (neg.f64 c)) (*.f64 x y))))
Compiler

Compiled 1826 to 614 computations (66.4% saved)

localize13.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 t z) (*.f64 i (*.f64 c (fma.f64 c b a))))
0.1b
(*.f64 c (fma.f64 c b a))
7.8b
(*.f64 i (*.f64 c (fma.f64 c b a)))

series67.0ms (0.8%)

Counts
3 → 156
Calls

3 calls:

37.0ms
(-.f64 (*.f64 t z) (*.f64 i (*.f64 c (fma.f64 c b a))))
21.0ms
(*.f64 i (*.f64 c (fma.f64 c b a)))
9.0ms
(*.f64 c (fma.f64 c b a))

rewrite79.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
462×fma-def_binary64
242×expm1-udef_binary64
242×log1p-udef_binary64
223×fma-neg_binary64
207×egg-rr
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01236
126036
2349436
Stop Event
node limit
Counts
3 → 207
Calls

3 calls:

73.0ms
(-.f64 (*.f64 t z) (*.f64 i (*.f64 c (fma.f64 c b a))))
73.0ms
(*.f64 c (fma.f64 c b a))
73.0ms
(*.f64 i (*.f64 c (fma.f64 c b a)))

simplify89.0ms (1.1%)

Algorithm
egg-herbie
Rules
579×fma-neg_binary64
463×distribute-rgt-neg-in_binary64
435×cancel-sign-sub-inv_binary64
329×distribute-lft-neg-in_binary64
254×associate-*l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0422391
11251932
22941851
37021851
419661851
538991851
649171851
Stop Event
node limit
Counts
363 → 243

prune237.0ms (3%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New2412243
Fresh033
Picked011
Done011
Total2417248
Error
0.0b
Counts
248 → 7
Alt Table
StatusErrorProgram
19.1b
(*.f64 2 (-.f64 (fma.f64 y x (*.f64 t z)) (*.f64 c (*.f64 c (*.f64 i b)))))
23.3b
(*.f64 2 (fma.f64 z t (*.f64 c (*.f64 (neg.f64 i) (fma.f64 c b a)))))
16.4b
(*.f64 2 (fma.f64 z t (fma.f64 y x (*.f64 c (*.f64 (*.f64 c i) (neg.f64 b))))))
9.9b
(*.f64 2 (fma.f64 y x (fma.f64 t z (fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (*.f64 c (*.f64 (fma.f64 c b a) i)))))))
22.9b
(*.f64 2 (fma.f64 y x (-.f64 (*.f64 t z) (cbrt.f64 (pow.f64 (*.f64 c (*.f64 (fma.f64 c b a) i)) 3)))))
6.4b
(*.f64 2 (fma.f64 y x (-.f64 (*.f64 t z) (*.f64 i (*.f64 c (fma.f64 c b a))))))
1.6b
(*.f64 2 (fma.f64 z t (fma.f64 (fma.f64 b c a) (*.f64 i (neg.f64 c)) (*.f64 x y))))
Compiler

Compiled 8157 to 1876 computations (77% saved)

localize17.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.0b
(*.f64 (fma.f64 c b a) i)
4.0b
(*.f64 c (*.f64 (fma.f64 c b a) i))
7.8b
(fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (*.f64 c (*.f64 (fma.f64 c b a) i))))
53.6b
(fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (*.f64 c (*.f64 (fma.f64 c b a) i)))

series159.0ms (2%)

Counts
4 → 192
Calls

4 calls:

67.0ms
(fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (*.f64 c (*.f64 (fma.f64 c b a) i))))
53.0ms
(fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (*.f64 c (*.f64 (fma.f64 c b a) i)))
23.0ms
(*.f64 c (*.f64 (fma.f64 c b a) i))
15.0ms
(*.f64 (fma.f64 c b a) i)

rewrite67.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
593×log-prod_binary64
205×expm1-udef_binary64
205×log1p-udef_binary64
189×log-pow_binary64
185×fma-def_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01280
124574
2319874
Stop Event
node limit
Counts
4 → 108
Calls

4 calls:

64.0ms
(*.f64 (fma.f64 c b a) i)
64.0ms
(*.f64 c (*.f64 (fma.f64 c b a) i))
64.0ms
(fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (*.f64 c (*.f64 (fma.f64 c b a) i))))
64.0ms
(fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (*.f64 c (*.f64 (fma.f64 c b a) i)))

simplify57.0ms (0.7%)

Algorithm
egg-herbie
Rules
452×fma-def_binary64
393×associate-*l*_binary64
359×distribute-rgt-neg-in_binary64
310×distribute-lft-neg-in_binary64
268×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0451989
11441521
23761521
39681521
432211521
Stop Event
node limit
Counts
300 → 141

prune168.0ms (2.1%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1401141
Fresh044
Picked101
Done022
Total1417148
Error
0.0b
Counts
148 → 7
Alt Table
StatusErrorProgram
19.1b
(*.f64 2 (-.f64 (fma.f64 y x (*.f64 t z)) (*.f64 c (*.f64 c (*.f64 i b)))))
23.3b
(*.f64 2 (fma.f64 z t (*.f64 c (*.f64 (neg.f64 i) (fma.f64 c b a)))))
6.4b
(*.f64 2 (fma.f64 y x (fma.f64 t z (fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (+.f64 0 (*.f64 i (*.f64 c (fma.f64 c b a)))))))))
16.4b
(*.f64 2 (fma.f64 z t (fma.f64 y x (*.f64 c (*.f64 (*.f64 c i) (neg.f64 b))))))
22.9b
(*.f64 2 (fma.f64 y x (-.f64 (*.f64 t z) (cbrt.f64 (pow.f64 (*.f64 c (*.f64 (fma.f64 c b a) i)) 3)))))
6.4b
(*.f64 2 (fma.f64 y x (-.f64 (*.f64 t z) (*.f64 i (*.f64 c (fma.f64 c b a))))))
1.6b
(*.f64 2 (fma.f64 z t (fma.f64 (fma.f64 b c a) (*.f64 i (neg.f64 c)) (*.f64 x y))))
Compiler

Compiled 5673 to 1394 computations (75.4% saved)

localize18.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (fma.f64 c b a) (neg.f64 c))
7.8b
(*.f64 i (*.f64 c (fma.f64 c b a)))
7.8b
(fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (+.f64 0 (*.f64 i (*.f64 c (fma.f64 c b a))))))
53.7b
(fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (+.f64 0 (*.f64 i (*.f64 c (fma.f64 c b a)))))

series117.0ms (1.5%)

Counts
3 → 132
Calls

3 calls:

56.0ms
(fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (+.f64 0 (*.f64 i (*.f64 c (fma.f64 c b a))))))
48.0ms
(fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (+.f64 0 (*.f64 i (*.f64 c (fma.f64 c b a)))))
12.0ms
(*.f64 (fma.f64 c b a) (neg.f64 c))

rewrite52.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
273×fma-def_binary64
194×expm1-udef_binary64
194×log1p-udef_binary64
176×fma-neg_binary64
175×log-pow_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01471
129461
2366257
Stop Event
node limit
Counts
3 → 82
Calls

3 calls:

49.0ms
(*.f64 (fma.f64 c b a) (neg.f64 c))
49.0ms
(fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (+.f64 0 (*.f64 i (*.f64 c (fma.f64 c b a))))))
49.0ms
(fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (+.f64 0 (*.f64 i (*.f64 c (fma.f64 c b a)))))

simplify54.0ms (0.7%)

Algorithm
egg-herbie
Rules
408×fma-def_binary64
364×associate-*l*_binary64
348×distribute-rgt-neg-in_binary64
296×distribute-lft-neg-in_binary64
254×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0411188
11341188
23491122
3908990
43171990
Stop Event
node limit
Counts
214 → 104

prune189.0ms (2.4%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New1610161
Fresh044
Picked011
Done022
Total1617168
Error
0.0b
Counts
168 → 7
Alt Table
StatusErrorProgram
19.1b
(*.f64 2 (-.f64 (fma.f64 y x (*.f64 t z)) (*.f64 c (*.f64 c (*.f64 i b)))))
23.3b
(*.f64 2 (fma.f64 z t (*.f64 c (*.f64 (neg.f64 i) (fma.f64 c b a)))))
6.4b
(*.f64 2 (fma.f64 y x (fma.f64 t z (fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (fma.f64 i (*.f64 (fma.f64 c b a) (neg.f64 c)) (+.f64 0 (*.f64 i (*.f64 c (fma.f64 c b a)))))))))
16.4b
(*.f64 2 (fma.f64 z t (fma.f64 y x (*.f64 c (*.f64 (*.f64 c i) (neg.f64 b))))))
22.9b
(*.f64 2 (fma.f64 y x (-.f64 (*.f64 t z) (cbrt.f64 (pow.f64 (*.f64 c (*.f64 (fma.f64 c b a) i)) 3)))))
6.4b
(*.f64 2 (fma.f64 y x (-.f64 (*.f64 t z) (*.f64 i (*.f64 c (fma.f64 c b a))))))
1.6b
(*.f64 2 (fma.f64 z t (fma.f64 (fma.f64 b c a) (*.f64 i (neg.f64 c)) (*.f64 x y))))
Compiler

Compiled 6054 to 1636 computations (73% saved)

regimes1.1s (14.1%)

Accuracy

Total 1.7b remaining (99%)

Threshold costs 0b (0%)

Counts
70 → 1
Compiler

Compiled 30902 to 19212 computations (37.8% saved)

simplify6.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01724
12624
23424
34024
44324
54424
Stop Event
saturated

end131.0ms (1.6%)

Remove

(sort z t)

(sort x y)

Compiler

Compiled 342 to 215 computations (37.1% saved)

Profiling

Loading profile data...