Details

Time bar (total: 7.5s)

analyze272.0ms (3.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
0%99.9%0.1%7
3.1%96.7%0.1%8
3.1%95.2%1.7%9
19.5%76.8%3.7%10
25%70.6%4.4%11
28.1%65.7%6.2%12
Compiler

Compiled 13 to 9 computations (30.8% saved)

sample1.2s (15.9%)

Results
991.0ms8256×body256valid
185.0ms1508×body256invalid

preprocess66.0ms (0.9%)

Algorithm
egg-herbie
Rules
830×fma-def_binary64
805×div-sub_binary64
737×times-frac_binary64
408×distribute-rgt-in_binary64
348×associate-/l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02152
17544
218344
371844
4224744
5700244
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(/.f64 (*.f64 x (+.f64 (-.f64 y z) 1)) z)
(/.f64 (*.f64 y (+.f64 (-.f64 x z) 1)) z)
(/.f64 (*.f64 z (+.f64 (-.f64 y x) 1)) x)
(/.f64 (*.f64 x (+.f64 (-.f64 z y) 1)) y)
Outputs
(/.f64 (*.f64 x (+.f64 (-.f64 y z) 1)) z)
(/.f64 x (/.f64 z (+.f64 (-.f64 y z) 1)))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 y (+.f64 (-.f64 x z) 1)) z)
(/.f64 (*.f64 y (+.f64 1 (-.f64 x z))) z)
(/.f64 (fma.f64 y (-.f64 x z) y) z)
(-.f64 (/.f64 (fma.f64 x y y) z) y)
(/.f64 (*.f64 z (+.f64 (-.f64 y x) 1)) x)
(/.f64 z (/.f64 x (+.f64 1 (-.f64 y x))))
(/.f64 (fma.f64 z (-.f64 y x) z) x)
(-.f64 (/.f64 (fma.f64 y z z) x) z)
(/.f64 (*.f64 x (+.f64 (-.f64 z y) 1)) y)
(/.f64 x (/.f64 y (+.f64 1 (-.f64 z y))))
(/.f64 (fma.f64 x (-.f64 z y) x) y)
(-.f64 (/.f64 (fma.f64 x z x) y) x)
Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify60.0ms (0.8%)

Algorithm
egg-herbie
Rules
824×div-sub_binary64
527×fma-neg_binary64
465×distribute-rgt-in_binary64
403×fma-def_binary64
381×distribute-lft-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0913
12511
25611
317511
444711
5104311
6280311
7636811
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(/.f64 (*.f64 x (+.f64 (-.f64 y z) 1)) z)
Outputs
(/.f64 (*.f64 x (+.f64 (-.f64 y z) 1)) z)
(/.f64 x (/.f64 z (+.f64 (-.f64 y z) 1)))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)

eval1.0ms (0%)

Compiler

Compiled 20 to 11 computations (45% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 23 to 14 computations (39.1% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 24 to 6 computations (75% saved)

series12.0ms (0.2%)

Counts
2 → 72
Calls

18 calls:

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

rewrite66.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
936×pow1_binary64
869×add-log-exp_binary64
869×log1p-expm1-u_binary64
869×expm1-log1p-u_binary64
849×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify86.0ms (1.1%)

Algorithm
egg-herbie
Rules
593×fma-def_binary64
464×fma-neg_binary64
144×distribute-rgt-in_binary64
112×distribute-lft-in_binary64
96×associate-/l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
035797
189797
2207737
3595647
41237647
52170647
62711647
72859647
82859647
Stop Event
saturated
Counts
138 → 82
Calls
Call 1
Inputs
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 y) 1) x) z))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 y) 1) x) z))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 y) 1) x) z))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 y) 1) x) z))
(/.f64 x z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) (/.f64 1 z)) x))
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) (/.f64 1 z)) x))
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) (/.f64 1 z)) x))
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) (/.f64 1 z)) x))
(-.f64 (/.f64 x z) x)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(/.f64 (*.f64 y x) z)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(/.f64 (*.f64 y x) z)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(/.f64 (+.f64 (*.f64 y x) x) z)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
Outputs
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (fma.f64 y x x) z)
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 y) 1) x) z))
(/.f64 (fma.f64 y x x) z)
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 y) 1) x) z))
(/.f64 (fma.f64 y x x) z)
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 y) 1) x) z))
(/.f64 (fma.f64 y x x) z)
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 y) 1) x) z))
(/.f64 (fma.f64 y x x) z)
(/.f64 x z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (fma.f64 y x x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (fma.f64 y x x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (fma.f64 y x x) z)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (fma.f64 y x x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (fma.f64 y x x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (fma.f64 y x x) z)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (fma.f64 y x x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (fma.f64 y x x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (fma.f64 y x x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(*.f64 (-.f64 (+.f64 (/.f64 1 z) (/.f64 y z)) 1) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) (/.f64 1 z)) x))
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) (/.f64 1 z)) x))
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) (/.f64 1 z)) x))
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) (/.f64 1 z)) x))
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(-.f64 (/.f64 x z) x)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(-.f64 (+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z)) x)
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(*.f64 x (+.f64 (/.f64 1 z) (-.f64 (/.f64 y z) 1)))
(*.f64 x (+.f64 -1 (+.f64 (/.f64 1 z) (/.f64 y z))))
(fma.f64 (/.f64 y z) x (-.f64 (/.f64 x z) x))
(-.f64 (/.f64 (fma.f64 y x x) z) x)

localize12.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 31 to 14 computations (54.8% saved)

series12.0ms (0.2%)

Counts
2 → 72
Calls

18 calls:

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

rewrite75.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
623×prod-diff_binary64
539×log-prod_binary64
353×fma-def_binary64
277×pow2_binary64
246×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify73.0ms (1%)

Algorithm
egg-herbie
Rules
860×fma-def_binary64
507×div-sub_binary64
383×times-frac_binary64
328×associate-*l/_binary64
328×associate-/l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
027764
159764
2115760
3238637
4624637
51676637
65911637
Stop Event
node limit
Counts
177 → 130
Calls
Call 1
Inputs
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 (-.f64 1 z) x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (*.f64 -1 x) (/.f64 (*.f64 (+.f64 1 y) x) z))
(+.f64 (*.f64 -1 x) (/.f64 (*.f64 (+.f64 1 y) x) z))
(+.f64 (*.f64 -1 x) (/.f64 (*.f64 (+.f64 1 y) x) z))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(*.f64 (+.f64 1 y) x)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 (+.f64 1 y) x))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 (+.f64 1 y) x))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 (+.f64 1 y) x))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 (+.f64 1 y) x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 (+.f64 1 y) x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 (+.f64 1 y) x) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 (+.f64 1 y) x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 (+.f64 1 y) x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 (+.f64 1 y) x) (*.f64 -1 (*.f64 z x)))
Outputs
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 (-.f64 1 z) x) z)
(/.f64 (-.f64 1 z) (/.f64 z x))
(*.f64 (/.f64 (-.f64 1 z) z) x)
(*.f64 x (/.f64 (-.f64 1 z) z))
(-.f64 (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 x (/.f64 y z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 x (/.f64 y z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (+.f64 1 y) (/.f64 z x))
(*.f64 (/.f64 (+.f64 1 y) z) x)
(/.f64 (fma.f64 x y x) z)
(+.f64 (*.f64 -1 x) (/.f64 (*.f64 (+.f64 1 y) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(+.f64 (*.f64 -1 x) (/.f64 (*.f64 (+.f64 1 y) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(+.f64 (*.f64 -1 x) (/.f64 (*.f64 (+.f64 1 y) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (+.f64 1 (-.f64 y z)) (/.f64 x z))
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 z) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(fma.f64 x y x)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 (+.f64 1 y) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 (+.f64 1 y) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 (+.f64 1 y) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 (+.f64 1 y) x) (*.f64 -1 (*.f64 z x)))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(+.f64 (*.f64 (+.f64 1 y) x) (*.f64 -1 (*.f64 z x)))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(+.f64 (*.f64 (+.f64 1 y) x) (*.f64 -1 (*.f64 z x)))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 (+.f64 1 y) x) (*.f64 -1 (*.f64 z x)))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(+.f64 (*.f64 (+.f64 1 y) x) (*.f64 -1 (*.f64 z x)))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)
(+.f64 (*.f64 (+.f64 1 y) x) (*.f64 -1 (*.f64 z x)))
(*.f64 x (+.f64 1 (-.f64 y z)))
(fma.f64 x (-.f64 y z) x)

eval40.0ms (0.5%)

Compiler

Compiled 2827 to 885 computations (68.7% saved)

prune52.0ms (0.7%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New19913212
Fresh000
Picked011
Done101
Total20014214
Error
0b
Counts
214 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
17.7b
(-.f64 (*.f64 y (/.f64 x z)) x)
29.4b
(/.f64 (*.f64 (+.f64 1 y) x) z)
32.9b
(/.f64 (fma.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x) z)
9.7b
(*.f64 (+.f64 (-.f64 y z) 1) (*.f64 x (/.f64 1 z)))
7.4b
(/.f64 (*.f64 x (+.f64 (-.f64 y z) 1)) z)
8.4b
(/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 3) z)
35.5b
(neg.f64 x)
41.4b
(/.f64 (*.f64 x (neg.f64 z)) z)
45.1b
(*.f64 x (/.f64 y z))
43.3b
(/.f64 (*.f64 y x) z)
17.7b
(-.f64 (/.f64 (*.f64 y x) z) x)
27.5b
(/.f64 (-.f64 x (*.f64 x z)) z)
9.6b
(*.f64 (/.f64 x z) (+.f64 (-.f64 y z) 1))
21.6b
(-.f64 (/.f64 x z) x)
Compiler

Compiled 282 to 178 computations (36.9% saved)

localize26.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 x (-.f64 y z) x)
0.7b
(pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 3)
7.0b
(/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 3) z)
7.4b
(cbrt.f64 (fma.f64 x (-.f64 y z) x))
Compiler

Compiled 43 to 12 computations (72.1% saved)

series61.0ms (0.8%)

Counts
4 → 88
Calls

36 calls:

TimeVariablePointExpression
8.0ms
y
@0
(pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 3)
6.0ms
y
@inf
(/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 3) z)
5.0ms
z
@0
(pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 3)
3.0ms
y
@0
(/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 3) z)
3.0ms
y
@-inf
(fma.f64 x (-.f64 y z) x)

rewrite118.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
480×log-prod_binary64
453×prod-diff_binary64
327×pow-prod-down_binary64
262×pow2_binary64
207×fma-def_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01037
122337
2273737
Stop Event
node limit
Counts
4 → 177
Calls
Call 1
Inputs
(cbrt.f64 (fma.f64 x (-.f64 y z) x))
(/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 3) z)
(pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 3)
(fma.f64 x (-.f64 y z) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cbrt.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))))) (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) 2) (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 1/6) (pow.f64 (fma.f64 x (-.f64 y z) x) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (-.f64 y z) x) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 2) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 3) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) 2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 x (-.f64 y z) x)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/6 (log.f64 (fma.f64 x (-.f64 y z) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))))) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 x (-.f64 y z) x)) 1) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 x (-.f64 y z) x)) 1/3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (fma.f64 x (-.f64 y z) x) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (-.f64 y z) x) (/.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (fma.f64 x (-.f64 y z) x) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) (*.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) (pow.f64 (cbrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) 2) (cbrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) (*.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) (sqrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (fma.f64 x (-.f64 y z) x)) (/.f64 1 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (fma.f64 x (-.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 1) (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) 1) (/.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) 1) (/.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) (pow.f64 (cbrt.f64 z) 2)) (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 z) -2) (/.f64 (fma.f64 x (-.f64 y z) x) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) (pow.f64 (cbrt.f64 z) 2)) (/.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) (sqrt.f64 z)) (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) (sqrt.f64 z)) (/.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 z -1/2) (/.f64 (fma.f64 x (-.f64 y z) x) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (fma.f64 x (-.f64 y z) x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 3) (pow.f64 z 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 z (fma.f64 x (-.f64 y z) x)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (fma.f64 x (-.f64 y z) x) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 z (fma.f64 x (-.f64 y z) x))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (-.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 x (-.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (-.f64 y z)) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 x (-.f64 y z) x))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 x (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 x (-.f64 y z) x)))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 x (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x (-.f64 y z) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (-.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x (-.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) (cbrt.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) (sqrt.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 1/6) (pow.f64 (fma.f64 x (-.f64 y z) x) 5/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 5/6) (pow.f64 (fma.f64 x (-.f64 y z) x) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) 1) (cbrt.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)))) 2) (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (*.f64 x (-.f64 y z)) 2) (-.f64 (*.f64 x x) (*.f64 (*.f64 x (-.f64 y z)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (-.f64 y z)) 2) (*.f64 x x)) (fma.f64 x (-.f64 y z) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (pow.f64 (exp.f64 x) (-.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (pow.f64 (exp.f64 x) (-.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) (-.f64 y z)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 x (-.f64 y z) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 x (-.f64 y z) x))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2/3 (log.f64 (fma.f64 x (-.f64 y z) x))) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 x (-.f64 y z) x)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 x (-.f64 y z) x)) 1/3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) 3/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (-.f64 y z) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 x (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 y z) x x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 x (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (-.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 x x)) (*.f64 x (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (*.f64 x (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (-.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 x (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (-.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (-.f64 y z)) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) 2) (cbrt.f64 (*.f64 x (-.f64 y z))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (-.f64 y z))) (sqrt.f64 (*.f64 x (-.f64 y z))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 (pow.f64 (-.f64 y z) 2))) (cbrt.f64 (-.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (-.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 x (-.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (-.f64 y z)) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 x (-.f64 y z) x))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 x (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 x (-.f64 y z) x)))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 x (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x (-.f64 y z) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (-.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x (-.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) (cbrt.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) (sqrt.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 1/6) (pow.f64 (fma.f64 x (-.f64 y z) x) 5/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 5/6) (pow.f64 (fma.f64 x (-.f64 y z) x) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) 1) (cbrt.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)))) 2) (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (*.f64 x (-.f64 y z)) 2) (-.f64 (*.f64 x x) (*.f64 (*.f64 x (-.f64 y z)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (-.f64 y z)) 2) (*.f64 x x)) (fma.f64 x (-.f64 y z) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (-.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) 9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 1/6) 6)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (pow.f64 (exp.f64 x) (-.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (pow.f64 (exp.f64 x) (-.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) (-.f64 y z)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 x (-.f64 y z) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 x (-.f64 y z) x))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2/3 (log.f64 (fma.f64 x (-.f64 y z) x))) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 x (-.f64 y z) x)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 x (-.f64 y z) x)) 1/3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) 3/2) 2))))))

