Details

Time bar (total: 12.9s)

analyze526.0ms (4.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
0%0%99.9%0.1%0%0%0%7
0%0%99.9%0.1%0%0%0%8
12.7%12.5%85.8%0.1%1.6%0%0%9
17.1%16.4%79.2%0.1%4.3%0%0%10
22.2%20.7%72.4%0.1%6.8%0%0%11
37.9%32.6%53.3%0.1%13.9%0%0%12
Compiler

Compiled 19 to 12 computations (36.8% saved)

sample2.0s (15.8%)

Results
1.4s8256×body256valid
633.0ms3880×body256infinite
Bogosity

preprocess58.0ms (0.5%)

Algorithm
egg-herbie
Rules
677×div-sub_binary64
461×cancel-sign-sub-inv_binary64
432×distribute-rgt-in_binary64
405×fma-neg_binary64
370×associate-/l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02380
18080
221480
344180
4109380
5325876
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2))
(/.f64 (-.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 z z)) (*.f64 x 2))
(/.f64 (-.f64 (+.f64 (*.f64 z z) (*.f64 y y)) (*.f64 x x)) (*.f64 y 2))
(/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 z z)) (*.f64 y y)) (*.f64 z 2))
Outputs
(/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2))
(/.f64 (-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z)) (*.f64 y 2))
(/.f64 (fma.f64 y y (-.f64 (*.f64 x x) (*.f64 z z))) (*.f64 y 2))
(/.f64 (+.f64 y (*.f64 (/.f64 (+.f64 x z) y) (-.f64 x z))) 2)
(/.f64 (-.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 z z)) (*.f64 x 2))
(/.f64 (-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z)) (*.f64 x 2))
(/.f64 (fma.f64 y y (-.f64 (*.f64 x x) (*.f64 z z))) (*.f64 x 2))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 y z) x) (-.f64 z y)) x))
(/.f64 (-.f64 (+.f64 (*.f64 z z) (*.f64 y y)) (*.f64 x x)) (*.f64 y 2))
(/.f64 (-.f64 (fma.f64 z z (*.f64 y y)) (*.f64 x x)) (*.f64 y 2))
(/.f64 (-.f64 (fma.f64 y y (*.f64 z z)) (*.f64 x x)) (*.f64 y 2))
(/.f64 (fma.f64 y y (-.f64 (*.f64 z z) (*.f64 x x))) (*.f64 y 2))
(/.f64 (-.f64 y (*.f64 (/.f64 (+.f64 x z) y) (-.f64 x z))) 2)
(/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 z z)) (*.f64 y y)) (*.f64 z 2))
(/.f64 (-.f64 (fma.f64 x x (*.f64 z z)) (*.f64 y y)) (*.f64 z 2))
(/.f64 (-.f64 (fma.f64 z z (*.f64 x x)) (*.f64 y y)) (*.f64 z 2))
(/.f64 (fma.f64 x x (-.f64 (*.f64 z z) (*.f64 y y))) (*.f64 z 2))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (-.f64 y x) z) (+.f64 x y)) z))
Compiler

Compiled 21 to 14 computations (33.3% saved)

simplify51.0ms (0.4%)

Algorithm
egg-herbie
Rules
803×div-sub_binary64
796×fma-def_binary64
540×times-frac_binary64
406×distribute-rgt-in_binary64
344×sub-neg_binary64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
01220
12720
26720
313620
432020
575520
6189419
7445119
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2))
Outputs
(/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2))
(/.f64 (-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z)) (*.f64 y 2))
(/.f64 (fma.f64 x x (-.f64 (*.f64 y y) (*.f64 z z))) (*.f64 y 2))
(/.f64 (fma.f64 y y (-.f64 (*.f64 x x) (*.f64 z z))) (*.f64 y 2))
(*.f64 -1/2 (-.f64 (*.f64 (+.f64 x z) (/.f64 (-.f64 z x) y)) y))
(*.f64 -1/2 (-.f64 (/.f64 (fma.f64 z z (*.f64 x (neg.f64 x))) y) y))

eval1.0ms (0%)

Compiler

Compiled 31 to 18 computations (41.9% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 34 to 21 computations (38.2% saved)

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 -1/2 (-.f64 (/.f64 (fma.f64 z z (*.f64 x (neg.f64 x))) y) y))
0.5b
(fma.f64 z z (*.f64 x (neg.f64 x)))
13.8b
(/.f64 (fma.f64 z z (*.f64 x (neg.f64 x))) y)
Compiler

Compiled 53 to 11 computations (79.2% saved)

series15.0ms (0.1%)

Counts
3 → 96
Calls

24 calls:

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

rewrite85.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
684×prod-diff_binary64
526×log-prod_binary64
285×pow2_binary64
255×fma-def_binary64
197×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify99.0ms (0.8%)

Algorithm
egg-herbie
Rules
917×fma-neg_binary64
425×associate-/l/_binary64
384×associate-*l*_binary64
354×associate-*r*_binary64
310×associate-*l/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0281546
1681478
21541253
33751249
410741249
537221249
674901249
Stop Event
node limit
Counts
231 → 164
Calls
Call 1
Inputs
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(/.f64 (pow.f64 z 2) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(/.f64 (pow.f64 z 2) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(/.f64 (pow.f64 z 2) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(*.f64 -1 (pow.f64 x 2))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(pow.f64 z 2)
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(pow.f64 z 2)
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(pow.f64 z 2)
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(*.f64 -1 (pow.f64 x 2))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(*.f64 -1 (pow.f64 x 2))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y))
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(*.f64 1/2 y)
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(*.f64 1/2 y)
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
Outputs
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(*.f64 (/.f64 x y) (neg.f64 x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 x (neg.f64 (/.f64 x y)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(*.f64 (/.f64 x y) (neg.f64 x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 x (neg.f64 (/.f64 x y)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(*.f64 (/.f64 x y) (neg.f64 x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 x (neg.f64 (/.f64 x y)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (/.f64 (pow.f64 z 2) y))
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)
(fma.f64 -1 (/.f64 (*.f64 x x) y) (/.f64 (*.f64 z z) y))
(-.f64 (/.f64 (*.f64 z z) y) (/.f64 (*.f64 x x) y))
(/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y)
(*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x))
(/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y)
(*.f64 -1 (pow.f64 x 2))
(neg.f64 (*.f64 x x))
(*.f64 x (neg.f64 x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(pow.f64 z 2)
(*.f64 z z)
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(pow.f64 z 2)
(*.f64 z z)
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(pow.f64 z 2)
(*.f64 z z)
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(*.f64 -1 (pow.f64 x 2))
(neg.f64 (*.f64 x x))
(*.f64 x (neg.f64 x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(*.f64 -1 (pow.f64 x 2))
(neg.f64 (*.f64 x x))
(*.f64 x (neg.f64 x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2)))
(+.f64 (*.f64 z z) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 z z) (*.f64 x x))
(*.f64 (+.f64 x z) (-.f64 z x))
(*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y))
(*.f64 -1/2 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(*.f64 (/.f64 -1/2 y) (*.f64 z z))
(*.f64 (*.f64 z z) (/.f64 -1/2 y))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(*.f64 (/.f64 -1/2 y) (*.f64 z z))
(*.f64 (*.f64 z z) (/.f64 -1/2 y))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 -1/2 (-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) y)) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 z z) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 z y) z) y))
(*.f64 -1/2 (-.f64 (*.f64 z (/.f64 z y)) y))
(*.f64 1/2 (fma.f64 (/.f64 z y) (neg.f64 z) y))
(*.f64 1/2 (fma.f64 z (/.f64 (neg.f64 z) y) y))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 (/.f64 (*.f64 x x) y) 1/2)
(*.f64 (/.f64 1/2 y) (*.f64 x x))
(*.f64 (*.f64 x x) (/.f64 1/2 y))
(*.f64 x (*.f64 x (/.f64 1/2 y)))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 (/.f64 (*.f64 x x) y) 1/2)
(*.f64 (/.f64 1/2 y) (*.f64 x x))
(*.f64 (*.f64 x x) (/.f64 1/2 y))
(*.f64 x (*.f64 x (/.f64 1/2 y)))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 -1/2 (-.f64 (/.f64 (pow.f64 z 2) y) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y))
(*.f64 (/.f64 (+.f64 (*.f64 z z) (neg.f64 (*.f64 x x))) y) -1/2)
(*.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) -1/2)
(*.f64 (-.f64 (*.f64 z z) (*.f64 x x)) (/.f64 -1/2 y))
(*.f64 (*.f64 (+.f64 x z) (-.f64 z x)) (/.f64 -1/2 y))
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(*.f64 1/2 y)
(*.f64 y 1/2)
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(*.f64 1/2 y)
(*.f64 y 1/2)
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))
(+.f64 (*.f64 1/2 y) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 z 2) (*.f64 -1 (pow.f64 x 2))) y)))
(*.f64 -1/2 (+.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) y) y) (/.f64 (*.f64 z z) y)))
(*.f64 -1/2 (+.f64 (/.f64 (neg.f64 (*.f64 x x)) y) (-.f64 (/.f64 (*.f64 z z) y) y)))
(*.f64 -1/2 (-.f64 (/.f64 (-.f64 (*.f64 z z) (*.f64 x x)) y) y))
(*.f64 -1/2 (-.f64 (*.f64 (/.f64 (+.f64 x z) y) (-.f64 z x)) y))
(*.f64 -1/2 (-.f64 (/.f64 (*.f64 (+.f64 x z) (-.f64 z x)) y) y))

localize14.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
4.8b
(-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))
24.8b
(/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2))
Compiler

Compiled 52 to 14 computations (73.1% saved)

series12.0ms (0.1%)

Counts
2 → 72
Calls

18 calls:

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

rewrite130.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
706×log-prod_binary64
532×fma-def_binary64
276×fma-neg_binary64
241×expm1-udef_binary64
241×log1p-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify67.0ms (0.5%)

