Details

Time bar (total: 10.2s)

analyze304.0ms (3%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
0%99.9%0.1%7
6.2%93.6%0.1%8
7.8%92.1%0.1%9
11.7%87.8%0.5%10
18.7%65.9%15.4%11
21.5%61%17.5%12
Compiler

Compiled 12 to 8 computations (33.3% saved)

sample2.9s (28.9%)

Results
1.6s10897×body256invalid
1.3s8256×body256valid

preprocess86.0ms (0.8%)

Algorithm
egg-herbie
Rules
914×fma-neg_binary64
433×div-sub_binary64
340×associate-/l*_binary64
336×fma-def_binary64
316×associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01948
15548
214448
338848
489448
5163248
6313048
7464148
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
(/.f64 (*.f64 (cosh.f64 y) (/.f64 x y)) z)
(/.f64 (*.f64 (cosh.f64 z) (/.f64 y z)) x)
(/.f64 (*.f64 (cosh.f64 x) (/.f64 z x)) y)
Outputs
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
(/.f64 (cosh.f64 x) (/.f64 z (/.f64 y x)))
(*.f64 (/.f64 y x) (/.f64 (cosh.f64 x) z))
(*.f64 (/.f64 (cosh.f64 x) (*.f64 x z)) y)
(*.f64 y (/.f64 (cosh.f64 x) (*.f64 x z)))
(/.f64 (cosh.f64 x) (/.f64 x (/.f64 y z)))
(*.f64 (/.f64 y z) (/.f64 (cosh.f64 x) x))
(/.f64 (*.f64 (cosh.f64 y) (/.f64 x y)) z)
(/.f64 (cosh.f64 y) (/.f64 z (/.f64 x y)))
(/.f64 (/.f64 x y) (/.f64 z (cosh.f64 y)))
(*.f64 (/.f64 x y) (/.f64 (cosh.f64 y) z))
(*.f64 (cosh.f64 y) (/.f64 (/.f64 x z) y))
(/.f64 (*.f64 (cosh.f64 z) (/.f64 y z)) x)
(/.f64 (cosh.f64 z) (/.f64 x (/.f64 y z)))
(*.f64 (/.f64 (cosh.f64 z) x) (/.f64 y z))
(*.f64 (/.f64 y x) (/.f64 (cosh.f64 z) z))
(*.f64 y (/.f64 (cosh.f64 z) (*.f64 x z)))
(/.f64 (*.f64 (cosh.f64 x) (/.f64 z x)) y)
(/.f64 (cosh.f64 x) (/.f64 y (/.f64 z x)))
(*.f64 (/.f64 (cosh.f64 x) y) (/.f64 z x))
(*.f64 (/.f64 z x) (/.f64 (cosh.f64 x) y))
(/.f64 (/.f64 z (/.f64 x (cosh.f64 x))) y)
(*.f64 z (/.f64 (/.f64 (cosh.f64 x) y) x))
Compiler

Compiled 14 to 10 computations (28.6% saved)

simplify77.0ms (0.8%)

Algorithm
egg-herbie
Rules
1052×fma-def_binary64
419×distribute-rgt-in_binary64
358×distribute-lft-in_binary64
313×div-sub_binary64
290×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0812
11912
24612
311212
424912
545312
681312
7234512
8353312
9475612
10562912
11626612
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
Outputs
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
(/.f64 (cosh.f64 x) (/.f64 z (/.f64 y x)))
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
(*.f64 (/.f64 y x) (/.f64 (cosh.f64 x) z))
(*.f64 (cosh.f64 x) (/.f64 y (*.f64 x z)))
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y z)) x)
(*.f64 y (/.f64 (/.f64 (cosh.f64 x) z) x))

eval1.0ms (0%)

Compiler

Compiled 19 to 10 computations (47.4% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.1b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
6.3b
(*.f64 y (/.f64 (/.f64 (cosh.f64 x) z) x))
6.2b
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
Compiler

Compiled 22 to 14 computations (36.4% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (cosh.f64 x) z)
0.3b
(/.f64 (/.f64 (cosh.f64 x) z) x)
5.9b
(*.f64 y (/.f64 (/.f64 (cosh.f64 x) z) x))
Compiler

Compiled 26 to 7 computations (73.1% saved)

series73.0ms (0.7%)

Counts
3 → 84
Calls

21 calls:

TimeVariablePointExpression
39.0ms
x
@0
(*.f64 y (/.f64 (/.f64 (cosh.f64 x) z) x))
5.0ms
z
@0
(*.f64 y (/.f64 (/.f64 (cosh.f64 x) z) x))
4.0ms
x
@-inf
(*.f64 y (/.f64 (/.f64 (cosh.f64 x) z) x))
3.0ms
x
@inf
(*.f64 y (/.f64 (/.f64 (cosh.f64 x) z) x))
3.0ms
x
@-inf
(/.f64 (cosh.f64 x) z)

rewrite94.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
520×log-prod_binary64
405×prod-exp_binary64
395×exp-prod_binary64
345×pow-prod-down_binary64
249×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify82.0ms (0.8%)

Algorithm
egg-herbie
Rules
579×times-frac_binary64
546×associate-*l*_binary64
527×associate-*r/_binary64
513×associate-*r*_binary64
492×unswap-sqr_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0671668
11811664
24741586
313051580
448931576
Stop Event
node limit
Counts
241 → 186
Calls
Call 1
Inputs
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(/.f64 y (*.f64 z x))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (+.f64 (*.f64 1/720 (/.f64 (*.f64 y (pow.f64 x 5)) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(/.f64 1 (*.f64 z x))
(+.f64 (/.f64 1 (*.f64 z x)) (*.f64 1/2 (/.f64 x z)))
(+.f64 (/.f64 1 (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 x z)) (*.f64 1/24 (/.f64 (pow.f64 x 3) z))))
(+.f64 (*.f64 1/720 (/.f64 (pow.f64 x 5) z)) (+.f64 (/.f64 1 (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 x z)) (*.f64 1/24 (/.f64 (pow.f64 x 3) z)))))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(/.f64 1 z)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) z)) (/.f64 1 z))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) z)) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 x 4) z)) (/.f64 1 z)))
(+.f64 (*.f64 1/720 (/.f64 (pow.f64 x 6) z)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) z)) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 x 4) z)) (/.f64 1 z))))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
Outputs
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 x z))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 1/2 (/.f64 y (/.f64 z x))))
(fma.f64 1/2 (*.f64 (/.f64 y z) x) (/.f64 y (*.f64 x z)))
(fma.f64 1/2 (*.f64 x (/.f64 y z)) (/.f64 y (*.f64 x z)))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))))
(+.f64 (/.f64 y (*.f64 x z)) (fma.f64 1/2 (/.f64 y (/.f64 z x)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))))
(+.f64 (/.f64 y (*.f64 x z)) (fma.f64 1/24 (*.f64 (/.f64 y z) (pow.f64 x 3)) (/.f64 (*.f64 y 1/2) (/.f64 z x))))
(fma.f64 1/2 (*.f64 x (/.f64 y z)) (fma.f64 1/24 (*.f64 (pow.f64 x 3) (/.f64 y z)) (/.f64 y (*.f64 x z))))
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 (/.f64 y z) (+.f64 (*.f64 1/2 x) (*.f64 1/24 (pow.f64 x 3)))))
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (+.f64 (*.f64 1/720 (/.f64 (*.f64 y (pow.f64 x 5)) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))))
(+.f64 (/.f64 y (*.f64 x z)) (fma.f64 1/2 (/.f64 y (/.f64 z x)) (fma.f64 1/720 (/.f64 (*.f64 y (pow.f64 x 5)) z) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))))
(+.f64 (fma.f64 1/2 (*.f64 (/.f64 y z) x) (/.f64 y (*.f64 x z))) (fma.f64 1/24 (*.f64 (/.f64 y z) (pow.f64 x 3)) (*.f64 1/720 (*.f64 (/.f64 y z) (pow.f64 x 5)))))
(+.f64 (/.f64 y (*.f64 x z)) (fma.f64 1/24 (*.f64 (pow.f64 x 3) (/.f64 y z)) (fma.f64 1/2 (*.f64 x (/.f64 y z)) (*.f64 1/720 (*.f64 (pow.f64 x 5) (/.f64 y z))))))
(+.f64 (/.f64 y (*.f64 x z)) (fma.f64 1/24 (*.f64 y (/.f64 (pow.f64 x 3) z)) (*.f64 (/.f64 y z) (+.f64 (*.f64 1/2 x) (*.f64 1/720 (pow.f64 x 5))))))
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 (/.f64 y z) (+.f64 (+.f64 (*.f64 1/2 x) (*.f64 1/24 (pow.f64 x 3))) (*.f64 1/720 (pow.f64 x 5)))))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (*.f64 (/.f64 y x) 1/2))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) (/.f64 y x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z)))
(*.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (/.f64 1/2 (*.f64 x z)))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 x z))
(/.f64 (/.f64 1 x) z)
(+.f64 (/.f64 1 (*.f64 z x)) (*.f64 1/2 (/.f64 x z)))
(+.f64 (/.f64 1 (*.f64 x z)) (*.f64 1/2 (/.f64 x z)))
(fma.f64 1/2 (/.f64 x z) (/.f64 1 (*.f64 x z)))
(fma.f64 1/2 (/.f64 x z) (/.f64 (/.f64 1 x) z))
(+.f64 (/.f64 1 (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 x z)) (*.f64 1/24 (/.f64 (pow.f64 x 3) z))))
(+.f64 (/.f64 1 (*.f64 x z)) (fma.f64 1/2 (/.f64 x z) (*.f64 1/24 (/.f64 (pow.f64 x 3) z))))
(+.f64 (/.f64 1 (*.f64 x z)) (fma.f64 1/24 (/.f64 (pow.f64 x 3) z) (*.f64 1/2 (/.f64 x z))))
(fma.f64 1/2 (/.f64 x z) (fma.f64 1/24 (/.f64 (pow.f64 x 3) z) (/.f64 1 (*.f64 x z))))
(fma.f64 (/.f64 1/2 z) x (fma.f64 (/.f64 1/24 z) (pow.f64 x 3) (/.f64 (/.f64 1 x) z)))
(+.f64 (*.f64 1/720 (/.f64 (pow.f64 x 5) z)) (+.f64 (/.f64 1 (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 x z)) (*.f64 1/24 (/.f64 (pow.f64 x 3) z)))))
(fma.f64 1/720 (/.f64 (pow.f64 x 5) z) (+.f64 (/.f64 1 (*.f64 x z)) (fma.f64 1/2 (/.f64 x z) (*.f64 1/24 (/.f64 (pow.f64 x 3) z)))))
(+.f64 (fma.f64 1/24 (/.f64 (pow.f64 x 3) z) (*.f64 1/2 (/.f64 x z))) (fma.f64 1/720 (/.f64 (pow.f64 x 5) z) (/.f64 1 (*.f64 x z))))
(fma.f64 1/720 (/.f64 (pow.f64 x 5) z) (fma.f64 1/2 (/.f64 x z) (fma.f64 1/24 (/.f64 (pow.f64 x 3) z) (/.f64 1 (*.f64 x z)))))
(fma.f64 1/2 (/.f64 x z) (fma.f64 1/24 (/.f64 (pow.f64 x 3) z) (fma.f64 1/720 (/.f64 (pow.f64 x 5) z) (/.f64 1 (*.f64 x z)))))
(fma.f64 1/2 (/.f64 x z) (fma.f64 1/720 (/.f64 (pow.f64 x 5) z) (fma.f64 (/.f64 1/24 z) (pow.f64 x 3) (/.f64 (/.f64 1 x) z))))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 x z)))
(/.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z) x)
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 x z))
(/.f64 1 z)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) z)) (/.f64 1 z))
(fma.f64 1/2 (/.f64 (*.f64 x x) z) (/.f64 1 z))
(fma.f64 1/2 (/.f64 x (/.f64 z x)) (/.f64 1 z))
(fma.f64 1/2 (*.f64 (/.f64 x z) x) (/.f64 1 z))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) z)) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 x 4) z)) (/.f64 1 z)))
(fma.f64 1/2 (/.f64 (*.f64 x x) z) (fma.f64 1/24 (/.f64 (pow.f64 x 4) z) (/.f64 1 z)))
(fma.f64 1/2 (/.f64 x (/.f64 z x)) (fma.f64 1/24 (/.f64 (pow.f64 x 4) z) (/.f64 1 z)))
(fma.f64 1/2 (*.f64 (/.f64 x z) x) (fma.f64 1/24 (/.f64 (pow.f64 x 4) z) (/.f64 1 z)))
(+.f64 (*.f64 1/720 (/.f64 (pow.f64 x 6) z)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) z)) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 x 4) z)) (/.f64 1 z))))
(fma.f64 1/720 (/.f64 (pow.f64 x 6) z) (fma.f64 1/2 (/.f64 (*.f64 x x) z) (fma.f64 1/24 (/.f64 (pow.f64 x 4) z) (/.f64 1 z))))
(fma.f64 1/720 (/.f64 (pow.f64 x 6) z) (fma.f64 1/2 (/.f64 x (/.f64 z x)) (fma.f64 1/24 (/.f64 (pow.f64 x 4) z) (/.f64 1 z))))
(fma.f64 1/2 (*.f64 (/.f64 x z) x) (fma.f64 1/720 (/.f64 (pow.f64 x 6) z) (fma.f64 1/24 (/.f64 (pow.f64 x 4) z) (/.f64 1 z))))
(fma.f64 1/2 (/.f64 (*.f64 x x) z) (fma.f64 (/.f64 1/24 z) (pow.f64 x 4) (fma.f64 (/.f64 1/720 z) (pow.f64 x 6) (/.f64 1 z))))
(fma.f64 1/2 (/.f64 x (/.f64 z x)) (fma.f64 (/.f64 1/24 z) (pow.f64 x 4) (fma.f64 (/.f64 1/720 z) (pow.f64 x 6) (/.f64 1 z))))
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)
(*.f64 1/2 (/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) z))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z))
(/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) z)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (cosh.f64 x) (/.f64 y x))
5.8b
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
Compiler

