Details

Time bar (total: 6.6s)

analyze242.0ms (3.7%)

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
12.5%87.4%0.1%7
18.7%81.1%0.1%8
28.1%71.8%0.1%9
34.3%59.3%6.4%10
40.6%51.3%8.1%11
48%43.2%8.8%12
Compiler

Compiled 11 to 7 computations (36.4% saved)

sample1.4s (21.1%)

Results
1.2s8256×body256valid
149.0ms1229×body256invalid

preprocess124.0ms (1.9%)

Algorithm
egg-herbie
Rules
865×fma-neg_binary64
384×fma-def_binary64
156×unsub-neg_binary64
141×distribute-rgt-in_binary64
108×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01640
13132
27332
317632
431732
565232
6127032
7202332
8275232
9291532
10294332
11294332
033
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(+.f64 x (*.f64 (-.f64 y x) z))
(+.f64 y (*.f64 (-.f64 x y) z))
(+.f64 z (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 z x) y))
Outputs
(+.f64 x (*.f64 (-.f64 y x) z))
(fma.f64 (-.f64 y x) z x)
(+.f64 y (*.f64 (-.f64 x y) z))
(+.f64 y (*.f64 z (-.f64 x y)))
(fma.f64 z (-.f64 x y) y)
(+.f64 z (*.f64 (-.f64 y z) x))
(+.f64 z (*.f64 x (-.f64 y z)))
(fma.f64 x (-.f64 y z) z)
(+.f64 x (*.f64 (-.f64 z x) y))
(+.f64 x (*.f64 y (-.f64 z x)))
(fma.f64 y (-.f64 z x) x)
Compiler

Compiled 13 to 9 computations (30.8% saved)

simplify45.0ms (0.7%)

Algorithm
egg-herbie
Rules
272×fma-def_binary64
251×fma-neg_binary64
71×cancel-sign-sub-inv_binary64
54×distribute-rgt-in_binary64
41×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0710
1118
2248
3528
41008
51718
62838
74828
88738
911148
1012148
1112218
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 x (*.f64 (-.f64 y x) z))
Outputs
(+.f64 x (*.f64 (-.f64 y x) z))
(fma.f64 (-.f64 y x) z x)

eval1.0ms (0%)

Compiler

Compiled 16 to 7 computations (56.3% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(fma.f64 (-.f64 y x) z x)
0.0b
(+.f64 x (*.f64 (-.f64 y x) z))
Compiler

Compiled 19 to 11 computations (42.1% saved)

localize14.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (*.f64 (-.f64 y x) z))
0.0b
(*.f64 (-.f64 y x) z)
Compiler

Compiled 21 to 6 computations (71.4% saved)

series14.0ms (0.2%)

Counts
2 → 60
Calls

18 calls:

TimeVariablePointExpression
1.0ms
y
@-inf
(*.f64 (-.f64 y x) z)
1.0ms
z
@inf
(+.f64 x (*.f64 (-.f64 y x) z))
1.0ms
x
@-inf
(*.f64 (-.f64 y x) z)
1.0ms
y
@inf
(*.f64 (-.f64 y x) z)
1.0ms
z
@0
(*.f64 (-.f64 y x) z)

rewrite82.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
969×pow1_binary64
901×add-log-exp_binary64
901×log1p-expm1-u_binary64
901×expm1-log1p-u_binary64
87×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify233.0ms (3.5%)

Algorithm
egg-herbie
Rules
407×fma-def_binary64
296×fma-neg_binary64
64×cancel-sign-sub-inv_binary64
60×distribute-rgt-in_binary64
42×unsub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
023591
158420
2111420
3220420
4381420
5689420
61064420
71303420
81422420
91424420
Stop Event
saturated
Counts
114 → 70
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 z 1) x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
x
(+.f64 (*.f64 (-.f64 y x) z) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 (-.f64 y x) z) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 (-.f64 y x) z) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
Outputs
(*.f64 -1 (*.f64 z x))
(*.f64 (neg.f64 z) x)
(*.f64 z (neg.f64 x))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(*.f64 -1 (*.f64 z x))
(*.f64 (neg.f64 z) x)
(*.f64 z (neg.f64 x))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(*.f64 -1 (*.f64 z x))
(*.f64 (neg.f64 z) x)
(*.f64 z (neg.f64 x))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (fma.f64 -1 z 1))
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(*.f64 -1 (*.f64 (-.f64 z 1) x))
(*.f64 x (fma.f64 -1 z 1))
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (fma.f64 -1 z 1))
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
x
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(*.f64 (-.f64 y x) z)
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(*.f64 (-.f64 y x) z)
(fma.f64 y z (*.f64 (neg.f64 z) x))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)

localize12.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 (-.f64 y x) z x)
Compiler

Compiled 15 to 5 computations (66.7% saved)

series8.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
2.0ms
y
@inf
(fma.f64 (-.f64 y x) z x)
1.0ms
y
@0
(fma.f64 (-.f64 y x) z x)
1.0ms
z
@inf
(fma.f64 (-.f64 y x) z x)
1.0ms
z
@-inf
(fma.f64 (-.f64 y x) z x)
1.0ms
x
@-inf
(fma.f64 (-.f64 y x) z x)

rewrite174.0ms (2.7%)

Algorithm
batch-egg-rewrite
Rules
736×pow1_binary64
682×add-log-exp_binary64
682×log1p-expm1-u_binary64
682×expm1-log1p-u_binary64
666×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify57.0ms (0.9%)

Algorithm
egg-herbie
Rules
400×fma-def_binary64
300×fma-neg_binary64
64×cancel-sign-sub-inv_binary64
60×distribute-rgt-in_binary64
42×unsub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
022375
156264
2108264
3213264
4374264
5679264
61053264
71292264
81411264
91413264
Stop Event
saturated
Counts
57 → 34
Calls
Call 1
Inputs
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 z 1) x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
x
(+.f64 (*.f64 (-.f64 y x) z) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 (-.f64 y x) z) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 (-.f64 y x) z) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
Outputs
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(fma.f64 -1 (*.f64 z x) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(fma.f64 -1 (*.f64 z x) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(*.f64 -1 (*.f64 (-.f64 z 1) x))
(fma.f64 -1 (*.f64 z x) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
x
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(*.f64 (-.f64 y x) z)
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(*.f64 (-.f64 y x) z)
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 (-.f64 y x) z) x)
(fma.f64 y z (fma.f64 -1 (*.f64 z x) x))
(fma.f64 z (-.f64 y x) x)

eval34.0ms (0.5%)

Compiler

Compiled 1176 to 343 computations (70.8% saved)

prune65.0ms (1%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New968104
Fresh000
Picked011
Done011
Total9610106
Error
0b
Counts
106 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 x (+.f64 (*.f64 z y) (*.f64 z (neg.f64 x))))
0.0b
(fma.f64 (-.f64 y x) z x)
29.5b
(*.f64 (-.f64 y x) z)
22.5b
(-.f64 x (*.f64 z x))
22.5b
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
41.0b
(*.f64 z y)
12.3b
(+.f64 x (*.f64 z y))
0.0b
(+.f64 x (*.f64 (-.f64 y x) z))
26.0b
(+.f64 x (cbrt.f64 (pow.f64 (*.f64 (-.f64 y x) z) 3)))
34.1b
x
Compiler

Compiled 155 to 102 computations (34.2% saved)

localize20.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (+.f64 (*.f64 z y) (*.f64 z (neg.f64 x))))
0.0b
(+.f64 (*.f64 z y) (*.f64 z (neg.f64 x)))
Compiler

Compiled 33 to 8 computations (75.8% saved)

series85.0ms (1.3%)

Counts
2 → 72
Calls

18 calls:

TimeVariablePointExpression
70.0ms
x
@0
(+.f64 x (+.f64 (*.f64 z y) (*.f64 z (neg.f64 x))))
3.0ms
x
@-inf
(+.f64 (*.f64 z y) (*.f64 z (neg.f64 x)))
2.0ms
z
@0
(+.f64 (*.f64 z y) (*.f64 z (neg.f64 x)))
1.0ms
z
@inf
(+.f64 (*.f64 z y) (*.f64 z (neg.f64 x)))
1.0ms
z
@-inf
(+.f64 (*.f64 z y) (*.f64 z (neg.f64 x)))

rewrite144.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
566×fma-def_binary64
504×log-prod_binary64
402×pow-prod-down_binary64
334×fma-neg_binary64
254×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify190.0ms (2.9%)