Algorithm
egg-herbie
Rules
815×fma-def_binary64
673×associate-/r/_binary64
639×associate-/l/_binary64
512×associate-*l/_binary64
381×associate-*r/_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0391261
11091203
22511122
36481038
42362981
Stop Event
node limit
Counts
278 → 239
Calls
Call 1
Inputs
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 y 2) (pow.f64 z 2)) y))
(+.f64 (*.f64 1/2 (/.f64 (-.f64 (pow.f64 y 2) (pow.f64 z 2)) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 (/.f64 (-.f64 (pow.f64 y 2) (pow.f64 z 2)) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 (/.f64 (-.f64 (pow.f64 y 2) (pow.f64 z 2)) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(+.f64 (*.f64 1/2 (-.f64 y (/.f64 (pow.f64 z 2) y))) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 (-.f64 y (/.f64 (pow.f64 z 2) y))) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 (-.f64 y (/.f64 (pow.f64 z 2) y))) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(+.f64 (*.f64 1/2 (-.f64 y (/.f64 (pow.f64 z 2) y))) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 (-.f64 y (/.f64 (pow.f64 z 2) y))) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 (-.f64 y (/.f64 (pow.f64 z 2) y))) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(*.f64 1/2 y)
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(*.f64 1/2 y)
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(*.f64 1/2 (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 1/2 (+.f64 y (/.f64 (pow.f64 x 2) y))) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(+.f64 (*.f64 1/2 (+.f64 y (/.f64 (pow.f64 x 2) y))) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(+.f64 (*.f64 1/2 (+.f64 y (/.f64 (pow.f64 x 2) y))) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 1/2 (+.f64 y (/.f64 (pow.f64 x 2) y))) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(+.f64 (*.f64 1/2 (+.f64 y (/.f64 (pow.f64 x 2) y))) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(+.f64 (*.f64 1/2 (+.f64 y (/.f64 (pow.f64 x 2) y))) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(-.f64 (pow.f64 y 2) (pow.f64 z 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(pow.f64 x 2)
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(pow.f64 x 2)
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(-.f64 (pow.f64 x 2) (pow.f64 z 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(pow.f64 y 2)
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(pow.f64 y 2)
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 -1 (pow.f64 z 2))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2)))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2)))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2)))
(*.f64 -1 (pow.f64 z 2))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2)))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2)))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2)))
Outputs
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 y 2) (pow.f64 z 2)) y))
(*.f64 1/2 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y))
(*.f64 (/.f64 1/2 y) (-.f64 (*.f64 y y) (*.f64 z z)))
(*.f64 1/2 (-.f64 y (*.f64 z (/.f64 z y))))
(*.f64 1/2 (fma.f64 (/.f64 z y) (neg.f64 z) y))
(+.f64 (*.f64 1/2 (/.f64 (-.f64 (pow.f64 y 2) (pow.f64 z 2)) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 (/.f64 (-.f64 (pow.f64 y 2) (pow.f64 z 2)) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 (/.f64 (-.f64 (pow.f64 y 2) (pow.f64 z 2)) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(+.f64 (*.f64 1/2 (-.f64 y (/.f64 (pow.f64 z 2) y))) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 (-.f64 y (/.f64 (pow.f64 z 2) y))) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 (-.f64 y (/.f64 (pow.f64 z 2) y))) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(+.f64 (*.f64 1/2 (-.f64 y (/.f64 (pow.f64 z 2) y))) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 (-.f64 y (/.f64 (pow.f64 z 2) y))) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 (-.f64 y (/.f64 (pow.f64 z 2) y))) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(*.f64 1/2 (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (-.f64 (*.f64 x x) (*.f64 z z)) (/.f64 1/2 y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(*.f64 1/2 y)
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(*.f64 1/2 y)
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(*.f64 1/2 (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) y))
(*.f64 1/2 (/.f64 (+.f64 (*.f64 y y) (*.f64 x x)) y))
(*.f64 1/2 (/.f64 (fma.f64 y y (*.f64 x x)) y))
(/.f64 1/2 (/.f64 y (fma.f64 x x (*.f64 y y))))
(*.f64 (fma.f64 y y (*.f64 x x)) (/.f64 1/2 y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(*.f64 (*.f64 -1/2 (/.f64 z y)) z)
(*.f64 (*.f64 z z) (/.f64 -1/2 y))
(+.f64 (*.f64 1/2 (+.f64 y (/.f64 (pow.f64 x 2) y))) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 (+.f64 y (/.f64 (pow.f64 x 2) y))) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 (+.f64 y (/.f64 (pow.f64 x 2) y))) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(*.f64 (*.f64 -1/2 (/.f64 z y)) z)
(*.f64 (*.f64 z z) (/.f64 -1/2 y))
(+.f64 (*.f64 1/2 (+.f64 y (/.f64 (pow.f64 x 2) y))) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 (+.f64 y (/.f64 (pow.f64 x 2) y))) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(+.f64 (*.f64 1/2 (+.f64 y (/.f64 (pow.f64 x 2) y))) (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) y) (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 1 y) (/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) y)))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z))))
(*.f64 1/2 (fma.f64 (/.f64 (+.f64 z x) y) (-.f64 x z) y))
(-.f64 (pow.f64 y 2) (pow.f64 z 2))
(-.f64 (*.f64 y y) (*.f64 z z))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(pow.f64 x 2)
(*.f64 x x)
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(pow.f64 x 2)
(*.f64 x x)
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(-.f64 (pow.f64 x 2) (pow.f64 z 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(pow.f64 y 2)
(*.f64 y y)
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(pow.f64 y 2)
(*.f64 y y)
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (pow.f64 z 2))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 y y (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(*.f64 -1 (pow.f64 z 2))
(neg.f64 (*.f64 z z))
(*.f64 z (neg.f64 z))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2)))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2)))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2)))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(*.f64 -1 (pow.f64 z 2))
(neg.f64 (*.f64 z z))
(*.f64 z (neg.f64 z))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2)))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2)))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2)))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 z z)))
(-.f64 (fma.f64 y y (*.f64 x x)) (*.f64 z z))
(-.f64 (fma.f64 x x (*.f64 y y)) (*.f64 z z))

eval256.0ms (2%)

Compiler

Compiled 8368 to 3872 computations (53.7% saved)

prune190.0ms (1.5%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New38914403
Fresh000
Picked101
Done101
Total39114405
Error
0.0b
Counts
405 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
30.0b
(*.f64 y 1/2)
26.3b
(*.f64 -1/2 (-.f64 (pow.f64 (*.f64 y (pow.f64 (hypot.f64 z x) -2)) -1) y))
38.6b
(*.f64 -1/2 (-.f64 (pow.f64 (/.f64 (hypot.f64 z x) (sqrt.f64 y)) 2) y))
8.2b
(fma.f64 (/.f64 (hypot.f64 x y) (pow.f64 (cbrt.f64 (+.f64 y y)) 2)) (/.f64 (hypot.f64 x y) (cbrt.f64 (+.f64 y y))) (neg.f64 (*.f64 (*.f64 z z) (/.f64 1/2 y))))
51.4b
(/.f64 (*.f64 z (neg.f64 z)) (*.f64 y 2))
15.3b
(*.f64 -1/2 (-.f64 (*.f64 z (/.f64 z y)) y))
51.4b
(*.f64 (*.f64 z z) (/.f64 -1/2 y))
48.9b
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
39.3b
(/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) (*.f64 y 2))
50.8b
(/.f64 (*.f64 x x) (*.f64 y 2))
48.0b
(*.f64 1/2 (/.f64 x (/.f64 y x)))
38.7b
(/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) (*.f64 y 2))
47.8b
(*.f64 x (*.f64 x (/.f64 1/2 y)))
15.3b
(*.f64 -1/2 (-.f64 (*.f64 x (neg.f64 (/.f64 x y))) y))
Compiler

Compiled 362 to 244 computations (32.6% saved)

localize59.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (hypot.f64 x y) (cbrt.f64 (+.f64 y y)))
0.5b
(pow.f64 (cbrt.f64 (+.f64 y y)) 2)
0.6b
(cbrt.f64 (+.f64 y y))
9.8b
(*.f64 (*.f64 z z) (/.f64 1/2 y))
Compiler

Compiled 90 to 32 computations (64.4% saved)

series38.0ms (0.3%)

Counts
4 → 36
Calls

18 calls:

TimeVariablePointExpression
8.0ms
x
@0
(/.f64 (hypot.f64 x y) (cbrt.f64 (+.f64 y y)))
3.0ms
y
@inf
(pow.f64 (cbrt.f64 (+.f64 y y)) 2)
3.0ms
y
@0
(/.f64 (hypot.f64 x y) (cbrt.f64 (+.f64 y y)))
3.0ms
x
@inf
(/.f64 (hypot.f64 x y) (cbrt.f64 (+.f64 y y)))
2.0ms
y
@inf
(/.f64 (hypot.f64 x y) (cbrt.f64 (+.f64 y y)))

