Details

Time bar (total: 7.0s)

analyze180.0ms (2.6%)

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
12.5%9.4%65.5%0.1%0%25%0%6
18.8%14%60.8%0.1%0%25%0%7
20%14%56.2%0.1%4.7%25%0%8
27.7%14%36.7%0.1%11.7%37.4%0%9
32.8%14.8%30.4%0.1%17.2%37.4%0%10
35.4%15.5%28.3%0.1%18.6%37.4%0%11
47.3%16.4%18.3%0.1%21.4%43.7%0%12
Compiler

Compiled 13 to 9 computations (30.8% saved)

sample2.5s (36.4%)

Results
1.5s8256×body256valid
638.0ms3180×body256infinite
333.0ms2405×body256invalid
Bogosity

preprocess73.0ms (1%)

Algorithm
egg-herbie
Rules
818×unswap-sqr_binary64
576×times-frac_binary64
387×associate-*l*_binary64
364×associate-*r*_binary64
352×associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02256
15548
213348
329948
454048
5122648
6500448
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(exp.f64 (-.f64 (+.f64 x (*.f64 y (log.f64 y))) z))
(exp.f64 (-.f64 (+.f64 y (*.f64 x (log.f64 x))) z))
(exp.f64 (-.f64 (+.f64 z (*.f64 y (log.f64 y))) x))
(exp.f64 (-.f64 (+.f64 x (*.f64 z (log.f64 z))) y))
Outputs
(exp.f64 (-.f64 (+.f64 x (*.f64 y (log.f64 y))) z))
(exp.f64 (+.f64 x (-.f64 (*.f64 y (log.f64 y)) z)))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
(exp.f64 (fma.f64 y (log.f64 y) (-.f64 x z)))
(exp.f64 (-.f64 (+.f64 y (*.f64 x (log.f64 x))) z))
(exp.f64 (-.f64 (fma.f64 x (log.f64 x) y) z))
(*.f64 (pow.f64 x x) (exp.f64 (-.f64 y z)))
(exp.f64 (-.f64 (+.f64 z (*.f64 y (log.f64 y))) x))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) z) x))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) z) x))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(exp.f64 (-.f64 (+.f64 x (*.f64 z (log.f64 z))) y))
(exp.f64 (-.f64 (fma.f64 z (log.f64 z) x) y))
(*.f64 (pow.f64 z z) (exp.f64 (-.f64 x y)))
(/.f64 (pow.f64 z z) (exp.f64 (-.f64 y x)))
Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify81.0ms (1.2%)

Algorithm
egg-herbie
Rules
508×unswap-sqr_binary64
478×associate-/l/_binary64
408×associate-/r/_binary64
362×fma-neg_binary64
337×fma-def_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0914
11812
24112
38912
415712
531312
696812
7256012
8527812
9597612
10742512
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(exp.f64 (-.f64 (+.f64 x (*.f64 y (log.f64 y))) z))
Outputs
(exp.f64 (-.f64 (+.f64 x (*.f64 y (log.f64 y))) z))
(exp.f64 (+.f64 x (-.f64 (*.f64 y (log.f64 y)) z)))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))

eval1.0ms (0%)

Compiler

Compiled 20 to 12 computations (40% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 23 to 15 computations (34.8% saved)

localize13.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 35 to 8 computations (77.1% saved)

series87.0ms (1.2%)

Counts
3 → 80
Calls

21 calls:

TimeVariablePointExpression
31.0ms
y
@0
(*.f64 y (log.f64 y))
19.0ms
y
@-inf
(*.f64 y (log.f64 y))
8.0ms
y
@inf
(*.f64 y (log.f64 y))
3.0ms
x
@0
(-.f64 (+.f64 x (*.f64 y (log.f64 y))) z)
2.0ms
z
@0
(-.f64 (+.f64 x (*.f64 y (log.f64 y))) z)

rewrite143.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
513×fma-def_binary64
494×log-prod_binary64
368×pow-prod-down_binary64
271×pow2_binary64
255×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify97.0ms (1.4%)

Algorithm
egg-herbie
Rules
515×associate-*l/_binary64
440×associate-*r/_binary64
380×associate-*l*_binary64
375×fma-def_binary64
333×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0831111
12521063
2718957
32930920
Stop Event
node limit
Counts
308 → 269
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y))))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y))))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y))))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y))))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y)
(exp.f64 (-.f64 (*.f64 y (log.f64 y)) z))
(+.f64 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) x) (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)))
(+.f64 (*.f64 1/2 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) (pow.f64 x 2))) (+.f64 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) x) (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z))))
(+.f64 (*.f64 1/2 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) (pow.f64 x 2))) (+.f64 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) x) (+.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) (*.f64 1/6 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) (pow.f64 x 3))))))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (*.f64 y (log.f64 y)) (+.f64 (*.f64 -1 x) z)))
(exp.f64 (-.f64 (*.f64 y (log.f64 y)) (+.f64 (*.f64 -1 x) z)))
(exp.f64 (-.f64 (*.f64 y (log.f64 y)) (+.f64 (*.f64 -1 x) z)))
(exp.f64 (-.f64 (*.f64 y (log.f64 y)) (+.f64 (*.f64 -1 x) z)))
(exp.f64 (-.f64 x z))
(+.f64 (*.f64 y (*.f64 (exp.f64 (-.f64 x z)) (log.f64 y))) (exp.f64 (-.f64 x z)))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 2) (*.f64 (exp.f64 (-.f64 x z)) (pow.f64 (log.f64 y) 2)))) (+.f64 (*.f64 y (*.f64 (exp.f64 (-.f64 x z)) (log.f64 y))) (exp.f64 (-.f64 x z))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 2) (*.f64 (exp.f64 (-.f64 x z)) (pow.f64 (log.f64 y) 2)))) (+.f64 (*.f64 y (*.f64 (exp.f64 (-.f64 x z)) (log.f64 y))) (+.f64 (exp.f64 (-.f64 x z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) (*.f64 (exp.f64 (-.f64 x z)) (pow.f64 (log.f64 y) 3)))))))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (+.f64 (*.f64 y (log.f64 y)) x))
(+.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) (*.f64 -1 (*.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) z)))
(+.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) (+.f64 (*.f64 -1 (*.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) z)) (*.f64 1/2 (*.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) (pow.f64 z 2)))))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) (pow.f64 z 3))) (+.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) (+.f64 (*.f64 -1 (*.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) z)) (*.f64 1/2 (*.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) (pow.f64 z 2))))))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x)))
(exp.f64 (+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x)))
(exp.f64 (+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x)))
(exp.f64 (+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x)))
(-.f64 (*.f64 y (log.f64 y)) z)
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
x
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
x
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 x z)
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y))))
(-.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y)))) x) z)
(-.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y)))) x) z)
(-.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y)))) x) z)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y)
(-.f64 (+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y) x) z)
(-.f64 (+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y) x) z)
(-.f64 (+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y) x) z)
(+.f64 (*.f64 y (log.f64 y)) x)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
Outputs
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 y))))
(*.f64 y (neg.f64 (neg.f64 (log.f64 y))))
(*.f64 y (log.f64 y))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 y))))
(*.f64 y (neg.f64 (neg.f64 (log.f64 y))))
(*.f64 y (log.f64 y))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 y))))
(*.f64 y (neg.f64 (neg.f64 (log.f64 y))))
(*.f64 y (log.f64 y))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 y))))
(*.f64 y (neg.f64 (neg.f64 (log.f64 y))))
(*.f64 y (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y)
(neg.f64 (*.f64 y (neg.f64 (log.f64 y))))
(*.f64 y (neg.f64 (neg.f64 (log.f64 y))))
(*.f64 y (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y)
(neg.f64 (*.f64 y (neg.f64 (log.f64 y))))
(*.f64 y (neg.f64 (neg.f64 (log.f64 y))))
(*.f64 y (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y)
(neg.f64 (*.f64 y (neg.f64 (log.f64 y))))
(*.f64 y (neg.f64 (neg.f64 (log.f64 y))))
(*.f64 y (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y)
(neg.f64 (*.f64 y (neg.f64 (log.f64 y))))
(*.f64 y (neg.f64 (neg.f64 (log.f64 y))))
(*.f64 y (log.f64 y))
(exp.f64 (-.f64 (*.f64 y (log.f64 y)) z))
(/.f64 (pow.f64 y y) (exp.f64 z))
(+.f64 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) x) (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)))
(fma.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) x (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)))
(*.f64 (+.f64 x 1) (/.f64 (pow.f64 y y) (exp.f64 z)))
(*.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (+.f64 1 x))
(+.f64 (*.f64 1/2 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) (pow.f64 x 2))) (+.f64 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) x) (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z))))
(fma.f64 1/2 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) (*.f64 x x)) (fma.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) x (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z))))
(fma.f64 1/2 (*.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (*.f64 x x)) (*.f64 (+.f64 x 1) (/.f64 (pow.f64 y y) (exp.f64 z))))
(*.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (+.f64 (+.f64 1 x) (*.f64 x (*.f64 x 1/2))))
(+.f64 (*.f64 1/2 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) (pow.f64 x 2))) (+.f64 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) x) (+.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) (*.f64 1/6 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) (pow.f64 x 3))))))
(fma.f64 1/2 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) (*.f64 x x)) (+.f64 (fma.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) x (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z))) (*.f64 1/6 (*.f64 (exp.f64 (-.f64 (*.f64 y (log.f64 y)) z)) (pow.f64 x 3)))))
(+.f64 (fma.f64 1/2 (*.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (*.f64 x x)) (*.f64 (+.f64 x 1) (/.f64 (pow.f64 y y) (exp.f64 z)))) (*.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (*.f64 (pow.f64 x 3) 1/6)))
(fma.f64 (+.f64 1 x) (/.f64 (pow.f64 y y) (exp.f64 z)) (*.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 x (*.f64 x 1/2)))))
(*.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (+.f64 (+.f64 1 x) (*.f64 (*.f64 x x) (+.f64 (*.f64 1/6 x) 1/2))))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (*.f64 y (log.f64 y)) (+.f64 (*.f64 -1 x) z)))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (*.f64 y (log.f64 y)) (+.f64 (*.f64 -1 x) z)))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (*.f64 y (log.f64 y)) (+.f64 (*.f64 -1 x) z)))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (*.f64 y (log.f64 y)) (+.f64 (*.f64 -1 x) z)))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 x z))
(+.f64 (*.f64 y (*.f64 (exp.f64 (-.f64 x z)) (log.f64 y))) (exp.f64 (-.f64 x z)))
(fma.f64 y (*.f64 (log.f64 y) (exp.f64 (-.f64 x z))) (exp.f64 (-.f64 x z)))
(*.f64 (+.f64 (*.f64 y (log.f64 y)) 1) (exp.f64 (-.f64 x z)))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 2) (*.f64 (exp.f64 (-.f64 x z)) (pow.f64 (log.f64 y) 2)))) (+.f64 (*.f64 y (*.f64 (exp.f64 (-.f64 x z)) (log.f64 y))) (exp.f64 (-.f64 x z))))
(fma.f64 1/2 (*.f64 (*.f64 y y) (*.f64 (exp.f64 (-.f64 x z)) (pow.f64 (log.f64 y) 2))) (fma.f64 y (*.f64 (log.f64 y) (exp.f64 (-.f64 x z))) (exp.f64 (-.f64 x z))))
(fma.f64 1/2 (*.f64 (*.f64 (*.f64 y y) (pow.f64 (log.f64 y) 2)) (exp.f64 (-.f64 x z))) (fma.f64 y (*.f64 (log.f64 y) (exp.f64 (-.f64 x z))) (exp.f64 (-.f64 x z))))
(+.f64 (exp.f64 (-.f64 x z)) (*.f64 (exp.f64 (-.f64 x z)) (+.f64 (*.f64 y (log.f64 y)) (*.f64 (*.f64 y y) (*.f64 1/2 (pow.f64 (log.f64 y) 2))))))
(*.f64 (exp.f64 (-.f64 x z)) (+.f64 (+.f64 (*.f64 y (log.f64 y)) 1) (*.f64 1/2 (*.f64 (*.f64 y y) (pow.f64 (log.f64 y) 2)))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 2) (*.f64 (exp.f64 (-.f64 x z)) (pow.f64 (log.f64 y) 2)))) (+.f64 (*.f64 y (*.f64 (exp.f64 (-.f64 x z)) (log.f64 y))) (+.f64 (exp.f64 (-.f64 x z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) (*.f64 (exp.f64 (-.f64 x z)) (pow.f64 (log.f64 y) 3)))))))
(fma.f64 1/2 (*.f64 (*.f64 y y) (*.f64 (exp.f64 (-.f64 x z)) (pow.f64 (log.f64 y) 2))) (+.f64 (fma.f64 y (*.f64 (log.f64 y) (exp.f64 (-.f64 x z))) (exp.f64 (-.f64 x z))) (*.f64 1/6 (*.f64 (*.f64 (pow.f64 y 3) (exp.f64 (-.f64 x z))) (pow.f64 (log.f64 y) 3)))))
(fma.f64 1/2 (*.f64 (*.f64 (*.f64 y y) (pow.f64 (log.f64 y) 2)) (exp.f64 (-.f64 x z))) (fma.f64 y (*.f64 (log.f64 y) (exp.f64 (-.f64 x z))) (fma.f64 1/6 (*.f64 (exp.f64 (-.f64 x z)) (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 y 3))) (exp.f64 (-.f64 x z)))))
(+.f64 (*.f64 (+.f64 (*.f64 y (log.f64 y)) 1) (exp.f64 (-.f64 x z))) (*.f64 (exp.f64 (-.f64 x z)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) (pow.f64 (log.f64 y) 3))) (*.f64 (*.f64 y y) (*.f64 1/2 (pow.f64 (log.f64 y) 2))))))
(+.f64 (exp.f64 (-.f64 x z)) (*.f64 (exp.f64 (-.f64 x z)) (+.f64 (*.f64 y (log.f64 y)) (*.f64 (pow.f64 (log.f64 y) 2) (+.f64 (*.f64 (*.f64 1/6 (pow.f64 y 3)) (log.f64 y)) (*.f64 1/2 (*.f64 y y)))))))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (+.f64 (*.f64 y (log.f64 y)) x))
(exp.f64 (fma.f64 y (log.f64 y) x))
(*.f64 (pow.f64 y y) (exp.f64 x))
(+.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) (*.f64 -1 (*.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) z)))
(+.f64 (exp.f64 (fma.f64 y (log.f64 y) x)) (neg.f64 (*.f64 z (exp.f64 (fma.f64 y (log.f64 y) x)))))
(-.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (*.f64 z (*.f64 (pow.f64 y y) (exp.f64 x))))
(*.f64 (pow.f64 y y) (-.f64 (exp.f64 x) (*.f64 z (exp.f64 x))))
(+.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) (+.f64 (*.f64 -1 (*.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) z)) (*.f64 1/2 (*.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) (pow.f64 z 2)))))
(+.f64 (exp.f64 (fma.f64 y (log.f64 y) x)) (fma.f64 -1 (*.f64 z (exp.f64 (fma.f64 y (log.f64 y) x))) (*.f64 (*.f64 1/2 (exp.f64 (fma.f64 y (log.f64 y) x))) (*.f64 z z))))
(fma.f64 (pow.f64 y y) (exp.f64 x) (-.f64 (*.f64 1/2 (*.f64 (*.f64 (*.f64 z z) (pow.f64 y y)) (exp.f64 x))) (*.f64 z (*.f64 (pow.f64 y y) (exp.f64 x)))))
(fma.f64 (pow.f64 y y) (exp.f64 x) (*.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (-.f64 (*.f64 z (*.f64 z 1/2)) z)))
(*.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (-.f64 (+.f64 (*.f64 1/2 (*.f64 z z)) 1) z))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) (pow.f64 z 3))) (+.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) (+.f64 (*.f64 -1 (*.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) z)) (*.f64 1/2 (*.f64 (exp.f64 (+.f64 (*.f64 y (log.f64 y)) x)) (pow.f64 z 2))))))
(fma.f64 -1/6 (*.f64 (exp.f64 (fma.f64 y (log.f64 y) x)) (pow.f64 z 3)) (+.f64 (exp.f64 (fma.f64 y (log.f64 y) x)) (fma.f64 -1 (*.f64 z (exp.f64 (fma.f64 y (log.f64 y) x))) (*.f64 (*.f64 1/2 (exp.f64 (fma.f64 y (log.f64 y) x))) (*.f64 z z)))))
(fma.f64 -1/6 (*.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 3)) (fma.f64 (pow.f64 y y) (exp.f64 x) (-.f64 (*.f64 1/2 (*.f64 (*.f64 (*.f64 z z) (pow.f64 y y)) (exp.f64 x))) (*.f64 z (*.f64 (pow.f64 y y) (exp.f64 x))))))
(+.f64 (*.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (-.f64 (*.f64 z (*.f64 z 1/2)) z)) (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 z 3)) 1) (*.f64 (pow.f64 y y) (exp.f64 x))))
(fma.f64 (pow.f64 y y) (exp.f64 x) (*.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (-.f64 (*.f64 (*.f64 z z) (+.f64 1/2 (*.f64 -1/6 z))) z)))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x)))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x)))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x)))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x)))
(exp.f64 (-.f64 (fma.f64 y (log.f64 y) x) z))
(*.f64 (pow.f64 y y) (exp.f64 (-.f64 x z)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(-.f64 (*.f64 y (log.f64 y)) z)
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
x
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
x
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(-.f64 x z)
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(-.f64 (+.f64 (*.f64 y (log.f64 y)) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 y))))
(*.f64 y (neg.f64 (neg.f64 (log.f64 y))))
(*.f64 y (log.f64 y))
(-.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y)))) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(-.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y)))) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(-.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 y)))) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y)
(neg.f64 (*.f64 y (neg.f64 (log.f64 y))))
(*.f64 y (neg.f64 (neg.f64 (log.f64 y))))
(*.f64 y (log.f64 y))
(-.f64 (+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(-.f64 (+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(-.f64 (+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) y) x) z)
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(+.f64 (*.f64 y (log.f64 y)) x)
(fma.f64 y (log.f64 y) x)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 y (log.f64 y)) x))
(-.f64 (fma.f64 y (log.f64 y) x) z)
(fma.f64 y (log.f64 y) (-.f64 x z))

localize13.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(exp.f64 (-.f64 z x))
0.8b
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
Compiler

Compiled 24 to 7 computations (70.8% saved)

series34.0ms (0.5%)

Counts
2 → 36
Calls

15 calls:

TimeVariablePointExpression
13.0ms
z
@inf
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
11.0ms
x
@inf
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
1.0ms
x
@-inf
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
1.0ms
x
@0
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
1.0ms
y
@0
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))

rewrite102.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
487×prod-diff_binary64
458×log-prod_binary64
273×pow-prod-down_binary64
248×pow2_binary64
198×pow-pow_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify109.0ms (1.6%)