simplify148.0ms (2%)

Algorithm
egg-herbie
Rules
525×associate-+l+_binary64
507×associate-+r+_binary64
477×distribute-rgt-in_binary64
474×distribute-lft-in_binary64
336×times-frac_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02062847
17122529
226162452
379232452
Stop Event
node limit
Counts
265 → 196
Calls
Call 1
Inputs
(pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 1/3)
(+.f64 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 1/3) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/9) (*.f64 y x))))
(+.f64 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 7)) 1/9) (*.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/9) (*.f64 y x)))))
(+.f64 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 1/3) (+.f64 (*.f64 -1/3 (*.f64 (*.f64 (+.f64 (*.f64 1/27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3) (pow.f64 x 3))) (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3) (pow.f64 x 3))))) (pow.f64 y 3)) (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 7)) 1/9) (*.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/9) (*.f64 y x))))))
(pow.f64 (+.f64 (*.f64 y x) x) 1/3)
(+.f64 (pow.f64 (+.f64 (*.f64 y x) x) 1/3) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/9) (*.f64 z x))))
(+.f64 (pow.f64 (+.f64 (*.f64 y x) x) 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 7)) 1/9) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/9) (*.f64 z x)))))
(+.f64 (*.f64 -1/3 (*.f64 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3) (pow.f64 x 3)))) (*.f64 -1/27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3) (pow.f64 x 3)))) (pow.f64 z 3)) (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3))) (+.f64 (pow.f64 (+.f64 (*.f64 y x) x) 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 7)) 1/9) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/9) (*.f64 z x))))))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(/.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) z)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(/.f64 (+.f64 (*.f64 y x) x) z)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 z x)) x)) (*.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) x)) (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) x))) y))
(+.f64 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 z x)) x)) (+.f64 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/9) (pow.f64 x 2))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/9) (pow.f64 x 2))) (*.f64 (pow.f64 (*.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/3) (+.f64 (*.f64 1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) (pow.f64 x 2))) (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) (pow.f64 x 2))))))) (pow.f64 y 2)) (*.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) x)) (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) x))) y)))
(+.f64 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 z x)) x)) (+.f64 (*.f64 (pow.f64 y 3) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/9) (*.f64 (+.f64 (*.f64 1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) (pow.f64 x 2))) (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) (pow.f64 x 2)))) x))) (+.f64 (*.f64 -2/27 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3) (pow.f64 x 3)))) (+.f64 (*.f64 (pow.f64 (*.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/3) (+.f64 (*.f64 -2/3 (*.f64 (+.f64 (*.f64 1/27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3) (pow.f64 x 3))) (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3) (pow.f64 x 3))))) (pow.f64 (/.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/3))) (*.f64 -2/27 (*.f64 (pow.f64 1 1/9) (/.f64 (pow.f64 x 3) (+.f64 (*.f64 -1 (*.f64 z x)) x)))))) (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3) (pow.f64 x 3)))) (*.f64 1/27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3) (pow.f64 x 3)))))))))) (+.f64 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/9) (pow.f64 x 2))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/9) (pow.f64 x 2))) (*.f64 (pow.f64 (*.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/3) (+.f64 (*.f64 1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) (pow.f64 x 2))) (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) (pow.f64 x 2))))))) (pow.f64 y 2)) (*.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) x)) (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) x))) y))))
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y x) x))
(+.f64 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y x) x)) (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) x)) (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) x))) z))
(+.f64 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 y x) x)) 1/9) (pow.f64 x 2))) (+.f64 (*.f64 (pow.f64 (*.f64 1 (+.f64 (*.f64 y x) x)) 1/3) (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) (pow.f64 x 2))) (*.f64 1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) (pow.f64 x 2))))) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 y x) x)) 1/9) (pow.f64 x 2))))) (pow.f64 z 2)) (+.f64 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y x) x)) (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) x)) (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) x))) z)))
(+.f64 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 y x) x)) 1/9) (pow.f64 x 2))) (+.f64 (*.f64 (pow.f64 (*.f64 1 (+.f64 (*.f64 y x) x)) 1/3) (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) (pow.f64 x 2))) (*.f64 1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) (pow.f64 x 2))))) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 y x) x)) 1/9) (pow.f64 x 2))))) (pow.f64 z 2)) (+.f64 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y x) x)) (+.f64 (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) x)) (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) x))) z) (*.f64 (+.f64 (*.f64 2/27 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3) (pow.f64 x 3)))) (+.f64 (*.f64 (pow.f64 (*.f64 1 (+.f64 (*.f64 y x) x)) 1/3) (+.f64 (*.f64 2/27 (*.f64 (pow.f64 1 1/9) (/.f64 (pow.f64 x 3) (+.f64 (*.f64 y x) x)))) (*.f64 -2/3 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3) (pow.f64 x 3)))) (*.f64 -1/27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3) (pow.f64 x 3)))) (pow.f64 (/.f64 1 (+.f64 (*.f64 y x) x)) 1/3))))) (+.f64 (*.f64 -1/3 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3) (pow.f64 x 3)))) (*.f64 -1/27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3) (pow.f64 x 3)))) (pow.f64 1 1/3))) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/9) (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) (pow.f64 x 2))) (*.f64 1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) (pow.f64 x 2)))) x)))))) (pow.f64 z 3)))))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 y x)
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 y x)
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
Outputs
(pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 1/3)
(cbrt.f64 (fma.f64 -1 (*.f64 z x) x))
(cbrt.f64 (-.f64 x (*.f64 z x)))
(+.f64 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 1/3) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/9) (*.f64 y x))))
(+.f64 (*.f64 1/3 (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2)) 1/18)) (*.f64 x y))) (cbrt.f64 (fma.f64 -1 (*.f64 z x) x)))
(fma.f64 1/3 (*.f64 x (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18) y))) (cbrt.f64 (-.f64 x (*.f64 z x))))
(fma.f64 1/3 (*.f64 (*.f64 (*.f64 x y) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18)) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18)) (cbrt.f64 (-.f64 x (*.f64 z x))))
(+.f64 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 7)) 1/9) (*.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/9) (*.f64 y x)))))
(+.f64 (fma.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 7)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 7)) 1/18)) (*.f64 (*.f64 y y) (*.f64 x x))) (*.f64 1/3 (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2)) 1/18)) (*.f64 x y)))) (cbrt.f64 (fma.f64 -1 (*.f64 z x) x)))
(+.f64 (fma.f64 1/3 (*.f64 x (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18) y))) (cbrt.f64 (-.f64 x (*.f64 z x)))) (*.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 7)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 7)) 1/18)) (*.f64 (*.f64 x y) (*.f64 x y)))))
(+.f64 (fma.f64 1/3 (*.f64 (*.f64 (*.f64 x y) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18)) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18)) (cbrt.f64 (-.f64 x (*.f64 z x)))) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 7)) 1/18) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 7)) 1/18) (*.f64 y (*.f64 y (*.f64 x x)))))))
(+.f64 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 1/3) (+.f64 (*.f64 -1/3 (*.f64 (*.f64 (+.f64 (*.f64 1/27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3) (pow.f64 x 3))) (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3) (pow.f64 x 3))))) (pow.f64 y 3)) (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 7)) 1/9) (*.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/9) (*.f64 y x))))))
(+.f64 (fma.f64 -1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2))) (*.f64 (fma.f64 1/27 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2))) (pow.f64 x 3)) (*.f64 -2/9 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2))) (pow.f64 x 3)))) (pow.f64 y 3))) (fma.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 7)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 7)) 1/18)) (*.f64 (*.f64 y y) (*.f64 x x))) (*.f64 1/3 (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2)) 1/18)) (*.f64 x y))))) (cbrt.f64 (fma.f64 -1 (*.f64 z x) x)))
(+.f64 (fma.f64 (*.f64 (*.f64 -1/3 (pow.f64 y 3)) (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2))) (pow.f64 x 3)) -5/27)) (cbrt.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2))) (fma.f64 1/3 (*.f64 x (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18) y))) (*.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 7)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 7)) 1/18)) (*.f64 (*.f64 x y) (*.f64 x y)))))) (cbrt.f64 (-.f64 x (*.f64 z x))))
(+.f64 (fma.f64 1/3 (*.f64 (*.f64 (*.f64 x y) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18)) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18)) (cbrt.f64 (-.f64 x (*.f64 z x)))) (fma.f64 -1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2))) (*.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2))) (pow.f64 x 3)) -5/27) (pow.f64 y 3))) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 7)) 1/18) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 7)) 1/18) (*.f64 y (*.f64 y (*.f64 x x))))))))
(pow.f64 (+.f64 (*.f64 y x) x) 1/3)
(cbrt.f64 (fma.f64 y x x))
(cbrt.f64 (fma.f64 x y x))
(+.f64 (pow.f64 (+.f64 (*.f64 y x) x) 1/3) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/9) (*.f64 z x))))
(+.f64 (*.f64 -1/3 (*.f64 (*.f64 z x) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2)) 1/18)))) (cbrt.f64 (fma.f64 y x x)))
(fma.f64 -1/3 (*.f64 z (*.f64 x (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18)))) (cbrt.f64 (fma.f64 x y x)))
(fma.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18) (*.f64 z x))) (cbrt.f64 (fma.f64 x y x)))
(+.f64 (pow.f64 (+.f64 (*.f64 y x) x) 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 7)) 1/9) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/9) (*.f64 z x)))))
(+.f64 (fma.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 7)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 7)) 1/18)) (*.f64 (*.f64 x x) (*.f64 z z))) (*.f64 -1/3 (*.f64 (*.f64 z x) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2)) 1/18))))) (cbrt.f64 (fma.f64 y x x)))
(+.f64 (fma.f64 -1/3 (*.f64 z (*.f64 x (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18)))) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 7)) 1/18) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 7)) 1/18) (*.f64 (*.f64 z x) (*.f64 z x)))))) (cbrt.f64 (fma.f64 x y x)))
(+.f64 (fma.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18) (*.f64 z x))) (cbrt.f64 (fma.f64 x y x))) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 7)) 1/18) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 7)) 1/18) (*.f64 (*.f64 x x) (*.f64 z z))))))
(+.f64 (*.f64 -1/3 (*.f64 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3) (pow.f64 x 3)))) (*.f64 -1/27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3) (pow.f64 x 3)))) (pow.f64 z 3)) (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3))) (+.f64 (pow.f64 (+.f64 (*.f64 y x) x) 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 7)) 1/9) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/9) (*.f64 z x))))))
(fma.f64 -1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2))) (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2))))) (*.f64 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2)))) -1/27)) (pow.f64 z 3))) (+.f64 (fma.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 7)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 7)) 1/18)) (*.f64 (*.f64 x x) (*.f64 z z))) (*.f64 -1/3 (*.f64 (*.f64 z x) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2)) 1/18))))) (cbrt.f64 (fma.f64 y x x))))
(fma.f64 (*.f64 (*.f64 -1/3 (pow.f64 z 3)) (*.f64 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)))) 5/27)) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2))) (+.f64 (fma.f64 -1/3 (*.f64 z (*.f64 x (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18)))) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 7)) 1/18) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 7)) 1/18) (*.f64 (*.f64 z x) (*.f64 z x)))))) (cbrt.f64 (fma.f64 x y x))))
(+.f64 (fma.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18) (*.f64 z x))) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 7)) 1/18) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 7)) 1/18) (*.f64 (*.f64 x x) (*.f64 z z)))))) (fma.f64 (*.f64 -1/3 (*.f64 (*.f64 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)))) 5/27) (pow.f64 z 3))) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2))) (cbrt.f64 (fma.f64 x y x))))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(neg.f64 (/.f64 (fma.f64 -1 (-.f64 y z) -1) (/.f64 z x)))
(/.f64 (*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x)) z)
(/.f64 (+.f64 1 (neg.f64 (-.f64 z y))) (/.f64 z x))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(neg.f64 (/.f64 (fma.f64 -1 (-.f64 y z) -1) (/.f64 z x)))
(/.f64 (*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x)) z)
(/.f64 (+.f64 1 (neg.f64 (-.f64 z y))) (/.f64 z x))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(neg.f64 (/.f64 (fma.f64 -1 (-.f64 y z) -1) (/.f64 z x)))
(/.f64 (*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x)) z)
(/.f64 (+.f64 1 (neg.f64 (-.f64 z y))) (/.f64 z x))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(neg.f64 (/.f64 (fma.f64 -1 (-.f64 y z) -1) (/.f64 z x)))
(/.f64 (*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x)) z)
(/.f64 (+.f64 1 (neg.f64 (-.f64 z y))) (/.f64 z x))
(/.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) z)
(/.f64 (fma.f64 -1 (*.f64 z x) x) z)
(/.f64 (-.f64 x (*.f64 z x)) z)
(/.f64 (-.f64 1 z) (/.f64 z x))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 (/.f64 x z) y)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 (/.f64 x z) y)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (fma.f64 x y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 -1 x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 y z) x (neg.f64 x)))
(+.f64 (/.f64 x z) (fma.f64 (/.f64 x z) y (neg.f64 x)))
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 -1 (*.f64 z x) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 z x)) x)) (*.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) x)) (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) x))) y))
(+.f64 (fma.f64 -1 (*.f64 z x) x) (*.f64 y (*.f64 (*.f64 x (*.f64 (pow.f64 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 4) 1/18) (pow.f64 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 4) 1/18))) 1)))
(fma.f64 y (*.f64 (*.f64 x (pow.f64 (pow.f64 (-.f64 x (*.f64 z x)) 4) 1/18)) (pow.f64 (pow.f64 (-.f64 x (*.f64 z x)) 4) 1/18)) (-.f64 x (*.f64 z x)))
(+.f64 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 z x)) x)) (+.f64 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/9) (pow.f64 x 2))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/9) (pow.f64 x 2))) (*.f64 (pow.f64 (*.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/3) (+.f64 (*.f64 1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) (pow.f64 x 2))) (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) (pow.f64 x 2))))))) (pow.f64 y 2)) (*.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) x)) (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) x))) y)))
(+.f64 (fma.f64 -1 (*.f64 z x) x) (fma.f64 (fma.f64 2/9 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (fma.f64 -1 (*.f64 z x) x)) 1/18) (pow.f64 (/.f64 1 (fma.f64 -1 (*.f64 z x) x)) 1/18))) (fma.f64 -1/9 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (fma.f64 -1 (*.f64 z x) x)) 1/18) (pow.f64 (/.f64 1 (fma.f64 -1 (*.f64 z x) x)) 1/18))) (*.f64 (cbrt.f64 (fma.f64 -1 (*.f64 z x) x)) (*.f64 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 4)) 1/18))) -1/9)))) (*.f64 y y) (*.f64 y (*.f64 (*.f64 x (*.f64 (pow.f64 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 4) 1/18) (pow.f64 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 4) 1/18))) 1))))
(+.f64 (-.f64 x (*.f64 z x)) (fma.f64 y (*.f64 (*.f64 x (pow.f64 (pow.f64 (-.f64 x (*.f64 z x)) 4) 1/18)) (pow.f64 (pow.f64 (-.f64 x (*.f64 z x)) 4) 1/18)) (*.f64 (*.f64 y y) (+.f64 (*.f64 (cbrt.f64 (-.f64 x (*.f64 z x))) (*.f64 (*.f64 x x) (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 4)) 1/18)) -1/9))) (*.f64 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (-.f64 x (*.f64 z x))) 1/18) (pow.f64 (/.f64 1 (-.f64 x (*.f64 z x))) 1/18))) 1/9)))))
(+.f64 x (-.f64 (*.f64 y (+.f64 (*.f64 (*.f64 x (pow.f64 (pow.f64 (-.f64 x (*.f64 z x)) 4) 1/18)) (pow.f64 (pow.f64 (-.f64 x (*.f64 z x)) 4) 1/18)) (*.f64 (+.f64 (*.f64 (cbrt.f64 (-.f64 x (*.f64 z x))) (*.f64 (*.f64 x x) (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 4)) 1/18)) -1/9))) (*.f64 (*.f64 x x) (*.f64 (*.f64 (pow.f64 (/.f64 (/.f64 1 (-.f64 1 z)) x) 1/18) (pow.f64 (/.f64 (/.f64 1 (-.f64 1 z)) x) 1/18)) 1/9))) y))) (*.f64 z x)))
(+.f64 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 z x)) x)) (+.f64 (*.f64 (pow.f64 y 3) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/9) (*.f64 (+.f64 (*.f64 1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) (pow.f64 x 2))) (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) (pow.f64 x 2)))) x))) (+.f64 (*.f64 -2/27 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3) (pow.f64 x 3)))) (+.f64 (*.f64 (pow.f64 (*.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/3) (+.f64 (*.f64 -2/3 (*.f64 (+.f64 (*.f64 1/27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3) (pow.f64 x 3))) (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3) (pow.f64 x 3))))) (pow.f64 (/.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/3))) (*.f64 -2/27 (*.f64 (pow.f64 1 1/9) (/.f64 (pow.f64 x 3) (+.f64 (*.f64 -1 (*.f64 z x)) x)))))) (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3) (pow.f64 x 3)))) (*.f64 1/27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 2)) 1/3) (pow.f64 x 3)))))))))) (+.f64 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/9) (pow.f64 x 2))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/9) (pow.f64 x 2))) (*.f64 (pow.f64 (*.f64 1 (+.f64 (*.f64 -1 (*.f64 z x)) x)) 1/3) (+.f64 (*.f64 1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) (pow.f64 x 2))) (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) (pow.f64 x 2))))))) (pow.f64 y 2)) (*.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) x)) (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 -1 (*.f64 z x)) x) 4)) 1/9) x))) y))))
(+.f64 (fma.f64 -1 (*.f64 z x) x) (fma.f64 (pow.f64 y 3) (fma.f64 1/3 (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2)) 1/18)) (*.f64 x (*.f64 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 4)) 1/18))) -1/9))) (+.f64 (*.f64 -2/27 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2))) (pow.f64 x 3))) (fma.f64 (cbrt.f64 (fma.f64 -1 (*.f64 z x) x)) (fma.f64 -2/3 (*.f64 (fma.f64 1/27 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2))) (pow.f64 x 3)) (*.f64 -2/9 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2))) (pow.f64 x 3)))) (cbrt.f64 (/.f64 1 (fma.f64 -1 (*.f64 z x) x)))) (*.f64 -2/27 (/.f64 (pow.f64 x 3) (fma.f64 -1 (*.f64 z x) x)))) (*.f64 -1/3 (fma.f64 1/27 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2))) (pow.f64 x 3)) (*.f64 -2/9 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 2))) (pow.f64 x 3)))))))) (fma.f64 (fma.f64 2/9 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (fma.f64 -1 (*.f64 z x) x)) 1/18) (pow.f64 (/.f64 1 (fma.f64 -1 (*.f64 z x) x)) 1/18))) (fma.f64 -1/9 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (fma.f64 -1 (*.f64 z x) x)) 1/18) (pow.f64 (/.f64 1 (fma.f64 -1 (*.f64 z x) x)) 1/18))) (*.f64 (cbrt.f64 (fma.f64 -1 (*.f64 z x) x)) (*.f64 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 4)) 1/18))) -1/9)))) (*.f64 y y) (*.f64 y (*.f64 (*.f64 x (*.f64 (pow.f64 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 4) 1/18) (pow.f64 (pow.f64 (fma.f64 -1 (*.f64 z x) x) 4) 1/18))) 1)))))
(+.f64 (-.f64 x (*.f64 z x)) (fma.f64 (pow.f64 y 3) (fma.f64 1/3 (*.f64 x (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18)) (*.f64 (*.f64 x x) (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 4)) 1/18)) -1/9)))) (fma.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2))) (pow.f64 x 3)) -2/27 (fma.f64 -1/3 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2))) (pow.f64 x 3)) -5/27) (*.f64 (cbrt.f64 (-.f64 x (*.f64 z x))) (fma.f64 -2/27 (/.f64 (pow.f64 x 3) (-.f64 x (*.f64 z x))) (*.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2))) (pow.f64 x 3)) -5/27) (*.f64 (cbrt.f64 (/.f64 1 (-.f64 x (*.f64 z x)))) -2/3))))))) (fma.f64 y (*.f64 (*.f64 x (pow.f64 (pow.f64 (-.f64 x (*.f64 z x)) 4) 1/18)) (pow.f64 (pow.f64 (-.f64 x (*.f64 z x)) 4) 1/18)) (*.f64 (*.f64 y y) (+.f64 (*.f64 (cbrt.f64 (-.f64 x (*.f64 z x))) (*.f64 (*.f64 x x) (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 4)) 1/18)) -1/9))) (*.f64 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (-.f64 x (*.f64 z x))) 1/18) (pow.f64 (/.f64 1 (-.f64 x (*.f64 z x))) 1/18))) 1/9))))))
(+.f64 (-.f64 x (*.f64 z x)) (fma.f64 (pow.f64 y 3) (fma.f64 1/3 (*.f64 (*.f64 (*.f64 x x) (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 4)) 1/18)) -1/9)) (*.f64 x (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2)) 1/18)))) (fma.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2))) (pow.f64 x 3)) -2/27 (fma.f64 (cbrt.f64 (-.f64 x (*.f64 z x))) (fma.f64 -2/27 (*.f64 (/.f64 x (-.f64 1 z)) x) (*.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2))) (pow.f64 x 3)) -5/27) (*.f64 (cbrt.f64 (/.f64 (/.f64 1 (-.f64 1 z)) x)) -2/3))) (*.f64 -1/3 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 2))) (pow.f64 x 3)) -5/27))))) (*.f64 y (+.f64 (*.f64 (*.f64 x (pow.f64 (pow.f64 (-.f64 x (*.f64 z x)) 4) 1/18)) (pow.f64 (pow.f64 (-.f64 x (*.f64 z x)) 4) 1/18)) (*.f64 (+.f64 (*.f64 (cbrt.f64 (-.f64 x (*.f64 z x))) (*.f64 (*.f64 x x) (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (-.f64 x (*.f64 z x)) 4)) 1/18)) -1/9))) (*.f64 (*.f64 x x) (*.f64 (*.f64 (pow.f64 (/.f64 (/.f64 1 (-.f64 1 z)) x) 1/18) (pow.f64 (/.f64 (/.f64 1 (-.f64 1 z)) x) 1/18)) 1/9))) y)))))
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y x) x))
(fma.f64 y x x)
(fma.f64 x y x)
(+.f64 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y x) x)) (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) x)) (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) x))) z))
(+.f64 (fma.f64 y x x) (*.f64 z (*.f64 (*.f64 x (*.f64 (pow.f64 (pow.f64 (fma.f64 y x x) 4) 1/18) (pow.f64 (pow.f64 (fma.f64 y x x) 4) 1/18))) -1)))
(fma.f64 z (*.f64 (*.f64 (pow.f64 (pow.f64 (fma.f64 x y x) 4) 1/18) (pow.f64 (pow.f64 (fma.f64 x y x) 4) 1/18)) (neg.f64 x)) (fma.f64 x y x))
(+.f64 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 y x) x)) 1/9) (pow.f64 x 2))) (+.f64 (*.f64 (pow.f64 (*.f64 1 (+.f64 (*.f64 y x) x)) 1/3) (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) (pow.f64 x 2))) (*.f64 1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) (pow.f64 x 2))))) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 y x) x)) 1/9) (pow.f64 x 2))))) (pow.f64 z 2)) (+.f64 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y x) x)) (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) x)) (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) x))) z)))
(fma.f64 (fma.f64 2/9 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (fma.f64 y x x)) 1/18) (pow.f64 (/.f64 1 (fma.f64 y x x)) 1/18))) (fma.f64 (cbrt.f64 (fma.f64 y x x)) (*.f64 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 4)) 1/18))) -1/9) (*.f64 -1/9 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (fma.f64 y x x)) 1/18) (pow.f64 (/.f64 1 (fma.f64 y x x)) 1/18)))))) (*.f64 z z) (+.f64 (fma.f64 y x x) (*.f64 z (*.f64 (*.f64 x (*.f64 (pow.f64 (pow.f64 (fma.f64 y x x) 4) 1/18) (pow.f64 (pow.f64 (fma.f64 y x x) 4) 1/18))) -1))))
(fma.f64 (*.f64 z z) (fma.f64 2/9 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (fma.f64 x y x)) 1/18) (pow.f64 (/.f64 1 (fma.f64 x y x)) 1/18))) (fma.f64 -1/9 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (fma.f64 x y x)) 1/18) (pow.f64 (/.f64 1 (fma.f64 x y x)) 1/18))) (*.f64 (cbrt.f64 (fma.f64 x y x)) (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 4)) 1/18)) (*.f64 (*.f64 x x) -1/9))))) (fma.f64 z (*.f64 (*.f64 (pow.f64 (pow.f64 (fma.f64 x y x) 4) 1/18) (pow.f64 (pow.f64 (fma.f64 x y x) 4) 1/18)) (neg.f64 x)) (fma.f64 x y x)))
(fma.f64 (*.f64 z z) (+.f64 (*.f64 (*.f64 (*.f64 x (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 4)) 1/18)) (*.f64 x (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 4)) 1/18))) (*.f64 -1/9 (cbrt.f64 (fma.f64 x y x)))) (*.f64 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (fma.f64 x y x)) 1/18) (pow.f64 (/.f64 1 (fma.f64 x y x)) 1/18))) 1/9)) (fma.f64 z (*.f64 (*.f64 (pow.f64 (pow.f64 (fma.f64 x y x) 4) 1/18) (pow.f64 (pow.f64 (fma.f64 x y x) 4) 1/18)) (neg.f64 x)) (fma.f64 x y x)))
(+.f64 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 y x) x)) 1/9) (pow.f64 x 2))) (+.f64 (*.f64 (pow.f64 (*.f64 1 (+.f64 (*.f64 y x) x)) 1/3) (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) (pow.f64 x 2))) (*.f64 1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) (pow.f64 x 2))))) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 (*.f64 y x) x)) 1/9) (pow.f64 x 2))))) (pow.f64 z 2)) (+.f64 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y x) x)) (+.f64 (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) x)) (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) x))) z) (*.f64 (+.f64 (*.f64 2/27 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3) (pow.f64 x 3)))) (+.f64 (*.f64 (pow.f64 (*.f64 1 (+.f64 (*.f64 y x) x)) 1/3) (+.f64 (*.f64 2/27 (*.f64 (pow.f64 1 1/9) (/.f64 (pow.f64 x 3) (+.f64 (*.f64 y x) x)))) (*.f64 -2/3 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3) (pow.f64 x 3)))) (*.f64 -1/27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3) (pow.f64 x 3)))) (pow.f64 (/.f64 1 (+.f64 (*.f64 y x) x)) 1/3))))) (+.f64 (*.f64 -1/3 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3) (pow.f64 x 3)))) (*.f64 -1/27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/3) (pow.f64 x 3)))) (pow.f64 1 1/3))) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 2)) 1/9) (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) (pow.f64 x 2))) (*.f64 1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y x) x) 4)) 1/9) (pow.f64 x 2)))) x)))))) (pow.f64 z 3)))))
(fma.f64 (fma.f64 2/9 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (fma.f64 y x x)) 1/18) (pow.f64 (/.f64 1 (fma.f64 y x x)) 1/18))) (fma.f64 (cbrt.f64 (fma.f64 y x x)) (*.f64 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 4)) 1/18))) -1/9) (*.f64 -1/9 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (fma.f64 y x x)) 1/18) (pow.f64 (/.f64 1 (fma.f64 y x x)) 1/18)))))) (*.f64 z z) (+.f64 (fma.f64 y x x) (fma.f64 (*.f64 (*.f64 x (*.f64 (pow.f64 (pow.f64 (fma.f64 y x x) 4) 1/18) (pow.f64 (pow.f64 (fma.f64 y x x) 4) 1/18))) -1) z (*.f64 (pow.f64 z 3) (+.f64 (*.f64 2/27 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2))))) (fma.f64 (cbrt.f64 (fma.f64 y x x)) (+.f64 (*.f64 2/27 (/.f64 (pow.f64 x 3) (fma.f64 y x x))) (*.f64 -2/3 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2))))) (*.f64 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2)))) -1/27)) (cbrt.f64 (/.f64 1 (fma.f64 y x x)))))) (*.f64 -1/3 (+.f64 (*.f64 1 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2))))) (*.f64 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2)))) -1/27))) (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 2)) 1/18)) (*.f64 x (*.f64 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 y x x) 4)) 1/18))) -1/9)))))))))))
(+.f64 (fma.f64 (*.f64 z z) (fma.f64 2/9 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (fma.f64 x y x)) 1/18) (pow.f64 (/.f64 1 (fma.f64 x y x)) 1/18))) (fma.f64 -1/9 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (fma.f64 x y x)) 1/18) (pow.f64 (/.f64 1 (fma.f64 x y x)) 1/18))) (*.f64 (cbrt.f64 (fma.f64 x y x)) (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 4)) 1/18)) (*.f64 (*.f64 x x) -1/9))))) (fma.f64 z (*.f64 (*.f64 (pow.f64 (pow.f64 (fma.f64 x y x) 4) 1/18) (pow.f64 (pow.f64 (fma.f64 x y x) 4) 1/18)) (neg.f64 x)) (fma.f64 x y x))) (*.f64 (pow.f64 z 3) (fma.f64 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)))) 2/27 (fma.f64 -1/3 (+.f64 (*.f64 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)))) 5/27) (*.f64 x (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18)) (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 4)) 1/18)) (*.f64 (*.f64 x x) -1/9))))) (*.f64 (cbrt.f64 (fma.f64 x y x)) (fma.f64 -2/3 (*.f64 (*.f64 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)))) 5/27) (cbrt.f64 (/.f64 1 (fma.f64 x y x)))) (/.f64 (*.f64 (pow.f64 x 3) 2/27) (fma.f64 x y x))))))))
(+.f64 (fma.f64 z (*.f64 (*.f64 (pow.f64 (pow.f64 (fma.f64 x y x) 4) 1/18) (pow.f64 (pow.f64 (fma.f64 x y x) 4) 1/18)) (neg.f64 x)) (fma.f64 x y x)) (*.f64 (*.f64 z z) (+.f64 (*.f64 z (fma.f64 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)))) 2/27 (fma.f64 -1/3 (+.f64 (*.f64 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)))) 5/27) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)) 1/18) (*.f64 (*.f64 (*.f64 x (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 4)) 1/18)) (*.f64 x (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 4)) 1/18))) (*.f64 -1/9 x))))) (*.f64 (cbrt.f64 (fma.f64 x y x)) (fma.f64 -2/3 (*.f64 (*.f64 (*.f64 (pow.f64 x 3) (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 2)))) 5/27) (cbrt.f64 (/.f64 1 (fma.f64 x y x)))) (*.f64 (*.f64 x x) (/.f64 2/27 (+.f64 1 y)))))))) (+.f64 (*.f64 (*.f64 (*.f64 x (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 4)) 1/18)) (*.f64 x (pow.f64 (/.f64 1 (pow.f64 (fma.f64 x y x) 4)) 1/18))) (*.f64 -1/9 (cbrt.f64 (fma.f64 x y x)))) (*.f64 (*.f64 (*.f64 x x) (*.f64 (pow.f64 (/.f64 1 (fma.f64 x y x)) 1/18) (pow.f64 (/.f64 1 (fma.f64 x y x)) 1/18))) 1/9)))))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(neg.f64 (*.f64 x (fma.f64 -1 (-.f64 y z) -1)))
(*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x))
(+.f64 (*.f64 x (neg.f64 (-.f64 z y))) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(neg.f64 (*.f64 x (fma.f64 -1 (-.f64 y z) -1)))
(*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x))
(+.f64 (*.f64 x (neg.f64 (-.f64 z y))) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(neg.f64 (*.f64 x (fma.f64 -1 (-.f64 y z) -1)))
(*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x))
(+.f64 (*.f64 x (neg.f64 (-.f64 z y))) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(neg.f64 (*.f64 x (fma.f64 -1 (-.f64 y z) -1)))
(*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x))
(+.f64 (*.f64 x (neg.f64 (-.f64 z y))) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(fma.f64 -1 (*.f64 z x) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) x)
(fma.f64 y x x)
(fma.f64 x y x)
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))