rewrite78.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
537×log-prod_binary64
293×pow2_binary64
286×prod-diff_binary64
253×pow-unpow_binary64
205×pow1/3_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01440
130540
241014
Stop Event
node limit
Counts
4 → 4
Calls
Call 1
Inputs
(*.f64 (*.f64 z z) (/.f64 1/2 y))
(cbrt.f64 (+.f64 y y))
(pow.f64 (cbrt.f64 (+.f64 y y)) 2)
(/.f64 (hypot.f64 x y) (cbrt.f64 (+.f64 y y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x . 1)))) (#(struct:change #<rule egg-rr> (2) ((x . z)))))
((#(struct:change #<rule egg-rr> (2) ((x . 1)))) (#(struct:change #<rule egg-rr> (2) ((x . z)))))
((#(struct:change #<rule egg-rr> (2) ((x . 1)))) (#(struct:change #<rule egg-rr> (2) ((x . z)))))
((#(struct:change #<rule egg-rr> (2) ((x . 1)))) (#(struct:change #<rule egg-rr> (2) ((x . z)))))

simplify85.0ms (0.7%)

Algorithm
egg-herbie
Rules
603×fma-neg_binary64
572×cancel-sign-sub-inv_binary64
458×distribute-rgt-neg-in_binary64
371×fma-def_binary64
309×associate-*l*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
098815
1285764
2857764
33482764
45500764
Stop Event
node limit
Counts
40 → 27
Calls
Call 1
Inputs
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (/.f64 1 (cbrt.f64 2)))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 y 4)) 1/3) (/.f64 (pow.f64 x 2) (cbrt.f64 2)))) (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (/.f64 1 (cbrt.f64 2))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 y 4)) 1/3) (/.f64 (pow.f64 x 2) (cbrt.f64 2)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 (/.f64 1 (pow.f64 y 10)) 1/3) (/.f64 (pow.f64 x 4) (cbrt.f64 2)))) (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (/.f64 1 (cbrt.f64 2)))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 y 4)) 1/3) (/.f64 (pow.f64 x 2) (cbrt.f64 2)))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 (/.f64 1 (pow.f64 y 16)) 1/3) (/.f64 (pow.f64 x 6) (cbrt.f64 2)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 (/.f64 1 (pow.f64 y 10)) 1/3) (/.f64 (pow.f64 x 4) (cbrt.f64 2)))) (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (/.f64 1 (cbrt.f64 2))))))
(*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2)))
(+.f64 (*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2))) (*.f64 1/2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 5)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) x)))))
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 11)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 3))))) (+.f64 (*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2))) (*.f64 1/2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 5)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) x))))))
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 11)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 3))))) (+.f64 (*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 5)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) x)))) (*.f64 1/16 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 17)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 5))))))))
(*.f64 -1 (*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2)))) (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 5)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) x)))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2)))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 5)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) x)))) (*.f64 1/8 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 11)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 3)))))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2)))) (+.f64 (*.f64 -1/16 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 17)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 5))))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 5)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) x)))) (*.f64 1/8 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 11)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 3))))))))
Outputs
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 1/2 (/.f64 (*.f64 z z) y))
(*.f64 1/2 (/.f64 z (/.f64 y z)))
(*.f64 1/2 (*.f64 (/.f64 z y) z))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (/.f64 1 (cbrt.f64 2)))
(*.f64 (cbrt.f64 (*.f64 y y)) (/.f64 1 (cbrt.f64 2)))
(/.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 2))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 y 4)) 1/3) (/.f64 (pow.f64 x 2) (cbrt.f64 2)))) (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (/.f64 1 (cbrt.f64 2))))
(fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 4))) (/.f64 (*.f64 x x) (cbrt.f64 2))) (*.f64 (cbrt.f64 (*.f64 y y)) (/.f64 1 (cbrt.f64 2))))
(fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 4))) (/.f64 (*.f64 x x) (cbrt.f64 2))) (/.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 2)))
(fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 4))) (*.f64 (/.f64 x (cbrt.f64 2)) x)) (/.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 2)))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 y 4)) 1/3) (/.f64 (pow.f64 x 2) (cbrt.f64 2)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 (/.f64 1 (pow.f64 y 10)) 1/3) (/.f64 (pow.f64 x 4) (cbrt.f64 2)))) (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (/.f64 1 (cbrt.f64 2)))))
(fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 4))) (/.f64 (*.f64 x x) (cbrt.f64 2))) (fma.f64 -1/8 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 10))) (/.f64 (pow.f64 x 4) (cbrt.f64 2))) (*.f64 (cbrt.f64 (*.f64 y y)) (/.f64 1 (cbrt.f64 2)))))
(fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 4))) (/.f64 (*.f64 x x) (cbrt.f64 2))) (fma.f64 -1/8 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 10))) (/.f64 (pow.f64 x 4) (cbrt.f64 2))) (/.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 2))))
(fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 4))) (*.f64 (/.f64 x (cbrt.f64 2)) x)) (fma.f64 -1/8 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 10))) (/.f64 (pow.f64 x 4) (cbrt.f64 2))) (/.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 2))))
(fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 4))) (*.f64 (/.f64 x (cbrt.f64 2)) x)) (fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 10))) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (cbrt.f64 2))) (/.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 2))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 y 4)) 1/3) (/.f64 (pow.f64 x 2) (cbrt.f64 2)))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 (/.f64 1 (pow.f64 y 16)) 1/3) (/.f64 (pow.f64 x 6) (cbrt.f64 2)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 (/.f64 1 (pow.f64 y 10)) 1/3) (/.f64 (pow.f64 x 4) (cbrt.f64 2)))) (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (/.f64 1 (cbrt.f64 2))))))
(fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 4))) (/.f64 (*.f64 x x) (cbrt.f64 2))) (fma.f64 1/16 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 16))) (/.f64 (pow.f64 x 6) (cbrt.f64 2))) (fma.f64 -1/8 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 10))) (/.f64 (pow.f64 x 4) (cbrt.f64 2))) (*.f64 (cbrt.f64 (*.f64 y y)) (/.f64 1 (cbrt.f64 2))))))
(fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 4))) (/.f64 (*.f64 x x) (cbrt.f64 2))) (fma.f64 1/16 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 16))) (/.f64 (pow.f64 x 6) (cbrt.f64 2))) (fma.f64 -1/8 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 10))) (/.f64 (pow.f64 x 4) (cbrt.f64 2))) (/.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 2)))))
(fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 4))) (*.f64 (/.f64 x (cbrt.f64 2)) x)) (fma.f64 -1/8 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 10))) (/.f64 (pow.f64 x 4) (cbrt.f64 2))) (fma.f64 1/16 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 16))) (/.f64 (pow.f64 x 6) (cbrt.f64 2))) (/.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 2)))))
(fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 4))) (*.f64 (/.f64 x (cbrt.f64 2)) x)) (fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 10))) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (cbrt.f64 2))) (fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 y 16))) (*.f64 1/16 (/.f64 (pow.f64 x 6) (cbrt.f64 2))) (/.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 2)))))
(*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2)))
(*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)))
(+.f64 (*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2))) (*.f64 1/2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 5)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) x)))))
(fma.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)) (*.f64 (*.f64 1/2 (cbrt.f64 (pow.f64 y 5))) (/.f64 1 (*.f64 (cbrt.f64 2) x))))
(fma.f64 1/2 (/.f64 (/.f64 (cbrt.f64 (pow.f64 y 5)) (cbrt.f64 2)) x) (*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2))))
(fma.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)) (/.f64 (*.f64 1/2 (/.f64 (cbrt.f64 (pow.f64 y 5)) x)) (cbrt.f64 2)))
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 11)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 3))))) (+.f64 (*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2))) (*.f64 1/2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 5)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) x))))))
(fma.f64 -1/8 (*.f64 (cbrt.f64 (pow.f64 y 11)) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 3)))) (fma.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)) (*.f64 (*.f64 1/2 (cbrt.f64 (pow.f64 y 5))) (/.f64 1 (*.f64 (cbrt.f64 2) x)))))
(fma.f64 -1/8 (/.f64 (cbrt.f64 (pow.f64 y 11)) (*.f64 (cbrt.f64 2) (pow.f64 x 3))) (fma.f64 1/2 (/.f64 (/.f64 (cbrt.f64 (pow.f64 y 5)) (cbrt.f64 2)) x) (*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)))))
(fma.f64 -1/8 (/.f64 (/.f64 (cbrt.f64 (pow.f64 y 11)) (pow.f64 x 3)) (cbrt.f64 2)) (fma.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)) (/.f64 (*.f64 1/2 (/.f64 (cbrt.f64 (pow.f64 y 5)) x)) (cbrt.f64 2))))
(fma.f64 1/2 (/.f64 (cbrt.f64 (pow.f64 y 5)) (*.f64 (cbrt.f64 2) x)) (fma.f64 -1/8 (/.f64 (cbrt.f64 (pow.f64 y 11)) (*.f64 (cbrt.f64 2) (pow.f64 x 3))) (*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)))))
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 11)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 3))))) (+.f64 (*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 5)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) x)))) (*.f64 1/16 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 17)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 5))))))))
(fma.f64 -1/8 (*.f64 (cbrt.f64 (pow.f64 y 11)) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 3)))) (fma.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)) (fma.f64 1/2 (*.f64 (cbrt.f64 (pow.f64 y 5)) (/.f64 1 (*.f64 (cbrt.f64 2) x))) (*.f64 (*.f64 1/16 (cbrt.f64 (pow.f64 y 17))) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 5)))))))
(fma.f64 -1/8 (/.f64 (cbrt.f64 (pow.f64 y 11)) (*.f64 (cbrt.f64 2) (pow.f64 x 3))) (fma.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)) (fma.f64 1/2 (/.f64 (/.f64 (cbrt.f64 (pow.f64 y 5)) (cbrt.f64 2)) x) (*.f64 1/16 (/.f64 (/.f64 (cbrt.f64 (pow.f64 y 17)) (cbrt.f64 2)) (pow.f64 x 5))))))
(fma.f64 -1/8 (/.f64 (/.f64 (cbrt.f64 (pow.f64 y 11)) (pow.f64 x 3)) (cbrt.f64 2)) (fma.f64 1/2 (/.f64 (cbrt.f64 (pow.f64 y 5)) (*.f64 (cbrt.f64 2) x)) (fma.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)) (*.f64 (/.f64 (cbrt.f64 (pow.f64 y 17)) (cbrt.f64 2)) (/.f64 1/16 (pow.f64 x 5))))))
(fma.f64 -1/8 (/.f64 (cbrt.f64 (pow.f64 y 11)) (*.f64 (cbrt.f64 2) (pow.f64 x 3))) (fma.f64 1/2 (/.f64 (cbrt.f64 (pow.f64 y 5)) (*.f64 (cbrt.f64 2) x)) (fma.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)) (*.f64 (/.f64 (cbrt.f64 (pow.f64 y 17)) (cbrt.f64 2)) (/.f64 1/16 (pow.f64 x 5))))))
(*.f64 -1 (*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2))))
(neg.f64 (*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2))))
(*.f64 (cbrt.f64 (/.f64 1 y)) (neg.f64 (/.f64 x (cbrt.f64 2))))
(*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 (neg.f64 x) (cbrt.f64 2)))
(*.f64 (/.f64 x (cbrt.f64 2)) (neg.f64 (cbrt.f64 (/.f64 1 y))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2)))) (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 5)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) x)))))
(fma.f64 -1 (*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2))) (*.f64 (*.f64 -1/2 (cbrt.f64 (pow.f64 y 5))) (/.f64 1 (*.f64 (cbrt.f64 2) x))))
(-.f64 (*.f64 (/.f64 (/.f64 (cbrt.f64 (pow.f64 y 5)) (cbrt.f64 2)) x) -1/2) (*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2))))
(fma.f64 (/.f64 x (cbrt.f64 2)) (neg.f64 (cbrt.f64 (/.f64 1 y))) (/.f64 (*.f64 (/.f64 (cbrt.f64 (pow.f64 y 5)) x) -1/2) (cbrt.f64 2)))
(neg.f64 (fma.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)) (/.f64 (*.f64 1/2 (/.f64 (cbrt.f64 (pow.f64 y 5)) x)) (cbrt.f64 2))))
(-.f64 (*.f64 (cbrt.f64 (pow.f64 y 5)) (/.f64 -1/2 (*.f64 (cbrt.f64 2) x))) (*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2)))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 5)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) x)))) (*.f64 1/8 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 11)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 3)))))))
(fma.f64 -1 (*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2))) (fma.f64 -1/2 (*.f64 (cbrt.f64 (pow.f64 y 5)) (/.f64 1 (*.f64 (cbrt.f64 2) x))) (*.f64 (*.f64 (cbrt.f64 (pow.f64 y 11)) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 3)))) 1/8)))
(-.f64 (fma.f64 (/.f64 (/.f64 (cbrt.f64 (pow.f64 y 5)) (cbrt.f64 2)) x) -1/2 (*.f64 (/.f64 (cbrt.f64 (pow.f64 y 11)) (*.f64 (cbrt.f64 2) (pow.f64 x 3))) 1/8)) (*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2))))
(-.f64 (fma.f64 (/.f64 (/.f64 (cbrt.f64 (pow.f64 y 11)) (pow.f64 x 3)) (cbrt.f64 2)) 1/8 (/.f64 (*.f64 (/.f64 (cbrt.f64 (pow.f64 y 5)) x) -1/2) (cbrt.f64 2))) (*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2))))
(-.f64 (/.f64 (/.f64 (*.f64 (cbrt.f64 (pow.f64 y 11)) 1/8) (cbrt.f64 2)) (pow.f64 x 3)) (fma.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)) (/.f64 (*.f64 1/2 (/.f64 (cbrt.f64 (pow.f64 y 5)) x)) (cbrt.f64 2))))
(-.f64 (*.f64 (cbrt.f64 (pow.f64 y 11)) (/.f64 1/8 (*.f64 (cbrt.f64 2) (pow.f64 x 3)))) (fma.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)) (/.f64 (*.f64 1/2 (/.f64 (cbrt.f64 (pow.f64 y 5)) x)) (cbrt.f64 2))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 y) 1/3) (/.f64 x (cbrt.f64 2)))) (+.f64 (*.f64 -1/16 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 17)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 5))))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 5)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) x)))) (*.f64 1/8 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 11)) 1/3) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 3))))))))
(fma.f64 -1 (*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2))) (fma.f64 -1/16 (*.f64 (cbrt.f64 (pow.f64 y 17)) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 5)))) (fma.f64 -1/2 (*.f64 (cbrt.f64 (pow.f64 y 5)) (/.f64 1 (*.f64 (cbrt.f64 2) x))) (*.f64 (*.f64 (cbrt.f64 (pow.f64 y 11)) (/.f64 1 (*.f64 (cbrt.f64 2) (pow.f64 x 3)))) 1/8))))
(-.f64 (fma.f64 (/.f64 (/.f64 (cbrt.f64 (pow.f64 y 17)) (cbrt.f64 2)) (pow.f64 x 5)) -1/16 (fma.f64 (/.f64 (/.f64 (cbrt.f64 (pow.f64 y 5)) (cbrt.f64 2)) x) -1/2 (*.f64 (/.f64 (cbrt.f64 (pow.f64 y 11)) (*.f64 (cbrt.f64 2) (pow.f64 x 3))) 1/8))) (*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2))))
(-.f64 (fma.f64 (cbrt.f64 (pow.f64 y 5)) (/.f64 -1/2 (*.f64 (cbrt.f64 2) x)) (fma.f64 (cbrt.f64 (pow.f64 y 11)) (/.f64 1/8 (*.f64 (cbrt.f64 2) (pow.f64 x 3))) (*.f64 (cbrt.f64 (pow.f64 y 17)) (/.f64 -1/16 (*.f64 (cbrt.f64 2) (pow.f64 x 5)))))) (*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2))))
(-.f64 (*.f64 (/.f64 1 (cbrt.f64 2)) (+.f64 (/.f64 (*.f64 (cbrt.f64 (pow.f64 y 5)) -1/2) x) (/.f64 (*.f64 (cbrt.f64 (pow.f64 y 17)) -1/16) (pow.f64 x 5)))) (fma.f64 -1/8 (/.f64 (/.f64 (cbrt.f64 (pow.f64 y 11)) (pow.f64 x 3)) (cbrt.f64 2)) (*.f64 (cbrt.f64 (/.f64 1 y)) (/.f64 x (cbrt.f64 2)))))
(fma.f64 (cbrt.f64 (pow.f64 y 11)) (/.f64 1/8 (*.f64 (cbrt.f64 2) (pow.f64 x 3))) (fma.f64 (cbrt.f64 (pow.f64 y 5)) (/.f64 -1/2 (*.f64 (cbrt.f64 2) x)) (fma.f64 (/.f64 x (cbrt.f64 2)) (neg.f64 (cbrt.f64 (/.f64 1 y))) (/.f64 (/.f64 (*.f64 (cbrt.f64 (pow.f64 y 17)) -1/16) (cbrt.f64 2)) (pow.f64 x 5)))))