Compiled 25 to 7 computations (72% saved)

series6.0ms (0.1%)

Counts
2 → 60
Calls

15 calls:

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

rewrite86.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
533×log-prod_binary64
409×exp-prod_binary64
330×pow-prod-down_binary64
249×pow2_binary64
181×pow-unpow_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify155.0ms (1.5%)

Algorithm
egg-herbie
Rules
686×unswap-sqr_binary64
575×associate-/l*_binary64
529×fma-def_binary64
407×associate-/r*_binary64
380×associate-/r/_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
0471260
11311256
23541251
310101182
426651178
550641171
654221171
764211171
Stop Event
node limit
Counts
165 → 123
Calls
Call 1
Inputs
(/.f64 y (*.f64 z x))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (+.f64 (*.f64 1/720 (/.f64 (*.f64 y (pow.f64 x 5)) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(/.f64 y x)
(+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x)))
(+.f64 (/.f64 y x) (+.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/24 (*.f64 y (pow.f64 x 3)))))
(+.f64 (/.f64 y x) (+.f64 (*.f64 1/2 (*.f64 y x)) (+.f64 (*.f64 1/720 (*.f64 y (pow.f64 x 5))) (*.f64 1/24 (*.f64 y (pow.f64 x 3))))))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
Outputs
(/.f64 y (*.f64 z x))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 y (/.f64 z x))))
(fma.f64 1/2 (*.f64 (/.f64 y z) x) (/.f64 y (*.f64 z x)))
(fma.f64 1/2 (*.f64 x (/.f64 y z)) (/.f64 y (*.f64 z x)))
(fma.f64 1/2 (/.f64 x (/.f64 z y)) (/.f64 y (*.f64 z x)))
(*.f64 (/.f64 y z) (+.f64 (/.f64 1 x) (*.f64 x 1/2)))
(*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (/.f64 y (/.f64 z x)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/24 (*.f64 (/.f64 y z) (pow.f64 x 3)) (/.f64 (*.f64 y x) (/.f64 z 1/2))))
(fma.f64 1/24 (*.f64 (pow.f64 x 3) (/.f64 y z)) (fma.f64 1/2 (*.f64 x (/.f64 y z)) (/.f64 y (*.f64 z x))))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3)))))
(*.f64 (/.f64 y z) (+.f64 (/.f64 1 x) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3)))))
(*.f64 (/.f64 y z) (+.f64 (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))) (/.f64 1 x)))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (+.f64 (*.f64 1/720 (/.f64 (*.f64 y (pow.f64 x 5)) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (/.f64 y (/.f64 z x)) (fma.f64 1/720 (/.f64 (*.f64 y (pow.f64 x 5)) z) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (*.f64 (/.f64 y z) x) (fma.f64 1/24 (*.f64 (/.f64 y z) (pow.f64 x 3)) (*.f64 1/720 (*.f64 (/.f64 y z) (pow.f64 x 5))))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/24 (*.f64 (pow.f64 x 3) (/.f64 y z)) (fma.f64 1/2 (*.f64 x (/.f64 y z)) (*.f64 1/720 (*.f64 (pow.f64 x 5) (/.f64 y z))))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/24 (*.f64 (pow.f64 x 3) (/.f64 y z)) (*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/720 (pow.f64 x 5))))))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (fma.f64 1/24 (pow.f64 x 3) (*.f64 1/720 (pow.f64 x 5))))))
(*.f64 (/.f64 y z) (+.f64 (/.f64 1 x) (+.f64 (*.f64 x 1/2) (fma.f64 1/24 (pow.f64 x 3) (*.f64 1/720 (pow.f64 x 5))))))
(*.f64 (/.f64 y z) (+.f64 (fma.f64 x 1/2 (*.f64 1/720 (pow.f64 x 5))) (+.f64 (*.f64 1/24 (pow.f64 x 3)) (/.f64 1 x))))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 z (/.f64 y x))))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(/.f64 y x)
(+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x)))
(fma.f64 1/2 (*.f64 y x) (/.f64 y x))
(fma.f64 y (*.f64 x 1/2) (/.f64 y x))
(+.f64 (/.f64 y x) (+.f64 (*.f64 1/2 (*.f64 y x)) (*.f64 1/24 (*.f64 y (pow.f64 x 3)))))
(+.f64 (/.f64 y x) (fma.f64 1/2 (*.f64 y x) (*.f64 1/24 (*.f64 y (pow.f64 x 3)))))
(+.f64 (fma.f64 1/2 (*.f64 y x) (/.f64 y x)) (*.f64 (pow.f64 x 3) (*.f64 y 1/24)))
(fma.f64 y (*.f64 x 1/2) (fma.f64 (pow.f64 x 3) (*.f64 y 1/24) (/.f64 y x)))
(fma.f64 y (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))) (/.f64 y x))
(+.f64 (/.f64 y x) (+.f64 (*.f64 1/2 (*.f64 y x)) (+.f64 (*.f64 1/720 (*.f64 y (pow.f64 x 5))) (*.f64 1/24 (*.f64 y (pow.f64 x 3))))))
(+.f64 (/.f64 y x) (fma.f64 1/2 (*.f64 y x) (fma.f64 1/720 (*.f64 y (pow.f64 x 5)) (*.f64 1/24 (*.f64 y (pow.f64 x 3))))))
(+.f64 (fma.f64 1/2 (*.f64 y x) (/.f64 y x)) (fma.f64 1/24 (*.f64 y (pow.f64 x 3)) (*.f64 y (*.f64 (pow.f64 x 5) 1/720))))
(+.f64 (/.f64 y x) (fma.f64 y (*.f64 x 1/2) (*.f64 y (+.f64 (*.f64 1/24 (pow.f64 x 3)) (*.f64 1/720 (pow.f64 x 5))))))
(fma.f64 y (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))) (fma.f64 y (*.f64 1/720 (pow.f64 x 5)) (/.f64 y x)))
(fma.f64 y (*.f64 1/720 (pow.f64 x 5)) (fma.f64 y (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))) (/.f64 y x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) x))
(*.f64 1/2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 x y)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 y x)))
(*.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (/.f64 1/2 x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))

eval164.0ms (1.6%)

Compiler

Compiled 4270 to 1592 computations (62.7% saved)