Algorithm
egg-herbie
Rules
655×fma-def_binary64
552×associate-*r*_binary64
532×associate-*l*_binary64
365×unsub-neg_binary64
261×associate-/l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0109849
1356760
21306640
37477638
Stop Event
node limit
Counts
141 → 148
Calls
Call 1
Inputs
(/.f64 1 (exp.f64 (-.f64 z x)))
(+.f64 (/.f64 1 (exp.f64 (-.f64 z x))) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 (-.f64 z x))))
(+.f64 (/.f64 1 (exp.f64 (-.f64 z x))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 (log.f64 y) 2)) (exp.f64 (-.f64 z x)))) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 (-.f64 z x)))))
(+.f64 (/.f64 1 (exp.f64 (-.f64 z x))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 (log.f64 y) 2)) (exp.f64 (-.f64 z x)))) (+.f64 (/.f64 (*.f64 y (log.f64 y)) (exp.f64 (-.f64 z x))) (*.f64 1/6 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 (log.f64 y) 3)) (exp.f64 (-.f64 z x)))))))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) z) (exp.f64 (neg.f64 x)))) (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))) (*.f64 -1 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))))) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) z) (exp.f64 (neg.f64 x)))) (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))) (*.f64 -1 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))))) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) z) (exp.f64 (neg.f64 x)))) (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))) (*.f64 -1 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))))) (+.f64 (*.f64 1/6 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))) (*.f64 -1/2 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))))))) (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))))))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x))))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x))))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x))))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x))))
(/.f64 (pow.f64 y y) (exp.f64 z))
(+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (/.f64 (*.f64 (pow.f64 y y) x) (exp.f64 z)))
(+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (+.f64 (/.f64 (*.f64 (pow.f64 y y) x) (exp.f64 z)) (*.f64 -1 (*.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y y) (exp.f64 z))) (*.f64 -1 (/.f64 (pow.f64 y y) (exp.f64 z)))) (pow.f64 x 2)))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (+.f64 (*.f64 -1/6 (/.f64 (pow.f64 y y) (exp.f64 z))) (*.f64 -1 (/.f64 (pow.f64 y y) (exp.f64 z))))) (pow.f64 x 3))) (+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (+.f64 (/.f64 (*.f64 (pow.f64 y y) x) (exp.f64 z)) (*.f64 -1 (*.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y y) (exp.f64 z))) (*.f64 -1 (/.f64 (pow.f64 y y) (exp.f64 z)))) (pow.f64 x 2))))))
(/.f64 (pow.f64 y y) (exp.f64 (+.f64 (*.f64 -1 x) z)))
(/.f64 (pow.f64 y y) (exp.f64 (+.f64 (*.f64 -1 x) z)))
(/.f64 (pow.f64 y y) (exp.f64 (+.f64 (*.f64 -1 x) z)))
(/.f64 (pow.f64 y y) (exp.f64 (+.f64 (*.f64 -1 x) z)))
(exp.f64 (neg.f64 x))
(+.f64 (exp.f64 (neg.f64 x)) (*.f64 (exp.f64 (neg.f64 x)) z))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (*.f64 1/2 (*.f64 (exp.f64 (neg.f64 x)) (pow.f64 z 2))) (*.f64 (exp.f64 (neg.f64 x)) z)))
(+.f64 (*.f64 1/6 (*.f64 (exp.f64 (neg.f64 x)) (pow.f64 z 3))) (+.f64 (exp.f64 (neg.f64 x)) (+.f64 (*.f64 1/2 (*.f64 (exp.f64 (neg.f64 x)) (pow.f64 z 2))) (*.f64 (exp.f64 (neg.f64 x)) z))))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x)))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x)))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x)))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x)))
(exp.f64 z)
(+.f64 (exp.f64 z) (*.f64 -1 (*.f64 (exp.f64 z) x)))
(+.f64 (*.f64 1/2 (*.f64 (exp.f64 z) (pow.f64 x 2))) (+.f64 (exp.f64 z) (*.f64 -1 (*.f64 (exp.f64 z) x))))
(+.f64 (*.f64 1/2 (*.f64 (exp.f64 z) (pow.f64 x 2))) (+.f64 (exp.f64 z) (+.f64 (*.f64 -1 (*.f64 (exp.f64 z) x)) (*.f64 -1/6 (*.f64 (exp.f64 z) (pow.f64 x 3))))))
(exp.f64 (+.f64 (*.f64 -1 x) z))
(exp.f64 (+.f64 (*.f64 -1 x) z))
(exp.f64 (+.f64 (*.f64 -1 x) z))
(exp.f64 (+.f64 (*.f64 -1 x) z))
Outputs
(/.f64 1 (exp.f64 (-.f64 z x)))
(exp.f64 (neg.f64 (-.f64 z x)))
(exp.f64 (-.f64 x z))
(+.f64 (/.f64 1 (exp.f64 (-.f64 z x))) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 (-.f64 z x))))
(+.f64 (exp.f64 (neg.f64 (-.f64 z x))) (/.f64 y (/.f64 (exp.f64 (-.f64 z x)) (log.f64 y))))
(+.f64 (exp.f64 (neg.f64 (-.f64 z x))) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 (-.f64 z x))))
(fma.f64 (/.f64 y (exp.f64 (-.f64 z x))) (log.f64 y) (exp.f64 (-.f64 x z)))
(+.f64 (/.f64 1 (exp.f64 (-.f64 z x))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 (log.f64 y) 2)) (exp.f64 (-.f64 z x)))) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 (-.f64 z x)))))
(+.f64 (exp.f64 (neg.f64 (-.f64 z x))) (fma.f64 1/2 (/.f64 (*.f64 y y) (/.f64 (exp.f64 (-.f64 z x)) (pow.f64 (log.f64 y) 2))) (/.f64 y (/.f64 (exp.f64 (-.f64 z x)) (log.f64 y)))))
(+.f64 (exp.f64 (neg.f64 (-.f64 z x))) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 y y) (exp.f64 (-.f64 z x))) (pow.f64 (log.f64 y) 2)) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 (-.f64 z x)))))
(fma.f64 1/2 (*.f64 (pow.f64 (log.f64 y) 2) (/.f64 y (/.f64 (exp.f64 (-.f64 z x)) y))) (fma.f64 (/.f64 y (exp.f64 (-.f64 z x))) (log.f64 y) (exp.f64 (-.f64 x z))))
(+.f64 (/.f64 1 (exp.f64 (-.f64 z x))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 (log.f64 y) 2)) (exp.f64 (-.f64 z x)))) (+.f64 (/.f64 (*.f64 y (log.f64 y)) (exp.f64 (-.f64 z x))) (*.f64 1/6 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 (log.f64 y) 3)) (exp.f64 (-.f64 z x)))))))
(+.f64 (exp.f64 (neg.f64 (-.f64 z x))) (+.f64 (fma.f64 1/2 (/.f64 (*.f64 y y) (/.f64 (exp.f64 (-.f64 z x)) (pow.f64 (log.f64 y) 2))) (/.f64 y (/.f64 (exp.f64 (-.f64 z x)) (log.f64 y)))) (*.f64 1/6 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 (log.f64 y) 3)) (exp.f64 (-.f64 z x))))))
(+.f64 (exp.f64 (neg.f64 (-.f64 z x))) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 y y) (exp.f64 (-.f64 z x))) (pow.f64 (log.f64 y) 2)) (fma.f64 1/6 (/.f64 (pow.f64 (log.f64 y) 3) (/.f64 (exp.f64 (-.f64 z x)) (pow.f64 y 3))) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 (-.f64 z x))))))
(+.f64 (fma.f64 (/.f64 y (exp.f64 (-.f64 z x))) (log.f64 y) (exp.f64 (-.f64 x z))) (fma.f64 1/6 (*.f64 (/.f64 (pow.f64 (log.f64 y) 3) (exp.f64 (-.f64 z x))) (pow.f64 y 3)) (/.f64 1/2 (/.f64 (exp.f64 (-.f64 z x)) (*.f64 y (*.f64 y (pow.f64 (log.f64 y) 2)))))))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))
(*.f64 (pow.f64 y y) (exp.f64 x))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) z) (exp.f64 (neg.f64 x)))) (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))))
(fma.f64 -1 (/.f64 (pow.f64 y y) (/.f64 (exp.f64 (neg.f64 x)) z)) (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))))
(-.f64 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 (exp.f64 (neg.f64 x)) (pow.f64 y y))))
(*.f64 (exp.f64 x) (-.f64 (pow.f64 y y) (*.f64 z (pow.f64 y y))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))) (*.f64 -1 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))))) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) z) (exp.f64 (neg.f64 x)))) (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))))
(fma.f64 -1 (*.f64 (/.f64 (*.f64 -1/2 (pow.f64 y y)) (exp.f64 (neg.f64 x))) (*.f64 z z)) (fma.f64 -1 (/.f64 (pow.f64 y y) (/.f64 (exp.f64 (neg.f64 x)) z)) (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))))
(fma.f64 (*.f64 1/2 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))) (*.f64 z z) (-.f64 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 (exp.f64 (neg.f64 x)) (pow.f64 y y)))))
(-.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (*.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 (*.f64 z (*.f64 z -1/2)) z)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))) (*.f64 -1 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))))) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) z) (exp.f64 (neg.f64 x)))) (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))) (*.f64 -1 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))))) (+.f64 (*.f64 1/6 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))) (*.f64 -1/2 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))))))) (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))))))
(fma.f64 -1 (*.f64 (/.f64 (*.f64 -1/2 (pow.f64 y y)) (exp.f64 (neg.f64 x))) (*.f64 z z)) (fma.f64 -1 (/.f64 (pow.f64 y y) (/.f64 (exp.f64 (neg.f64 x)) z)) (fma.f64 -1 (*.f64 (pow.f64 z 3) (fma.f64 -1 (/.f64 (*.f64 -1/2 (pow.f64 y y)) (exp.f64 (neg.f64 x))) (*.f64 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))) -1/3))) (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))))))
(fma.f64 (*.f64 1/2 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x)))) (*.f64 z z) (-.f64 (-.f64 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))) (*.f64 (pow.f64 z 3) (fma.f64 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))) -1/3 (*.f64 1/2 (/.f64 (pow.f64 y y) (exp.f64 (neg.f64 x))))))) (/.f64 z (/.f64 (exp.f64 (neg.f64 x)) (pow.f64 y y)))))
(-.f64 (-.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (*.f64 1/6 (*.f64 (*.f64 (pow.f64 z 3) (pow.f64 y y)) (exp.f64 x)))) (*.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 (*.f64 z (*.f64 z -1/2)) z)))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x))))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (fma.f64 -1 z x))))
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x))))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (fma.f64 -1 z x))))
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x))))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (fma.f64 -1 z x))))
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x))))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (fma.f64 -1 z x))))
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(/.f64 (pow.f64 y y) (exp.f64 z))
(+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (/.f64 (*.f64 (pow.f64 y y) x) (exp.f64 z)))
(+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (/.f64 (pow.f64 y y) (/.f64 (exp.f64 z) x)))
(+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (/.f64 x (/.f64 (exp.f64 z) (pow.f64 y y))))
(fma.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) x (/.f64 (pow.f64 y y) (exp.f64 z)))
(+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (+.f64 (/.f64 (*.f64 (pow.f64 y y) x) (exp.f64 z)) (*.f64 -1 (*.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y y) (exp.f64 z))) (*.f64 -1 (/.f64 (pow.f64 y y) (exp.f64 z)))) (pow.f64 x 2)))))
(+.f64 (+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (/.f64 (pow.f64 y y) (/.f64 (exp.f64 z) x))) (neg.f64 (*.f64 (*.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) -1/2) (*.f64 x x))))
(+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (-.f64 (/.f64 x (/.f64 (exp.f64 z) (pow.f64 y y))) (*.f64 (/.f64 (*.f64 (pow.f64 y y) -1/2) (exp.f64 z)) (*.f64 x x))))
(+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (*.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (-.f64 x (*.f64 -1/2 (*.f64 x x)))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (+.f64 (*.f64 -1/6 (/.f64 (pow.f64 y y) (exp.f64 z))) (*.f64 -1 (/.f64 (pow.f64 y y) (exp.f64 z))))) (pow.f64 x 3))) (+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (+.f64 (/.f64 (*.f64 (pow.f64 y y) x) (exp.f64 z)) (*.f64 -1 (*.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y y) (exp.f64 z))) (*.f64 -1 (/.f64 (pow.f64 y y) (exp.f64 z)))) (pow.f64 x 2))))))
(fma.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (*.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) -7/6)) (pow.f64 x 3)) (+.f64 (+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (/.f64 (pow.f64 y y) (/.f64 (exp.f64 z) x))) (neg.f64 (*.f64 (*.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) -1/2) (*.f64 x x)))))
(-.f64 (+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (-.f64 (/.f64 x (/.f64 (exp.f64 z) (pow.f64 y y))) (*.f64 (/.f64 (*.f64 (pow.f64 y y) -1/2) (exp.f64 z)) (*.f64 x x)))) (*.f64 (fma.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) -7/6 (/.f64 (pow.f64 y y) (exp.f64 z))) (pow.f64 x 3)))
(+.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (-.f64 (*.f64 (/.f64 (pow.f64 y y) (exp.f64 z)) (-.f64 x (*.f64 -1/2 (*.f64 x x)))) (*.f64 (*.f64 (/.f64 -1/6 (exp.f64 z)) (pow.f64 y y)) (pow.f64 x 3))))
(/.f64 (pow.f64 y y) (exp.f64 (+.f64 (*.f64 -1 x) z)))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (fma.f64 -1 z x))))
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(/.f64 (pow.f64 y y) (exp.f64 (+.f64 (*.f64 -1 x) z)))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (fma.f64 -1 z x))))
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(/.f64 (pow.f64 y y) (exp.f64 (+.f64 (*.f64 -1 x) z)))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (fma.f64 -1 z x))))
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(/.f64 (pow.f64 y y) (exp.f64 (+.f64 (*.f64 -1 x) z)))
(/.f64 (pow.f64 y y) (exp.f64 (neg.f64 (fma.f64 -1 z x))))
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
(*.f64 (exp.f64 (-.f64 x z)) (pow.f64 y y))
(exp.f64 (neg.f64 x))
(+.f64 (exp.f64 (neg.f64 x)) (*.f64 (exp.f64 (neg.f64 x)) z))
(+.f64 (exp.f64 (neg.f64 x)) (*.f64 z (exp.f64 (neg.f64 x))))
(*.f64 (+.f64 z 1) (exp.f64 (neg.f64 x)))
(/.f64 (+.f64 1 z) (exp.f64 x))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (*.f64 1/2 (*.f64 (exp.f64 (neg.f64 x)) (pow.f64 z 2))) (*.f64 (exp.f64 (neg.f64 x)) z)))
(+.f64 (exp.f64 (neg.f64 x)) (fma.f64 1/2 (*.f64 (exp.f64 (neg.f64 x)) (*.f64 z z)) (*.f64 z (exp.f64 (neg.f64 x)))))
(+.f64 (exp.f64 (neg.f64 x)) (fma.f64 1/2 (*.f64 z (/.f64 z (exp.f64 x))) (/.f64 z (exp.f64 x))))
(*.f64 (exp.f64 (neg.f64 x)) (+.f64 (+.f64 1 z) (*.f64 z (*.f64 z 1/2))))
(+.f64 (*.f64 1/6 (*.f64 (exp.f64 (neg.f64 x)) (pow.f64 z 3))) (+.f64 (exp.f64 (neg.f64 x)) (+.f64 (*.f64 1/2 (*.f64 (exp.f64 (neg.f64 x)) (pow.f64 z 2))) (*.f64 (exp.f64 (neg.f64 x)) z))))
(fma.f64 1/6 (*.f64 (exp.f64 (neg.f64 x)) (pow.f64 z 3)) (+.f64 (exp.f64 (neg.f64 x)) (fma.f64 1/2 (*.f64 (exp.f64 (neg.f64 x)) (*.f64 z z)) (*.f64 z (exp.f64 (neg.f64 x))))))
(+.f64 (fma.f64 1/2 (*.f64 z (/.f64 z (exp.f64 x))) (/.f64 z (exp.f64 x))) (fma.f64 (/.f64 1/6 (exp.f64 x)) (pow.f64 z 3) (exp.f64 (neg.f64 x))))
(fma.f64 1/6 (/.f64 (pow.f64 z 3) (exp.f64 x)) (*.f64 (exp.f64 (neg.f64 x)) (+.f64 (+.f64 1 z) (*.f64 z (*.f64 z 1/2)))))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x)))
(exp.f64 (neg.f64 (fma.f64 -1 z x)))
(exp.f64 (-.f64 z x))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x)))
(exp.f64 (neg.f64 (fma.f64 -1 z x)))
(exp.f64 (-.f64 z x))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x)))
(exp.f64 (neg.f64 (fma.f64 -1 z x)))
(exp.f64 (-.f64 z x))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 z) x)))
(exp.f64 (neg.f64 (fma.f64 -1 z x)))
(exp.f64 (-.f64 z x))
(exp.f64 z)
(+.f64 (exp.f64 z) (*.f64 -1 (*.f64 (exp.f64 z) x)))
(+.f64 (exp.f64 z) (neg.f64 (*.f64 x (exp.f64 z))))
(-.f64 (exp.f64 z) (*.f64 x (exp.f64 z)))
(fma.f64 x (neg.f64 (exp.f64 z)) (exp.f64 z))
(+.f64 (*.f64 1/2 (*.f64 (exp.f64 z) (pow.f64 x 2))) (+.f64 (exp.f64 z) (*.f64 -1 (*.f64 (exp.f64 z) x))))
(fma.f64 1/2 (*.f64 (exp.f64 z) (*.f64 x x)) (+.f64 (exp.f64 z) (neg.f64 (*.f64 x (exp.f64 z)))))
(-.f64 (fma.f64 1/2 (*.f64 x (*.f64 x (exp.f64 z))) (exp.f64 z)) (*.f64 x (exp.f64 z)))
(+.f64 (exp.f64 z) (*.f64 (exp.f64 z) (+.f64 (*.f64 (*.f64 1/2 x) x) (neg.f64 x))))
(+.f64 (exp.f64 z) (*.f64 (exp.f64 z) (-.f64 (*.f64 (*.f64 1/2 x) x) x)))
(+.f64 (*.f64 1/2 (*.f64 (exp.f64 z) (pow.f64 x 2))) (+.f64 (exp.f64 z) (+.f64 (*.f64 -1 (*.f64 (exp.f64 z) x)) (*.f64 -1/6 (*.f64 (exp.f64 z) (pow.f64 x 3))))))
(fma.f64 1/2 (*.f64 (exp.f64 z) (*.f64 x x)) (+.f64 (exp.f64 z) (fma.f64 -1 (*.f64 x (exp.f64 z)) (*.f64 -1/6 (*.f64 (exp.f64 z) (pow.f64 x 3))))))
(+.f64 (-.f64 (fma.f64 1/2 (*.f64 x (*.f64 x (exp.f64 z))) (exp.f64 z)) (*.f64 x (exp.f64 z))) (*.f64 (exp.f64 z) (*.f64 (pow.f64 x 3) -1/6)))
(+.f64 (exp.f64 z) (fma.f64 1/2 (*.f64 (exp.f64 z) (*.f64 x x)) (*.f64 (exp.f64 z) (-.f64 (*.f64 -1/6 (pow.f64 x 3)) x))))
(+.f64 (fma.f64 (exp.f64 z) (*.f64 -1/6 (pow.f64 x 3)) (exp.f64 z)) (*.f64 (exp.f64 z) (-.f64 (*.f64 (*.f64 1/2 x) x) x)))
(exp.f64 (+.f64 (*.f64 -1 x) z))
(exp.f64 (neg.f64 (fma.f64 -1 z x)))
(exp.f64 (-.f64 z x))
(exp.f64 (+.f64 (*.f64 -1 x) z))
(exp.f64 (neg.f64 (fma.f64 -1 z x)))
(exp.f64 (-.f64 z x))
(exp.f64 (+.f64 (*.f64 -1 x) z))
(exp.f64 (neg.f64 (fma.f64 -1 z x)))
(exp.f64 (-.f64 z x))
(exp.f64 (+.f64 (*.f64 -1 x) z))
(exp.f64 (neg.f64 (fma.f64 -1 z x)))
(exp.f64 (-.f64 z x))