Algorithm
egg-herbie
Rules
311×fma-neg_binary64
279×fma-def_binary64
50×cancel-sign-sub-inv_binary64
44×unsub-neg_binary64
42×distribute-rgt-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
029679
185504
2176504
3331504
4658504
51070504
61230504
71244504
Stop Event
saturated
Counts
335 → 282
Calls
Call 1
Inputs
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x)))
(*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x)))
(*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x)))
(*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 z 1) x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
x
(+.f64 (*.f64 z (+.f64 y (*.f64 -1 x))) x)
(+.f64 (*.f64 z (+.f64 y (*.f64 -1 x))) x)
(+.f64 (*.f64 z (+.f64 y (*.f64 -1 x))) x)
(*.f64 z (+.f64 y (*.f64 -1 x)))
(+.f64 (*.f64 z (+.f64 y (*.f64 -1 x))) x)
(+.f64 (*.f64 z (+.f64 y (*.f64 -1 x))) x)
(+.f64 (*.f64 z (+.f64 y (*.f64 -1 x))) x)
(*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x)))
(+.f64 (*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x))) x)
(+.f64 (*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x))) x)
(+.f64 (*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x))) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
Outputs
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 -1 (*.f64 z x))
(*.f64 (neg.f64 z) x)
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 -1 (*.f64 z x))
(*.f64 (neg.f64 z) x)
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 -1 (*.f64 z x))
(*.f64 (neg.f64 z) x)
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (fma.f64 -1 z 1))
(-.f64 x (*.f64 z x))
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 (*.f64 -1 z) 1) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(*.f64 -1 (*.f64 (-.f64 z 1) x))
(*.f64 x (fma.f64 -1 z 1))
(-.f64 x (*.f64 z x))
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 z 1) x)))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
x
(+.f64 (*.f64 z (+.f64 y (*.f64 -1 x))) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 z (+.f64 y (*.f64 -1 x))) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 z (+.f64 y (*.f64 -1 x))) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(*.f64 z (+.f64 y (*.f64 -1 x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 z (+.f64 y (*.f64 -1 x))) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 z (+.f64 y (*.f64 -1 x))) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 z (+.f64 y (*.f64 -1 x))) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x)))
(*.f64 z (+.f64 y (neg.f64 x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x))) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x))) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 -1 (*.f64 z (+.f64 (*.f64 -1 y) x))) x)
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (fma.f64 -1 z 1))
(-.f64 x (*.f64 z x))
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 y z (*.f64 x (fma.f64 -1 z 1)))
(fma.f64 z (-.f64 y x) x)

localize3.0ms (0.1%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 y x) z)
Compiler

Compiled 14 to 5 computations (64.3% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (*.f64 z y))
Compiler

Compiled 14 to 5 computations (64.3% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x
@0
(+.f64 x (*.f64 z y))
0.0ms
y
@inf
(+.f64 x (*.f64 z y))
0.0ms
x
@inf
(+.f64 x (*.f64 z y))
0.0ms
x
@-inf
(+.f64 x (*.f64 z y))
0.0ms
z
@-inf
(+.f64 x (*.f64 z y))

rewrite200.0ms (3.1%)

Algorithm
batch-egg-rewrite
Rules
713×pow1_binary64
661×add-log-exp_binary64
661×log1p-expm1-u_binary64
661×expm1-log1p-u_binary64
646×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify10.0ms (0.2%)

Algorithm
egg-herbie
Rules
fma-def_binary64
+-commutative_binary64
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
06159
19159
210159
Stop Event
saturated
Counts
71 → 38
Calls
Call 1
Inputs
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
Outputs
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
x
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
x
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
x
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
x
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(-.f64 x (*.f64 z x))
Compiler

Compiled 13 to 5 computations (61.5% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(-.f64 x (*.f64 z x))
0.0ms
x
@inf
(-.f64 x (*.f64 z x))
0.0ms
x
@-inf
(-.f64 x (*.f64 z x))
0.0ms
z
@-inf
(-.f64 x (*.f64 z x))
0.0ms
z
@inf
(-.f64 x (*.f64 z x))

rewrite49.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
651×pow1_binary64
606×add-log-exp_binary64
606×log1p-expm1-u_binary64
606×expm1-log1p-u_binary64
593×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify23.0ms (0.4%)

Algorithm
egg-herbie
Rules
145×fma-def_binary64
71×fma-neg_binary64
21×cancel-sign-sub-inv_binary64
19×associate-*r*_binary64
18×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
013160
128160
249160
388160
4136160
5223160
6371160
7450160
8518160
9524160
Stop Event
saturated
Counts
64 → 47
Calls
Call 1
Inputs
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
Outputs
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 -1 (*.f64 z x))
(*.f64 (neg.f64 z) x)
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 -1 (*.f64 z x))
(*.f64 (neg.f64 z) x)
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)

eval271.0ms (4.1%)

Compiler

Compiled 5493 to 1576 computations (71.3% saved)

prune230.0ms (3.5%)

Pruning

11 alts after pruning (6 fresh and 5 done)

PrunedKeptTotal
New3856391
Fresh303
Picked011
Done246
Total39011401
Error
0b
Counts
401 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
22.5b
(*.f64 (-.f64 1 z) x)
29.5b
(*.f64 (-.f64 y x) z)
12.3b
(fma.f64 z y x)
41.0b
(*.f64 z y)
51.0b
(*.f64 z (neg.f64 x))
0.0b
(+.f64 x (*.f64 (-.f64 y x) z))
22.5b
(-.f64 x (*.f64 z x))
12.3b
(+.f64 x (*.f64 z y))
49.1b
(cbrt.f64 (pow.f64 (*.f64 (-.f64 y x) z) 3))
34.1b
x
29.5b
(+.f64 (*.f64 z y) (*.f64 z (neg.f64 x)))
Compiler

Compiled 132 to 88 computations (33.3% saved)

localize5.0ms (0.1%)

Compiler

Compiled 10 to 4 computations (60% saved)

localize7.0ms (0.1%)

Compiler

Compiled 11 to 5 computations (54.5% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 1 z) x)
Compiler

Compiled 14 to 9 computations (35.7% saved)

series3.0ms (0%)

Counts
1 → 12
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 (-.f64 1 z) x)
0.0ms
z
@0
(*.f64 (-.f64 1 z) x)
0.0ms
x
@-inf
(*.f64 (-.f64 1 z) x)
0.0ms
x
@inf
(*.f64 (-.f64 1 z) x)
0.0ms
z
@inf
(*.f64 (-.f64 1 z) x)

rewrite55.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
617×pow1_binary64
572×add-log-exp_binary64
572×log1p-expm1-u_binary64
572×expm1-log1p-u_binary64
561×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify97.0ms (1.5%)

