Details

Time bar (total: 20.7s)

analyze676.0ms (3.3%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
6.2%93.6%0.1%6
12.5%87.4%0.1%7
15.6%84.3%0.1%8
18.7%71.8%9.5%9
23.4%56%20.6%10
26.3%52.2%21.5%11
31%40.1%28.9%12
35.6%28.9%35.5%13
36.8%27.5%35.7%14
Compiler

Compiled 18 to 12 computations (33.3% saved)

sample1.5s (7.2%)

Symmetry

(sort x y z)

Results
1.2s8256×body128valid
255.0ms2376×body128invalid
Compiler

Compiled 53 to 35 computations (34% saved)

simplify8.0ms (0%)

Algorithm
egg-herbie
Rules
25×fma-def_binary64
+-commutative_binary64
*-commutative_binary64
distribute-rgt-out_binary64
associate-+r+_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01218
12316
24316
35916
46116
56216
66216

prune3.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
18.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
18.1b
(*.f64 2 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))
18.1b
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
Compiler

Compiled 90 to 56 computations (37.8% saved)

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.6b
(+.f64 (*.f64 x y) (*.f64 x z))
1.0b
(+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))
17.1b
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))

series126.0ms (0.6%)

Counts
3 → 84
Calls

3 calls:

110.0ms
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))
10.0ms
(+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))
6.0ms
(+.f64 (*.f64 x y) (*.f64 x z))

rewrite103.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
812×fma-def_binary64
462×fma-neg_binary64
205×expm1-udef_binary64
205×log1p-udef_binary64
203×egg-rr
Counts
3 → 203
Calls

3 calls:

99.0ms
(+.f64 (*.f64 x y) (*.f64 x z))
99.0ms
(+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))
99.0ms
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01035
122231
2303231
3499231
4504331
000
100

simplify79.0ms (0.4%)

Algorithm
egg-herbie
Rules
605×cancel-sign-sub-inv_binary64
602×associate-*l*_binary64
542×associate-*r*_binary64
318×times-frac_binary64
297×fma-neg_binary64
Counts
287 → 232
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01911448
15061389
218161344
346091344
453221344

prune554.0ms (2.7%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New22012232
Fresh101
Picked101
Done000
Total22212234
Error
17.6b
Counts
234 → 12
Alt Table
StatusErrorProgram
39.6b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
18.6b
(*.f64 2 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 3)))
30.2b
(*.f64 2 (sqrt.f64 (fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) y) (*.f64 x (+.f64 y z)))))
18.3b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) 2))
18.6b
(*.f64 2 (*.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) (cbrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
18.1b
(*.f64 2 (sqrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x)))))
45.5b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
41.2b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
61.6b
(*.f64 2 (sqrt.f64 (*.f64 z x)))
40.8b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
41.0b
(*.f64 2 (sqrt.f64 (fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) z) (*.f64 x (+.f64 y z)))))
22.3b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))))
Compiler

Compiled 5373 to 2276 computations (57.6% saved)

localize9.0ms (0%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 z (+.f64 y x))
0.7b
(fma.f64 y x (*.f64 z (+.f64 y x)))
17.1b
(sqrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x))))

series128.0ms (0.6%)

Counts
3 → 72
Calls

3 calls:

109.0ms
(sqrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x))))
11.0ms
(*.f64 z (+.f64 y x))
8.0ms
(fma.f64 y x (*.f64 z (+.f64 y x)))

rewrite58.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
887×expm1-log1p-u_binary64
858×prod-diff_binary64
89×add-sqr-sqrt_binary64
85×log1p-expm1-u_binary64
83×add-log-exp_binary64
Counts
3 → 78
Calls

3 calls:

57.0ms
(*.f64 z (+.f64 y x))
57.0ms
(fma.f64 y x (*.f64 z (+.f64 y x)))
57.0ms
(sqrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0831
117331
2221331
3547231
000
100

simplify66.0ms (0.3%)

Algorithm
egg-herbie
Rules
605×cancel-sign-sub-inv_binary64
602×associate-*l*_binary64
542×associate-*r*_binary64
318×times-frac_binary64
297×fma-neg_binary64
Counts
150 → 114
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01901364
15031305
218121260
346051260
453181260

prune122.0ms (0.6%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New1131114
Fresh11011
Picked011
Done000
Total11412126
Error
17.6b
Counts
126 → 12
Alt Table
StatusErrorProgram
39.6b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
18.6b
(*.f64 2 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 3)))
45.5b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
40.0b
(*.f64 2 (sqrt.f64 (*.f64 x (+.f64 z y))))
30.2b
(*.f64 2 (sqrt.f64 (fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) y) (*.f64 x (+.f64 y z)))))
18.3b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) 2))
18.6b
(*.f64 2 (*.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) (cbrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
18.1b
(*.f64 2 (sqrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x)))))
41.2b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
40.8b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
41.0b
(*.f64 2 (sqrt.f64 (fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) z) (*.f64 x (+.f64 y z)))))
22.3b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))))
Compiler

