Details

Time bar (total: 8.3s)

analyze845.0ms (10.2%)

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 (17.9%)

Symmetry

(sort x y z)

Results
1.1s8256×body128valid
294.0ms2353×body128invalid
Compiler

Compiled 53 to 35 computations (34% saved)

simplify11.0ms (0.1%)

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
21.5b
Counts
3 → 2
Alt Table
StatusErrorProgram
21.5b
(*.f64 2 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))
21.5b
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
Compiler

Compiled 90 to 56 computations (37.8% saved)

localize8.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
1.2b
(+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))
1.2b
(+.f64 (*.f64 x y) (*.f64 x z))
20.3b
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))

series142.0ms (1.7%)

Counts
3 → 84
Calls

3 calls:

124.0ms
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))
9.0ms
(+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))
7.0ms
(+.f64 (*.f64 x y) (*.f64 x z))

rewrite108.0ms (1.3%)

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

3 calls:

104.0ms
(+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))
104.0ms
(+.f64 (*.f64 x y) (*.f64 x z))
104.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

simplify72.0ms (0.9%)

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
288 → 233
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01911448
15061389
218161344
346091344
453221344

prune255.0ms (3.1%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New22211233
Fresh101
Picked101
Done000
Total22411235
Error
20.9b
Counts
235 → 11
Alt Table
StatusErrorProgram
22.0b
(*.f64 2 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
42.1b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
24.9b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))))
46.6b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
32.3b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) y) (*.f64 z (+.f64 x y)))))
42.8b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
63.5b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (+.f64 (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 x z)))))))
21.8b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) 2))
62.1b
(*.f64 2 (sqrt.f64 (*.f64 z x)))
50.7b
(*.f64 2 (/.f64 (hypot.f64 (pow.f64 (*.f64 x (+.f64 y z)) 3/2) (pow.f64 (*.f64 y z) 3/2)) (hypot.f64 (*.f64 x (+.f64 y z)) (sqrt.f64 (*.f64 (*.f64 y z) (-.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))))))
42.6b
(*.f64 2 (sqrt.f64 (fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) z) (*.f64 x (+.f64 y z)))))
Compiler

Compiled 5450 to 2303 computations (57.7% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.5b
(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)
20.7b
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)

series134.0ms (1.6%)

Counts
3 → 108
Calls

3 calls:

76.0ms
(pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) 2)
50.0ms
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)
8.0ms
(fma.f64 x (+.f64 y z) (*.f64 y z))

rewrite113.0ms (1.4%)

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 → 84
Calls

3 calls:

111.0ms
(fma.f64 x (+.f64 y z) (*.f64 y z))
111.0ms
(pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) 2)
111.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

simplify108.0ms (1.3%)

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
192 → 225
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06226589
120786304
251996304

prune225.0ms (2.7%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New2232225
Fresh5510
Picked011
Done000
Total2288236
Error
2.2b
Counts
236 → 8
Alt Table
StatusErrorProgram
21.8b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) 2))
34.4b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))) 2))
24.9b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))))
35.5b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))) 2))
32.3b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) y) (*.f64 z (+.f64 x y)))))
50.7b
(*.f64 2 (/.f64 (hypot.f64 (pow.f64 (*.f64 x (+.f64 y z)) 3/2) (pow.f64 (*.f64 y z) 3/2)) (hypot.f64 (*.f64 x (+.f64 y z)) (sqrt.f64 (*.f64 (*.f64 y z) (-.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))))))
22.0b
(*.f64 2 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
42.6b
(*.f64 2 (sqrt.f64 (fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) z) (*.f64 x (+.f64 y z)))))
Compiler