localize7.0ms (0.1%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

localize12.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
6.0b
(/.f64 (*.f64 y x) z)
Compiler

Compiled 14 to 5 computations (64.3% saved)

series6.0ms (0.1%)

Counts
1 → 0
Calls

9 calls:

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

rewrite56.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
712×pow1_binary64
659×add-log-exp_binary64
659×log1p-expm1-u_binary64
659×expm1-log1p-u_binary64
644×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify12.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
41 → 41
Calls
Call 1
Inputs
Outputs

localize13.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 21 to 6 computations (71.4% saved)

series5.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite70.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
980×pow1_binary64
913×add-log-exp_binary64
913×log1p-expm1-u_binary64
913×expm1-log1p-u_binary64
85×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify45.0ms (0.6%)

Algorithm
egg-herbie
Rules
192×fma-def_binary64
134×fma-neg_binary64
61×cancel-sign-sub-inv_binary64
53×associate-/l*_binary64
49×distribute-lft-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
017390
139330
280330
3180330
4401330
5723330
61010330
71154330
81168330
91173330
Stop Event
saturated
Counts
73 → 45
Calls
Call 1
Inputs
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
Outputs
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (neg.f64 x) (/.f64 y (/.f64 z x)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(-.f64 (/.f64 y (/.f64 z x)) x)

localize10.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
9.6b
(*.f64 (/.f64 x z) (+.f64 (-.f64 y z) 1))
Compiler

Compiled 27 to 11 computations (59.3% saved)

series4.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite66.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
855×prod-diff_binary64
522×log-prod_binary64
383×fma-def_binary64
277×pow2_binary64
245×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify78.0ms (1%)

Algorithm
egg-herbie
Rules
616×fma-neg_binary64
539×fma-def_binary64
335×div-sub_binary64
333×times-frac_binary64
326×associate-*l/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
021430
143430
287428
3201365
4538365
51309365
64903365
77785365
Stop Event
node limit
Counts
129 → 105
Calls
Call 1
Inputs
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (*.f64 -1 x) (/.f64 (*.f64 (+.f64 1 y) x) z))
(+.f64 (*.f64 -1 x) (/.f64 (*.f64 (+.f64 1 y) x) z))
(+.f64 (*.f64 -1 x) (/.f64 (*.f64 (+.f64 1 y) x) z))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(/.f64 (*.f64 (-.f64 1 z) x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
Outputs
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (+.f64 1 y) (/.f64 z x))
(*.f64 (/.f64 (+.f64 1 y) z) x)
(/.f64 (fma.f64 x y x) z)
(+.f64 (*.f64 -1 x) (/.f64 (*.f64 (+.f64 1 y) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(+.f64 (*.f64 -1 x) (/.f64 (*.f64 (+.f64 1 y) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(+.f64 (*.f64 -1 x) (/.f64 (*.f64 (+.f64 1 y) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(+.f64 (/.f64 (*.f64 (+.f64 1 y) x) z) (*.f64 -1 x))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 (-.f64 1 z) x) z)
(/.f64 (-.f64 1 z) (/.f64 z x))
(/.f64 x (/.f64 z (-.f64 1 z)))
(*.f64 (/.f64 x z) (-.f64 1 z))
(-.f64 (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 (*.f64 (-.f64 1 z) x) z))
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) (/.f64 x z))
(-.f64 (/.f64 (fma.f64 x y x) z) x)
(/.f64 (fma.f64 x (-.f64 y z) x) z)

eval124.0ms (1.7%)

Compiler

Compiled 8069 to 3359 computations (58.4% saved)

prune75.0ms (1%)

Pruning

16 alts after pruning (11 fresh and 5 done)

PrunedKeptTotal
New4199428
Fresh628
Picked011
Done145
Total42616442
Error
0b
Counts
442 → 16
Alt Table
Click to see full alt table
StatusErrorProgram
32.9b
(/.f64 (fma.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x) z)
41.4b
(/.f64 (*.f64 x (neg.f64 z)) z)
44.9b
(*.f64 (/.f64 x z) y)
43.3b
(/.f64 (*.f64 y x) z)
17.7b
(-.f64 (/.f64 (*.f64 y x) z) x)
29.4b
(/.f64 (*.f64 (+.f64 1 y) x) z)
9.6b
(*.f64 (/.f64 x z) (+.f64 (-.f64 y z) 1))
17.7b
(-.f64 (/.f64 y (/.f64 z x)) x)
7.4b
(/.f64 (*.f64 x (+.f64 (-.f64 y z) 1)) z)
27.5b
(/.f64 (-.f64 x (*.f64 z x)) z)
35.5b
(neg.f64 x)
29.4b
(/.f64 (+.f64 (*.f64 y x) x) z)
17.7b
(-.f64 (*.f64 y (/.f64 x z)) x)
45.1b
(*.f64 (/.f64 y z) x)
44.9b
(/.f64 x (/.f64 z y))
21.6b
(-.f64 (/.f64 x z) x)
Compiler

Compiled 263 to 161 computations (38.8% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 21 to 6 computations (71.4% saved)

series5.0ms (0.1%)

Counts
2 → 72
Calls

18 calls:

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

rewrite71.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
928×pow1_binary64
862×add-log-exp_binary64
862×log1p-expm1-u_binary64
862×expm1-log1p-u_binary64
842×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify61.0ms (0.8%)

Algorithm
egg-herbie
Rules
192×fma-def_binary64
134×fma-neg_binary64
61×cancel-sign-sub-inv_binary64
53×associate-/l*_binary64
49×distribute-lft-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
017642
139582
280582
3180582
4401582
5724582
61011582
71156582
81170582
91175582
Stop Event
saturated
Counts
129 → 64
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 (*.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 (*.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 (*.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 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
Outputs
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (neg.f64 x))
(*.f64 x (+.f64 -1 (/.f64 y z)))
(-.f64 (/.f64 x (/.f64 z y)) x)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
4.9b
(*.f64 (/.f64 x z) y)
Compiler

Compiled 14 to 5 computations (64.3% saved)

series2.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite51.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

simplify14.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/l*_binary64
associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
06252
19252
213252
316252
417252
Stop Event
saturated
Counts
59 → 25
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 (*.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 (*.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 (*.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 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
Outputs
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 5 computations (61.5% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite56.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
706×pow1_binary64
659×add-log-exp_binary64
659×log1p-expm1-u_binary64
659×expm1-log1p-u_binary64
644×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify27.0ms (0.4%)

Algorithm
egg-herbie
Rules
68×fma-def_binary64
63×fma-neg_binary64
22×distribute-rgt-in_binary64
19×distribute-lft-in_binary64
18×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
014220
130220
261157
3133157
4256157
5383157
6457157
7499157
8510157
Stop Event
saturated
Counts
60 → 43
Calls
Call 1
Inputs
(*.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)
(*.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)
(*.f64 -1 (*.f64 (-.f64 1 (/.f64 1 z)) x))
(*.f64 -1 (*.f64 (-.f64 1 (/.f64 1 z)) x))
(*.f64 -1 (*.f64 (-.f64 1 (/.f64 1 z)) x))
(*.f64 -1 (*.f64 (-.f64 1 (/.f64 1 z)) x))
(/.f64 x z)
(+.f64 (*.f64 -1 x) (/.f64 x z))
(+.f64 (*.f64 -1 x) (/.f64 x z))
(+.f64 (*.f64 -1 x) (/.f64 x z))
(*.f64 -1 x)
(+.f64 (*.f64 -1 x) (/.f64 x z))
(+.f64 (*.f64 -1 x) (/.f64 x z))
(+.f64 (*.f64 -1 x) (/.f64 x z))
(*.f64 -1 x)
(+.f64 (*.f64 -1 x) (/.f64 x z))
(+.f64 (*.f64 -1 x) (/.f64 x z))
(+.f64 (*.f64 -1 x) (/.f64 x z))
Outputs
(*.f64 (-.f64 (/.f64 1 z) 1) x)
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(*.f64 (-.f64 (/.f64 1 z) 1) x)
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(*.f64 (-.f64 (/.f64 1 z) 1) x)
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(*.f64 (-.f64 (/.f64 1 z) 1) x)
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(*.f64 (-.f64 (/.f64 1 z) 1) x)
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(*.f64 (-.f64 (/.f64 1 z) 1) x)
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(*.f64 (-.f64 (/.f64 1 z) 1) x)
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(*.f64 (-.f64 (/.f64 1 z) 1) x)
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(*.f64 -1 (*.f64 (-.f64 1 (/.f64 1 z)) x))
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(*.f64 -1 (*.f64 (-.f64 1 (/.f64 1 z)) x))
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(*.f64 -1 (*.f64 (-.f64 1 (/.f64 1 z)) x))
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(*.f64 -1 (*.f64 (-.f64 1 (/.f64 1 z)) x))
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(/.f64 x z)
(+.f64 (*.f64 -1 x) (/.f64 x z))
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(+.f64 (*.f64 -1 x) (/.f64 x z))
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(+.f64 (*.f64 -1 x) (/.f64 x z))
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 -1 x) (/.f64 x z))
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(+.f64 (*.f64 -1 x) (/.f64 x z))
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(+.f64 (*.f64 -1 x) (/.f64 x z))
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 -1 x) (/.f64 x z))
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(+.f64 (*.f64 -1 x) (/.f64 x z))
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)
(+.f64 (*.f64 -1 x) (/.f64 x z))
(*.f64 (+.f64 (/.f64 1 z) -1) x)
(-.f64 (/.f64 x z) x)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
15.0b
(/.f64 (*.f64 x (neg.f64 z)) z)
Compiler

Compiled 17 to 6 computations (64.7% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite56.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
608×pow1_binary64
564×add-log-exp_binary64
563×log1p-expm1-u_binary64
563×expm1-log1p-u_binary64
551×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify12.0ms (0.2%)

Algorithm
egg-herbie
Rules
sub-neg_binary64
+-commutative_binary64
fma-def_binary64
*-commutative_binary64
associate-+l-_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0472
1672
2872
3972
41172
51572
61972
72472
Stop Event
saturated
Counts
62 → 40
Calls
Call 1
Inputs
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
(*.f64 -1 x)
Outputs
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 22 to 13 computations (40.9% saved)

series7.0ms (0.1%)

Counts
2 → 24
Calls

15 calls:

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

rewrite69.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
951×pow1_binary64
884×add-log-exp_binary64
884×log1p-expm1-u_binary64
884×expm1-log1p-u_binary64
866×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify19.0ms (0.2%)

Algorithm
egg-herbie
Rules
38×fma-def_binary64
14×associate-/l*_binary64
13×associate-*r*_binary64
12×associate-/r/_binary64
associate-*l*_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
09189
118189
227171
336171
445162
575144
695144
7133144
8164144
9167144
Stop Event
saturated
Counts
86 → 71
Calls
Call 1
Inputs
(/.f64 x z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
x
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
Outputs
(/.f64 x z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 (*.f64 x y) z))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(*.f64 (+.f64 y 1) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 (*.f64 x y) z))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(*.f64 (+.f64 y 1) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 (*.f64 x y) z))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(*.f64 (+.f64 y 1) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 x y) z)
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 (*.f64 x y) z))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(*.f64 (+.f64 y 1) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 (*.f64 x y) z))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(*.f64 (+.f64 y 1) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 (*.f64 x y) z))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(*.f64 (+.f64 y 1) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 x y) z)
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 (*.f64 x y) z))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(*.f64 (+.f64 y 1) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 (*.f64 x y) z))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(*.f64 (+.f64 y 1) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 (*.f64 x y) z))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(*.f64 (+.f64 y 1) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
x
(+.f64 (*.f64 y x) x)
(fma.f64 y x x)
(fma.f64 x y x)
(+.f64 (*.f64 y x) x)
(fma.f64 y x x)
(fma.f64 x y x)
(+.f64 (*.f64 y x) x)
(fma.f64 y x x)
(fma.f64 x y x)
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) x)
(fma.f64 y x x)
(fma.f64 x y x)
(+.f64 (*.f64 y x) x)
(fma.f64 y x x)
(fma.f64 x y x)
(+.f64 (*.f64 y x) x)
(fma.f64 y x x)
(fma.f64 x y x)
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) x)
(fma.f64 y x x)
(fma.f64 x y x)
(+.f64 (*.f64 y x) x)
(fma.f64 y x x)
(fma.f64 x y x)
(+.f64 (*.f64 y x) x)
(fma.f64 y x x)
(fma.f64 x y x)