localize5.0ms (0%)

Compiler

Compiled 8 to 6 computations (25% saved)

localize17.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
0.2b
(*.f64 z (/.f64 -1/2 y))
Compiler

Compiled 21 to 13 computations (38.1% saved)

series12.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite113.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
722×pow1_binary64
670×add-log-exp_binary64
669×log1p-expm1-u_binary64
669×expm1-log1p-u_binary64
657×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify118.0ms (0.9%)

Algorithm
egg-herbie
Rules
1371×associate-*l/_binary64
1103×associate-*r/_binary64
349×sqr-pow_binary64
314×*-commutative_binary64
243×associate-/l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010408
121408
238408
370408
4192408
5687408
61820408
72839408
82949408
93090408
103268408
113542408
123870408
135354408
Stop Event
node limit
Counts
89 → 45
Calls
Call 1
Inputs
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 z y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
Outputs
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 z y))
(/.f64 (*.f64 -1/2 z) y)
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 z (/.f64 (*.f64 -1/2 z) y))

localize47.0ms (0.4%)

Local error

Found 1 expressions with local error:

NewErrorProgram
9.7b
(/.f64 (*.f64 z (neg.f64 z)) (*.f64 y 2))
Compiler

Compiled 23 to 11 computations (52.2% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite73.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
831×pow1_binary64
774×add-log-exp_binary64
773×log1p-expm1-u_binary64
773×expm1-log1p-u_binary64
758×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify143.0ms (1.1%)

Algorithm
egg-herbie
Rules
682×associate-/l/_binary64
528×associate-*l*_binary64
493×*-commutative_binary64
470×sqr-pow_binary64
437×associate-*l/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08240
116240
231240
362240
4169240
5615240
62654240
73723240
83933240
94152240
104380240
114718240
126225240
136892240
147688240
Stop Event
node limit
Counts
64 → 42
Calls
Call 1
Inputs
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
Outputs
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))

localize20.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
1.1b
(-.f64 (*.f64 x x) (*.f64 z z))
13.8b
(/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) (*.f64 y 2))
Compiler

Compiled 34 to 12 computations (64.7% saved)

series11.0ms (0.1%)

Counts
2 → 60
Calls

15 calls:

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

rewrite191.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
620×log-prod_binary64
414×fma-def_binary64
359×pow-prod-down_binary64
300×pow2_binary64
207×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify72.0ms (0.6%)

Algorithm
egg-herbie
Rules
678×associate-/r/_binary64
625×distribute-rgt-in_binary64
583×distribute-lft-in_binary64
415×associate-*l*_binary64
404×associate-/l/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
020870
145870
2101870
3238750
4778750
53282750
Stop Event
node limit
Counts
281 → 234
Calls
Call 1
Inputs
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(*.f64 -1 (pow.f64 z 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(*.f64 -1 (pow.f64 z 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(*.f64 -1 (pow.f64 z 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
Outputs
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 (*.f64 z z) (/.f64 -1/2 y))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(/.f64 (*.f64 x x) (/.f64 y 1/2))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 (*.f64 x x) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(/.f64 (*.f64 x x) (/.f64 y 1/2))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 (*.f64 x x) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(/.f64 (*.f64 x x) (/.f64 y 1/2))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 (*.f64 x x) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 (*.f64 z z) (/.f64 -1/2 y))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 (*.f64 z z) (/.f64 -1/2 y))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 z 2) y)) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 1/2 (/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y))
(fma.f64 -1/2 (/.f64 (*.f64 z z) y) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 -1/2 (/.f64 z (/.f64 y z)) (/.f64 (*.f64 x x) (/.f64 y 1/2)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 z x) y) (-.f64 x z)))
(*.f64 (fma.f64 x x (neg.f64 (*.f64 z z))) (/.f64 1/2 y))
(*.f64 -1 (pow.f64 z 2))
(neg.f64 (*.f64 z z))
(*.f64 z (neg.f64 z))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(*.f64 -1 (pow.f64 z 2))
(neg.f64 (*.f64 z z))
(*.f64 z (neg.f64 z))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(*.f64 -1 (pow.f64 z 2))
(neg.f64 (*.f64 z z))
(*.f64 z (neg.f64 z))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))
(+.f64 (*.f64 -1 (pow.f64 z 2)) (pow.f64 x 2))
(-.f64 (*.f64 x x) (*.f64 z z))
(*.f64 (+.f64 z x) (-.f64 x z))
(fma.f64 x x (neg.f64 (*.f64 z z)))

eval190.0ms (1.5%)

Compiler

Compiled 6855 to 3093 computations (54.9% saved)

prune128.0ms (1%)

Pruning

17 alts after pruning (14 fresh and 3 done)

PrunedKeptTotal
New3417348
Fresh279
Picked011
Done224
Total34517362
Error
0b
Counts
362 → 17
Alt Table
Click to see full alt table
StatusErrorProgram
48.9b
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
20.4b
(fma.f64 (/.f64 (hypot.f64 x y) (pow.f64 (cbrt.f64 (+.f64 y y)) 2)) (/.f64 (hypot.f64 x y) (cbrt.f64 (+.f64 y y))) (neg.f64 1))
51.4b
(/.f64 (*.f64 (*.f64 z z) -1/2) y)
39.3b
(/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) (*.f64 y 2))
48.8b
(*.f64 z (/.f64 (*.f64 z -1/2) y))
48.5b
(*.f64 (/.f64 (+.f64 x z) (sqrt.f64 (+.f64 y y))) (/.f64 (-.f64 x z) (sqrt.f64 (+.f64 y y))))
15.3b
(*.f64 -1/2 (-.f64 (*.f64 z (/.f64 z y)) y))
51.4b
(*.f64 (*.f64 z z) (/.f64 -1/2 y))
47.8b
(*.f64 x (*.f64 x (/.f64 1/2 y)))
57.0b
(pow.f64 (*.f64 z (sqrt.f64 (/.f64 -1/2 y))) 2)
33.8b
(pow.f64 (/.f64 (/.f64 (+.f64 y y) (+.f64 x z)) (-.f64 x z)) -1)
50.8b
(/.f64 (*.f64 x x) (*.f64 y 2))
48.0b
(*.f64 1/2 (/.f64 x (/.f64 y x)))
30.0b
(*.f64 y 1/2)
38.7b
(/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) (*.f64 y 2))
49.1b
(pow.f64 (cbrt.f64 (*.f64 z (*.f64 z (/.f64 -1/2 y)))) 3)
15.3b
(*.f64 -1/2 (-.f64 (*.f64 x (neg.f64 (/.f64 x y))) y))
Compiler

Compiled 396 to 261 computations (34.1% saved)

localize21.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 x (neg.f64 (/.f64 x y)))
0.2b
(*.f64 -1/2 (-.f64 (*.f64 x (neg.f64 (/.f64 x y))) y))
Compiler

Compiled 37 to 10 computations (73% saved)

series11.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite100.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
693×prod-diff_binary64
476×log-prod_binary64
284×pow-prod-down_binary64
246×fma-def_binary64
240×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify131.0ms (1%)

Algorithm
egg-herbie
Rules
1003×fma-neg_binary64
544×fma-def_binary64
439×distribute-lft-neg-in_binary64
418×distribute-rgt-neg-in_binary64
389×associate-*l/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
012492
129492
256492
3103456
4282456
51032456
62847456
74701456
86260456
97872456
Stop Event
node limit
Counts
104 → 63
Calls
Call 1
Inputs
(*.f64 1/2 y)
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 y)
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 y)
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
Outputs
(*.f64 1/2 y)
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(/.f64 (*.f64 (*.f64 1/2 x) x) y)
(*.f64 1/2 (*.f64 (/.f64 x y) x))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 (*.f64 x x) (/.f64 1/2 y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(/.f64 (*.f64 (*.f64 1/2 x) x) y)
(*.f64 1/2 (*.f64 (/.f64 x y) x))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 (*.f64 x x) (/.f64 1/2 y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(/.f64 (*.f64 (*.f64 1/2 x) x) y)
(*.f64 1/2 (*.f64 (/.f64 x y) x))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 (*.f64 x x) (/.f64 1/2 y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(*.f64 1/2 y)
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(*.f64 1/2 y)
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(*.f64 1/2 (+.f64 y (/.f64 (*.f64 x x) y)))
(*.f64 1/2 (+.f64 y (/.f64 x (/.f64 y x))))
(*.f64 1/2 (+.f64 y (*.f64 (/.f64 x y) x)))
(*.f64 1/2 (fma.f64 (/.f64 x y) x y))
(*.f64 1/2 (fma.f64 x (/.f64 x y) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))
(*.f64 -1 (/.f64 (pow.f64 x 2) y))
(neg.f64 (/.f64 (*.f64 x x) y))
(/.f64 (neg.f64 (*.f64 x x)) y)
(/.f64 (*.f64 x (neg.f64 x)) y)
(*.f64 (neg.f64 x) (/.f64 x y))
(/.f64 (neg.f64 x) (/.f64 y x))
(*.f64 x (/.f64 (neg.f64 x) y))

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(/.f64 x (/.f64 y x))
0.2b
(*.f64 1/2 (/.f64 x (/.f64 y x)))
Compiler

Compiled 21 to 8 computations (61.9% saved)

series7.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite80.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
834×pow1_binary64
776×add-log-exp_binary64
776×log1p-expm1-u_binary64
776×expm1-log1p-u_binary64
760×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify188.0ms (1.5%)

Algorithm
egg-herbie
Rules
715×associate-/l/_binary64
524×associate-*l*_binary64
508×*-commutative_binary64
470×sqr-pow_binary64
446×associate-*l/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08408
116408
230408
361408
4166408
5608408
62641408
73711408
83921408
94141408
104369408
114706408
126267408
136934408
147732408
Stop Event
node limit
Counts
108 → 63
Calls
Call 1
Inputs
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
Outputs
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))

localize19.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
9.8b
(*.f64 (*.f64 z z) (/.f64 -1/2 y))
Compiler

Compiled 19 to 10 computations (47.4% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite85.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
705×pow1_binary64
656×add-log-exp_binary64
655×log1p-expm1-u_binary64
655×expm1-log1p-u_binary64
641×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify156.0ms (1.2%)

Algorithm
egg-herbie
Rules
682×associate-/l/_binary64
528×associate-*l*_binary64
493×*-commutative_binary64
470×sqr-pow_binary64
437×associate-*l/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08240
116240
231240
362240
4169240
5615240
62654240
73723240
83933240
94152240
104380240
114718240
126225240
136892240
147688240
Stop Event
node limit
Counts
46 → 24
Calls
Call 1
Inputs
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
Outputs
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(*.f64 -1/2 (/.f64 z (/.f64 y z)))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))

localize15.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 z (/.f64 z y))
Compiler

Compiled 30 to 9 computations (70% saved)