prune76.0ms (0.7%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New29910309
Fresh000
Picked011
Done101
Total30011311
Error
0.0b
Counts
311 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
37.0b
(*.f64 (sqrt.f64 (*.f64 (cosh.f64 x) (/.f64 y x))) (*.f64 (sqrt.f64 (*.f64 (cosh.f64 x) (/.f64 y x))) (/.f64 1 z)))
6.8b
(/.f64 y (*.f64 z x))
7.7b
(*.f64 y (/.f64 (/.f64 1 z) x))
7.3b
(/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z)
9.0b
(/.f64 1 (/.f64 x (*.f64 y (/.f64 (cosh.f64 x) z))))
6.3b
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
6.2b
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
9.9b
(*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))
7.7b
(*.f64 y (/.f64 (/.f64 1 x) z))
6.3b
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
7.6b
(/.f64 (/.f64 y x) z)
Compiler

Compiled 275 to 175 computations (36.4% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (cosh.f64 x) z)
5.9b
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
Compiler

Compiled 23 to 7 computations (69.6% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite66.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
530×log-prod_binary64
396×exp-prod_binary64
386×pow-prod-down_binary64
257×pow2_binary64
188×pow-unpow_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify150.0ms (1.5%)

Algorithm
egg-herbie
Rules
806×fma-neg_binary64
755×fma-def_binary64
686×unswap-sqr_binary64
509×associate-/l*_binary64
345×associate-/r*_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
035807
197805
2259803
3719765
41933755
54678750
65105750
76116750
87974750
Stop Event
node limit
Counts
108 → 82
Calls
Call 1
Inputs
(/.f64 y (*.f64 z x))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (+.f64 (*.f64 1/720 (/.f64 (*.f64 y (pow.f64 x 5)) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
Outputs
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y x) z)
(/.f64 (/.f64 y z) x)
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(fma.f64 1/2 (*.f64 (/.f64 y z) x) (/.f64 (/.f64 y x) z))
(fma.f64 1/2 (*.f64 x (/.f64 y z)) (/.f64 y (*.f64 z x)))
(fma.f64 1/2 (*.f64 x (/.f64 y z)) (/.f64 (/.f64 y z) x))
(fma.f64 x (*.f64 y (/.f64 1/2 z)) (/.f64 y (*.f64 z x)))
(*.f64 (/.f64 y z) (+.f64 (/.f64 1 x) (*.f64 x 1/2)))
(*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (/.f64 (*.f64 y x) z) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))))
(+.f64 (fma.f64 1/2 (*.f64 (/.f64 y z) x) (/.f64 (/.f64 y x) z)) (*.f64 1/24 (*.f64 (/.f64 y z) (pow.f64 x 3))))
(fma.f64 1/24 (*.f64 (pow.f64 x 3) (/.f64 y z)) (fma.f64 1/2 (*.f64 x (/.f64 y z)) (/.f64 y (*.f64 z x))))
(+.f64 (/.f64 (/.f64 y z) x) (*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (*.f64 1/24 (pow.f64 x 3)))))
(fma.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))) (/.f64 y (*.f64 z x)))
(*.f64 (/.f64 y z) (+.f64 (/.f64 1 x) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3)))))
(*.f64 (/.f64 y z) (+.f64 (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))) (/.f64 1 x)))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (+.f64 (*.f64 1/720 (/.f64 (*.f64 y (pow.f64 x 5)) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (/.f64 (*.f64 y x) z) (fma.f64 1/720 (/.f64 y (/.f64 z (pow.f64 x 5))) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))))
(+.f64 (fma.f64 1/2 (*.f64 (/.f64 y z) x) (/.f64 (/.f64 y x) z)) (fma.f64 1/24 (*.f64 (/.f64 y z) (pow.f64 x 3)) (*.f64 1/720 (*.f64 (/.f64 y z) (pow.f64 x 5)))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/24 (*.f64 (pow.f64 x 3) (/.f64 y z)) (fma.f64 1/720 (*.f64 (pow.f64 x 5) (/.f64 y z)) (*.f64 1/2 (*.f64 x (/.f64 y z))))))
(+.f64 (*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (*.f64 1/720 (pow.f64 x 5)))) (fma.f64 (*.f64 1/24 (/.f64 y z)) (pow.f64 x 3) (/.f64 (/.f64 y z) x)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (fma.f64 1/720 (pow.f64 x 5) (*.f64 1/24 (pow.f64 x 3))))))
(*.f64 (/.f64 y z) (+.f64 (/.f64 1 x) (+.f64 (*.f64 1/24 (pow.f64 x 3)) (fma.f64 x 1/2 (*.f64 1/720 (pow.f64 x 5))))))
(*.f64 (/.f64 y z) (+.f64 (*.f64 1/24 (pow.f64 x 3)) (+.f64 (fma.f64 x 1/2 (*.f64 1/720 (pow.f64 x 5))) (/.f64 1 x))))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 5 computations (64.3% saved)

series5.0ms (0%)

Counts
1 → 0
Calls

9 calls:

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

rewrite59.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
711×pow1_binary64
658×add-log-exp_binary64
658×log1p-expm1-u_binary64
658×expm1-log1p-u_binary64
643×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 22 to 13 computations (40.9% saved)

series9.0ms (0.1%)

Counts
2 → 60
Calls

15 calls:

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

rewrite75.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
838×pow1_binary64
773×add-log-exp_binary64
773×log1p-expm1-u_binary64
773×expm1-log1p-u_binary64
754×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify13.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
08420
115420
219420
Stop Event
saturated
Counts
113 → 56
Calls
Call 1
Inputs
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
Outputs
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)

localize15.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 35 to 21 computations (40% saved)

series8.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite81.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
610×log-prod_binary64
491×pow-prod-down_binary64
315×pow2_binary64
305×fma-def_binary64
221×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify55.0ms (0.5%)

Algorithm
egg-herbie
Rules
234×times-frac_binary64
206×associate-/l*_binary64
116×associate-/l/_binary64
114×fma-def_binary64
80×associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
017573
135573
264573
3102573
4151573
5288573
6376573
7606573
81007573
91196573
101220573
Stop Event
saturated
Counts
189 → 151
Calls
Call 1
Inputs
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 y (*.f64 z x))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 1 x)
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
Outputs
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 x z))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(*.f64 1/2 (/.f64 x (/.f64 z y)))
(*.f64 1/2 (*.f64 (/.f64 x z) y))
(*.f64 1/2 (*.f64 y (/.f64 x z)))
(*.f64 1/2 (*.f64 x (/.f64 y z)))
(*.f64 y (*.f64 1/2 (/.f64 x z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(*.f64 1/2 (/.f64 x (/.f64 z y)))
(*.f64 1/2 (*.f64 (/.f64 x z) y))
(*.f64 1/2 (*.f64 y (/.f64 x z)))
(*.f64 1/2 (*.f64 x (/.f64 y z)))
(*.f64 y (*.f64 1/2 (/.f64 x z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 y z))
(/.f64 1 x)
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(fma.f64 1/2 x (/.f64 1 x))
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(fma.f64 1/2 x (/.f64 1 x))
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(fma.f64 1/2 x (/.f64 1 x))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(fma.f64 1/2 x (/.f64 1 x))
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(fma.f64 1/2 x (/.f64 1 x))
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(fma.f64 1/2 x (/.f64 1 x))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(fma.f64 1/2 x (/.f64 1 x))
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(fma.f64 1/2 x (/.f64 1 x))
(+.f64 (*.f64 1/2 x) (/.f64 1 x))
(fma.f64 1/2 x (/.f64 1 x))

localize56.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 x (*.f64 x 1/24))
0.3b
(*.f64 x 1/24)
4.5b
(*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))
5.1b
(/.f64 y (*.f64 x z))
Compiler

Compiled 77 to 39 computations (49.4% saved)

series17.0ms (0.2%)

Counts
4 → 96
Calls

24 calls:

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

rewrite103.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
908×log-prod_binary64
497×prod-diff_binary64
286×expm1-udef_binary64
286×log1p-udef_binary64
233×log-pow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01435
131635
2454735
Stop Event
node limit
Counts
4 → 109
Calls
Call 1
Inputs
(/.f64 y (*.f64 x z))
(*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))
(*.f64 x 1/24)
(*.f64 x (*.f64 x 1/24))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 y (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 y (*.f64 x z)))) (cbrt.f64 (exp.f64 (/.f64 y (*.f64 x z)))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 y (*.f64 x z))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 y (*.f64 x z))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 y (*.f64 x z))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 y (*.f64 x z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (/.f64 1 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (*.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 y (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (/.f64 1 (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 y (*.f64 x z))) (pow.f64 (cbrt.f64 (/.f64 y (*.f64 x z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 y (*.f64 x z))) 2) (cbrt.f64 (/.f64 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (/.f64 1 (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 y (*.f64 x z))) (sqrt.f64 (/.f64 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (/.f64 1 (*.f64 x (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 x z)) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (/.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y x) (/.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (/.f64 (cbrt.f64 y) (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) 1) (/.f64 (sqrt.f64 y) (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) x) (/.f64 (sqrt.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (/.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) x) (/.f64 (cbrt.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) z) (/.f64 (sqrt.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) z) (/.f64 (cbrt.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (*.f64 x z)) 2)) (/.f64 y (cbrt.f64 (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (*.f64 x z)) 2)) (cbrt.f64 (/.f64 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (*.f64 x z)) 2)) (/.f64 (sqrt.f64 y) (cbrt.f64 (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (*.f64 x z))) (/.f64 y (sqrt.f64 (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (*.f64 x z))) (/.f64 (cbrt.f64 y) (sqrt.f64 (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y (*.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y (*.f64 x z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 y (*.f64 x z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 y (*.f64 x z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (/.f64 y x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 y (*.f64 x (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 y (*.f64 x z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 y (*.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 y (*.f64 x z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 y 3) (pow.f64 (*.f64 x z) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 y (*.f64 x z))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (*.f64 (*.f64 x 1/24) (/.f64 x z))) y) (*.f64 (/.f64 (*.f64 x 1/2) z) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (*.f64 x 1/24)) (*.f64 y (/.f64 x z))) (*.f64 1/2 (*.f64 y (/.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (*.f64 y (/.f64 x z))) (*.f64 (*.f64 x (*.f64 x 1/24)) (*.f64 y (/.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x (*.f64 (*.f64 x 1/24) (/.f64 x z)))) (*.f64 y (/.f64 (*.f64 x 1/2) z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y (/.f64 x z)) (*.f64 x (*.f64 x 1/24))) (*.f64 (*.f64 y (/.f64 x z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y (/.f64 x z)) 1/2) (*.f64 (*.f64 y (/.f64 x z)) (*.f64 x (*.f64 x 1/24))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2))))) (cbrt.f64 (pow.f64 (exp.f64 y) (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2))))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2)))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 y (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (fma.f64 1/24 (*.f64 x x) 1/2)) y) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x (fma.f64 1/24 (*.f64 x x) 1/2))) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (/.f64 x z)) (fma.f64 (pow.f64 (*.f64 x x) 3) 1/13824 1/8)) (+.f64 (pow.f64 (*.f64 x (*.f64 x 1/24)) 2) (-.f64 1/4 (*.f64 (*.f64 x x) 1/48))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (/.f64 x z)) (+.f64 (pow.f64 (*.f64 x (*.f64 x 1/24)) 2) -1/4)) (fma.f64 x (*.f64 x 1/24) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 y) (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 y (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 y 3) (pow.f64 (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2))) 3) (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 y (/.f64 x (/.f64 z (fma.f64 1/24 (*.f64 x x) 1/2))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 x (*.f64 (*.f64 x 1/24) (/.f64 x z))) (*.f64 y (/.f64 (*.f64 x 1/2) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (*.f64 x 1/24)) (*.f64 y (/.f64 x z)) (*.f64 1/2 (*.f64 y (/.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (*.f64 y (/.f64 x z)) (*.f64 (*.f64 x (*.f64 x 1/24)) (*.f64 y (/.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (*.f64 (*.f64 x 1/24) (/.f64 x z))) y (*.f64 (/.f64 (*.f64 x 1/2) z) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (/.f64 x z)) (*.f64 x (*.f64 x 1/24)) (*.f64 (*.f64 y (/.f64 x z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (/.f64 x z)) 1/2 (*.f64 (*.f64 y (/.f64 x z)) (*.f64 x (*.f64 x 1/24))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x 1/24))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/24) x)) (cbrt.f64 (pow.f64 (exp.f64 1/24) x)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/24) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/24) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/24) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x 1/24))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 1/24) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x 1/24) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x 1/24)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x 1/24)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/576 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 1/24) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x 1/24))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x 1/24) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x 1/24)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x 1/24)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x 1/24)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x 1/24)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 x 1/24)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/24) x) x)) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/24) x) x)))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/24) x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 1/24) x) x))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 1/24) x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (*.f64 x 1/24)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 x 1/24)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 1/24))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (sqrt.f64 1/24)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 x x) 3) 1/13824) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (*.f64 x 1/24)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 1/24) x) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 1/24)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x x) 3) 1/13824))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 x 1/24))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 x 1/24))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (*.f64 x 1/24))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (*.f64 x 1/24))) 1))))))