eval210.0ms (3%)

Compiler

Compiled 7034 to 2240 computations (68.2% saved)

prune134.0ms (1.9%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New4125417
Fresh000
Picked101
Done101
Total4145419
Error
0b
Counts
419 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
20.3b
(exp.f64 x)
0.7b
(exp.f64 (-.f64 x z))
26.6b
(/.f64 (pow.f64 y y) (exp.f64 z))
18.7b
(exp.f64 (neg.f64 z))
29.2b
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
Compiler

Compiled 80 to 58 computations (27.5% saved)

localize10.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 12 to 5 computations (58.3% saved)

series4.0ms (0.1%)

Counts
1 → 16
Calls

6 calls:

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

rewrite78.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
601×pow1_binary64
559×add-log-exp_binary64
559×log1p-expm1-u_binary64
559×expm1-log1p-u_binary64
546×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify97.0ms (1.4%)

Algorithm
egg-herbie
Rules
737×unsub-neg_binary64
719×fma-neg_binary64
538×cancel-sign-sub-inv_binary64
426×unswap-sqr_binary64
381×times-frac_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
044239
1132196
2355173
31265163
43705157
Stop Event
node limit
Counts
39 → 40
Calls
Call 1
Inputs
(exp.f64 (neg.f64 z))
(+.f64 (exp.f64 (neg.f64 z)) (*.f64 (exp.f64 (neg.f64 z)) x))
(+.f64 (exp.f64 (neg.f64 z)) (+.f64 (*.f64 (exp.f64 (neg.f64 z)) x) (*.f64 1/2 (*.f64 (exp.f64 (neg.f64 z)) (pow.f64 x 2)))))
(+.f64 (exp.f64 (neg.f64 z)) (+.f64 (*.f64 1/6 (*.f64 (exp.f64 (neg.f64 z)) (pow.f64 x 3))) (+.f64 (*.f64 (exp.f64 (neg.f64 z)) x) (*.f64 1/2 (*.f64 (exp.f64 (neg.f64 z)) (pow.f64 x 2))))))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 x) z)))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 x) z)))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 x) z)))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 x) z)))
(exp.f64 x)
(+.f64 (*.f64 -1 (*.f64 z (exp.f64 x))) (exp.f64 x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 z 2) (exp.f64 x))) (+.f64 (*.f64 -1 (*.f64 z (exp.f64 x))) (exp.f64 x)))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 z 2) (exp.f64 x))) (+.f64 (*.f64 -1 (*.f64 z (exp.f64 x))) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 z 3) (exp.f64 x))) (exp.f64 x))))
(exp.f64 (+.f64 (*.f64 -1 z) x))
(exp.f64 (+.f64 (*.f64 -1 z) x))
(exp.f64 (+.f64 (*.f64 -1 z) x))
(exp.f64 (+.f64 (*.f64 -1 z) x))
Outputs
(exp.f64 (neg.f64 z))
(+.f64 (exp.f64 (neg.f64 z)) (*.f64 (exp.f64 (neg.f64 z)) x))
(*.f64 (+.f64 x 1) (exp.f64 (neg.f64 z)))
(/.f64 (+.f64 x 1) (exp.f64 z))
(+.f64 (exp.f64 (neg.f64 z)) (+.f64 (*.f64 (exp.f64 (neg.f64 z)) x) (*.f64 1/2 (*.f64 (exp.f64 (neg.f64 z)) (pow.f64 x 2)))))
(+.f64 (exp.f64 (neg.f64 z)) (fma.f64 (exp.f64 (neg.f64 z)) x (*.f64 1/2 (*.f64 (exp.f64 (neg.f64 z)) (*.f64 x x)))))
(+.f64 (exp.f64 (neg.f64 z)) (fma.f64 1/2 (*.f64 x (/.f64 x (exp.f64 z))) (/.f64 x (exp.f64 z))))
(*.f64 (exp.f64 (neg.f64 z)) (+.f64 (+.f64 x 1) (*.f64 x (*.f64 x 1/2))))
(/.f64 (+.f64 1 (fma.f64 x (*.f64 x 1/2) x)) (exp.f64 z))
(+.f64 (exp.f64 (neg.f64 z)) (+.f64 (*.f64 1/6 (*.f64 (exp.f64 (neg.f64 z)) (pow.f64 x 3))) (+.f64 (*.f64 (exp.f64 (neg.f64 z)) x) (*.f64 1/2 (*.f64 (exp.f64 (neg.f64 z)) (pow.f64 x 2))))))
(+.f64 (exp.f64 (neg.f64 z)) (fma.f64 1/6 (*.f64 (exp.f64 (neg.f64 z)) (pow.f64 x 3)) (fma.f64 (exp.f64 (neg.f64 z)) x (*.f64 1/2 (*.f64 (exp.f64 (neg.f64 z)) (*.f64 x x))))))
(+.f64 (exp.f64 (neg.f64 z)) (fma.f64 (/.f64 1/6 (exp.f64 z)) (pow.f64 x 3) (fma.f64 1/2 (*.f64 x (/.f64 x (exp.f64 z))) (/.f64 x (exp.f64 z)))))
(fma.f64 1/6 (/.f64 (pow.f64 x 3) (exp.f64 z)) (*.f64 (exp.f64 (neg.f64 z)) (+.f64 (+.f64 x 1) (*.f64 x (*.f64 x 1/2)))))
(*.f64 (exp.f64 (neg.f64 z)) (+.f64 (+.f64 x 1) (*.f64 (*.f64 x x) (+.f64 (*.f64 x 1/6) 1/2))))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 x) z)))
(exp.f64 (neg.f64 (fma.f64 -1 x z)))
(exp.f64 (-.f64 x z))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 x) z)))
(exp.f64 (neg.f64 (fma.f64 -1 x z)))
(exp.f64 (-.f64 x z))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 x) z)))
(exp.f64 (neg.f64 (fma.f64 -1 x z)))
(exp.f64 (-.f64 x z))
(exp.f64 (neg.f64 (+.f64 (*.f64 -1 x) z)))
(exp.f64 (neg.f64 (fma.f64 -1 x z)))
(exp.f64 (-.f64 x z))
(exp.f64 x)
(+.f64 (*.f64 -1 (*.f64 z (exp.f64 x))) (exp.f64 x))
(fma.f64 -1 (*.f64 z (exp.f64 x)) (exp.f64 x))
(-.f64 (exp.f64 x) (*.f64 z (exp.f64 x)))
(*.f64 (exp.f64 x) (fma.f64 z -1 1))
(*.f64 (exp.f64 x) (-.f64 1 z))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 z 2) (exp.f64 x))) (+.f64 (*.f64 -1 (*.f64 z (exp.f64 x))) (exp.f64 x)))
(fma.f64 1/2 (*.f64 (exp.f64 x) (*.f64 z z)) (fma.f64 -1 (*.f64 z (exp.f64 x)) (exp.f64 x)))
(+.f64 (exp.f64 x) (*.f64 (exp.f64 x) (+.f64 (*.f64 1/2 (*.f64 z z)) (neg.f64 z))))
(fma.f64 (exp.f64 x) (-.f64 (*.f64 z (*.f64 z 1/2)) z) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 1 (-.f64 (*.f64 z (*.f64 z 1/2)) z)))
(*.f64 (exp.f64 x) (fma.f64 z (*.f64 z 1/2) (-.f64 1 z)))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 z 2) (exp.f64 x))) (+.f64 (*.f64 -1 (*.f64 z (exp.f64 x))) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 z 3) (exp.f64 x))) (exp.f64 x))))
(fma.f64 1/2 (*.f64 (exp.f64 x) (*.f64 z z)) (fma.f64 -1 (*.f64 z (exp.f64 x)) (fma.f64 -1/6 (*.f64 (exp.f64 x) (pow.f64 z 3)) (exp.f64 x))))
(+.f64 (fma.f64 -1/6 (*.f64 (exp.f64 x) (pow.f64 z 3)) (exp.f64 x)) (*.f64 (exp.f64 x) (+.f64 (*.f64 1/2 (*.f64 z z)) (neg.f64 z))))
(fma.f64 1/2 (*.f64 z (*.f64 z (exp.f64 x))) (*.f64 (exp.f64 x) (-.f64 (fma.f64 -1/6 (pow.f64 z 3) 1) z)))
(*.f64 (exp.f64 x) (+.f64 (fma.f64 -1/6 (pow.f64 z 3) 1) (-.f64 (*.f64 z (*.f64 z 1/2)) z)))
(exp.f64 (+.f64 (*.f64 -1 z) x))
(exp.f64 (neg.f64 (fma.f64 -1 x z)))
(exp.f64 (-.f64 x z))
(exp.f64 (+.f64 (*.f64 -1 z) x))
(exp.f64 (neg.f64 (fma.f64 -1 x z)))
(exp.f64 (-.f64 x z))
(exp.f64 (+.f64 (*.f64 -1 z) x))
(exp.f64 (neg.f64 (fma.f64 -1 x z)))
(exp.f64 (-.f64 x z))
(exp.f64 (+.f64 (*.f64 -1 z) x))
(exp.f64 (neg.f64 (fma.f64 -1 x z)))
(exp.f64 (-.f64 x z))

localize10.0ms (0.1%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

localize10.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize49.0ms (0.7%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.7b
(/.f64 (pow.f64 y y) (exp.f64 z))
Compiler

Compiled 16 to 6 computations (62.5% saved)

series8.0ms (0.1%)

Counts
1 → 8
Calls

6 calls:

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

rewrite104.0ms (1.5%)

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

Useful iterations: 0 (0.0ms)

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

simplify57.0ms (0.8%)

Algorithm
egg-herbie
Rules
372×fma-def_binary64
359×associate-/l*_binary64
351×distribute-rgt-out_binary64
321×associate-/r*_binary64
270×associate-*l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
052223
1170210
2568186
33416178
Stop Event
node limit
Counts
39 → 46
Calls
Call 1
Inputs
(/.f64 1 (exp.f64 z))
(+.f64 (/.f64 1 (exp.f64 z)) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 z)))
(+.f64 (/.f64 1 (exp.f64 z)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 (log.f64 y) 2)) (exp.f64 z))) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 z))))
(+.f64 (/.f64 1 (exp.f64 z)) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 (log.f64 y) 3)) (exp.f64 z))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 (log.f64 y) 2)) (exp.f64 z))) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 z)))))
(pow.f64 y y)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y y) z)) (pow.f64 y y))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y y) z)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (pow.f64 y y)) (*.f64 1/2 (pow.f64 y y))) (pow.f64 z 2))) (pow.f64 y y)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y y) z)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (pow.f64 y y)) (*.f64 1/2 (pow.f64 y y)))) (+.f64 (*.f64 -1/2 (pow.f64 y y)) (*.f64 1/6 (pow.f64 y y)))) (pow.f64 z 3))) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (pow.f64 y y)) (*.f64 1/2 (pow.f64 y y))) (pow.f64 z 2))) (pow.f64 y y))))
Outputs
(/.f64 1 (exp.f64 z))
(exp.f64 (neg.f64 z))
(+.f64 (/.f64 1 (exp.f64 z)) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 z)))
(+.f64 (exp.f64 (neg.f64 z)) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 z)))
(+.f64 (exp.f64 (neg.f64 z)) (*.f64 (/.f64 y (exp.f64 z)) (log.f64 y)))
(fma.f64 (/.f64 y (exp.f64 z)) (log.f64 y) (exp.f64 (neg.f64 z)))
(+.f64 (/.f64 1 (exp.f64 z)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 (log.f64 y) 2)) (exp.f64 z))) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 z))))
(+.f64 (exp.f64 (neg.f64 z)) (fma.f64 1/2 (/.f64 (*.f64 (*.f64 y y) (pow.f64 (log.f64 y) 2)) (exp.f64 z)) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 z))))
(+.f64 (exp.f64 (neg.f64 z)) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 y y) (exp.f64 z)) (pow.f64 (log.f64 y) 2)) (*.f64 (/.f64 y (exp.f64 z)) (log.f64 y))))
(fma.f64 1/2 (*.f64 (pow.f64 (log.f64 y) 2) (/.f64 y (/.f64 (exp.f64 z) y))) (fma.f64 (/.f64 y (exp.f64 z)) (log.f64 y) (exp.f64 (neg.f64 z))))
(fma.f64 1/2 (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 (/.f64 y (exp.f64 z)) y)) (fma.f64 (/.f64 y (exp.f64 z)) (log.f64 y) (exp.f64 (neg.f64 z))))
(+.f64 (/.f64 1 (exp.f64 z)) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 (log.f64 y) 3)) (exp.f64 z))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 (log.f64 y) 2)) (exp.f64 z))) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 z)))))
(+.f64 (exp.f64 (neg.f64 z)) (fma.f64 1/6 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 (log.f64 y) 3)) (exp.f64 z)) (fma.f64 1/2 (/.f64 (*.f64 (*.f64 y y) (pow.f64 (log.f64 y) 2)) (exp.f64 z)) (/.f64 (*.f64 y (log.f64 y)) (exp.f64 z)))))
(+.f64 (exp.f64 (neg.f64 z)) (fma.f64 1/6 (*.f64 (/.f64 (pow.f64 y 3) (exp.f64 z)) (pow.f64 (log.f64 y) 3)) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 y y) (exp.f64 z)) (pow.f64 (log.f64 y) 2)) (*.f64 (/.f64 y (exp.f64 z)) (log.f64 y)))))
(fma.f64 1/6 (*.f64 (/.f64 (pow.f64 (log.f64 y) 3) (exp.f64 z)) (pow.f64 y 3)) (fma.f64 1/2 (*.f64 (pow.f64 (log.f64 y) 2) (/.f64 y (/.f64 (exp.f64 z) y))) (fma.f64 (/.f64 y (exp.f64 z)) (log.f64 y) (exp.f64 (neg.f64 z)))))
(fma.f64 1/6 (*.f64 (pow.f64 (log.f64 y) 3) (/.f64 (pow.f64 y 3) (exp.f64 z))) (fma.f64 1/2 (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 (/.f64 y (exp.f64 z)) y)) (fma.f64 (/.f64 y (exp.f64 z)) (log.f64 y) (exp.f64 (neg.f64 z)))))
(pow.f64 y y)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y y) z)) (pow.f64 y y))
(fma.f64 -1 (*.f64 z (pow.f64 y y)) (pow.f64 y y))
(-.f64 (pow.f64 y y) (*.f64 z (pow.f64 y y)))
(*.f64 (+.f64 (neg.f64 z) 1) (pow.f64 y y))
(*.f64 (pow.f64 y y) (-.f64 1 z))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y y) z)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (pow.f64 y y)) (*.f64 1/2 (pow.f64 y y))) (pow.f64 z 2))) (pow.f64 y y)))
(fma.f64 -1 (*.f64 z (pow.f64 y y)) (fma.f64 -1 (*.f64 (*.f64 (pow.f64 y y) -1/2) (*.f64 z z)) (pow.f64 y y)))
(-.f64 (fma.f64 (*.f64 1/2 (pow.f64 y y)) (*.f64 z z) (pow.f64 y y)) (*.f64 z (pow.f64 y y)))
(-.f64 (pow.f64 y y) (*.f64 (pow.f64 y y) (+.f64 z (*.f64 z (*.f64 z -1/2)))))
(*.f64 (pow.f64 y y) (-.f64 1 (+.f64 z (*.f64 z (*.f64 z -1/2)))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y y) z)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (pow.f64 y y)) (*.f64 1/2 (pow.f64 y y)))) (+.f64 (*.f64 -1/2 (pow.f64 y y)) (*.f64 1/6 (pow.f64 y y)))) (pow.f64 z 3))) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (pow.f64 y y)) (*.f64 1/2 (pow.f64 y y))) (pow.f64 z 2))) (pow.f64 y y))))
(fma.f64 -1 (*.f64 z (pow.f64 y y)) (fma.f64 -1 (*.f64 (fma.f64 -1 (*.f64 (pow.f64 y y) -1/2) (*.f64 (pow.f64 y y) -1/3)) (pow.f64 z 3)) (fma.f64 -1 (*.f64 (*.f64 (pow.f64 y y) -1/2) (*.f64 z z)) (pow.f64 y y))))
(-.f64 (-.f64 (fma.f64 (*.f64 1/2 (pow.f64 y y)) (*.f64 z z) (pow.f64 y y)) (*.f64 (fma.f64 (pow.f64 y y) -1/3 (*.f64 1/2 (pow.f64 y y))) (pow.f64 z 3))) (*.f64 z (pow.f64 y y)))
(fma.f64 (pow.f64 z 3) (*.f64 (pow.f64 y y) -1/6) (-.f64 (pow.f64 y y) (*.f64 (pow.f64 y y) (+.f64 z (*.f64 z (*.f64 z -1/2))))))
(fma.f64 (pow.f64 z 3) (*.f64 (pow.f64 y y) -1/6) (*.f64 (pow.f64 y y) (-.f64 1 (+.f64 z (*.f64 z (*.f64 z -1/2))))))

localize160.0ms (2.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (+.f64 1 z) (exp.f64 x))
0.3b
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
Compiler

Compiled 31 to 15 computations (51.6% saved)

series52.0ms (0.7%)

Counts
2 → 52
Calls

15 calls:

TimeVariablePointExpression
32.0ms
z
@0
(/.f64 (+.f64 1 z) (exp.f64 x))
2.0ms
y
@0
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
2.0ms
y
@inf
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
2.0ms
x
@inf
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
2.0ms
y
@-inf
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))

rewrite111.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
566×log-prod_binary64
317×pow-prod-down_binary64
286×pow2_binary64
229×pow-unpow_binary64
211×pow-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify156.0ms (2.2%)

