Details

Time bar (total: 5.3s)

analyze104.0ms (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
49.9%49.9%0.1%4
49.9%49.9%0.1%5
49.9%49.9%0.1%6
49.9%25%25.1%7
49.9%25%25.1%8
49.9%25%25.1%9
49.9%12.5%37.6%10
49.9%12.5%37.6%11
49.9%12.5%37.6%12
49.9%6.2%43.8%13
49.9%6.2%43.8%14
Compiler

Compiled 14 to 11 computations (21.4% saved)

sample907.0ms (17.2%)

Results
776.0ms8256×body128valid
95.0ms1065×body128invalid
Compiler

Compiled 41 to 32 computations (22% saved)

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Rules
10×*-commutative_binary64
10×fma-def_binary64
associate-*r*_binary64
associate-*l*_binary64
distribute-lft-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01212
12310
23510
34110
43910

prune3.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 40 to 27 computations (32.5% saved)

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 y (sqrt.f64 z) x)
0.2b
(*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))

series40.0ms (0.8%)

Counts
2 → 50
Calls

2 calls:

25.0ms
(*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))
15.0ms
(fma.f64 y (sqrt.f64 z) x)

rewrite4.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
Counts
2 → 32
Calls

2 calls:

3.0ms
(*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))
0.0ms
(fma.f64 y (sqrt.f64 z) x)

simplify117.0ms (2.2%)

Algorithm
egg-herbie
Rules
616×associate-*l*_binary64
616×distribute-lft-in_binary64
614×distribute-rgt-in_binary64
396×associate-+r+_binary64
396×associate-+l+_binary64
Counts
82 → 43
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
051803
183752
2222751
3627751
41827751
53859751
64054751
74491751
84947751

prune52.0ms (1%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New37643
Fresh000
Picked011
Done000
Total37744
Error
0.2b
Counts
44 → 7
Alt Table
StatusErrorProgram
33.7b
(*.f64 (*.f64 1/2 (sqrt.f64 (fma.f64 y (sqrt.f64 z) x))) (sqrt.f64 (fma.f64 y (sqrt.f64 z) x)))
1.3b
(*.f64 (*.f64 1/2 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
1.0b
(*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (fma.f64 y (sqrt.f64 z) x)))
0.3b
(*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))
33.7b
(*.f64 (sqrt.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))) (sqrt.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))))
1.3b
(*.f64 (*.f64 (cbrt.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x)))) (cbrt.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))))
38.4b
(cbrt.f64 (pow.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x)) 3))
Compiler

Compiled 745 to 343 computations (54% saved)

localize21.0ms (0.4%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 y (sqrt.f64 z) x)
0.4b
(*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (fma.f64 y (sqrt.f64 z) x)))
0.6b
(*.f64 (sqrt.f64 1/2) (fma.f64 y (sqrt.f64 z) x))

series100.0ms (1.9%)

Counts
2 → 50
Calls

2 calls:

63.0ms
(*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (fma.f64 y (sqrt.f64 z) x)))
36.0ms
(*.f64 (sqrt.f64 1/2) (fma.f64 y (sqrt.f64 z) x))

rewrite28.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
12×associate-*l*_binary64
11×add-sqr-sqrt_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
pow1_binary64
Counts
2 → 53
Calls

2 calls:

12.0ms
(*.f64 (sqrt.f64 1/2) (fma.f64 y (sqrt.f64 z) x))
12.0ms
(*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (fma.f64 y (sqrt.f64 z) x)))

simplify140.0ms (2.6%)

Algorithm
egg-herbie
Rules
969×fma-def_binary64
737×unswap-sqr_binary64
347×*-commutative_binary64
269×associate-/r/_binary64
207×sqr-pow_binary64
Counts
103 → 78
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0801512
11551242
24831242
312191233
416651233
523711233
648711233
750441233

prune77.0ms (1.5%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New91293
Fresh055
Picked011
Done011
Total919100
Error
0.0b
Counts
100 → 9
Alt Table
StatusErrorProgram
25.9b
(*.f64 (sqrt.f64 z) (*.f64 1/2 y))
38.4b
(cbrt.f64 (pow.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x)) 3))
33.7b
(*.f64 (*.f64 1/2 (sqrt.f64 (fma.f64 y (sqrt.f64 z) x))) (sqrt.f64 (fma.f64 y (sqrt.f64 z) x)))
1.3b
(*.f64 (*.f64 1/2 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
1.0b
(*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (fma.f64 y (sqrt.f64 z) x)))
0.3b
(*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))
38.4b
(*.f64 (sqrt.f64 1/2) (cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 y (sqrt.f64 z) x)) 3)))
33.7b
(*.f64 (sqrt.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))) (sqrt.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))))
1.3b
(*.f64 (*.f64 (cbrt.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x)))) (cbrt.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))))
Compiler

