Details

Time bar (total: 5.3s)

analyze586.0ms (11%)

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.3s (23.6%)

Symmetry

(sort x y z)

Results
969.0ms8256×body128valid
243.0ms2383×body128invalid
Compiler

Compiled 53 to 35 computations (34% saved)

simplify32.0ms (0.6%)

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.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
23.2b
Counts
3 → 1
Alt Table
StatusErrorProgram
23.2b
(*.f64 2 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))
Compiler

Compiled 56 to 35 computations (37.5% saved)

localize7.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 z (+.f64 x y))
1.0b
(fma.f64 x y (*.f64 z (+.f64 x y)))
21.9b
(sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))

series116.0ms (2.2%)

Counts
3 → 84
Calls

3 calls:

101.0ms
(sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))
7.0ms
(fma.f64 x y (*.f64 z (+.f64 x y)))
7.0ms
(*.f64 z (+.f64 x y))

rewrite52.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
887×expm1-log1p-u_binary64
858×prod-diff_binary64
89×add-sqr-sqrt_binary64
85×log1p-expm1-u_binary64
84×add-cbrt-cube_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0831
117431
2242231
Stop Event
node limit
Counts
3 → 78
Calls

3 calls:

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

simplify39.0ms (0.7%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
01901448
15251389
218981344
Stop Event
node limit
Counts
162 → 109

prune156.0ms (2.9%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New9613109
Fresh000
Picked101
Done000
Total9713110
Error
22.6b
Counts
110 → 13
Alt Table
StatusErrorProgram
23.4b
(*.f64 2 (sqrt.f64 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))))
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)))))))
36.3b
(*.f64 2 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 3/2)))
46.3b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 (*.f64 x 1/2) (+.f64 (sqrt.f64 (/.f64 z y)) (sqrt.f64 (/.f64 y z))))))
23.9b
(*.f64 2 (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) 3))
43.2b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
23.6b
(*.f64 2 (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))
27.8b
(*.f64 2 (sqrt.f64 (fma.f64 x y (expm1.f64 (log1p.f64 (*.f64 z (+.f64 x y)))))))
48.1b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
23.4b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2))
23.7b
(*.f64 2 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))))
42.8b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
42.4b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
Compiler

Compiled 3081 to 1540 computations (50% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.0b
(fma.f64 x y (*.f64 z (+.f64 x y)))
21.9b
(sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))
21.9b
(sqrt.f64 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))))
22.5b
(cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))

series145.0ms (2.7%)

Counts
2 → 24
Calls

2 calls:

107.0ms
(sqrt.f64 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))))
37.0ms
(cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))

rewrite49.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
858×prod-diff_binary64
124×add-sqr-sqrt_binary64
124×log1p-expm1-u_binary64
124×expm1-log1p-u_binary64
123×add-cbrt-cube_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01360
127126
2344826
Stop Event
node limit
Counts
2 → 50
Calls

2 calls:

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

simplify62.0ms (1.2%)

Algorithm
egg-herbie
Rules
375×fma-def_binary64
355×associate-*r*_binary64
289×sub-neg_binary64
252×associate-*l*_binary64
231×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03482461
110182337
240582337
Stop Event
node limit
Counts
74 → 95

prune365.0ms (6.8%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New2970297
Fresh01212
Picked011
Done000
Total29713310
Error
22.6b
Counts
310 → 13
Alt Table
StatusErrorProgram
23.4b
(*.f64 2 (sqrt.f64 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))))
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)))))))
36.3b
(*.f64 2 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 3/2)))
46.3b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 (*.f64 x 1/2) (+.f64 (sqrt.f64 (/.f64 z y)) (sqrt.f64 (/.f64 y z))))))
23.9b
(*.f64 2 (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) 3))
43.2b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
23.6b
(*.f64 2 (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))
27.8b
(*.f64 2 (sqrt.f64 (fma.f64 x y (expm1.f64 (log1p.f64 (*.f64 z (+.f64 x y)))))))
48.1b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
23.4b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2))
23.7b
(*.f64 2 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))))
42.8b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
42.4b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
Compiler

Compiled 14768 to 5339 computations (63.8% saved)

localize11.0ms (0.2%)

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

series121.0ms (2.3%)

Counts
2 → 72
Calls

2 calls:

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

rewrite52.0ms (1%)

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
01128
124627
2307327
Stop Event
node limit
Counts
2 → 42
Calls

2 calls:

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

simplify98.0ms (1.8%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
06206238
121125953
Stop Event
node limit
Counts
114 → 180

prune260.0ms (4.9%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New2414245
Fresh6511
Picked011
Done011
Total24711258
Error
2.5b
Counts
258 → 11
Alt Table
StatusErrorProgram
23.4b
(*.f64 2 (sqrt.f64 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))))
23.2b
(*.f64 2 (fabs.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))
23.6b
(*.f64 2 (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))
37.1b
(*.f64 2 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (+.f64 y x)) (log.f64 z))) 2))
27.8b
(*.f64 2 (sqrt.f64 (fma.f64 x y (expm1.f64 (log1p.f64 (*.f64 z (+.f64 x y)))))))
34.1b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))) 2))
36.3b
(*.f64 2 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 3/2)))
23.4b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2))
23.9b
(*.f64 2 (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) 3))
23.7b
(*.f64 2 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))))
36.0b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))) 2))
Compiler

Compiled 10936 to 6256 computations (42.8% saved)

localize8.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 z (+.f64 x y))
1.0b
(fma.f64 x y (*.f64 z (+.f64 x y)))
21.9b
(sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))

prune83.0ms (1.5%)

Pruning

11 alts after pruning (8 fresh and 3 done)

PrunedKeptTotal
New1090109
Fresh088
Picked011
Done022
Total10911120
Error
2.5b
Counts
120 → 11
Alt Table
StatusErrorProgram
23.4b
(*.f64 2 (sqrt.f64 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))))
23.2b
(*.f64 2 (fabs.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))
23.6b
(*.f64 2 (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))
37.1b
(*.f64 2 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (+.f64 y x)) (log.f64 z))) 2))
27.8b
(*.f64 2 (sqrt.f64 (fma.f64 x y (expm1.f64 (log1p.f64 (*.f64 z (+.f64 x y)))))))
34.1b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))) 2))
36.3b
(*.f64 2 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 3/2)))
23.4b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2))
23.9b
(*.f64 2 (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) 3))
23.7b
(*.f64 2 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))))
36.0b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))) 2))
Compiler

Compiled 2908 to 1477 computations (49.2% saved)

regimes965.0ms (18.1%)

Accuracy

Total 2.4b remaining (52.9%)

Threshold costs 0b (0%)

Counts
77 → 6
Compiler

Compiled 9686 to 6176 computations (36.2% saved)

bsearch232.0ms (4.3%)

Steps
ItersRangePoint
7
2632165710693298700.0
7.387001778290783e+21
6.965577108647369e+21
11
1.1609401247143697e-207
3.733633490384838e-183
1.1764325343930836e-207
12
-1.967252303492221e-289
5.637836101992725e-266
5.248403633372559e-266
8
-2.2074341187827674e-220
-3.384336718055756e-225
-1.3866893327893407e-224
9
-3.0541820842655216e+44
-1.6737180928486003e+37
-3.0121278070499345e+44
Compiler

Compiled 4 to 3 computations (25% saved)

simplify13.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
056171
177171
291171
3101171
4105171
Stop Event
saturated

end615.0ms (11.5%)

Compiler

Compiled 678 to 463 computations (31.7% saved)

Profiling

Loading profile data...