Details

Time bar (total: 1.3s)

analyze181.0ms (13.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
49.9%49.9%0.1%5
74.9%25%0.1%6
74.9%25%0.1%7
74.9%25%0.1%8
81.1%18.7%0.1%9
81.1%18.7%0.1%10
81.1%15.6%3.3%11
84.3%10.9%4.8%12
84.3%10.9%4.8%13
84.3%8.6%7.2%14
Compiler

Compiled 13 to 10 computations (23.1% saved)

sample876.0ms (66.6%)

Results
811.0ms8256×body128valid
52.0ms521×body128invalid
Compiler

Compiled 26 to 20 computations (23.1% saved)

preprocess49.0ms (3.7%)

Algorithm
egg-herbie
Rules
774×fma-def_binary64
513×fma-neg_binary64
141×associate-/l*_binary64
135×cancel-sign-sub-inv_binary64
96×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02152
13752
26352
310052
418244
531344
667044
7128144
8215144
9282344
10291644
11292244
12292244
033
133
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
0
2
Call 2
Inputs
(-.f64 (/.f64 (*.f64 x y) 2) (/.f64 z 8))
(-.f64 (/.f64 (*.f64 y x) 2) (/.f64 z 8))
(-.f64 (/.f64 (*.f64 z y) 2) (/.f64 x 8))
(-.f64 (/.f64 (*.f64 x z) 2) (/.f64 y 8))
Outputs
(-.f64 (/.f64 (*.f64 x y) 2) (/.f64 z 8))
(-.f64 (/.f64 y (/.f64 2 x)) (/.f64 z 8))
(-.f64 (*.f64 (/.f64 x 2) y) (/.f64 z 8))
(-.f64 (*.f64 x (/.f64 y 2)) (/.f64 z 8))
(-.f64 (*.f64 y (/.f64 x 2)) (/.f64 z 8))
(fma.f64 x (/.f64 y 2) (*.f64 -1/8 z))
(fma.f64 -1/8 z (*.f64 y (/.f64 x 2)))
(fma.f64 z -1/8 (*.f64 y (/.f64 x 2)))
(fma.f64 z -1/8 (*.f64 y (*.f64 1/2 x)))
(fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))
(-.f64 (/.f64 (*.f64 y x) 2) (/.f64 z 8))
(-.f64 (/.f64 y (/.f64 2 x)) (/.f64 z 8))
(-.f64 (*.f64 (/.f64 x 2) y) (/.f64 z 8))
(-.f64 (*.f64 x (/.f64 y 2)) (/.f64 z 8))
(-.f64 (*.f64 y (/.f64 x 2)) (/.f64 z 8))
(fma.f64 x (/.f64 y 2) (*.f64 -1/8 z))
(fma.f64 -1/8 z (*.f64 y (/.f64 x 2)))
(fma.f64 z -1/8 (*.f64 y (/.f64 x 2)))
(fma.f64 z -1/8 (*.f64 y (*.f64 1/2 x)))
(fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))
(-.f64 (/.f64 (*.f64 z y) 2) (/.f64 x 8))
(-.f64 (/.f64 z (/.f64 2 y)) (/.f64 x 8))
(-.f64 (*.f64 (/.f64 y 2) z) (/.f64 x 8))
(-.f64 (*.f64 z (/.f64 y 2)) (/.f64 x 8))
(fma.f64 y (/.f64 z 2) (/.f64 x -8))
(fma.f64 y (/.f64 z 2) (*.f64 x -1/8))
(fma.f64 x -1/8 (*.f64 y (/.f64 z 2)))
(fma.f64 x -1/8 (*.f64 y (*.f64 1/2 z)))
(fma.f64 x -1/8 (*.f64 y (*.f64 z 1/2)))
(-.f64 (/.f64 (*.f64 x z) 2) (/.f64 y 8))
(-.f64 (/.f64 x (/.f64 2 z)) (/.f64 y 8))
(-.f64 (*.f64 (/.f64 x 2) z) (/.f64 y 8))
(fma.f64 (/.f64 x 2) z (/.f64 (neg.f64 y) 8))
(fma.f64 z (/.f64 x 2) (/.f64 (neg.f64 y) 8))
(fma.f64 x (/.f64 z 2) (*.f64 -1/8 y))
(fma.f64 x (/.f64 z 2) (*.f64 y -1/8))
(fma.f64 x (*.f64 1/2 z) (*.f64 y -1/8))
(fma.f64 x (*.f64 z 1/2) (*.f64 y -1/8))
Symmetry

(sort x y)

Compiler

Compiled 12 to 9 computations (25% saved)

simplify22.0ms (1.7%)