simplify139.0ms (1.4%)

Algorithm
egg-herbie
Rules
865×fma-def_binary64
513×associate-/l*_binary64
496×distribute-lft-in_binary64
475×associate-*l/_binary64
466×associate-/r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0241047
161981
2145981
3438981
41592981
54307981
66114981
76913981
87513981
Stop Event
node limit
Counts
205 → 122
Calls
Call 1
Inputs
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(*.f64 1/24 x)
(*.f64 1/24 x)
(*.f64 1/24 x)
(*.f64 1/24 x)
(*.f64 1/24 x)
(*.f64 1/24 x)
(*.f64 1/24 x)
(*.f64 1/24 x)
(*.f64 1/24 x)
(*.f64 1/24 x)
(*.f64 1/24 x)
(*.f64 1/24 x)
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (pow.f64 x 2))
Outputs
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 y z) x))
(*.f64 (/.f64 1/2 z) (*.f64 y x))
(*.f64 y (/.f64 1/2 (/.f64 z x)))
(*.f64 y (*.f64 1/2 (/.f64 x z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))
(*.f64 1/24 (/.f64 y (/.f64 z (pow.f64 x 3))))
(*.f64 1/24 (*.f64 (/.f64 y z) (pow.f64 x 3)))
(*.f64 1/24 (*.f64 (pow.f64 x 3) (/.f64 y z)))
(*.f64 y (*.f64 1/24 (/.f64 (pow.f64 x 3) z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))
(*.f64 1/24 (/.f64 y (/.f64 z (pow.f64 x 3))))
(*.f64 1/24 (*.f64 (/.f64 y z) (pow.f64 x 3)))
(*.f64 1/24 (*.f64 (pow.f64 x 3) (/.f64 y z)))
(*.f64 y (*.f64 1/24 (/.f64 (pow.f64 x 3) z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/24 (pow.f64 x 2))) (*.f64 y x)) z)
(/.f64 (+.f64 1/2 (*.f64 1/24 (*.f64 x x))) (/.f64 z (*.f64 y x)))
(*.f64 (/.f64 (fma.f64 1/24 (*.f64 x x) 1/2) z) (*.f64 y x))
(*.f64 (*.f64 y x) (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z))
(*.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))))
(*.f64 y (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 x (*.f64 y (/.f64 (fma.f64 x (*.f64 x 1/24) 1/2) z)))
(*.f64 1/24 x)
(*.f64 x 1/24)
(*.f64 1/24 x)
(*.f64 x 1/24)
(*.f64 1/24 x)
(*.f64 x 1/24)
(*.f64 1/24 x)
(*.f64 x 1/24)
(*.f64 1/24 x)
(*.f64 x 1/24)
(*.f64 1/24 x)
(*.f64 x 1/24)
(*.f64 1/24 x)
(*.f64 x 1/24)
(*.f64 1/24 x)
(*.f64 x 1/24)
(*.f64 1/24 x)
(*.f64 x 1/24)
(*.f64 1/24 x)
(*.f64 x 1/24)
(*.f64 1/24 x)
(*.f64 x 1/24)
(*.f64 1/24 x)
(*.f64 x 1/24)
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (*.f64 x x))
(*.f64 x (*.f64 x 1/24))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (*.f64 x x))
(*.f64 x (*.f64 x 1/24))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (*.f64 x x))
(*.f64 x (*.f64 x 1/24))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (*.f64 x x))
(*.f64 x (*.f64 x 1/24))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (*.f64 x x))
(*.f64 x (*.f64 x 1/24))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (*.f64 x x))
(*.f64 x (*.f64 x 1/24))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (*.f64 x x))
(*.f64 x (*.f64 x 1/24))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (*.f64 x x))
(*.f64 x (*.f64 x 1/24))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (*.f64 x x))
(*.f64 x (*.f64 x 1/24))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (*.f64 x x))
(*.f64 x (*.f64 x 1/24))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (*.f64 x x))
(*.f64 x (*.f64 x 1/24))
(*.f64 1/24 (pow.f64 x 2))
(*.f64 1/24 (*.f64 x x))
(*.f64 x (*.f64 x 1/24))

eval152.0ms (1.5%)

Compiler

Compiled 8176 to 3735 computations (54.3% saved)

prune155.0ms (1.5%)

Pruning

15 alts after pruning (11 fresh and 4 done)

PrunedKeptTotal
New5019510
Fresh325
Picked011
Done235
Total50615521
Error
0b
Counts
521 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
5.7b
(/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y))
9.9b
(*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))
6.2b
(/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y))
6.8b
(/.f64 y (*.f64 z x))
6.3b
(+.f64 (/.f64 y (*.f64 x z)) (+.f64 (*.f64 (*.f64 x (*.f64 (*.f64 x 1/24) (/.f64 x z))) y) (*.f64 (/.f64 (*.f64 x 1/2) z) y)))
6.3b
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
7.7b
(*.f64 y (/.f64 (/.f64 1 z) x))
8.1b
(/.f64 1 (/.f64 z (/.f64 y x)))
9.7b
(+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
10.2b
(*.f64 (/.f64 y z) (/.f64 1 x))
7.3b
(/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z)
57.7b
(*.f64 (/.f64 y z) (*.f64 1/2 x))
6.3b
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
10.2b
(/.f64 (/.f64 y z) x)
7.6b
(/.f64 (/.f64 y x) z)
Compiler

Compiled 339 to 220 computations (35.1% saved)

localize17.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (cosh.f64 x) z)
5.4b
(/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y))
Compiler

Compiled 23 to 7 computations (69.6% saved)

series5.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite80.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
570×log-prod_binary64
443×exp-prod_binary64
332×pow-prod-down_binary64
259×pow2_binary64
210×log-div_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify116.0ms (1.1%)