series4.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite64.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
568×pow1_binary64
525×add-log-exp_binary64
525×log1p-expm1-u_binary64
525×expm1-log1p-u_binary64
513×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify132.0ms (1%)

Algorithm
egg-herbie
Rules
759×sqr-pow_binary64
434×unswap-sqr_binary64
423×*-commutative_binary64
423×associate-*r/_binary64
393×associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
06168
111168
220168
337168
483168
5266168
61091168
73478168
84280168
94465168
104681168
115028168
125456168
135935168
146584168
157273168
Stop Event
node limit
Counts
44 → 22
Calls
Call 1
Inputs
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
Outputs
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))

localize14.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (/.f64 -1/2 y))
0.1b
(pow.f64 (*.f64 z (sqrt.f64 (/.f64 -1/2 y))) 2)
0.1b
(*.f64 z (sqrt.f64 (/.f64 -1/2 y)))
Compiler

Compiled 28 to 20 computations (28.6% saved)

series18.0ms (0.1%)

Counts
3 → 24
Calls

15 calls:

TimeVariablePointExpression
6.0ms
y
@-inf
(pow.f64 (*.f64 z (sqrt.f64 (/.f64 -1/2 y))) 2)
1.0ms
z
@0
(*.f64 z (sqrt.f64 (/.f64 -1/2 y)))
1.0ms
z
@-inf
(*.f64 z (sqrt.f64 (/.f64 -1/2 y)))
1.0ms
y
@0
(pow.f64 (*.f64 z (sqrt.f64 (/.f64 -1/2 y))) 2)
1.0ms
y
@0
(*.f64 z (sqrt.f64 (/.f64 -1/2 y)))

rewrite75.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
812×pow1_binary64
755×add-log-exp_binary64
754×log1p-expm1-u_binary64
754×expm1-log1p-u_binary64
736×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify157.0ms (1.2%)

Algorithm
egg-herbie
Rules
774×associate-*l/_binary64
697×unswap-sqr_binary64
621×associate-*r/_binary64
502×sqr-pow_binary64
308×*-commutative_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
015348
131288
263288
3168288
4734288
52224288
63776288
74691288
85978288
96166288
106385288
116671288
127036288
137490288
Stop Event
node limit
Counts
91 → 70
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
Outputs
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 z (sqrt.f64 -1/2)))
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 z z) (/.f64 y (pow.f64 (sqrt.f64 -1/2) 2)))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(/.f64 (*.f64 z -1/2) (/.f64 y z))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 z z) (/.f64 y (pow.f64 (sqrt.f64 -1/2) 2)))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(/.f64 (*.f64 z -1/2) (/.f64 y z))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 z z) (/.f64 y (pow.f64 (sqrt.f64 -1/2) 2)))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(/.f64 (*.f64 z -1/2) (/.f64 y z))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 z z) (/.f64 y (pow.f64 (sqrt.f64 -1/2) 2)))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(/.f64 (*.f64 z -1/2) (/.f64 y z))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 z z) (/.f64 y (pow.f64 (sqrt.f64 -1/2) 2)))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(/.f64 (*.f64 z -1/2) (/.f64 y z))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 z z) (/.f64 y (pow.f64 (sqrt.f64 -1/2) 2)))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(/.f64 (*.f64 z -1/2) (/.f64 y z))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 z z) (/.f64 y (pow.f64 (sqrt.f64 -1/2) 2)))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(/.f64 (*.f64 z -1/2) (/.f64 y z))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 z z) (/.f64 y (pow.f64 (sqrt.f64 -1/2) 2)))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(/.f64 (*.f64 z -1/2) (/.f64 y z))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 z z) (/.f64 y (pow.f64 (sqrt.f64 -1/2) 2)))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(/.f64 (*.f64 z -1/2) (/.f64 y z))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 z z) (/.f64 y (pow.f64 (sqrt.f64 -1/2) 2)))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(/.f64 (*.f64 z -1/2) (/.f64 y z))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 z z) (/.f64 y (pow.f64 (sqrt.f64 -1/2) 2)))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(/.f64 (*.f64 z -1/2) (/.f64 y z))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))
(/.f64 (*.f64 (pow.f64 z 2) (pow.f64 (sqrt.f64 -1/2) 2)) y)
(/.f64 (*.f64 z z) (/.f64 y (pow.f64 (sqrt.f64 -1/2) 2)))
(*.f64 (/.f64 (*.f64 z z) y) -1/2)
(/.f64 (*.f64 z -1/2) (/.f64 y z))
(*.f64 -1/2 (*.f64 (/.f64 z y) z))
(*.f64 -1/2 (*.f64 z (/.f64 z y)))

eval76.0ms (0.6%)

Compiler

Compiled 2799 to 1539 computations (45% saved)

prune55.0ms (0.4%)

Pruning

16 alts after pruning (9 fresh and 7 done)

PrunedKeptTotal
New2375242
Fresh549
Picked101
Done077
Total24316259
Error
0b
Counts
259 → 16
Alt Table
Click to see full alt table
StatusErrorProgram
48.9b
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
20.4b
(fma.f64 (/.f64 (hypot.f64 x y) (pow.f64 (cbrt.f64 (+.f64 y y)) 2)) (/.f64 (hypot.f64 x y) (cbrt.f64 (+.f64 y y))) (neg.f64 1))
51.4b
(/.f64 (*.f64 (*.f64 z z) -1/2) y)
39.3b
(/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) (*.f64 y 2))
48.8b
(*.f64 z (/.f64 (*.f64 z -1/2) y))
47.8b
(/.f64 1 (/.f64 (/.f64 y x) (*.f64 1/2 x)))
15.3b
(*.f64 -1/2 (-.f64 (*.f64 z (/.f64 z y)) y))
51.4b
(*.f64 (*.f64 z z) (/.f64 -1/2 y))
50.8b
(/.f64 (*.f64 x x) (*.f64 y 2))
48.0b
(*.f64 1/2 (/.f64 x (/.f64 y x)))
15.3b
(*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y))
30.0b
(*.f64 y 1/2)
38.3b
(*.f64 -1/2 (-.f64 (pow.f64 (/.f64 z (sqrt.f64 y)) 2) y))
48.0b
(*.f64 1/2 (*.f64 (/.f64 x y) x))
51.4b
(/.f64 1 (/.f64 y (*.f64 (*.f64 z z) -1/2)))
15.3b
(*.f64 -1/2 (-.f64 (*.f64 x (neg.f64 (/.f64 x y))) y))
Compiler

Compiled 301 to 206 computations (31.6% saved)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(/.f64 z (/.f64 y z))
Compiler

Compiled 30 to 9 computations (70% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite88.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
637×pow1_binary64
592×add-log-exp_binary64
592×log1p-expm1-u_binary64
592×expm1-log1p-u_binary64
578×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify123.0ms (1%)

Algorithm
egg-herbie
Rules
759×sqr-pow_binary64
434×unswap-sqr_binary64
423×*-commutative_binary64
423×associate-*r/_binary64
393×associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
06168
111168
220168
337168
483168
5266168
61091168
73478168
84280168
94465168
104681168
115028168
125456168
135935168
146584168
157273168
Stop Event
node limit
Counts
62 → 39
Calls
Call 1
Inputs
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
Outputs
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 (/.f64 z y) z)
(*.f64 z (/.f64 z y))

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (/.f64 x y) x)
0.2b
(*.f64 1/2 (*.f64 (/.f64 x y) x))
Compiler

Compiled 21 to 8 computations (61.9% saved)

series3.0ms (0%)

Counts
2 → 48
Calls

12 calls:

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

rewrite111.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
759×pow1_binary64
703×add-log-exp_binary64
703×log1p-expm1-u_binary64
703×expm1-log1p-u_binary64
689×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify161.0ms (1.3%)

Algorithm
egg-herbie
Rules
715×associate-/l/_binary64
524×associate-*l*_binary64
508×*-commutative_binary64
470×sqr-pow_binary64
446×associate-*l/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08408
116408
230408
361408
4166408
5608408
62641408
73711408
83921408
94141408
104369408
114706408
126267408
136934408
147732408
Stop Event
node limit
Counts
83 → 39
Calls
Call 1
Inputs
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
Outputs
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
9.5b
(/.f64 (*.f64 x x) (*.f64 y 2))
Compiler

Compiled 19 to 10 computations (47.4% saved)

series4.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite60.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
825×pow1_binary64
769×add-log-exp_binary64
769×log1p-expm1-u_binary64
769×expm1-log1p-u_binary64
751×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify138.0ms (1.1%)

Algorithm
egg-herbie
Rules
715×associate-/l/_binary64
524×associate-*l*_binary64
508×*-commutative_binary64
470×sqr-pow_binary64
446×associate-*l/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08240
116240
230240
361240
4166240
5608240
62641240
73711240
83921240
94141240
104369240
114706240
126267240
136934240
147732240
Stop Event
node limit
Counts
64 → 42
Calls
Call 1
Inputs
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
Outputs
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))
(*.f64 1/2 (/.f64 (pow.f64 x 2) y))
(*.f64 1/2 (/.f64 (*.f64 x x) y))
(*.f64 1/2 (/.f64 x (/.f64 y x)))
(*.f64 1/2 (*.f64 x (/.f64 x y)))

localize15.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (*.f64 z z) -1/2)
0.6b
(/.f64 1 (/.f64 y (*.f64 (*.f64 z z) -1/2)))
9.4b
(/.f64 y (*.f64 (*.f64 z z) -1/2))
Compiler

Compiled 31 to 16 computations (48.4% saved)

series6.0ms (0%)

Counts
3 → 60
Calls

15 calls:

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

rewrite68.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
939×pow1_binary64
874×add-log-exp_binary64
873×log1p-expm1-u_binary64
873×expm1-log1p-u_binary64
93×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify149.0ms (1.2%)

