Details

Time bar (total: 4.4s)

analyze238.0ms (5.4%)

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
25%74.9%0.1%6
34.3%40.6%25.1%7
35.9%39%25.1%8
42.1%32.8%25.1%9
42.9%19.5%37.6%10
43.3%19.1%37.6%11
45%17.5%37.6%12
45.1%10.3%44.6%13
45.2%10.2%44.6%14
Compiler

Compiled 14 to 11 computations (21.4% saved)

sample1.1s (25.9%)

Results
943.0ms8256×body128valid
161.0ms1488×body128invalid
Compiler

Compiled 41 to 32 computations (22% saved)

simplify7.0ms (0.2%)

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

3 alts after pruning (3 fresh and 0 done)

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

Compiled 66 to 47 computations (28.8% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 y (sqrt.f64 z) x)

series14.0ms (0.3%)

Counts
1 → 25
Calls

1 calls:

14.0ms
(fma.f64 y (sqrt.f64 z) x)

rewrite1.0ms (0%)

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

1 calls:

0.0ms
(fma.f64 y (sqrt.f64 z) x)

simplify91.0ms (2.1%)

Algorithm
egg-herbie
Rules
642×distribute-rgt-in_binary64
492×distribute-lft-in_binary64
436×distribute-rgt-out_binary64
421×associate-*l*_binary64
413×*-commutative_binary64
Counts
35 → 15
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
018262
120247
243247
3104247
4281247
5915247
61563247
72177247
82401247
93023247
103557247
114430247
124903247

prune13.0ms (0.3%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New11415
Fresh101
Picked101
Done000
Total13417
Error
0.1b
Counts
17 → 4
Alt Table
StatusErrorProgram
0.1b
(*.f64 1/2 (*.f64 1 (fma.f64 y (sqrt.f64 z) x)))
29.6b
(*.f64 1/2 (*.f64 (sqrt.f64 (fma.f64 y (sqrt.f64 z) x)) (sqrt.f64 (fma.f64 y (sqrt.f64 z) x))))
1.4b
(*.f64 1/2 (*.f64 (*.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))))
39.4b
(*.f64 1/2 (cbrt.f64 (*.f64 (*.f64 (fma.f64 y (sqrt.f64 z) x) (fma.f64 y (sqrt.f64 z) x)) (fma.f64 y (sqrt.f64 z) x))))
Compiler

Compiled 312 to 137 computations (56.1% saved)

localize8.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 y (sqrt.f64 z) x)

prune12.0ms (0.3%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New15015
Fresh033
Picked011
Done000
Total15419
Error
0.1b
Counts
19 → 4
Alt Table
StatusErrorProgram
0.1b
(*.f64 1/2 (*.f64 1 (fma.f64 y (sqrt.f64 z) x)))
29.6b
(*.f64 1/2 (*.f64 (sqrt.f64 (fma.f64 y (sqrt.f64 z) x)) (sqrt.f64 (fma.f64 y (sqrt.f64 z) x))))
1.4b
(*.f64 1/2 (*.f64 (*.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))))
39.4b
(*.f64 1/2 (cbrt.f64 (*.f64 (*.f64 (fma.f64 y (sqrt.f64 z) x) (fma.f64 y (sqrt.f64 z) x)) (fma.f64 y (sqrt.f64 z) x))))
Compiler

Compiled 330 to 158 computations (52.1% saved)

localize9.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 (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)))
0.5b
(cbrt.f64 (fma.f64 y (sqrt.f64 z) x))

series386.0ms (8.8%)

Counts
3 → 75
Calls

3 calls:

292.0ms
(*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))
79.0ms
(cbrt.f64 (fma.f64 y (sqrt.f64 z) x))
14.0ms
(*.f64 (*.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)))

rewrite20.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
29×pow1_binary64
24×add-sqr-sqrt_binary64
23×cbrt-prod_binary64
16×pow1/3_binary64
14×*-un-lft-identity_binary64
Counts
3 → 93
Calls

3 calls:

9.0ms
(*.f64 (*.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)))
4.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))

simplify104.0ms (2.4%)

Algorithm
egg-herbie
Rules
374×cancel-sign-sub-inv_binary64
265×associate-*r*_binary64
242×associate-/r/_binary64
235×associate-*l*_binary64
225×unswap-sqr_binary64
Counts
168 → 193
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03044425
18424181
228183870
349743870