eval47.0ms (0.6%)

Compiler

Compiled 2627 to 940 computations (64.2% saved)

prune47.0ms (0.6%)

Pruning

16 alts after pruning (8 fresh and 8 done)

PrunedKeptTotal
New2385243
Fresh336
Picked011
Done279
Total24316259
Error
0b
Counts
259 → 16
Alt Table
Click to see full alt table
StatusErrorProgram
32.9b
(/.f64 (fma.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x) z)
41.4b
(/.f64 (*.f64 x (neg.f64 z)) z)
17.7b
(-.f64 (*.f64 y (/.f64 x z)) x)
17.3b
(-.f64 (/.f64 x (/.f64 z y)) x)
7.4b
(/.f64 (*.f64 x (+.f64 (-.f64 y z) 1)) z)
27.5b
(/.f64 (-.f64 x (*.f64 z x)) z)
35.5b
(neg.f64 x)
44.9b
(/.f64 y (/.f64 z x))
44.9b
(/.f64 x (/.f64 z y))
43.3b
(/.f64 (*.f64 y x) z)
29.4b
(/.f64 (*.f64 (+.f64 1 y) x) z)
45.1b
(*.f64 (/.f64 y z) x)
48.3b
(/.f64 x z)
9.6b
(*.f64 (/.f64 x z) (+.f64 (-.f64 y z) 1))
21.6b
(-.f64 (/.f64 x z) x)
31.3b
(*.f64 (/.f64 (+.f64 1 y) z) x)
Compiler