Algorithm
egg-herbie
Rules
571×fma-def_binary64
497×associate-*l*_binary64
481×associate-*r*_binary64
340×unsub-neg_binary64
282×associate-+l+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01061234
13561200
212221069
369471069
Stop Event
node limit
Counts
140 → 132
Calls
Call 1
Inputs
(/.f64 (exp.f64 x) (+.f64 1 z))
(+.f64 (/.f64 (*.f64 y (*.f64 (exp.f64 x) (log.f64 y))) (+.f64 1 z)) (/.f64 (exp.f64 x) (+.f64 1 z)))
(+.f64 (/.f64 (*.f64 y (*.f64 (exp.f64 x) (log.f64 y))) (+.f64 1 z)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y 2) (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 2))) (+.f64 1 z))) (/.f64 (exp.f64 x) (+.f64 1 z))))
(+.f64 (/.f64 (*.f64 y (*.f64 (exp.f64 x) (log.f64 y))) (+.f64 1 z)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y 2) (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 2))) (+.f64 1 z))) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (pow.f64 y 3) (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 3))) (+.f64 1 z))) (/.f64 (exp.f64 x) (+.f64 1 z)))))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(*.f64 (pow.f64 y y) (exp.f64 x))
(+.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (*.f64 -1 (*.f64 (pow.f64 y y) (*.f64 (exp.f64 x) z))))
(+.f64 (*.f64 (pow.f64 y y) (*.f64 (pow.f64 z 2) (exp.f64 x))) (+.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (*.f64 -1 (*.f64 (pow.f64 y y) (*.f64 (exp.f64 x) z)))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y y) (*.f64 (exp.f64 x) (pow.f64 z 3)))) (+.f64 (*.f64 (pow.f64 y y) (*.f64 (pow.f64 z 2) (exp.f64 x))) (+.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (*.f64 -1 (*.f64 (pow.f64 y y) (*.f64 (exp.f64 x) z))))))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z)
(+.f64 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z) (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 2))))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 2))) (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 3))))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 4))) (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 3)))))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z)
(+.f64 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z) (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 2))))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 2))) (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 3))))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 4))) (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 3)))))
(/.f64 (pow.f64 y y) (+.f64 1 z))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) x) (+.f64 1 z)) (/.f64 (pow.f64 y y) (+.f64 1 z)))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) x) (+.f64 1 z)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y y) (pow.f64 x 2)) (+.f64 1 z))) (/.f64 (pow.f64 y y) (+.f64 1 z))))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) x) (+.f64 1 z)) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (pow.f64 y y) (pow.f64 x 3)) (+.f64 1 z))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y y) (pow.f64 x 2)) (+.f64 1 z))) (/.f64 (pow.f64 y y) (+.f64 1 z)))))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 1 (exp.f64 x))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(/.f64 z (exp.f64 x))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(/.f64 z (exp.f64 x))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 1 z)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (+.f64 1 z) x)) z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 1 z)) (*.f64 1/2 (+.f64 1 z))) (pow.f64 x 2))) (+.f64 1 (+.f64 (*.f64 -1 (*.f64 (+.f64 1 z) x)) z)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 1 z)) (*.f64 1/2 (+.f64 1 z))) (pow.f64 x 2))) (+.f64 1 (+.f64 (*.f64 -1 (*.f64 (+.f64 1 z) x)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 (+.f64 1 z)) (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (+.f64 1 z)) (*.f64 1/2 (+.f64 1 z)))) (*.f64 1/6 (+.f64 1 z)))) (pow.f64 x 3))) z))))
Outputs
(/.f64 (exp.f64 x) (+.f64 1 z))
(+.f64 (/.f64 (*.f64 y (*.f64 (exp.f64 x) (log.f64 y))) (+.f64 1 z)) (/.f64 (exp.f64 x) (+.f64 1 z)))
(+.f64 (/.f64 (exp.f64 x) (+.f64 1 z)) (/.f64 y (/.f64 (+.f64 1 z) (*.f64 (exp.f64 x) (log.f64 y)))))
(+.f64 (/.f64 (exp.f64 x) (+.f64 1 z)) (*.f64 (/.f64 y (+.f64 1 z)) (*.f64 (exp.f64 x) (log.f64 y))))
(fma.f64 (/.f64 y (+.f64 1 z)) (*.f64 (exp.f64 x) (log.f64 y)) (/.f64 (exp.f64 x) (+.f64 1 z)))
(+.f64 (/.f64 (*.f64 y (*.f64 (exp.f64 x) (log.f64 y))) (+.f64 1 z)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y 2) (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 2))) (+.f64 1 z))) (/.f64 (exp.f64 x) (+.f64 1 z))))
(+.f64 (/.f64 y (/.f64 (+.f64 1 z) (*.f64 (exp.f64 x) (log.f64 y)))) (fma.f64 1/2 (/.f64 (*.f64 y y) (/.f64 (+.f64 1 z) (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 2)))) (/.f64 (exp.f64 x) (+.f64 1 z))))
(+.f64 (*.f64 (/.f64 y (+.f64 1 z)) (*.f64 (exp.f64 x) (log.f64 y))) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 y y) (+.f64 1 z)) (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 2))) (/.f64 (exp.f64 x) (+.f64 1 z))))
(fma.f64 1/2 (*.f64 (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 2)) (/.f64 y (/.f64 (+.f64 1 z) y))) (fma.f64 (/.f64 y (+.f64 1 z)) (*.f64 (exp.f64 x) (log.f64 y)) (/.f64 (exp.f64 x) (+.f64 1 z))))
(+.f64 (/.f64 (*.f64 y (*.f64 (exp.f64 x) (log.f64 y))) (+.f64 1 z)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y 2) (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 2))) (+.f64 1 z))) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (pow.f64 y 3) (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 3))) (+.f64 1 z))) (/.f64 (exp.f64 x) (+.f64 1 z)))))
(+.f64 (/.f64 y (/.f64 (+.f64 1 z) (*.f64 (exp.f64 x) (log.f64 y)))) (fma.f64 1/2 (/.f64 (*.f64 y y) (/.f64 (+.f64 1 z) (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 2)))) (fma.f64 1/6 (/.f64 (pow.f64 y 3) (/.f64 (+.f64 1 z) (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 3)))) (/.f64 (exp.f64 x) (+.f64 1 z)))))
(+.f64 (*.f64 (/.f64 y (+.f64 1 z)) (*.f64 (exp.f64 x) (log.f64 y))) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 y y) (+.f64 1 z)) (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 2))) (fma.f64 1/6 (*.f64 (/.f64 (pow.f64 y 3) (+.f64 1 z)) (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 3))) (/.f64 (exp.f64 x) (+.f64 1 z)))))
(fma.f64 1/2 (*.f64 (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 2)) (/.f64 y (/.f64 (+.f64 1 z) y))) (fma.f64 (/.f64 y (+.f64 1 z)) (*.f64 (exp.f64 x) (log.f64 y)) (fma.f64 1/6 (*.f64 (*.f64 (exp.f64 x) (pow.f64 (log.f64 y) 3)) (/.f64 (pow.f64 y 3) (+.f64 1 z))) (/.f64 (exp.f64 x) (+.f64 1 z)))))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(*.f64 (pow.f64 y y) (exp.f64 x))
(*.f64 (exp.f64 x) (pow.f64 y y))
(+.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (*.f64 -1 (*.f64 (pow.f64 y y) (*.f64 (exp.f64 x) z))))
(fma.f64 (pow.f64 y y) (exp.f64 x) (neg.f64 (*.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) z)))
(-.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) (*.f64 (exp.f64 x) (*.f64 (pow.f64 y y) z)))
(*.f64 (pow.f64 y y) (-.f64 (exp.f64 x) (*.f64 (exp.f64 x) z)))
(+.f64 (*.f64 (pow.f64 y y) (*.f64 (pow.f64 z 2) (exp.f64 x))) (+.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (*.f64 -1 (*.f64 (pow.f64 y y) (*.f64 (exp.f64 x) z)))))
(fma.f64 (pow.f64 y y) (*.f64 (exp.f64 x) (*.f64 z z)) (fma.f64 (pow.f64 y y) (exp.f64 x) (neg.f64 (*.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) z))))
(-.f64 (*.f64 (pow.f64 y y) (+.f64 (*.f64 (exp.f64 x) (*.f64 z z)) (exp.f64 x))) (*.f64 (exp.f64 x) (*.f64 (pow.f64 y y) z)))
(*.f64 (pow.f64 y y) (-.f64 (*.f64 (+.f64 (*.f64 z z) 1) (exp.f64 x)) (*.f64 (exp.f64 x) z)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y y) (*.f64 (exp.f64 x) (pow.f64 z 3)))) (+.f64 (*.f64 (pow.f64 y y) (*.f64 (pow.f64 z 2) (exp.f64 x))) (+.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (*.f64 -1 (*.f64 (pow.f64 y y) (*.f64 (exp.f64 x) z))))))
(fma.f64 -1 (*.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) (pow.f64 z 3)) (fma.f64 (pow.f64 y y) (*.f64 (exp.f64 x) (*.f64 z z)) (fma.f64 (pow.f64 y y) (exp.f64 x) (neg.f64 (*.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) z)))))
(-.f64 (-.f64 (*.f64 (pow.f64 y y) (+.f64 (*.f64 (exp.f64 x) (*.f64 z z)) (exp.f64 x))) (*.f64 (exp.f64 x) (*.f64 (pow.f64 y y) z))) (*.f64 (exp.f64 x) (*.f64 (pow.f64 y y) (pow.f64 z 3))))
(fma.f64 (exp.f64 x) (*.f64 (+.f64 (*.f64 z z) 1) (pow.f64 y y)) (*.f64 (*.f64 (exp.f64 x) (neg.f64 (pow.f64 y y))) (+.f64 z (pow.f64 z 3))))
(fma.f64 (exp.f64 x) (*.f64 (+.f64 (*.f64 z z) 1) (pow.f64 y y)) (*.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) (-.f64 (neg.f64 z) (pow.f64 z 3))))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z)
(/.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) z)
(*.f64 (/.f64 (pow.f64 y y) z) (exp.f64 x))
(*.f64 (exp.f64 x) (/.f64 (pow.f64 y y) z))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z) (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 2))))
(+.f64 (/.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) z) (neg.f64 (/.f64 (pow.f64 y y) (/.f64 (*.f64 z z) (exp.f64 x)))))
(-.f64 (*.f64 (/.f64 (pow.f64 y y) z) (exp.f64 x)) (*.f64 (/.f64 (pow.f64 y y) (*.f64 z z)) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) z) (-.f64 (exp.f64 x) (/.f64 (exp.f64 x) z)))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 2))) (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 3))))
(+.f64 (/.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) z) (fma.f64 -1 (/.f64 (pow.f64 y y) (/.f64 (*.f64 z z) (exp.f64 x))) (/.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) (pow.f64 z 3))))
(+.f64 (*.f64 (/.f64 (pow.f64 y y) z) (exp.f64 x)) (-.f64 (/.f64 (exp.f64 x) (/.f64 (pow.f64 z 3) (pow.f64 y y))) (*.f64 (/.f64 (pow.f64 y y) (*.f64 z z)) (exp.f64 x))))
(fma.f64 (/.f64 (pow.f64 y y) z) (exp.f64 x) (*.f64 (/.f64 (pow.f64 y y) (*.f64 z z)) (-.f64 (/.f64 (exp.f64 x) z) (exp.f64 x))))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 4))) (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 3)))))
(+.f64 (/.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) z) (fma.f64 -1 (/.f64 (pow.f64 y y) (/.f64 (*.f64 z z) (exp.f64 x))) (fma.f64 -1 (/.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) (pow.f64 z 4)) (/.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) (pow.f64 z 3)))))
(+.f64 (*.f64 (/.f64 (pow.f64 y y) z) (exp.f64 x)) (-.f64 (-.f64 (/.f64 (exp.f64 x) (/.f64 (pow.f64 z 3) (pow.f64 y y))) (/.f64 (exp.f64 x) (/.f64 (pow.f64 z 4) (pow.f64 y y)))) (*.f64 (/.f64 (pow.f64 y y) (*.f64 z z)) (exp.f64 x))))
(+.f64 (*.f64 (/.f64 (pow.f64 y y) z) (-.f64 (exp.f64 x) (/.f64 (exp.f64 x) z))) (*.f64 (exp.f64 x) (-.f64 (/.f64 (pow.f64 y y) (pow.f64 z 3)) (/.f64 (pow.f64 y y) (pow.f64 z 4)))))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z)
(/.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) z)
(*.f64 (/.f64 (pow.f64 y y) z) (exp.f64 x))
(*.f64 (exp.f64 x) (/.f64 (pow.f64 y y) z))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z) (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 2))))
(+.f64 (/.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) z) (neg.f64 (/.f64 (pow.f64 y y) (/.f64 (*.f64 z z) (exp.f64 x)))))
(-.f64 (*.f64 (/.f64 (pow.f64 y y) z) (exp.f64 x)) (*.f64 (/.f64 (pow.f64 y y) (*.f64 z z)) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) z) (-.f64 (exp.f64 x) (/.f64 (exp.f64 x) z)))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 2))) (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 3))))
(+.f64 (/.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) z) (fma.f64 -1 (/.f64 (pow.f64 y y) (/.f64 (*.f64 z z) (exp.f64 x))) (/.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) (pow.f64 z 3))))
(+.f64 (*.f64 (/.f64 (pow.f64 y y) z) (exp.f64 x)) (-.f64 (/.f64 (exp.f64 x) (/.f64 (pow.f64 z 3) (pow.f64 y y))) (*.f64 (/.f64 (pow.f64 y y) (*.f64 z z)) (exp.f64 x))))
(fma.f64 (/.f64 (pow.f64 y y) z) (exp.f64 x) (*.f64 (/.f64 (pow.f64 y y) (*.f64 z z)) (-.f64 (/.f64 (exp.f64 x) z) (exp.f64 x))))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 4))) (/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (pow.f64 z 3)))))
(+.f64 (/.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) z) (fma.f64 -1 (/.f64 (pow.f64 y y) (/.f64 (*.f64 z z) (exp.f64 x))) (fma.f64 -1 (/.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) (pow.f64 z 4)) (/.f64 (*.f64 (exp.f64 x) (pow.f64 y y)) (pow.f64 z 3)))))
(+.f64 (*.f64 (/.f64 (pow.f64 y y) z) (exp.f64 x)) (-.f64 (-.f64 (/.f64 (exp.f64 x) (/.f64 (pow.f64 z 3) (pow.f64 y y))) (/.f64 (exp.f64 x) (/.f64 (pow.f64 z 4) (pow.f64 y y)))) (*.f64 (/.f64 (pow.f64 y y) (*.f64 z z)) (exp.f64 x))))
(+.f64 (*.f64 (/.f64 (pow.f64 y y) z) (-.f64 (exp.f64 x) (/.f64 (exp.f64 x) z))) (*.f64 (exp.f64 x) (-.f64 (/.f64 (pow.f64 y y) (pow.f64 z 3)) (/.f64 (pow.f64 y y) (pow.f64 z 4)))))
(/.f64 (pow.f64 y y) (+.f64 1 z))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) x) (+.f64 1 z)) (/.f64 (pow.f64 y y) (+.f64 1 z)))
(+.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) x)))
(+.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) x))
(fma.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) x (/.f64 (pow.f64 y y) (+.f64 1 z)))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) x) (+.f64 1 z)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y y) (pow.f64 x 2)) (+.f64 1 z))) (/.f64 (pow.f64 y y) (+.f64 1 z))))
(+.f64 (/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) x)) (fma.f64 1/2 (/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (*.f64 x x))) (/.f64 (pow.f64 y y) (+.f64 1 z))))
(+.f64 (*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) x) (fma.f64 1/2 (/.f64 (*.f64 x x) (/.f64 (+.f64 1 z) (pow.f64 y y))) (/.f64 (pow.f64 y y) (+.f64 1 z))))
(fma.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) x (fma.f64 1/2 (/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (*.f64 x x))) (/.f64 (pow.f64 y y) (+.f64 1 z))))
(+.f64 (/.f64 (*.f64 (pow.f64 y y) x) (+.f64 1 z)) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (pow.f64 y y) (pow.f64 x 3)) (+.f64 1 z))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y y) (pow.f64 x 2)) (+.f64 1 z))) (/.f64 (pow.f64 y y) (+.f64 1 z)))))
(+.f64 (/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) x)) (fma.f64 1/6 (/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (pow.f64 x 3))) (fma.f64 1/2 (/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (*.f64 x x))) (/.f64 (pow.f64 y y) (+.f64 1 z)))))
(+.f64 (*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) x) (fma.f64 1/6 (*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (pow.f64 x 3)) (fma.f64 1/2 (/.f64 (*.f64 x x) (/.f64 (+.f64 1 z) (pow.f64 y y))) (/.f64 (pow.f64 y y) (+.f64 1 z)))))
(fma.f64 1/6 (/.f64 (pow.f64 x 3) (/.f64 (+.f64 1 z) (pow.f64 y y))) (fma.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) x (fma.f64 1/2 (/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (*.f64 x x))) (/.f64 (pow.f64 y y) (+.f64 1 z)))))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 (*.f64 (pow.f64 y y) (exp.f64 x)) (+.f64 1 z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
(*.f64 (/.f64 (pow.f64 y y) (+.f64 1 z)) (exp.f64 x))
(/.f64 (exp.f64 x) (/.f64 (+.f64 1 z) (pow.f64 y y)))
(/.f64 1 (exp.f64 x))
(exp.f64 (neg.f64 x))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (/.f64 z (exp.f64 x)))
(/.f64 z (exp.f64 x))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (/.f64 z (exp.f64 x)))
(/.f64 z (exp.f64 x))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (/.f64 1 (exp.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (/.f64 z (exp.f64 x)))
(+.f64 1 z)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (+.f64 1 z) x)) z))
(+.f64 1 (fma.f64 -1 (*.f64 x (+.f64 1 z)) z))
(+.f64 1 (-.f64 z (*.f64 x (+.f64 1 z))))
(fma.f64 x (-.f64 -1 z) (+.f64 1 z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 1 z)) (*.f64 1/2 (+.f64 1 z))) (pow.f64 x 2))) (+.f64 1 (+.f64 (*.f64 -1 (*.f64 (+.f64 1 z) x)) z)))
(fma.f64 -1 (*.f64 (*.f64 x x) (+.f64 -1/2 (*.f64 -1/2 z))) (+.f64 1 (fma.f64 -1 (*.f64 x (+.f64 1 z)) z)))
(+.f64 (-.f64 z (*.f64 x (+.f64 1 z))) (fma.f64 (+.f64 1/2 (*.f64 z 1/2)) (*.f64 x x) 1))
(+.f64 1 (fma.f64 (*.f64 x x) (fma.f64 z 1/2 1/2) (-.f64 z (fma.f64 x z x))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 1 z)) (*.f64 1/2 (+.f64 1 z))) (pow.f64 x 2))) (+.f64 1 (+.f64 (*.f64 -1 (*.f64 (+.f64 1 z) x)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 (+.f64 1 z)) (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (+.f64 1 z)) (*.f64 1/2 (+.f64 1 z)))) (*.f64 1/6 (+.f64 1 z)))) (pow.f64 x 3))) z))))
(fma.f64 -1 (*.f64 (*.f64 x x) (+.f64 -1/2 (*.f64 -1/2 z))) (+.f64 1 (fma.f64 -1 (*.f64 x (+.f64 1 z)) (fma.f64 -1 (*.f64 (pow.f64 x 3) (fma.f64 -1/2 (+.f64 1 z) (fma.f64 -1 (+.f64 -1/2 (*.f64 -1/2 z)) (+.f64 1/6 (*.f64 z 1/6))))) z))))
(+.f64 (-.f64 (-.f64 z (*.f64 (pow.f64 x 3) (+.f64 (+.f64 1/6 (*.f64 z 1/6)) (*.f64 0 (+.f64 -1/2 (*.f64 z -1/2)))))) (*.f64 x (+.f64 1 z))) (fma.f64 (+.f64 1/2 (*.f64 z 1/2)) (*.f64 x x) 1))
(+.f64 1 (fma.f64 (*.f64 x x) (fma.f64 z 1/2 1/2) (fma.f64 (pow.f64 x 3) (*.f64 (+.f64 1 z) -1/6) (-.f64 z (fma.f64 x z x)))))

eval73.0ms (1%)

Compiler

Compiled 3323 to 1254 computations (62.3% saved)

prune98.0ms (1.4%)

Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New2162218
Fresh000
Picked101
Done044
Total2176223
Error
0b
Counts
223 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.7b
(exp.f64 (-.f64 x z))
45.6b
(pow.f64 y y)
20.3b
(exp.f64 x)
26.6b
(/.f64 (pow.f64 y y) (exp.f64 z))
18.7b
(exp.f64 (neg.f64 z))
19.9b
(/.f64 (exp.f64 x) (+.f64 1 z))
Compiler

Compiled 42 to 31 computations (26.2% saved)

localize15.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (exp.f64 x) (+.f64 1 z))
Compiler

Compiled 17 to 10 computations (41.2% saved)