Algorithm
egg-herbie
Rules
806×fma-neg_binary64
755×fma-def_binary64
686×unswap-sqr_binary64
509×associate-/l*_binary64
345×associate-/r*_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
035807
197805
2259803
3719765
41933755
54678750
65105750
76116750
87974750
Stop Event
node limit
Counts
102 → 76
Calls
Call 1
Inputs
(/.f64 y (*.f64 z x))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (+.f64 (*.f64 1/720 (/.f64 (*.f64 y (pow.f64 x 5)) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
Outputs
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y x) z)
(/.f64 (/.f64 y z) x)
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(fma.f64 1/2 (*.f64 (/.f64 y z) x) (/.f64 (/.f64 y x) z))
(fma.f64 1/2 (*.f64 x (/.f64 y z)) (/.f64 y (*.f64 z x)))
(fma.f64 1/2 (*.f64 x (/.f64 y z)) (/.f64 (/.f64 y z) x))
(fma.f64 x (*.f64 y (/.f64 1/2 z)) (/.f64 y (*.f64 z x)))
(*.f64 (/.f64 y z) (+.f64 (/.f64 1 x) (*.f64 x 1/2)))
(*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (/.f64 (*.f64 y x) z) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))))
(+.f64 (fma.f64 1/2 (*.f64 (/.f64 y z) x) (/.f64 (/.f64 y x) z)) (*.f64 1/24 (*.f64 (/.f64 y z) (pow.f64 x 3))))
(fma.f64 1/24 (*.f64 (pow.f64 x 3) (/.f64 y z)) (fma.f64 1/2 (*.f64 x (/.f64 y z)) (/.f64 y (*.f64 z x))))
(+.f64 (/.f64 (/.f64 y z) x) (*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (*.f64 1/24 (pow.f64 x 3)))))
(fma.f64 (/.f64 y z) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))) (/.f64 y (*.f64 z x)))
(*.f64 (/.f64 y z) (+.f64 (/.f64 1 x) (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3)))))
(*.f64 (/.f64 y z) (+.f64 (fma.f64 x 1/2 (*.f64 1/24 (pow.f64 x 3))) (/.f64 1 x)))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (+.f64 (*.f64 1/720 (/.f64 (*.f64 y (pow.f64 x 5)) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (/.f64 (*.f64 y x) z) (fma.f64 1/720 (/.f64 y (/.f64 z (pow.f64 x 5))) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))))
(+.f64 (fma.f64 1/2 (*.f64 (/.f64 y z) x) (/.f64 (/.f64 y x) z)) (fma.f64 1/24 (*.f64 (/.f64 y z) (pow.f64 x 3)) (*.f64 1/720 (*.f64 (/.f64 y z) (pow.f64 x 5)))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/24 (*.f64 (pow.f64 x 3) (/.f64 y z)) (fma.f64 1/720 (*.f64 (pow.f64 x 5) (/.f64 y z)) (*.f64 1/2 (*.f64 x (/.f64 y z))))))
(+.f64 (*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (*.f64 1/720 (pow.f64 x 5)))) (fma.f64 (*.f64 1/24 (/.f64 y z)) (pow.f64 x 3) (/.f64 (/.f64 y z) x)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (fma.f64 1/720 (pow.f64 x 5) (*.f64 1/24 (pow.f64 x 3))))))
(*.f64 (/.f64 y z) (+.f64 (/.f64 1 x) (+.f64 (*.f64 1/24 (pow.f64 x 3)) (fma.f64 x 1/2 (*.f64 1/720 (pow.f64 x 5))))))
(*.f64 (/.f64 y z) (+.f64 (*.f64 1/24 (pow.f64 x 3)) (+.f64 (fma.f64 x 1/2 (*.f64 1/720 (pow.f64 x 5))) (/.f64 1 x))))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 5 computations (64.3% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite88.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
797×pow1_binary64
740×add-log-exp_binary64
740×log1p-expm1-u_binary64
740×expm1-log1p-u_binary64
723×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify22.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
06252
19252
211252
Stop Event
saturated
Counts
74 → 39
Calls
Call 1
Inputs
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
Outputs
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))

localize21.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (/.f64 1 z) x)
5.9b
(*.f64 y (/.f64 (/.f64 1 z) x))
Compiler

Compiled 22 to 13 computations (40.9% saved)

series8.0ms (0.1%)

Counts
2 → 60
Calls

15 calls:

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

rewrite87.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
838×pow1_binary64
773×add-log-exp_binary64
773×log1p-expm1-u_binary64
773×expm1-log1p-u_binary64
754×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify31.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
08420
115420
219420
Stop Event
saturated
Counts
113 → 55
Calls
Call 1
Inputs
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
Outputs
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)

localize18.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 10 computations (50% saved)

series4.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite85.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
907×pow1_binary64
841×add-log-exp_binary64
841×log1p-expm1-u_binary64
841×expm1-log1p-u_binary64
822×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify22.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
06252
19252
211252
Stop Event
saturated
Counts
85 → 49
Calls
Call 1
Inputs
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
Outputs
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))

localize17.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 38 to 15 computations (60.5% saved)

series10.0ms (0.1%)

Counts
3 → 39
Calls

21 calls:

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

rewrite114.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
619×log-prod_binary64
390×pow-prod-down_binary64
358×fma-def_binary64
305×pow2_binary64
213×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify142.0ms (1.4%)

Algorithm
egg-herbie
Rules
916×div-sub_binary64
870×fma-neg_binary64
841×fma-def_binary64
372×associate-/l*_binary64
305×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
027471
160471
2134471
3327471
4716471
51696471
63569471
75118471
85969471
96708471
107006471
117284471
127667471
Stop Event
node limit
Counts
168 → 143
Calls
Call 1
Inputs
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y) z))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y) z))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y) z))
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y) z))
(/.f64 y (*.f64 z x))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y))
(/.f64 y x)
(*.f64 1/2 (*.f64 y x))
(*.f64 1/2 (*.f64 y x))
Outputs
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(/.f64 (*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y) z)
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y) z))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y) z))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y) z))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(*.f64 -1 (/.f64 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y) z))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 x z))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 y z) x))
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(*.f64 x (*.f64 1/2 (/.f64 y z)))
(*.f64 1/2 (*.f64 x (/.f64 y z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 y z) x))
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(*.f64 x (*.f64 1/2 (/.f64 y z)))
(*.f64 1/2 (*.f64 x (/.f64 y z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(/.f64 (fma.f64 1/2 x (/.f64 1 x)) (/.f64 z y))
(*.f64 (/.f64 (fma.f64 1/2 x (/.f64 1 x)) z) y)
(*.f64 (/.f64 y z) (fma.f64 1/2 x (/.f64 1 x)))
(/.f64 (fma.f64 1/2 (*.f64 x y) (/.f64 y x)) z)
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) y)
(*.f64 y (fma.f64 1/2 x (/.f64 1 x)))
(fma.f64 1/2 (*.f64 x y) (/.f64 y x))
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) y)
(*.f64 y (fma.f64 1/2 x (/.f64 1 x)))
(fma.f64 1/2 (*.f64 x y) (/.f64 y x))
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) y)
(*.f64 y (fma.f64 1/2 x (/.f64 1 x)))
(fma.f64 1/2 (*.f64 x y) (/.f64 y x))
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) y)
(*.f64 y (fma.f64 1/2 x (/.f64 1 x)))
(fma.f64 1/2 (*.f64 x y) (/.f64 y x))
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) y)
(*.f64 y (fma.f64 1/2 x (/.f64 1 x)))
(fma.f64 1/2 (*.f64 x y) (/.f64 y x))
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) y)
(*.f64 y (fma.f64 1/2 x (/.f64 1 x)))
(fma.f64 1/2 (*.f64 x y) (/.f64 y x))
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) y)
(*.f64 y (fma.f64 1/2 x (/.f64 1 x)))
(fma.f64 1/2 (*.f64 x y) (/.f64 y x))
(*.f64 (+.f64 (*.f64 1/2 x) (/.f64 1 x)) y)
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) y)
(*.f64 y (fma.f64 1/2 x (/.f64 1 x)))
(fma.f64 1/2 (*.f64 x y) (/.f64 y x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) y)
(*.f64 y (fma.f64 1/2 x (/.f64 1 x)))
(fma.f64 1/2 (*.f64 x y) (/.f64 y x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) y)
(*.f64 y (fma.f64 1/2 x (/.f64 1 x)))
(fma.f64 1/2 (*.f64 x y) (/.f64 y x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) y)
(*.f64 y (fma.f64 1/2 x (/.f64 1 x)))
(fma.f64 1/2 (*.f64 x y) (/.f64 y x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 x) (/.f64 1 x)) y))
(*.f64 (fma.f64 1/2 x (/.f64 1 x)) y)
(*.f64 y (fma.f64 1/2 x (/.f64 1 x)))
(fma.f64 1/2 (*.f64 x y) (/.f64 y x))
(/.f64 y x)
(*.f64 1/2 (*.f64 y x))
(*.f64 (*.f64 1/2 y) x)
(*.f64 x (*.f64 1/2 y))
(*.f64 1/2 (*.f64 x y))
(*.f64 1/2 (*.f64 y x))
(*.f64 (*.f64 1/2 y) x)
(*.f64 x (*.f64 1/2 y))
(*.f64 1/2 (*.f64 x y))

eval155.0ms (1.5%)

Compiler

Compiled 5631 to 2451 computations (56.5% saved)

prune98.0ms (1%)

Pruning

15 alts after pruning (7 fresh and 8 done)