Compiled 228 to 141 computations (38.2% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 21 to 6 computations (71.4% saved)

series5.0ms (0.1%)

Counts
2 → 72
Calls

18 calls:

TimeVariablePointExpression
0.0ms
x
@0
(/.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))
0.0ms
x
@inf
(-.f64 (/.f64 x (/.f64 z y)) x)

rewrite75.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
817×prod-diff_binary64
477×log-prod_binary64
271×pow-prod-down_binary64
258×fma-def_binary64
231×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify61.0ms (0.8%)

Algorithm
egg-herbie
Rules
192×fma-def_binary64
134×fma-neg_binary64
61×cancel-sign-sub-inv_binary64
53×associate-/l*_binary64
49×distribute-lft-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
017582
139582
280582
3180582
4401582
5723582
61008582
71152582
81166582
91171582
Stop Event
saturated
Counts
262 → 198
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 (*.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 (*.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 (*.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 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 -1 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
Outputs
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 (-.f64 (/.f64 y z) 1) x)
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (/.f64 y z)) 1) x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 -1 x))
(*.f64 x (+.f64 (/.f64 y z) -1))
(-.f64 (*.f64 (/.f64 y z) x) x)
(-.f64 (/.f64 x (/.f64 z y)) x)

localize4.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
4.0b
(/.f64 x (/.f64 z y))
Compiler

Compiled 14 to 5 computations (64.3% saved)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
3.0b
(*.f64 (/.f64 (+.f64 1 y) z) x)
Compiler

Compiled 22 to 13 computations (40.9% saved)

series2.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite58.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
925×pow1_binary64
858×add-log-exp_binary64
858×log1p-expm1-u_binary64
858×expm1-log1p-u_binary64
840×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify24.0ms (0.3%)

Algorithm
egg-herbie
Rules
51×fma-def_binary64
14×associate-/l*_binary64
14×associate-/r/_binary64
13×associate-*r*_binary64
10×distribute-rgt-out_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
012447
121447
235381
350381
4100282
5137282
6167282
7185282
8188282
Stop Event
saturated
Counts
59 → 28
Calls
Call 1
Inputs
(/.f64 x z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
Outputs
(/.f64 x z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (/.f64 x z))
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)
(/.f64 (*.f64 (+.f64 1 y) x) z)
(+.f64 (/.f64 x z) (/.f64 y (/.f64 z x)))
(+.f64 (/.f64 x z) (*.f64 (/.f64 y z) x))
(fma.f64 (/.f64 y z) x (/.f64 x z))
(fma.f64 x (/.f64 y z) (/.f64 x z))
(/.f64 (fma.f64 x y x) z)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (-.f64 y z))
0.1b
(*.f64 x (sqrt.f64 (-.f64 y z)))
0.1b
(fma.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x)
3.1b
(/.f64 (fma.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x) z)
Compiler

Compiled 45 to 8 computations (82.2% saved)

series40.0ms (0.5%)

Counts
4 → 68
Calls

33 calls:

TimeVariablePointExpression
9.0ms
y
@inf
(/.f64 (fma.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x) z)
5.0ms
z
@inf
(/.f64 (fma.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x) z)
3.0ms
y
@-inf
(/.f64 (fma.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x) z)
2.0ms
z
@-inf
(*.f64 x (sqrt.f64 (-.f64 y z)))
2.0ms
y
@0
(/.f64 (fma.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x) z)

