Details

Time bar (total: 6.2s)

analyze611.0ms (9.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.4s (22.9%)

Symmetry

(sort x y z)

Results
1.1s8256×body128valid
262.0ms2393×body128invalid
Compiler

Compiled 53 to 35 computations (34% saved)

simplify12.0ms (0.2%)

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
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)))

series200.0ms (3.2%)

Counts
2 → 48
Calls

2 calls:

191.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))

simplify74.0ms (1.2%)

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

prune102.0ms (1.6%)

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))))
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)))
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)))))))
Compiler

Compiled 2346 to 1149 computations (51% saved)

localize9.0ms (0.1%)

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))))

series237.0ms (3.8%)

Counts
3 → 72
Calls

3 calls:

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

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

4.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)))

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

prune113.0ms (1.8%)

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
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))))))
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))))))
41.9b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
40.2b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
43.2b
(*.f64 2 (sqrt.f64 (fma.f64 y x (*.f64 (*.f64 z (sqrt.f64 (+.f64 y x))) (sqrt.f64 (+.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)))
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)))))))
Compiler

Compiled 3054 to 1432 computations (53.1% saved)

localize12.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)))))

series558.0ms (9%)

Counts
4 → 72
Calls

4 calls:

441.0ms
(sqrt.f64 (fma.f64 y x (*.f64 (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (+.f64 y x)))))
45.0ms
(fma.f64 y x (*.f64 (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (+.f64 y x))))
37.0ms
(*.f64 (cbrt.f64 z) (cbrt.f64 z))
34.0ms
(cbrt.f64 z)

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:

5.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))))

simplify104.0ms (1.7%)

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

prune213.0ms (3.4%)

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
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))))))
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))))))
41.9b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
40.2b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
43.2b
(*.f64 2 (sqrt.f64 (fma.f64 y x (*.f64 (*.f64 z (sqrt.f64 (+.f64 y x))) (sqrt.f64 (+.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)))
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)))))))
Compiler

Compiled 5204 to 2075 computations (60.1% saved)

localize10.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))))

series304.0ms (4.9%)

Counts
3 → 108
Calls

3 calls:

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

simplify215.0ms (3.4%)

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

prune634.0ms (10.2%)

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
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)))))))
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))))))
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)))))))
40.8b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
21.0b
(*.f64 2 (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 y x (*.f64 z (+.f64 y x))))) 3))
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))))))))
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)))
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)))
43.2b
(*.f64 2 (sqrt.f64 (fma.f64 y x (*.f64 (*.f64 z (sqrt.f64 (+.f64 y x))) (sqrt.f64 (+.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))))
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)))))))
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)))))))
Compiler

Compiled 28804 to 11999 computations (58.3% saved)

regimes642.0ms (10.3%)

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
01119
11519
21519

end627.0ms (10.1%)

Compiler

Compiled 432 to 236 computations (45.4% saved)

Profiling

Loading profile data...