PrunedKeptTotal
New4203423
Fresh246
Picked011
Done178
Total42315438
Error
0b
Counts
438 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
5.7b
(/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y))
9.9b
(*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))
6.2b
(/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y))
10.2b
(/.f64 1 (/.f64 x (/.f64 y z)))
6.8b
(/.f64 y (*.f64 z x))
6.3b
(+.f64 (/.f64 y (*.f64 x z)) (+.f64 (*.f64 (*.f64 x (*.f64 (*.f64 x 1/24) (/.f64 x z))) y) (*.f64 (/.f64 (*.f64 x 1/2) z) y)))
6.3b
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
9.7b
(+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
10.2b
(*.f64 (/.f64 y z) (/.f64 1 x))
7.3b
(/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z)
57.7b
(*.f64 (/.f64 y z) (*.f64 1/2 x))
7.1b
(/.f64 (/.f64 1 z) (/.f64 x y))
6.3b
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
10.2b
(/.f64 (/.f64 y z) x)
7.6b
(/.f64 (/.f64 y x) z)
Compiler

Compiled 296 to 192 computations (35.1% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
1.0b
(/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y))
5.2b
(/.f64 (*.f64 x z) y)
Compiler

Compiled 24 to 7 computations (70.8% saved)

series16.0ms (0.2%)

Counts
2 → 72
Calls

18 calls:

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

rewrite99.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
560×log-prod_binary64
434×exp-prod_binary64
310×pow-prod-down_binary64
249×pow2_binary64
213×div-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify292.0ms (2.9%)

Algorithm
egg-herbie
Rules
806×fma-neg_binary64
749×fma-def_binary64
686×unswap-sqr_binary64
511×associate-/l*_binary64
343×associate-/r*_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
0361059
1981057
22601055
37191017
419131007
546241002
650511002
760611002
879221002
Stop Event
node limit
Counts
194 → 134
Calls
Call 1
Inputs
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 y (*.f64 z x))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (+.f64 (*.f64 1/720 (/.f64 (*.f64 y (pow.f64 x 5)) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
Outputs
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y x) z)
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 (*.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 1/2 (/.f64 y (/.f64 z x))))
(fma.f64 1/2 (/.f64 x (/.f64 z y)) (/.f64 y (*.f64 z x)))
(fma.f64 1/2 (*.f64 x (/.f64 y z)) (/.f64 (/.f64 y x) z))
(fma.f64 1/2 (*.f64 x (/.f64 y z)) (/.f64 y (*.f64 z x)))
(fma.f64 x (*.f64 y (/.f64 1/2 z)) (/.f64 y (*.f64 z x)))
(*.f64 (/.f64 y z) (+.f64 (/.f64 1 x) (*.f64 x 1/2)))
(*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (/.f64 y (/.f64 z x)) (*.f64 1/24 (/.f64 y (/.f64 z (pow.f64 x 3))))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/24 (/.f64 (pow.f64 x 3) (/.f64 z y)) (/.f64 1/2 (/.f64 z (*.f64 x y)))))
(fma.f64 1/2 (*.f64 x (/.f64 y z)) (fma.f64 1/24 (*.f64 (pow.f64 x 3) (/.f64 y z)) (/.f64 (/.f64 y x) z)))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (*.f64 1/24 (pow.f64 x 3)))))
(fma.f64 (/.f64 y z) (fma.f64 1/24 (pow.f64 x 3) (*.f64 x 1/2)) (/.f64 y (*.f64 z x)))
(*.f64 (/.f64 y z) (+.f64 (/.f64 1 x) (fma.f64 1/24 (pow.f64 x 3) (*.f64 x 1/2))))
(*.f64 (/.f64 y z) (+.f64 (fma.f64 1/24 (pow.f64 x 3) (*.f64 x 1/2)) (/.f64 1 x)))
(+.f64 (/.f64 y (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 y x) z)) (+.f64 (*.f64 1/720 (/.f64 (*.f64 y (pow.f64 x 5)) z)) (*.f64 1/24 (/.f64 (*.f64 y (pow.f64 x 3)) z)))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (/.f64 y (/.f64 z x)) (fma.f64 1/720 (/.f64 (*.f64 y (pow.f64 x 5)) z) (*.f64 1/24 (/.f64 y (/.f64 z (pow.f64 x 3)))))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/2 (/.f64 x (/.f64 z y)) (fma.f64 1/24 (/.f64 (pow.f64 x 3) (/.f64 z y)) (*.f64 1/720 (/.f64 (pow.f64 x 5) (/.f64 z y))))))
(+.f64 (/.f64 (/.f64 y x) z) (fma.f64 1/2 (*.f64 x (/.f64 y z)) (fma.f64 1/24 (*.f64 (pow.f64 x 3) (/.f64 y z)) (*.f64 1/720 (*.f64 (pow.f64 x 5) (/.f64 y z))))))
(+.f64 (/.f64 y (*.f64 z x)) (fma.f64 1/24 (*.f64 (pow.f64 x 3) (/.f64 y z)) (*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (*.f64 1/720 (pow.f64 x 5))))))
(+.f64 (/.f64 y (*.f64 z x)) (*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (fma.f64 1/24 (pow.f64 x 3) (*.f64 1/720 (pow.f64 x 5))))))
(*.f64 (/.f64 y z) (+.f64 (/.f64 1 x) (+.f64 (*.f64 1/720 (pow.f64 x 5)) (fma.f64 1/24 (pow.f64 x 3) (*.f64 x 1/2)))))
(*.f64 (/.f64 y z) (+.f64 (*.f64 1/720 (pow.f64 x 5)) (+.f64 (fma.f64 1/24 (pow.f64 x 3) (*.f64 x 1/2)) (/.f64 1 x))))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) z) (/.f64 y x)))
(*.f64 1/2 (*.f64 y (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 z x))))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
(*.f64 (/.f64 y z) (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 5 computations (64.3% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite61.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
797×pow1_binary64
740×add-log-exp_binary64
740×log1p-expm1-u_binary64
740×expm1-log1p-u_binary64
723×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify10.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
06252
19252
211252
Stop Event
saturated
Counts
74 → 39
Calls
Call 1
Inputs
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
Outputs
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 10 computations (50% saved)

series6.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite66.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
874×pow1_binary64
808×add-log-exp_binary64
808×log1p-expm1-u_binary64
808×expm1-log1p-u_binary64
791×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify19.0ms (0.2%)

Algorithm
egg-herbie
Rules
16×*-commutative_binary64
15×associate-/l*_binary64
11×associate-/r/_binary64
10×associate-*r*_binary64
associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08360
114360
229360
356360
486360
597360
Stop Event
saturated
Counts
59 → 25
Calls
Call 1
Inputs
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 (*.f64 y x) z))
Outputs
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)
(*.f64 1/2 (/.f64 (*.f64 y x) z))
(*.f64 1/2 (/.f64 y (/.f64 z x)))
(/.f64 (*.f64 (*.f64 1/2 y) x) z)
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(/.f64 x (/.f64 z (*.f64 1/2 y)))
(/.f64 (*.f64 y (*.f64 1/2 x)) z)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.9b
(/.f64 1 (/.f64 x (/.f64 y z)))
8.3b
(/.f64 x (/.f64 y z))
Compiler

Compiled 22 to 8 computations (63.6% saved)

series5.0ms (0%)

Counts
2 → 72
Calls

18 calls:

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

rewrite73.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
939×pow1_binary64
871×add-log-exp_binary64
871×log1p-expm1-u_binary64
871×expm1-log1p-u_binary64
850×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify20.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
07504
112504
216504
319504
420504
Stop Event
saturated
Counts
153 → 84
Calls
Call 1
Inputs
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 (*.f64 z x) y)
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
Outputs
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 (*.f64 z x) y)
(/.f64 z (/.f64 y x))
(*.f64 (/.f64 z y) x)
(*.f64 x (/.f64 z y))
(*.f64 z (/.f64 x y))
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y z) x)

localize12.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.4b
(/.f64 (/.f64 1 z) (/.f64 x y))
Compiler

Compiled 20 to 10 computations (50% saved)

series5.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite88.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
940×pow1_binary64
872×add-log-exp_binary64
872×log1p-expm1-u_binary64
872×expm1-log1p-u_binary64
851×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify19.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
06252
19252
211252
Stop Event
saturated
Counts
77 → 42
Calls
Call 1
Inputs
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
Outputs
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))
(/.f64 y (*.f64 z x))

eval149.0ms (1.5%)

Compiler

Compiled 3818 to 1451 computations (62% saved)

prune98.0ms (1%)

Pruning

15 alts after pruning (2 fresh and 13 done)

PrunedKeptTotal
New3240324
Fresh022
Picked011
Done01212
Total32415339
Error
0b
Counts
339 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
5.7b
(/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y))
9.9b
(*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))
6.2b
(/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y))
10.2b
(/.f64 1 (/.f64 x (/.f64 y z)))
6.8b
(/.f64 y (*.f64 z x))
6.3b
(+.f64 (/.f64 y (*.f64 x z)) (+.f64 (*.f64 (*.f64 x (*.f64 (*.f64 x 1/24) (/.f64 x z))) y) (*.f64 (/.f64 (*.f64 x 1/2) z) y)))
6.3b
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
9.7b
(+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
10.2b
(*.f64 (/.f64 y z) (/.f64 1 x))
7.3b
(/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z)
57.7b
(*.f64 (/.f64 y z) (*.f64 1/2 x))
7.1b
(/.f64 (/.f64 1 z) (/.f64 x y))
6.3b
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
10.2b
(/.f64 (/.f64 y z) x)
7.6b
(/.f64 (/.f64 y x) z)
Compiler

Compiled 197 to 128 computations (35% saved)

regimes345.0ms (3.4%)

Counts
24 → 3
Calls
Call 1
Inputs
(/.f64 (/.f64 y z) x)
(/.f64 (/.f64 y z) x)
(/.f64 (/.f64 y x) z)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y x) z)
(/.f64 1 (/.f64 x (/.f64 y z)))
(/.f64 (/.f64 1 z) (/.f64 x y))
(/.f64 1 (/.f64 z (/.f64 y x)))
(*.f64 (/.f64 y z) (/.f64 1 x))
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(*.f64 y (/.f64 (/.f64 1 z) x))
(*.f64 y (/.f64 (/.f64 1 x) z))
(/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z)
(*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))
(+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
(+.f64 (/.f64 y (*.f64 x z)) (+.f64 (*.f64 (*.f64 x (*.f64 (*.f64 x 1/24) (/.f64 x z))) y) (*.f64 (/.f64 (*.f64 x 1/2) z) y)))
(/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y))
(/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
(*.f64 y (/.f64 (/.f64 (cosh.f64 x) z) x))
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
(/.f64 1 (/.f64 x (*.f64 y (/.f64 (cosh.f64 x) z))))
(*.f64 (sqrt.f64 (*.f64 (cosh.f64 x) (/.f64 y x))) (*.f64 (sqrt.f64 (*.f64 (cosh.f64 x) (/.f64 y x))) (/.f64 1 z)))
Outputs
(/.f64 y (*.f64 z x))
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
(/.f64 (/.f64 y z) x)
Calls

6 calls:

64.0ms
(*.f64 (cosh.f64 x) (/.f64 y x))
64.0ms
z
61.0ms
(*.f64 (cosh.f64 x) (/.f64 y x))
58.0ms
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
55.0ms
y
Results
ErrorSegmentsBranch
4.2b2x
0.3b3y
0.2b3z
0.2b3(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
0.2b3(*.f64 (cosh.f64 x) (/.f64 y x))
0.2b3(*.f64 (cosh.f64 x) (/.f64 y x))
Compiler

Compiled 272 to 121 computations (55.5% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
5.432914003721519e+220
1.5768667373606653e+225
0.0ms
-4.050318080097801e+282
-1.650816704409835e+280
Compiler

Compiled 17 to 12 computations (29.4% saved)

regimes101.0ms (1%)

Counts
21 → 3
Calls
Call 1
Inputs
(/.f64 (/.f64 y z) x)
(/.f64 (/.f64 y z) x)
(/.f64 (/.f64 y x) z)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y x) z)
(/.f64 1 (/.f64 x (/.f64 y z)))
(/.f64 (/.f64 1 z) (/.f64 x y))
(/.f64 1 (/.f64 z (/.f64 y x)))
(*.f64 (/.f64 y z) (/.f64 1 x))
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(*.f64 y (/.f64 (/.f64 1 z) x))
(*.f64 y (/.f64 (/.f64 1 x) z))
(/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z)
(*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))
(+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
(+.f64 (/.f64 y (*.f64 x z)) (+.f64 (*.f64 (*.f64 x (*.f64 (*.f64 x 1/24) (/.f64 x z))) y) (*.f64 (/.f64 (*.f64 x 1/2) z) y)))
(/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y))
(/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
(*.f64 y (/.f64 (/.f64 (cosh.f64 x) z) x))
Outputs
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
(*.f64 y (/.f64 (/.f64 (cosh.f64 x) z) x))
Calls

3 calls:

33.0ms
y
32.0ms
z
30.0ms
x
Results
ErrorSegmentsBranch
4.3b2x
0.3b3y
0.3b3z
Compiler

Compiled 206 to 91 computations (55.8% saved)

bsearch26.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
2.9772673409156954e-13
1.0123724312592408e-5
11.0ms
-3.4573314624242504e-28
-8.32278523467986e-33
Compiler

Compiled 76 to 51 computations (32.9% saved)

regimes132.0ms (1.3%)

Counts
20 → 4
Calls
Call 1
Inputs
(/.f64 (/.f64 y z) x)
(/.f64 (/.f64 y z) x)
(/.f64 (/.f64 y x) z)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y x) z)
(/.f64 1 (/.f64 x (/.f64 y z)))
(/.f64 (/.f64 1 z) (/.f64 x y))
(/.f64 1 (/.f64 z (/.f64 y x)))
(*.f64 (/.f64 y z) (/.f64 1 x))
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(*.f64 y (/.f64 (/.f64 1 z) x))
(*.f64 y (/.f64 (/.f64 1 x) z))
(/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z)
(*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))
(+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
(+.f64 (/.f64 y (*.f64 x z)) (+.f64 (*.f64 (*.f64 x (*.f64 (*.f64 x 1/24) (/.f64 x z))) y) (*.f64 (/.f64 (*.f64 x 1/2) z) y)))
(/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y))
(/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
Outputs
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
(/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y))
(/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y))
Calls