rewrite83.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
530×prod-diff_binary64
506×log-prod_binary64
347×pow-prod-down_binary64
266×pow2_binary64
223×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0954
119538
2270334
Stop Event
node limit
Counts
4 → 129
Calls
Call 1
Inputs
(/.f64 (fma.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x) z)
(fma.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x)
(*.f64 x (sqrt.f64 (-.f64 y z)))
(sqrt.f64 (-.f64 y z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (fma.f64 x (-.f64 y z) x) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (-.f64 y z) x) (/.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (fma.f64 x (-.f64 y z) x) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) (*.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) (pow.f64 (cbrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) 2) (cbrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) (*.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) (sqrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (fma.f64 x (-.f64 y z) x)) (/.f64 1 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (fma.f64 x (-.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) 1) (/.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) 1) (/.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 z) -2) (/.f64 (fma.f64 x (-.f64 y z) x) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) (cbrt.f64 (*.f64 z z))) (cbrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) (cbrt.f64 (*.f64 z z))) (/.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 z -1/2) (/.f64 (fma.f64 x (-.f64 y z) x) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) (sqrt.f64 z)) (/.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (fma.f64 x (-.f64 y z) x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 3) (pow.f64 z 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 z (fma.f64 x (-.f64 y z) x)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (fma.f64 x (-.f64 y z) x) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 (fma.f64 x (-.f64 y z) x) z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 z (fma.f64 x (-.f64 y z) x))) -1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (-.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 x (-.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (-.f64 y z)) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 x (-.f64 y z) x))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 x (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 x (-.f64 y z) x)))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 x (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x (-.f64 y z) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (-.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x (-.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 2) (cbrt.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) (sqrt.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (*.f64 x (-.f64 y z)) 2) (-.f64 (*.f64 x x) (*.f64 (-.f64 y z) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (-.f64 y z)) 2) (*.f64 x x)) (fma.f64 x (-.f64 y z) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (-.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (exp.f64 (*.f64 x (-.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (exp.f64 (*.f64 x (-.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x (-.f64 y z))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 x (-.f64 y z) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (fma.f64 x (-.f64 y z) x) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 x (-.f64 y z) x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) x))) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (sqrt.f64 (-.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 (-.f64 y z)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 (-.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 (-.f64 y z))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 (-.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (sqrt.f64 (-.f64 y z))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 y z) (*.f64 x x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 (-.f64 y z)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (sqrt.f64 (-.f64 y z)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (-.f64 y z) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (sqrt.f64 (-.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (sqrt.f64 (-.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (sqrt.f64 (-.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (sqrt.f64 (-.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (sqrt.f64 (-.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (sqrt.f64 (-.f64 y z)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (sqrt.f64 (-.f64 y z))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (sqrt.f64 (-.f64 y z))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (sqrt.f64 (-.f64 y z))))) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (-.f64 y z)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (-.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (-.f64 y z))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (-.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (-.f64 y z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 y z)) (pow.f64 (-.f64 y z) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (-.f64 y z) 1/6) (cbrt.f64 (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (-.f64 y z) 1/4) (pow.f64 (-.f64 y z) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 (*.f64 y y) (*.f64 z z))) (sqrt.f64 (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 (pow.f64 y 3) (pow.f64 z 3))) (hypot.f64 y (sqrt.f64 (*.f64 z (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 y z) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 y z) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 y z) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 y z) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 y z)) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 y z) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 y z) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (-.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (-.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 y z) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 y) (sqrt.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (neg.f64 z)) (sqrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (-.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (-.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (-.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 y z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (-.f64 y z))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (-.f64 y z))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (-.f64 y z) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/4 (log.f64 (-.f64 y z))) 2))))))

simplify70.0ms (0.9%)

Algorithm
egg-herbie
Rules
651×associate-*l*_binary64
635×associate-+l+_binary64
610×associate-*r*_binary64
481×times-frac_binary64
402×associate-*l/_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01891228
15841180
223071148
Stop Event
node limit
Counts
197 → 189
Calls
Call 1
Inputs
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(/.f64 (+.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x))) z)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) x) (+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 z 2)))) (*.f64 1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 z 2)))))) (/.f64 x z))))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) x) (+.f64 (*.f64 (pow.f64 y 3) (+.f64 (*.f64 1/8 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 4) (pow.f64 z 3)))) (*.f64 -1/8 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 4) (pow.f64 z 3)))))) (+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 z 2)))) (*.f64 1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 z 2)))))) (/.f64 x z)))))
(/.f64 (+.f64 (*.f64 y x) x) z)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (+.f64 (*.f64 z (+.f64 (*.f64 1/4 (/.f64 x y)) (*.f64 -1/4 (/.f64 x y)))) (/.f64 x z))))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (+.f64 (*.f64 z (+.f64 (*.f64 1/4 (/.f64 x y)) (*.f64 -1/4 (/.f64 x y)))) (+.f64 (*.f64 (+.f64 (*.f64 -1/8 (/.f64 x (pow.f64 y 2))) (*.f64 1/8 (/.f64 x (pow.f64 y 2)))) (pow.f64 z 2)) (/.f64 x z)))))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x)) x)
(+.f64 (*.f64 y x) (+.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x))))
(+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) z))) (*.f64 1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) z))))) (+.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x)))))
(+.f64 (*.f64 (pow.f64 y 3) (+.f64 (*.f64 1/8 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 4) (pow.f64 z 2)))) (*.f64 -1/8 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 4) (pow.f64 z 2)))))) (+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) z))) (*.f64 1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) z))))) (+.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x))))))
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 z 2) (+.f64 (*.f64 1/4 (/.f64 x y)) (*.f64 -1/4 (/.f64 x y)))) (+.f64 (*.f64 -1 (*.f64 z x)) x)))
(+.f64 (*.f64 (+.f64 (*.f64 -1/8 (/.f64 x (pow.f64 y 2))) (*.f64 1/8 (/.f64 x (pow.f64 y 2)))) (pow.f64 z 3)) (+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 z 2) (+.f64 (*.f64 1/4 (/.f64 x y)) (*.f64 -1/4 (/.f64 x y)))) (+.f64 (*.f64 -1 (*.f64 z x)) x))))
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 (*.f64 (sqrt.f64 -1) x) (sqrt.f64 z))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 y x) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 z)))) (*.f64 (*.f64 (sqrt.f64 -1) x) (sqrt.f64 z)))
(+.f64 (*.f64 -1/8 (*.f64 (/.f64 (*.f64 (pow.f64 y 2) x) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 z 3))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 y x) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 z)))) (*.f64 (*.f64 (sqrt.f64 -1) x) (sqrt.f64 z))))
(+.f64 (*.f64 -1/8 (*.f64 (/.f64 (*.f64 (pow.f64 y 2) x) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 z 3))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 y x) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 z)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 -1) x) (sqrt.f64 z)) (*.f64 1/16 (*.f64 (/.f64 (*.f64 (pow.f64 y 3) x) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (/.f64 1 (pow.f64 z 5))))))))
(*.f64 (sqrt.f64 y) x)
(+.f64 (*.f64 (sqrt.f64 y) x) (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z x))))
(+.f64 (*.f64 (sqrt.f64 y) x) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z x))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 (pow.f64 z 2) x)))))
(+.f64 (*.f64 (sqrt.f64 y) x) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z x))) (+.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 5))) (*.f64 (pow.f64 z 3) x))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 (pow.f64 z 2) x))))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 z))
(+.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 z)) (*.f64 1/2 (*.f64 (/.f64 y (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 z)))))
(+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 z 3))))) (+.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 z)) (*.f64 1/2 (*.f64 (/.f64 y (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 z))))))
(+.f64 (*.f64 1/16 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (/.f64 1 (pow.f64 z 5))))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 z 3))))) (+.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 z)) (*.f64 1/2 (*.f64 (/.f64 y (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 z)))))))
(sqrt.f64 y)
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) z)) (sqrt.f64 y))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (pow.f64 z 2))) (sqrt.f64 y)))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) z)) (+.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 5))) (pow.f64 z 3))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (pow.f64 z 2))) (sqrt.f64 y))))
Outputs
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(/.f64 (*.f64 x (-.f64 (+.f64 1 y) z)) z)
(/.f64 x (/.f64 z (+.f64 1 (-.f64 y z))))
(*.f64 (/.f64 x z) (+.f64 1 (-.f64 y z)))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(neg.f64 (/.f64 (fma.f64 -1 (-.f64 y z) -1) (/.f64 z x)))
(/.f64 (*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x)) z)
(*.f64 (/.f64 (+.f64 -1 (-.f64 z y)) z) (neg.f64 x))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(neg.f64 (/.f64 (fma.f64 -1 (-.f64 y z) -1) (/.f64 z x)))
(/.f64 (*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x)) z)
(*.f64 (/.f64 (+.f64 -1 (-.f64 z y)) z) (neg.f64 x))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(neg.f64 (/.f64 (fma.f64 -1 (-.f64 y z) -1) (/.f64 z x)))
(/.f64 (*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x)) z)
(*.f64 (/.f64 (+.f64 -1 (-.f64 z y)) z) (neg.f64 x))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x) z))
(neg.f64 (/.f64 (fma.f64 -1 (-.f64 y z) -1) (/.f64 z x)))
(/.f64 (*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x)) z)
(*.f64 (/.f64 (+.f64 -1 (-.f64 z y)) z) (neg.f64 x))
(/.f64 (+.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x))) z)
(/.f64 (fma.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 x z) x) z)
(/.f64 (-.f64 x (*.f64 x z)) z)
(/.f64 (fma.f64 (neg.f64 z) x x) z)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 (pow.f64 (sqrt.f64 -1) 2) x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (*.f64 (/.f64 x z) y) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) x) (+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 z 2)))) (*.f64 1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 z 2)))))) (/.f64 x z))))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 (pow.f64 (sqrt.f64 -1) 2) x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (*.f64 (/.f64 x z) y) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) x) (+.f64 (*.f64 (pow.f64 y 3) (+.f64 (*.f64 1/8 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 4) (pow.f64 z 3)))) (*.f64 -1/8 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 4) (pow.f64 z 3)))))) (+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 z 2)))) (*.f64 1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 z 2)))))) (/.f64 x z)))))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 (pow.f64 (sqrt.f64 -1) 2) x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (*.f64 (/.f64 x z) y) (-.f64 (/.f64 x z) x))
(/.f64 (+.f64 (*.f64 y x) x) z)
(/.f64 (fma.f64 y x x) z)
(/.f64 (fma.f64 x y x) z)
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (/.f64 x z)))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 (pow.f64 (sqrt.f64 -1) 2) x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (*.f64 (/.f64 x z) y) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (+.f64 (*.f64 z (+.f64 (*.f64 1/4 (/.f64 x y)) (*.f64 -1/4 (/.f64 x y)))) (/.f64 x z))))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 (pow.f64 (sqrt.f64 -1) 2) x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (*.f64 (/.f64 x z) y) (-.f64 (/.f64 x z) x))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 x) (+.f64 (*.f64 z (+.f64 (*.f64 1/4 (/.f64 x y)) (*.f64 -1/4 (/.f64 x y)))) (+.f64 (*.f64 (+.f64 (*.f64 -1/8 (/.f64 x (pow.f64 y 2))) (*.f64 1/8 (/.f64 x (pow.f64 y 2)))) (pow.f64 z 2)) (/.f64 x z)))))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 (pow.f64 (sqrt.f64 -1) 2) x (/.f64 x z)))
(+.f64 (*.f64 (/.f64 y z) x) (-.f64 (/.f64 x z) x))
(+.f64 (*.f64 (/.f64 x z) y) (-.f64 (/.f64 x z) x))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 (+.f64 1 y) z) x)
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(neg.f64 (*.f64 x (fma.f64 -1 (-.f64 y z) -1)))
(*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x))
(+.f64 (*.f64 x (neg.f64 (-.f64 z y))) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(neg.f64 (*.f64 x (fma.f64 -1 (-.f64 y z) -1)))
(*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x))
(+.f64 (*.f64 x (neg.f64 (-.f64 z y))) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(neg.f64 (*.f64 x (fma.f64 -1 (-.f64 y z) -1)))
(*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x))
(+.f64 (*.f64 x (neg.f64 (-.f64 z y))) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 y z)) 1) x))
(neg.f64 (*.f64 x (fma.f64 -1 (-.f64 y z) -1)))
(*.f64 (fma.f64 -1 (-.f64 y z) -1) (neg.f64 x))
(+.f64 (*.f64 x (neg.f64 (-.f64 z y))) x)
(+.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x)) x)
(fma.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 x z) x)
(-.f64 x (*.f64 x z))
(fma.f64 (neg.f64 z) x x)
(+.f64 (*.f64 y x) (+.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x))))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) z))) (*.f64 1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) z))))) (+.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x)))))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 (pow.f64 y 3) (+.f64 (*.f64 1/8 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 4) (pow.f64 z 2)))) (*.f64 -1/8 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 4) (pow.f64 z 2)))))) (+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) z))) (*.f64 1/4 (/.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) z))))) (+.f64 x (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x))))))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) x)
(fma.f64 y x x)
(fma.f64 x y x)
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 z 2) (+.f64 (*.f64 1/4 (/.f64 x y)) (*.f64 -1/4 (/.f64 x y)))) (+.f64 (*.f64 -1 (*.f64 z x)) x)))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 (+.f64 (*.f64 -1/8 (/.f64 x (pow.f64 y 2))) (*.f64 1/8 (/.f64 x (pow.f64 y 2)))) (pow.f64 z 3)) (+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 z 2) (+.f64 (*.f64 1/4 (/.f64 x y)) (*.f64 -1/4 (/.f64 x y)))) (+.f64 (*.f64 -1 (*.f64 z x)) x))))
(*.f64 x (+.f64 1 (-.f64 y z)))
(+.f64 x (*.f64 x (-.f64 y z)))
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 x (sqrt.f64 (-.f64 y z)))
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 x (sqrt.f64 (-.f64 y z)))
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 x (sqrt.f64 (-.f64 y z)))
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 x (sqrt.f64 (-.f64 y z)))
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 x (sqrt.f64 (-.f64 y z)))
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 x (sqrt.f64 (-.f64 y z)))
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 x (sqrt.f64 (-.f64 y z)))
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 x (sqrt.f64 (-.f64 y z)))
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 x (sqrt.f64 (-.f64 y z)))
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 x (sqrt.f64 (-.f64 y z)))
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 x (sqrt.f64 (-.f64 y z)))
(*.f64 (sqrt.f64 (-.f64 y z)) x)
(*.f64 x (sqrt.f64 (-.f64 y z)))
(*.f64 (*.f64 (sqrt.f64 -1) x) (sqrt.f64 z))
(*.f64 (*.f64 x (sqrt.f64 -1)) (sqrt.f64 z))
(*.f64 x (*.f64 (sqrt.f64 -1) (sqrt.f64 z)))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 y x) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 z)))) (*.f64 (*.f64 (sqrt.f64 -1) x) (sqrt.f64 z)))
(fma.f64 1/2 (*.f64 (/.f64 y (/.f64 (sqrt.f64 -1) x)) (sqrt.f64 (/.f64 1 z))) (*.f64 (*.f64 x (sqrt.f64 -1)) (sqrt.f64 z)))
(fma.f64 1/2 (/.f64 (*.f64 x y) (/.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 z)))) (*.f64 x (*.f64 (sqrt.f64 -1) (sqrt.f64 z))))
(fma.f64 (sqrt.f64 -1) (*.f64 x (sqrt.f64 z)) (*.f64 (*.f64 (/.f64 x (sqrt.f64 -1)) y) (*.f64 (sqrt.f64 (/.f64 1 z)) 1/2)))
(+.f64 (*.f64 -1/8 (*.f64 (/.f64 (*.f64 (pow.f64 y 2) x) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 z 3))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 y x) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 z)))) (*.f64 (*.f64 (sqrt.f64 -1) x) (sqrt.f64 z))))
(fma.f64 -1/8 (*.f64 (/.f64 (*.f64 y y) (/.f64 (pow.f64 (sqrt.f64 -1) 3) x)) (sqrt.f64 (/.f64 1 (pow.f64 z 3)))) (fma.f64 1/2 (*.f64 (/.f64 y (/.f64 (sqrt.f64 -1) x)) (sqrt.f64 (/.f64 1 z))) (*.f64 (*.f64 x (sqrt.f64 -1)) (sqrt.f64 z))))
(fma.f64 -1/8 (*.f64 (/.f64 (*.f64 x (*.f64 y y)) (sqrt.f64 -1)) (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 z 3))) -1)) (fma.f64 1/2 (/.f64 (*.f64 x y) (/.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 z)))) (*.f64 x (*.f64 (sqrt.f64 -1) (sqrt.f64 z)))))
(fma.f64 (*.f64 1/8 (/.f64 (*.f64 x (*.f64 y y)) (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 (pow.f64 z 3))) (fma.f64 (sqrt.f64 -1) (*.f64 x (sqrt.f64 z)) (*.f64 (*.f64 (/.f64 x (sqrt.f64 -1)) y) (*.f64 (sqrt.f64 (/.f64 1 z)) 1/2))))
(+.f64 (*.f64 -1/8 (*.f64 (/.f64 (*.f64 (pow.f64 y 2) x) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 z 3))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 y x) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 z)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 -1) x) (sqrt.f64 z)) (*.f64 1/16 (*.f64 (/.f64 (*.f64 (pow.f64 y 3) x) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (/.f64 1 (pow.f64 z 5))))))))
(fma.f64 -1/8 (*.f64 (/.f64 (*.f64 y y) (/.f64 (pow.f64 (sqrt.f64 -1) 3) x)) (sqrt.f64 (/.f64 1 (pow.f64 z 3)))) (fma.f64 1/2 (*.f64 (/.f64 y (/.f64 (sqrt.f64 -1) x)) (sqrt.f64 (/.f64 1 z))) (fma.f64 (*.f64 x (sqrt.f64 -1)) (sqrt.f64 z) (*.f64 1/16 (*.f64 (/.f64 (pow.f64 y 3) (/.f64 (pow.f64 (sqrt.f64 -1) 5) x)) (sqrt.f64 (/.f64 1 (pow.f64 z 5))))))))
(fma.f64 -1/8 (*.f64 (/.f64 (*.f64 x (*.f64 y y)) (sqrt.f64 -1)) (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 z 3))) -1)) (fma.f64 1/2 (/.f64 (*.f64 x y) (/.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 z)))) (fma.f64 (sqrt.f64 -1) (*.f64 x (sqrt.f64 z)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 z 5))) (*.f64 1/16 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5)) x))))))
(fma.f64 (*.f64 1/8 (/.f64 (*.f64 x (*.f64 y y)) (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 (pow.f64 z 3))) (fma.f64 1/2 (*.f64 (*.f64 (/.f64 x (sqrt.f64 -1)) y) (sqrt.f64 (/.f64 1 z))) (fma.f64 (sqrt.f64 -1) (*.f64 x (sqrt.f64 z)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 z 5))) (*.f64 1/16 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5)) x))))))
(*.f64 (sqrt.f64 y) x)
(*.f64 x (sqrt.f64 y))
(+.f64 (*.f64 (sqrt.f64 y) x) (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z x))))
(fma.f64 (sqrt.f64 y) x (*.f64 -1/2 (*.f64 (*.f64 x z) (sqrt.f64 (/.f64 1 y)))))
(fma.f64 x (sqrt.f64 y) (*.f64 (*.f64 x z) (*.f64 -1/2 (sqrt.f64 (/.f64 1 y)))))
(*.f64 x (fma.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 1 y))) (sqrt.f64 y)))
(+.f64 (*.f64 (sqrt.f64 y) x) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z x))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 (pow.f64 z 2) x)))))
(fma.f64 (sqrt.f64 y) x (fma.f64 -1/2 (*.f64 (*.f64 x z) (sqrt.f64 (/.f64 1 y))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 x (*.f64 z z))))))
(fma.f64 x (sqrt.f64 y) (fma.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 x (*.f64 z z))) (*.f64 (*.f64 x z) (*.f64 -1/2 (sqrt.f64 (/.f64 1 y))))))
(fma.f64 x (sqrt.f64 y) (*.f64 x (*.f64 z (+.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 y))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 -1/8 z))))))
(+.f64 (*.f64 (sqrt.f64 y) x) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z x))) (+.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 5))) (*.f64 (pow.f64 z 3) x))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 (pow.f64 z 2) x))))))
(fma.f64 (sqrt.f64 y) x (fma.f64 -1/2 (*.f64 (*.f64 x z) (sqrt.f64 (/.f64 1 y))) (fma.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 5))) (*.f64 x (pow.f64 z 3))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 x (*.f64 z z)))))))
(fma.f64 x (sqrt.f64 y) (fma.f64 -1/2 (*.f64 (*.f64 x z) (sqrt.f64 (/.f64 1 y))) (fma.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 x (*.f64 z z))) (*.f64 -1/16 (*.f64 (pow.f64 z 3) (*.f64 x (sqrt.f64 (/.f64 1 (pow.f64 y 5)))))))))
(+.f64 (*.f64 x (fma.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 1 y))) (sqrt.f64 y))) (*.f64 x (*.f64 (*.f64 z z) (+.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 y 3)))) (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 5))) z))))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 z))
(+.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 z)) (*.f64 1/2 (*.f64 (/.f64 y (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 z)))))
(fma.f64 (sqrt.f64 -1) (sqrt.f64 z) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 z)) (/.f64 y (sqrt.f64 -1)))))
(fma.f64 1/2 (/.f64 y (/.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 z)))) (*.f64 (sqrt.f64 -1) (sqrt.f64 z)))
(fma.f64 (sqrt.f64 -1) (sqrt.f64 z) (*.f64 (sqrt.f64 (/.f64 1 z)) (*.f64 1/2 (/.f64 y (sqrt.f64 -1)))))
(+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 z 3))))) (+.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 z)) (*.f64 1/2 (*.f64 (/.f64 y (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 z))))))
(fma.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 z 3))) (/.f64 (*.f64 y y) (pow.f64 (sqrt.f64 -1) 3))) (fma.f64 (sqrt.f64 -1) (sqrt.f64 z) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 z)) (/.f64 y (sqrt.f64 -1))))))
(fma.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 z 3))) (/.f64 (*.f64 y y) (*.f64 -1 (sqrt.f64 -1)))) (fma.f64 1/2 (/.f64 y (/.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 z)))) (*.f64 (sqrt.f64 -1) (sqrt.f64 z))))
(fma.f64 (*.f64 1/8 (/.f64 (*.f64 y y) (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 (pow.f64 z 3))) (fma.f64 (sqrt.f64 -1) (sqrt.f64 z) (*.f64 (sqrt.f64 (/.f64 1 z)) (*.f64 1/2 (/.f64 y (sqrt.f64 -1))))))
(+.f64 (*.f64 1/16 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (/.f64 1 (pow.f64 z 5))))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 z 3))))) (+.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 z)) (*.f64 1/2 (*.f64 (/.f64 y (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 z)))))))
(fma.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 z 5))) (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5))) (fma.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 z 3))) (/.f64 (*.f64 y y) (pow.f64 (sqrt.f64 -1) 3))) (fma.f64 (sqrt.f64 -1) (sqrt.f64 z) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 z)) (/.f64 y (sqrt.f64 -1)))))))
(fma.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 z 5))) (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5))) (fma.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 z 3))) (/.f64 (*.f64 y y) (*.f64 -1 (sqrt.f64 -1)))) (fma.f64 1/2 (/.f64 y (/.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 z)))) (*.f64 (sqrt.f64 -1) (sqrt.f64 z)))))
(fma.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 z 5))) (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5))) (fma.f64 (*.f64 1/8 (/.f64 (*.f64 y y) (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 (pow.f64 z 3))) (fma.f64 (sqrt.f64 -1) (sqrt.f64 z) (*.f64 (sqrt.f64 (/.f64 1 z)) (*.f64 1/2 (/.f64 y (sqrt.f64 -1)))))))
(sqrt.f64 y)
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) z)) (sqrt.f64 y))
(fma.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 1 y))) (sqrt.f64 y))
(fma.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 y))) z (sqrt.f64 y))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (pow.f64 z 2))) (sqrt.f64 y)))
(fma.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 1 y))) (fma.f64 -1/8 (*.f64 (*.f64 z z) (sqrt.f64 (/.f64 1 (pow.f64 y 3)))) (sqrt.f64 y)))
(fma.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 1 y))) (fma.f64 -1/8 (*.f64 z (*.f64 z (sqrt.f64 (/.f64 1 (pow.f64 y 3))))) (sqrt.f64 y)))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) z)) (+.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 5))) (pow.f64 z 3))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (pow.f64 z 2))) (sqrt.f64 y))))
(fma.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 1 y))) (fma.f64 -1/16 (*.f64 (pow.f64 z 3) (sqrt.f64 (/.f64 1 (pow.f64 y 5)))) (fma.f64 -1/8 (*.f64 (*.f64 z z) (sqrt.f64 (/.f64 1 (pow.f64 y 3)))) (sqrt.f64 y))))
(fma.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 1 y))) (fma.f64 -1/16 (*.f64 (pow.f64 z 3) (sqrt.f64 (/.f64 1 (pow.f64 y 5)))) (fma.f64 -1/8 (*.f64 z (*.f64 z (sqrt.f64 (/.f64 1 (pow.f64 y 3))))) (sqrt.f64 y))))

