Details

Time bar (total: 2.8s)

analyze822.0ms (29.5%)

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
0%99.9%0.1%6
0%99.9%0.1%7
0%99.9%0.1%8
0%99.9%0.1%9
21.1%74.5%4.4%10
25.4%69.8%4.8%11
30.6%64.2%5.2%12
44.6%44%11.4%13
48.2%40.1%11.7%14
Compiler

Compiled 15 to 11 computations (26.7% saved)

sample1.1s (39.2%)

Results
952.0ms8256×body128valid
122.0ms1022×body128invalid

preprocess33.0ms (1.2%)

Algorithm
egg-herbie
Rules
738×fma-def_binary64
512×times-frac_binary64
268×div-sub_binary64
246×fma-neg_binary64
235×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02564
16964
217856
358756
4172356
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(/.f64 (*.f64 4 (-.f64 (-.f64 x y) (*.f64 z 1/2))) z)
(/.f64 (*.f64 4 (-.f64 (-.f64 y x) (*.f64 z 1/2))) z)
(/.f64 (*.f64 4 (-.f64 (-.f64 z y) (*.f64 x 1/2))) x)
(/.f64 (*.f64 4 (-.f64 (-.f64 x z) (*.f64 y 1/2))) y)
Outputs
(/.f64 (*.f64 4 (-.f64 (-.f64 x y) (*.f64 z 1/2))) z)
(/.f64 4 (/.f64 z (-.f64 x (+.f64 y (*.f64 z 1/2)))))
(*.f64 (/.f64 4 z) (-.f64 x (+.f64 y (*.f64 z 1/2))))
(*.f64 (-.f64 x (fma.f64 z 1/2 y)) (/.f64 4 z))
(*.f64 4 (/.f64 (-.f64 x (fma.f64 z 1/2 y)) z))
(/.f64 (*.f64 4 (-.f64 (-.f64 y x) (*.f64 z 1/2))) z)
(/.f64 4 (/.f64 z (-.f64 (-.f64 y x) (*.f64 z 1/2))))
(*.f64 (/.f64 4 z) (+.f64 (-.f64 y x) (*.f64 z -1/2)))
(*.f64 (-.f64 y (fma.f64 z 1/2 x)) (/.f64 4 z))
(/.f64 (fma.f64 4 (-.f64 y x) (*.f64 z -2)) z)
(/.f64 (*.f64 4 (-.f64 (-.f64 z y) (*.f64 x 1/2))) x)
(/.f64 4 (/.f64 x (-.f64 z (+.f64 y (*.f64 x 1/2)))))
(*.f64 (/.f64 4 x) (+.f64 (-.f64 z y) (*.f64 x -1/2)))
(*.f64 (-.f64 z (fma.f64 x 1/2 y)) (/.f64 4 x))
(*.f64 4 (/.f64 (-.f64 z (fma.f64 x 1/2 y)) x))
(/.f64 (*.f64 4 (-.f64 (-.f64 x z) (*.f64 y 1/2))) y)
(/.f64 4 (/.f64 y (-.f64 (-.f64 x z) (*.f64 y 1/2))))
(*.f64 (/.f64 4 y) (+.f64 (-.f64 x z) (*.f64 y -1/2)))
(*.f64 (-.f64 x (fma.f64 y 1/2 z)) (/.f64 4 y))
(*.f64 (fma.f64 y -1/2 (-.f64 x z)) (/.f64 4 y))
Compiler

Compiled 14 to 10 computations (28.6% saved)

simplify22.0ms (0.8%)

Algorithm
egg-herbie
Rules
795×fma-def_binary64
760×times-frac_binary64
398×associate-/l*_binary64
350×div-sub_binary64
279×fma-neg_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01116
12416
25914
318414
452214
5167511
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(/.f64 (*.f64 4 (-.f64 (-.f64 x y) (*.f64 z 1/2))) z)
Outputs
(/.f64 (*.f64 4 (-.f64 (-.f64 x y) (*.f64 z 1/2))) z)
(/.f64 4 (/.f64 z (-.f64 x (+.f64 y (*.f64 z 1/2)))))
(*.f64 (/.f64 4 z) (+.f64 (-.f64 x y) (*.f64 z -1/2)))
(/.f64 (-.f64 x (fma.f64 z 1/2 y)) (/.f64 z 4))
(*.f64 4 (/.f64 (-.f64 x (fma.f64 z 1/2 y)) z))
(*.f64 4 (/.f64 (fma.f64 z -1/2 (-.f64 x y)) z))
(fma.f64 (-.f64 x y) (/.f64 4 z) -2)

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.0b
(/.f64 (*.f64 4 (-.f64 (-.f64 x y) (*.f64 z 1/2))) z)
0.2b
(fma.f64 (-.f64 x y) (/.f64 4 z) -2)
Compiler

Compiled 72 to 50 computations (30.6% saved)

localize7.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

series9.0ms (0.3%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
3.0ms
z
@0
(/.f64 (*.f64 4 (-.f64 (-.f64 x y) (*.f64 z 1/2))) z)
1.0ms
x
@0
(/.f64 (*.f64 4 (-.f64 (-.f64 x y) (*.f64 z 1/2))) z)
1.0ms
x
@-inf
(/.f64 (*.f64 4 (-.f64 (-.f64 x y) (*.f64 z 1/2))) z)
1.0ms
x
@inf
(/.f64 (*.f64 4 (-.f64 (-.f64 x y) (*.f64 z 1/2))) z)
1.0ms
z
@inf
(/.f64 (*.f64 4 (-.f64 (-.f64 x y) (*.f64 z 1/2))) z)

rewrite50.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
429×fma-def_binary64
250×fma-neg_binary64
233×expm1-udef_binary64
233×log1p-udef_binary64
132×add-sqr-sqrt_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01116
125516
2369414
Stop Event
node limit
Counts
1 → 43
Calls
Call 1
Inputs
(/.f64 (*.f64 4 (-.f64 (-.f64 x y) (*.f64 z 1/2))) z)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 x (fma.f64 z 1/2 y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 1 (/.f64 z (-.f64 x (fma.f64 z 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (-.f64 x (fma.f64 z 1/2 y)) (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (fma.f64 z 1/2 y)) (*.f64 4 (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y))) (/.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))) (pow.f64 (cbrt.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))) 2) (cbrt.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y)))) 2) (*.f64 (cbrt.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y)))) (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))) (sqrt.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y)))) (*.f64 (sqrt.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y)))) (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x (fma.f64 z 1/2 y)) -4) (/.f64 1 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (*.f64 4 (-.f64 x (fma.f64 z 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x (fma.f64 z 1/2 y)) 1) (/.f64 4 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y)))) 2) 1) (/.f64 (cbrt.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y)))) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y)))) 1) (/.f64 (sqrt.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y)))) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4 (pow.f64 (cbrt.f64 z) 2)) (/.f64 (-.f64 x (fma.f64 z 1/2 y)) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x (fma.f64 z 1/2 y)) (pow.f64 (cbrt.f64 z) 2)) (/.f64 4 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 z) 2)) (/.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y))) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y)))) 2) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y)))) (pow.f64 (cbrt.f64 z) 2)) (/.f64 (sqrt.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y)))) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4 (sqrt.f64 z)) (/.f64 (-.f64 x (fma.f64 z 1/2 y)) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x (fma.f64 z 1/2 y)) (sqrt.f64 z)) (/.f64 4 (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 z)) (/.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y))) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y)))) 2) (sqrt.f64 z)) (/.f64 (cbrt.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y)))) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/4 (/.f64 z (-.f64 x (fma.f64 z 1/2 y)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y))) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 4 (-.f64 x (fma.f64 z 1/2 y))) 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 4 z) (-.f64 x (fma.f64 z 1/2 y)))))))))

simplify41.0ms (1.5%)