Algorithm
egg-herbie
Rules
140×fma-def_binary64
84×fma-neg_binary64
22×cancel-sign-sub-inv_binary64
21×associate-*r*_binary64
19×associate-*l*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0785
11476
23376
35176
47276
514676
628376
739276
847576
953976
Stop Event
saturated
Counts
29 → 22
Calls
Call 1
Inputs
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
Outputs
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(fma.f64 -1 (*.f64 x z) x)
(-.f64 x (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(fma.f64 -1 (*.f64 x z) x)
(-.f64 x (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(fma.f64 -1 (*.f64 x z) x)
(-.f64 x (*.f64 x z))
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 x z))
(*.f64 x (neg.f64 z))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(fma.f64 -1 (*.f64 x z) x)
(-.f64 x (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(fma.f64 -1 (*.f64 x z) x)
(-.f64 x (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(fma.f64 -1 (*.f64 x z) x)
(-.f64 x (*.f64 x z))
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 x z))
(*.f64 x (neg.f64 z))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(fma.f64 -1 (*.f64 x z) x)
(-.f64 x (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(fma.f64 -1 (*.f64 x z) x)
(-.f64 x (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(fma.f64 -1 (*.f64 x z) x)
(-.f64 x (*.f64 x z))

localize10.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 z y) (*.f64 z (neg.f64 x)))
Compiler

Compiled 23 to 7 computations (69.6% saved)

localize15.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 y x) z)
0.3b
(pow.f64 (*.f64 (-.f64 y x) z) 3)
32.6b
(cbrt.f64 (pow.f64 (*.f64 (-.f64 y x) z) 3))
Compiler

Compiled 30 to 11 computations (63.3% saved)

series13.0ms (0.2%)

Counts
2 → 72
Calls

18 calls:

TimeVariablePointExpression
2.0ms
z
@-inf
(cbrt.f64 (pow.f64 (*.f64 (-.f64 y x) z) 3))
1.0ms
y
@-inf
(cbrt.f64 (pow.f64 (*.f64 (-.f64 y x) z) 3))
1.0ms
y
@0
(pow.f64 (*.f64 (-.f64 y x) z) 3)
1.0ms
z
@0
(pow.f64 (*.f64 (-.f64 y x) z) 3)
1.0ms
z
@-inf
(pow.f64 (*.f64 (-.f64 y x) z) 3)

rewrite83.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
905×pow1_binary64
848×add-log-exp_binary64
848×log1p-expm1-u_binary64
848×expm1-log1p-u_binary64
826×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify102.0ms (1.5%)

Algorithm
egg-herbie
Rules
766×fma-def_binary64
688×associate-+r+_binary64
321×associate-+l-_binary64
307×distribute-rgt-neg-in_binary64
258×distribute-lft-neg-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0831389
12901304
210631140
340871064
Stop Event
node limit
Counts
132 → 99
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) z))) (*.f64 (cbrt.f64 -1) (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) z))) (*.f64 (cbrt.f64 -1) (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) z))) (*.f64 (cbrt.f64 -1) (*.f64 z x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (-.f64 y x) z)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (-.f64 y x) z)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (-.f64 y x) z)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (-.f64 y x) z)))
(*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (*.f64 (pow.f64 z 3) (pow.f64 x 2))) y) (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))))
(+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (*.f64 (pow.f64 z 3) (pow.f64 x 2))) y) (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2))))
(+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (*.f64 (pow.f64 z 3) (pow.f64 x 2))) y) (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2)) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))))
(*.f64 (pow.f64 y 3) (pow.f64 z 3))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2)) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (*.f64 (pow.f64 z 3) (pow.f64 x 2))) y) (+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2)) (*.f64 (pow.f64 y 3) (pow.f64 z 3))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (*.f64 (pow.f64 z 3) (pow.f64 x 2))) y) (+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2)) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))))
(*.f64 (pow.f64 y 3) (pow.f64 z 3))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2)) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2)) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (*.f64 -2 (*.f64 (pow.f64 z 3) (pow.f64 x 2))))))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2)) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (*.f64 -2 (*.f64 (pow.f64 z 3) (pow.f64 x 2)))))))))
(*.f64 (pow.f64 y 3) (pow.f64 z 3))
(+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 y 2) (pow.f64 z 3))) (*.f64 -1 (*.f64 (pow.f64 y 2) (pow.f64 z 3)))) x) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 y 2) (pow.f64 z 3))) (*.f64 -1 (*.f64 (pow.f64 y 2) (pow.f64 z 3)))) x) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 y 2) (pow.f64 z 3))) (*.f64 -1 (*.f64 (pow.f64 y 2) (pow.f64 z 3)))) x) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2)))))
(*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 y 2) (pow.f64 z 3))) (*.f64 -1 (*.f64 (pow.f64 y 2) (pow.f64 z 3)))) x) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 y 2) (pow.f64 z 3))) (*.f64 -1 (*.f64 (pow.f64 y 2) (pow.f64 z 3)))) x) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2)))))
(*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 y 2) (pow.f64 z 3))) (*.f64 (pow.f64 y 2) (pow.f64 z 3))) x)) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 y 2) (pow.f64 z 3))) (*.f64 (pow.f64 y 2) (pow.f64 z 3))) x)) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2)))))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
Outputs
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) z)))
(neg.f64 (*.f64 y (*.f64 z (cbrt.f64 -1))))
(*.f64 y (neg.f64 (*.f64 z (cbrt.f64 -1))))
(*.f64 z (*.f64 y (neg.f64 (cbrt.f64 -1))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) z))) (*.f64 (cbrt.f64 -1) (*.f64 z x)))
(fma.f64 -1 (*.f64 y (*.f64 z (cbrt.f64 -1))) (*.f64 (*.f64 z x) (cbrt.f64 -1)))
(-.f64 (*.f64 z (*.f64 x (cbrt.f64 -1))) (*.f64 y (*.f64 z (cbrt.f64 -1))))
(*.f64 (*.f64 z (cbrt.f64 -1)) (-.f64 x y))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) z))) (*.f64 (cbrt.f64 -1) (*.f64 z x)))
(fma.f64 -1 (*.f64 y (*.f64 z (cbrt.f64 -1))) (*.f64 (*.f64 z x) (cbrt.f64 -1)))
(-.f64 (*.f64 z (*.f64 x (cbrt.f64 -1))) (*.f64 y (*.f64 z (cbrt.f64 -1))))
(*.f64 (*.f64 z (cbrt.f64 -1)) (-.f64 x y))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) z))) (*.f64 (cbrt.f64 -1) (*.f64 z x)))
(fma.f64 -1 (*.f64 y (*.f64 z (cbrt.f64 -1))) (*.f64 (*.f64 z x) (cbrt.f64 -1)))
(-.f64 (*.f64 z (*.f64 x (cbrt.f64 -1))) (*.f64 y (*.f64 z (cbrt.f64 -1))))
(*.f64 (*.f64 z (cbrt.f64 -1)) (-.f64 x y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(*.f64 (-.f64 y x) z)
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(*.f64 (-.f64 y x) z)
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(*.f64 (-.f64 y x) z)
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(*.f64 (-.f64 y x) z)
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(*.f64 (-.f64 y x) z)
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(*.f64 (-.f64 y x) z)
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(*.f64 (-.f64 y x) z)
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(*.f64 (-.f64 y x) z)
(fma.f64 y z (neg.f64 (*.f64 z x)))
(*.f64 z (-.f64 y x))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (-.f64 y x) z)))
(fma.f64 -1 (*.f64 y (*.f64 z (cbrt.f64 -1))) (*.f64 (*.f64 z x) (cbrt.f64 -1)))
(-.f64 (*.f64 z (*.f64 x (cbrt.f64 -1))) (*.f64 y (*.f64 z (cbrt.f64 -1))))
(*.f64 (*.f64 z (cbrt.f64 -1)) (-.f64 x y))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (-.f64 y x) z)))
(fma.f64 -1 (*.f64 y (*.f64 z (cbrt.f64 -1))) (*.f64 (*.f64 z x) (cbrt.f64 -1)))
(-.f64 (*.f64 z (*.f64 x (cbrt.f64 -1))) (*.f64 y (*.f64 z (cbrt.f64 -1))))
(*.f64 (*.f64 z (cbrt.f64 -1)) (-.f64 x y))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (-.f64 y x) z)))
(fma.f64 -1 (*.f64 y (*.f64 z (cbrt.f64 -1))) (*.f64 (*.f64 z x) (cbrt.f64 -1)))
(-.f64 (*.f64 z (*.f64 x (cbrt.f64 -1))) (*.f64 y (*.f64 z (cbrt.f64 -1))))
(*.f64 (*.f64 z (cbrt.f64 -1)) (-.f64 x y))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (-.f64 y x) z)))
(fma.f64 -1 (*.f64 y (*.f64 z (cbrt.f64 -1))) (*.f64 (*.f64 z x) (cbrt.f64 -1)))
(-.f64 (*.f64 z (*.f64 x (cbrt.f64 -1))) (*.f64 y (*.f64 z (cbrt.f64 -1))))
(*.f64 (*.f64 z (cbrt.f64 -1)) (-.f64 x y))
(*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(neg.f64 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(*.f64 (pow.f64 x 3) (neg.f64 (pow.f64 z 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (*.f64 (pow.f64 z 3) (pow.f64 x 2))) y) (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))))
(fma.f64 (*.f64 3 (*.f64 (pow.f64 z 3) (*.f64 x x))) y (neg.f64 (*.f64 (pow.f64 z 3) (pow.f64 x 3))))
(-.f64 (*.f64 y (*.f64 3 (*.f64 x (*.f64 x (pow.f64 z 3))))) (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(*.f64 (*.f64 x (*.f64 x (pow.f64 z 3))) (-.f64 (*.f64 y 3) x))
(*.f64 (*.f64 x x) (*.f64 (pow.f64 z 3) (-.f64 (*.f64 y 3) x)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (*.f64 (pow.f64 z 3) (pow.f64 x 2))) y) (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2))))
(fma.f64 (*.f64 3 (*.f64 (pow.f64 z 3) (*.f64 x x))) y (fma.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)) (*.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y))))
(fma.f64 y (*.f64 3 (*.f64 x (*.f64 x (pow.f64 z 3)))) (-.f64 (*.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y)) (*.f64 (pow.f64 z 3) (pow.f64 x 3))))
(fma.f64 (*.f64 x (pow.f64 z 3)) (*.f64 (*.f64 y y) -3) (*.f64 (*.f64 x (*.f64 x (pow.f64 z 3))) (-.f64 (*.f64 y 3) x)))
(fma.f64 (*.f64 x (pow.f64 z 3)) (*.f64 y (*.f64 y -3)) (*.f64 (*.f64 x x) (*.f64 (pow.f64 z 3) (-.f64 (*.f64 y 3) x))))
(+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (*.f64 (pow.f64 z 3) (pow.f64 x 2))) y) (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2)) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))))
(fma.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)) (fma.f64 (*.f64 3 (*.f64 (pow.f64 z 3) (*.f64 x x))) y (fma.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y) (*.f64 (pow.f64 z 3) (pow.f64 y 3)))))
(fma.f64 y (*.f64 3 (*.f64 x (*.f64 x (pow.f64 z 3)))) (-.f64 (fma.f64 (pow.f64 z 3) (pow.f64 y 3) (*.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y))) (*.f64 (pow.f64 z 3) (pow.f64 x 3))))
(+.f64 (*.f64 (*.f64 x (*.f64 x (pow.f64 z 3))) (-.f64 (*.f64 y 3) x)) (*.f64 (*.f64 y y) (+.f64 (*.f64 (pow.f64 z 3) (*.f64 x -3)) (*.f64 y (pow.f64 z 3)))))
(+.f64 (*.f64 y (*.f64 y (*.f64 (pow.f64 z 3) (+.f64 y (*.f64 x -3))))) (*.f64 (*.f64 x x) (*.f64 (pow.f64 z 3) (-.f64 (*.f64 y 3) x))))
(*.f64 (pow.f64 y 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 y 3))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2)) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(fma.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y) (*.f64 (pow.f64 z 3) (pow.f64 y 3)))
(fma.f64 (pow.f64 z 3) (pow.f64 y 3) (*.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y)))
(*.f64 (*.f64 y y) (+.f64 (*.f64 (pow.f64 z 3) (*.f64 x -3)) (*.f64 y (pow.f64 z 3))))
(*.f64 y (*.f64 y (*.f64 (pow.f64 z 3) (+.f64 y (*.f64 x -3)))))
(+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (*.f64 (pow.f64 z 3) (pow.f64 x 2))) y) (+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2)) (*.f64 (pow.f64 y 3) (pow.f64 z 3))))
(fma.f64 (*.f64 3 (*.f64 (pow.f64 z 3) (*.f64 x x))) y (fma.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y) (*.f64 (pow.f64 z 3) (pow.f64 y 3))))
(fma.f64 y (*.f64 3 (*.f64 x (*.f64 x (pow.f64 z 3)))) (fma.f64 (pow.f64 z 3) (pow.f64 y 3) (*.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y))))
(fma.f64 y (*.f64 (pow.f64 z 3) (*.f64 3 (*.f64 x x))) (*.f64 (*.f64 y y) (+.f64 (*.f64 (pow.f64 z 3) (*.f64 x -3)) (*.f64 y (pow.f64 z 3)))))
(*.f64 y (-.f64 (*.f64 y (*.f64 (pow.f64 z 3) (+.f64 (*.f64 x -3) y))) (*.f64 x (*.f64 x (*.f64 (pow.f64 z 3) -3)))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (*.f64 (pow.f64 z 3) (pow.f64 x 2))) y) (+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2)) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))))
(fma.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)) (fma.f64 (*.f64 3 (*.f64 (pow.f64 z 3) (*.f64 x x))) y (fma.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y) (*.f64 (pow.f64 z 3) (pow.f64 y 3)))))
(fma.f64 y (*.f64 3 (*.f64 x (*.f64 x (pow.f64 z 3)))) (-.f64 (fma.f64 (pow.f64 z 3) (pow.f64 y 3) (*.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y))) (*.f64 (pow.f64 z 3) (pow.f64 x 3))))
(+.f64 (*.f64 (*.f64 x (*.f64 x (pow.f64 z 3))) (-.f64 (*.f64 y 3) x)) (*.f64 (*.f64 y y) (+.f64 (*.f64 (pow.f64 z 3) (*.f64 x -3)) (*.f64 y (pow.f64 z 3)))))
(+.f64 (*.f64 y (*.f64 y (*.f64 (pow.f64 z 3) (+.f64 y (*.f64 x -3))))) (*.f64 (*.f64 x x) (*.f64 (pow.f64 z 3) (-.f64 (*.f64 y 3) x))))
(*.f64 (pow.f64 y 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 y 3))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2)) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(fma.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y) (*.f64 (pow.f64 z 3) (pow.f64 y 3)))
(fma.f64 (pow.f64 z 3) (pow.f64 y 3) (*.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y)))
(*.f64 (*.f64 y y) (+.f64 (*.f64 (pow.f64 z 3) (*.f64 x -3)) (*.f64 y (pow.f64 z 3))))
(*.f64 y (*.f64 y (*.f64 (pow.f64 z 3) (+.f64 y (*.f64 x -3)))))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2)) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (*.f64 -2 (*.f64 (pow.f64 z 3) (pow.f64 x 2))))))))
(fma.f64 (*.f64 3 (*.f64 (pow.f64 z 3) (*.f64 x x))) y (fma.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y) (*.f64 (pow.f64 z 3) (pow.f64 y 3))))
(fma.f64 y (*.f64 3 (*.f64 x (*.f64 x (pow.f64 z 3)))) (fma.f64 (pow.f64 z 3) (pow.f64 y 3) (*.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y))))
(fma.f64 y (*.f64 (pow.f64 z 3) (*.f64 3 (*.f64 x x))) (*.f64 (*.f64 y y) (+.f64 (*.f64 (pow.f64 z 3) (*.f64 x -3)) (*.f64 y (pow.f64 z 3)))))
(*.f64 y (-.f64 (*.f64 y (*.f64 (pow.f64 z 3) (+.f64 (*.f64 x -3) y))) (*.f64 x (*.f64 x (*.f64 (pow.f64 z 3) -3)))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (*.f64 -2 (*.f64 (pow.f64 z 3) x))) (pow.f64 y 2)) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (*.f64 -2 (*.f64 (pow.f64 z 3) (pow.f64 x 2)))))))))
(fma.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)) (fma.f64 (*.f64 3 (*.f64 (pow.f64 z 3) (*.f64 x x))) y (fma.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y) (*.f64 (pow.f64 z 3) (pow.f64 y 3)))))
(fma.f64 y (*.f64 3 (*.f64 x (*.f64 x (pow.f64 z 3)))) (-.f64 (fma.f64 (pow.f64 z 3) (pow.f64 y 3) (*.f64 (*.f64 (*.f64 x (pow.f64 z 3)) -3) (*.f64 y y))) (*.f64 (pow.f64 z 3) (pow.f64 x 3))))
(+.f64 (*.f64 (*.f64 x (*.f64 x (pow.f64 z 3))) (-.f64 (*.f64 y 3) x)) (*.f64 (*.f64 y y) (+.f64 (*.f64 (pow.f64 z 3) (*.f64 x -3)) (*.f64 y (pow.f64 z 3)))))
(+.f64 (*.f64 y (*.f64 y (*.f64 (pow.f64 z 3) (+.f64 y (*.f64 x -3))))) (*.f64 (*.f64 x x) (*.f64 (pow.f64 z 3) (-.f64 (*.f64 y 3) x))))
(*.f64 (pow.f64 y 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 y 3))
(+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 y 2) (pow.f64 z 3))) (*.f64 -1 (*.f64 (pow.f64 y 2) (pow.f64 z 3)))) x) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(fma.f64 (*.f64 (*.f64 (pow.f64 z 3) (*.f64 y y)) -3) x (*.f64 (pow.f64 z 3) (pow.f64 y 3)))
(fma.f64 x (*.f64 (*.f64 y y) (*.f64 (pow.f64 z 3) -3)) (*.f64 (pow.f64 z 3) (pow.f64 y 3)))
(*.f64 (*.f64 y (*.f64 y (pow.f64 z 3))) (+.f64 y (*.f64 x -3)))
(+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 y 2) (pow.f64 z 3))) (*.f64 -1 (*.f64 (pow.f64 y 2) (pow.f64 z 3)))) x) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2))))
(fma.f64 (pow.f64 y 3) (pow.f64 z 3) (fma.f64 (*.f64 (*.f64 (pow.f64 z 3) (*.f64 y y)) -3) x (*.f64 (*.f64 x x) (*.f64 3 (*.f64 y (pow.f64 z 3))))))
(fma.f64 x (*.f64 (*.f64 y y) (*.f64 (pow.f64 z 3) -3)) (fma.f64 (pow.f64 z 3) (pow.f64 y 3) (*.f64 x (*.f64 x (*.f64 (*.f64 3 y) (pow.f64 z 3))))))
(fma.f64 x (*.f64 x (*.f64 y (*.f64 3 (pow.f64 z 3)))) (*.f64 (*.f64 y (*.f64 y (pow.f64 z 3))) (+.f64 y (*.f64 x -3))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 y 2) (pow.f64 z 3))) (*.f64 -1 (*.f64 (pow.f64 y 2) (pow.f64 z 3)))) x) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2)))))
(fma.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)) (fma.f64 (pow.f64 y 3) (pow.f64 z 3) (fma.f64 (*.f64 (*.f64 (pow.f64 z 3) (*.f64 y y)) -3) x (*.f64 (*.f64 x x) (*.f64 3 (*.f64 y (pow.f64 z 3)))))))
(-.f64 (fma.f64 x (*.f64 (*.f64 y y) (*.f64 (pow.f64 z 3) -3)) (fma.f64 (pow.f64 z 3) (pow.f64 y 3) (*.f64 x (*.f64 x (*.f64 (*.f64 3 y) (pow.f64 z 3)))))) (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(+.f64 (*.f64 (*.f64 y (*.f64 y (pow.f64 z 3))) (+.f64 y (*.f64 x -3))) (*.f64 (*.f64 x x) (-.f64 (*.f64 y (*.f64 3 (pow.f64 z 3))) (*.f64 x (pow.f64 z 3)))))
(+.f64 (*.f64 (*.f64 y (*.f64 y (pow.f64 z 3))) (+.f64 y (*.f64 x -3))) (*.f64 (*.f64 x x) (*.f64 (pow.f64 z 3) (-.f64 (*.f64 y 3) x))))
(*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(neg.f64 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(*.f64 (pow.f64 x 3) (neg.f64 (pow.f64 z 3)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2)))
(fma.f64 (*.f64 3 (*.f64 (pow.f64 z 3) (*.f64 x x))) y (neg.f64 (*.f64 (pow.f64 z 3) (pow.f64 x 3))))
(-.f64 (*.f64 y (*.f64 3 (*.f64 x (*.f64 x (pow.f64 z 3))))) (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(*.f64 (*.f64 x (*.f64 x (pow.f64 z 3))) (-.f64 (*.f64 y 3) x))
(*.f64 (*.f64 x x) (*.f64 (pow.f64 z 3) (-.f64 (*.f64 y 3) x)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 y 2) (pow.f64 z 3))) (*.f64 -1 (*.f64 (pow.f64 y 2) (pow.f64 z 3)))) x) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2))))
(fma.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)) (fma.f64 (*.f64 (*.f64 (pow.f64 z 3) (*.f64 y y)) -3) x (*.f64 (*.f64 x x) (*.f64 3 (*.f64 y (pow.f64 z 3))))))
(-.f64 (fma.f64 x (*.f64 (*.f64 y y) (*.f64 (pow.f64 z 3) -3)) (*.f64 x (*.f64 x (*.f64 (*.f64 3 y) (pow.f64 z 3))))) (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(fma.f64 x (*.f64 (pow.f64 z 3) (*.f64 (*.f64 y y) -3)) (*.f64 (*.f64 x x) (-.f64 (*.f64 y (*.f64 3 (pow.f64 z 3))) (*.f64 x (pow.f64 z 3)))))
(*.f64 x (+.f64 (*.f64 (pow.f64 z 3) (*.f64 y (*.f64 y -3))) (*.f64 x (*.f64 (pow.f64 z 3) (-.f64 (*.f64 y 3) x)))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 y 2) (pow.f64 z 3))) (*.f64 -1 (*.f64 (pow.f64 y 2) (pow.f64 z 3)))) x) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2)))))
(fma.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)) (fma.f64 (pow.f64 y 3) (pow.f64 z 3) (fma.f64 (*.f64 (*.f64 (pow.f64 z 3) (*.f64 y y)) -3) x (*.f64 (*.f64 x x) (*.f64 3 (*.f64 y (pow.f64 z 3)))))))
(-.f64 (fma.f64 x (*.f64 (*.f64 y y) (*.f64 (pow.f64 z 3) -3)) (fma.f64 (pow.f64 z 3) (pow.f64 y 3) (*.f64 x (*.f64 x (*.f64 (*.f64 3 y) (pow.f64 z 3)))))) (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(+.f64 (*.f64 (*.f64 y (*.f64 y (pow.f64 z 3))) (+.f64 y (*.f64 x -3))) (*.f64 (*.f64 x x) (-.f64 (*.f64 y (*.f64 3 (pow.f64 z 3))) (*.f64 x (pow.f64 z 3)))))
(+.f64 (*.f64 (*.f64 y (*.f64 y (pow.f64 z 3))) (+.f64 y (*.f64 x -3))) (*.f64 (*.f64 x x) (*.f64 (pow.f64 z 3) (-.f64 (*.f64 y 3) x))))
(*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(neg.f64 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(*.f64 (pow.f64 x 3) (neg.f64 (pow.f64 z 3)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2)))
(fma.f64 (*.f64 3 (*.f64 (pow.f64 z 3) (*.f64 x x))) y (neg.f64 (*.f64 (pow.f64 z 3) (pow.f64 x 3))))
(-.f64 (*.f64 y (*.f64 3 (*.f64 x (*.f64 x (pow.f64 z 3))))) (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(*.f64 (*.f64 x (*.f64 x (pow.f64 z 3))) (-.f64 (*.f64 y 3) x))
(*.f64 (*.f64 x x) (*.f64 (pow.f64 z 3) (-.f64 (*.f64 y 3) x)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 y 2) (pow.f64 z 3))) (*.f64 (pow.f64 y 2) (pow.f64 z 3))) x)) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2))))
(fma.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)) (fma.f64 (*.f64 (*.f64 (pow.f64 z 3) (*.f64 y y)) -3) x (*.f64 (*.f64 x x) (*.f64 3 (*.f64 y (pow.f64 z 3))))))
(-.f64 (fma.f64 x (*.f64 (*.f64 y y) (*.f64 (pow.f64 z 3) -3)) (*.f64 x (*.f64 x (*.f64 (*.f64 3 y) (pow.f64 z 3))))) (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(fma.f64 x (*.f64 (pow.f64 z 3) (*.f64 (*.f64 y y) -3)) (*.f64 (*.f64 x x) (-.f64 (*.f64 y (*.f64 3 (pow.f64 z 3))) (*.f64 x (pow.f64 z 3)))))
(*.f64 x (+.f64 (*.f64 (pow.f64 z 3) (*.f64 y (*.f64 y -3))) (*.f64 x (*.f64 (pow.f64 z 3) (-.f64 (*.f64 y 3) x)))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 y 2) (pow.f64 z 3))) (*.f64 (pow.f64 y 2) (pow.f64 z 3))) x)) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 (+.f64 (*.f64 y (pow.f64 z 3)) (*.f64 2 (*.f64 y (pow.f64 z 3)))) (pow.f64 x 2)))))
(fma.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)) (fma.f64 (pow.f64 y 3) (pow.f64 z 3) (fma.f64 (*.f64 (*.f64 (pow.f64 z 3) (*.f64 y y)) -3) x (*.f64 (*.f64 x x) (*.f64 3 (*.f64 y (pow.f64 z 3)))))))
(-.f64 (fma.f64 x (*.f64 (*.f64 y y) (*.f64 (pow.f64 z 3) -3)) (fma.f64 (pow.f64 z 3) (pow.f64 y 3) (*.f64 x (*.f64 x (*.f64 (*.f64 3 y) (pow.f64 z 3)))))) (*.f64 (pow.f64 z 3) (pow.f64 x 3)))
(+.f64 (*.f64 (*.f64 y (*.f64 y (pow.f64 z 3))) (+.f64 y (*.f64 x -3))) (*.f64 (*.f64 x x) (-.f64 (*.f64 y (*.f64 3 (pow.f64 z 3))) (*.f64 x (pow.f64 z 3)))))
(+.f64 (*.f64 (*.f64 y (*.f64 y (pow.f64 z 3))) (+.f64 y (*.f64 x -3))) (*.f64 (*.f64 x x) (*.f64 (pow.f64 z 3) (-.f64 (*.f64 y 3) x))))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))
(*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))
(*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))