eval211.0ms (2.8%)

Compiler

Compiled 8368 to 3138 computations (62.5% saved)

prune155.0ms (2.1%)

Pruning

16 alts after pruning (5 fresh and 11 done)

PrunedKeptTotal
New5132515
Fresh033
Picked101
Done11112
Total51516531
Error
0b
Counts
531 → 16
Alt Table
Click to see full alt table
StatusErrorProgram
17.7b
(-.f64 (*.f64 y (/.f64 x z)) x)
17.3b
(-.f64 (/.f64 x (/.f64 z y)) x)
31.0b
(/.f64 x (/.f64 z (+.f64 1 y)))
48.3b
(/.f64 x z)
43.3b
(*.f64 (/.f64 1 z) (/.f64 x (/.f64 1 y)))
7.4b
(/.f64 (*.f64 x (+.f64 (-.f64 y z) 1)) z)
27.5b
(/.f64 (-.f64 x (*.f64 z x)) z)
35.5b
(neg.f64 x)
41.4b
(/.f64 (*.f64 x (neg.f64 z)) z)
44.9b
(/.f64 y (/.f64 z x))
44.9b
(/.f64 x (/.f64 z y))
43.3b
(/.f64 (*.f64 y x) z)
29.4b
(/.f64 (*.f64 (+.f64 1 y) x) z)
45.1b
(*.f64 (/.f64 y z) x)
21.6b
(-.f64 (/.f64 x z) x)
31.3b
(*.f64 (/.f64 (+.f64 1 y) z) x)
Compiler

Compiled 144 to 95 computations (34% saved)

regimes224.0ms (3%)

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

4 calls:

74.0ms
(/.f64 (*.f64 x (+.f64 (-.f64 y z) 1)) z)
65.0ms
z
44.0ms
x
30.0ms
y
Results
ErrorSegmentsBranch
0.1b3x
2.1b2y
0.1b3z
0.1b3(/.f64 (*.f64 x (+.f64 (-.f64 y z) 1)) z)
Compiler