Algorithm
egg-herbie
Rules
653×fma-def_binary64
586×fma-neg_binary64
349×times-frac_binary64
251×cancel-sign-sub-inv_binary64
212×associate-/l*_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
032606
179550
2161545
3278545
4498356
5857353
61853353
72989353
Stop Event
node limit
Counts
79 → 59
Calls
Call 1
Inputs
(*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z))
(+.f64 (*.f64 4 (/.f64 x z)) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(+.f64 (*.f64 4 (/.f64 x z)) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(+.f64 (*.f64 4 (/.f64 x z)) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(*.f64 4 (/.f64 x z))
(+.f64 (*.f64 4 (/.f64 x z)) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(+.f64 (*.f64 4 (/.f64 x z)) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(+.f64 (*.f64 4 (/.f64 x z)) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(*.f64 4 (/.f64 x z))
(+.f64 (*.f64 -4 (+.f64 1/2 (/.f64 y z))) (*.f64 4 (/.f64 x z)))
(+.f64 (*.f64 -4 (+.f64 1/2 (/.f64 y z))) (*.f64 4 (/.f64 x z)))
(+.f64 (*.f64 -4 (+.f64 1/2 (/.f64 y z))) (*.f64 4 (/.f64 x z)))
(*.f64 4 (/.f64 (-.f64 x (*.f64 1/2 z)) z))
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 (-.f64 x (*.f64 1/2 z)) z)))
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 (-.f64 x (*.f64 1/2 z)) z)))
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 (-.f64 x (*.f64 1/2 z)) z)))
(*.f64 -4 (/.f64 y z))
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (-.f64 (/.f64 x z) 1/2)))
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (-.f64 (/.f64 x z) 1/2)))
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (-.f64 (/.f64 x z) 1/2)))
(*.f64 -4 (/.f64 y z))
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (-.f64 (/.f64 x z) 1/2)))
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (-.f64 (/.f64 x z) 1/2)))
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (-.f64 (/.f64 x z) 1/2)))
(*.f64 4 (/.f64 (-.f64 x y) z))
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
-2
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
-2
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
Outputs
(*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z))
(*.f64 -4 (/.f64 (fma.f64 1/2 z y) z))
(*.f64 (fma.f64 1/2 z y) (/.f64 -4 z))
(fma.f64 y (/.f64 -4 z) -2)
(+.f64 (*.f64 4 (/.f64 x z)) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(+.f64 (*.f64 4 (/.f64 x z)) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(+.f64 (*.f64 4 (/.f64 x z)) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(*.f64 4 (/.f64 x z))
(*.f64 x (/.f64 4 z))
(+.f64 (*.f64 4 (/.f64 x z)) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(+.f64 (*.f64 4 (/.f64 x z)) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(+.f64 (*.f64 4 (/.f64 x z)) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(*.f64 4 (/.f64 x z))
(*.f64 x (/.f64 4 z))
(+.f64 (*.f64 -4 (+.f64 1/2 (/.f64 y z))) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(+.f64 (*.f64 -4 (+.f64 1/2 (/.f64 y z))) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(+.f64 (*.f64 -4 (+.f64 1/2 (/.f64 y z))) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(*.f64 4 (/.f64 (-.f64 x (*.f64 1/2 z)) z))
(*.f64 4 (/.f64 (+.f64 x (*.f64 -1/2 z)) z))
(fma.f64 4 (/.f64 x z) -2)
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 (-.f64 x (*.f64 1/2 z)) z)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 (-.f64 x (*.f64 1/2 z)) z)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 (-.f64 x (*.f64 1/2 z)) z)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(*.f64 -4 (/.f64 y z))
(/.f64 (*.f64 -4 y) z)
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (-.f64 (/.f64 x z) 1/2)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (-.f64 (/.f64 x z) 1/2)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (-.f64 (/.f64 x z) 1/2)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(*.f64 -4 (/.f64 y z))
(/.f64 (*.f64 -4 y) z)
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (-.f64 (/.f64 x z) 1/2)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (-.f64 (/.f64 x z) 1/2)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (-.f64 (/.f64 x z) 1/2)))
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(*.f64 4 (/.f64 (-.f64 x y) z))
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
-2
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
-2
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(-.f64 (*.f64 4 (/.f64 (-.f64 x y) z)) 2)
(fma.f64 4 (/.f64 x z) (*.f64 -4 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -4 (/.f64 (fma.f64 1/2 z y) z) (*.f64 4 (/.f64 x z)))
(fma.f64 4 (/.f64 x z) (*.f64 (fma.f64 1/2 z y) (/.f64 -4 z)))
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)

prune55.0ms (2%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New57259
Fresh101
Picked011
Done000
Total58361
Error
0b
Counts
61 → 3
Alt Table
StatusErrorProgram
0.2b
(*.f64 4 (/.f64 1 (/.f64 z (-.f64 x (fma.f64 z 1/2 y)))))
0.0b
(+.f64 (*.f64 -4 (+.f64 1/2 (/.f64 y z))) (*.f64 4 (/.f64 x z)))
0.0b
(/.f64 (*.f64 4 (-.f64 (-.f64 x y) (*.f64 z 1/2))) z)
Compiler

Compiled 891 to 587 computations (34.1% saved)

localize8.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 -4 (+.f64 1/2 (/.f64 y z))) (*.f64 4 (/.f64 x z)))
0.0b
(*.f64 4 (/.f64 x z))

series12.0ms (0.4%)

Counts
2 → 27
Calls

15 calls:

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

rewrite62.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
264×expm1-udef_binary64
264×log1p-udef_binary64
151×add-sqr-sqrt_binary64
144×*-un-lft-identity_binary64
144×pow1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01324
130124
2415124
Stop Event
node limit
Counts
2 → 61
Calls
Call 1
Inputs
(*.f64 4 (/.f64 x z))
(+.f64 (*.f64 -4 (+.f64 1/2 (/.f64 y z))) (*.f64 4 (/.f64 x z)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (*.f64 4 x) z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (/.f64 z x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 z (*.f64 4 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 x) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 4 x)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 4 x) 1) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 4 x) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 4 x) (sqrt.f64 z)) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 x) 4) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (neg.f64 x)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 4 x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (*.f64 4 x) z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (*.f64 4 x) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (*.f64 4 x) z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (/.f64 x z) 2) 16))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (*.f64 4 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (*.f64 4 x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (*.f64 4 x) z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (*.f64 4 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (*.f64 4 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (*.f64 4 x) z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (*.f64 4 x) z)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (pow.f64 (+.f64 1/2 (/.f64 y z)) 2) 16) (+.f64 -2 (-.f64 (/.f64 -4 (/.f64 z y)) (/.f64 (*.f64 4 x) z)))) (/.f64 (*.f64 (pow.f64 (/.f64 x z) 2) 16) (+.f64 -2 (-.f64 (/.f64 -4 (/.f64 z y)) (/.f64 (*.f64 4 x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))) (cbrt.f64 (pow.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y)))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y)))) 2)) (cbrt.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))) (sqrt.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (+.f64 -2 (/.f64 -4 (/.f64 z y))) 3) (pow.f64 (/.f64 (*.f64 4 x) z) 3)) (/.f64 1 (+.f64 (*.f64 (pow.f64 (+.f64 1/2 (/.f64 y z)) 2) 16) (*.f64 (/.f64 (*.f64 4 x) z) (-.f64 (/.f64 (*.f64 4 x) z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 (+.f64 1/2 (/.f64 y z)) 2) 16) (*.f64 (pow.f64 (/.f64 x z) 2) 16)) (/.f64 1 (+.f64 -2 (-.f64 (/.f64 -4 (/.f64 z y)) (/.f64 (*.f64 4 x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (*.f64 (pow.f64 (+.f64 1/2 (/.f64 y z)) 2) 16) (*.f64 (/.f64 (*.f64 4 x) z) (-.f64 (/.f64 (*.f64 4 x) z) (+.f64 -2 (/.f64 -4 (/.f64 z y)))))) (+.f64 (pow.f64 (+.f64 -2 (/.f64 -4 (/.f64 z y))) 3) (pow.f64 (/.f64 (*.f64 4 x) z) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 -2 (-.f64 (/.f64 -4 (/.f64 z y)) (/.f64 (*.f64 4 x) z))) (-.f64 (*.f64 (pow.f64 (+.f64 1/2 (/.f64 y z)) 2) 16) (*.f64 (pow.f64 (/.f64 x z) 2) 16))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 -2 (/.f64 -4 (/.f64 z y))) 3) (pow.f64 (/.f64 (*.f64 4 x) z) 3)) (+.f64 (*.f64 (pow.f64 (+.f64 1/2 (/.f64 y z)) 2) 16) (*.f64 (/.f64 (*.f64 4 x) z) (-.f64 (/.f64 (*.f64 4 x) z) (+.f64 -2 (/.f64 -4 (/.f64 z y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 -2 (/.f64 -4 (/.f64 z y))) 3) (pow.f64 (/.f64 (*.f64 4 x) z) 3)) (+.f64 (*.f64 (pow.f64 (/.f64 x z) 2) 16) (-.f64 (*.f64 (pow.f64 (+.f64 1/2 (/.f64 y z)) 2) 16) (*.f64 (/.f64 (*.f64 4 x) z) (+.f64 -2 (/.f64 -4 (/.f64 z y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 (+.f64 1/2 (/.f64 y z)) 2) 16) (*.f64 (pow.f64 (/.f64 x z) 2) 16)) (+.f64 -2 (-.f64 (/.f64 -4 (/.f64 z y)) (/.f64 (*.f64 4 x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (+.f64 -2 (/.f64 -4 (/.f64 z y))) 3) (pow.f64 (/.f64 (*.f64 4 x) z) 3))) (neg.f64 (+.f64 (*.f64 (pow.f64 (+.f64 1/2 (/.f64 y z)) 2) 16) (*.f64 (/.f64 (*.f64 4 x) z) (-.f64 (/.f64 (*.f64 4 x) z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 (pow.f64 (+.f64 1/2 (/.f64 y z)) 2) 16) (*.f64 (pow.f64 (/.f64 x z) 2) 16))) (neg.f64 (+.f64 -2 (-.f64 (/.f64 -4 (/.f64 z y)) (/.f64 (*.f64 4 x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 (/.f64 x z) 2) 16) (*.f64 (pow.f64 (+.f64 1/2 (/.f64 y z)) 2) 16)) (-.f64 (/.f64 (*.f64 4 x) z) (+.f64 -2 (/.f64 -4 (/.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x z) 4 (+.f64 -2 (/.f64 -4 (/.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -4 (+.f64 1/2 (/.f64 y z)) (/.f64 (*.f64 4 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1/2 (/.f64 y z)) -4 (/.f64 (*.f64 4 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 (*.f64 4 x) z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 -2 (/.f64 -4 (/.f64 z y))) (/.f64 (*.f64 4 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 -2 (/.f64 -4 (/.f64 z y)))) 2) (cbrt.f64 (+.f64 -2 (/.f64 -4 (/.f64 z y)))) (/.f64 (*.f64 4 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 (*.f64 4 x) z)) 2) (cbrt.f64 (/.f64 (*.f64 4 x) z)) (+.f64 -2 (/.f64 -4 (/.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 -2 (/.f64 -4 (/.f64 z y)))) (sqrt.f64 (+.f64 -2 (/.f64 -4 (/.f64 z y)))) (/.f64 (*.f64 4 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 (*.f64 4 x) z)) (sqrt.f64 (/.f64 (*.f64 4 x) z)) (+.f64 -2 (/.f64 -4 (/.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 4 (/.f64 x z) (+.f64 -2 (/.f64 -4 (/.f64 z y))))))))))

simplify64.0ms (2.3%)

Algorithm
egg-herbie
Rules
953×fma-neg_binary64
929×fma-def_binary64
282×cancel-sign-sub-inv_binary64
108×distribute-rgt-neg-in_binary64
101×sub-neg_binary64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
029365
160329
2104327
3149327
4245290
5430290
61004254
72171254
83205254
93635254
103816254
114042254
124075254
134077254
Stop Event
saturated
Counts
88 → 74
Calls
Call 1
Inputs
(-.f64 (*.f64 4 (/.f64 x z)) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(*.f64 -4 (/.f64 y z))
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(*.f64 -4 (/.f64 y z))
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(/.f64 (+.f64 (*.f64 -4 y) (*.f64 4 x)) z)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
-2
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
-2
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 4 y) (*.f64 -4 x)) z)) 2)
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 4 y) (*.f64 -4 x)) z)) 2)
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 4 y) (*.f64 -4 x)) z)) 2)
(*.f64 -4 (+.f64 1/2 (/.f64 y z)))
(*.f64 4 (/.f64 x z))
(*.f64 4 (/.f64 x z))
Outputs
(-.f64 (*.f64 4 (/.f64 x z)) 2)
(fma.f64 4 (/.f64 x z) -2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(*.f64 -4 (/.f64 y z))
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(*.f64 -4 (/.f64 y z))
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(/.f64 (+.f64 (*.f64 -4 y) (*.f64 4 x)) z)
(/.f64 (fma.f64 -4 y (*.f64 4 x)) z)
(/.f64 4 (/.f64 z (-.f64 x y)))
(/.f64 (-.f64 x y) (/.f64 z 4))
(*.f64 4 (/.f64 (-.f64 x y) z))
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
-2
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 y z)) (*.f64 4 (/.f64 x z))) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
-2
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 4 y) (*.f64 -4 x)) z)) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 4 y) (*.f64 -4 x)) z)) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 4 y) (*.f64 -4 x)) z)) 2)
(+.f64 (*.f64 -4 (/.f64 y z)) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 -4 (/.f64 y z) (fma.f64 4 (/.f64 x z) -2))
(fma.f64 4 (/.f64 x z) (fma.f64 -4 (/.f64 y z) -2))
(+.f64 (/.f64 4 (/.f64 z (-.f64 x y))) -2)
(+.f64 (/.f64 (-.f64 x y) (/.f64 z 4)) -2)
(fma.f64 (/.f64 -4 z) (-.f64 y x) -2)
(fma.f64 4 (/.f64 (-.f64 x y) z) -2)
(*.f64 -4 (+.f64 1/2 (/.f64 y z)))
(+.f64 -2 (*.f64 -4 (/.f64 y z)))
(+.f64 (*.f64 -4 (/.f64 y z)) -2)
(fma.f64 -4 (/.f64 y z) -2)
(*.f64 4 (/.f64 x z))
(/.f64 x (/.f64 z 4))
(*.f64 4 (/.f64 x z))
(/.f64 x (/.f64 z 4))