series5.0ms (0.1%)

Counts
1 → 16
Calls

6 calls:

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

rewrite149.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
765×pow1_binary64
710×add-log-exp_binary64
710×log1p-expm1-u_binary64
710×expm1-log1p-u_binary64
695×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify92.0ms (1.3%)

Algorithm
egg-herbie
Rules
642×associate-/l*_binary64
630×fma-def_binary64
492×associate-/l/_binary64
279×associate-/r/_binary64
266×unswap-sqr_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
048357
1129338
2329312
31032291
44188272
Stop Event
node limit
Counts
49 → 54
Calls
Call 1
Inputs
(/.f64 1 (+.f64 1 z))
(+.f64 (/.f64 x (+.f64 1 z)) (/.f64 1 (+.f64 1 z)))
(+.f64 (/.f64 x (+.f64 1 z)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))) (/.f64 1 (+.f64 1 z))))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (+.f64 (/.f64 x (+.f64 1 z)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))) (/.f64 1 (+.f64 1 z)))))
(exp.f64 x)
(+.f64 (*.f64 -1 (*.f64 z (exp.f64 x))) (exp.f64 x))
(+.f64 (*.f64 -1 (*.f64 z (exp.f64 x))) (+.f64 (exp.f64 x) (*.f64 (exp.f64 x) (pow.f64 z 2))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (exp.f64 x))) (+.f64 (*.f64 -1 (*.f64 z (exp.f64 x))) (+.f64 (exp.f64 x) (*.f64 (exp.f64 x) (pow.f64 z 2)))))
(/.f64 (exp.f64 x) z)
(+.f64 (/.f64 (exp.f64 x) z) (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 2))))
(+.f64 (/.f64 (exp.f64 x) z) (+.f64 (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 2))) (/.f64 (exp.f64 x) (pow.f64 z 3))))
(+.f64 (/.f64 (exp.f64 x) z) (+.f64 (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 4))) (/.f64 (exp.f64 x) (pow.f64 z 3)))))
(/.f64 (exp.f64 x) z)
(+.f64 (/.f64 (exp.f64 x) z) (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 2))))
(+.f64 (/.f64 (exp.f64 x) z) (+.f64 (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 2))) (/.f64 (exp.f64 x) (pow.f64 z 3))))
(+.f64 (/.f64 (exp.f64 x) z) (+.f64 (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 4))) (/.f64 (exp.f64 x) (pow.f64 z 3)))))
Outputs
(/.f64 1 (+.f64 1 z))
(+.f64 (/.f64 x (+.f64 1 z)) (/.f64 1 (+.f64 1 z)))
(+.f64 (/.f64 1 (+.f64 1 z)) (/.f64 x (+.f64 1 z)))
(+.f64 (/.f64 x (+.f64 1 z)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))) (/.f64 1 (+.f64 1 z))))
(+.f64 (/.f64 x (+.f64 1 z)) (fma.f64 1/2 (/.f64 (*.f64 x x) (+.f64 1 z)) (/.f64 1 (+.f64 1 z))))
(+.f64 (/.f64 x (+.f64 1 z)) (fma.f64 1/2 (/.f64 x (/.f64 (+.f64 1 z) x)) (/.f64 1 (+.f64 1 z))))
(+.f64 (/.f64 1 (+.f64 1 z)) (fma.f64 1/2 (/.f64 (*.f64 x x) (+.f64 1 z)) (/.f64 x (+.f64 1 z))))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (+.f64 (/.f64 x (+.f64 1 z)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))) (/.f64 1 (+.f64 1 z)))))
(fma.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (fma.f64 1/2 (/.f64 (*.f64 x x) (+.f64 1 z)) (/.f64 1 (+.f64 1 z)))))
(+.f64 (fma.f64 1/2 (/.f64 x (/.f64 (+.f64 1 z) x)) (/.f64 1 (+.f64 1 z))) (fma.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)) (/.f64 x (+.f64 1 z))))
(+.f64 (/.f64 x (+.f64 1 z)) (fma.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)) (fma.f64 1/2 (/.f64 (*.f64 x x) (+.f64 1 z)) (/.f64 1 (+.f64 1 z)))))
(+.f64 (/.f64 x (+.f64 1 z)) (fma.f64 1/2 (/.f64 x (/.f64 (+.f64 1 z) x)) (fma.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)) (/.f64 1 (+.f64 1 z)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))))
(exp.f64 x)
(+.f64 (*.f64 -1 (*.f64 z (exp.f64 x))) (exp.f64 x))
(fma.f64 -1 (*.f64 z (exp.f64 x)) (exp.f64 x))
(-.f64 (exp.f64 x) (*.f64 z (exp.f64 x)))
(*.f64 (exp.f64 x) (fma.f64 z -1 1))
(*.f64 (exp.f64 x) (-.f64 1 z))
(+.f64 (*.f64 -1 (*.f64 z (exp.f64 x))) (+.f64 (exp.f64 x) (*.f64 (exp.f64 x) (pow.f64 z 2))))
(+.f64 (fma.f64 -1 (*.f64 z (exp.f64 x)) (exp.f64 x)) (*.f64 (exp.f64 x) (*.f64 z z)))
(-.f64 (fma.f64 (exp.f64 x) (*.f64 z z) (exp.f64 x)) (*.f64 z (exp.f64 x)))
(*.f64 (exp.f64 x) (-.f64 (fma.f64 z z 1) z))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (exp.f64 x))) (+.f64 (*.f64 -1 (*.f64 z (exp.f64 x))) (+.f64 (exp.f64 x) (*.f64 (exp.f64 x) (pow.f64 z 2)))))
(fma.f64 -1 (*.f64 (exp.f64 x) (pow.f64 z 3)) (+.f64 (fma.f64 -1 (*.f64 z (exp.f64 x)) (exp.f64 x)) (*.f64 (exp.f64 x) (*.f64 z z))))
(+.f64 (fma.f64 (exp.f64 x) (*.f64 z z) (exp.f64 x)) (*.f64 (exp.f64 x) (+.f64 (neg.f64 (pow.f64 z 3)) (neg.f64 z))))
(fma.f64 (fma.f64 z z 1) (exp.f64 x) (*.f64 (exp.f64 x) (-.f64 (neg.f64 (pow.f64 z 3)) z)))
(*.f64 (fma.f64 z z 1) (*.f64 (exp.f64 x) (-.f64 1 z)))
(/.f64 (exp.f64 x) z)
(+.f64 (/.f64 (exp.f64 x) z) (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 2))))
(+.f64 (/.f64 (exp.f64 x) z) (neg.f64 (/.f64 (exp.f64 x) (*.f64 z z))))
(-.f64 (/.f64 (exp.f64 x) z) (/.f64 (exp.f64 x) (*.f64 z z)))
(*.f64 (+.f64 (/.f64 -1 z) 1) (/.f64 (exp.f64 x) z))
(*.f64 (/.f64 (exp.f64 x) z) (+.f64 1 (/.f64 -1 z)))
(+.f64 (/.f64 (exp.f64 x) z) (+.f64 (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 2))) (/.f64 (exp.f64 x) (pow.f64 z 3))))
(+.f64 (/.f64 (exp.f64 x) z) (fma.f64 -1 (/.f64 (exp.f64 x) (*.f64 z z)) (/.f64 (exp.f64 x) (pow.f64 z 3))))
(+.f64 (/.f64 (exp.f64 x) z) (-.f64 (/.f64 (exp.f64 x) (pow.f64 z 3)) (/.f64 (exp.f64 x) (*.f64 z z))))
(+.f64 (*.f64 (+.f64 (/.f64 -1 z) 1) (/.f64 (exp.f64 x) z)) (/.f64 (exp.f64 x) (pow.f64 z 3)))
(fma.f64 (+.f64 1 (/.f64 -1 z)) (/.f64 (exp.f64 x) z) (/.f64 (exp.f64 x) (pow.f64 z 3)))
(+.f64 (/.f64 (exp.f64 x) z) (+.f64 (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 4))) (/.f64 (exp.f64 x) (pow.f64 z 3)))))
(+.f64 (/.f64 (exp.f64 x) z) (fma.f64 -1 (/.f64 (exp.f64 x) (*.f64 z z)) (fma.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 4)) (/.f64 (exp.f64 x) (pow.f64 z 3)))))
(+.f64 (/.f64 (exp.f64 x) z) (-.f64 (-.f64 (/.f64 (exp.f64 x) (pow.f64 z 3)) (/.f64 (exp.f64 x) (pow.f64 z 4))) (/.f64 (exp.f64 x) (*.f64 z z))))
(+.f64 (*.f64 (+.f64 (/.f64 -1 z) 1) (/.f64 (exp.f64 x) z)) (-.f64 (/.f64 (exp.f64 x) (pow.f64 z 3)) (/.f64 (exp.f64 x) (pow.f64 z 4))))
(fma.f64 (+.f64 1 (/.f64 -1 z)) (/.f64 (exp.f64 x) z) (*.f64 (+.f64 1 (/.f64 -1 z)) (/.f64 (exp.f64 x) (pow.f64 z 3))))
(*.f64 (+.f64 1 (/.f64 -1 z)) (+.f64 (/.f64 (exp.f64 x) z) (/.f64 (exp.f64 x) (pow.f64 z 3))))
(/.f64 (exp.f64 x) z)
(+.f64 (/.f64 (exp.f64 x) z) (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 2))))
(+.f64 (/.f64 (exp.f64 x) z) (neg.f64 (/.f64 (exp.f64 x) (*.f64 z z))))
(-.f64 (/.f64 (exp.f64 x) z) (/.f64 (exp.f64 x) (*.f64 z z)))
(*.f64 (+.f64 (/.f64 -1 z) 1) (/.f64 (exp.f64 x) z))
(*.f64 (/.f64 (exp.f64 x) z) (+.f64 1 (/.f64 -1 z)))
(+.f64 (/.f64 (exp.f64 x) z) (+.f64 (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 2))) (/.f64 (exp.f64 x) (pow.f64 z 3))))
(+.f64 (/.f64 (exp.f64 x) z) (fma.f64 -1 (/.f64 (exp.f64 x) (*.f64 z z)) (/.f64 (exp.f64 x) (pow.f64 z 3))))
(+.f64 (/.f64 (exp.f64 x) z) (-.f64 (/.f64 (exp.f64 x) (pow.f64 z 3)) (/.f64 (exp.f64 x) (*.f64 z z))))
(+.f64 (*.f64 (+.f64 (/.f64 -1 z) 1) (/.f64 (exp.f64 x) z)) (/.f64 (exp.f64 x) (pow.f64 z 3)))
(fma.f64 (+.f64 1 (/.f64 -1 z)) (/.f64 (exp.f64 x) z) (/.f64 (exp.f64 x) (pow.f64 z 3)))
(+.f64 (/.f64 (exp.f64 x) z) (+.f64 (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 4))) (/.f64 (exp.f64 x) (pow.f64 z 3)))))
(+.f64 (/.f64 (exp.f64 x) z) (fma.f64 -1 (/.f64 (exp.f64 x) (*.f64 z z)) (fma.f64 -1 (/.f64 (exp.f64 x) (pow.f64 z 4)) (/.f64 (exp.f64 x) (pow.f64 z 3)))))
(+.f64 (/.f64 (exp.f64 x) z) (-.f64 (-.f64 (/.f64 (exp.f64 x) (pow.f64 z 3)) (/.f64 (exp.f64 x) (pow.f64 z 4))) (/.f64 (exp.f64 x) (*.f64 z z))))
(+.f64 (*.f64 (+.f64 (/.f64 -1 z) 1) (/.f64 (exp.f64 x) z)) (-.f64 (/.f64 (exp.f64 x) (pow.f64 z 3)) (/.f64 (exp.f64 x) (pow.f64 z 4))))
(fma.f64 (+.f64 1 (/.f64 -1 z)) (/.f64 (exp.f64 x) z) (*.f64 (+.f64 1 (/.f64 -1 z)) (/.f64 (exp.f64 x) (pow.f64 z 3))))
(*.f64 (+.f64 1 (/.f64 -1 z)) (+.f64 (/.f64 (exp.f64 x) z) (/.f64 (exp.f64 x) (pow.f64 z 3))))

localize9.0ms (0.1%)

Compiler

Compiled 7 to 4 computations (42.9% saved)

eval24.0ms (0.3%)

Compiler

Compiled 677 to 358 computations (47.1% saved)

prune12.0ms (0.2%)

Pruning

9 alts after pruning (3 fresh and 6 done)

PrunedKeptTotal
New51354
Fresh000
Picked011
Done055
Total51960
Error
0b
Counts
60 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
0.7b
(exp.f64 (-.f64 x z))
45.6b
(pow.f64 y y)
45.2b
(+.f64 (/.f64 x (+.f64 1 z)) (/.f64 1 (+.f64 1 z)))
19.9b
(/.f64 (exp.f64 x) (+.f64 1 z))
20.3b
(exp.f64 x)
26.6b
(/.f64 (pow.f64 y y) (exp.f64 z))
45.7b
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))))
18.7b
(exp.f64 (neg.f64 z))
44.9b
(/.f64 1 (+.f64 1 z))
Compiler

Compiled 92 to 70 computations (23.9% saved)

localize44.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 1 (+.f64 1 z))
0.1b
(*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))
0.3b
(*.f64 x 1/6)
3.8b
(/.f64 (*.f64 x x) (+.f64 1 z))
Compiler

Compiled 96 to 62 computations (35.4% saved)

series10.0ms (0.1%)

Counts
4 → 72
Calls

18 calls:

TimeVariablePointExpression
1.0ms
z
@0
(*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))
1.0ms
x
@0
(/.f64 (*.f64 x x) (+.f64 1 z))
1.0ms
x
@inf
(/.f64 (*.f64 x x) (+.f64 1 z))
1.0ms
x
@inf
(*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))
1.0ms
x
@0
(*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))