prune266.0ms (6%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New3408348
Fresh022
Picked101
Done011
Total34111352
Error
0.0b
Counts
352 → 11
Alt Table
StatusErrorProgram
2.5b
(*.f64 1/2 (*.f64 (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) 6) (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)))))
29.6b
(*.f64 1/2 (*.f64 (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))))
2.5b
(*.f64 1/2 (*.f64 (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) 4) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) 4)) (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))))
1.8b
(*.f64 1/2 (*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (cbrt.f64 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))) (cbrt.f64 (*.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.4b
(*.f64 1/2 (*.f64 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (*.f64 (*.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.8b
(*.f64 1/2 (*.f64 (*.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))))))
1.8b
(*.f64 1/2 (*.f64 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (*.f64 (*.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))))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))
30.1b
(*.f64 1/2 (*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) 3)))
0.1b
(*.f64 1/2 (*.f64 1 (fma.f64 y (sqrt.f64 z) x)))
29.6b
(*.f64 1/2 (*.f64 (sqrt.f64 (fma.f64 y (sqrt.f64 z) x)) (sqrt.f64 (fma.f64 y (sqrt.f64 z) x))))
39.4b
(*.f64 1/2 (cbrt.f64 (*.f64 (*.f64 (fma.f64 y (sqrt.f64 z) x) (fma.f64 y (sqrt.f64 z) x)) (fma.f64 y (sqrt.f64 z) x))))
Compiler

Compiled 13707 to 5410 computations (60.5% saved)

localize12.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.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)))
0.5b
(cbrt.f64 (fma.f64 y (sqrt.f64 z) x))
0.5b
(cbrt.f64 (*.f64 (*.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))))

series107.0ms (2.4%)

Counts
1 → 25
Calls

1 calls:

107.0ms
(cbrt.f64 (*.f64 (*.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))))

rewrite6.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
rem-cbrt-cube_binary64
pow3_binary64
cbrt-prod_binary64
Counts
1 → 12
Calls

1 calls:

5.0ms
(cbrt.f64 (*.f64 (*.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))))

simplify116.0ms (2.7%)

Algorithm
egg-herbie
Rules
822×fma-def_binary64
642×times-frac_binary64
484×associate-/l*_binary64
385×associate-/r*_binary64
204×cancel-sign-sub-inv_binary64
Counts
37 → 58
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01611493
14611461
215041348
349371346
452511346

prune450.0ms (10.2%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New5555560
Fresh369
Picked101
Done011
Total55912571
Error
0.0b
Counts
571 → 12
Alt Table
StatusErrorProgram
30.1b
(*.f64 1/2 (*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) 3)))
1.6b
(*.f64 1/2 (*.f64 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) 6)))))
1.8b
(*.f64 1/2 (*.f64 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (*.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))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.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)))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.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))))))))
29.6b
(*.f64 1/2 (*.f64 (sqrt.f64 (fma.f64 y (sqrt.f64 z) x)) (sqrt.f64 (fma.f64 y (sqrt.f64 z) x))))
33.6b
(*.f64 1/2 (*.f64 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (*.f64 (cbrt.f64 y) (pow.f64 z 1/6))) (cbrt.f64 (*.f64 (*.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))))))
3.2b
(*.f64 1/2 (*.f64 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (*.f64 (expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) 6))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))))
1.8b
(*.f64 1/2 (*.f64 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (*.f64 (*.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))))) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))
29.6b
(*.f64 1/2 (*.f64 (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.8b
(*.f64 1/2 (*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)))) (cbrt.f64 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))))) (cbrt.f64 (*.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.1b
(*.f64 1/2 (*.f64 1 (fma.f64 y (sqrt.f64 z) x)))
32.6b
(*.f64 1/2 (*.f64 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 y (sqrt.f64 z) x)) (cbrt.f64 (fma.f64 y (sqrt.f64 z) x))) (*.f64 (cbrt.f64 y) (pow.f64 z 1/6))))))
39.4b
(*.f64 1/2 (cbrt.f64 (*.f64 (*.f64 (fma.f64 y (sqrt.f64 z) x) (fma.f64 y (sqrt.f64 z) x)) (fma.f64 y (sqrt.f64 z) x))))
Compiler

Compiled 30970 to 10322 computations (66.7% saved)

regimes1.2s (27.8%)

Accuracy

Total 0.1b remaining (45%)

Threshold costs 0.1b (45%)

Counts
150 → 1
Compiler

Compiled 33961 to 15494 computations (54.4% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0810
1910
2910

end167.0ms (3.8%)

Compiler

Compiled 460 to 173 computations (62.4% saved)

Profiling

Loading profile data...