Details

Time bar (total: 7.0s)

analyze615.0ms (8.9%)

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.2s (17.3%)

Results
943.0ms8256×body128valid
240.0ms2397×body128invalid
Compiler

Compiled 36 to 24 computations (33.3% saved)

preprocess25.0ms (0.4%)

Algorithm
egg-herbie
Rules
25×fma-def_binary64
11×*-commutative_binary64
10×+-commutative_binary64
associate-+l+_binary64
distribute-lft-out_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02772
15864
28464
38764
033
133
Stop Event
unsound
saturated
Symmetry

(sort x y z)

Compiler

Compiled 17 to 11 computations (35.3% saved)

simplify16.0ms (0.2%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
01218
12316
24516
36416
46916
57016
Stop Event
saturated
Counts
1 → 2

prune3.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 90 to 57 computations (36.7% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.6b
(+.f64 (*.f64 x y) (*.f64 x z))
1.6b
(+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))
18.2b
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))

series136.0ms (2%)

Counts
3 → 84
Calls

27 calls:

22.0ms
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))
y
-inf
19.0ms
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))
x
inf
19.0ms
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))
z
inf
18.0ms
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))
x
-inf
14.0ms
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))
z
-inf

rewrite62.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
812×fma-def_binary64
367×fma-neg_binary64
205×expm1-udef_binary64
205×log1p-udef_binary64
201×egg-rr
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01035
122331
2325531
Stop Event
node limit
Counts
3 → 201

simplify42.0ms (0.6%)

Algorithm
egg-herbie
Rules
605×cancel-sign-sub-inv_binary64
592×associate-*l*_binary64
528×associate-*r*_binary64
198×fma-def_binary64
174×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01911448
15281389
219021344
Stop Event
node limit
Counts
285 → 230

prune216.0ms (3.1%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New22010230
Fresh101
Picked101
Done000
Total22210232
Error
18.8b
Counts
232 → 10
Alt Table
StatusErrorProgram
19.6b
(*.f64 2 (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))))
41.0b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
19.5b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2))
19.6b
(*.f64 2 (sqrt.f64 (fma.f64 (*.f64 z (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 x (+.f64 y z)))))
40.0b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
40.9b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
63.3b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (+.f64 (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 x z)))))))
19.5b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 2) (*.f64 y z))))
49.8b
(*.f64 2 (/.f64 (sqrt.f64 (-.f64 (pow.f64 (*.f64 x (+.f64 y z)) 2) (pow.f64 (*.f64 y z) 2))) (sqrt.f64 (-.f64 (*.f64 x (+.f64 y z)) (*.f64 y z)))))
19.7b
(*.f64 2 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))))
Compiler

Compiled 5351 to 2289 computations (57.2% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 2)
0.7b
(fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 2) (*.f64 y z))
14.0b
(cbrt.f64 (*.f64 x (+.f64 y z)))
18.2b
(sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 2) (*.f64 y z)))

series731.0ms (10.5%)

Counts
4 → 42
Calls

36 calls:

283.0ms
(fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 2) (*.f64 y z))
y
0
254.0ms
(fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 2) (*.f64 y z))
z
0
27.0ms
(sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 2) (*.f64 y z)))
x
-inf
21.0ms
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 2)
x
-inf
18.0ms
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 2)
z
0

rewrite60.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
581×log-prod_binary64
382×fma-def_binary64
211×expm1-udef_binary64
211×log1p-udef_binary64
194×log-pow_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01277
125649
2329345
Stop Event
node limit
Counts
4 → 119

simplify52.0ms (0.7%)

Algorithm
egg-herbie
Rules
649×cancel-sign-sub-inv_binary64
274×unswap-sqr_binary64
217×fma-def_binary64
210×associate-*r*_binary64
166×times-frac_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02371833
17001797
224901767
Stop Event
node limit
Counts
161 → 173

prune229.0ms (3.3%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New2152217
Fresh099
Picked011
Done000
Total21512227
Error
18.8b
Counts
227 → 12
Alt Table
StatusErrorProgram
19.6b
(*.f64 2 (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))))
41.0b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
19.5b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2))
24.3b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (pow.f64 (expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 x (+.f64 y z))))) 2) (*.f64 y z))))
19.6b
(*.f64 2 (sqrt.f64 (fma.f64 (*.f64 z (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 x (+.f64 y z)))))
40.0b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
40.9b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
63.3b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (+.f64 (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 x z)))))))
19.5b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 2) (*.f64 y z))))
49.8b
(*.f64 2 (/.f64 (sqrt.f64 (-.f64 (pow.f64 (*.f64 x (+.f64 y z)) 2) (pow.f64 (*.f64 y z) 2))) (sqrt.f64 (-.f64 (*.f64 x (+.f64 y z)) (*.f64 y z)))))
24.1b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (+.f64 y z)))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 4))) (*.f64 y z))))
19.7b
(*.f64 2 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))))
Compiler

Compiled 7080 to 3353 computations (52.6% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 z (+.f64 x y))
0.5b
(pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2)
0.7b
(fma.f64 x y (*.f64 z (+.f64 x y)))
18.5b
(pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4)

