Details

Time bar (total: 11.7s)

analyze1.5s (13.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)

sample109.0ms (0.9%)

Algorithm
intervals
Results
27.0ms256×body128valid
9.0ms72×body128nan
Compiler

Compiled 38 to 26 computations (31.6% saved)

simplify16.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

prune8.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 90 to 56 computations (37.8% saved)

localize15.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
1.3b
(fma.f64 x (+.f64 y z) (*.f64 y z))
19.3b
(sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

series778.0ms (6.7%)

Counts
2 → 48
Calls

2 calls:

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

rewrite4.0ms (0%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
sqrt-prod_binary64
add-cube-cbrt_binary64
pow1_binary64
Counts
2 → 25
Calls

2 calls:

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

simplify122.0ms (1%)

Algorithm
egg-herbie
Rules
631×associate-*l*_binary64
605×cancel-sign-sub-inv_binary64
565×associate-*r*_binary64
297×fma-neg_binary64
197×fma-def_binary64
Counts
73 → 70
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02141615
15311523
218731478
349331478
451151478

prune222.0ms (1.9%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New581270
Fresh101
Picked101
Done000
Total601272
Error
19.8b
Counts
72 → 12
Alt Table
StatusErrorProgram
21.2b
(*.f64 2 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (cbrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (cbrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
20.9b
(*.f64 2 (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
20.7b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
46.0b
(*.f64 2 (sqrt.f64 (cbrt.f64 (pow.f64 (fma.f64 y x (*.f64 z (+.f64 y x))) 3))))
31.6b
(*.f64 2 (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
23.4b
(*.f64 2 (exp.f64 (log.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
39.0b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
43.2b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
44.2b
(*.f64 2 (sqrt.f64 (*.f64 y 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)))))))
20.9b
(*.f64 2 (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x))))) (sqrt.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x)))))))
40.2b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
Compiler

Compiled 2428 to 1169 computations (51.9% saved)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))
0.6b
(*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))))
1.3b
(fma.f64 x (+.f64 y z) (*.f64 y z))
19.3b
(sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

series547.0ms (4.7%)

Counts
2 → 48
Calls

2 calls:

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

rewrite47.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
84×sqrt-prod_binary64
64×add-sqr-sqrt_binary64
36×sqrt-pow1_binary64
27×pow1_binary64
18×rem-sqrt-square_binary64
Counts
2 → 106
Calls

2 calls:

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

simplify211.0ms (1.8%)

Algorithm
egg-herbie
Rules
472×associate-*l*_binary64
445×fma-def_binary64
385×times-frac_binary64
317×associate-/r*_binary64
244×associate-/l*_binary64
Counts
154 → 185
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05736013
116865614
253605614

prune1.1s (9.5%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New4094413
Fresh5611
Picked011
Done000
Total41411425
Error
19.8b
Counts
425 → 11
Alt Table
StatusErrorProgram
43.2b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
45.7b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 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)))))))
20.8b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))))))
20.7b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
20.7b
(*.f64 2 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (fabs.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))))) (sqrt.f64 (sqrt.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))))))
39.0b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
44.2b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
20.9b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))))
20.9b
(*.f64 2 (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x))))) (sqrt.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x)))))))
40.2b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
Compiler

Compiled 20441 to 8615 computations (57.9% saved)

localize32.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (fabs.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))))) (sqrt.f64 (sqrt.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
1.3b
(fma.f64 x (+.f64 y z) (*.f64 y z))
19.3b
(sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))
19.9b
(cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

series376.0ms (3.2%)

Counts
2 → 72
Calls

2 calls:

255.0ms
(*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (fabs.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))))) (sqrt.f64 (sqrt.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
120.0ms
(cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

rewrite66.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
97×add-sqr-sqrt_binary64
90×rem-sqrt-square_binary64
60×mul-fabs_binary64
50×sqrt-prod_binary64
28×cbrt-prod_binary64
Counts
2 → 75
Calls

2 calls:

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

simplify398.0ms (3.4%)

Algorithm
egg-herbie
Rules
916×fma-def_binary64
402×times-frac_binary64
285×*-commutative_binary64
285×associate-/r*_binary64
244×associate-/l*_binary64
Counts
147 → 221
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
063011966
1205110352
2493210288
3526210288

prune523.0ms (4.5%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New4261427
Fresh189
Picked011
Done011
Total42711438
Error
19.8b
Counts
438 → 11
Alt Table
StatusErrorProgram
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)))))))
20.8b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))))))
45.9b
(*.f64 2 (*.f64 (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))) (sqrt.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
20.7b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
20.7b
(*.f64 2 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (fabs.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))))) (sqrt.f64 (sqrt.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))))))
39.0b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
43.2b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
44.2b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
20.9b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))))
20.9b
(*.f64 2 (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x))))) (sqrt.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x)))))))
40.2b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
Compiler

Compiled 28662 to 10343 computations (63.9% saved)

localize14.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
0.4b
(*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))))
1.3b
(fma.f64 x (+.f64 y z) (*.f64 y z))
19.3b
(sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

series745.0ms (6.4%)

Counts
2 → 48
Calls

2 calls:

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

rewrite62.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
135×sqrt-prod_binary64
134×sqrt-pow1_binary64
109×add-sqr-sqrt_binary64
70×pow1_binary64
66×rem-sqrt-square_binary64
Counts
2 → 151
Calls

2 calls:

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

simplify276.0ms (2.4%)

Algorithm
egg-herbie
Rules
515×*-commutative_binary64
266×+-commutative_binary64
239×fma-def_binary64
215×associate-+r+_binary64
202×associate-*r*_binary64
Counts
199 → 240
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0121817768
1438217105
2501917105

prune732.0ms (6.3%)

Pruning

11 alts after pruning (8 fresh and 3 done)

PrunedKeptTotal
New4491450
Fresh178
Picked011
Done022
Total45011461
Error
19.8b
Counts
461 → 11
Alt Table
StatusErrorProgram
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)))))))
20.8b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))))))
57.4b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (exp.f64 (*.f64 1/8 (-.f64 (log.f64 (neg.f64 (pow.f64 (+.f64 z x) 3))) (*.f64 3 (log.f64 (/.f64 -1 y))))))))
20.7b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
20.7b
(*.f64 2 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (fabs.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))))) (sqrt.f64 (sqrt.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))))))
39.0b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
43.2b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
44.2b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
20.9b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))))
20.9b
(*.f64 2 (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x))))) (sqrt.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x)))))))
40.2b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
Compiler

Compiled 36837 to 17496 computations (52.5% saved)

regimes1.5s (13.1%)

Accuracy

Total 0.5b remaining (2.5%)

Threshold costs 0.5b (2.5%)

Counts
192 → 1
Compiler

Compiled 32624 to 18056 computations (44.7% saved)

simplify10.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01317
11817
21617

end36.0ms (0.3%)

Remove

(sort x y z)

Compiler

Compiled 45 to 30 computations (33.3% saved)

sample2.1s (18.2%)

Algorithm
intervals
Results
897.0ms8000×body128valid
263.0ms2432×body128nan
Compiler

Compiled 301 to 164 computations (45.5% saved)

Profiling

Loading profile data...