eval101.0ms (1.5%)

Compiler

Compiled 4652 to 1864 computations (59.9% saved)

prune164.0ms (2.5%)

Pruning

11 alts after pruning (2 fresh and 9 done)

PrunedKeptTotal
New2982300
Fresh101
Picked011
Done189
Total30011311
Error
0b
Counts
311 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
22.5b
(*.f64 (-.f64 1 z) x)
29.5b
(*.f64 (-.f64 y x) z)
34.1b
x
12.3b
(fma.f64 z y x)
41.0b
(*.f64 z y)
29.5b
(-.f64 (*.f64 z y) (*.f64 z x))
12.3b
(+.f64 x (*.f64 z y))
51.0b
(*.f64 z (neg.f64 x))
0.0b
(+.f64 x (*.f64 (-.f64 y x) z))
22.5b
(-.f64 x (*.f64 z x))
49.1b
(cbrt.f64 (pow.f64 (*.f64 (-.f64 y x) z) 3))
Compiler

Compiled 87 to 57 computations (34.5% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 z y) (*.f64 z x))
Compiler

Compiled 19 to 6 computations (68.4% saved)

series5.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
z
@0
(-.f64 (*.f64 z y) (*.f64 z x))
1.0ms
z
@-inf
(-.f64 (*.f64 z y) (*.f64 z x))
1.0ms
x
@-inf
(-.f64 (*.f64 z y) (*.f64 z x))
1.0ms
z
@inf
(-.f64 (*.f64 z y) (*.f64 z x))
1.0ms
y
@0
(-.f64 (*.f64 z y) (*.f64 z x))