series146.0ms (2.1%)

Counts
4 → 144
Calls

36 calls:

12.0ms
(pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2)
y
-inf
10.0ms
(pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2)
x
inf
10.0ms
(pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4)
x
0
9.0ms
(pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2)
z
-inf
8.0ms
(pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2)
x
0

rewrite58.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
858×prod-diff_binary64
198×log1p-udef_binary64
116×log1p-expm1-u_binary64
116×expm1-log1p-u_binary64
114×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01146
124645
2307345
Stop Event
node limit
Counts
4 → 98

simplify91.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
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06226823
121226538
Stop Event
node limit
Counts
242 → 246

prune241.0ms (3.5%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New2433246
Fresh4610
Picked011
Done011
Total24711258
Error
2.0b
Counts
258 → 11
Alt Table
StatusErrorProgram
19.5b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2))
24.3b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (pow.f64 (expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 x (+.f64 y z))))) 2) (*.f64 y z))))
19.6b
(*.f64 2 (sqrt.f64 (fma.f64 (*.f64 z (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 x (+.f64 y z)))))
37.0b
(*.f64 2 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (+.f64 z x)) (log.f64 y))) 2))
24.1b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (+.f64 y z)))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 4))) (*.f64 y z))))
19.7b
(*.f64 2 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))))
34.7b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))) 2))
19.5b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 2) (*.f64 y z))))
19.6b
(*.f64 2 (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))))
35.1b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))) 2))
49.8b
(*.f64 2 (/.f64 (sqrt.f64 (-.f64 (pow.f64 (*.f64 x (+.f64 y z)) 2) (pow.f64 (*.f64 y z) 2))) (sqrt.f64 (-.f64 (*.f64 x (+.f64 y z)) (*.f64 y z)))))
Compiler

Compiled 11000 to 6299 computations (42.7% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(pow.f64 (cbrt.f64 y) 2)
0.6b
(cbrt.f64 y)
1.5b
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))
18.2b
(sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z))))

series275.0ms (4%)

Counts
4 → 42
Calls

24 calls:

34.0ms
(sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z))))
z
-inf
30.0ms
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))
z
0
21.0ms
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))
x
-inf
20.0ms
(sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z))))
x
inf
20.0ms
(sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z))))
x
-inf

rewrite74.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
584×log-prod_binary64
328×fma-def_binary64
213×expm1-udef_binary64
213×log1p-udef_binary64
195×log-pow_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01253
125637
2331833
Stop Event
node limit
Counts
4 → 114

simplify41.0ms (0.6%)

Algorithm
egg-herbie
Rules
922×fma-def_binary64
462×associate-*l*_binary64
436×cancel-sign-sub-inv_binary64
410×associate-*r*_binary64
382×associate--l+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0153962
1419926
21459876
Stop Event
node limit
Counts
156 → 149

prune122.0ms (1.8%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New1732175
Fresh268
Picked101
Done022
Total17610186
Error
1.6b
Counts
186 → 10
Alt Table
StatusErrorProgram
19.5b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 2) (*.f64 y z))))
20.1b
(*.f64 2 (sqrt.f64 (fma.f64 (sqrt.f64 (*.f64 y (cbrt.f64 y))) (*.f64 (cbrt.f64 y) z) (*.f64 x (+.f64 y z)))))
19.5b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2))
24.3b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (pow.f64 (expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 x (+.f64 y z))))) 2) (*.f64 y z))))
19.7b
(*.f64 2 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))))
34.7b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))) 2))
48.0b
(*.f64 2 (hypot.f64 (sqrt.f64 (*.f64 x (+.f64 y z))) (*.f64 (sqrt.f64 y) (sqrt.f64 z))))
35.1b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))) 2))
49.8b
(*.f64 2 (/.f64 (sqrt.f64 (-.f64 (pow.f64 (*.f64 x (+.f64 y z)) 2) (pow.f64 (*.f64 y z) 2))) (sqrt.f64 (-.f64 (*.f64 x (+.f64 y z)) (*.f64 y z)))))
24.1b
(*.f64 2 (sqrt.f64 (fma.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (+.f64 y z)))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 x (+.f64 y z))) 4))) (*.f64 y z))))
Compiler

Compiled 4020 to 1786 computations (55.6% saved)

regimes1.8s (25.7%)

Accuracy

Total 3.4b remaining (65.9%)

Threshold costs 0b (0%)

Counts
153 → 3
Compiler

Compiled 16502 to 11096 computations (32.8% saved)

bsearch102.0ms (1.5%)

Algorithm
binary-search
Calls

2 calls:

52.0ms
y
45.0ms
y
Steps
ItersPointRange
2.100732418777179e+49
∈ [
3.3292460650029266e+42
,
2.1265650426550467e+49
]
-4.744740362103413e+58
∈ [
-4.796175996337362e+58
,
-3.485877158302761e+55
]
Compiler

Compiled 4 to 3 computations (25% saved)

simplify5.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
04082
16382
27782
38782
49182
Stop Event
saturated

end583.0ms (8.4%)

Stop Event
fuel
Compiler

Compiled 458 to 317 computations (30.8% saved)

Profiling

Loading profile data...