Details

Time bar (total: 6.1s)

analyze726.0ms (12%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
6.2%93.6%0.2%8
25%74.9%0.2%9
28.1%71.7%0.2%10
29.6%70.2%0.2%11
53%46.8%0.2%12
71.3%28.5%0.2%13
71.7%28.1%0.2%14
Compiler

Compiled 20 to 12 computations (40% saved)

sample1.1s (18.1%)

Results
1.0s8256×body128valid
64.0ms498×body128invalid
Compiler

Compiled 59 to 35 computations (40.7% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Rules
fma-def_binary64
+-commutative_binary64
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01218
11818
22218
Stop Event
saturated
Counts
1 → 2

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
26.7b
Counts
3 → 1
Alt Table
StatusErrorProgram
26.7b
(/.f64 (+.f64 (*.f64 a c) (*.f64 b d)) (+.f64 (*.f64 c c) (*.f64 d d)))
Compiler

Compiled 70 to 36 computations (48.6% saved)

localize12.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(+.f64 (*.f64 a c) (*.f64 b d))
26.2b
(/.f64 (+.f64 (*.f64 a c) (*.f64 b d)) (+.f64 (*.f64 c c) (*.f64 d d)))

series108.0ms (1.8%)

Counts
2 → 96
Calls

2 calls:

100.0ms
(/.f64 (+.f64 (*.f64 a c) (*.f64 b d)) (+.f64 (*.f64 c c) (*.f64 d d)))
8.0ms
(+.f64 (*.f64 a c) (*.f64 b d))

rewrite56.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
506×fma-def_binary64
244×fma-neg_binary64
239×expm1-udef_binary64
239×log1p-udef_binary64
134×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01226
126425
2378225
Stop Event
node limit
Counts
2 → 94
Calls

2 calls:

54.0ms
(+.f64 (*.f64 a c) (*.f64 b d))
54.0ms
(/.f64 (+.f64 (*.f64 a c) (*.f64 b d)) (+.f64 (*.f64 c c) (*.f64 d d)))

simplify42.0ms (0.7%)

Algorithm
egg-herbie
Rules
597×associate-*l/_binary64
518×fma-def_binary64
407×associate-/r/_binary64
354×fma-neg_binary64
278×associate-/l/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0411626
11141542
23561458
317971410
Stop Event
node limit
Counts
190 → 118

prune96.0ms (1.6%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New1117118
Fresh000
Picked011
Done000
Total1118119
Error
2.2b
Counts
119 → 8
Alt Table
StatusErrorProgram
35.7b
(/.f64 a c)
26.7b
(/.f64 (+.f64 (*.f64 a c) (*.f64 b d)) (+.f64 (*.f64 c c) (*.f64 d d)))
19.8b
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 a c (*.f64 b d))) 2) (hypot.f64 c d)) (/.f64 (cbrt.f64 (fma.f64 a c (*.f64 b d))) (hypot.f64 c d)))
34.9b
(fma.f64 a (/.f64 c (*.f64 d d)) (/.f64 b d))
25.3b
(fma.f64 b (/.f64 d (fma.f64 d d (*.f64 c c))) (/.f64 c (/.f64 (fma.f64 d d (*.f64 c c)) a)))
38.7b
(pow.f64 (/.f64 (sqrt.f64 (fma.f64 a c (*.f64 b d))) (hypot.f64 c d)) 2)
19.3b
(*.f64 (/.f64 1 (hypot.f64 c d)) (/.f64 (fma.f64 a c (*.f64 b d)) (hypot.f64 c d)))
37.2b
(/.f64 b d)
Compiler

Compiled 2539 to 818 computations (67.8% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a c (*.f64 b d))
0.0b
(hypot.f64 c d)
0.3b
(*.f64 (/.f64 1 (hypot.f64 c d)) (/.f64 (fma.f64 a c (*.f64 b d)) (hypot.f64 c d)))
17.9b
(/.f64 (fma.f64 a c (*.f64 b d)) (hypot.f64 c d))

series190.0ms (3.1%)

Counts
4 → 168
Calls

4 calls:

92.0ms
(*.f64 (/.f64 1 (hypot.f64 c d)) (/.f64 (fma.f64 a c (*.f64 b d)) (hypot.f64 c d)))
80.0ms
(/.f64 (fma.f64 a c (*.f64 b d)) (hypot.f64 c d))
9.0ms
(fma.f64 a c (*.f64 b d))
9.0ms
(hypot.f64 c d)

rewrite60.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
614×log-prod_binary64
254×prod-diff_binary64
213×expm1-udef_binary64
213×log1p-udef_binary64
200×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01246
124643
2315543
Stop Event
node limit
Counts
4 → 153
Calls

4 calls:

57.0ms
(fma.f64 a c (*.f64 b d))
57.0ms
(hypot.f64 c d)
57.0ms
(*.f64 (/.f64 1 (hypot.f64 c d)) (/.f64 (fma.f64 a c (*.f64 b d)) (hypot.f64 c d)))
57.0ms
(/.f64 (fma.f64 a c (*.f64 b d)) (hypot.f64 c d))

simplify55.0ms (0.9%)

Algorithm
egg-herbie
Rules
560×times-frac_binary64
423×associate-/l*_binary64
332×fma-def_binary64
297×cancel-sign-sub-inv_binary64
277×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01133196
13733046
212842876
Stop Event
node limit
Counts
321 → 243

prune207.0ms (3.4%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New2946300
Fresh516
Picked101
Done011
Total3008308
Error
0.1b
Counts
308 → 8
Alt Table
StatusErrorProgram
25.3b
(fma.f64 b (/.f64 d (fma.f64 d d (*.f64 c c))) (/.f64 c (/.f64 (fma.f64 d d (*.f64 c c)) a)))
44.3b
(*.f64 (/.f64 1 (hypot.f64 c d)) (fma.f64 (/.f64 d c) b a))
44.7b
(*.f64 (/.f64 1 (hypot.f64 c d)) (fma.f64 (/.f64 c d) a b))
19.3b
(/.f64 (/.f64 1 (hypot.f64 c d)) (/.f64 (hypot.f64 c d) (fma.f64 a c (*.f64 b d))))
31.1b
(fma.f64 (/.f64 d c) (/.f64 b c) (/.f64 a c))
32.4b
(fma.f64 (/.f64 a d) (/.f64 c d) (/.f64 b d))
26.7b
(/.f64 (+.f64 (*.f64 a c) (*.f64 b d)) (+.f64 (*.f64 c c) (*.f64 d d)))
44.1b
(*.f64 (/.f64 1 (hypot.f64 c d)) (neg.f64 (fma.f64 (/.f64 d c) b a)))
Compiler

Compiled 6884 to 2551 computations (62.9% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a c (*.f64 b d))
0.0b
(hypot.f64 c d)
0.3b
(/.f64 (/.f64 1 (hypot.f64 c d)) (/.f64 (hypot.f64 c d) (fma.f64 a c (*.f64 b d))))
17.9b
(/.f64 (hypot.f64 c d) (fma.f64 a c (*.f64 b d)))

series138.0ms (2.3%)

Counts
2 → 96
Calls

2 calls:

87.0ms
(/.f64 (/.f64 1 (hypot.f64 c d)) (/.f64 (hypot.f64 c d) (fma.f64 a c (*.f64 b d))))
51.0ms
(/.f64 (hypot.f64 c d) (fma.f64 a c (*.f64 b d)))

rewrite53.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
281×prod-diff_binary64
221×expm1-udef_binary64
221×log1p-udef_binary64
207×log-pow_binary64
127×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01237
125231
2338231
Stop Event
node limit
Counts
2 → 79
Calls

2 calls:

51.0ms
(/.f64 (/.f64 1 (hypot.f64 c d)) (/.f64 (hypot.f64 c d) (fma.f64 a c (*.f64 b d))))
51.0ms
(/.f64 (hypot.f64 c d) (fma.f64 a c (*.f64 b d)))

simplify62.0ms (1%)

Algorithm
egg-herbie
Rules
576×fma-def_binary64
567×cancel-sign-sub-inv_binary64
236×fma-neg_binary64
227×times-frac_binary64
209×distribute-neg-frac_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01343858
14913302
223833044
Stop Event
node limit
Counts
175 → 145

prune181.0ms (3%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New2911292
Fresh156
Picked011
Done011
Total2928300
Error
0.0b
Counts
300 → 8
Alt Table
StatusErrorProgram
50.9b
(/.f64 (/.f64 1 (hypot.f64 c d)) (+.f64 (*.f64 (*.f64 (/.f64 d c) (/.f64 d c)) (+.f64 (/.f64 (*.f64 b b) (pow.f64 a 3)) (/.f64 1/2 a))) (-.f64 (/.f64 1 a) (*.f64 (/.f64 d c) (/.f64 b (*.f64 a a))))))
25.3b
(fma.f64 b (/.f64 d (fma.f64 d d (*.f64 c c))) (/.f64 c (/.f64 (fma.f64 d d (*.f64 c c)) a)))
44.7b
(*.f64 (/.f64 1 (hypot.f64 c d)) (fma.f64 (/.f64 c d) a b))
19.3b
(/.f64 (/.f64 1 (hypot.f64 c d)) (/.f64 (hypot.f64 c d) (fma.f64 a c (*.f64 b d))))
31.1b
(fma.f64 (/.f64 d c) (/.f64 b c) (/.f64 a c))
32.4b
(fma.f64 (/.f64 a d) (/.f64 c d) (/.f64 b d))
26.7b
(/.f64 (+.f64 (*.f64 a c) (*.f64 b d)) (+.f64 (*.f64 c c) (*.f64 d d)))
44.1b
(*.f64 (/.f64 1 (hypot.f64 c d)) (neg.f64 (fma.f64 (/.f64 d c) b a)))
Compiler

Compiled 7710 to 3268 computations (57.6% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.2b
(fma.f64 b (/.f64 d (fma.f64 d d (*.f64 c c))) (/.f64 c (/.f64 (fma.f64 d d (*.f64 c c)) a)))
8.4b
(/.f64 c (/.f64 (fma.f64 d d (*.f64 c c)) a))
9.2b
(/.f64 (fma.f64 d d (*.f64 c c)) a)
18.5b
(/.f64 d (fma.f64 d d (*.f64 c c)))

series209.0ms (3.4%)

Counts
4 → 144
Calls

4 calls:

111.0ms
(fma.f64 b (/.f64 d (fma.f64 d d (*.f64 c c))) (/.f64 c (/.f64 (fma.f64 d d (*.f64 c c)) a)))
64.0ms
(/.f64 c (/.f64 (fma.f64 d d (*.f64 c c)) a))
21.0ms
(/.f64 (fma.f64 d d (*.f64 c c)) a)
13.0ms
(/.f64 d (fma.f64 d d (*.f64 c c)))

rewrite63.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
463×prod-diff_binary64
218×expm1-udef_binary64
218×log1p-udef_binary64
132×egg-rr
122×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01164
123659
2333559
Stop Event
node limit
Counts
4 → 132
Calls

4 calls:

60.0ms
(fma.f64 b (/.f64 d (fma.f64 d d (*.f64 c c))) (/.f64 c (/.f64 (fma.f64 d d (*.f64 c c)) a)))
60.0ms
(/.f64 c (/.f64 (fma.f64 d d (*.f64 c c)) a))
60.0ms
(/.f64 (fma.f64 d d (*.f64 c c)) a)
60.0ms
(/.f64 d (fma.f64 d d (*.f64 c c)))

simplify73.0ms (1.2%)

Algorithm
egg-herbie
Rules
388×distribute-neg-frac_binary64
387×times-frac_binary64
309×associate-/l*_binary64
243×associate-/r*_binary64
238×sub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0933240
12413108
27512964
339992964
Stop Event
node limit
Counts
276 → 189

prune128.0ms (2.1%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New1890189
Fresh055
Picked011
Done022
Total1898197
Error
0.0b
Counts
197 → 8
Alt Table
StatusErrorProgram
50.9b
(/.f64 (/.f64 1 (hypot.f64 c d)) (+.f64 (*.f64 (*.f64 (/.f64 d c) (/.f64 d c)) (+.f64 (/.f64 (*.f64 b b) (pow.f64 a 3)) (/.f64 1/2 a))) (-.f64 (/.f64 1 a) (*.f64 (/.f64 d c) (/.f64 b (*.f64 a a))))))
25.3b
(fma.f64 b (/.f64 d (fma.f64 d d (*.f64 c c))) (/.f64 c (/.f64 (fma.f64 d d (*.f64 c c)) a)))
44.7b
(*.f64 (/.f64 1 (hypot.f64 c d)) (fma.f64 (/.f64 c d) a b))
19.3b
(/.f64 (/.f64 1 (hypot.f64 c d)) (/.f64 (hypot.f64 c d) (fma.f64 a c (*.f64 b d))))
31.1b
(fma.f64 (/.f64 d c) (/.f64 b c) (/.f64 a c))
32.4b
(fma.f64 (/.f64 a d) (/.f64 c d) (/.f64 b d))
26.7b
(/.f64 (+.f64 (*.f64 a c) (*.f64 b d)) (+.f64 (*.f64 c c) (*.f64 d d)))
44.1b
(*.f64 (/.f64 1 (hypot.f64 c d)) (neg.f64 (fma.f64 (/.f64 d c) b a)))
Compiler

Compiled 4810 to 1849 computations (61.6% saved)

regimes2.3s (37.2%)

Accuracy

Total 11.2b remaining (98.6%)

Threshold costs 0b (0%)

Counts
121 → 5
Compiler

Compiled 11198 to 6849 computations (38.8% saved)

bsearch83.0ms (1.4%)

Steps
ItersRangePoint
9
3.363924642192831e+135
3.5965325781940086e+140
1.2722428837589733e+140
9
2.634451215286903e-71
3.60595376629138e-65
2.670610561569208e-71
8
-2.4141280899525958e-105
-1.8387138583883085e-108
-3.283521020638581e-106
7
-9.881632775610893e+154
-1.2999618955171796e+153
-1.1870115366769325e+154
Compiler

Compiled 5 to 4 computations (20% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
040113
142113
Stop Event
saturated

end132.0ms (2.2%)

Compiler

Compiled 333 to 170 computations (48.9% saved)

Profiling

Loading profile data...