rewrite115.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
902×pow1_binary64
836×add-log-exp_binary64
836×log1p-expm1-u_binary64
836×expm1-log1p-u_binary64
819×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify50.0ms (0.8%)

Algorithm
egg-herbie
Rules
118×fma-def_binary64
80×fma-neg_binary64
34×unsub-neg_binary64
28×associate-*l*_binary64
28×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
016240
143240
297240
3246240
4414240
5533240
6602240
7607240
Stop Event
saturated
Counts
89 → 58
Calls
Call 1
Inputs
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 y) (*.f64 -1 x))))
(*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 y) (*.f64 -1 x))))
(*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 y) (*.f64 -1 x))))
(*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 y) (*.f64 -1 x))))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
Outputs
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) z)
(*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 y) (*.f64 -1 x))))
(*.f64 (-.f64 y x) z)
(*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 y) (*.f64 -1 x))))
(*.f64 (-.f64 y x) z)
(*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 y) (*.f64 -1 x))))
(*.f64 (-.f64 y x) z)
(*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 y) (*.f64 -1 x))))
(*.f64 (-.f64 y x) z)
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y x) z)

eval78.0ms (1.2%)

Compiler

Compiled 849 to 230 computations (72.9% saved)

prune27.0ms (0.4%)

Pruning