rewrite113.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
683×log-prod_binary64
464×prod-diff_binary64
295×fma-def_binary64
247×expm1-udef_binary64
247×log1p-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01340
129338
2409938
Stop Event
node limit
Counts
4 → 176
Calls
Call 1
Inputs
(/.f64 (*.f64 x x) (+.f64 1 z))
(*.f64 x 1/6)
(*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))
(/.f64 1 (+.f64 1 z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 x (+.f64 1 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 x (+.f64 1 z)) x))) (cbrt.f64 (exp.f64 (*.f64 (/.f64 x (+.f64 1 z)) x))))) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 x (+.f64 1 z)) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 1 (/.f64 (+.f64 1 z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 x (/.f64 1 (+.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (/.f64 1 (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 x (+.f64 1 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 1 z)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 x 4)) (*.f64 (pow.f64 (cbrt.f64 x) 2) (/.f64 1 (+.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)) (pow.f64 (cbrt.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)) 2) (cbrt.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 1 z) -1/2) (/.f64 (*.f64 x x) (sqrt.f64 (+.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (sqrt.f64 (+.f64 1 z))) (/.f64 x (sqrt.f64 (+.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (neg.f64 x)) (/.f64 1 (+.f64 -1 (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 1) (/.f64 x (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (+.f64 1 z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 x 4)) 1) (/.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (cbrt.f64 (pow.f64 (+.f64 1 z) 2))) (/.f64 x (cbrt.f64 (+.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (pow.f64 (+.f64 1 z) 2))) (/.f64 (*.f64 x x) (cbrt.f64 (+.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (pow.f64 (+.f64 1 z) 2))) (cbrt.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 x 4)) (sqrt.f64 (+.f64 1 z))) (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (+.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x x) (+.f64 1 (pow.f64 z 3))) (fma.f64 z (-.f64 z 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x x) (-.f64 1 (*.f64 z z))) (-.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x x) (cbrt.f64 (pow.f64 (+.f64 1 z) -2))) (cbrt.f64 (/.f64 1 (+.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x x) (pow.f64 (+.f64 1 z) -1/2)) (pow.f64 (+.f64 1 z) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 x (sqrt.f64 (+.f64 1 z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 1 z) (*.f64 x x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 x x) (+.f64 -1 (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 x 4) (pow.f64 (+.f64 1 z) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 x (+.f64 1 z)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 x x) 3) (pow.f64 (+.f64 1 z) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x x) 3) (pow.f64 (/.f64 1 (+.f64 1 z)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 2 (log.f64 x)) (log1p.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (-.f64 (*.f64 2 (log.f64 x)) (log1p.f64 z)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/6) x)) (cbrt.f64 (pow.f64 (exp.f64 1/6) x)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/6) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/6) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/6) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x 1/6))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 1/6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x 1/6)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x 1/6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/216 (pow.f64 x 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 x x) 1/36))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 1/6) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 1/216 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x 1/6)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (fma.f64 x 1/6 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)) 1) (*.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 x 1/6 1/2)) (*.f64 (/.f64 x (+.f64 1 z)) x))) (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 x 1/6 1/2)) (*.f64 (/.f64 x (+.f64 1 z)) x))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 x 1/6 1/2)) (*.f64 (/.f64 x (+.f64 1 z)) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 x 1/6 1/2)) (*.f64 (/.f64 x (+.f64 1 z)) x)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 x 1/6 1/2)) (*.f64 (/.f64 x (+.f64 1 z)) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (fma.f64 x 1/6 1/2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x x) (/.f64 (+.f64 1 z) (fma.f64 x 1/6 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 z) (*.f64 (*.f64 x x) (fma.f64 x 1/6 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x 1/6 1/2) (/.f64 (+.f64 1 z) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 1/216 (pow.f64 x 3) 1/8) (*.f64 (/.f64 (+.f64 1 z) (*.f64 x x)) (fma.f64 (*.f64 x 1/6) (fma.f64 x 1/6 -1/2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1/4 (*.f64 (*.f64 x x) 1/36)) (*.f64 (/.f64 (+.f64 1 z) (*.f64 x x)) (+.f64 1/2 (*.f64 -1/6 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) (fma.f64 x 1/6 1/2)) (+.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (*.f64 x x) (fma.f64 x 1/6 1/2))) (+.f64 -1 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (fma.f64 1/216 (pow.f64 x 3) 1/8)) (*.f64 (/.f64 (+.f64 1 z) x) (fma.f64 (*.f64 x 1/6) (fma.f64 x 1/6 -1/2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) (fma.f64 1/216 (pow.f64 x 3) 1/8)) (*.f64 (+.f64 1 z) (fma.f64 (*.f64 x 1/6) (fma.f64 x 1/6 -1/2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (neg.f64 x)) (fma.f64 1/216 (pow.f64 x 3) 1/8)) (*.f64 (+.f64 -1 (neg.f64 z)) (fma.f64 (*.f64 x 1/6) (fma.f64 x 1/6 -1/2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1/4 (*.f64 (*.f64 x x) 1/36))) (*.f64 (/.f64 (+.f64 1 z) x) (+.f64 1/2 (*.f64 -1/6 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) (-.f64 1/4 (*.f64 (*.f64 x x) 1/36))) (*.f64 (+.f64 1 z) (+.f64 1/2 (*.f64 -1/6 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (neg.f64 x)) (-.f64 1/4 (*.f64 (*.f64 x x) 1/36))) (*.f64 (+.f64 -1 (neg.f64 z)) (+.f64 1/2 (*.f64 -1/6 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 1/216 (pow.f64 x 3) 1/8) x) (*.f64 (fma.f64 (*.f64 x 1/6) (fma.f64 x 1/6 -1/2) 1/4) (/.f64 (+.f64 1 z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/4 (*.f64 (*.f64 x x) 1/36)) x) (*.f64 (+.f64 1/2 (*.f64 -1/6 x)) (/.f64 (+.f64 1 z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 1/216 (pow.f64 x 3) 1/8) (*.f64 x x)) (*.f64 (fma.f64 (*.f64 x 1/6) (fma.f64 x 1/6 -1/2) 1/4) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/4 (*.f64 (*.f64 x x) 1/36)) (*.f64 x x)) (*.f64 (+.f64 1/2 (*.f64 -1/6 x)) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 1/216 (pow.f64 x 3) 1/8) 1) (*.f64 (fma.f64 (*.f64 x 1/6) (fma.f64 x 1/6 -1/2) 1/4) (/.f64 (+.f64 1 z) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/4 (*.f64 (*.f64 x x) 1/36)) 1) (*.f64 (+.f64 1/2 (*.f64 -1/6 x)) (/.f64 (+.f64 1 z) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 1/216 (pow.f64 x 3) 1/8) (*.f64 x (neg.f64 x))) (*.f64 (fma.f64 (*.f64 x 1/6) (fma.f64 x 1/6 -1/2) 1/4) (+.f64 -1 (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/4 (*.f64 (*.f64 x x) 1/36)) (*.f64 x (neg.f64 x))) (*.f64 (+.f64 1/2 (*.f64 -1/6 x)) (+.f64 -1 (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)) 3) (pow.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)) 3)) (fma.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)) (-.f64 (*.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6))) (*.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z))) (*.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)))) (-.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (*.f64 x x) (fma.f64 x 1/6 1/2)) 1) (+.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (*.f64 x x) (fma.f64 x 1/6 1/2)) (cbrt.f64 (pow.f64 (+.f64 1 z) 2))) (cbrt.f64 (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (*.f64 x x) (fma.f64 x 1/6 1/2)) (sqrt.f64 (+.f64 1 z))) (sqrt.f64 (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (fma.f64 x 1/6 1/2)) (/.f64 (+.f64 1 z) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (neg.f64 x)) (fma.f64 x 1/6 1/2)) (+.f64 -1 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 1/216 (pow.f64 x 3) 1/8) (*.f64 (/.f64 x (+.f64 1 z)) x)) (fma.f64 (*.f64 x 1/6) (fma.f64 x 1/6 -1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/4 (*.f64 (*.f64 x x) 1/36)) (*.f64 (/.f64 x (+.f64 1 z)) x)) (+.f64 1/2 (*.f64 -1/6 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (fma.f64 1/216 (pow.f64 x 3) 1/8)) (fma.f64 (*.f64 x 1/6) (fma.f64 x 1/6 -1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (-.f64 1/4 (*.f64 (*.f64 x x) 1/36))) (+.f64 1/2 (*.f64 -1/6 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 x 1/6 1/2) x) (/.f64 (+.f64 1 z) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 x 1/6 1/2) (*.f64 x (neg.f64 x))) (+.f64 -1 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (fma.f64 x 1/6 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (fma.f64 x 1/6 1/2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (fma.f64 x 1/6 1/2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (fma.f64 x 1/6 1/2)) (/.f64 x (sqrt.f64 (+.f64 1 z)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (fma.f64 x 1/6 1/2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 x 1/6 1/2)) (*.f64 (/.f64 x (+.f64 1 z)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (fma.f64 x 1/6 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6))) (exp.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (fma.f64 x 1/6 1/2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) 3) (pow.f64 (fma.f64 x 1/6 1/2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 x 1/6 1/2) 3) (pow.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (fma.f64 x 1/6 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (fma.f64 x 1/6 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 (*.f64 x x) (fma.f64 x 1/6 1/2))) (log1p.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (-.f64 (log.f64 (*.f64 (*.f64 x x) (fma.f64 x 1/6 1/2))) (log1p.f64 z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 1/6 (*.f64 (/.f64 x (+.f64 1 z)) x)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) (*.f64 (/.f64 1 (+.f64 1 z)) 1/2) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) (*.f64 (/.f64 1 (+.f64 1 z)) (*.f64 x 1/6)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) 1/2 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/6 (*.f64 x (*.f64 (/.f64 x (+.f64 1 z)) x)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x 1/6) (*.f64 (/.f64 x (+.f64 1 z)) x) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 1/6)) 2) (*.f64 (cbrt.f64 (*.f64 x 1/6)) (*.f64 (/.f64 x (+.f64 1 z)) x)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)) 2) (*.f64 (cbrt.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)) 1/2) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)) 2) (*.f64 (cbrt.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)) (*.f64 x 1/6)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x 1/6)) (*.f64 (sqrt.f64 (*.f64 x 1/6)) (*.f64 (/.f64 x (+.f64 1 z)) x)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (sqrt.f64 (+.f64 1 z))) (*.f64 (/.f64 x (sqrt.f64 (+.f64 1 z))) 1/2) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (sqrt.f64 (+.f64 1 z))) (*.f64 (/.f64 x (sqrt.f64 (+.f64 1 z))) (*.f64 x 1/6)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)) 1 (*.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6))) (cbrt.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)))) (cbrt.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6))) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z))) (cbrt.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))) (cbrt.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z))) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6))) (sqrt.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6))) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z))) (sqrt.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z))) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 x (sqrt.f64 (+.f64 1 z))) (sqrt.f64 (*.f64 x 1/6))) (*.f64 (/.f64 x (sqrt.f64 (+.f64 1 z))) (sqrt.f64 (*.f64 x 1/6))) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 x 1/6)) (/.f64 x (sqrt.f64 (+.f64 1 z)))) (*.f64 (sqrt.f64 (*.f64 x 1/6)) (/.f64 x (sqrt.f64 (+.f64 1 z)))) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 1/6) (*.f64 x x)) (/.f64 1 (+.f64 1 z)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/2 (*.f64 x x)) (/.f64 1 (+.f64 1 z)) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) x) 1/6 (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)) 2)) (cbrt.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/2 (/.f64 x (sqrt.f64 (+.f64 1 z)))) (/.f64 x (sqrt.f64 (+.f64 1 z))) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (*.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) 1/6) x (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (pow.f64 (cbrt.f64 (*.f64 x 1/6)) 2)) (cbrt.f64 (*.f64 x 1/6)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (sqrt.f64 (*.f64 x 1/6))) (sqrt.f64 (*.f64 x 1/6)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 1/6) (pow.f64 (cbrt.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)) 2)) (cbrt.f64 (*.f64 (/.f64 x (+.f64 1 z)) x)) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 1/6) (/.f64 x (sqrt.f64 (+.f64 1 z)))) (/.f64 x (sqrt.f64 (+.f64 1 z))) (/.f64 (*.f64 (*.f64 x x) 1/2) (+.f64 1 z)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 1 (+.f64 1 z)))) (cbrt.f64 (exp.f64 (/.f64 1 (+.f64 1 z)))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 1 (+.f64 1 z))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (+.f64 1 z))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (+.f64 1 z))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1 (+.f64 1 z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 1 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 1 (+.f64 1 z))) (cbrt.f64 (pow.f64 (+.f64 1 z) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 1 z) -2)) (cbrt.f64 (/.f64 1 (+.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 1 z) -1/2) (pow.f64 (+.f64 1 z) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (+.f64 -1 (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 1 z) 2)) -1) (pow.f64 (cbrt.f64 (+.f64 1 z)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (+.f64 1 z)) -1) (pow.f64 (sqrt.f64 (+.f64 1 z)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 1 (pow.f64 z 3))) (fma.f64 z (-.f64 z 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 (*.f64 z z))) (-.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1 z) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (+.f64 1 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 1 (+.f64 1 z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 1 (+.f64 1 z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 1 z) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 1 z) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (+.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1 (+.f64 1 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 1 (+.f64 1 z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (+.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (+.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log1p.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 z) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log1p.f64 z)) 1))))))

simplify102.0ms (1.5%)