prune99.0ms (3.6%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New74074
Fresh011
Picked011
Done011
Total74377
Error
0b
Counts
77 → 3
Alt Table
StatusErrorProgram
0.2b
(*.f64 4 (/.f64 1 (/.f64 z (-.f64 x (fma.f64 z 1/2 y)))))
0.0b
(+.f64 (*.f64 -4 (+.f64 1/2 (/.f64 y z))) (*.f64 4 (/.f64 x z)))
0.0b
(/.f64 (*.f64 4 (-.f64 (-.f64 x y) (*.f64 z 1/2))) z)
Compiler

Compiled 1419 to 913 computations (35.7% saved)

localize9.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

series14.0ms (0.5%)

Counts
2 → 72
Calls

18 calls:

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

rewrite59.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
461×prod-diff_binary64
200×fma-def_binary64
193×expm1-udef_binary64
193×log1p-udef_binary64
159×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify46.0ms (1.6%)

Algorithm
egg-herbie
Rules
771×times-frac_binary64
527×associate-/l*_binary64
476×fma-def_binary64
362×associate-/r*_binary64
153×distribute-lft-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01321616
13971465
213061304
Stop Event
node limit
Counts
151 → 139
Calls
Call 1
Inputs
(/.f64 (-.f64 x y) z)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
-1/2
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
-1/2
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(*.f64 -1 (/.f64 (+.f64 y (*.f64 1/2 z)) z))
(+.f64 (/.f64 x z) (*.f64 -1 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(+.f64 (/.f64 x z) (*.f64 -1 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(+.f64 (/.f64 x z) (*.f64 -1 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(/.f64 x z)
(+.f64 (*.f64 -1 (/.f64 (+.f64 y (*.f64 1/2 z)) z)) (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 (+.f64 y (*.f64 1/2 z)) z)) (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 (+.f64 y (*.f64 1/2 z)) z)) (/.f64 x z))
(/.f64 x z)
(+.f64 (*.f64 -1 (+.f64 1/2 (/.f64 y z))) (/.f64 x z))
(+.f64 (*.f64 -1 (+.f64 1/2 (/.f64 y z))) (/.f64 x z))
(+.f64 (*.f64 -1 (+.f64 1/2 (/.f64 y z))) (/.f64 x z))
(/.f64 (-.f64 x (*.f64 1/2 z)) z)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(*.f64 -1 (/.f64 y z))
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(*.f64 -1 (/.f64 y z))
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(/.f64 z (-.f64 x y))
(+.f64 (/.f64 z (-.f64 x y)) (*.f64 1/2 (/.f64 (pow.f64 z 2) (pow.f64 (-.f64 x y) 2))))
(+.f64 (/.f64 z (-.f64 x y)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 z 2) (pow.f64 (-.f64 x y) 2))) (*.f64 1/4 (/.f64 (pow.f64 z 3) (pow.f64 (-.f64 x y) 3)))))
(+.f64 (/.f64 z (-.f64 x y)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 z 2) (pow.f64 (-.f64 x y) 2))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 z 3) (pow.f64 (-.f64 x y) 3))) (*.f64 1/8 (/.f64 (pow.f64 z 4) (pow.f64 (-.f64 x y) 4))))))
-2
(-.f64 (*.f64 -4 (/.f64 (-.f64 x y) z)) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 (-.f64 x y) z)) (*.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (pow.f64 z 2)))) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 (-.f64 x y) z)) (+.f64 (*.f64 -16 (/.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 z 3))) (*.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (pow.f64 z 2))))) 2)
-2
(-.f64 (*.f64 -4 (/.f64 (-.f64 x y) z)) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 (-.f64 x y) z)) (*.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (pow.f64 z 2)))) 2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 (-.f64 x y) z)) (+.f64 (*.f64 -16 (/.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 z 3))) (*.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (pow.f64 z 2))))) 2)
(*.f64 -1 (/.f64 z (+.f64 y (*.f64 1/2 z))))
(+.f64 (*.f64 -1 (/.f64 (*.f64 z x) (pow.f64 (+.f64 y (*.f64 1/2 z)) 2))) (*.f64 -1 (/.f64 z (+.f64 y (*.f64 1/2 z)))))
(+.f64 (*.f64 -1 (/.f64 (*.f64 z x) (pow.f64 (+.f64 y (*.f64 1/2 z)) 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 z (pow.f64 x 2)) (pow.f64 (+.f64 y (*.f64 1/2 z)) 3))) (*.f64 -1 (/.f64 z (+.f64 y (*.f64 1/2 z))))))
(+.f64 (*.f64 -1 (/.f64 (*.f64 z (pow.f64 x 3)) (pow.f64 (+.f64 y (*.f64 1/2 z)) 4))) (+.f64 (*.f64 -1 (/.f64 (*.f64 z x) (pow.f64 (+.f64 y (*.f64 1/2 z)) 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 z (pow.f64 x 2)) (pow.f64 (+.f64 y (*.f64 1/2 z)) 3))) (*.f64 -1 (/.f64 z (+.f64 y (*.f64 1/2 z)))))))
(/.f64 z x)
(+.f64 (/.f64 (*.f64 (+.f64 y (*.f64 1/2 z)) z) (pow.f64 x 2)) (/.f64 z x))
(+.f64 (/.f64 (*.f64 (pow.f64 (+.f64 y (*.f64 1/2 z)) 2) z) (pow.f64 x 3)) (+.f64 (/.f64 (*.f64 (+.f64 y (*.f64 1/2 z)) z) (pow.f64 x 2)) (/.f64 z x)))
(+.f64 (/.f64 (*.f64 (pow.f64 (+.f64 y (*.f64 1/2 z)) 2) z) (pow.f64 x 3)) (+.f64 (/.f64 (*.f64 (+.f64 y (*.f64 1/2 z)) z) (pow.f64 x 2)) (+.f64 (/.f64 z x) (/.f64 (*.f64 (pow.f64 (+.f64 y (*.f64 1/2 z)) 3) z) (pow.f64 x 4)))))
(/.f64 z x)
(+.f64 (/.f64 (*.f64 (+.f64 y (*.f64 1/2 z)) z) (pow.f64 x 2)) (/.f64 z x))
(+.f64 (/.f64 (*.f64 (pow.f64 (+.f64 y (*.f64 1/2 z)) 2) z) (pow.f64 x 3)) (+.f64 (/.f64 (*.f64 (+.f64 y (*.f64 1/2 z)) z) (pow.f64 x 2)) (/.f64 z x)))
(+.f64 (/.f64 (*.f64 (pow.f64 (+.f64 y (*.f64 1/2 z)) 2) z) (pow.f64 x 3)) (+.f64 (/.f64 (*.f64 (+.f64 y (*.f64 1/2 z)) z) (pow.f64 x 2)) (+.f64 (/.f64 z x) (/.f64 (*.f64 (pow.f64 (+.f64 y (*.f64 1/2 z)) 3) z) (pow.f64 x 4)))))
(/.f64 z (-.f64 x (*.f64 1/2 z)))
(+.f64 (/.f64 (*.f64 y z) (pow.f64 (-.f64 x (*.f64 1/2 z)) 2)) (/.f64 z (-.f64 x (*.f64 1/2 z))))
(+.f64 (/.f64 (*.f64 (pow.f64 y 2) z) (pow.f64 (-.f64 x (*.f64 1/2 z)) 3)) (+.f64 (/.f64 (*.f64 y z) (pow.f64 (-.f64 x (*.f64 1/2 z)) 2)) (/.f64 z (-.f64 x (*.f64 1/2 z)))))
(+.f64 (/.f64 (*.f64 (pow.f64 y 2) z) (pow.f64 (-.f64 x (*.f64 1/2 z)) 3)) (+.f64 (/.f64 (*.f64 y z) (pow.f64 (-.f64 x (*.f64 1/2 z)) 2)) (+.f64 (/.f64 (*.f64 (pow.f64 y 3) z) (pow.f64 (-.f64 x (*.f64 1/2 z)) 4)) (/.f64 z (-.f64 x (*.f64 1/2 z))))))
(*.f64 -1 (/.f64 z y))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 x (*.f64 1/2 z)) z) (pow.f64 y 2))) (*.f64 -1 (/.f64 z y)))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 x (*.f64 1/2 z)) z) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 (-.f64 x (*.f64 1/2 z)) 2) z) (pow.f64 y 3))) (*.f64 -1 (/.f64 z y))))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 x (*.f64 1/2 z)) z) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 (-.f64 x (*.f64 1/2 z)) 3) z) (pow.f64 y 4))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 (-.f64 x (*.f64 1/2 z)) 2) z) (pow.f64 y 3))) (*.f64 -1 (/.f64 z y)))))
(*.f64 -1 (/.f64 z y))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 x (*.f64 1/2 z)) z) (pow.f64 y 2))) (*.f64 -1 (/.f64 z y)))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 x (*.f64 1/2 z)) z) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 (-.f64 x (*.f64 1/2 z)) 2) z) (pow.f64 y 3))) (*.f64 -1 (/.f64 z y))))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 x (*.f64 1/2 z)) z) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 (-.f64 x (*.f64 1/2 z)) 3) z) (pow.f64 y 4))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 (-.f64 x (*.f64 1/2 z)) 2) z) (pow.f64 y 3))) (*.f64 -1 (/.f64 z y)))))
Outputs
(/.f64 (-.f64 x y) z)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
-1/2
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
-1/2
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(*.f64 -1 (/.f64 (+.f64 y (*.f64 1/2 z)) z))
(neg.f64 (/.f64 (+.f64 y (*.f64 z 1/2)) z))
(/.f64 (neg.f64 (fma.f64 z 1/2 y)) z)
(/.f64 (-.f64 (*.f64 z -1/2) y) z)
(+.f64 (/.f64 x z) (*.f64 -1 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -1 (/.f64 (+.f64 y (*.f64 z 1/2)) z) (/.f64 x z))
(-.f64 (/.f64 x z) (/.f64 (fma.f64 z 1/2 y) z))
(+.f64 (/.f64 x z) (*.f64 -1 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -1 (/.f64 (+.f64 y (*.f64 z 1/2)) z) (/.f64 x z))
(-.f64 (/.f64 x z) (/.f64 (fma.f64 z 1/2 y) z))
(+.f64 (/.f64 x z) (*.f64 -1 (/.f64 (+.f64 y (*.f64 1/2 z)) z)))
(fma.f64 -1 (/.f64 (+.f64 y (*.f64 z 1/2)) z) (/.f64 x z))
(-.f64 (/.f64 x z) (/.f64 (fma.f64 z 1/2 y) z))
(/.f64 x z)
(+.f64 (*.f64 -1 (/.f64 (+.f64 y (*.f64 1/2 z)) z)) (/.f64 x z))
(fma.f64 -1 (/.f64 (+.f64 y (*.f64 z 1/2)) z) (/.f64 x z))
(-.f64 (/.f64 x z) (/.f64 (fma.f64 z 1/2 y) z))
(+.f64 (*.f64 -1 (/.f64 (+.f64 y (*.f64 1/2 z)) z)) (/.f64 x z))
(fma.f64 -1 (/.f64 (+.f64 y (*.f64 z 1/2)) z) (/.f64 x z))
(-.f64 (/.f64 x z) (/.f64 (fma.f64 z 1/2 y) z))
(+.f64 (*.f64 -1 (/.f64 (+.f64 y (*.f64 1/2 z)) z)) (/.f64 x z))
(fma.f64 -1 (/.f64 (+.f64 y (*.f64 z 1/2)) z) (/.f64 x z))
(-.f64 (/.f64 x z) (/.f64 (fma.f64 z 1/2 y) z))
(/.f64 x z)
(+.f64 (*.f64 -1 (+.f64 1/2 (/.f64 y z))) (/.f64 x z))
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(+.f64 (*.f64 -1 (+.f64 1/2 (/.f64 y z))) (/.f64 x z))
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(+.f64 (*.f64 -1 (+.f64 1/2 (/.f64 y z))) (/.f64 x z))
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(/.f64 (-.f64 x (*.f64 1/2 z)) z)
(/.f64 (-.f64 x (*.f64 z 1/2)) z)
(/.f64 (+.f64 x (*.f64 z -1/2)) z)
(+.f64 (/.f64 x z) -1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(*.f64 -1 (/.f64 y z))
(neg.f64 (/.f64 y z))
(/.f64 (neg.f64 y) z)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(*.f64 -1 (/.f64 y z))
(neg.f64 (/.f64 y z))
(/.f64 (neg.f64 y) z)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) (/.f64 x z)) 1/2)
(-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z)))
(+.f64 (/.f64 (-.f64 x y) z) -1/2)
(/.f64 z (-.f64 x y))
(+.f64 (/.f64 z (-.f64 x y)) (*.f64 1/2 (/.f64 (pow.f64 z 2) (pow.f64 (-.f64 x y) 2))))
(+.f64 (/.f64 z (-.f64 x y)) (*.f64 1/2 (/.f64 (*.f64 z z) (pow.f64 (-.f64 x y) 2))))
(fma.f64 1/2 (/.f64 (*.f64 z z) (pow.f64 (-.f64 x y) 2)) (/.f64 z (-.f64 x y)))
(+.f64 (/.f64 z (-.f64 x y)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 z 2) (pow.f64 (-.f64 x y) 2))) (*.f64 1/4 (/.f64 (pow.f64 z 3) (pow.f64 (-.f64 x y) 3)))))
(+.f64 (/.f64 z (-.f64 x y)) (fma.f64 1/2 (/.f64 (*.f64 z z) (pow.f64 (-.f64 x y) 2)) (*.f64 1/4 (/.f64 (pow.f64 z 3) (pow.f64 (-.f64 x y) 3)))))
(+.f64 (/.f64 z (-.f64 x y)) (fma.f64 1/4 (/.f64 (pow.f64 z 3) (pow.f64 (-.f64 x y) 3)) (/.f64 (*.f64 1/2 (*.f64 z z)) (pow.f64 (-.f64 x y) 2))))
(fma.f64 1/2 (/.f64 (*.f64 z z) (pow.f64 (-.f64 x y) 2)) (fma.f64 1/4 (pow.f64 (/.f64 z (-.f64 x y)) 3) (/.f64 z (-.f64 x y))))
(+.f64 (/.f64 z (-.f64 x y)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 z 2) (pow.f64 (-.f64 x y) 2))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 z 3) (pow.f64 (-.f64 x y) 3))) (*.f64 1/8 (/.f64 (pow.f64 z 4) (pow.f64 (-.f64 x y) 4))))))
(+.f64 (/.f64 z (-.f64 x y)) (fma.f64 1/2 (/.f64 (*.f64 z z) (pow.f64 (-.f64 x y) 2)) (fma.f64 1/4 (/.f64 (pow.f64 z 3) (pow.f64 (-.f64 x y) 3)) (/.f64 (*.f64 1/8 (pow.f64 z 4)) (pow.f64 (-.f64 x y) 4)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 z z) (pow.f64 (-.f64 x y) 2)) (/.f64 z (-.f64 x y))) (fma.f64 1/4 (pow.f64 (/.f64 z (-.f64 x y)) 3) (*.f64 1/8 (/.f64 (pow.f64 z 4) (pow.f64 (-.f64 x y) 4)))))
-2
(-.f64 (*.f64 -4 (/.f64 (-.f64 x y) z)) 2)
(fma.f64 -4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 (-.f64 x y) z) -4 -2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 (-.f64 x y) z)) (*.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (pow.f64 z 2)))) 2)
(+.f64 (fma.f64 -4 (/.f64 (-.f64 x y) z) (*.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (*.f64 z z)))) -2)
(fma.f64 (/.f64 (-.f64 x y) z) -4 (fma.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (*.f64 z z)) -2))
(-.f64 (+.f64 (*.f64 -4 (/.f64 (-.f64 x y) z)) (+.f64 (*.f64 -16 (/.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 z 3))) (*.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (pow.f64 z 2))))) 2)
(+.f64 (fma.f64 -4 (/.f64 (-.f64 x y) z) (fma.f64 -16 (/.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 z 3)) (*.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (*.f64 z z))))) -2)
(+.f64 (fma.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (*.f64 z z)) (*.f64 -16 (/.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 z 3)))) (fma.f64 (/.f64 (-.f64 x y) z) -4 -2))
(fma.f64 (/.f64 (-.f64 x y) z) -4 (fma.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (*.f64 z z)) (fma.f64 -16 (pow.f64 (/.f64 (-.f64 x y) z) 3) -2)))
-2
(-.f64 (*.f64 -4 (/.f64 (-.f64 x y) z)) 2)
(fma.f64 -4 (/.f64 (-.f64 x y) z) -2)
(fma.f64 (/.f64 (-.f64 x y) z) -4 -2)
(-.f64 (+.f64 (*.f64 -4 (/.f64 (-.f64 x y) z)) (*.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (pow.f64 z 2)))) 2)
(+.f64 (fma.f64 -4 (/.f64 (-.f64 x y) z) (*.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (*.f64 z z)))) -2)
(fma.f64 (/.f64 (-.f64 x y) z) -4 (fma.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (*.f64 z z)) -2))
(-.f64 (+.f64 (*.f64 -4 (/.f64 (-.f64 x y) z)) (+.f64 (*.f64 -16 (/.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 z 3))) (*.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (pow.f64 z 2))))) 2)
(+.f64 (fma.f64 -4 (/.f64 (-.f64 x y) z) (fma.f64 -16 (/.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 z 3)) (*.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (*.f64 z z))))) -2)
(+.f64 (fma.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (*.f64 z z)) (*.f64 -16 (/.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 z 3)))) (fma.f64 (/.f64 (-.f64 x y) z) -4 -2))
(fma.f64 (/.f64 (-.f64 x y) z) -4 (fma.f64 -8 (/.f64 (pow.f64 (-.f64 x y) 2) (*.f64 z z)) (fma.f64 -16 (pow.f64 (/.f64 (-.f64 x y) z) 3) -2)))
(*.f64 -1 (/.f64 z (+.f64 y (*.f64 1/2 z))))
(neg.f64 (/.f64 z (+.f64 y (*.f64 z 1/2))))
(/.f64 (neg.f64 z) (fma.f64 z 1/2 y))
(+.f64 (*.f64 -1 (/.f64 (*.f64 z x) (pow.f64 (+.f64 y (*.f64 1/2 z)) 2))) (*.f64 -1 (/.f64 z (+.f64 y (*.f64 1/2 z)))))
(*.f64 -1 (+.f64 (/.f64 z (/.f64 (pow.f64 (+.f64 y (*.f64 z 1/2)) 2) x)) (/.f64 z (+.f64 y (*.f64 z 1/2)))))
(-.f64 (/.f64 (neg.f64 z) (fma.f64 z 1/2 y)) (/.f64 x (/.f64 (pow.f64 (fma.f64 z 1/2 y) 2) z)))
(*.f64 (/.f64 z (fma.f64 z 1/2 y)) (-.f64 -1 (/.f64 x (fma.f64 z 1/2 y))))
(+.f64 (*.f64 -1 (/.f64 (*.f64 z x) (pow.f64 (+.f64 y (*.f64 1/2 z)) 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 z (pow.f64 x 2)) (pow.f64 (+.f64 y (*.f64 1/2 z)) 3))) (*.f64 -1 (/.f64 z (+.f64 y (*.f64 1/2 z))))))
(fma.f64 -1 (/.f64 z (/.f64 (pow.f64 (+.f64 y (*.f64 z 1/2)) 2) x)) (fma.f64 -1 (/.f64 (*.f64 z (*.f64 x x)) (pow.f64 (+.f64 y (*.f64 z 1/2)) 3)) (neg.f64 (/.f64 z (+.f64 y (*.f64 z 1/2))))))
(-.f64 (-.f64 (/.f64 (neg.f64 z) (fma.f64 z 1/2 y)) (/.f64 (*.f64 x x) (/.f64 (pow.f64 (fma.f64 z 1/2 y) 3) z))) (/.f64 x (/.f64 (pow.f64 (fma.f64 z 1/2 y) 2) z)))
(-.f64 (/.f64 (neg.f64 z) (fma.f64 z 1/2 y)) (*.f64 (/.f64 z (pow.f64 (fma.f64 z 1/2 y) 2)) (+.f64 x (/.f64 x (/.f64 (fma.f64 z 1/2 y) x)))))
(+.f64 (*.f64 -1 (/.f64 (*.f64 z (pow.f64 x 3)) (pow.f64 (+.f64 y (*.f64 1/2 z)) 4))) (+.f64 (*.f64 -1 (/.f64 (*.f64 z x) (pow.f64 (+.f64 y (*.f64 1/2 z)) 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 z (pow.f64 x 2)) (pow.f64 (+.f64 y (*.f64 1/2 z)) 3))) (*.f64 -1 (/.f64 z (+.f64 y (*.f64 1/2 z)))))))
(fma.f64 -1 (/.f64 z (/.f64 (pow.f64 (+.f64 y (*.f64 z 1/2)) 4) (pow.f64 x 3))) (fma.f64 -1 (/.f64 z (/.f64 (pow.f64 (+.f64 y (*.f64 z 1/2)) 2) x)) (fma.f64 -1 (/.f64 (*.f64 z (*.f64 x x)) (pow.f64 (+.f64 y (*.f64 z 1/2)) 3)) (neg.f64 (/.f64 z (+.f64 y (*.f64 z 1/2)))))))
(-.f64 (-.f64 (-.f64 (/.f64 (neg.f64 z) (fma.f64 z 1/2 y)) (/.f64 (*.f64 x x) (/.f64 (pow.f64 (fma.f64 z 1/2 y) 3) z))) (/.f64 x (/.f64 (pow.f64 (fma.f64 z 1/2 y) 2) z))) (/.f64 z (/.f64 (pow.f64 (fma.f64 z 1/2 y) 4) (pow.f64 x 3))))
(-.f64 (-.f64 (/.f64 (neg.f64 z) (fma.f64 z 1/2 y)) (*.f64 (/.f64 z (pow.f64 (fma.f64 z 1/2 y) 2)) (+.f64 x (/.f64 x (/.f64 (fma.f64 z 1/2 y) x))))) (/.f64 z (/.f64 (pow.f64 (fma.f64 z 1/2 y) 4) (pow.f64 x 3))))
(/.f64 z x)
(+.f64 (/.f64 (*.f64 (+.f64 y (*.f64 1/2 z)) z) (pow.f64 x 2)) (/.f64 z x))
(+.f64 (/.f64 z x) (/.f64 (+.f64 y (*.f64 z 1/2)) (/.f64 (*.f64 x x) z)))
(+.f64 (/.f64 z x) (*.f64 (/.f64 z x) (/.f64 (fma.f64 z 1/2 y) x)))
(*.f64 (+.f64 (/.f64 (fma.f64 z 1/2 y) x) 1) (/.f64 z x))
(+.f64 (/.f64 (*.f64 (pow.f64 (+.f64 y (*.f64 1/2 z)) 2) z) (pow.f64 x 3)) (+.f64 (/.f64 (*.f64 (+.f64 y (*.f64 1/2 z)) z) (pow.f64 x 2)) (/.f64 z x)))
(+.f64 (+.f64 (/.f64 z x) (/.f64 (+.f64 y (*.f64 z 1/2)) (/.f64 (*.f64 x x) z))) (/.f64 (pow.f64 (+.f64 y (*.f64 z 1/2)) 2) (/.f64 (pow.f64 x 3) z)))
(+.f64 (/.f64 z x) (+.f64 (*.f64 (/.f64 z x) (/.f64 (fma.f64 z 1/2 y) x)) (/.f64 (pow.f64 (fma.f64 z 1/2 y) 2) (/.f64 (pow.f64 x 3) z))))
(fma.f64 (/.f64 (pow.f64 (fma.f64 z 1/2 y) 2) (pow.f64 x 3)) z (*.f64 (+.f64 (/.f64 (fma.f64 z 1/2 y) x) 1) (/.f64 z x)))
(+.f64 (/.f64 (*.f64 (pow.f64 (+.f64 y (*.f64 1/2 z)) 2) z) (pow.f64 x 3)) (+.f64 (/.f64 (*.f64 (+.f64 y (*.f64 1/2 z)) z) (pow.f64 x 2)) (+.f64 (/.f64 z x) (/.f64 (*.f64 (pow.f64 (+.f64 y (*.f64 1/2 z)) 3) z) (pow.f64 x 4)))))
(+.f64 (/.f64 (pow.f64 (+.f64 y (*.f64 z 1/2)) 2) (/.f64 (pow.f64 x 3) z)) (+.f64 (+.f64 (/.f64 z x) (/.f64 (+.f64 y (*.f64 z 1/2)) (/.f64 (*.f64 x x) z))) (/.f64 (pow.f64 (+.f64 y (*.f64 z 1/2)) 3) (/.f64 (pow.f64 x 4) z))))
(+.f64 (+.f64 (/.f64 z x) (*.f64 (/.f64 z x) (/.f64 (fma.f64 z 1/2 y) x))) (+.f64 (*.f64 (/.f64 (pow.f64 (fma.f64 z 1/2 y) 3) (pow.f64 x 4)) z) (/.f64 (pow.f64 (fma.f64 z 1/2 y) 2) (/.f64 (pow.f64 x 3) z))))
(fma.f64 (/.f64 (pow.f64 (fma.f64 z 1/2 y) 2) (pow.f64 x 3)) z (fma.f64 (/.f64 (pow.f64 (fma.f64 z 1/2 y) 3) (pow.f64 x 4)) z (*.f64 (+.f64 (/.f64 (fma.f64 z 1/2 y) x) 1) (/.f64 z x))))
(/.f64 z x)
(+.f64 (/.f64 (*.f64 (+.f64 y (*.f64 1/2 z)) z) (pow.f64 x 2)) (/.f64 z x))
(+.f64 (/.f64 z x) (/.f64 (+.f64 y (*.f64 z 1/2)) (/.f64 (*.f64 x x) z)))
(+.f64 (/.f64 z x) (*.f64 (/.f64 z x) (/.f64 (fma.f64 z 1/2 y) x)))
(*.f64 (+.f64 (/.f64 (fma.f64 z 1/2 y) x) 1) (/.f64 z x))
(+.f64 (/.f64 (*.f64 (pow.f64 (+.f64 y (*.f64 1/2 z)) 2) z) (pow.f64 x 3)) (+.f64 (/.f64 (*.f64 (+.f64 y (*.f64 1/2 z)) z) (pow.f64 x 2)) (/.f64 z x)))
(+.f64 (+.f64 (/.f64 z x) (/.f64 (+.f64 y (*.f64 z 1/2)) (/.f64 (*.f64 x x) z))) (/.f64 (pow.f64 (+.f64 y (*.f64 z 1/2)) 2) (/.f64 (pow.f64 x 3) z)))
(+.f64 (/.f64 z x) (+.f64 (*.f64 (/.f64 z x) (/.f64 (fma.f64 z 1/2 y) x)) (/.f64 (pow.f64 (fma.f64 z 1/2 y) 2) (/.f64 (pow.f64 x 3) z))))
(fma.f64 (/.f64 (pow.f64 (fma.f64 z 1/2 y) 2) (pow.f64 x 3)) z (*.f64 (+.f64 (/.f64 (fma.f64 z 1/2 y) x) 1) (/.f64 z x)))
(+.f64 (/.f64 (*.f64 (pow.f64 (+.f64 y (*.f64 1/2 z)) 2) z) (pow.f64 x 3)) (+.f64 (/.f64 (*.f64 (+.f64 y (*.f64 1/2 z)) z) (pow.f64 x 2)) (+.f64 (/.f64 z x) (/.f64 (*.f64 (pow.f64 (+.f64 y (*.f64 1/2 z)) 3) z) (pow.f64 x 4)))))
(+.f64 (/.f64 (pow.f64 (+.f64 y (*.f64 z 1/2)) 2) (/.f64 (pow.f64 x 3) z)) (+.f64 (+.f64 (/.f64 z x) (/.f64 (+.f64 y (*.f64 z 1/2)) (/.f64 (*.f64 x x) z))) (/.f64 (pow.f64 (+.f64 y (*.f64 z 1/2)) 3) (/.f64 (pow.f64 x 4) z))))
(+.f64 (+.f64 (/.f64 z x) (*.f64 (/.f64 z x) (/.f64 (fma.f64 z 1/2 y) x))) (+.f64 (*.f64 (/.f64 (pow.f64 (fma.f64 z 1/2 y) 3) (pow.f64 x 4)) z) (/.f64 (pow.f64 (fma.f64 z 1/2 y) 2) (/.f64 (pow.f64 x 3) z))))
(fma.f64 (/.f64 (pow.f64 (fma.f64 z 1/2 y) 2) (pow.f64 x 3)) z (fma.f64 (/.f64 (pow.f64 (fma.f64 z 1/2 y) 3) (pow.f64 x 4)) z (*.f64 (+.f64 (/.f64 (fma.f64 z 1/2 y) x) 1) (/.f64 z x))))
(/.f64 z (-.f64 x (*.f64 1/2 z)))
(/.f64 z (-.f64 x (*.f64 z 1/2)))
(/.f64 z (+.f64 x (*.f64 z -1/2)))
(/.f64 z (fma.f64 z -1/2 x))
(+.f64 (/.f64 (*.f64 y z) (pow.f64 (-.f64 x (*.f64 1/2 z)) 2)) (/.f64 z (-.f64 x (*.f64 1/2 z))))
(+.f64 (/.f64 z (-.f64 x (*.f64 z 1/2))) (/.f64 (*.f64 y z) (pow.f64 (-.f64 x (*.f64 z 1/2)) 2)))
(+.f64 (/.f64 z (+.f64 x (*.f64 z -1/2))) (/.f64 z (/.f64 (pow.f64 (+.f64 x (*.f64 z -1/2)) 2) y)))
(*.f64 (+.f64 (/.f64 y (fma.f64 z -1/2 x)) 1) (/.f64 z (fma.f64 z -1/2 x)))
(+.f64 (/.f64 (*.f64 (pow.f64 y 2) z) (pow.f64 (-.f64 x (*.f64 1/2 z)) 3)) (+.f64 (/.f64 (*.f64 y z) (pow.f64 (-.f64 x (*.f64 1/2 z)) 2)) (/.f64 z (-.f64 x (*.f64 1/2 z)))))
(+.f64 (+.f64 (/.f64 z (-.f64 x (*.f64 z 1/2))) (/.f64 (*.f64 y z) (pow.f64 (-.f64 x (*.f64 z 1/2)) 2))) (/.f64 (*.f64 y y) (/.f64 (pow.f64 (-.f64 x (*.f64 z 1/2)) 3) z)))
(+.f64 (/.f64 z (/.f64 (pow.f64 (+.f64 x (*.f64 z -1/2)) 2) y)) (+.f64 (/.f64 z (+.f64 x (*.f64 z -1/2))) (/.f64 z (/.f64 (pow.f64 (+.f64 x (*.f64 z -1/2)) 3) (*.f64 y y)))))
(fma.f64 (/.f64 y (/.f64 (pow.f64 (fma.f64 z -1/2 x) 3) y)) z (*.f64 (+.f64 (/.f64 y (fma.f64 z -1/2 x)) 1) (/.f64 z (fma.f64 z -1/2 x))))
(+.f64 (/.f64 (*.f64 (pow.f64 y 2) z) (pow.f64 (-.f64 x (*.f64 1/2 z)) 3)) (+.f64 (/.f64 (*.f64 y z) (pow.f64 (-.f64 x (*.f64 1/2 z)) 2)) (+.f64 (/.f64 (*.f64 (pow.f64 y 3) z) (pow.f64 (-.f64 x (*.f64 1/2 z)) 4)) (/.f64 z (-.f64 x (*.f64 1/2 z))))))
(+.f64 (/.f64 (*.f64 y y) (/.f64 (pow.f64 (-.f64 x (*.f64 z 1/2)) 3) z)) (+.f64 (/.f64 (*.f64 y z) (pow.f64 (-.f64 x (*.f64 z 1/2)) 2)) (+.f64 (/.f64 z (-.f64 x (*.f64 z 1/2))) (/.f64 (*.f64 z (pow.f64 y 3)) (pow.f64 (-.f64 x (*.f64 z 1/2)) 4)))))
(+.f64 (+.f64 (/.f64 z (+.f64 x (*.f64 z -1/2))) (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 (+.f64 x (*.f64 z -1/2)) 4)) z)) (+.f64 (/.f64 z (/.f64 (pow.f64 (+.f64 x (*.f64 z -1/2)) 2) y)) (/.f64 z (/.f64 (pow.f64 (+.f64 x (*.f64 z -1/2)) 3) (*.f64 y y)))))
(fma.f64 (/.f64 y (/.f64 (pow.f64 (fma.f64 z -1/2 x) 3) y)) z (fma.f64 (/.f64 (pow.f64 y 3) (pow.f64 (fma.f64 z -1/2 x) 4)) z (*.f64 (+.f64 (/.f64 y (fma.f64 z -1/2 x)) 1) (/.f64 z (fma.f64 z -1/2 x)))))
(*.f64 -1 (/.f64 z y))
(neg.f64 (/.f64 z y))
(/.f64 (neg.f64 z) y)
(+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 x (*.f64 1/2 z)) z) (pow.f64 y 2))) (*.f64 -1 (/.f64 z y)))
(*.f64 -1 (+.f64 (/.f64 (-.f64 x (*.f64 z 1/2)) (/.f64 (*.f64 y y) z)) (/.f64 z y)))
(-.f64 (/.f64 (neg.f64 z) y) (/.f64 z (/.f64 (*.f64 y y) (+.f64 x (*.f64 z -1/2)))))
(*.f64 (/.f64 z y) (-.f64 -1 (/.f64 (fma.f64 z -1/2 x) y)))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 x (*.f64 1/2 z)) z) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 (-.f64 x (*.f64 1/2 z)) 2) z) (pow.f64 y 3))) (*.f64 -1 (/.f64 z y))))
(fma.f64 -1 (/.f64 (-.f64 x (*.f64 z 1/2)) (/.f64 (*.f64 y y) z)) (fma.f64 -1 (/.f64 (pow.f64 (-.f64 x (*.f64 z 1/2)) 2) (/.f64 (pow.f64 y 3) z)) (neg.f64 (/.f64 z y))))
(-.f64 (-.f64 (/.f64 (neg.f64 z) y) (/.f64 (pow.f64 (+.f64 x (*.f64 z -1/2)) 2) (/.f64 (pow.f64 y 3) z))) (/.f64 z (/.f64 (*.f64 y y) (+.f64 x (*.f64 z -1/2)))))
(-.f64 (*.f64 (/.f64 z y) (-.f64 -1 (/.f64 (fma.f64 z -1/2 x) y))) (*.f64 (/.f64 (pow.f64 (fma.f64 z -1/2 x) 2) (pow.f64 y 3)) z))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 x (*.f64 1/2 z)) z) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 (-.f64 x (*.f64 1/2 z)) 3) z) (pow.f64 y 4))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 (-.f64 x (*.f64 1/2 z)) 2) z) (pow.f64 y 3))) (*.f64 -1 (/.f64 z y)))))
(fma.f64 -1 (/.f64 (-.f64 x (*.f64 z 1/2)) (/.f64 (*.f64 y y) z)) (fma.f64 -1 (/.f64 (pow.f64 (-.f64 x (*.f64 z 1/2)) 3) (/.f64 (pow.f64 y 4) z)) (fma.f64 -1 (/.f64 (pow.f64 (-.f64 x (*.f64 z 1/2)) 2) (/.f64 (pow.f64 y 3) z)) (neg.f64 (/.f64 z y)))))
(-.f64 (-.f64 (-.f64 (/.f64 (neg.f64 z) y) (/.f64 (pow.f64 (+.f64 x (*.f64 z -1/2)) 2) (/.f64 (pow.f64 y 3) z))) (/.f64 z (/.f64 (pow.f64 y 4) (pow.f64 (+.f64 x (*.f64 z -1/2)) 3)))) (/.f64 z (/.f64 (*.f64 y y) (+.f64 x (*.f64 z -1/2)))))
(fma.f64 -1 (*.f64 z (+.f64 (/.f64 (pow.f64 (fma.f64 z -1/2 x) 3) (pow.f64 y 4)) (/.f64 (pow.f64 (fma.f64 z -1/2 x) 2) (pow.f64 y 3)))) (*.f64 (/.f64 z y) (-.f64 -1 (/.f64 (fma.f64 z -1/2 x) y))))
(*.f64 -1 (/.f64 z y))
(neg.f64 (/.f64 z y))
(/.f64 (neg.f64 z) y)
(+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 x (*.f64 1/2 z)) z) (pow.f64 y 2))) (*.f64 -1 (/.f64 z y)))
(*.f64 -1 (+.f64 (/.f64 (-.f64 x (*.f64 z 1/2)) (/.f64 (*.f64 y y) z)) (/.f64 z y)))
(-.f64 (/.f64 (neg.f64 z) y) (/.f64 z (/.f64 (*.f64 y y) (+.f64 x (*.f64 z -1/2)))))
(*.f64 (/.f64 z y) (-.f64 -1 (/.f64 (fma.f64 z -1/2 x) y)))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 x (*.f64 1/2 z)) z) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 (-.f64 x (*.f64 1/2 z)) 2) z) (pow.f64 y 3))) (*.f64 -1 (/.f64 z y))))
(fma.f64 -1 (/.f64 (-.f64 x (*.f64 z 1/2)) (/.f64 (*.f64 y y) z)) (fma.f64 -1 (/.f64 (pow.f64 (-.f64 x (*.f64 z 1/2)) 2) (/.f64 (pow.f64 y 3) z)) (neg.f64 (/.f64 z y))))
(-.f64 (-.f64 (/.f64 (neg.f64 z) y) (/.f64 (pow.f64 (+.f64 x (*.f64 z -1/2)) 2) (/.f64 (pow.f64 y 3) z))) (/.f64 z (/.f64 (*.f64 y y) (+.f64 x (*.f64 z -1/2)))))
(-.f64 (*.f64 (/.f64 z y) (-.f64 -1 (/.f64 (fma.f64 z -1/2 x) y))) (*.f64 (/.f64 (pow.f64 (fma.f64 z -1/2 x) 2) (pow.f64 y 3)) z))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 x (*.f64 1/2 z)) z) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 (-.f64 x (*.f64 1/2 z)) 3) z) (pow.f64 y 4))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 (-.f64 x (*.f64 1/2 z)) 2) z) (pow.f64 y 3))) (*.f64 -1 (/.f64 z y)))))
(fma.f64 -1 (/.f64 (-.f64 x (*.f64 z 1/2)) (/.f64 (*.f64 y y) z)) (fma.f64 -1 (/.f64 (pow.f64 (-.f64 x (*.f64 z 1/2)) 3) (/.f64 (pow.f64 y 4) z)) (fma.f64 -1 (/.f64 (pow.f64 (-.f64 x (*.f64 z 1/2)) 2) (/.f64 (pow.f64 y 3) z)) (neg.f64 (/.f64 z y)))))
(-.f64 (-.f64 (-.f64 (/.f64 (neg.f64 z) y) (/.f64 (pow.f64 (+.f64 x (*.f64 z -1/2)) 2) (/.f64 (pow.f64 y 3) z))) (/.f64 z (/.f64 (pow.f64 y 4) (pow.f64 (+.f64 x (*.f64 z -1/2)) 3)))) (/.f64 z (/.f64 (*.f64 y y) (+.f64 x (*.f64 z -1/2)))))
(fma.f64 -1 (*.f64 z (+.f64 (/.f64 (pow.f64 (fma.f64 z -1/2 x) 3) (pow.f64 y 4)) (/.f64 (pow.f64 (fma.f64 z -1/2 x) 2) (pow.f64 y 3)))) (*.f64 (/.f64 z y) (-.f64 -1 (/.f64 (fma.f64 z -1/2 x) y))))