11 alts after pruning (2 fresh and 9 done)

PrunedKeptTotal
New57158
Fresh011
Picked011
Done189
Total581169
Error
0b
Counts
69 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
22.5b
(*.f64 (-.f64 1 z) x)
29.5b
(*.f64 (-.f64 y x) z)
34.1b
x
12.3b
(fma.f64 z y x)
41.0b
(*.f64 z y)
29.5b
(-.f64 (*.f64 z y) (*.f64 z x))
12.3b
(+.f64 x (*.f64 z y))
51.0b
(*.f64 z (neg.f64 x))
0.0b
(+.f64 x (*.f64 (-.f64 y x) z))
22.5b
(-.f64 x (*.f64 z x))
29.5b
(fma.f64 z y (*.f64 x (neg.f64 z)))
Compiler

Compiled 86 to 55 computations (36% saved)

regimes96.0ms (1.5%)

Counts
19 → 1
Calls
Call 1
Inputs
x
x
x
(*.f64 z y)
(*.f64 z (neg.f64 x))
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 y x) z)
(-.f64 x (*.f64 z x))
(+.f64 x (*.f64 z y))
(-.f64 (*.f64 z y) (*.f64 z x))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(+.f64 x (*.f64 (-.f64 y x) z))
(+.f64 (*.f64 z y) (*.f64 z (neg.f64 x)))
(+.f64 x (+.f64 (*.f64 z y) (*.f64 z (neg.f64 x))))
(fma.f64 z y x)
(fma.f64 (-.f64 y x) z x)
(fma.f64 z y (*.f64 x (neg.f64 z)))
(cbrt.f64 (pow.f64 (*.f64 (-.f64 y x) z) 3))
(+.f64 x (cbrt.f64 (pow.f64 (*.f64 (-.f64 y x) z) 3)))
Outputs
(fma.f64 (-.f64 y x) z x)
Calls

4 calls:

24.0ms
x
21.0ms
(+.f64 x (*.f64 (-.f64 y x) z))
21.0ms
z
20.0ms
y
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(+.f64 x (*.f64 (-.f64 y x) z))
Compiler

Compiled 129 to 50 computations (61.2% saved)

regimes78.0ms (1.2%)

Counts
15 → 1
Calls
Call 1
Inputs
x
x
x
(*.f64 z y)
(*.f64 z (neg.f64 x))
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 y x) z)
(-.f64 x (*.f64 z x))
(+.f64 x (*.f64 z y))
(-.f64 (*.f64 z y) (*.f64 z x))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(+.f64 x (*.f64 (-.f64 y x) z))
(+.f64 (*.f64 z y) (*.f64 z (neg.f64 x)))
(+.f64 x (+.f64 (*.f64 z y) (*.f64 z (neg.f64 x))))
(fma.f64 z y x)
Outputs
(+.f64 x (*.f64 (-.f64 y x) z))
Calls

4 calls:

18.0ms
x
18.0ms
y
17.0ms
z
17.0ms
(+.f64 x (*.f64 (-.f64 y x) z))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(+.f64 x (*.f64 (-.f64 y x) z))
Compiler

Compiled 98 to 39 computations (60.2% saved)

regimes216.0ms (3.3%)

Counts
11 → 3
Calls
Call 1
Inputs
x
x
x
(*.f64 z y)
(*.f64 z (neg.f64 x))
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 y x) z)
(-.f64 x (*.f64 z x))
(+.f64 x (*.f64 z y))
(-.f64 (*.f64 z y) (*.f64 z x))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
Outputs
(*.f64 (-.f64 y x) z)
(+.f64 x (*.f64 z y))
(*.f64 (-.f64 y x) z)
Calls

3 calls:

134.0ms
x
39.0ms
y
39.0ms
z
Results
ErrorSegmentsBranch
6.5b6x
7.5b3y
1.0b3z
Compiler

Compiled 59 to 29 computations (50.8% saved)

bsearch102.0ms (1.6%)

Algorithm
binary-search
Steps
TimeLeftRight
28.0ms
3.4403033977396004e-8
39.74042350152246
74.0ms
-14518.540134787778
-1.9783655224905137e-7
Compiler

Compiled 16 to 11 computations (31.3% saved)

regimes273.0ms (4.2%)

Counts
8 → 7
Calls
Call 1
Inputs
x
x
x
(*.f64 z y)
(*.f64 z (neg.f64 x))
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 y x) z)
(-.f64 x (*.f64 z x))
Outputs
(-.f64 x (*.f64 z x))
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 1 z) x)
Calls

3 calls:

153.0ms
y
86.0ms
x
32.0ms
z
Results
ErrorSegmentsBranch
9.3b7x
12.8b9y
11.7b3z
Compiler

Compiled 40 to 22 computations (45% saved)

bsearch115.0ms (1.7%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
3.137708040318958e-128
4.5207833415235786e-126
21.0ms
1.0200088596468365e-174
5.136525506323083e-174
17.0ms
2.022669151145139e-213
8.848095209693189e-210
21.0ms
-1.1338017333462276e-97
-3.6356248578817137e-100
22.0ms
-6.14050355646004e-39
-5.948069641087972e-43
17.0ms
-2.7610344307649485e+75
-1.4234162395500477e+73
Compiler

Compiled 16 to 11 computations (31.3% saved)

regimes107.0ms (1.6%)

Counts
7 → 7
Calls
Call 1
Inputs
x
x
x
(*.f64 z y)
(*.f64 z (neg.f64 x))
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 y x) z)
Outputs
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 y x) z)
(*.f64 (-.f64 1 z) x)
Calls

3 calls:

50.0ms
y
37.0ms
x
18.0ms
z
Results
ErrorSegmentsBranch
9.4b7x
12.8b9y
11.7b3z
Compiler

Compiled 35 to 20 computations (42.9% saved)

bsearch126.0ms (1.9%)

Algorithm
binary-search
Steps
TimeLeftRight
24.0ms
3.137708040318958e-128
4.5207833415235786e-126
17.0ms
1.0200088596468365e-174
5.136525506323083e-174
24.0ms
2.022669151145139e-213
8.848095209693189e-210
17.0ms
-1.1338017333462276e-97
-3.6356248578817137e-100
21.0ms
-6.14050355646004e-39
-5.948069641087972e-43
23.0ms
-2.7610344307649485e+75
-1.4234162395500477e+73
Compiler

Compiled 16 to 11 computations (31.3% saved)

regimes77.0ms (1.2%)

Counts
6 → 5
Calls
Call 1
Inputs
x
x
x
(*.f64 z y)
(*.f64 z (neg.f64 x))
(*.f64 (-.f64 1 z) x)
Outputs
(*.f64 (-.f64 1 z) x)
(*.f64 z y)
(*.f64 (-.f64 1 z) x)
(*.f64 z y)
(*.f64 (-.f64 1 z) x)
Calls