Algorithm
egg-herbie
Rules
553×fma-def_binary64
382×associate-/l/_binary64
356×distribute-rgt-out--_binary64
317×distribute-rgt-in_binary64
300×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0811440
12471322
28431199
342581106
Stop Event
node limit
Counts
248 → 232
Calls
Call 1
Inputs
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(pow.f64 x 2)
(+.f64 (*.f64 -1 (*.f64 z (pow.f64 x 2))) (pow.f64 x 2))
(+.f64 (*.f64 -1 (*.f64 z (pow.f64 x 2))) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))))
(+.f64 (*.f64 -1 (*.f64 z (pow.f64 x 2))) (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))))
(/.f64 (pow.f64 x 2) z)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 2))) (/.f64 (pow.f64 x 2) z))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 2))) (+.f64 (/.f64 (pow.f64 x 2) z) (/.f64 (pow.f64 x 2) (pow.f64 z 3))))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 4))) (+.f64 (/.f64 (pow.f64 x 2) z) (/.f64 (pow.f64 x 2) (pow.f64 z 3)))))
(/.f64 (pow.f64 x 2) z)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 2))) (/.f64 (pow.f64 x 2) z))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 2))) (+.f64 (/.f64 (pow.f64 x 2) z) (/.f64 (pow.f64 x 2) (pow.f64 z 3))))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 4))) (+.f64 (/.f64 (pow.f64 x 2) z) (/.f64 (pow.f64 x 2) (pow.f64 z 3)))))
(*.f64 1/6 x)
(*.f64 1/6 x)
(*.f64 1/6 x)
(*.f64 1/6 x)
(*.f64 1/6 x)
(*.f64 1/6 x)
(*.f64 1/6 x)
(*.f64 1/6 x)
(*.f64 1/6 x)
(*.f64 1/6 x)
(*.f64 1/6 x)
(*.f64 1/6 x)
(*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z)))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2))
(+.f64 (*.f64 -1 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (*.f64 z (pow.f64 x 2)))) (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (*.f64 z (pow.f64 x 2)))) (+.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (*.f64 z (pow.f64 x 2)))) (+.f64 (*.f64 -1 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (*.f64 (pow.f64 z 3) (pow.f64 x 2)))) (+.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (*.f64 (pow.f64 z 2) (pow.f64 x 2))))))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z)
(+.f64 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z) (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 2))))
(+.f64 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 2))) (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 3))))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 4))) (+.f64 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 2))) (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 3)))))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z)
(+.f64 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z) (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 2))))
(+.f64 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 2))) (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 3))))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 4))) (+.f64 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 2))) (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 3)))))
1
(+.f64 (*.f64 -1 z) 1)
(+.f64 (*.f64 -1 z) (+.f64 (pow.f64 z 2) 1))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (pow.f64 z 3)) (+.f64 (pow.f64 z 2) 1)))
(/.f64 1 z)
(-.f64 (/.f64 1 z) (/.f64 1 (pow.f64 z 2)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 1 z)) (/.f64 1 (pow.f64 z 2)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 1 z)) (+.f64 (/.f64 1 (pow.f64 z 2)) (/.f64 1 (pow.f64 z 4))))
(/.f64 1 z)
(-.f64 (/.f64 1 z) (/.f64 1 (pow.f64 z 2)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 1 z)) (/.f64 1 (pow.f64 z 2)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 1 z)) (+.f64 (/.f64 1 (pow.f64 z 2)) (/.f64 1 (pow.f64 z 4))))
Outputs
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (*.f64 x x) (+.f64 1 z))
(/.f64 x (/.f64 (+.f64 1 z) x))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (*.f64 x x) (+.f64 1 z))
(/.f64 x (/.f64 (+.f64 1 z) x))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (*.f64 x x) (+.f64 1 z))
(/.f64 x (/.f64 (+.f64 1 z) x))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (*.f64 x x) (+.f64 1 z))
(/.f64 x (/.f64 (+.f64 1 z) x))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (*.f64 x x) (+.f64 1 z))
(/.f64 x (/.f64 (+.f64 1 z) x))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (*.f64 x x) (+.f64 1 z))
(/.f64 x (/.f64 (+.f64 1 z) x))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (*.f64 x x) (+.f64 1 z))
(/.f64 x (/.f64 (+.f64 1 z) x))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (*.f64 x x) (+.f64 1 z))
(/.f64 x (/.f64 (+.f64 1 z) x))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (*.f64 x x) (+.f64 1 z))
(/.f64 x (/.f64 (+.f64 1 z) x))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (*.f64 x x) (+.f64 1 z))
(/.f64 x (/.f64 (+.f64 1 z) x))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (*.f64 x x) (+.f64 1 z))
(/.f64 x (/.f64 (+.f64 1 z) x))
(/.f64 (pow.f64 x 2) (+.f64 1 z))
(/.f64 (*.f64 x x) (+.f64 1 z))
(/.f64 x (/.f64 (+.f64 1 z) x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 -1 (*.f64 z (pow.f64 x 2))) (pow.f64 x 2))
(fma.f64 -1 (*.f64 (*.f64 x x) z) (*.f64 x x))
(*.f64 (-.f64 1 z) (*.f64 x x))
(*.f64 x (-.f64 x (*.f64 x z)))
(*.f64 (*.f64 x x) (-.f64 1 z))
(+.f64 (*.f64 -1 (*.f64 z (pow.f64 x 2))) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))))
(fma.f64 -1 (*.f64 (*.f64 x x) z) (*.f64 (+.f64 1 (*.f64 z z)) (*.f64 x x)))
(*.f64 (*.f64 x x) (-.f64 (fma.f64 z z 1) z))
(*.f64 x (*.f64 x (-.f64 (fma.f64 z z 1) z)))
(*.f64 x (*.f64 x (fma.f64 z z (-.f64 1 z))))
(+.f64 (*.f64 -1 (*.f64 z (pow.f64 x 2))) (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) (pow.f64 x 2))) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))))
(fma.f64 -1 (*.f64 (*.f64 x x) z) (fma.f64 -1 (*.f64 (*.f64 x x) (pow.f64 z 3)) (*.f64 (+.f64 1 (*.f64 z z)) (*.f64 x x))))
(-.f64 (*.f64 (*.f64 x x) (-.f64 (fma.f64 z z 1) (pow.f64 z 3))) (*.f64 x (*.f64 x z)))
(*.f64 (*.f64 x x) (-.f64 (-.f64 (fma.f64 z z 1) z) (pow.f64 z 3)))
(*.f64 (fma.f64 z z 1) (*.f64 (*.f64 x x) (-.f64 1 z)))
(/.f64 (pow.f64 x 2) z)
(/.f64 (*.f64 x x) z)
(/.f64 x (/.f64 z x))
(*.f64 (/.f64 x z) x)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 2))) (/.f64 (pow.f64 x 2) z))
(fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 z z)) (/.f64 (*.f64 x x) z))
(-.f64 (/.f64 x (/.f64 z x)) (/.f64 x (/.f64 (*.f64 z z) x)))
(*.f64 (+.f64 (/.f64 -1 z) 1) (*.f64 (/.f64 x z) x))
(*.f64 (/.f64 x z) (-.f64 x (/.f64 x z)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 2))) (+.f64 (/.f64 (pow.f64 x 2) z) (/.f64 (pow.f64 x 2) (pow.f64 z 3))))
(+.f64 (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 z z)) (/.f64 (*.f64 x x) z)) (/.f64 (*.f64 x x) (pow.f64 z 3)))
(-.f64 (+.f64 (/.f64 x (/.f64 z x)) (/.f64 (*.f64 x x) (pow.f64 z 3))) (/.f64 x (/.f64 (*.f64 z z) x)))
(+.f64 (*.f64 (+.f64 (/.f64 -1 z) 1) (*.f64 (/.f64 x z) x)) (*.f64 (/.f64 x (pow.f64 z 3)) x))
(+.f64 (*.f64 (/.f64 x z) (-.f64 x (/.f64 x z))) (*.f64 (/.f64 x (pow.f64 z 3)) x))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 4))) (+.f64 (/.f64 (pow.f64 x 2) z) (/.f64 (pow.f64 x 2) (pow.f64 z 3)))))
(fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 z z)) (fma.f64 -1 (/.f64 (*.f64 x x) (pow.f64 z 4)) (+.f64 (/.f64 (*.f64 x x) z) (/.f64 (*.f64 x x) (pow.f64 z 3)))))
(-.f64 (-.f64 (+.f64 (/.f64 x (/.f64 z x)) (/.f64 (*.f64 x x) (pow.f64 z 3))) (/.f64 (*.f64 x x) (pow.f64 z 4))) (/.f64 x (/.f64 (*.f64 z z) x)))
(+.f64 (*.f64 (+.f64 (/.f64 -1 z) 1) (*.f64 (/.f64 x z) x)) (-.f64 (*.f64 (/.f64 x (pow.f64 z 3)) x) (/.f64 (*.f64 x x) (pow.f64 z 4))))
(+.f64 (*.f64 (/.f64 x z) (-.f64 x (/.f64 x z))) (*.f64 (/.f64 x (pow.f64 z 3)) (-.f64 x (/.f64 x z))))
(/.f64 (pow.f64 x 2) z)
(/.f64 (*.f64 x x) z)
(/.f64 x (/.f64 z x))
(*.f64 (/.f64 x z) x)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 2))) (/.f64 (pow.f64 x 2) z))
(fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 z z)) (/.f64 (*.f64 x x) z))
(-.f64 (/.f64 x (/.f64 z x)) (/.f64 x (/.f64 (*.f64 z z) x)))
(*.f64 (+.f64 (/.f64 -1 z) 1) (*.f64 (/.f64 x z) x))
(*.f64 (/.f64 x z) (-.f64 x (/.f64 x z)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 2))) (+.f64 (/.f64 (pow.f64 x 2) z) (/.f64 (pow.f64 x 2) (pow.f64 z 3))))
(+.f64 (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 z z)) (/.f64 (*.f64 x x) z)) (/.f64 (*.f64 x x) (pow.f64 z 3)))
(-.f64 (+.f64 (/.f64 x (/.f64 z x)) (/.f64 (*.f64 x x) (pow.f64 z 3))) (/.f64 x (/.f64 (*.f64 z z) x)))
(+.f64 (*.f64 (+.f64 (/.f64 -1 z) 1) (*.f64 (/.f64 x z) x)) (*.f64 (/.f64 x (pow.f64 z 3)) x))
(+.f64 (*.f64 (/.f64 x z) (-.f64 x (/.f64 x z))) (*.f64 (/.f64 x (pow.f64 z 3)) x))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 z 4))) (+.f64 (/.f64 (pow.f64 x 2) z) (/.f64 (pow.f64 x 2) (pow.f64 z 3)))))
(fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 z z)) (fma.f64 -1 (/.f64 (*.f64 x x) (pow.f64 z 4)) (+.f64 (/.f64 (*.f64 x x) z) (/.f64 (*.f64 x x) (pow.f64 z 3)))))
(-.f64 (-.f64 (+.f64 (/.f64 x (/.f64 z x)) (/.f64 (*.f64 x x) (pow.f64 z 3))) (/.f64 (*.f64 x x) (pow.f64 z 4))) (/.f64 x (/.f64 (*.f64 z z) x)))
(+.f64 (*.f64 (+.f64 (/.f64 -1 z) 1) (*.f64 (/.f64 x z) x)) (-.f64 (*.f64 (/.f64 x (pow.f64 z 3)) x) (/.f64 (*.f64 x x) (pow.f64 z 4))))
(+.f64 (*.f64 (/.f64 x z) (-.f64 x (/.f64 x z))) (*.f64 (/.f64 x (pow.f64 z 3)) (-.f64 x (/.f64 x z))))
(*.f64 1/6 x)
(*.f64 x 1/6)
(*.f64 1/6 x)
(*.f64 x 1/6)
(*.f64 1/6 x)
(*.f64 x 1/6)
(*.f64 1/6 x)
(*.f64 x 1/6)
(*.f64 1/6 x)
(*.f64 x 1/6)
(*.f64 1/6 x)
(*.f64 x 1/6)
(*.f64 1/6 x)
(*.f64 x 1/6)
(*.f64 1/6 x)
(*.f64 x 1/6)
(*.f64 1/6 x)
(*.f64 x 1/6)
(*.f64 1/6 x)
(*.f64 x 1/6)
(*.f64 1/6 x)
(*.f64 x 1/6)
(*.f64 1/6 x)
(*.f64 x 1/6)
(*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z)))
(*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2)
(*.f64 (/.f64 x (/.f64 (+.f64 1 z) x)) 1/2)
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(fma.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2))
(fma.f64 (/.f64 x (/.f64 (+.f64 1 z) x)) 1/2 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (*.f64 (/.f64 1/6 (+.f64 1 z)) (pow.f64 x 3)))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (/.f64 1/6 (/.f64 (+.f64 1 z) (pow.f64 x 3))))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(fma.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2))
(fma.f64 (/.f64 x (/.f64 (+.f64 1 z) x)) 1/2 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (*.f64 (/.f64 1/6 (+.f64 1 z)) (pow.f64 x 3)))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (/.f64 1/6 (/.f64 (+.f64 1 z) (pow.f64 x 3))))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(fma.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2))
(fma.f64 (/.f64 x (/.f64 (+.f64 1 z) x)) 1/2 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (*.f64 (/.f64 1/6 (+.f64 1 z)) (pow.f64 x 3)))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (/.f64 1/6 (/.f64 (+.f64 1 z) (pow.f64 x 3))))
(*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)))
(/.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 1 z))
(*.f64 (/.f64 1/6 (+.f64 1 z)) (pow.f64 x 3))
(/.f64 1/6 (/.f64 (+.f64 1 z) (pow.f64 x 3)))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(fma.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2))
(fma.f64 (/.f64 x (/.f64 (+.f64 1 z) x)) 1/2 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (*.f64 (/.f64 1/6 (+.f64 1 z)) (pow.f64 x 3)))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (/.f64 1/6 (/.f64 (+.f64 1 z) (pow.f64 x 3))))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(fma.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2))
(fma.f64 (/.f64 x (/.f64 (+.f64 1 z) x)) 1/2 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (*.f64 (/.f64 1/6 (+.f64 1 z)) (pow.f64 x 3)))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (/.f64 1/6 (/.f64 (+.f64 1 z) (pow.f64 x 3))))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(fma.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2))
(fma.f64 (/.f64 x (/.f64 (+.f64 1 z) x)) 1/2 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (*.f64 (/.f64 1/6 (+.f64 1 z)) (pow.f64 x 3)))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (/.f64 1/6 (/.f64 (+.f64 1 z) (pow.f64 x 3))))
(*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)))
(/.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 1 z))
(*.f64 (/.f64 1/6 (+.f64 1 z)) (pow.f64 x 3))
(/.f64 1/6 (/.f64 (+.f64 1 z) (pow.f64 x 3)))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(fma.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2))
(fma.f64 (/.f64 x (/.f64 (+.f64 1 z) x)) 1/2 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (*.f64 (/.f64 1/6 (+.f64 1 z)) (pow.f64 x 3)))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (/.f64 1/6 (/.f64 (+.f64 1 z) (pow.f64 x 3))))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(fma.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2))
(fma.f64 (/.f64 x (/.f64 (+.f64 1 z) x)) 1/2 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (*.f64 (/.f64 1/6 (+.f64 1 z)) (pow.f64 x 3)))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (/.f64 1/6 (/.f64 (+.f64 1 z) (pow.f64 x 3))))
(+.f64 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))) (*.f64 1/2 (/.f64 (pow.f64 x 2) (+.f64 1 z))))
(fma.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2))
(fma.f64 (/.f64 x (/.f64 (+.f64 1 z) x)) 1/2 (*.f64 1/6 (/.f64 (pow.f64 x 3) (+.f64 1 z))))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (*.f64 (/.f64 1/6 (+.f64 1 z)) (pow.f64 x 3)))
(fma.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) 1/2 (/.f64 1/6 (/.f64 (+.f64 1 z) (pow.f64 x 3))))
(*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2))
(*.f64 (*.f64 x x) (+.f64 (*.f64 x 1/6) 1/2))
(*.f64 (*.f64 x x) (fma.f64 x 1/6 1/2))
(*.f64 x (*.f64 x (fma.f64 x 1/6 1/2)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (*.f64 z (pow.f64 x 2)))) (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 (*.f64 (*.f64 x x) z) (+.f64 (*.f64 x 1/6) 1/2)) (*.f64 (*.f64 x x) (+.f64 (*.f64 x 1/6) 1/2)))
(-.f64 (*.f64 (*.f64 x x) (fma.f64 x 1/6 1/2)) (*.f64 (*.f64 x x) (*.f64 z (fma.f64 x 1/6 1/2))))
(*.f64 (fma.f64 x 1/6 1/2) (*.f64 x (-.f64 x (*.f64 x z))))
(*.f64 x (*.f64 x (*.f64 (-.f64 1 z) (fma.f64 x 1/6 1/2))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (*.f64 z (pow.f64 x 2)))) (+.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))))
(fma.f64 -1 (*.f64 (*.f64 (*.f64 x x) z) (+.f64 (*.f64 x 1/6) 1/2)) (*.f64 (+.f64 (*.f64 x 1/6) 1/2) (*.f64 (+.f64 1 (*.f64 z z)) (*.f64 x x))))
(-.f64 (*.f64 (*.f64 (*.f64 x x) (fma.f64 z z 1)) (fma.f64 x 1/6 1/2)) (*.f64 (*.f64 x x) (*.f64 z (fma.f64 x 1/6 1/2))))
(*.f64 (fma.f64 x 1/6 1/2) (*.f64 x (*.f64 x (-.f64 (fma.f64 z z 1) z))))
(*.f64 (fma.f64 x 1/6 1/2) (*.f64 x (*.f64 x (fma.f64 z z (-.f64 1 z)))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (*.f64 z (pow.f64 x 2)))) (+.f64 (*.f64 -1 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (*.f64 (pow.f64 z 3) (pow.f64 x 2)))) (+.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (*.f64 (pow.f64 z 2) (pow.f64 x 2))))))
(fma.f64 -1 (*.f64 (*.f64 (*.f64 x x) z) (+.f64 (*.f64 x 1/6) 1/2)) (fma.f64 -1 (*.f64 (*.f64 (*.f64 x x) (pow.f64 z 3)) (+.f64 (*.f64 x 1/6) 1/2)) (*.f64 (+.f64 (*.f64 x 1/6) 1/2) (*.f64 (+.f64 1 (*.f64 z z)) (*.f64 x x)))))
(+.f64 (*.f64 (*.f64 (*.f64 x x) (fma.f64 z z 1)) (fma.f64 x 1/6 1/2)) (*.f64 (neg.f64 (fma.f64 x 1/6 1/2)) (+.f64 (*.f64 x (*.f64 x z)) (*.f64 (*.f64 x x) (pow.f64 z 3)))))
(fma.f64 (*.f64 (*.f64 x x) (pow.f64 z 3)) (+.f64 (*.f64 x -1/6) -1/2) (*.f64 (fma.f64 x 1/6 1/2) (*.f64 x (*.f64 x (-.f64 (fma.f64 z z 1) z)))))
(*.f64 (fma.f64 x 1/6 1/2) (*.f64 (fma.f64 z z 1) (*.f64 (*.f64 x x) (-.f64 1 z))))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z)
(/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 z (*.f64 x x)))
(/.f64 (*.f64 x x) (/.f64 z (fma.f64 x 1/6 1/2)))
(*.f64 (*.f64 (/.f64 x z) x) (fma.f64 x 1/6 1/2))
(+.f64 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z) (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 2))))
(+.f64 (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 z (*.f64 x x))) (neg.f64 (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 (*.f64 z z) (*.f64 x x)))))
(-.f64 (/.f64 (*.f64 x x) (/.f64 z (fma.f64 x 1/6 1/2))) (/.f64 (*.f64 x x) (/.f64 (*.f64 z z) (fma.f64 x 1/6 1/2))))
(*.f64 (/.f64 (fma.f64 x 1/6 1/2) z) (-.f64 (*.f64 x x) (*.f64 (/.f64 x z) x)))
(*.f64 (fma.f64 x 1/6 1/2) (*.f64 (/.f64 x z) (-.f64 x (/.f64 x z))))
(+.f64 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 2))) (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 3))))
(+.f64 (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 z (*.f64 x x))) (fma.f64 -1 (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 (*.f64 z z) (*.f64 x x))) (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 (pow.f64 z 3) (*.f64 x x)))))
(+.f64 (/.f64 (*.f64 x x) (/.f64 z (fma.f64 x 1/6 1/2))) (-.f64 (/.f64 (fma.f64 x 1/6 1/2) (/.f64 (pow.f64 z 3) (*.f64 x x))) (/.f64 (*.f64 x x) (/.f64 (*.f64 z z) (fma.f64 x 1/6 1/2)))))
(fma.f64 (/.f64 (fma.f64 x 1/6 1/2) z) (*.f64 x x) (*.f64 (/.f64 (fma.f64 x 1/6 1/2) (*.f64 z z)) (-.f64 (*.f64 (/.f64 x z) x) (*.f64 x x))))
(*.f64 (/.f64 (fma.f64 x 1/6 1/2) z) (-.f64 (+.f64 (*.f64 x x) (*.f64 (/.f64 x z) (/.f64 x z))) (*.f64 (/.f64 x z) x)))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 4))) (+.f64 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 2))) (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 3)))))
(fma.f64 -1 (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 (pow.f64 z 4) (*.f64 x x))) (+.f64 (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 z (*.f64 x x))) (fma.f64 -1 (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 (*.f64 z z) (*.f64 x x))) (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 (pow.f64 z 3) (*.f64 x x))))))
(-.f64 (+.f64 (/.f64 (*.f64 x x) (/.f64 z (fma.f64 x 1/6 1/2))) (-.f64 (/.f64 (fma.f64 x 1/6 1/2) (/.f64 (pow.f64 z 3) (*.f64 x x))) (/.f64 (*.f64 x x) (/.f64 (*.f64 z z) (fma.f64 x 1/6 1/2))))) (*.f64 (/.f64 (fma.f64 x 1/6 1/2) (pow.f64 z 4)) (*.f64 x x)))
(-.f64 (fma.f64 (/.f64 (fma.f64 x 1/6 1/2) z) (*.f64 x x) (*.f64 (/.f64 (fma.f64 x 1/6 1/2) (*.f64 z z)) (-.f64 (*.f64 (/.f64 x z) x) (*.f64 x x)))) (*.f64 (*.f64 x x) (/.f64 (fma.f64 x 1/6 1/2) (pow.f64 z 4))))
(+.f64 (*.f64 (fma.f64 x 1/6 1/2) (*.f64 (/.f64 x z) (-.f64 x (/.f64 x z)))) (*.f64 (fma.f64 x 1/6 1/2) (*.f64 (/.f64 x (pow.f64 z 3)) (-.f64 x (/.f64 x z)))))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z)
(/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 z (*.f64 x x)))
(/.f64 (*.f64 x x) (/.f64 z (fma.f64 x 1/6 1/2)))
(*.f64 (*.f64 (/.f64 x z) x) (fma.f64 x 1/6 1/2))
(+.f64 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z) (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 2))))
(+.f64 (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 z (*.f64 x x))) (neg.f64 (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 (*.f64 z z) (*.f64 x x)))))
(-.f64 (/.f64 (*.f64 x x) (/.f64 z (fma.f64 x 1/6 1/2))) (/.f64 (*.f64 x x) (/.f64 (*.f64 z z) (fma.f64 x 1/6 1/2))))
(*.f64 (/.f64 (fma.f64 x 1/6 1/2) z) (-.f64 (*.f64 x x) (*.f64 (/.f64 x z) x)))
(*.f64 (fma.f64 x 1/6 1/2) (*.f64 (/.f64 x z) (-.f64 x (/.f64 x z))))
(+.f64 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 2))) (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 3))))
(+.f64 (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 z (*.f64 x x))) (fma.f64 -1 (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 (*.f64 z z) (*.f64 x x))) (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 (pow.f64 z 3) (*.f64 x x)))))
(+.f64 (/.f64 (*.f64 x x) (/.f64 z (fma.f64 x 1/6 1/2))) (-.f64 (/.f64 (fma.f64 x 1/6 1/2) (/.f64 (pow.f64 z 3) (*.f64 x x))) (/.f64 (*.f64 x x) (/.f64 (*.f64 z z) (fma.f64 x 1/6 1/2)))))
(fma.f64 (/.f64 (fma.f64 x 1/6 1/2) z) (*.f64 x x) (*.f64 (/.f64 (fma.f64 x 1/6 1/2) (*.f64 z z)) (-.f64 (*.f64 (/.f64 x z) x) (*.f64 x x))))
(*.f64 (/.f64 (fma.f64 x 1/6 1/2) z) (-.f64 (+.f64 (*.f64 x x) (*.f64 (/.f64 x z) (/.f64 x z))) (*.f64 (/.f64 x z) x)))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 4))) (+.f64 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 2))) (/.f64 (*.f64 (+.f64 1/2 (*.f64 1/6 x)) (pow.f64 x 2)) (pow.f64 z 3)))))
(fma.f64 -1 (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 (pow.f64 z 4) (*.f64 x x))) (+.f64 (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 z (*.f64 x x))) (fma.f64 -1 (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 (*.f64 z z) (*.f64 x x))) (/.f64 (+.f64 (*.f64 x 1/6) 1/2) (/.f64 (pow.f64 z 3) (*.f64 x x))))))
(-.f64 (+.f64 (/.f64 (*.f64 x x) (/.f64 z (fma.f64 x 1/6 1/2))) (-.f64 (/.f64 (fma.f64 x 1/6 1/2) (/.f64 (pow.f64 z 3) (*.f64 x x))) (/.f64 (*.f64 x x) (/.f64 (*.f64 z z) (fma.f64 x 1/6 1/2))))) (*.f64 (/.f64 (fma.f64 x 1/6 1/2) (pow.f64 z 4)) (*.f64 x x)))
(-.f64 (fma.f64 (/.f64 (fma.f64 x 1/6 1/2) z) (*.f64 x x) (*.f64 (/.f64 (fma.f64 x 1/6 1/2) (*.f64 z z)) (-.f64 (*.f64 (/.f64 x z) x) (*.f64 x x)))) (*.f64 (*.f64 x x) (/.f64 (fma.f64 x 1/6 1/2) (pow.f64 z 4))))
(+.f64 (*.f64 (fma.f64 x 1/6 1/2) (*.f64 (/.f64 x z) (-.f64 x (/.f64 x z)))) (*.f64 (fma.f64 x 1/6 1/2) (*.f64 (/.f64 x (pow.f64 z 3)) (-.f64 x (/.f64 x z)))))
1
(+.f64 (*.f64 -1 z) 1)
(fma.f64 -1 z 1)
(-.f64 1 z)
(+.f64 (*.f64 -1 z) (+.f64 (pow.f64 z 2) 1))
(fma.f64 -1 z (+.f64 1 (*.f64 z z)))
(-.f64 (fma.f64 z z 1) z)
(fma.f64 z z (-.f64 1 z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (pow.f64 z 3)) (+.f64 (pow.f64 z 2) 1)))
(fma.f64 -1 z (fma.f64 -1 (pow.f64 z 3) (+.f64 1 (*.f64 z z))))
(-.f64 (-.f64 (fma.f64 z z 1) (pow.f64 z 3)) z)
(-.f64 (-.f64 (fma.f64 z z 1) z) (pow.f64 z 3))
(-.f64 (fma.f64 z z 1) (+.f64 z (pow.f64 z 3)))
(/.f64 1 z)
(-.f64 (/.f64 1 z) (/.f64 1 (pow.f64 z 2)))
(-.f64 (/.f64 1 z) (/.f64 1 (*.f64 z z)))
(+.f64 (/.f64 1 z) (/.f64 -1 (*.f64 z z)))
(+.f64 (/.f64 1 z) (/.f64 (/.f64 -1 z) z))
(-.f64 (+.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 1 z)) (/.f64 1 (pow.f64 z 2)))
(+.f64 (/.f64 1 (pow.f64 z 3)) (-.f64 (/.f64 1 z) (/.f64 1 (*.f64 z z))))
(+.f64 (/.f64 1 z) (-.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 1 (*.f64 z z))))
(+.f64 (/.f64 1 z) (+.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 (/.f64 -1 z) z)))
(+.f64 (/.f64 1 z) (+.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 -1 (*.f64 z z))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 1 z)) (+.f64 (/.f64 1 (pow.f64 z 2)) (/.f64 1 (pow.f64 z 4))))
(+.f64 (/.f64 1 (pow.f64 z 3)) (-.f64 (/.f64 1 z) (+.f64 (/.f64 1 (*.f64 z z)) (/.f64 1 (pow.f64 z 4)))))
(+.f64 (/.f64 1 (pow.f64 z 3)) (+.f64 (/.f64 1 z) (-.f64 (/.f64 (/.f64 -1 z) z) (/.f64 1 (pow.f64 z 4)))))
(+.f64 (+.f64 (/.f64 1 z) (/.f64 -1 (*.f64 z z))) (+.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 -1 (pow.f64 z 4))))
(/.f64 1 z)
(-.f64 (/.f64 1 z) (/.f64 1 (pow.f64 z 2)))
(-.f64 (/.f64 1 z) (/.f64 1 (*.f64 z z)))
(+.f64 (/.f64 1 z) (/.f64 -1 (*.f64 z z)))
(+.f64 (/.f64 1 z) (/.f64 (/.f64 -1 z) z))
(-.f64 (+.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 1 z)) (/.f64 1 (pow.f64 z 2)))
(+.f64 (/.f64 1 (pow.f64 z 3)) (-.f64 (/.f64 1 z) (/.f64 1 (*.f64 z z))))
(+.f64 (/.f64 1 z) (-.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 1 (*.f64 z z))))
(+.f64 (/.f64 1 z) (+.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 (/.f64 -1 z) z)))
(+.f64 (/.f64 1 z) (+.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 -1 (*.f64 z z))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 1 z)) (+.f64 (/.f64 1 (pow.f64 z 2)) (/.f64 1 (pow.f64 z 4))))
(+.f64 (/.f64 1 (pow.f64 z 3)) (-.f64 (/.f64 1 z) (+.f64 (/.f64 1 (*.f64 z z)) (/.f64 1 (pow.f64 z 4)))))
(+.f64 (/.f64 1 (pow.f64 z 3)) (+.f64 (/.f64 1 z) (-.f64 (/.f64 (/.f64 -1 z) z) (/.f64 1 (pow.f64 z 4)))))
(+.f64 (+.f64 (/.f64 1 z) (/.f64 -1 (*.f64 z z))) (+.f64 (/.f64 1 (pow.f64 z 3)) (/.f64 -1 (pow.f64 z 4))))

localize24.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 30 to 21 computations (30% saved)

series5.0ms (0.1%)

Counts
1 → 12
Calls

6 calls:

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

rewrite83.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
697×pow1_binary64
649×add-log-exp_binary64
649×log1p-expm1-u_binary64
649×expm1-log1p-u_binary64
636×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify63.0ms (0.9%)