Compiled 1756 to 1054 computations (40% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 y (sqrt.f64 z) x)
0.3b
(*.f64 (*.f64 1/2 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
0.5b
(*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
5.8b
(cbrt.f64 (fma.f64 y (sqrt.f64 z) x))

series487.0ms (9.2%)

Counts
3 → 75
Calls

3 calls:

366.0ms
(*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
87.0ms
(cbrt.f64 (fma.f64 y (sqrt.f64 z) x))
33.0ms
(*.f64 (*.f64 1/2 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))

rewrite38.0ms (0.7%)

Algorithm
rewrite-expression-head
Rules
22×add-sqr-sqrt_binary64
22×cbrt-prod_binary64
19×pow1_binary64
14×*-un-lft-identity_binary64
14×add-cube-cbrt_binary64
Counts
3 → 81
Calls

3 calls:

17.0ms
(*.f64 (*.f64 1/2 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
8.0ms
(*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
1.0ms
(cbrt.f64 (fma.f64 y (sqrt.f64 z) x))

simplify189.0ms (3.6%)

Algorithm
egg-herbie
Rules
374×cancel-sign-sub-inv_binary64
347×associate-*r*_binary64
318×associate-*l*_binary64
223×unswap-sqr_binary64
222×distribute-rgt-in_binary64
Counts
156 → 186
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03214504
19064252
231543953
349653953

prune483.0ms (9.1%)

Pruning

12 alts after pruning (9 fresh and 3 done)

PrunedKeptTotal
New3374341
Fresh156
Picked011
Done022
Total33812350
Error
0.0b
Counts
350 → 12
Alt Table
StatusErrorProgram
26.9b
(*.f64 (*.f64 1/2 (cbrt.f64 (*.f64 (fma.f64 y (sqrt.f64 z) x) (fma.f64 y (sqrt.f64 z) x)))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
1.0b
(*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (fma.f64 y (sqrt.f64 z) x)))
25.9b
(*.f64 (sqrt.f64 z) (*.f64 1/2 y))
38.4b
(cbrt.f64 (pow.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x)) 3))
33.7b
(*.f64 (*.f64 1/2 (sqrt.f64 (fma.f64 y (sqrt.f64 z) x))) (sqrt.f64 (fma.f64 y (sqrt.f64 z) x)))
1.3b
(*.f64 (*.f64 1/2 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
0.3b
(*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))
38.4b
(*.f64 (sqrt.f64 1/2) (cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 y (sqrt.f64 z) x)) 3)))
33.7b
(*.f64 (sqrt.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))) (sqrt.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))))
1.7b
(*.f64 (*.f64 (*.f64 1/2 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))
27.5b
(*.f64 (*.f64 1/2 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (*.f64 (cbrt.f64 y) (pow.f64 z 1/6)))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
1.7b
(*.f64 (*.f64 1/2 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
Compiler

Compiled 13453 to 5416 computations (59.7% saved)

localize87.0ms (1.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))
0.5b
(*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))
0.6b
(cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
5.8b
(cbrt.f64 (fma.f64 y (sqrt.f64 z) x))

series770.0ms (14.6%)

Counts
3 → 75
Calls

3 calls:

379.0ms
(*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))
237.0ms
(*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))
154.0ms
(cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))

rewrite31.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
63×cbrt-prod_binary64
35×add-sqr-sqrt_binary64
24×pow1_binary64
23×pow1/3_binary64
17×*-un-lft-identity_binary64
Counts
3 → 101
Calls

3 calls:

10.0ms
(*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))
6.0ms
(*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))
2.0ms
(cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))

simplify156.0ms (3%)

Algorithm
egg-herbie
Rules
409×associate-*r*_binary64
372×unswap-sqr_binary64
362×associate-*l*_binary64
253×*-commutative_binary64
219×fma-neg_binary64
Counts
176 → 225
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04176702
111616288
239755836
351865836

prune692.0ms (13.1%)

Pruning

13 alts after pruning (9 fresh and 4 done)

PrunedKeptTotal
New6091610
Fresh088
Picked011
Done033
Total60913622
Error
0b
Counts
622 → 13
Alt Table
StatusErrorProgram
26.9b
(*.f64 (*.f64 1/2 (cbrt.f64 (*.f64 (fma.f64 y (sqrt.f64 z) x) (fma.f64 y (sqrt.f64 z) x)))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
1.0b
(*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (fma.f64 y (sqrt.f64 z) x)))
25.9b
(*.f64 (sqrt.f64 z) (*.f64 1/2 y))
38.4b
(cbrt.f64 (pow.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x)) 3))
33.7b
(*.f64 (*.f64 1/2 (sqrt.f64 (fma.f64 y (sqrt.f64 z) x))) (sqrt.f64 (fma.f64 y (sqrt.f64 z) x)))
1.3b
(*.f64 (*.f64 1/2 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
0.3b
(*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))
38.4b
(*.f64 (sqrt.f64 1/2) (cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 y (sqrt.f64 z) x)) 3)))
33.7b
(*.f64 (sqrt.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))) (sqrt.f64 (*.f64 1/2 (fma.f64 y (sqrt.f64 z) x))))
1.7b
(*.f64 (*.f64 (*.f64 1/2 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))
2.1b
(*.f64 (*.f64 1/2 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) 6)) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))))
27.5b
(*.f64 (*.f64 1/2 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (*.f64 (cbrt.f64 y) (pow.f64 z 1/6)))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
1.7b
(*.f64 (*.f64 1/2 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
Compiler

Compiled 36805 to 12964 computations (64.8% saved)

regimes576.0ms (10.9%)

Accuracy

Total 0.1b remaining (78.3%)

Threshold costs 0.1b (78.3%)

Counts
58 → 1
Compiler

Compiled 9675 to 5346 computations (44.7% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0810
1910
2910

end157.0ms (3%)

Compiler

Compiled 333 to 162 computations (51.4% saved)

Profiling

Loading profile data...