Details

Time bar (total: 9.1s)

analyze583.0ms (6.4%)

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)

sample53.0ms (0.6%)

Algorithm
intervals
Symmetry

(sort x y z)

Results
14.0ms256×body128valid
3.0ms52×body128nan
Compiler

Compiled 38 to 26 computations (31.6% saved)

simplify7.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
22.6b
Counts
3 → 2
Alt Table
StatusErrorProgram
22.6b
(*.f64 2 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))
22.6b
(*.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.8b
(+.f64 (*.f64 x y) (*.f64 x z))
0.8b
(+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))
21.3b
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))

series248.0ms (2.7%)

Counts
3 → 84
Calls

3 calls:

233.0ms
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))
8.0ms
(+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))
6.0ms
(+.f64 (*.f64 x y) (*.f64 x z))

rewrite15.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
10×add-log-exp_binary64
add-sqr-sqrt_binary64
fma-def_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
Counts
3 → 51
Calls

3 calls:

6.0ms
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))
5.0ms
(+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))
3.0ms
(+.f64 (*.f64 x y) (*.f64 x z))

simplify85.0ms (0.9%)

Algorithm
egg-herbie
Rules
734×cancel-sign-sub-inv_binary64
438×fma-neg_binary64
256×fma-def_binary64
241×associate-*r*_binary64
221×distribute-rgt-out_binary64
Counts
135 → 110
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02562240
16992135
226372083
345362083
450422083

prune110.0ms (1.2%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New10010110
Fresh101
Picked011
Done000
Total10111112
Error
22.0b
Counts
112 → 11
Alt Table
StatusErrorProgram
22.6b
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
63.4b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (*.f64 y 1/2) (+.f64 (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 x z))))))
34.4b
(*.f64 2 (cbrt.f64 (pow.f64 (sqrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z)))) 3)))
45.0b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
40.9b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
22.9b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))) (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))))
39.7b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
23.1b
(*.f64 2 (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))) (sqrt.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z)))))))
43.8b
(*.f64 2 (sqrt.f64 (+.f64 (/.f64 (*.f64 (*.f64 x x) (-.f64 (*.f64 y y) (*.f64 z z))) (*.f64 x (-.f64 y z))) (*.f64 y z))))
45.9b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
49.3b
(*.f64 2 (sqrt.f64 (cbrt.f64 (*.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)) (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))) (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))))
Compiler

Compiled 3411 to 1425 computations (58.2% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))) (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))))
0.8b
(+.f64 (*.f64 x y) (*.f64 x z))
0.8b
(+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))
21.3b
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))

series201.0ms (2.2%)

Counts
1 → 12
Calls

1 calls:

200.0ms
(*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))) (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))))

rewrite38.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
74×sqrt-prod_binary64
59×add-sqr-sqrt_binary64
32×sqrt-pow1_binary64
24×sqrt-div_binary64
24×pow1_binary64
Counts
1 → 93
Calls

1 calls:

20.0ms
(*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))) (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))))

simplify128.0ms (1.4%)

Algorithm
egg-herbie
Rules
669×cancel-sign-sub-inv_binary64
304×fma-neg_binary64
237×associate-*r*_binary64
222×distribute-rgt-in_binary64
215×fma-def_binary64
Counts
105 → 118
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02723285
16542778
224302666
345082647
449762647
549782647

prune355.0ms (3.9%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New3362338
Fresh279
Picked011
Done011
Total33811349
Error
22.0b
Counts
349 → 11
Alt Table
StatusErrorProgram
22.6b
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
63.4b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (*.f64 y 1/2) (+.f64 (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 x z))))))
34.4b
(*.f64 2 (cbrt.f64 (pow.f64 (sqrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z)))) 3)))
45.0b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
23.4b
(*.f64 2 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))) (cbrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))))) (*.f64 (cbrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))) (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))))))
40.9b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
22.9b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))) (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))))
39.7b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
23.1b
(*.f64 2 (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))) (sqrt.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z)))))))
23.3b
(*.f64 2 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))) (sqrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))))) (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))) (sqrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))))))
45.9b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
Compiler

Compiled 14599 to 3912 computations (73.2% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z)))))
0.4b
(*.f64 (fabs.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))) (sqrt.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))))
0.5b
(fma.f64 y z (*.f64 x (+.f64 y z)))
21.9b
(cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))

series338.0ms (3.7%)

Counts
4 → 144
Calls

4 calls:

142.0ms
(sqrt.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z)))))
118.0ms
(*.f64 (fabs.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))) (sqrt.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))))
69.0ms
(cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))
8.0ms
(fma.f64 y z (*.f64 x (+.f64 y z)))

rewrite176.0ms (1.9%)