Algorithm
egg-herbie
Rules
679×associate-/r*_binary64
595×fma-def_binary64
399×associate-/l*_binary64
398×associate-/l/_binary64
257×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
028197
183185
2237179
3818165
43610151
Stop Event
node limit
Counts
45 → 47
Calls
Call 1
Inputs
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 (pow.f64 z 2) x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 (pow.f64 z 2) x) (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)))
(/.f64 x z)
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 2))) (/.f64 x z))
(+.f64 (/.f64 x (pow.f64 z 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 2))) (/.f64 x z)))
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 4))) (+.f64 (/.f64 x (pow.f64 z 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 2))) (/.f64 x z))))
(/.f64 x z)
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 2))) (/.f64 x z))
(+.f64 (/.f64 x (pow.f64 z 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 2))) (/.f64 x z)))
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 4))) (+.f64 (/.f64 x (pow.f64 z 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 2))) (/.f64 x z))))
Outputs
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(fma.f64 -1 (*.f64 x z) x)
(-.f64 x (*.f64 x z))
(+.f64 (*.f64 (pow.f64 z 2) x) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(fma.f64 (*.f64 z z) x (fma.f64 -1 (*.f64 x z) x))
(fma.f64 x (*.f64 z z) (-.f64 x (*.f64 x z)))
(fma.f64 x (-.f64 (*.f64 z z) z) x)
(fma.f64 z (*.f64 x (+.f64 -1 z)) x)
(*.f64 x (-.f64 (fma.f64 z z 1) z))
(+.f64 (*.f64 (pow.f64 z 2) x) (+.f64 (*.f64 -1 (*.f64 (pow.f64 z 3) x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)))
(fma.f64 (*.f64 z z) x (fma.f64 -1 (*.f64 x (pow.f64 z 3)) (fma.f64 -1 (*.f64 x z) x)))
(fma.f64 x (*.f64 z z) (-.f64 (-.f64 x (*.f64 x z)) (*.f64 x (pow.f64 z 3))))
(-.f64 (fma.f64 x (-.f64 (*.f64 z z) z) x) (*.f64 x (pow.f64 z 3)))
(*.f64 (fma.f64 z z 1) (-.f64 x (*.f64 x z)))
(*.f64 x (*.f64 (fma.f64 z z 1) (-.f64 1 z)))
(/.f64 x z)
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 2))) (/.f64 x z))
(fma.f64 -1 (/.f64 x (*.f64 z z)) (/.f64 x z))
(-.f64 (/.f64 x z) (/.f64 (/.f64 x z) z))
(-.f64 (/.f64 x z) (/.f64 x (*.f64 z z)))
(/.f64 (+.f64 1 (/.f64 -1 z)) (/.f64 z x))
(+.f64 (/.f64 x (pow.f64 z 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 2))) (/.f64 x z)))
(+.f64 (fma.f64 -1 (/.f64 x (*.f64 z z)) (/.f64 x z)) (/.f64 x (pow.f64 z 3)))
(+.f64 (-.f64 (/.f64 x z) (/.f64 (/.f64 x z) z)) (/.f64 x (pow.f64 z 3)))
(fma.f64 (+.f64 1 (/.f64 -1 z)) (/.f64 x z) (/.f64 x (pow.f64 z 3)))
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 4))) (+.f64 (/.f64 x (pow.f64 z 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 2))) (/.f64 x z))))
(fma.f64 -1 (/.f64 x (pow.f64 z 4)) (+.f64 (fma.f64 -1 (/.f64 x (*.f64 z z)) (/.f64 x z)) (/.f64 x (pow.f64 z 3))))
(-.f64 (+.f64 (-.f64 (/.f64 x z) (/.f64 (/.f64 x z) z)) (/.f64 x (pow.f64 z 3))) (/.f64 x (pow.f64 z 4)))
(+.f64 (-.f64 (/.f64 x z) (/.f64 (/.f64 x z) z)) (-.f64 (/.f64 x (pow.f64 z 3)) (/.f64 x (pow.f64 z 4))))
(-.f64 (fma.f64 (+.f64 1 (/.f64 -1 z)) (/.f64 x z) (/.f64 x (pow.f64 z 3))) (/.f64 x (pow.f64 z 4)))
(*.f64 (+.f64 1 (/.f64 -1 z)) (+.f64 (/.f64 x z) (/.f64 x (pow.f64 z 3))))
(/.f64 x z)
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 2))) (/.f64 x z))
(fma.f64 -1 (/.f64 x (*.f64 z z)) (/.f64 x z))
(-.f64 (/.f64 x z) (/.f64 (/.f64 x z) z))
(-.f64 (/.f64 x z) (/.f64 x (*.f64 z z)))
(/.f64 (+.f64 1 (/.f64 -1 z)) (/.f64 z x))
(+.f64 (/.f64 x (pow.f64 z 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 2))) (/.f64 x z)))
(+.f64 (fma.f64 -1 (/.f64 x (*.f64 z z)) (/.f64 x z)) (/.f64 x (pow.f64 z 3)))
(+.f64 (-.f64 (/.f64 x z) (/.f64 (/.f64 x z) z)) (/.f64 x (pow.f64 z 3)))
(fma.f64 (+.f64 1 (/.f64 -1 z)) (/.f64 x z) (/.f64 x (pow.f64 z 3)))
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 4))) (+.f64 (/.f64 x (pow.f64 z 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 z 2))) (/.f64 x z))))
(fma.f64 -1 (/.f64 x (pow.f64 z 4)) (+.f64 (fma.f64 -1 (/.f64 x (*.f64 z z)) (/.f64 x z)) (/.f64 x (pow.f64 z 3))))
(-.f64 (+.f64 (-.f64 (/.f64 x z) (/.f64 (/.f64 x z) z)) (/.f64 x (pow.f64 z 3))) (/.f64 x (pow.f64 z 4)))
(+.f64 (-.f64 (/.f64 x z) (/.f64 (/.f64 x z) z)) (-.f64 (/.f64 x (pow.f64 z 3)) (/.f64 x (pow.f64 z 4))))
(-.f64 (fma.f64 (+.f64 1 (/.f64 -1 z)) (/.f64 x z) (/.f64 x (pow.f64 z 3))) (/.f64 x (pow.f64 z 4)))
(*.f64 (+.f64 1 (/.f64 -1 z)) (+.f64 (/.f64 x z) (/.f64 x (pow.f64 z 3))))

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(/.f64 1 (+.f64 1 z))
Compiler

Compiled 13 to 10 computations (23.1% saved)

eval220.0ms (3.1%)

Compiler

Compiled 9349 to 6659 computations (28.8% saved)

prune129.0ms (1.8%)

Pruning

18 alts after pruning (11 fresh and 7 done)

PrunedKeptTotal
New35211363
Fresh000
Picked011
Done268
Total35418372
Error
0b
Counts
372 → 18
Alt Table
Click to see full alt table
StatusErrorProgram
45.8b
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (/.f64 (*.f64 (-.f64 1/4 (*.f64 (*.f64 x x) 1/36)) (*.f64 (/.f64 x (+.f64 1 z)) x)) (+.f64 1/2 (*.f64 -1/6 x)))))
20.3b
(exp.f64 x)
45.8b
(+.f64 (/.f64 x (+.f64 1 z)) 1)
0.7b
(exp.f64 (-.f64 x z))
45.6b
(pow.f64 y y)
62.0b
(+.f64 (/.f64 1 z) (/.f64 (/.f64 -1 z) z))
45.9b
(-.f64 1 z)
18.7b
(exp.f64 (neg.f64 z))
61.4b
(/.f64 1 z)
19.9b
(/.f64 (exp.f64 x) (+.f64 1 z))
28.8b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 z z))) (-.f64 1 z))
44.9b
(/.f64 1 (+.f64 1 z))
45.5b
(+.f64 x (/.f64 1 (+.f64 1 z)))
46.2b
(+.f64 1 (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))))
45.8b
1
26.6b
(/.f64 (pow.f64 y y) (exp.f64 z))
45.9b
(+.f64 (/.f64 x (+.f64 1 z)) (-.f64 1 z))
45.7b
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (+.f64 1/2 (*.f64 x 1/6)))))
Compiler

Compiled 212 to 163 computations (23.1% saved)

regimes148.0ms (2.1%)

Counts
23 → 1
Calls
Call 1
Inputs
1
(-.f64 1 z)
(/.f64 1 z)
(/.f64 1 (+.f64 1 z))
(+.f64 (/.f64 x (+.f64 1 z)) 1)
(+.f64 x (/.f64 1 (+.f64 1 z)))
(+.f64 (/.f64 1 z) (/.f64 (/.f64 -1 z) z))
(+.f64 (/.f64 x (+.f64 1 z)) (-.f64 1 z))
(*.f64 (/.f64 1 (-.f64 1 (*.f64 z z))) (-.f64 1 z))
(+.f64 (/.f64 x (+.f64 1 z)) (/.f64 1 (+.f64 1 z)))
(+.f64 1 (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (/.f64 (*.f64 (-.f64 1/4 (*.f64 (*.f64 x x) 1/36)) (*.f64 (/.f64 x (+.f64 1 z)) x)) (+.f64 1/2 (*.f64 -1/6 x)))))
(exp.f64 x)
(pow.f64 y y)
(exp.f64 (neg.f64 z))
(exp.f64 (-.f64 x z))
(/.f64 (exp.f64 x) (+.f64 1 z))
(/.f64 (pow.f64 y y) (exp.f64 z))
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
(exp.f64 (-.f64 (+.f64 x (*.f64 y (log.f64 y))) z))
(/.f64 (pow.f64 y y) (/.f64 (+.f64 1 z) (exp.f64 x)))
Outputs
(exp.f64 (-.f64 (+.f64 x (*.f64 y (log.f64 y))) z))
Calls

7 calls:

33.0ms
z
13.0ms
(*.f64 y (log.f64 y))
12.0ms
(+.f64 x (*.f64 y (log.f64 y)))
12.0ms
y
12.0ms
x
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(exp.f64 (-.f64 (+.f64 x (*.f64 y (log.f64 y))) z))
0.0b1(-.f64 (+.f64 x (*.f64 y (log.f64 y))) z)
0.0b1(+.f64 x (*.f64 y (log.f64 y)))
0.0b1(*.f64 y (log.f64 y))
Compiler

Compiled 275 to 181 computations (34.2% saved)

regimes42.0ms (0.6%)

Counts
21 → 1
Calls
Call 1
Inputs
1
(-.f64 1 z)
(/.f64 1 z)
(/.f64 1 (+.f64 1 z))
(+.f64 (/.f64 x (+.f64 1 z)) 1)
(+.f64 x (/.f64 1 (+.f64 1 z)))
(+.f64 (/.f64 1 z) (/.f64 (/.f64 -1 z) z))
(+.f64 (/.f64 x (+.f64 1 z)) (-.f64 1 z))
(*.f64 (/.f64 1 (-.f64 1 (*.f64 z z))) (-.f64 1 z))
(+.f64 (/.f64 x (+.f64 1 z)) (/.f64 1 (+.f64 1 z)))
(+.f64 1 (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (/.f64 (*.f64 (-.f64 1/4 (*.f64 (*.f64 x x) 1/36)) (*.f64 (/.f64 x (+.f64 1 z)) x)) (+.f64 1/2 (*.f64 -1/6 x)))))
(exp.f64 x)
(pow.f64 y y)
(exp.f64 (neg.f64 z))
(exp.f64 (-.f64 x z))
(/.f64 (exp.f64 x) (+.f64 1 z))
(/.f64 (pow.f64 y y) (exp.f64 z))
(/.f64 (pow.f64 y y) (exp.f64 (-.f64 z x)))
Outputs
(exp.f64 (-.f64 x z))
Calls

3 calls:

12.0ms
z
12.0ms
y
10.0ms
x
Results
ErrorSegmentsBranch
0.7b1x
0.7b1y
0.7b1z
Compiler

Compiled 217 to 146 computations (32.7% saved)

regimes196.0ms (2.8%)

Counts
17 → 2
Calls
Call 1
Inputs
1
(-.f64 1 z)
(/.f64 1 z)
(/.f64 1 (+.f64 1 z))
(+.f64 (/.f64 x (+.f64 1 z)) 1)
(+.f64 x (/.f64 1 (+.f64 1 z)))
(+.f64 (/.f64 1 z) (/.f64 (/.f64 -1 z) z))
(+.f64 (/.f64 x (+.f64 1 z)) (-.f64 1 z))
(*.f64 (/.f64 1 (-.f64 1 (*.f64 z z))) (-.f64 1 z))
(+.f64 (/.f64 x (+.f64 1 z)) (/.f64 1 (+.f64 1 z)))
(+.f64 1 (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (/.f64 (*.f64 (-.f64 1/4 (*.f64 (*.f64 x x) 1/36)) (*.f64 (/.f64 x (+.f64 1 z)) x)) (+.f64 1/2 (*.f64 -1/6 x)))))
(exp.f64 x)
(pow.f64 y y)
(exp.f64 (neg.f64 z))
Outputs
(exp.f64 x)
(exp.f64 (neg.f64 z))
Calls

3 calls:

100.0ms
y
54.0ms
x
19.0ms
z
Results
ErrorSegmentsBranch
1.1b2x
12.8b8y
1.3b2z
Compiler

Compiled 193 to 136 computations (29.5% saved)

bsearch243.0ms (3.5%)

Algorithm
binary-search
Steps
TimeLeftRight
243.0ms
-3.707975907042672e-11
-4.017076523917912e-22
Compiler

Compiled 148 to 123 computations (16.9% saved)

regimes124.0ms (1.8%)

Counts
16 → 2
Calls
Call 1
Inputs
1
(-.f64 1 z)
(/.f64 1 z)
(/.f64 1 (+.f64 1 z))
(+.f64 (/.f64 x (+.f64 1 z)) 1)
(+.f64 x (/.f64 1 (+.f64 1 z)))
(+.f64 (/.f64 1 z) (/.f64 (/.f64 -1 z) z))
(+.f64 (/.f64 x (+.f64 1 z)) (-.f64 1 z))
(*.f64 (/.f64 1 (-.f64 1 (*.f64 z z))) (-.f64 1 z))
(+.f64 (/.f64 x (+.f64 1 z)) (/.f64 1 (+.f64 1 z)))
(+.f64 1 (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (/.f64 (*.f64 (-.f64 1/4 (*.f64 (*.f64 x x) 1/36)) (*.f64 (/.f64 x (+.f64 1 z)) x)) (+.f64 1/2 (*.f64 -1/6 x)))))
(exp.f64 x)
(pow.f64 y y)
Outputs
(exp.f64 x)
(*.f64 (/.f64 1 (-.f64 1 (*.f64 z z))) (-.f64 1 z))
Calls

3 calls:

48.0ms
y
34.0ms
z
32.0ms
x
Results
ErrorSegmentsBranch
8.8b2x
19.1b3y
8.6b2z
Compiler

Compiled 190 to 134 computations (29.5% saved)

bsearch75.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
75.0ms
2.2000348352314893e+149
9.080073683024432e+168
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes62.0ms (0.9%)

Counts
14 → 1
Calls
Call 1
Inputs
1
(-.f64 1 z)
(/.f64 1 z)
(/.f64 1 (+.f64 1 z))
(+.f64 (/.f64 x (+.f64 1 z)) 1)
(+.f64 x (/.f64 1 (+.f64 1 z)))
(+.f64 (/.f64 1 z) (/.f64 (/.f64 -1 z) z))
(+.f64 (/.f64 x (+.f64 1 z)) (-.f64 1 z))
(*.f64 (/.f64 1 (-.f64 1 (*.f64 z z))) (-.f64 1 z))
(+.f64 (/.f64 x (+.f64 1 z)) (/.f64 1 (+.f64 1 z)))
(+.f64 1 (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (*.f64 (/.f64 x (+.f64 1 z)) x) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (*.f64 (/.f64 (*.f64 x x) (+.f64 1 z)) (+.f64 1/2 (*.f64 x 1/6)))))
(+.f64 (/.f64 1 (+.f64 1 z)) (+.f64 (/.f64 x (+.f64 1 z)) (/.f64 (*.f64 (-.f64 1/4 (*.f64 (*.f64 x x) 1/36)) (*.f64 (/.f64 x (+.f64 1 z)) x)) (+.f64 1/2 (*.f64 -1/6 x)))))
Outputs
(*.f64 (/.f64 1 (-.f64 1 (*.f64 z z))) (-.f64 1 z))
Calls

3 calls:

18.0ms
y
17.0ms
x
17.0ms
z
Results
ErrorSegmentsBranch
28.8b1x
28.8b1y
28.8b1z
Compiler

Compiled 185 to 132 computations (28.6% saved)

regimes22.0ms (0.3%)

Counts
8 → 1
Calls
Call 1
Inputs
1
(-.f64 1 z)
(/.f64 1 z)
(/.f64 1 (+.f64 1 z))
(+.f64 (/.f64 x (+.f64 1 z)) 1)
(+.f64 x (/.f64 1 (+.f64 1 z)))
(+.f64 (/.f64 1 z) (/.f64 (/.f64 -1 z) z))
(+.f64 (/.f64 x (+.f64 1 z)) (-.f64 1 z))
Outputs
(/.f64 1 (+.f64 1 z))
Calls

3 calls:

7.0ms
z
6.0ms
x
6.0ms
y
Results
ErrorSegmentsBranch
44.9b1x
44.9b1y
44.9b1z
Compiler

Compiled 59 to 43 computations (27.1% saved)

regimes13.0ms (0.2%)

Accuracy

Total -16.7b remaining (-36.5%)

Threshold costs -16.7b (-36.5%)

Counts
3 → 1
Calls
Call 1
Inputs
1
(-.f64 1 z)
(/.f64 1 z)
Outputs
1
Calls

3 calls:

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

Compiled 22 to 17 computations (22.7% saved)

simplify8.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02983
14583
25483
35783
45883
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(exp.f64 (-.f64 (+.f64 x (*.f64 y (log.f64 y))) z))
(exp.f64 (-.f64 x z))
(if (<=.f64 x -8613397412686255/21267647932558653966460912964485513216) (exp.f64 x) (exp.f64 (neg.f64 z)))
(if (<=.f64 z 220003483523148932295491529147603117640560935155527191368771851132052299685224720390933654019868130228565396087227573206999081747133298722855144390656) (exp.f64 x) (*.f64 (/.f64 1 (-.f64 1 (*.f64 z z))) (-.f64 1 z)))
(*.f64 (/.f64 1 (-.f64 1 (*.f64 z z))) (-.f64 1 z))
(/.f64 1 (+.f64 1 z))
1
Outputs
(exp.f64 (-.f64 (+.f64 x (*.f64 y (log.f64 y))) z))
(exp.f64 (-.f64 x z))
(if (<=.f64 x -8613397412686255/21267647932558653966460912964485513216) (exp.f64 x) (exp.f64 (neg.f64 z)))
(if (<=.f64 z 220003483523148932295491529147603117640560935155527191368771851132052299685224720390933654019868130228565396087227573206999081747133298722855144390656) (exp.f64 x) (*.f64 (/.f64 1 (-.f64 1 (*.f64 z z))) (-.f64 1 z)))
(*.f64 (/.f64 1 (-.f64 1 (*.f64 z z))) (-.f64 1 z))
(/.f64 1 (+.f64 1 z))
(/.f64 1 (+.f64 z 1))
1
Compiler

Compiled 77 to 59 computations (23.4% saved)

soundness0.0ms (0%)

end51.0ms (0.7%)

Compiler

Compiled 59 to 39 computations (33.9% saved)

Profiling

Loading profile data...