3 calls:

28.0ms
y
25.0ms
z
23.0ms
x
Results
ErrorSegmentsBranch
12.1b5x
15.9b5y
20.1b4z
Compiler

Compiled 30 to 18 computations (40% saved)

bsearch72.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
3.137708040318958e-128
4.5207833415235786e-126
18.0ms
2.106107471649781e-152
3.914574361692486e-147
18.0ms
1.119910048825879e-219
6.707009555948401e-218
18.0ms
-1.1338017333462276e-97
-3.6356248578817137e-100
Compiler

Compiled 16 to 11 computations (31.3% saved)

regimes133.0ms (2%)

Counts
5 → 5
Calls
Call 1
Inputs
x
x
x
(*.f64 z y)
(*.f64 z (neg.f64 x))
Outputs
(*.f64 z (neg.f64 x))
x
(*.f64 z y)
(*.f64 z (neg.f64 x))
(*.f64 z y)
Calls

3 calls:

60.0ms
y
48.0ms
x
23.0ms
z
Results
ErrorSegmentsBranch
21.2b7x
25.7b7y
20.7b5z
Compiler

Compiled 25 to 15 computations (40% saved)

bsearch113.0ms (1.7%)

Algorithm
binary-search
Steps
TimeLeftRight
41.0ms
9.990315517203596e+104
5.539488708408122e+105
35.0ms
249170112585.27737
3.9290823307077834e+34
18.0ms
1.263832731022775e-26
2.0694753977958858e-20
18.0ms
-14518.540134787778
-1.9783655224905137e-7
Compiler

Compiled 121 to 88 computations (27.3% saved)

regimes74.0ms (1.1%)

Counts
4 → 7
Calls
Call 1
Inputs
x
x
x
(*.f64 z y)
Outputs
x
(*.f64 z y)
x
(*.f64 z y)
x
(*.f64 z y)
x
Calls

3 calls:

30.0ms
x
29.0ms
y
13.0ms
z
Results
ErrorSegmentsBranch
21.3b7x
25.7b7y
23.6b3z
Compiler

Compiled 21 to 13 computations (38.1% saved)