Algorithm
egg-herbie
Rules
632×times-frac_binary64
594×associate-/l/_binary64
578×sqr-pow_binary64
491×associate-/r*_binary64
483×associate-/l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
012564
123564
247564
3107564
4325564
51242564
64380564
74920564
85020564
95168564
105339564
115607564
125928564
136300564
146759564
157348564
Stop Event
node limit
Counts
164 → 109
Calls
Call 1
Inputs
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 -1/2 (pow.f64 z 2))
Outputs
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -2 (/.f64 y (pow.f64 z 2)))
(/.f64 (*.f64 -2 y) (*.f64 z z))
(*.f64 -2 (/.f64 y (*.f64 z z)))
(*.f64 y (/.f64 -2 (*.f64 z z)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (/.f64 (pow.f64 z 2) y))
(*.f64 -1/2 (/.f64 (*.f64 z z) y))
(/.f64 (*.f64 z z) (/.f64 y -1/2))
(*.f64 (/.f64 -1/2 (/.f64 y z)) z)
(*.f64 z (/.f64 -1/2 (/.f64 y z)))
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 (*.f64 z z) -1/2)
(*.f64 z (*.f64 z -1/2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 (*.f64 z z) -1/2)
(*.f64 z (*.f64 z -1/2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 (*.f64 z z) -1/2)
(*.f64 z (*.f64 z -1/2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 (*.f64 z z) -1/2)
(*.f64 z (*.f64 z -1/2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 (*.f64 z z) -1/2)
(*.f64 z (*.f64 z -1/2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 (*.f64 z z) -1/2)
(*.f64 z (*.f64 z -1/2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 (*.f64 z z) -1/2)
(*.f64 z (*.f64 z -1/2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 (*.f64 z z) -1/2)
(*.f64 z (*.f64 z -1/2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 (*.f64 z z) -1/2)
(*.f64 z (*.f64 z -1/2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 (*.f64 z z) -1/2)
(*.f64 z (*.f64 z -1/2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 (*.f64 z z) -1/2)
(*.f64 z (*.f64 z -1/2))
(*.f64 -1/2 (pow.f64 z 2))
(*.f64 (*.f64 z z) -1/2)
(*.f64 z (*.f64 z -1/2))

localize20.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(/.f64 z (sqrt.f64 y))
0.1b
(pow.f64 (/.f64 z (sqrt.f64 y)) 2)
Compiler

Compiled 37 to 17 computations (54.1% saved)

series11.0ms (0.1%)

Counts
2 → 24
Calls

12 calls:

TimeVariablePointExpression
3.0ms
z
@0
(pow.f64 (/.f64 z (sqrt.f64 y)) 2)
2.0ms
y
@-inf
(pow.f64 (/.f64 z (sqrt.f64 y)) 2)
1.0ms
z
@inf
(pow.f64 (/.f64 z (sqrt.f64 y)) 2)
1.0ms
z
@-inf
(pow.f64 (/.f64 z (sqrt.f64 y)) 2)
1.0ms
y
@0
(pow.f64 (/.f64 z (sqrt.f64 y)) 2)

rewrite85.0ms (0.7%)

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

Useful iterations: 1 (0.0ms)

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

simplify161.0ms (1.3%)

Algorithm
egg-herbie
Rules
759×sqr-pow_binary64
459×*-commutative_binary64
434×unswap-sqr_binary64
423×associate-*r/_binary64
392×associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010192
117192
224192
345192
4102192
5320192
61269192
73666192
84468192
94653192
104869192
115217192
125645192
136124192
146775192
157462192
Stop Event
node limit
Counts
92 → 72
Calls
Call 1
Inputs
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(/.f64 (pow.f64 z 2) y)
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
Outputs
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 z (/.f64 z y))
(/.f64 (pow.f64 z 2) y)
(/.f64 (*.f64 z z) y)
(/.f64 z (/.f64 y z))
(*.f64 z (/.f64 z y))
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 z (sqrt.f64 (/.f64 1 y)))
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 z (sqrt.f64 (/.f64 1 y)))
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 z (sqrt.f64 (/.f64 1 y)))
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 z (sqrt.f64 (/.f64 1 y)))
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 z (sqrt.f64 (/.f64 1 y)))
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 z (sqrt.f64 (/.f64 1 y)))
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 z (sqrt.f64 (/.f64 1 y)))
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 z (sqrt.f64 (/.f64 1 y)))
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 z (sqrt.f64 (/.f64 1 y)))
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 z (sqrt.f64 (/.f64 1 y)))
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 z (sqrt.f64 (/.f64 1 y)))
(*.f64 (sqrt.f64 (/.f64 1 y)) z)
(*.f64 z (sqrt.f64 (/.f64 1 y)))

eval167.0ms (1.3%)

Compiler

Compiled 3723 to 1997 computations (46.4% saved)

prune169.0ms (1.3%)

Pruning

16 alts after pruning (4 fresh and 12 done)

PrunedKeptTotal
New3010301
Fresh044
Picked011
Done01111
Total30116317
Error
0b
Counts
317 → 16
Alt Table
Click to see full alt table
StatusErrorProgram
48.9b
(*.f64 z (*.f64 z (/.f64 -1/2 y)))
20.4b
(fma.f64 (/.f64 (hypot.f64 x y) (pow.f64 (cbrt.f64 (+.f64 y y)) 2)) (/.f64 (hypot.f64 x y) (cbrt.f64 (+.f64 y y))) (neg.f64 1))
51.4b
(/.f64 (*.f64 (*.f64 z z) -1/2) y)
39.3b
(/.f64 (-.f64 (*.f64 x x) (*.f64 z z)) (*.f64 y 2))
48.8b
(*.f64 z (/.f64 (*.f64 z -1/2) y))
47.8b
(/.f64 1 (/.f64 (/.f64 y x) (*.f64 1/2 x)))
15.3b
(*.f64 -1/2 (-.f64 (*.f64 z (/.f64 z y)) y))
51.4b
(*.f64 (*.f64 z z) (/.f64 -1/2 y))
50.8b
(/.f64 (*.f64 x x) (*.f64 y 2))
48.0b
(*.f64 1/2 (/.f64 x (/.f64 y x)))
15.3b
(*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y))
30.0b
(*.f64 y 1/2)
38.3b
(*.f64 -1/2 (-.f64 (pow.f64 (/.f64 z (sqrt.f64 y)) 2) y))
48.0b
(*.f64 1/2 (*.f64 (/.f64 x y) x))
51.4b
(/.f64 1 (/.f64 y (*.f64 (*.f64 z z) -1/2)))
15.3b
(*.f64 -1/2 (-.f64 (*.f64 x (neg.f64 (/.f64 x y))) y))
Compiler

Compiled 188 to 129 computations (31.4% saved)

regimes700.0ms (5.4%)

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

8 calls:

153.0ms
x
142.0ms
y
140.0ms
z
95.0ms
(*.f64 x x)
65.0ms
(/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2))
Results
ErrorSegmentsBranch
4.8b3x
3.2b3y
1.7b3z
2.9b2(/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2))
4.3b3(*.f64 x x)
4.3b3(*.f64 x x)
1.7b2(*.f64 z z)
1.7b2(*.f64 z z)
Compiler

Compiled 351 to 186 computations (47% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
3.6950905998187244e+289
1.3490034490749317e+290
Compiler

Compiled 24 to 16 computations (33.3% saved)

regimes720.0ms (5.6%)

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

8 calls:

187.0ms
z
95.0ms
x
85.0ms
(*.f64 x x)
79.0ms
(/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2))
70.0ms
y
Results
ErrorSegmentsBranch
5.0b3x
3.5b3y
3.9b5z
2.4b3(/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2))
4.3b3(*.f64 x x)
4.3b3(*.f64 x x)
4.4b3(*.f64 z z)
4.4b3(*.f64 z z)
Compiler