Algorithm
rewrite-expression-head
Rules
50×add-sqr-sqrt_binary64
26×cbrt-prod_binary64
22×sqrt-prod_binary64
15×unswap-sqr_binary64
13×*-un-lft-identity_binary64
Counts
4 → 94
Calls

4 calls:

165.0ms
(*.f64 (fabs.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))) (sqrt.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))))
1.0ms
(sqrt.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z)))))
1.0ms
(cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))
0.0ms
(fma.f64 y z (*.f64 x (+.f64 y z)))

simplify214.0ms (2.4%)

Algorithm
egg-herbie
Rules
886×fma-def_binary64
434×*-commutative_binary64
200×cancel-sign-sub-inv_binary64
174×sqr-pow_binary64
173×associate-*r*_binary64
Counts
238 → 374
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
098514565
1329713674
2503213674

prune728.0ms (8%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New4971498
Fresh088
Picked011
Done112
Total49811509
Error
22.0b
Counts
509 → 11
Alt Table
StatusErrorProgram
23.2b
(*.f64 2 (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))) 3))
39.7b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
34.4b
(*.f64 2 (cbrt.f64 (pow.f64 (sqrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z)))) 3)))
45.0b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
63.4b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (*.f64 y 1/2) (+.f64 (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 x z))))))
23.4b
(*.f64 2 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))) (cbrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))))) (*.f64 (cbrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))) (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))))))
40.9b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
22.9b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))) (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))))
23.1b
(*.f64 2 (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))) (sqrt.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z)))))))
23.3b
(*.f64 2 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))) (sqrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))))) (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))) (sqrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))))))
45.9b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
Compiler

Compiled 28918 to 12048 computations (58.3% saved)

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z)))))
0.5b
(fma.f64 y z (*.f64 x (+.f64 y z)))
0.7b
(pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))) 3)
21.9b
(cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))

series181.0ms (2%)

Counts
1 → 36
Calls

1 calls:

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

rewrite5.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
12×sqrt-prod_binary64
cube-prod_binary64
unpow-prod-down_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
Counts
1 → 41
Calls

1 calls:

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

simplify96.0ms (1.1%)

Algorithm
egg-herbie
Rules
515×associate-*r*_binary64
423×times-frac_binary64
384×associate-*l*_binary64
310×associate-/l*_binary64
305×fma-def_binary64
Counts
77 → 120
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
04144078
112643908
254033908

prune328.0ms (3.6%)

Pruning

13 alts after pruning (10 fresh and 3 done)

PrunedKeptTotal
New3415346
Fresh358
Picked011
Done022
Total34413357
Error
2.5b
Counts
357 → 13
Alt Table
StatusErrorProgram
34.4b
(*.f64 2 (cbrt.f64 (pow.f64 (sqrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z)))) 3)))
35.6b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/6 (-.f64 (log.f64 (neg.f64 (+.f64 z x))) (log.f64 (/.f64 -1 y))))) 3))
45.0b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
35.3b
(*.f64 2 (pow.f64 (sqrt.f64 (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z)))))) 3))
23.4b
(*.f64 2 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))) (cbrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))))) (*.f64 (cbrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))) (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))))))
35.2b
(*.f64 2 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 1/3) (+.f64 (log.f64 (+.f64 x y)) (log.f64 z)))) 3))
23.2b
(*.f64 2 (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))) 3))
39.7b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
36.2b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/6 (-.f64 (log.f64 (+.f64 z x)) (log.f64 (/.f64 1 y))))) 3))
35.0b
(*.f64 2 (pow.f64 (sqrt.f64 (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (neg.f64 (+.f64 z y))) (log.f64 (/.f64 -1 x)))))) 3))
22.9b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))) (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))))
23.1b
(*.f64 2 (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z))))) (sqrt.f64 (cbrt.f64 (fma.f64 y z (*.f64 x (+.f64 y z)))))))
23.3b
(*.f64 2 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))) (sqrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))))) (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))) (sqrt.f64 (sqrt.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))))))
Compiler

Compiled 15989 to 8785 computations (45.1% saved)

regimes3.6s (39.2%)

Accuracy

Total 2.9b remaining (57.1%)

Threshold costs 0b (0%)

Counts
205 → 3
Compiler

Compiled 43493 to 21719 computations (50.1% saved)

bsearch98.0ms (1.1%)

Steps
ItersRangePoint
9
1.2905723619641614e+44
1.8737879402323173e+49
1.8541994331994472e+49
8
-2.3936853018595235e+24
-1.8016840731952225e+20
-2.361197447632789e+24
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
04184
15984
27084
37884
48184
58184

end22.0ms (0.2%)

Compiler

Compiled 171 to 129 computations (24.6% saved)

sample1.5s (16.1%)

Algorithm
intervals
Results
451.0ms8000×body128valid
120.0ms2279×body128nan
Compiler

Compiled 417 to 237 computations (43.2% saved)

Profiling

Loading profile data...