Algorithm
egg-herbie
Rules
209×fma-def_binary64
157×fma-neg_binary64
57×cancel-sign-sub-inv_binary64
42×distribute-rgt-neg-in_binary64
36×associate-/l*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01013
11513
22613
33913
46911
512211
623711
742811
868011
996711
10108211
11111211
12111511
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(-.f64 (/.f64 (*.f64 x y) 2) (/.f64 z 8))
Outputs
(-.f64 (/.f64 (*.f64 x y) 2) (/.f64 z 8))
(-.f64 (/.f64 x (/.f64 2 y)) (/.f64 z 8))
(-.f64 (*.f64 (/.f64 x 2) y) (/.f64 z 8))
(-.f64 (*.f64 y (/.f64 x 2)) (/.f64 z 8))
(-.f64 (*.f64 x (/.f64 y 2)) (/.f64 z 8))
(fma.f64 x (/.f64 y 2) (*.f64 -1/8 z))
(fma.f64 -1/8 z (/.f64 y (/.f64 2 x)))
(fma.f64 z -1/8 (/.f64 y (/.f64 2 x)))
(fma.f64 z -1/8 (*.f64 1/2 (*.f64 x y)))
(fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))

prune3.0ms (0.2%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 42 to 30 computations (28.6% saved)

localize5.0ms (0.4%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))

series6.0ms (0.5%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
2.0ms
x
@-inf
(fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))
1.0ms
z
@0
(fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))
1.0ms
y
@0
(fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))
1.0ms
z
@inf
(fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))
1.0ms
x
@0
(fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))

rewrite35.0ms (2.7%)

Algorithm
batch-egg-rewrite
Rules
822×pow1_binary64
757×log1p-expm1-u_binary64
757×expm1-log1p-u_binary64
90×add-sqr-sqrt_binary64
86×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0911
118211
2205311
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x 1/2)) (*.f64 z -1/8))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z -1/8) (*.f64 y (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 z -1/8) 1) (*.f64 y (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))) (pow.f64 (cbrt.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))) 2) (cbrt.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))) (sqrt.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 z -1/8) 3) (pow.f64 (*.f64 y (*.f64 x 1/2)) 3)) (+.f64 (*.f64 (*.f64 z -1/8) (*.f64 z -1/8)) (-.f64 (pow.f64 (*.f64 y (*.f64 x 1/2)) 2) (*.f64 (*.f64 z -1/8) (*.f64 y (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 z -1/8) (*.f64 z -1/8)) (pow.f64 (*.f64 y (*.f64 x 1/2)) 2)) (-.f64 (*.f64 z -1/8) (*.f64 y (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))) 1))))))

simplify31.0ms (2.4%)

Algorithm
egg-herbie
Rules
269×fma-def_binary64
143×fma-neg_binary64
49×distribute-rgt-neg-in_binary64
46×cancel-sign-sub-inv_binary64
27×unsub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
012402
123348
244348
364348
4104348
5180348
6303348
7487348
8643348
9819348
10885348
11889348
Stop Event
saturated
Counts
59 → 29
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 y x))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(*.f64 -1/8 z)
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(*.f64 -1/8 z)
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(*.f64 -1/8 z)
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(*.f64 1/2 (*.f64 y x))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(*.f64 1/2 (*.f64 y x))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(*.f64 -1/8 z)
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(*.f64 1/2 (*.f64 y x))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(*.f64 1/2 (*.f64 y x))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
Outputs
(*.f64 1/2 (*.f64 y x))
(*.f64 (*.f64 1/2 y) x)
(*.f64 x (*.f64 1/2 y))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(*.f64 -1/8 z)
(*.f64 z -1/8)
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(*.f64 -1/8 z)
(*.f64 z -1/8)
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(*.f64 -1/8 z)
(*.f64 z -1/8)
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(*.f64 1/2 (*.f64 y x))
(*.f64 (*.f64 1/2 y) x)
(*.f64 x (*.f64 1/2 y))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(*.f64 1/2 (*.f64 y x))
(*.f64 (*.f64 1/2 y) x)
(*.f64 x (*.f64 1/2 y))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(*.f64 -1/8 z)
(*.f64 z -1/8)
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(*.f64 1/2 (*.f64 y x))
(*.f64 (*.f64 1/2 y) x)
(*.f64 x (*.f64 1/2 y))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(*.f64 1/2 (*.f64 y x))
(*.f64 (*.f64 1/2 y) x)
(*.f64 x (*.f64 1/2 y))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))
(-.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/8 z))
(+.f64 (*.f64 (*.f64 1/2 y) x) (*.f64 z -1/8))
(fma.f64 (*.f64 1/2 y) x (*.f64 z -1/8))
(fma.f64 1/2 (*.f64 y x) (*.f64 z -1/8))

prune15.0ms (1.2%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New29029
Fresh000
Picked011
Done000
Total29130
Error
0.0b
Counts
30 → 1
Alt Table
StatusErrorProgram
0.0b
(fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))
Compiler

Compiled 363 to 257 computations (29.2% saved)

regimes52.0ms (4%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0.0b (0%)

Counts
6 → 1
Compiler

Compiled 100 to 72 computations (28% saved)

simplify2.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0911
11111
Stop Event
saturated
Calls
Call 1
Inputs
(fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))
Outputs
(fma.f64 z -1/8 (*.f64 y (*.f64 x 1/2)))

end37.0ms (2.8%)

Stop Event
done
Remove

(sort x y)

Compiler

Compiled 55 to 40 computations (27.3% saved)

Profiling

Loading profile data...