Compiled 10458 to 5950 computations (43.1% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 2)
0.5b
(fma.f64 x (+.f64 y z) (*.f64 y z))
6.3b
(sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 2))
20.9b
(cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

series185.0ms (2.2%)

Counts
3 → 108
Calls

3 calls:

79.0ms
(pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 2)
55.0ms
(sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 2))
50.0ms
(cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

rewrite117.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
752×prod-diff_binary64
536×fma-udef_binary64
284×fma-def_binary64
199×fma-neg_binary64
179×expm1-udef_binary64
Counts
3 → 72
Calls

3 calls:

115.0ms
(pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 2)
115.0ms
(sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 2))
115.0ms
(cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01142
121042
2244442
3479042
4470142
5504142
000
100

simplify146.0ms (1.8%)

Algorithm
egg-herbie
Rules
682×times-frac_binary64
567×fma-def_binary64
446×associate-/l*_binary64
239×*-commutative_binary64
180×sqr-pow_binary64
Counts
180 → 184
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06149389
121558997
253908997

prune685.0ms (8.2%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New3720372
Fresh066
Picked011
Done011
Total3728380
Error
2.2b
Counts
380 → 8
Alt Table
StatusErrorProgram
21.8b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) 2))
34.4b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))) 2))
24.9b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))))
35.5b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))) 2))
32.3b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) y) (*.f64 z (+.f64 x y)))))
50.7b
(*.f64 2 (/.f64 (hypot.f64 (pow.f64 (*.f64 x (+.f64 y z)) 3/2) (pow.f64 (*.f64 y z) 3/2)) (hypot.f64 (*.f64 x (+.f64 y z)) (sqrt.f64 (*.f64 (*.f64 y z) (-.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))))))
22.0b
(*.f64 2 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
42.6b
(*.f64 2 (sqrt.f64 (fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) z) (*.f64 x (+.f64 y z)))))
Compiler

Compiled 20686 to 9811 computations (52.6% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(cbrt.f64 y)
1.2b
(fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))
20.1b
(cbrt.f64 (*.f64 y y))
20.3b
(sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z))))

series400.0ms (4.8%)

Counts
4 → 72
Calls

4 calls:

216.0ms
(fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))
124.0ms
(sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z))))
30.0ms
(cbrt.f64 y)
30.0ms
(cbrt.f64 (*.f64 y y))

rewrite75.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
595×log-prod_binary64
365×fma-def_binary64
209×expm1-udef_binary64
209×log1p-udef_binary64
198×log-pow_binary64
Counts
4 → 126
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01253
124737
2296233
3546533
000
100

simplify70.0ms (0.8%)

Algorithm
egg-herbie
Rules
725×associate-*l*_binary64
693×associate-*r*_binary64
477×cancel-sign-sub-inv_binary64
345×fma-neg_binary64
212×times-frac_binary64
Counts
198 → 161
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01691277
14631233
216041195
346591192
452531192

prune110.0ms (1.3%)

Pruning

10 alts after pruning (7 fresh and 3 done)

PrunedKeptTotal
New1592161
Fresh055
Picked011
Done022
Total15910169
Error
1.8b
Counts
169 → 10
Alt Table
StatusErrorProgram
48.3b
(*.f64 2 (hypot.f64 (sqrt.f64 (*.f64 x (+.f64 y z))) (*.f64 (sqrt.f64 y) (sqrt.f64 z))))
35.5b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))) 2))
21.8b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) 2))
34.4b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))) 2))
24.9b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))))
41.1b
(*.f64 2 (hypot.f64 (sqrt.f64 (*.f64 x (+.f64 y z))) (*.f64 (cbrt.f64 y) (sqrt.f64 (*.f64 (cbrt.f64 y) z)))))
32.3b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) y) (*.f64 z (+.f64 x y)))))
50.7b
(*.f64 2 (/.f64 (hypot.f64 (pow.f64 (*.f64 x (+.f64 y z)) 3/2) (pow.f64 (*.f64 y z) 3/2)) (hypot.f64 (*.f64 x (+.f64 y z)) (sqrt.f64 (*.f64 (*.f64 y z) (-.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))))))
22.0b
(*.f64 2 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
42.6b
(*.f64 2 (sqrt.f64 (fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) z) (*.f64 x (+.f64 y z)))))
Compiler

Compiled 3852 to 1588 computations (58.8% saved)

regimes2.1s (24.9%)

Accuracy

Total 2.7b remaining (60.9%)

Threshold costs 0b (0%)

Counts
135 → 6
Compiler

Compiled 14810 to 9956 computations (32.8% saved)

bsearch233.0ms (2.8%)

Steps
ItersRangePoint
7
2.1114377005974427e+77
1.5053690721256536e+79
1.4758287118476183e+79
10
2.723161989220886e-179
2.440875843614385e-169
2.748072096169368e-179
12
-2.848420278925453e-293
1.301820874721925e-282
1.2873572104499456e-282
8
-4.6384567460193974e-178
-5.045978689908405e-181
-7.353237923677478e-180
5
-4.107772779280553e+40
-1.4565604328782101e+40
-4.0550781064396446e+40
Compiler

Compiled 4 to 3 computations (25% saved)

simplify7.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
055174
178174
292174
3102174
4106174
5105174

end671.0ms (8.1%)

Compiler

Compiled 682 to 467 computations (31.5% saved)

Profiling

Loading profile data...