Details

Time bar (total: 7.6s)

analyze606.0ms (8%)

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

Symmetry

(sort x y z)

Results
989.0ms8256×body128valid
274.0ms2355×body128invalid
Compiler

Compiled 53 to 35 computations (34% 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

1 alts after pruning (1 fresh and 0 done)

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

Compiled 56 to 34 computations (39.3% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.8b
(fma.f64 x (+.f64 y z) (*.f64 y z))
20.6b
(sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

series209.0ms (2.8%)

Counts
2 → 48
Calls

2 calls:

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

rewrite2.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:

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

simplify72.0ms (0.9%)

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

prune68.0ms (0.9%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New601070
Fresh000
Picked011
Done000
Total601171
Error
21.2b
Counts
71 → 11
Alt Table
StatusErrorProgram
24.0b
(*.f64 2 (sqrt.f64 (expm1.f64 (log1p.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
43.7b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
22.2b
(*.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)))))))
22.0b
(*.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))))))
22.5b
(*.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))))))
42.9b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
45.4b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
41.3b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
63.4b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (+.f64 (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 x z)))))))
61.8b
(*.f64 2 (sqrt.f64 (*.f64 z x)))
21.7b
(*.f64 2 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))
Compiler

Compiled 2308 to 1134 computations (50.9% saved)

localize10.0ms (0.1%)

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.5b
(*.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.8b
(fma.f64 x (+.f64 y z) (*.f64 y z))
20.6b
(sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

series259.0ms (3.4%)

Counts
2 → 48
Calls

2 calls:

191.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)))))
68.0ms
(sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))

rewrite21.0ms (0.3%)

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:

7.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)))))
1.0ms
(sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))

simplify109.0ms (1.4%)

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

prune494.0ms (6.5%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New4103413
Fresh189
Picked011
Done101
Total41212424
Error
21.2b
Counts
424 → 12
Alt Table
StatusErrorProgram
63.4b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (+.f64 (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 x z)))))))
22.3b
(*.f64 2 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (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 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))))
43.7b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
22.2b
(*.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)))))))
22.0b
(*.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))))))
22.5b
(*.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))))))
42.9b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
22.2b
(*.f64 2 (*.f64 (sqrt.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)))))) (*.f64 (sqrt.f64 (cbrt.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.4b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
22.0b
(*.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)))))))
41.3b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
61.8b
(*.f64 2 (sqrt.f64 (*.f64 z x)))
Compiler

Compiled 20547 to 8623 computations (58% saved)

localize11.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)))))
0.8b
(fma.f64 x (+.f64 y z) (*.f64 y z))
20.6b
(sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

series703.0ms (9.3%)

Counts
2 → 48
Calls

2 calls:

516.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)))))
186.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))))))

rewrite65.0ms (0.9%)

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:

18.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))))))
15.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)))))

simplify241.0ms (3.2%)

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

prune757.0ms (10%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New4482450
Fresh1910
Picked101
Done101
Total45111462
Error
21.2b
Counts
462 → 11
Alt Table
StatusErrorProgram
22.2b
(*.f64 2 (*.f64 (sqrt.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)))))) (*.f64 (sqrt.f64 (cbrt.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)))))))
22.2b
(*.f64 2 (pow.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) 4))
43.7b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
22.2b
(*.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)))))))
22.0b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (pow.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) 3/2)))
22.5b
(*.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))))))
42.9b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
45.4b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
41.3b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
63.4b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (+.f64 (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 x z)))))))
61.8b
(*.f64 2 (sqrt.f64 (*.f64 z x)))
Compiler

Compiled 37058 to 17611 computations (52.5% saved)

localize19.0ms (0.2%)

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))))) (pow.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) 3/2))
0.4b
(pow.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) 3/2)
0.8b
(fma.f64 x (+.f64 y z) (*.f64 y z))
20.6b
(sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

series284.0ms (3.8%)

Counts
2 → 48
Calls

2 calls:

174.0ms
(*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (pow.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) 3/2))
110.0ms
(pow.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) 3/2)

rewrite34.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
78×sqrt-prod_binary64
50×add-sqr-sqrt_binary64
30×unpow-prod-down_binary64
20×unswap-sqr_binary64
14×*-un-lft-identity_binary64
Counts
2 → 91
Calls

2 calls:

9.0ms
(*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (pow.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) 3/2))
3.0ms
(pow.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) 3/2)

simplify129.0ms (1.7%)

Algorithm
egg-herbie
Rules
468×associate-*l*_binary64
433×fma-def_binary64
419×times-frac_binary64
312×associate-/r*_binary64
283×associate-/l*_binary64
Counts
139 → 186
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06087990
117687661
256297661

prune615.0ms (8.1%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New3251326
Fresh2810
Picked011
Done000
Total32710337
Error
21.2b
Counts
337 → 10
Alt Table
StatusErrorProgram
63.4b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (+.f64 (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 x z)))))))
22.2b
(*.f64 2 (*.f64 (pow.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) 5/2) (pow.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) 3/2)))
43.7b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
22.2b
(*.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)))))))
22.0b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (pow.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) 3/2)))
42.9b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
22.2b
(*.f64 2 (*.f64 (sqrt.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)))))) (*.f64 (sqrt.f64 (cbrt.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.4b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
41.3b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
61.8b
(*.f64 2 (sqrt.f64 (*.f64 z x)))
Compiler

Compiled 16266 to 6738 computations (58.6% saved)

regimes1.4s (18.4%)

Accuracy

Total 0.5b remaining (2.5%)

Threshold costs 0.5b (2.5%)

Counts
170 → 1
Compiler

Compiled 30692 to 16856 computations (45.1% saved)

simplify2.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01216
11816
21716

end143.0ms (1.9%)

Remove

(sort x y z)

Compiler

Compiled 276 to 154 computations (44.2% saved)

Profiling

Loading profile data...