3 calls:

60.0ms
z
34.0ms
y
31.0ms
x
Results
ErrorSegmentsBranch
4.3b2x
0.3b3y
0.3b4z
Compiler

Compiled 198 to 89 computations (55.1% saved)

bsearch41.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
1.3183169543758011e+228
1.718776833205182e+235
8.0ms
4.650488237268877e-62
3.57397547902068e-57
10.0ms
-3.4573314624242504e-28
-8.32278523467986e-33
Compiler

Compiled 76 to 51 computations (32.9% saved)

regimes172.0ms (1.7%)

Counts
19 → 4
Calls
Call 1
Inputs
(/.f64 (/.f64 y z) x)
(/.f64 (/.f64 y z) x)
(/.f64 (/.f64 y x) z)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y x) z)
(/.f64 1 (/.f64 x (/.f64 y z)))
(/.f64 (/.f64 1 z) (/.f64 x y))
(/.f64 1 (/.f64 z (/.f64 y x)))
(*.f64 (/.f64 y z) (/.f64 1 x))
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(*.f64 y (/.f64 (/.f64 1 z) x))
(*.f64 y (/.f64 (/.f64 1 x) z))
(/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z)
(*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))
(+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
(+.f64 (/.f64 y (*.f64 x z)) (+.f64 (*.f64 (*.f64 x (*.f64 (*.f64 x 1/24) (/.f64 x z))) y) (*.f64 (/.f64 (*.f64 x 1/2) z) y)))
(/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y))
(/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y))
Outputs
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
(/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y))
(/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y))
(/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y))
Calls

3 calls:

86.0ms
x
40.0ms
z
38.0ms
y
Results
ErrorSegmentsBranch
4.3b2x
0.4b3y
0.3b4z
Compiler

Compiled 190 to 88 computations (53.7% saved)

bsearch132.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
33.0ms
1.3183169543758011e+228
1.718776833205182e+235
15.0ms
3.57397547902068e-57
1.0720700979724951e-44
18.0ms
-3.4573314624242504e-28
-8.32278523467986e-33
Compiler

Compiled 76 to 51 computations (32.9% saved)

regimes123.0ms (1.2%)

Counts
18 → 3
Calls
Call 1
Inputs
(/.f64 (/.f64 y z) x)
(/.f64 (/.f64 y z) x)
(/.f64 (/.f64 y x) z)
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 y x) z)
(/.f64 1 (/.f64 x (/.f64 y z)))
(/.f64 (/.f64 1 z) (/.f64 x y))
(/.f64 1 (/.f64 z (/.f64 y x)))
(*.f64 (/.f64 y z) (/.f64 1 x))
(*.f64 (/.f64 y z) (*.f64 1/2 x))
(*.f64 y (/.f64 (/.f64 1 z) x))
(*.f64 y (/.f64 (/.f64 1 x) z))
(/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z)
(*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))
(+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
(+.f64 (/.f64 y (*.f64 x z)) (+.f64 (*.f64 (*.f64 x (*.f64 (*.f64 x 1/24) (/.f64 x z))) y) (*.f64 (/.f64 (*.f64 x 1/2) z) y)))
(/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y))
Outputs
(/.f64 y (*.f64 z x))
(/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y))
(+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))
Calls

3 calls:

50.0ms
y
33.0ms
z
27.0ms
x
Results
ErrorSegmentsBranch
3.4b3x
0.6b3y
1.3b2z
Compiler

Compiled 182 to 86 computations (52.7% saved)

bsearch44.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
39.0ms
4.190571633725181e-41
1.3566965169109804e-39
4.0ms
-6.739546024912874e+120
-2.9039228066913576e+117
Compiler

Compiled 38 to 26 computations (31.6% saved)

regimes157.0ms (1.5%)

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

3 calls:

95.0ms
z
29.0ms
y
28.0ms
x
Results
ErrorSegmentsBranch
5.0b2x
1.2b3y
1.1b3z
Compiler

Compiled 174 to 83 computations (52.3% saved)

bsearch71.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
55.0ms
5.096702770197931e+19
8.837912578542036e+21
16.0ms
-64377189.386861324
-1176458.408012976
Compiler

Compiled 109 to 72 computations (33.9% saved)

regimes197.0ms (1.9%)

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

3 calls:

112.0ms
y
55.0ms
x
27.0ms
z
Results
ErrorSegmentsBranch
5.3b2x
1.2b3y
1.3b3z
Compiler

Compiled 130 to 62 computations (52.3% saved)

bsearch62.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
46.0ms
6.436951221045062e-73
3.2365978335648043e-65
16.0ms
-2.5601116751657163e-18
-1.0070569088754817e-23
Compiler

Compiled 55 to 37 computations (32.7% saved)

regimes196.0ms (1.9%)

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

3 calls:

84.0ms
x
61.0ms
z
46.0ms
y
Results
ErrorSegmentsBranch
5.3b2x
1.3b3y
1.4b3z
Compiler

Compiled 111 to 53 computations (52.3% saved)

bsearch19.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
8.594510047915839e-10
0.1302333441625202
6.0ms
-4.818751169158184e+45
-1.8535271530856156e+40
Compiler

Compiled 71 to 49 computations (31% saved)

regimes149.0ms (1.5%)

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

3 calls:

78.0ms
x
45.0ms
y
22.0ms
z
Results
ErrorSegmentsBranch
5.3b2x
1.3b3y
1.4b3z
Compiler

Compiled 100 to 47 computations (53% saved)

bsearch13.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
7.0ms
1.0927840838771144e+24
1.5161380000029258e+26
6.0ms
-4.818751169158184e+45
-1.8535271530856156e+40
Compiler

Compiled 65 to 44 computations (32.3% saved)

regimes92.0ms (0.9%)

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

3 calls:

47.0ms
z
21.0ms
y
20.0ms
x
Results
ErrorSegmentsBranch
5.5b2x
1.6b3y
1.6b3z
Compiler

Compiled 89 to 42 computations (52.8% saved)

bsearch62.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
45.0ms
5.096702770197931e+19
8.837912578542036e+21
16.0ms
-64377189.386861324
-1176458.408012976
Compiler

Compiled 53 to 36 computations (32.1% saved)

regimes69.0ms (0.7%)

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

3 calls:

47.0ms
z
11.0ms
y
9.0ms
x
Results
ErrorSegmentsBranch
5.9b3x
1.6b3y
4.8b4z
Compiler

Compiled 30 to 16 computations (46.7% saved)

bsearch44.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
32.0ms
6.436951221045062e-73
3.2365978335648043e-65
12.0ms
-2.5601116751657163e-18
-1.0070569088754817e-23
Compiler

Compiled 35 to 24 computations (31.4% saved)