Compiled 245 to 97 computations (60.4% saved)

bsearch42.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
3.082549931292926e+44
3.2926062037621867e+49
20.0ms
-3.484131563691633e+52
-2.3542523066145413e+31
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes204.0ms (2.7%)

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

3 calls:

87.0ms
x
75.0ms
y
38.0ms
z
Results
ErrorSegmentsBranch
12.7b4x
2.9b3y
0.9b3z
Compiler

Compiled 157 to 63 computations (59.9% saved)

bsearch43.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
0.08170109904099138
4186586327023483.5
20.0ms
-3833849730.9312916
-12.496544929975785
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes104.0ms (1.4%)

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

3 calls:

39.0ms
y
34.0ms
x
27.0ms
z
Results
ErrorSegmentsBranch
15.4b3x
3.6b3y
3.6b3z
Compiler

Compiled 92 to 37 computations (59.8% saved)

bsearch42.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
7.605463125913406e-7
0.08170109904099138
21.0ms
-3833849730.9312916
-12.496544929975785
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes185.0ms (2.5%)

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

3 calls:

96.0ms
x
62.0ms
y
23.0ms
z
Results
ErrorSegmentsBranch
17.3b7x
11.5b3y
13.1b3z
Compiler

Compiled 78 to 32 computations (59% saved)

bsearch63.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
43.0ms
82.66850931539476
164520905772023.47
20.0ms
-1.7032318810803125e+74
-1.2924947998930961e+62
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes89.0ms (1.2%)

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

3 calls:

53.0ms
y
17.0ms
x
17.0ms
z
Results
ErrorSegmentsBranch
20.5b3x
12.9b3y
20.4b3z
Compiler

Compiled 55 to 23 computations (58.2% saved)

bsearch41.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
82.66850931539476
164520905772023.47
20.0ms
-1.7032318810803125e+74
-1.2924947998930961e+62
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes162.0ms (2.2%)

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

3 calls:

73.0ms
y
54.0ms
z
33.0ms
x
Results
ErrorSegmentsBranch
31.0b7x
24.3b7y
19.8b6z
Compiler

Compiled 45 to 21 computations (53.3% saved)

bsearch526.0ms (7%)

Algorithm
binary-search
Steps
TimeLeftRight
209.0ms
1.0840787544216674e-22
7.605463125913406e-7
101.0ms
3.6480524615684912e-59
3.958045620477653e-56
108.0ms
5.808383725185612e-79
2.676483876425992e-67
83.0ms
-7.623124966512244e-67
-1.72397304199707e-79
24.0ms
-1.073110532171265e+115
-1.98818389547623e+108
Compiler

Compiled 596 to 421 computations (29.4% saved)

regimes97.0ms (1.3%)

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

3 calls:

42.0ms
z
27.0ms
x
27.0ms
y
Results
ErrorSegmentsBranch
31.3b7x
24.5b7y
21.0b5z
Compiler

Compiled 25 to 16 computations (36% saved)

bsearch430.0ms (5.7%)

Algorithm
binary-search
Steps
TimeLeftRight
182.0ms
1.0840787544216674e-22
7.605463125913406e-7
127.0ms
3.6480524615684912e-59
3.958045620477653e-56
95.0ms
5.808383725185612e-79
2.676483876425992e-67
22.0ms
-12.496544929975785
-0.0008620820559393963
Compiler

Compiled 436 to 311 computations (28.7% saved)

regimes37.0ms (0.5%)

Accuracy

Total -39.5b remaining (-178.2%)

Threshold costs -39.5b (-178.2%)

Counts
2 → 3
Calls
Call 1
Inputs
(neg.f64 x)
(/.f64 x z)
Outputs
(neg.f64 x)
(/.f64 x z)
(neg.f64 x)
Calls

3 calls:

14.0ms
y
12.0ms
z
10.0ms
x
Results
ErrorSegmentsBranch
33.6b3x
33.1b5y
22.2b3z
Compiler

Compiled 20 to 14 computations (30% saved)

bsearch218.0ms (2.9%)

Algorithm
binary-search
Steps
TimeLeftRight
198.0ms
1.0840787544216674e-22
7.605463125913406e-7
20.0ms
-12.496544929975785
-0.0008620820559393963
Compiler

Compiled 148 to 113 computations (23.6% saved)

simplify16.0ms (0.2%)

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
068323
183323
290323
393323
494323
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 z -34841315636916329194238916619977251764739226499809280) (-.f64 (/.f64 x (/.f64 z y)) x) (if (<=.f64 z 308254993129292595240621106822827216759422976) (*.f64 (/.f64 x z) (+.f64 (-.f64 y z) 1)) (-.f64 (/.f64 x (/.f64 z y)) x)))
(if (<=.f64 z -16466259212128296960/4294967296) (-.f64 (/.f64 x (/.f64 z y)) x) (if (<=.f64 z 1507119264549964800/18446744073709551616) (/.f64 (*.f64 (+.f64 1 y) x) z) (-.f64 (/.f64 x (/.f64 z y)) x)))
(if (<=.f64 z -16466259212128296960/4294967296) (-.f64 (/.f64 x (/.f64 z y)) x) (if (<=.f64 z 3591578415251447/4722366482869645213696) (/.f64 x (/.f64 z (+.f64 1 y))) (-.f64 (/.f64 x (/.f64 z y)) x)))
(if (<=.f64 y -170323188108031254641323037207967595807062914420030408186098895176417148928) (/.f64 (*.f64 y x) z) (if (<=.f64 y 5817279183563847/70368744177664) (-.f64 (/.f64 x z) x) (/.f64 (*.f64 y x) z)))
(if (<=.f64 y -170323188108031254641323037207967595807062914420030408186098895176417148928) (*.f64 (/.f64 x z) y) (if (<=.f64 y 5817279183563847/70368744177664) (-.f64 (/.f64 x z) x) (/.f64 x (/.f64 z y))))
(if (<=.f64 z -10731105321712649965845390098587018318310509053084938817911195119335623713337859779305868562200871744913944795414528) (neg.f64 x) (if (<=.f64 z -2845706385096283/3794275180128377091639574036764685364535950857523710002444946112771297432041422848) (/.f64 x (/.f64 z y)) (if (<=.f64 z 8043863381872159/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (/.f64 x z) (if (<=.f64 z 4284307301780699136/115792089237316195423570985008687907853269984665640564039457584007913129639936) (/.f64 y (/.f64 z x)) (if (<=.f64 z 215500602038799/316912650057057350374175801344) (/.f64 x z) (neg.f64 x))))))
(if (<=.f64 z -7034929386257201/562949953421312) (neg.f64 x) (if (<=.f64 z 8043863381872159/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (/.f64 x z) (if (<=.f64 z 4284307301780699136/115792089237316195423570985008687907853269984665640564039457584007913129639936) (/.f64 y (/.f64 z x)) (if (<=.f64 z 215500602038799/316912650057057350374175801344) (/.f64 x z) (neg.f64 x)))))
(if (<=.f64 z -7034929386257201/562949953421312) (neg.f64 x) (if (<=.f64 z 215500602038799/316912650057057350374175801344) (/.f64 x z) (neg.f64 x)))
(neg.f64 x)
Outputs
(if (<=.f64 z -34841315636916329194238916619977251764739226499809280) (-.f64 (/.f64 x (/.f64 z y)) x) (if (<=.f64 z 308254993129292595240621106822827216759422976) (*.f64 (/.f64 x z) (+.f64 (-.f64 y z) 1)) (-.f64 (/.f64 x (/.f64 z y)) x)))
(if (<=.f64 z -16466259212128296960/4294967296) (-.f64 (/.f64 x (/.f64 z y)) x) (if (<=.f64 z 1507119264549964800/18446744073709551616) (/.f64 (*.f64 (+.f64 1 y) x) z) (-.f64 (/.f64 x (/.f64 z y)) x)))
(if (<=.f64 z -2010041407730505/524288) (-.f64 (/.f64 x (/.f64 z y)) x) (if (<=.f64 z 1471796156787075/18014398509481984) (/.f64 (*.f64 x (+.f64 y 1)) z) (-.f64 (/.f64 x (/.f64 z y)) x)))
(if (<=.f64 z -16466259212128296960/4294967296) (-.f64 (/.f64 x (/.f64 z y)) x) (if (<=.f64 z 3591578415251447/4722366482869645213696) (/.f64 x (/.f64 z (+.f64 1 y))) (-.f64 (/.f64 x (/.f64 z y)) x)))
(if (<=.f64 z -2010041407730505/524288) (-.f64 (/.f64 x (/.f64 z y)) x) (if (<=.f64 z 3591578415251447/4722366482869645213696) (/.f64 x (/.f64 z (+.f64 y 1))) (-.f64 (/.f64 x (/.f64 z y)) x)))
(if (<=.f64 y -170323188108031254641323037207967595807062914420030408186098895176417148928) (/.f64 (*.f64 y x) z) (if (<=.f64 y 5817279183563847/70368744177664) (-.f64 (/.f64 x z) x) (/.f64 (*.f64 y x) z)))
(if (<=.f64 y -170323188108031254641323037207967595807062914420030408186098895176417148928) (/.f64 (*.f64 x y) z) (if (<=.f64 y 5817279183563847/70368744177664) (-.f64 (/.f64 x z) x) (/.f64 (*.f64 x y) z)))
(if (<=.f64 y -170323188108031254641323037207967595807062914420030408186098895176417148928) (*.f64 (/.f64 x z) y) (if (<=.f64 y 5817279183563847/70368744177664) (-.f64 (/.f64 x z) x) (/.f64 x (/.f64 z y))))
(if (<=.f64 y -170323188108031254641323037207967595807062914420030408186098895176417148928) (*.f64 y (/.f64 x z)) (if (<=.f64 y 5817279183563847/70368744177664) (-.f64 (/.f64 x z) x) (/.f64 x (/.f64 z y))))
(if (<=.f64 z -10731105321712649965845390098587018318310509053084938817911195119335623713337859779305868562200871744913944795414528) (neg.f64 x) (if (<=.f64 z -2845706385096283/3794275180128377091639574036764685364535950857523710002444946112771297432041422848) (/.f64 x (/.f64 z y)) (if (<=.f64 z 8043863381872159/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (/.f64 x z) (if (<=.f64 z 4284307301780699136/115792089237316195423570985008687907853269984665640564039457584007913129639936) (/.f64 y (/.f64 z x)) (if (<=.f64 z 215500602038799/316912650057057350374175801344) (/.f64 x z) (neg.f64 x))))))
(if (<=.f64 z -10731105321712649965845390098587018318310509053084938817911195119335623713337859779305868562200871744913944795414528) (neg.f64 x) (if (<=.f64 z -2845706385096283/3794275180128377091639574036764685364535950857523710002444946112771297432041422848) (/.f64 x (/.f64 z y)) (if (<=.f64 z 8043863381872159/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (/.f64 x z) (if (<=.f64 z 2091946924697607/56539106072908298546665520023773392506479484700019806659891398441363832832) (/.f64 y (/.f64 z x)) (if (<=.f64 z 215500602038799/316912650057057350374175801344) (/.f64 x z) (neg.f64 x))))))
(if (<=.f64 z -7034929386257201/562949953421312) (neg.f64 x) (if (<=.f64 z 8043863381872159/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (/.f64 x z) (if (<=.f64 z 4284307301780699136/115792089237316195423570985008687907853269984665640564039457584007913129639936) (/.f64 y (/.f64 z x)) (if (<=.f64 z 215500602038799/316912650057057350374175801344) (/.f64 x z) (neg.f64 x)))))
(if (<=.f64 z -7034929386257201/562949953421312) (neg.f64 x) (if (<=.f64 z 8043863381872159/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (/.f64 x z) (if (<=.f64 z 2091946924697607/56539106072908298546665520023773392506479484700019806659891398441363832832) (/.f64 y (/.f64 z x)) (if (<=.f64 z 215500602038799/316912650057057350374175801344) (/.f64 x z) (neg.f64 x)))))
(if (<=.f64 z -7034929386257201/562949953421312) (neg.f64 x) (if (<=.f64 z 215500602038799/316912650057057350374175801344) (/.f64 x z) (neg.f64 x)))
(neg.f64 x)
Compiler

Compiled 250 to 134 computations (46.4% saved)

soundness480.0ms (6.4%)

Algorithm
egg-herbie
Rules
824×div-sub_binary64
593×fma-def_binary64
527×fma-neg_binary64
465×distribute-rgt-in_binary64
464×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0913
12511
25611
317511
444711
5104311
6280311
7636811
035797
189797
2207737
3595647
41237647
52170647
62711647
72859647
82859647
017642
139582
280582
3180582
4401582
5724582
61011582
71156582
81170582
91175582
Stop Event
saturated
saturated
node limit
Compiler

Compiled 1192 to 736 computations (38.3% saved)

end109.0ms (1.5%)

Compiler

Compiled 226 to 89 computations (60.6% saved)

Profiling

Loading profile data...