Compiled 2973 to 1478 computations (50.3% saved)

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(fma.f64 x (+.f64 y z) (*.f64 y z))
0.5b
(pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) 2)
17.4b
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)

series146.0ms (0.7%)

Counts
3 → 108
Calls

3 calls:

83.0ms
(pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) 2)
53.0ms
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)
9.0ms
(fma.f64 x (+.f64 y z) (*.f64 y z))

rewrite115.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
750×prod-diff_binary64
542×fma-udef_binary64
304×fma-def_binary64
203×fma-neg_binary64
194×expm1-udef_binary64
Counts
3 → 82
Calls

3 calls:

113.0ms
(fma.f64 x (+.f64 y z) (*.f64 y z))
113.0ms
(pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) 2)
113.0ms
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01139
124038
2263138
3473438
4470638
5497238
000
100

simplify110.0ms (0.5%)

Algorithm
egg-herbie
Rules
718×times-frac_binary64
534×fma-def_binary64
469×associate-/l*_binary64
251×*-commutative_binary64
132×cancel-sign-sub-inv_binary64
Counts
190 → 223
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06226589
120786304
251996304

prune224.0ms (1.1%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New2212223
Fresh6410
Picked011
Done011
Total2278235
Error
1.9b
Counts
235 → 8
Alt Table
StatusErrorProgram
30.2b
(*.f64 2 (sqrt.f64 (fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) y) (*.f64 x (+.f64 y z)))))
18.3b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) 2))
18.6b
(*.f64 2 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 3)))
37.0b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))) 2))
18.1b
(*.f64 2 (sqrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x)))))
32.9b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))) 2))
41.0b
(*.f64 2 (sqrt.f64 (fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) z) (*.f64 x (+.f64 y z)))))
22.3b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))))
Compiler

Compiled 10340 to 5903 computations (42.9% saved)

localize10.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(fma.f64 x (+.f64 y z) (*.f64 y z))
0.5b
(pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 3)
17.1b
(sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 3))
17.7b
(cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

series13.6s (65.6%)

Counts
3 → 84
Calls

3 calls:

13.4s
(pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 3)
114.0ms
(sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 3))
53.0ms
(cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

rewrite118.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
750×prod-diff_binary64
532×fma-udef_binary64
311×fma-def_binary64
203×fma-neg_binary64
180×expm1-udef_binary64
Counts
3 → 114
Calls

3 calls:

116.0ms
(pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 3)
116.0ms
(sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 3))
116.0ms
(cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01137
121337
2250537
3471037
4468437
5495537
000
100

simplify99.0ms (0.5%)

Algorithm
egg-herbie
Rules
484×fma-def_binary64
435×associate-*l*_binary64
418×times-frac_binary64
320×associate-/r*_binary64
290×associate-/l*_binary64
Counts
198 → 230
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05315269
117255008
255595008

prune239.0ms (1.2%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New2750275
Fresh055
Picked011
Done022
Total2758283
Error
1.9b
Counts
283 → 8
Alt Table
StatusErrorProgram
30.2b
(*.f64 2 (sqrt.f64 (fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) y) (*.f64 x (+.f64 y z)))))
18.3b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) 2))
18.6b
(*.f64 2 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 3)))
37.0b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))) 2))
18.1b
(*.f64 2 (sqrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x)))))
32.9b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))) 2))
41.0b
(*.f64 2 (sqrt.f64 (fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) z) (*.f64 x (+.f64 y z)))))
22.3b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))))
Compiler

Compiled 9238 to 4859 computations (47.4% saved)

regimes1.2s (5.8%)

Accuracy

Total 2.4b remaining (52.9%)

Threshold costs 0b (0%)

Counts
60 → 6
Compiler

Compiled 6128 to 4196 computations (31.5% saved)

bsearch536.0ms (2.6%)

Steps
ItersRangePoint
7
5.6660096666677866e+41
4.302850915418598e+43
4.247940556637857e+43
8
9.954176946213014e-236
1.0999934010201603e-232
1.010928485720324e-235
12
-8.324565990360531e-305
1.8793821612069284e-270
1.863229279770189e-270
10
-1.2192672032441498e-164
-3.690785170976697e-176
-7.079352293701776e-176
7
-28146690579458.563
-403390882349.5441
-27725273429553.94
Compiler

Compiled 4 to 3 computations (25% saved)

simplify12.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
047166
166166
280166
390166
494166
593166

end879.0ms (4.2%)

Compiler

Compiled 587 to 397 computations (32.4% saved)

Profiling

Loading profile data...