regimes17.0ms (0.2%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0.0b (-0%)

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

3 calls:

9.0ms
x
3.0ms
y
3.0ms
z
Results
ErrorSegmentsBranch
10.2b1x
10.2b1y
10.2b1z
Compiler

Compiled 25 to 14 computations (44% saved)

simplify23.0ms (0.2%)

Algorithm
egg-herbie
Rules
12×*-commutative_binary64
+-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
098687
1118687
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) -4000000000000000131128983931448392994282821132085974257053334309763770412789497343711737514689647172215269990327296603274806538707642782783975964405172170084499115216982480263261093089420598385961314195650041202516370405569779342608523794259304018488315142707243420422805058800844800) (/.f64 y (*.f64 z x)) (if (<=.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) 100000000000000004660180717482069756840508580994937686142098045801868278132308629957276771221419571232103397659598548986531726166600689809136062209749264344058743012736731622189948720589505523832645973577156024278435495936) (/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z) (/.f64 (/.f64 y z) x)))
(if (<=.f64 z -1461501637330903040/1461501637330902918203684832716283019655932542976) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (if (<=.f64 z 7922816251426434048/79228162514264337593543950336) (*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x)) (*.f64 y (/.f64 (/.f64 (cosh.f64 x) z) x))))
(if (<=.f64 z -1461501637330903040/1461501637330902918203684832716283019655932542976) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (if (<=.f64 z 115792089237316192/115792089237316195423570985008687907853269984665640564039457584007913129639936) (*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x)) (if (<=.f64 z 1318316954375801107735549642754041600265646188615491833237117552571672841070398141230185307121797599920407343808592021289395363207857444982337487257932496116302218352961748451867391872156153577345555115231691061018932962968731648) (/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y)) (/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y)))))
(if (<=.f64 z -1461501637330903040/1461501637330902918203684832716283019655932542976) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (if (<=.f64 z 269599466671506400/26959946667150639794667015087019630673637144422540572481103610249216) (/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y)) (if (<=.f64 z 1318316954375801107735549642754041600265646188615491833237117552571672841070398141230185307121797599920407343808592021289395363207857444982337487257932496116302218352961748451867391872156153577345555115231691061018932962968731648) (/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y)) (/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y)))))
(if (<=.f64 y -999999999999999980003468347394201181668805192897008518188648311830772414627428725464789434929992439754776075181077037056) (/.f64 y (*.f64 z x)) (if (<=.f64 y 263046444743185312/6277101735386680763835789423207666416102355444464034512896) (/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y)) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))))
(if (<=.f64 z -10000000) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (if (<=.f64 z 1000000000000000000000) (+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))))
(if (<=.f64 y -3402823669209384448/340282366920938463463374607431768211456) (+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (if (<=.f64 y 5121992662179293/7957171782556586274486115970349133441607298412757563479047423630290551952200534008528896) (/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z) (+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))))
(if (<=.f64 y -999999999999999929757289024535551219930759168) (/.f64 y (*.f64 z x)) (if (<=.f64 y 5902958103587057/590295810358705651712) (/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z) (*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))))
(if (<=.f64 y -999999999999999929757289024535551219930759168) (/.f64 y (*.f64 z x)) (if (<=.f64 y 100000000000000004764729344) (/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z) (/.f64 y (*.f64 z x))))
(if (<=.f64 z -10000000) (/.f64 y (*.f64 z x)) (if (<=.f64 z 1000000000000000000000) (/.f64 (/.f64 y z) x) (/.f64 y (*.f64 z x))))
(if (<=.f64 y -3402823669209384448/340282366920938463463374607431768211456) (/.f64 (/.f64 y z) x) (if (<=.f64 y 5121992662179293/7957171782556586274486115970349133441607298412757563479047423630290551952200534008528896) (/.f64 (/.f64 y x) z) (/.f64 (/.f64 y z) x)))
(/.f64 (/.f64 y z) x)
Outputs
(if (<=.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) -4000000000000000131128983931448392994282821132085974257053334309763770412789497343711737514689647172215269990327296603274806538707642782783975964405172170084499115216982480263261093089420598385961314195650041202516370405569779342608523794259304018488315142707243420422805058800844800) (/.f64 y (*.f64 z x)) (if (<=.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) 100000000000000004660180717482069756840508580994937686142098045801868278132308629957276771221419571232103397659598548986531726166600689809136062209749264344058743012736731622189948720589505523832645973577156024278435495936) (/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z) (/.f64 (/.f64 y z) x)))
(if (<=.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) -4000000000000000131128983931448392994282821132085974257053334309763770412789497343711737514689647172215269990327296603274806538707642782783975964405172170084499115216982480263261093089420598385961314195650041202516370405569779342608523794259304018488315142707243420422805058800844800) (/.f64 y (*.f64 x z)) (if (<=.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) 100000000000000004660180717482069756840508580994937686142098045801868278132308629957276771221419571232103397659598548986531726166600689809136062209749264344058743012736731622189948720589505523832645973577156024278435495936) (/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z) (/.f64 (/.f64 y z) x)))
(if (<=.f64 z -1461501637330903040/1461501637330902918203684832716283019655932542976) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (if (<=.f64 z 7922816251426434048/79228162514264337593543950336) (*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x)) (*.f64 y (/.f64 (/.f64 (cosh.f64 x) z) x))))
(if (<=.f64 z -178405961588245/178405961588244985132285746181186892047843328) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (if (<=.f64 z 7737125245533627/77371252455336267181195264) (*.f64 (/.f64 y x) (/.f64 (cosh.f64 x) z)) (*.f64 y (/.f64 (/.f64 (cosh.f64 x) z) x))))
(if (<=.f64 z -1461501637330903040/1461501637330902918203684832716283019655932542976) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (if (<=.f64 z 115792089237316192/115792089237316195423570985008687907853269984665640564039457584007913129639936) (*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x)) (if (<=.f64 z 1318316954375801107735549642754041600265646188615491833237117552571672841070398141230185307121797599920407343808592021289395363207857444982337487257932496116302218352961748451867391872156153577345555115231691061018932962968731648) (/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y)) (/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y)))))
(if (<=.f64 z -178405961588245/178405961588244985132285746181186892047843328) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (if (<=.f64 z 3618502788666131/3618502788666131106986593281521497120414687020801267626233049500247285301248) (*.f64 (/.f64 y x) (/.f64 (cosh.f64 x) z)) (if (<=.f64 z 1318316954375801107735549642754041600265646188615491833237117552571672841070398141230185307121797599920407343808592021289395363207857444982337487257932496116302218352961748451867391872156153577345555115231691061018932962968731648) (/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y)) (/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y)))))
(if (<=.f64 z -1461501637330903040/1461501637330902918203684832716283019655932542976) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (if (<=.f64 z 269599466671506400/26959946667150639794667015087019630673637144422540572481103610249216) (/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y)) (if (<=.f64 z 1318316954375801107735549642754041600265646188615491833237117552571672841070398141230185307121797599920407343808592021289395363207857444982337487257932496116302218352961748451867391872156153577345555115231691061018932962968731648) (/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y)) (/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y)))))
(if (<=.f64 z -178405961588245/178405961588244985132285746181186892047843328) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (if (<=.f64 z 8424983333484575/842498333348457493583344221469363458551160763204392890034487820288) (/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y)) (if (<=.f64 z 1318316954375801107735549642754041600265646188615491833237117552571672841070398141230185307121797599920407343808592021289395363207857444982337487257932496116302218352961748451867391872156153577345555115231691061018932962968731648) (/.f64 (cosh.f64 x) (/.f64 (*.f64 x z) y)) (/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y)))))
(if (<=.f64 y -999999999999999980003468347394201181668805192897008518188648311830772414627428725464789434929992439754776075181077037056) (/.f64 y (*.f64 z x)) (if (<=.f64 y 263046444743185312/6277101735386680763835789423207666416102355444464034512896) (/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y)) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))))
(if (<=.f64 y -999999999999999980003468347394201181668805192897008518188648311830772414627428725464789434929992439754776075181077037056) (/.f64 y (*.f64 x z)) (if (<=.f64 y 8220201398224541/196159429230833773869868419475239575503198607639501078528) (/.f64 (/.f64 (cosh.f64 x) z) (/.f64 x y)) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))))
(if (<=.f64 z -10000000) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (if (<=.f64 z 1000000000000000000000) (+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (+.f64 (/.f64 y (*.f64 x z)) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))))
(if (<=.f64 y -3402823669209384448/340282366920938463463374607431768211456) (+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (if (<=.f64 y 5121992662179293/7957171782556586274486115970349133441607298412757563479047423630290551952200534008528896) (/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z) (+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))))
(if (<=.f64 y -6646139978924579/664613997892457936451903530140172288) (+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2)))) (if (<=.f64 y 5121992662179293/7957171782556586274486115970349133441607298412757563479047423630290551952200534008528896) (/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 x y))) z) (+.f64 (/.f64 (/.f64 y z) x) (*.f64 y (*.f64 (/.f64 x z) (+.f64 (*.f64 x (*.f64 x 1/24)) 1/2))))))
(if (<=.f64 y -999999999999999929757289024535551219930759168) (/.f64 y (*.f64 z x)) (if (<=.f64 y 5902958103587057/590295810358705651712) (/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z) (*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))))
(if (<=.f64 y -999999999999999929757289024535551219930759168) (/.f64 y (*.f64 x z)) (if (<=.f64 y 5902958103587057/590295810358705651712) (/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 x y))) z) (*.f64 (/.f64 y z) (+.f64 (*.f64 x 1/2) (/.f64 1 x)))))
(if (<=.f64 y -999999999999999929757289024535551219930759168) (/.f64 y (*.f64 z x)) (if (<=.f64 y 100000000000000004764729344) (/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 y x))) z) (/.f64 y (*.f64 z x))))
(if (<=.f64 y -999999999999999929757289024535551219930759168) (/.f64 y (*.f64 x z)) (if (<=.f64 y 100000000000000004764729344) (/.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (*.f64 x y))) z) (/.f64 y (*.f64 x z))))
(if (<=.f64 z -10000000) (/.f64 y (*.f64 z x)) (if (<=.f64 z 1000000000000000000000) (/.f64 (/.f64 y z) x) (/.f64 y (*.f64 z x))))
(if (<=.f64 z -10000000) (/.f64 y (*.f64 x z)) (if (<=.f64 z 1000000000000000000000) (/.f64 (/.f64 y z) x) (/.f64 y (*.f64 x z))))
(if (<=.f64 y -3402823669209384448/340282366920938463463374607431768211456) (/.f64 (/.f64 y z) x) (if (<=.f64 y 5121992662179293/7957171782556586274486115970349133441607298412757563479047423630290551952200534008528896) (/.f64 (/.f64 y x) z) (/.f64 (/.f64 y z) x)))
(if (<=.f64 y -6646139978924579/664613997892457936451903530140172288) (/.f64 (/.f64 y z) x) (if (<=.f64 y 5121992662179293/7957171782556586274486115970349133441607298412757563479047423630290551952200534008528896) (/.f64 (/.f64 y x) z) (/.f64 (/.f64 y z) x)))
(/.f64 (/.f64 y z) x)
Compiler

Compiled 502 to 271 computations (46% saved)

soundness129.0ms (1.3%)

Algorithm
egg-herbie
Rules
806×fma-neg_binary64
755×fma-def_binary64
686×unswap-sqr_binary64
509×associate-/l*_binary64
345×associate-/r*_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
035807
197805
2259803
3719765
41933755
54678750
65105750
76116750
87974750
Stop Event
node limit
Compiler

Compiled 16 to 10 computations (37.5% saved)

end212.0ms (2.1%)

Compiler

Compiled 469 to 184 computations (60.8% saved)

Profiling

Loading profile data...