Compiled 324 to 178 computations (45.1% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.5562348472717882e+308
+inf
0.0ms
-inf
-6.261641112603469e+300
Compiler

Compiled 24 to 16 computations (33.3% saved)

regimes426.0ms (3.3%)

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

7 calls:

109.0ms
x
104.0ms
y
90.0ms
z
36.0ms
(*.f64 z z)
36.0ms
(*.f64 z z)
Results
ErrorSegmentsBranch
5.0b3x
7.4b3y
6.4b3z
5.3b2(*.f64 x x)
5.3b2(*.f64 x x)
5.9b4(*.f64 z z)
5.9b4(*.f64 z z)
Compiler

Compiled 174 to 100 computations (42.5% saved)

bsearch146.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
77.0ms
8.402344026082175e-54
3.9177493627447754e-53
68.0ms
-1.007238165673285e-48
-6.953893152852054e-49
Compiler

Compiled 24 to 16 computations (33.3% saved)

regimes553.0ms (4.3%)

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

7 calls:

171.0ms
x
131.0ms
(*.f64 x x)
109.0ms
y
95.0ms
(*.f64 x x)
17.0ms
z
Results
ErrorSegmentsBranch
11.8b5x
12.2b5y
15.3b1z
11.1b7(*.f64 x x)
11.1b7(*.f64 x x)
15.3b1(*.f64 z z)
15.3b1(*.f64 z z)
Compiler

Compiled 142 to 86 computations (39.4% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
5.2527258544180836e+302
2.3199715869770767e+305
0.0ms
1.1823263393456966e+262
5.149934602919343e+265
0.0ms
7.15682041082218e+157
1.2173416961182633e+161
0.0ms
9.119185902488101e+135
3.817038449188361e+140
0.0ms
1.244497112097957e+123
1.3538198202042392e+125
0.0ms
1.4105687773029457e+94
1.982331302849819e+94
Compiler

Compiled 24 to 16 computations (33.3% saved)

regimes492.0ms (3.8%)

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

7 calls:

113.0ms
y
112.0ms
(*.f64 x x)
111.0ms
x
88.0ms
(*.f64 x x)
34.0ms
(*.f64 z z)
Results
ErrorSegmentsBranch
11.8b5x
12.2b5y
15.3b1z
11.1b7(*.f64 x x)
11.1b7(*.f64 x x)
15.3b1(*.f64 z z)
15.3b1(*.f64 z z)
Compiler

Compiled 133 to 81 computations (39.1% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
5.2527258544180836e+302
2.3199715869770767e+305
0.0ms
1.1823263393456966e+262
5.149934602919343e+265
0.0ms
7.15682041082218e+157
1.2173416961182633e+161
0.0ms
9.119185902488101e+135
3.817038449188361e+140
0.0ms
1.244497112097957e+123
1.3538198202042392e+125
0.0ms
1.4105687773029457e+94
1.982331302849819e+94
Compiler

Compiled 24 to 16 computations (33.3% saved)

regimes310.0ms (2.4%)

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

7 calls:

59.0ms
(*.f64 z z)
49.0ms
(*.f64 z z)
44.0ms
z
41.0ms
y
39.0ms
x
Results
ErrorSegmentsBranch
26.0b5x
18.9b6y
25.2b5z
24.0b9(*.f64 x x)
24.0b9(*.f64 x x)
24.1b8(*.f64 z z)
24.1b8(*.f64 z z)
Compiler

Compiled 115 to 71 computations (38.3% saved)

bsearch262.0ms (2%)

Algorithm
binary-search
Steps
TimeLeftRight
98.0ms
6.568607843852107e+38
1.0650698198212405e+45
40.0ms
2.307847344456368e-84
2.1736246125849532e-82
29.0ms
1.2465295762534216e-228
3.3536287945391485e-227
27.0ms
-2.9421183829405655e-67
-1.1762945633895042e-67
68.0ms
-4.987364071546657e+58
-1.1187771706508188e+58
Compiler

Compiled 712 to 530 computations (25.6% saved)

regimes134.0ms (1%)

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

5 calls:

27.0ms
z
27.0ms
y
26.0ms
x
26.0ms
(*.f64 z z)
24.0ms
(*.f64 z z)
Results
ErrorSegmentsBranch
26.0b5x
18.9b6y
25.2b5z
24.1b8(*.f64 z z)
24.1b8(*.f64 z z)
Compiler

Compiled 65 to 41 computations (36.9% saved)

bsearch248.0ms (1.9%)

Algorithm
binary-search
Steps
TimeLeftRight
88.0ms
6.568607843852107e+38
1.0650698198212405e+45
38.0ms
2.307847344456368e-84
2.1736246125849532e-82
24.0ms
1.2465295762534216e-228
3.3536287945391485e-227
29.0ms
-2.9421183829405655e-67
-1.1762945633895042e-67
69.0ms
-4.987364071546657e+58
-1.1187771706508188e+58
Compiler

Compiled 712 to 530 computations (25.6% saved)

regimes87.0ms (0.7%)

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

4 calls:

29.0ms
z
19.0ms
y
19.0ms
x
18.0ms
(*.f64 z z)
Results
ErrorSegmentsBranch
26.0b5x
19.2b6y
25.7b5z
24.1b8(*.f64 z z)
Compiler

Compiled 38 to 26 computations (31.6% saved)

bsearch242.0ms (1.9%)

Algorithm
binary-search
Steps
TimeLeftRight
87.0ms
6.568607843852107e+38
1.0650698198212405e+45
39.0ms
2.307847344456368e-84
2.1736246125849532e-82
20.0ms
1.2595872461138188e-277
7.761138608139853e-277
28.0ms
-2.9421183829405655e-67
-1.1762945633895042e-67
67.0ms
-4.987364071546657e+58
-1.1187771706508188e+58
Compiler

Compiled 690 to 514 computations (25.5% saved)

regimes35.0ms (0.3%)

Accuracy

Total -39.3b remaining (-174.6%)

Threshold costs -39.3b (-174.6%)

Counts
2 → 3
Calls
Call 1
Inputs
(*.f64 y 1/2)
(*.f64 1/2 (*.f64 (/.f64 x y) x))
Outputs
(*.f64 y 1/2)
(*.f64 1/2 (*.f64 (/.f64 x y) x))
(*.f64 y 1/2)
Calls

3 calls:

18.0ms
x
12.0ms
y
3.0ms
z
Results
ErrorSegmentsBranch
26.0b5x
22.5b3y
30.0b1z
Compiler

Compiled 25 to 18 computations (28% saved)

bsearch80.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
2.1736246125849532e-82
2.8471958617955743e-82
64.0ms
-4.987364071546657e+58
-1.1187771706508188e+58
Compiler

Compiled 186 to 142 computations (23.7% saved)

simplify36.0ms (0.3%)

Algorithm
egg-herbie
Rules
24×*-commutative_binary64
16×+-commutative_binary64
14×sub-neg_binary64
11×neg-sub0_binary64
11×neg-mul-1_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0109744
1145742
2175742
3198736
4213736
5216736
6217736
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 (*.f64 z z) 50000000000000003086391676393357844349718615548150562915502642526940668826983577947126958547223239834715522922574563065517295392716978085869105767683493614277129551054580941093067371516906876813636692980123138622497423128945174015407700562118352100956066287915925652518044475460566300753920) (fma.f64 (/.f64 (hypot.f64 x y) (pow.f64 (cbrt.f64 (+.f64 y y)) 2)) (/.f64 (hypot.f64 x y) (cbrt.f64 (+.f64 y y))) (neg.f64 (*.f64 (*.f64 z z) (/.f64 1/2 y)))) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)))
(if (<=.f64 (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) -inf.0) (*.f64 -1/2 (-.f64 (*.f64 x (neg.f64 (/.f64 x y))) y)) (if (<=.f64 (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) +inf.0) (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y))))
(if (<=.f64 x -3314829983846485/3291009114642412084309938365114701009965471731267159726697218048) (*.f64 -1/2 (-.f64 (*.f64 x (neg.f64 (/.f64 x y))) y)) (if (<=.f64 x 7248855898311271/862718293348820473429344482784628181556388621521298319395315527974912) (*.f64 -1/2 (-.f64 (*.f64 z (/.f64 z y)) y)) (*.f64 -1/2 (-.f64 (*.f64 x (neg.f64 (/.f64 x y))) y))))
(if (<=.f64 (*.f64 x x) 15000000000000000303283186907339204828641444848215366117066652843120060074972464640380467412992) (*.f64 -1/2 (-.f64 (*.f64 z (/.f64 z y)) y)) (if (<=.f64 (*.f64 x x) 1999999999999999955419939462808259340115968595189843154784166645324982581779679772155733117683015263369515044141902701002752) (/.f64 (*.f64 x x) (*.f64 y 2)) (if (<=.f64 (*.f64 x x) 10000000000000000586640612700740119755462042863897304388093713545509821352053815609504775357961393589804030375857007499376802103616864256) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 99999999999999995287335453651211007997446182781858083179085387749785952239205787068995699003416510776387310061494932420984963311567802202010637287727642443776) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (if (<=.f64 (*.f64 x x) 20000000000000000323456785900191669561923454243064936219351155259210830706007157687226704499288107285763810660663679263023264344934985834790648308005091295168868698197129205191161878464985997761417827125414132937520722989422036627287210875071738030889333260550144) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 1000000000000000000161765076786456438212668646231659438295495017101117499225738747865260243034213915253779773568180337416027445820567779199643391541606026068611150746122284976177256650044200527276807327067690462112661427500197051226489898260678763391449376088547292320814127957486330655468919122263277568) (/.f64 (*.f64 x x) (*.f64 y 2)) (*.f64 y 1/2)))))))
(if (<=.f64 (*.f64 x x) 15000000000000000303283186907339204828641444848215366117066652843120060074972464640380467412992) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 1999999999999999955419939462808259340115968595189843154784166645324982581779679772155733117683015263369515044141902701002752) (/.f64 (*.f64 x x) (*.f64 y 2)) (if (<=.f64 (*.f64 x x) 10000000000000000586640612700740119755462042863897304388093713545509821352053815609504775357961393589804030375857007499376802103616864256) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 99999999999999995287335453651211007997446182781858083179085387749785952239205787068995699003416510776387310061494932420984963311567802202010637287727642443776) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (if (<=.f64 (*.f64 x x) 20000000000000000323456785900191669561923454243064936219351155259210830706007157687226704499288107285763810660663679263023264344934985834790648308005091295168868698197129205191161878464985997761417827125414132937520722989422036627287210875071738030889333260550144) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 1000000000000000000161765076786456438212668646231659438295495017101117499225738747865260243034213915253779773568180337416027445820567779199643391541606026068611150746122284976177256650044200527276807327067690462112661427500197051226489898260678763391449376088547292320814127957486330655468919122263277568) (/.f64 (*.f64 x x) (*.f64 y 2)) (*.f64 y 1/2)))))))
(if (<=.f64 y -11199999999999999983964321730935402905925065457764722016256) (*.f64 y 1/2) (if (<=.f64 y -8802718417897835/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (/.f64 (*.f64 x x) (*.f64 y 2)) (if (<=.f64 y 8535058474086213/6828046779268970776657768233698567984276232522051489956245767999246374131525255241237946573692471593720760228447675638216590132893818229842292076597586769967201441361422350907866192164773697561322460176523147880429251325990375896362151810433024) (*.f64 z (/.f64 (*.f64 z -1/2) y)) (if (<=.f64 y 7347795403567931/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (if (<=.f64 y 659999999999999981364251648514108424192) (*.f64 z (/.f64 (*.f64 z -1/2) y)) (*.f64 y 1/2))))))
(if (<=.f64 y -11199999999999999983964321730935402905925065457764722016256) (*.f64 y 1/2) (if (<=.f64 y -8802718417897835/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (if (<=.f64 y 8535058474086213/6828046779268970776657768233698567984276232522051489956245767999246374131525255241237946573692471593720760228447675638216590132893818229842292076597586769967201441361422350907866192164773697561322460176523147880429251325990375896362151810433024) (*.f64 z (/.f64 (*.f64 z -1/2) y)) (if (<=.f64 y 7347795403567931/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (if (<=.f64 y 659999999999999981364251648514108424192) (*.f64 z (/.f64 (*.f64 z -1/2) y)) (*.f64 y 1/2))))))
(if (<=.f64 y -11199999999999999983964321730935402905925065457764722016256) (*.f64 y 1/2) (if (<=.f64 y -8802718417897835/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (if (<=.f64 y 633445410741/4872657005699999540176691193937594155438113428797503763433953228606474345383213051232807532941005129612652458115704334091729584932601547023288993648156326709765638849978236514935394827745026824176399796739609189436842798962697437472873181807734482806413869401552138773540914294995957055488) (/.f64 (*.f64 (*.f64 z z) -1/2) y) (if (<=.f64 y 7347795403567931/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (if (<=.f64 y 659999999999999981364251648514108424192) (/.f64 (*.f64 (*.f64 z z) -1/2) y) (*.f64 y 1/2))))))
(if (<=.f64 y -11199999999999999983964321730935402905925065457764722016256) (*.f64 y 1/2) (if (<=.f64 y 7518674366441603/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (*.f64 y 1/2)))
(*.f64 y 1/2)
Outputs
(if (<=.f64 (*.f64 z z) 50000000000000003086391676393357844349718615548150562915502642526940668826983577947126958547223239834715522922574563065517295392716978085869105767683493614277129551054580941093067371516906876813636692980123138622497423128945174015407700562118352100956066287915925652518044475460566300753920) (fma.f64 (/.f64 (hypot.f64 x y) (pow.f64 (cbrt.f64 (+.f64 y y)) 2)) (/.f64 (hypot.f64 x y) (cbrt.f64 (+.f64 y y))) (neg.f64 (*.f64 (*.f64 z z) (/.f64 1/2 y)))) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)))
(if (<=.f64 (*.f64 z z) 50000000000000003086391676393357844349718615548150562915502642526940668826983577947126958547223239834715522922574563065517295392716978085869105767683493614277129551054580941093067371516906876813636692980123138622497423128945174015407700562118352100956066287915925652518044475460566300753920) (fma.f64 (/.f64 (hypot.f64 x y) (pow.f64 (cbrt.f64 (+.f64 y y)) 2)) (/.f64 (hypot.f64 x y) (cbrt.f64 (+.f64 y y))) (*.f64 (neg.f64 (*.f64 z z)) (/.f64 1/2 y))) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)))
(if (<=.f64 (*.f64 z z) 50000000000000003086391676393357844349718615548150562915502642526940668826983577947126958547223239834715522922574563065517295392716978085869105767683493614277129551054580941093067371516906876813636692980123138622497423128945174015407700562118352100956066287915925652518044475460566300753920) (fma.f64 (/.f64 (hypot.f64 x y) (pow.f64 (cbrt.f64 (+.f64 y y)) 2)) (/.f64 (hypot.f64 x y) (cbrt.f64 (+.f64 y y))) (*.f64 (*.f64 z z) (/.f64 -1/2 y))) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)))
(if (<=.f64 (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) -inf.0) (*.f64 -1/2 (-.f64 (*.f64 x (neg.f64 (/.f64 x y))) y)) (if (<=.f64 (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) +inf.0) (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y))))
(if (<=.f64 (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) -inf.0) (*.f64 -1/2 (-.f64 (*.f64 x (/.f64 (neg.f64 x) y)) y)) (if (<=.f64 (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) +inf.0) (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y))))
(if (<=.f64 (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) -inf.0) (*.f64 -1/2 (-.f64 (neg.f64 y) (*.f64 x (/.f64 x y)))) (if (<=.f64 (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) +inf.0) (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y))))
(if (<=.f64 (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) -inf.0) (*.f64 1/2 (+.f64 y (*.f64 x (/.f64 x y)))) (if (<=.f64 (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) +inf.0) (/.f64 (-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) (*.f64 y 2)) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y))))
(if (<=.f64 x -3314829983846485/3291009114642412084309938365114701009965471731267159726697218048) (*.f64 -1/2 (-.f64 (*.f64 x (neg.f64 (/.f64 x y))) y)) (if (<=.f64 x 7248855898311271/862718293348820473429344482784628181556388621521298319395315527974912) (*.f64 -1/2 (-.f64 (*.f64 z (/.f64 z y)) y)) (*.f64 -1/2 (-.f64 (*.f64 x (neg.f64 (/.f64 x y))) y))))
(if (<=.f64 x -3314829983846485/3291009114642412084309938365114701009965471731267159726697218048) (*.f64 -1/2 (-.f64 (*.f64 x (/.f64 (neg.f64 x) y)) y)) (if (<=.f64 x 7248855898311271/862718293348820473429344482784628181556388621521298319395315527974912) (*.f64 -1/2 (-.f64 (*.f64 z (/.f64 z y)) y)) (*.f64 -1/2 (-.f64 (*.f64 x (/.f64 (neg.f64 x) y)) y))))
(if (<=.f64 x -3314829983846485/3291009114642412084309938365114701009965471731267159726697218048) (*.f64 -1/2 (-.f64 (neg.f64 y) (*.f64 x (/.f64 x y)))) (if (<=.f64 x 7248855898311271/862718293348820473429344482784628181556388621521298319395315527974912) (*.f64 -1/2 (-.f64 (*.f64 z (/.f64 z y)) y)) (*.f64 -1/2 (-.f64 (neg.f64 y) (*.f64 x (/.f64 x y))))))
(if (<=.f64 x -3314829983846485/3291009114642412084309938365114701009965471731267159726697218048) (*.f64 1/2 (+.f64 y (*.f64 x (/.f64 x y)))) (if (<=.f64 x 7248855898311271/862718293348820473429344482784628181556388621521298319395315527974912) (*.f64 -1/2 (-.f64 (*.f64 z (/.f64 z y)) y)) (*.f64 1/2 (+.f64 y (*.f64 x (/.f64 x y))))))
(if (<=.f64 (*.f64 x x) 15000000000000000303283186907339204828641444848215366117066652843120060074972464640380467412992) (*.f64 -1/2 (-.f64 (*.f64 z (/.f64 z y)) y)) (if (<=.f64 (*.f64 x x) 1999999999999999955419939462808259340115968595189843154784166645324982581779679772155733117683015263369515044141902701002752) (/.f64 (*.f64 x x) (*.f64 y 2)) (if (<=.f64 (*.f64 x x) 10000000000000000586640612700740119755462042863897304388093713545509821352053815609504775357961393589804030375857007499376802103616864256) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 99999999999999995287335453651211007997446182781858083179085387749785952239205787068995699003416510776387310061494932420984963311567802202010637287727642443776) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (if (<=.f64 (*.f64 x x) 20000000000000000323456785900191669561923454243064936219351155259210830706007157687226704499288107285763810660663679263023264344934985834790648308005091295168868698197129205191161878464985997761417827125414132937520722989422036627287210875071738030889333260550144) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 1000000000000000000161765076786456438212668646231659438295495017101117499225738747865260243034213915253779773568180337416027445820567779199643391541606026068611150746122284976177256650044200527276807327067690462112661427500197051226489898260678763391449376088547292320814127957486330655468919122263277568) (/.f64 (*.f64 x x) (*.f64 y 2)) (*.f64 y 1/2)))))))
(if (<=.f64 (*.f64 x x) 15000000000000000303283186907339204828641444848215366117066652843120060074972464640380467412992) (*.f64 -1/2 (-.f64 (*.f64 z (/.f64 z y)) y)) (if (<=.f64 (*.f64 x x) 1999999999999999955419939462808259340115968595189843154784166645324982581779679772155733117683015263369515044141902701002752) (/.f64 (*.f64 x x) (*.f64 y 2)) (if (<=.f64 (*.f64 x x) 10000000000000000586640612700740119755462042863897304388093713545509821352053815609504775357961393589804030375857007499376802103616864256) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 99999999999999995287335453651211007997446182781858083179085387749785952239205787068995699003416510776387310061494932420984963311567802202010637287727642443776) (*.f64 1/2 (*.f64 x (/.f64 x y))) (if (<=.f64 (*.f64 x x) 20000000000000000323456785900191669561923454243064936219351155259210830706007157687226704499288107285763810660663679263023264344934985834790648308005091295168868698197129205191161878464985997761417827125414132937520722989422036627287210875071738030889333260550144) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 1000000000000000000161765076786456438212668646231659438295495017101117499225738747865260243034213915253779773568180337416027445820567779199643391541606026068611150746122284976177256650044200527276807327067690462112661427500197051226489898260678763391449376088547292320814127957486330655468919122263277568) (/.f64 (*.f64 x x) (*.f64 y 2)) (*.f64 y 1/2)))))))
(if (<=.f64 (*.f64 x x) 15000000000000000303283186907339204828641444848215366117066652843120060074972464640380467412992) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 1999999999999999955419939462808259340115968595189843154784166645324982581779679772155733117683015263369515044141902701002752) (/.f64 (*.f64 x x) (*.f64 y 2)) (if (<=.f64 (*.f64 x x) 10000000000000000586640612700740119755462042863897304388093713545509821352053815609504775357961393589804030375857007499376802103616864256) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 99999999999999995287335453651211007997446182781858083179085387749785952239205787068995699003416510776387310061494932420984963311567802202010637287727642443776) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (if (<=.f64 (*.f64 x x) 20000000000000000323456785900191669561923454243064936219351155259210830706007157687226704499288107285763810660663679263023264344934985834790648308005091295168868698197129205191161878464985997761417827125414132937520722989422036627287210875071738030889333260550144) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 1000000000000000000161765076786456438212668646231659438295495017101117499225738747865260243034213915253779773568180337416027445820567779199643391541606026068611150746122284976177256650044200527276807327067690462112661427500197051226489898260678763391449376088547292320814127957486330655468919122263277568) (/.f64 (*.f64 x x) (*.f64 y 2)) (*.f64 y 1/2)))))))
(if (<=.f64 (*.f64 x x) 15000000000000000303283186907339204828641444848215366117066652843120060074972464640380467412992) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 1999999999999999955419939462808259340115968595189843154784166645324982581779679772155733117683015263369515044141902701002752) (/.f64 (*.f64 x x) (*.f64 y 2)) (if (<=.f64 (*.f64 x x) 10000000000000000586640612700740119755462042863897304388093713545509821352053815609504775357961393589804030375857007499376802103616864256) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 99999999999999995287335453651211007997446182781858083179085387749785952239205787068995699003416510776387310061494932420984963311567802202010637287727642443776) (*.f64 1/2 (*.f64 x (/.f64 x y))) (if (<=.f64 (*.f64 x x) 20000000000000000323456785900191669561923454243064936219351155259210830706007157687226704499288107285763810660663679263023264344934985834790648308005091295168868698197129205191161878464985997761417827125414132937520722989422036627287210875071738030889333260550144) (*.f64 -1/2 (-.f64 (/.f64 z (/.f64 y z)) y)) (if (<=.f64 (*.f64 x x) 1000000000000000000161765076786456438212668646231659438295495017101117499225738747865260243034213915253779773568180337416027445820567779199643391541606026068611150746122284976177256650044200527276807327067690462112661427500197051226489898260678763391449376088547292320814127957486330655468919122263277568) (/.f64 (*.f64 x x) (*.f64 y 2)) (*.f64 y 1/2)))))))
(if (<=.f64 y -11199999999999999983964321730935402905925065457764722016256) (*.f64 y 1/2) (if (<=.f64 y -8802718417897835/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (/.f64 (*.f64 x x) (*.f64 y 2)) (if (<=.f64 y 8535058474086213/6828046779268970776657768233698567984276232522051489956245767999246374131525255241237946573692471593720760228447675638216590132893818229842292076597586769967201441361422350907866192164773697561322460176523147880429251325990375896362151810433024) (*.f64 z (/.f64 (*.f64 z -1/2) y)) (if (<=.f64 y 7347795403567931/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (if (<=.f64 y 659999999999999981364251648514108424192) (*.f64 z (/.f64 (*.f64 z -1/2) y)) (*.f64 y 1/2))))))
(if (<=.f64 y -11199999999999999983964321730935402905925065457764722016256) (*.f64 y 1/2) (if (<=.f64 y -8802718417897835/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (/.f64 (*.f64 x x) (*.f64 y 2)) (if (<=.f64 y 8535058474086213/6828046779268970776657768233698567984276232522051489956245767999246374131525255241237946573692471593720760228447675638216590132893818229842292076597586769967201441361422350907866192164773697561322460176523147880429251325990375896362151810433024) (*.f64 z (/.f64 (*.f64 z -1/2) y)) (if (<=.f64 y 7347795403567931/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216) (*.f64 1/2 (*.f64 x (/.f64 x y))) (if (<=.f64 y 659999999999999981364251648514108424192) (*.f64 z (/.f64 (*.f64 z -1/2) y)) (*.f64 y 1/2))))))
(if (<=.f64 y -11199999999999999983964321730935402905925065457764722016256) (*.f64 y 1/2) (if (<=.f64 y -8802718417897835/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (if (<=.f64 y 8535058474086213/6828046779268970776657768233698567984276232522051489956245767999246374131525255241237946573692471593720760228447675638216590132893818229842292076597586769967201441361422350907866192164773697561322460176523147880429251325990375896362151810433024) (*.f64 z (/.f64 (*.f64 z -1/2) y)) (if (<=.f64 y 7347795403567931/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (if (<=.f64 y 659999999999999981364251648514108424192) (*.f64 z (/.f64 (*.f64 z -1/2) y)) (*.f64 y 1/2))))))
(if (<=.f64 y -11199999999999999983964321730935402905925065457764722016256) (*.f64 y 1/2) (if (<=.f64 y -8802718417897835/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 1/2 (*.f64 x (/.f64 x y))) (if (<=.f64 y 8535058474086213/6828046779268970776657768233698567984276232522051489956245767999246374131525255241237946573692471593720760228447675638216590132893818229842292076597586769967201441361422350907866192164773697561322460176523147880429251325990375896362151810433024) (*.f64 z (/.f64 (*.f64 z -1/2) y)) (if (<=.f64 y 7347795403567931/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216) (*.f64 1/2 (*.f64 x (/.f64 x y))) (if (<=.f64 y 659999999999999981364251648514108424192) (*.f64 z (/.f64 (*.f64 z -1/2) y)) (*.f64 y 1/2))))))
(if (<=.f64 y -11199999999999999983964321730935402905925065457764722016256) (*.f64 y 1/2) (if (<=.f64 y -8802718417897835/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (if (<=.f64 y 633445410741/4872657005699999540176691193937594155438113428797503763433953228606474345383213051232807532941005129612652458115704334091729584932601547023288993648156326709765638849978236514935394827745026824176399796739609189436842798962697437472873181807734482806413869401552138773540914294995957055488) (/.f64 (*.f64 (*.f64 z z) -1/2) y) (if (<=.f64 y 7347795403567931/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (if (<=.f64 y 659999999999999981364251648514108424192) (/.f64 (*.f64 (*.f64 z z) -1/2) y) (*.f64 y 1/2))))))
(if (<=.f64 y -11199999999999999983964321730935402905925065457764722016256) (*.f64 y 1/2) (if (<=.f64 y -8802718417897835/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 1/2 (*.f64 x (/.f64 x y))) (if (<=.f64 y 633445410741/4872657005699999540176691193937594155438113428797503763433953228606474345383213051232807532941005129612652458115704334091729584932601547023288993648156326709765638849978236514935394827745026824176399796739609189436842798962697437472873181807734482806413869401552138773540914294995957055488) (/.f64 (*.f64 (*.f64 z z) -1/2) y) (if (<=.f64 y 7347795403567931/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216) (*.f64 1/2 (*.f64 x (/.f64 x y))) (if (<=.f64 y 659999999999999981364251648514108424192) (/.f64 (*.f64 (*.f64 z z) -1/2) y) (*.f64 y 1/2))))))
(if (<=.f64 y -11199999999999999983964321730935402905925065457764722016256) (*.f64 y 1/2) (if (<=.f64 y 7518674366441603/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216) (*.f64 1/2 (*.f64 (/.f64 x y) x)) (*.f64 y 1/2)))
(if (<=.f64 y -11199999999999999983964321730935402905925065457764722016256) (*.f64 y 1/2) (if (<=.f64 y 7518674366441603/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216) (*.f64 1/2 (*.f64 x (/.f64 x y))) (*.f64 y 1/2)))
(*.f64 y 1/2)
Compiler

Compiled 535 to 297 computations (44.5% saved)

soundness221.0ms (1.7%)

Algorithm
egg-herbie
Rules
917×fma-neg_binary64
803×div-sub_binary64
796×fma-def_binary64
540×times-frac_binary64
425×associate-/l/_binary64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
01220
12720
26720
313620
432020
575520
6189419
7445119
0281546
1681478
21541253
33751249
410741249
537221249
674901249
Stop Event
node limit
node limit
Compiler

Compiled 351 to 227 computations (35.3% saved)

end224.0ms (1.7%)

Compiler

Compiled 508 to 238 computations (53.1% saved)

Profiling

Loading profile data...