prune134.0ms (4.8%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New1390139
Fresh000
Picked011
Done022
Total1393142
Error
0b
Counts
142 → 3
Alt Table
StatusErrorProgram
0.2b
(*.f64 4 (/.f64 1 (/.f64 z (-.f64 x (fma.f64 z 1/2 y)))))
0.0b
(+.f64 (*.f64 -4 (+.f64 1/2 (/.f64 y z))) (*.f64 4 (/.f64 x z)))
0.0b
(/.f64 (*.f64 4 (-.f64 (-.f64 x y) (*.f64 z 1/2))) z)
Compiler

Compiled 2794 to 1842 computations (34.1% saved)

regimes99.0ms (3.6%)

Accuracy

Total -0.3b remaining (-2583%)

Threshold costs -0.3b (-2583%)

Counts
28 → 1
Compiler

Compiled 280 to 172 computations (38.6% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01116
11516
22516
33216
43716
54016
64116
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 4 (-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z))))
Outputs
(*.f64 4 (-.f64 (/.f64 x z) (+.f64 1/2 (/.f64 y z))))
(*.f64 4 (+.f64 (/.f64 x z) (-.f64 -1/2 (/.f64 y z))))

end42.0ms (1.5%)

Stop Event
done
Compiler

Compiled 64 to 42 computations (34.4% saved)

Profiling

Loading profile data...