Details

Time bar (total: 6.3s)

analyze735.0ms (11.7%)

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.4s (21.9%)

Symmetry

(sort x y z)

Results
1.1s8256×body128valid
259.0ms2393×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

prune5.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
20.4b
Counts
3 → 1
Alt Table
StatusErrorProgram
20.4b
(*.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
1.5b
(fma.f64 x (+.f64 y z) (*.f64 y z))
19.3b
(sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

series182.0ms (2.9%)

Counts
2 → 48
Calls

2 calls:

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

prune167.0ms (2.7%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New591170
Fresh000
Picked101
Done000
Total601171
Error
19.8b
Counts
71 → 11
Alt Table
StatusErrorProgram
48.2b
(*.f64 2 (sqrt.f64 (cbrt.f64 (pow.f64 (fma.f64 y x (*.f64 z (+.f64 y x))) 3))))
41.9b
(*.f64 2 (sqrt.f64 (*.f64 z (+.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)))))))
42.9b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
21.3b
(*.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))))))
31.1b
(*.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))))))
40.2b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
20.4b
(*.f64 2 (sqrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x)))))
44.5b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
40.8b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
Compiler

Compiled 2346 to 1149 computations (51% saved)

localize188.0ms (3%)

Local error

Found 3 expressions with local error:

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

series212.0ms (3.4%)

Counts
3 → 72
Calls

3 calls:

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

rewrite9.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
pow1_binary64
add-cbrt-cube_binary64
Counts
3 → 50
Calls

3 calls:

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

simplify82.0ms (1.3%)

Algorithm
egg-herbie
Rules
608×cancel-sign-sub-inv_binary64
468×times-frac_binary64
347×distribute-rgt-in_binary64
321×distribute-lft-in_binary64
216×fma-def_binary64
Counts
122 → 114
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02492028
16191906
223201861
347051861
454051861

prune143.0ms (2.3%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New1122114
Fresh1910
Picked101
Done000
Total11411125
Error
19.8b
Counts
125 → 11
Alt Table
StatusErrorProgram
43.2b
(*.f64 2 (sqrt.f64 (fma.f64 y x (*.f64 (*.f64 z (sqrt.f64 (+.f64 y x))) (sqrt.f64 (+.f64 y x))))))
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)))))))
20.6b
(*.f64 2 (sqrt.f64 (fma.f64 y x (*.f64 (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (+.f64 y x))))))
40.8b
(*.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)))))))
42.9b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
21.3b
(*.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))))))
31.1b
(*.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))))))
41.9b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
40.2b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
44.5b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
Compiler

Compiled 3054 to 1432 computations (53.1% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (cbrt.f64 z) (cbrt.f64 z))
0.6b
(cbrt.f64 z)
1.7b
(fma.f64 y x (*.f64 (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (+.f64 y x))))
19.3b
(sqrt.f64 (fma.f64 y x (*.f64 (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (+.f64 y x)))))

series330.0ms (5.3%)

Counts
4 → 72
Calls

4 calls:

238.0ms
(sqrt.f64 (fma.f64 y x (*.f64 (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (+.f64 y x)))))
38.0ms
(*.f64 (cbrt.f64 z) (cbrt.f64 z))
35.0ms
(cbrt.f64 z)
18.0ms
(fma.f64 y x (*.f64 (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (+.f64 y x))))

rewrite10.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
23×add-sqr-sqrt_binary64
19×cbrt-prod_binary64
14×*-un-lft-identity_binary64
14×add-cube-cbrt_binary64
12×pow1_binary64
Counts
4 → 80
Calls

4 calls:

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

simplify117.0ms (1.9%)

Algorithm
egg-herbie
Rules
696×cancel-sign-sub-inv_binary64
618×times-frac_binary64
276×unswap-sqr_binary64
259×associate-*r*_binary64
215×associate-*l*_binary64
Counts
152 → 153
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02682300
16272112
224552062
344862047
449532047
549722047

prune195.0ms (3.1%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New1890189
Fresh01010
Picked011
Done000
Total18911200
Error
19.8b
Counts
200 → 11
Alt Table
StatusErrorProgram
43.2b
(*.f64 2 (sqrt.f64 (fma.f64 y x (*.f64 (*.f64 z (sqrt.f64 (+.f64 y x))) (sqrt.f64 (+.f64 y x))))))
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)))))))
20.6b
(*.f64 2 (sqrt.f64 (fma.f64 y x (*.f64 (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (+.f64 y x))))))
40.8b
(*.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)))))))
42.9b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
21.3b
(*.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))))))
31.1b
(*.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))))))
41.9b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
40.2b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
44.5b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
Compiler

Compiled 5204 to 2075 computations (60.1% saved)

localize12.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x)))))
0.4b
(*.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))))))
1.7b
(fma.f64 y x (*.f64 z (+.f64 y x)))
19.9b
(cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x))))

series275.0ms (4.4%)

Counts
3 → 108
Calls

3 calls:

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

rewrite17.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
49×add-sqr-sqrt_binary64
26×cbrt-prod_binary64
22×sqrt-prod_binary64
15×unswap-sqr_binary64
12×fabs-mul_binary64
Counts
3 → 84
Calls

3 calls:

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

simplify204.0ms (3.2%)

Algorithm
egg-herbie
Rules
867×fma-def_binary64
430×*-commutative_binary64
197×cancel-sign-sub-inv_binary64
194×associate-*r*_binary64
174×sqr-pow_binary64
Counts
192 → 344
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
095714057
1324613209
2497413209

prune624.0ms (9.9%)

Pruning

15 alts after pruning (13 fresh and 2 done)

PrunedKeptTotal
New4935498
Fresh189
Picked011
Done011
Total49415509
Error
19.8b
Counts
509 → 15
Alt Table
StatusErrorProgram
43.2b
(*.f64 2 (sqrt.f64 (fma.f64 y x (*.f64 (*.f64 z (sqrt.f64 (+.f64 y x))) (sqrt.f64 (+.f64 y x))))))
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)))))))
31.1b
(*.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))))))
21.0b
(*.f64 2 (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x))))) 3))
40.2b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
23.1b
(*.f64 2 (*.f64 (fabs.f64 (*.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 2/3)) (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))) (sqrt.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x)))))))
21.3b
(*.f64 2 (*.f64 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) (*.f64 (cbrt.f64 (sqrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))) (cbrt.f64 (sqrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))))) (cbrt.f64 (sqrt.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x))))))))
45.3b
(*.f64 2 (*.f64 (fabs.f64 (pow.f64 (exp.f64 1/3) (+.f64 (log.f64 (+.f64 z x)) (log.f64 y)))) (sqrt.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x)))))))
20.6b
(*.f64 2 (sqrt.f64 (fma.f64 y x (*.f64 (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (+.f64 y x))))))
40.8b
(*.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)))))))
42.9b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
41.9b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
21.1b
(*.f64 2 (*.f64 (fabs.f64 (*.f64 (cbrt.f64 (*.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x)))) (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x)))))) (cbrt.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)))))))
44.5b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
Compiler

Compiled 28804 to 11999 computations (58.3% saved)

regimes654.0ms (10.4%)

Accuracy

Total 0.5b remaining (2.6%)

Threshold costs 0.5b (2.6%)

Counts
102 → 1
Compiler

Compiled 14288 to 8288 computations (42% saved)

simplify2.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01016
11316
21316

end635.0ms (10.1%)

Compiler

Compiled 424 to 232 computations (45.3% saved)

Profiling

Loading profile data...