bsearch109.0ms (1.7%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
3.137708040318958e-128
4.5207833415235786e-126
18.0ms
1.0200088596468365e-174
5.136525506323083e-174
18.0ms
1.119910048825879e-219
6.707009555948401e-218
17.0ms
-1.1338017333462276e-97
-3.6356248578817137e-100
19.0ms
-6.14050355646004e-39
-5.948069641087972e-43
18.0ms
-2.7610344307649485e+75
-1.4234162395500477e+73
Compiler

Compiled 16 to 11 computations (31.3% saved)

regimes12.0ms (0.2%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0.0b (-0%)

Counts
3 → 1
Calls
Call 1
Inputs
x
x
x
Outputs
x
Calls

3 calls:

4.0ms
y
4.0ms
x
4.0ms
z
Results
ErrorSegmentsBranch
34.1b1x
34.1b1y
34.1b1z
Compiler

Compiled 18 to 12 computations (33.3% saved)

simplify22.0ms (0.3%)

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
067372
187372
297372
3102372
4104372
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(fma.f64 (-.f64 y x) z x)
(+.f64 x (*.f64 (-.f64 y x) z))
(if (<=.f64 z -997706481033231/68719476736) (*.f64 (-.f64 y x) z) (if (<=.f64 z 5198839506044175/151115727451828646838272) (+.f64 x (*.f64 z y)) (*.f64 (-.f64 y x) z)))
(if (<=.f64 x -2761034430764948465481251163887500856832104562589761249854809553249610235904) (-.f64 x (*.f64 z x)) (if (<=.f64 x -294071697467067/47890485652059026823698344598447161988085597568237568) (*.f64 (-.f64 y x) z) (if (<=.f64 x -4467406292279086080/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816) (*.f64 (-.f64 1 z) x) (if (<=.f64 x 3140230451891345408/1552518092300708935148979488462502555256886017116696611139052038026050952686376886330878408828646477950487730697131073206171580044114814391444287275041181139204454976020849905550265285631598444825262999193716468750892846853816057856) (*.f64 (-.f64 y x) z) (if (<=.f64 x 4653729851587223552/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) (*.f64 (-.f64 1 z) x) (if (<=.f64 x 97951355261805408/3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290176) (*.f64 (-.f64 y x) z) (*.f64 (-.f64 1 z) x)))))))
(if (<=.f64 x -2761034430764948465481251163887500856832104562589761249854809553249610235904) (*.f64 (-.f64 1 z) x) (if (<=.f64 x -294071697467067/47890485652059026823698344598447161988085597568237568) (*.f64 (-.f64 y x) z) (if (<=.f64 x -4467406292279086080/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816) (*.f64 (-.f64 1 z) x) (if (<=.f64 x 3140230451891345408/1552518092300708935148979488462502555256886017116696611139052038026050952686376886330878408828646477950487730697131073206171580044114814391444287275041181139204454976020849905550265285631598444825262999193716468750892846853816057856) (*.f64 (-.f64 y x) z) (if (<=.f64 x 4653729851587223552/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) (*.f64 (-.f64 1 z) x) (if (<=.f64 x 97951355261805408/3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290176) (*.f64 (-.f64 y x) z) (*.f64 (-.f64 1 z) x)))))))
(if (<=.f64 x -4467406292279086080/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816) (*.f64 (-.f64 1 z) x) (if (<=.f64 x 3560817894505569/3179557053031851899185109992371205233166102563054994659612778573877352351101699863205638981281067986842598872467724437926239395930347139873677900339284338973090723790890700606566943304973513615002138622348731328001828550356615286489088) (*.f64 z y) (if (<=.f64 x 2483865768950679/117936325775673167257548580655883402841153788138013763386756446882675755074754651627691460161801836485670886719711370153117830769685149769767544820357271751364043603968) (*.f64 (-.f64 1 z) x) (if (<=.f64 x 97951355261805408/3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290176) (*.f64 z y) (*.f64 (-.f64 1 z) x)))))
(if (<=.f64 z -997706481033231/68719476736) (*.f64 z (neg.f64 x)) (if (<=.f64 z 8807628658781873/696898287454081973172991196020261297061888) x (if (<=.f64 z 102182018409651853328384) (*.f64 z y) (if (<=.f64 z 5499999999999999787735403059956262363576506030182819696336063773084808869794076509651344136480039540621312) (*.f64 z (neg.f64 x)) (*.f64 z y)))))
(if (<=.f64 x -2761034430764948465481251163887500856832104562589761249854809553249610235904) x (if (<=.f64 x -294071697467067/47890485652059026823698344598447161988085597568237568) (*.f64 z y) (if (<=.f64 x -4467406292279086080/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816) x (if (<=.f64 x 3560817894505569/3179557053031851899185109992371205233166102563054994659612778573877352351101699863205638981281067986842598872467724437926239395930347139873677900339284338973090723790890700606566943304973513615002138622348731328001828550356615286489088) (*.f64 z y) (if (<=.f64 x 4653729851587223552/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) x (if (<=.f64 x 97951355261805408/3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290176) (*.f64 z y) x))))))
x
Outputs
(fma.f64 (-.f64 y x) z x)
(+.f64 x (*.f64 (-.f64 y x) z))
(if (<=.f64 z -997706481033231/68719476736) (*.f64 (-.f64 y x) z) (if (<=.f64 z 5198839506044175/151115727451828646838272) (+.f64 x (*.f64 z y)) (*.f64 (-.f64 y x) z)))
(if (<=.f64 z -997706481033231/68719476736) (*.f64 (-.f64 y x) z) (if (<=.f64 z 5198839506044175/151115727451828646838272) (+.f64 x (*.f64 y z)) (*.f64 (-.f64 y x) z)))
(if (<=.f64 x -2761034430764948465481251163887500856832104562589761249854809553249610235904) (-.f64 x (*.f64 z x)) (if (<=.f64 x -294071697467067/47890485652059026823698344598447161988085597568237568) (*.f64 (-.f64 y x) z) (if (<=.f64 x -4467406292279086080/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816) (*.f64 (-.f64 1 z) x) (if (<=.f64 x 3140230451891345408/1552518092300708935148979488462502555256886017116696611139052038026050952686376886330878408828646477950487730697131073206171580044114814391444287275041181139204454976020849905550265285631598444825262999193716468750892846853816057856) (*.f64 (-.f64 y x) z) (if (<=.f64 x 4653729851587223552/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) (*.f64 (-.f64 1 z) x) (if (<=.f64 x 97951355261805408/3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290176) (*.f64 (-.f64 y x) z) (*.f64 (-.f64 1 z) x)))))))
(if (<=.f64 x -2761034430764948465481251163887500856832104562589761249854809553249610235904) (-.f64 x (*.f64 x z)) (if (<=.f64 x -294071697467067/47890485652059026823698344598447161988085597568237568) (*.f64 (-.f64 y x) z) (if (<=.f64 x -4362701457303795/38478521676166483605741250097796497856523182881313912761668255277583712667477744737709244389536050430475222646784) (*.f64 x (-.f64 1 z)) (if (<=.f64 x 1533315650337571/758065474756205534740712640850831325809026375545262017157740252942407691741394964028749223060862538061761587254458531838950966818415436714572405896016201728127175281260180617944465471499803928137335448825056869507271897877839872) (*.f64 (-.f64 y x) z) (if (<=.f64 x 568082257273831/556938551955834377275533643273961343370755433013740225900780336657626363184653001282460059975265063449541297555370411048668054775558525146271076821255153099151854818647493280039413353545728) (*.f64 x (-.f64 1 z)) (if (<=.f64 x 3060979851931419/97554642197374757230674913431036447054643691958280348464348654988292866838117675628759565720734124098744591597543956965482749239977758915821568) (*.f64 (-.f64 y x) z) (*.f64 x (-.f64 1 z))))))))
(if (<=.f64 x -2761034430764948465481251163887500856832104562589761249854809553249610235904) (*.f64 (-.f64 1 z) x) (if (<=.f64 x -294071697467067/47890485652059026823698344598447161988085597568237568) (*.f64 (-.f64 y x) z) (if (<=.f64 x -4467406292279086080/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816) (*.f64 (-.f64 1 z) x) (if (<=.f64 x 3140230451891345408/1552518092300708935148979488462502555256886017116696611139052038026050952686376886330878408828646477950487730697131073206171580044114814391444287275041181139204454976020849905550265285631598444825262999193716468750892846853816057856) (*.f64 (-.f64 y x) z) (if (<=.f64 x 4653729851587223552/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) (*.f64 (-.f64 1 z) x) (if (<=.f64 x 97951355261805408/3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290176) (*.f64 (-.f64 y x) z) (*.f64 (-.f64 1 z) x)))))))
(if (<=.f64 x -2761034430764948465481251163887500856832104562589761249854809553249610235904) (*.f64 x (-.f64 1 z)) (if (<=.f64 x -294071697467067/47890485652059026823698344598447161988085597568237568) (*.f64 (-.f64 y x) z) (if (<=.f64 x -4362701457303795/38478521676166483605741250097796497856523182881313912761668255277583712667477744737709244389536050430475222646784) (*.f64 x (-.f64 1 z)) (if (<=.f64 x 1533315650337571/758065474756205534740712640850831325809026375545262017157740252942407691741394964028749223060862538061761587254458531838950966818415436714572405896016201728127175281260180617944465471499803928137335448825056869507271897877839872) (*.f64 (-.f64 y x) z) (if (<=.f64 x 568082257273831/556938551955834377275533643273961343370755433013740225900780336657626363184653001282460059975265063449541297555370411048668054775558525146271076821255153099151854818647493280039413353545728) (*.f64 x (-.f64 1 z)) (if (<=.f64 x 3060979851931419/97554642197374757230674913431036447054643691958280348464348654988292866838117675628759565720734124098744591597543956965482749239977758915821568) (*.f64 (-.f64 y x) z) (*.f64 x (-.f64 1 z))))))))
(if (<=.f64 x -4467406292279086080/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816) (*.f64 (-.f64 1 z) x) (if (<=.f64 x 3560817894505569/3179557053031851899185109992371205233166102563054994659612778573877352351101699863205638981281067986842598872467724437926239395930347139873677900339284338973090723790890700606566943304973513615002138622348731328001828550356615286489088) (*.f64 z y) (if (<=.f64 x 2483865768950679/117936325775673167257548580655883402841153788138013763386756446882675755074754651627691460161801836485670886719711370153117830769685149769767544820357271751364043603968) (*.f64 (-.f64 1 z) x) (if (<=.f64 x 97951355261805408/3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290176) (*.f64 z y) (*.f64 (-.f64 1 z) x)))))
(if (<=.f64 x -4362701457303795/38478521676166483605741250097796497856523182881313912761668255277583712667477744737709244389536050430475222646784) (*.f64 x (-.f64 1 z)) (if (<=.f64 x 3560817894505569/3179557053031851899185109992371205233166102563054994659612778573877352351101699863205638981281067986842598872467724437926239395930347139873677900339284338973090723790890700606566943304973513615002138622348731328001828550356615286489088) (*.f64 y z) (if (<=.f64 x 2483865768950679/117936325775673167257548580655883402841153788138013763386756446882675755074754651627691460161801836485670886719711370153117830769685149769767544820357271751364043603968) (*.f64 x (-.f64 1 z)) (if (<=.f64 x 3060979851931419/97554642197374757230674913431036447054643691958280348464348654988292866838117675628759565720734124098744591597543956965482749239977758915821568) (*.f64 y z) (*.f64 x (-.f64 1 z))))))
(if (<=.f64 z -997706481033231/68719476736) (*.f64 z (neg.f64 x)) (if (<=.f64 z 8807628658781873/696898287454081973172991196020261297061888) x (if (<=.f64 z 102182018409651853328384) (*.f64 z y) (if (<=.f64 z 5499999999999999787735403059956262363576506030182819696336063773084808869794076509651344136480039540621312) (*.f64 z (neg.f64 x)) (*.f64 z y)))))
(if (<=.f64 z -997706481033231/68719476736) (*.f64 z (neg.f64 x)) (if (<=.f64 z 8807628658781873/696898287454081973172991196020261297061888) x (if (<=.f64 z 102182018409651853328384) (*.f64 y z) (if (<=.f64 z 5499999999999999787735403059956262363576506030182819696336063773084808869794076509651344136480039540621312) (*.f64 z (neg.f64 x)) (*.f64 y z)))))
(if (<=.f64 z -997706481033231/68719476736) (*.f64 x (neg.f64 z)) (if (<=.f64 z 8807628658781873/696898287454081973172991196020261297061888) x (if (<=.f64 z 102182018409651853328384) (*.f64 y z) (if (<=.f64 z 5499999999999999787735403059956262363576506030182819696336063773084808869794076509651344136480039540621312) (*.f64 x (neg.f64 z)) (*.f64 y z)))))
(if (<=.f64 x -2761034430764948465481251163887500856832104562589761249854809553249610235904) x (if (<=.f64 x -294071697467067/47890485652059026823698344598447161988085597568237568) (*.f64 z y) (if (<=.f64 x -4467406292279086080/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816) x (if (<=.f64 x 3560817894505569/3179557053031851899185109992371205233166102563054994659612778573877352351101699863205638981281067986842598872467724437926239395930347139873677900339284338973090723790890700606566943304973513615002138622348731328001828550356615286489088) (*.f64 z y) (if (<=.f64 x 4653729851587223552/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) x (if (<=.f64 x 97951355261805408/3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290176) (*.f64 z y) x))))))
(if (<=.f64 x -2761034430764948465481251163887500856832104562589761249854809553249610235904) x (if (<=.f64 x -294071697467067/47890485652059026823698344598447161988085597568237568) (*.f64 y z) (if (<=.f64 x -4362701457303795/38478521676166483605741250097796497856523182881313912761668255277583712667477744737709244389536050430475222646784) x (if (<=.f64 x 3560817894505569/3179557053031851899185109992371205233166102563054994659612778573877352351101699863205638981281067986842598872467724437926239395930347139873677900339284338973090723790890700606566943304973513615002138622348731328001828550356615286489088) (*.f64 y z) (if (<=.f64 x 568082257273831/556938551955834377275533643273961343370755433013740225900780336657626363184653001282460059975265063449541297555370411048668054775558525146271076821255153099151854818647493280039413353545728) x (if (<=.f64 x 3060979851931419/97554642197374757230674913431036447054643691958280348464348654988292866838117675628759565720734124098744591597543956965482749239977758915821568) (*.f64 y z) x))))))
x
Compiler

Compiled 287 to 161 computations (43.9% saved)

soundness60.0ms (0.9%)

Algorithm
egg-herbie
Rules
272×fma-def_binary64
251×fma-neg_binary64
71×cancel-sign-sub-inv_binary64
54×distribute-rgt-in_binary64
41×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0710
1118
2248
3528
41008
51718
62838
74828
88738
911148
1012148
1112218
Stop Event
saturated
Compiler

Compiled 29 to 17 computations (41.4% saved)

end102.0ms (1.5%)

Compiler

Compiled 263 to 127 computations (51.7% saved)

Profiling

Loading profile data...