Details

Time bar (total: 5.1s)

analyze293.0ms (5.7%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
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.2s (43.6%)

Results
1.2s10727×body64invalid
1.0s8239×body64valid
3.0ms17×body128valid

preprocess62.0ms (1.2%)

Algorithm
egg-herbie
Rules
914×fma-neg_binary64
492×div-sub_binary64
342×associate-/l*_binary64
336×fma-def_binary64
318×associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01948
15548
214448
338848
489548
5163948
6313148
7464348
8791748
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 z (cosh.f64 x)))
(*.f64 (/.f64 y x) (/.f64 (cosh.f64 x) z))
(*.f64 (cosh.f64 x) (/.f64 (/.f64 y x) z))
(*.f64 (cosh.f64 x) (/.f64 y (*.f64 x z)))
(/.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 (/.f64 x y) z) (cosh.f64 y))
(*.f64 (cosh.f64 y) (/.f64 x (*.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 (cosh.f64 z) (*.f64 (/.f64 x y) z))
(*.f64 (/.f64 y x) (/.f64 (cosh.f64 z) z))
(*.f64 (cosh.f64 z) (/.f64 (/.f64 y x) 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 (cosh.f64 x) (*.f64 (/.f64 y z) x))
(*.f64 (/.f64 z x) (/.f64 (cosh.f64 x) y))
(*.f64 (cosh.f64 x) (/.f64 z (*.f64 x y)))
(/.f64 (cosh.f64 x) (*.f64 y (/.f64 x z)))
Compiler

Compiled 11 to 7 computations (36.4% saved)

simplify63.0ms (1.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0812
11912
24612
311212
425112
545412
680912
7231112
8347512
9468012
10555312
11619012
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 (/.f64 y z) (/.f64 (cosh.f64 x) x))
(*.f64 (cosh.f64 x) (/.f64 y (*.f64 x z)))
(/.f64 (cosh.f64 x) (*.f64 x (/.f64 z y)))
(*.f64 (cosh.f64 x) (/.f64 (/.f64 y x) z))

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
9.5b
Counts
3 → 2
Alt Table
StatusErrorProgram
9.7b
(*.f64 (cosh.f64 x) (/.f64 (/.f64 y x) z))
9.5b
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
Compiler

Compiled 63 to 37 computations (41.3% saved)

localize6.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

series19.0ms (0.4%)

Counts
3 → 72
Calls

18 calls:

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

rewrite67.0ms (1.3%)

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
0824
117624
2261124
Stop Event
node limit
Counts
3 → 140
Calls
Call 1
Inputs
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
(*.f64 (cosh.f64 x) (/.f64 y x))
(cosh.f64 x)
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 (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) z) (/.f64 y 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) 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) (/.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) 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) (/.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) z) (/.f64 y 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) 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 x y) (/.f64 z (cosh.f64 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) (/.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) 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) (/.f64 y x)) (neg.f64 z)))))) (#(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 (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) z) (/.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 x y) (/.f64 z (cosh.f64 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 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 (log.f64 (pow.f64 (*.f64 (/.f64 x y) (/.f64 z (cosh.f64 x))) -3)) 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))))) (#(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 log1p.f64 (expm1.f64 (*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))))))) (#(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 +.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 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)))))) (#(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 expm1.f64 (log1p.f64 (*.f64 (cosh.f64 x) (/.f64 y x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cosh.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cosh.f64 x))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cosh.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (cosh.f64 x)))) (log.f64 (sqrt.f64 (exp.f64 (cosh.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cosh.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (cosh.f64 (exp.f64 (log1p.f64 x))) (cosh.f64 1)) (*.f64 (sinh.f64 (exp.f64 (log1p.f64 x))) (sinh.f64 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cosh.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cosh.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cosh.f64 x)) (pow.f64 (cbrt.f64 (cosh.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cosh.f64 x)) 2) (cbrt.f64 (cosh.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cosh.f64 x)) (sqrt.f64 (cosh.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (cosh.f64 x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 2 (*.f64 2 (cosh.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (cosh.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (cosh.f64 x))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cosh.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cosh.f64 x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cosh.f64 x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cosh.f64 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (cosh.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (cosh.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 2 (*.f64 2 (cosh.f64 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cosh.f64 x))) 2)) (cbrt.f64 (log.f64 (cosh.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cosh.f64 x)))) (sqrt.f64 (log.f64 (cosh.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cosh.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cosh.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cosh.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (cosh.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cosh.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cosh.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (cosh.f64 x))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (cosh.f64 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (cosh.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cosh.f64 x)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cosh.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cosh.f64 x)))))))

simplify68.0ms (1.3%)

Algorithm
egg-herbie
Rules
836×fma-def_binary64
590×times-frac_binary64
568×associate-*l*_binary64
492×unswap-sqr_binary64
482×distribute-rgt-out_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0631416
11761410
24641343
314231324
449471320
Stop Event
node limit
Counts
212 → 168
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))
1
(+.f64 1 (*.f64 1/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/24 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
Outputs
(/.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 (/.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 (/.f64 y z) (*.f64 x 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)) (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 1/24 (pow.f64 x 3) (*.f64 x 1/2))))
(+.f64 (/.f64 (/.f64 y x) z) (*.f64 (*.f64 y (/.f64 x z)) (fma.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 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 (fma.f64 1/2 (*.f64 (/.f64 y z) x) (/.f64 y (*.f64 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 (/.f64 y z) (fma.f64 1/24 (pow.f64 x 3) (*.f64 x 1/2))) (fma.f64 (/.f64 y z) (*.f64 1/720 (pow.f64 x 5)) (/.f64 y (*.f64 z x))))
(+.f64 (/.f64 (/.f64 y x) z) (*.f64 (/.f64 y z) (+.f64 (fma.f64 1/24 (pow.f64 x 3) (*.f64 x 1/2)) (*.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 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 z x) y)))
(*.f64 1/2 (*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) (/.f64 y z))
(*.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 (/.f64 y x) (fma.f64 (*.f64 y 1/24) (pow.f64 x 3) (*.f64 (*.f64 1/2 x) y)))
(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 1/24 (pow.f64 x 3) (*.f64 x 1/2)) (/.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 1/24 (pow.f64 x 3)) (*.f64 y (+.f64 (*.f64 1/720 (pow.f64 x 5)) (*.f64 x 1/2)))))
(fma.f64 y (fma.f64 1/720 (pow.f64 x 5) (*.f64 x 1/2)) (fma.f64 (pow.f64 x 3) (*.f64 y 1/24) (/.f64 y x)))
(fma.f64 y (*.f64 1/720 (pow.f64 x 5)) (fma.f64 y (fma.f64 1/24 (pow.f64 x 3) (*.f64 x 1/2)) (/.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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) 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 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x) y))
(*.f64 (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x) y)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) x))
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) x))
1
(+.f64 1 (*.f64 1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 1/2 (*.f64 x x)))
(fma.f64 1/2 (*.f64 x x) 1)
(fma.f64 x (*.f64 x 1/2) 1)
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/24 (pow.f64 x 4))))
(+.f64 1 (fma.f64 1/2 (*.f64 x x) (*.f64 1/24 (pow.f64 x 4))))
(fma.f64 x (*.f64 x 1/2) (fma.f64 1/24 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1/24) 1/2) 1)
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1/2 (*.f64 x x) (fma.f64 1/24 (pow.f64 x 4) (*.f64 1/720 (pow.f64 x 6)))))
(+.f64 (fma.f64 1/2 (*.f64 x x) 1) (fma.f64 1/24 (pow.f64 x 4) (*.f64 1/720 (pow.f64 x 6))))
(+.f64 (fma.f64 1/2 (*.f64 x x) (*.f64 1/24 (pow.f64 x 4))) (fma.f64 1/720 (pow.f64 x 6) 1))
(fma.f64 1/720 (pow.f64 x 6) (fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1/24) 1/2) 1))
(fma.f64 x (*.f64 x 1/2) (fma.f64 1/720 (pow.f64 x 6) (fma.f64 1/24 (pow.f64 x 4) 1)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x)))
(*.f64 1/2 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)))
(*.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x)))

prune301.0ms (5.9%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1599168
Fresh101
Picked101
Done000
Total1619170
Error
0.0b
Counts
170 → 9
Alt Table
StatusErrorProgram
39.0b
(*.f64 (/.f64 (/.f64 y x) (sqrt.f64 z)) (/.f64 (cosh.f64 x) (sqrt.f64 z)))
10.3b
(*.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)))
6.3b
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
36.0b
(/.f64 (/.f64 (/.f64 (*.f64 (cosh.f64 x) y) (sqrt.f64 x)) (sqrt.f64 x)) z)
9.6b
(pow.f64 (*.f64 (/.f64 x y) (/.f64 z (cosh.f64 x))) -1)
9.6b
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
9.5b
(/.f64 (/.f64 (cosh.f64 x) (/.f64 x y)) z)
6.6b
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z x)))
31.7b
(*.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))))
Compiler

Compiled 2587 to 1056 computations (59.2% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x))
0.0b
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
0.0b
(/.f64 1 (exp.f64 x))
6.0b
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))

series13.0ms (0.3%)

Counts
4 → 16
Calls

21 calls:

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

rewrite81.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
689×log-prod_binary64
399×prod-diff_binary64
313×pow2_binary64
221×pow1/3_binary64
212×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify47.0ms (0.9%)

Algorithm
egg-herbie
Rules
409×associate-/r/_binary64
401×associate-/l*_binary64
390×*-commutative_binary64
365×associate-/r*_binary64
327×fma-neg_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
062260
1169246
2446213
31403200
42708195
55917195
Stop Event
node limit
Counts
187 → 200
Calls
Call 1
Inputs
(*.f64 2 (/.f64 y (*.f64 z x)))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 2 (/.f64 y (*.f64 z x))))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 1/12 (/.f64 (*.f64 y (pow.f64 x 3)) z)) (*.f64 2 (/.f64 y (*.f64 z x)))))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 1/360 (/.f64 (*.f64 y (pow.f64 x 5)) z)) (+.f64 (*.f64 1/12 (/.f64 (*.f64 y (pow.f64 x 3)) z)) (*.f64 2 (/.f64 y (*.f64 z x))))))
1
(+.f64 1 (*.f64 -1 x))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1 x)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1 x))))
(*.f64 2 y)
(+.f64 (*.f64 2 y) (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 1/12 (*.f64 y (pow.f64 x 4))) (*.f64 y (pow.f64 x 2))))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 1/12 (*.f64 y (pow.f64 x 4))) (+.f64 (*.f64 y (pow.f64 x 2)) (*.f64 1/360 (*.f64 y (pow.f64 x 6))))))
2
(+.f64 2 (pow.f64 x 2))
(+.f64 2 (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 2 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))))
Outputs
(*.f64 2 (/.f64 y (*.f64 z x)))
(*.f64 (/.f64 2 z) (/.f64 y x))
(/.f64 (*.f64 (/.f64 y x) 2) z)
(/.f64 (/.f64 2 z) (/.f64 x y))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 2 (/.f64 y (*.f64 z x))))
(+.f64 (*.f64 2 (/.f64 y (*.f64 z x))) (/.f64 y (/.f64 z x)))
(fma.f64 2 (/.f64 y (*.f64 z x)) (*.f64 (/.f64 y z) x))
(*.f64 (/.f64 y z) (+.f64 (/.f64 2 x) x))
(*.f64 (/.f64 y z) (+.f64 x (/.f64 2 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 1/12 (/.f64 (*.f64 y (pow.f64 x 3)) z)) (*.f64 2 (/.f64 y (*.f64 z x)))))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 1/12 (/.f64 (*.f64 y (pow.f64 x 3)) z) (*.f64 2 (/.f64 y (*.f64 z x)))))
(+.f64 (*.f64 (/.f64 y z) x) (fma.f64 1/12 (*.f64 (/.f64 y z) (pow.f64 x 3)) (*.f64 (/.f64 2 z) (/.f64 y x))))
(fma.f64 1/12 (*.f64 (pow.f64 x 3) (/.f64 y z)) (*.f64 (/.f64 y z) (+.f64 (/.f64 2 x) x)))
(*.f64 (/.f64 y z) (+.f64 (*.f64 1/12 (pow.f64 x 3)) (+.f64 x (/.f64 2 x))))
(*.f64 (/.f64 y z) (+.f64 x (+.f64 (/.f64 2 x) (*.f64 1/12 (pow.f64 x 3)))))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 1/360 (/.f64 (*.f64 y (pow.f64 x 5)) z)) (+.f64 (*.f64 1/12 (/.f64 (*.f64 y (pow.f64 x 3)) z)) (*.f64 2 (/.f64 y (*.f64 z x))))))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 1/360 (/.f64 (*.f64 y (pow.f64 x 5)) z) (fma.f64 1/12 (/.f64 (*.f64 y (pow.f64 x 3)) z) (*.f64 2 (/.f64 y (*.f64 z x))))))
(+.f64 (*.f64 (/.f64 y z) x) (fma.f64 1/360 (*.f64 (/.f64 y z) (pow.f64 x 5)) (fma.f64 1/12 (*.f64 (/.f64 y z) (pow.f64 x 3)) (*.f64 (/.f64 2 z) (/.f64 y x)))))
(fma.f64 1/360 (*.f64 (pow.f64 x 5) (/.f64 y z)) (fma.f64 1/12 (*.f64 (pow.f64 x 3) (/.f64 y z)) (*.f64 (/.f64 y z) (+.f64 (/.f64 2 x) x))))
(fma.f64 1/360 (*.f64 y (/.f64 (pow.f64 x 5) z)) (*.f64 (/.f64 y z) (+.f64 (*.f64 1/12 (pow.f64 x 3)) (+.f64 x (/.f64 2 x)))))
(*.f64 (/.f64 y z) (+.f64 (*.f64 1/12 (pow.f64 x 3)) (+.f64 x (+.f64 (/.f64 2 x) (*.f64 1/360 (pow.f64 x 5))))))
1
(+.f64 1 (*.f64 -1 x))
(+.f64 1 (neg.f64 x))
(-.f64 1 x)
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1 x)))
(+.f64 1 (fma.f64 1/2 (*.f64 x x) (neg.f64 x)))
(+.f64 (*.f64 x (*.f64 x 1/2)) (-.f64 1 x))
(fma.f64 x (*.f64 x 1/2) (-.f64 1 x))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1 x))))
(fma.f64 -1/6 (pow.f64 x 3) (+.f64 1 (fma.f64 1/2 (*.f64 x x) (neg.f64 x))))
(fma.f64 (pow.f64 x 3) -1/6 (+.f64 (*.f64 x (*.f64 x 1/2)) (-.f64 1 x)))
(-.f64 (fma.f64 (pow.f64 x 3) -1/6 (fma.f64 x (*.f64 x 1/2) 1)) x)
(fma.f64 (*.f64 x x) (+.f64 1/2 (*.f64 x -1/6)) (-.f64 1 x))
(*.f64 2 y)
(+.f64 (*.f64 2 y) (*.f64 y (pow.f64 x 2)))
(fma.f64 2 y (*.f64 y (*.f64 x x)))
(*.f64 y (fma.f64 x x 2))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 1/12 (*.f64 y (pow.f64 x 4))) (*.f64 y (pow.f64 x 2))))
(fma.f64 2 y (fma.f64 1/12 (*.f64 y (pow.f64 x 4)) (*.f64 y (*.f64 x x))))
(+.f64 (*.f64 (pow.f64 x 4) (*.f64 y 1/12)) (*.f64 y (fma.f64 x x 2)))
(*.f64 y (fma.f64 x x (fma.f64 1/12 (pow.f64 x 4) 2)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 1/12 (*.f64 y (pow.f64 x 4))) (+.f64 (*.f64 y (pow.f64 x 2)) (*.f64 1/360 (*.f64 y (pow.f64 x 6))))))
(fma.f64 2 y (fma.f64 1/12 (*.f64 y (pow.f64 x 4)) (fma.f64 y (*.f64 x x) (*.f64 1/360 (*.f64 y (pow.f64 x 6))))))
(fma.f64 2 y (fma.f64 1/12 (*.f64 y (pow.f64 x 4)) (fma.f64 y (*.f64 x x) (*.f64 (pow.f64 x 6) (*.f64 y 1/360)))))
(+.f64 (*.f64 y (fma.f64 1/12 (pow.f64 x 4) (*.f64 x x))) (*.f64 y (fma.f64 1/360 (pow.f64 x 6) 2)))
(*.f64 y (fma.f64 1/360 (pow.f64 x 6) (fma.f64 x x (fma.f64 1/12 (pow.f64 x 4) 2))))
2
(+.f64 2 (pow.f64 x 2))
(+.f64 2 (*.f64 x x))
(fma.f64 x x 2)
(+.f64 2 (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 2 (+.f64 (*.f64 x x) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 2 (fma.f64 1/12 (pow.f64 x 4) (*.f64 x x)))
(fma.f64 x x (fma.f64 1/12 (pow.f64 x 4) 2))
(+.f64 2 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))))
(+.f64 2 (fma.f64 1/360 (pow.f64 x 6) (+.f64 (*.f64 x x) (*.f64 1/12 (pow.f64 x 4)))))
(+.f64 2 (fma.f64 1/360 (pow.f64 x 6) (fma.f64 1/12 (pow.f64 x 4) (*.f64 x x))))
(fma.f64 1/360 (pow.f64 x 6) (fma.f64 x x (fma.f64 1/12 (pow.f64 x 4) 2)))

prune507.0ms (9.9%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New1982200
Fresh268
Picked011
Done000
Total2009209
Error
0b
Counts
209 → 9
Alt Table
StatusErrorProgram
7.8b
(*.f64 1/2 (*.f64 (/.f64 (*.f64 2 (cosh.f64 x)) x) (/.f64 y z)))
6.3b
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
39.0b
(*.f64 (/.f64 (/.f64 y x) (sqrt.f64 z)) (/.f64 (cosh.f64 x) (sqrt.f64 z)))
10.3b
(*.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)))
36.0b
(/.f64 (/.f64 (/.f64 (*.f64 (cosh.f64 x) y) (sqrt.f64 x)) (sqrt.f64 x)) z)
9.6b
(pow.f64 (*.f64 (/.f64 x y) (/.f64 z (cosh.f64 x))) -1)
9.6b
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
8.6b
(*.f64 1/2 (pow.f64 (*.f64 (/.f64 x (*.f64 2 (cosh.f64 x))) (/.f64 z y)) -1))
9.5b
(/.f64 (/.f64 (cosh.f64 x) (/.f64 x y)) z)
Compiler

Compiled 3909 to 2098 computations (46.3% saved)

localize8.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(cosh.f64 x)
0.0b
(/.f64 (*.f64 2 (cosh.f64 x)) x)
7.8b
(*.f64 (/.f64 (*.f64 2 (cosh.f64 x)) x) (/.f64 y z))

series10.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

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

rewrite78.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
643×log-prod_binary64
440×pow-prod-down_binary64
301×pow2_binary64
233×pow-unpow_binary64
215×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify93.0ms (1.8%)

Algorithm
egg-herbie
Rules
920×fma-def_binary64
469×associate-/l*_binary64
391×*-commutative_binary64
389×associate-*l/_binary64
361×times-frac_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
044866
1119862
2302858
3782806
41890796
54186796
65351796
76454796
Stop Event
node limit
Counts
166 → 137
Calls
Call 1
Inputs
(*.f64 2 (/.f64 y (*.f64 z x)))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 2 (/.f64 y (*.f64 z x))))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 1/12 (/.f64 (*.f64 y (pow.f64 x 3)) z)) (*.f64 2 (/.f64 y (*.f64 z x)))))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 1/360 (/.f64 (*.f64 y (pow.f64 x 5)) z)) (+.f64 (*.f64 1/12 (/.f64 (*.f64 y (pow.f64 x 3)) z)) (*.f64 2 (/.f64 y (*.f64 z x))))))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 2 x)
(+.f64 (*.f64 2 (/.f64 1 x)) x)
(+.f64 (*.f64 1/12 (pow.f64 x 3)) (+.f64 (*.f64 2 (/.f64 1 x)) x))
(+.f64 (*.f64 1/12 (pow.f64 x 3)) (+.f64 (*.f64 2 (/.f64 1 x)) (+.f64 x (*.f64 1/360 (pow.f64 x 5)))))
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
Outputs
(*.f64 2 (/.f64 y (*.f64 z x)))
(/.f64 (*.f64 2 y) (*.f64 z x))
(*.f64 (/.f64 y x) (/.f64 2 z))
(/.f64 y (*.f64 z (/.f64 x 2)))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 2 (/.f64 y (*.f64 z x))))
(+.f64 (*.f64 2 (/.f64 y (*.f64 z x))) (/.f64 y (/.f64 z x)))
(fma.f64 2 (/.f64 y (*.f64 z x)) (/.f64 y (/.f64 z x)))
(fma.f64 (/.f64 2 x) (/.f64 y z) (*.f64 (/.f64 x z) y))
(*.f64 (/.f64 y z) (+.f64 x (/.f64 2 x)))
(*.f64 (+.f64 x (/.f64 2 x)) (/.f64 y z))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 1/12 (/.f64 (*.f64 y (pow.f64 x 3)) z)) (*.f64 2 (/.f64 y (*.f64 z x)))))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 1/12 (/.f64 (*.f64 y (pow.f64 x 3)) z) (*.f64 2 (/.f64 y (*.f64 z x)))))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 1/12 (*.f64 (/.f64 y z) (pow.f64 x 3)) (/.f64 (*.f64 2 y) (*.f64 z x))))
(fma.f64 1/12 (/.f64 y (/.f64 z (pow.f64 x 3))) (fma.f64 (/.f64 2 x) (/.f64 y z) (*.f64 (/.f64 x z) y)))
(fma.f64 2 (/.f64 y (*.f64 z x)) (*.f64 (/.f64 y z) (fma.f64 1/12 (pow.f64 x 3) x)))
(*.f64 (/.f64 y z) (+.f64 x (fma.f64 1/12 (pow.f64 x 3) (/.f64 2 x))))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 1/360 (/.f64 (*.f64 y (pow.f64 x 5)) z)) (+.f64 (*.f64 1/12 (/.f64 (*.f64 y (pow.f64 x 3)) z)) (*.f64 2 (/.f64 y (*.f64 z x))))))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 1/360 (/.f64 y (/.f64 z (pow.f64 x 5))) (fma.f64 1/12 (/.f64 (*.f64 y (pow.f64 x 3)) z) (*.f64 2 (/.f64 y (*.f64 z x))))))
(+.f64 (/.f64 y (/.f64 z x)) (fma.f64 1/360 (/.f64 (pow.f64 x 5) (/.f64 z y)) (fma.f64 1/12 (*.f64 (/.f64 y z) (pow.f64 x 3)) (/.f64 (*.f64 2 y) (*.f64 z x)))))
(fma.f64 1/360 (*.f64 (/.f64 (pow.f64 x 5) z) y) (fma.f64 1/12 (/.f64 y (/.f64 z (pow.f64 x 3))) (fma.f64 (/.f64 2 x) (/.f64 y z) (*.f64 (/.f64 x z) y))))
(+.f64 (*.f64 (/.f64 y z) (fma.f64 1/12 (pow.f64 x 3) x)) (*.f64 (/.f64 y z) (fma.f64 1/360 (pow.f64 x 5) (/.f64 2 x))))
(*.f64 (/.f64 y z) (+.f64 x (fma.f64 1/12 (pow.f64 x 3) (fma.f64 1/360 (pow.f64 x 5) (/.f64 2 x)))))
(*.f64 (/.f64 y z) (+.f64 (fma.f64 1/360 (pow.f64 x 5) x) (fma.f64 1/12 (pow.f64 x 3) (/.f64 2 x))))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.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))) x) (/.f64 y z))
(*.f64 (/.f64 y (*.f64 z x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 2 x)
(+.f64 (*.f64 2 (/.f64 1 x)) x)
(+.f64 x (/.f64 2 x))
(+.f64 (*.f64 1/12 (pow.f64 x 3)) (+.f64 (*.f64 2 (/.f64 1 x)) x))
(fma.f64 1/12 (pow.f64 x 3) (+.f64 x (/.f64 2 x)))
(+.f64 x (fma.f64 1/12 (pow.f64 x 3) (/.f64 2 x)))
(+.f64 (/.f64 2 x) (fma.f64 1/12 (pow.f64 x 3) x))
(+.f64 (*.f64 1/12 (pow.f64 x 3)) (+.f64 (*.f64 2 (/.f64 1 x)) (+.f64 x (*.f64 1/360 (pow.f64 x 5)))))
(fma.f64 1/12 (pow.f64 x 3) (+.f64 (/.f64 2 x) (+.f64 x (*.f64 1/360 (pow.f64 x 5)))))
(+.f64 (fma.f64 1/360 (pow.f64 x 5) x) (fma.f64 1/12 (pow.f64 x 3) (/.f64 2 x)))
(+.f64 (/.f64 2 x) (fma.f64 1/12 (pow.f64 x 3) (fma.f64 1/360 (pow.f64 x 5) x)))
(+.f64 x (fma.f64 1/12 (pow.f64 x 3) (fma.f64 1/360 (pow.f64 x 5) (/.f64 2 x))))
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)
(/.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) x)
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x)

prune482.0ms (9.4%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New1765181
Fresh437
Picked101
Done011
Total1819190
Error
0b
Counts
190 → 9
Alt Table
StatusErrorProgram
7.8b
(*.f64 1/2 (/.f64 (*.f64 (/.f64 y z) 2) (/.f64 x (cosh.f64 x))))
8.6b
(*.f64 1/2 (/.f64 2 (*.f64 (/.f64 z y) (/.f64 x (cosh.f64 x)))))
9.6b
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
8.2b
(*.f64 1/2 (*.f64 (*.f64 (/.f64 (sqrt.f64 (*.f64 2 (cosh.f64 x))) 1) (/.f64 (sqrt.f64 (*.f64 2 (cosh.f64 x))) x)) (/.f64 y z)))
6.3b
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
36.0b
(/.f64 (/.f64 (/.f64 (*.f64 (cosh.f64 x) y) (sqrt.f64 x)) (sqrt.f64 x)) z)
6.8b
(*.f64 1/2 (/.f64 (*.f64 2 (cosh.f64 x)) (/.f64 (*.f64 x z) y)))
6.3b
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x)))
9.5b
(/.f64 (/.f64 (cosh.f64 x) (/.f64 x y)) z)
Compiler

Compiled 3179 to 1838 computations (42.2% saved)

localize9.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x)))
0.0b
(/.f64 y (exp.f64 x))
6.0b
(/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x))

series17.0ms (0.3%)

Counts
3 → 64
Calls

21 calls:

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

rewrite73.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
550×log-prod_binary64
423×exp-prod_binary64
329×pow-prod-down_binary64
262×pow2_binary64
247×prod-diff_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify58.0ms (1.1%)

Algorithm
egg-herbie
Rules
688×fma-def_binary64
398×unsub-neg_binary64
386×times-frac_binary64
333×distribute-neg-in_binary64
272×sub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0821170
12741123
21011997
35438978
Stop Event
node limit
Counts
202 → 166
Calls
Call 1
Inputs
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(*.f64 -1 (/.f64 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))) (*.f64 z x)))
(*.f64 -1 (/.f64 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))) (*.f64 z x)))
(*.f64 -1 (/.f64 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))) (*.f64 z x)))
(*.f64 -1 (/.f64 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))) (*.f64 z x)))
(*.f64 2 (/.f64 y (*.f64 z x)))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 2 (/.f64 y (*.f64 z x))))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 (*.f64 -1/2 y) (*.f64 -1 (+.f64 (*.f64 1/2 y) (*.f64 -1 y)))) (pow.f64 x 2)) z)) (*.f64 2 (/.f64 y (*.f64 z x)))))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 (*.f64 -1/6 y) (+.f64 (*.f64 -1 (+.f64 (*.f64 -1/2 y) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/2 y) (*.f64 -1 y))) (*.f64 1/6 y)))) (*.f64 -1/2 (+.f64 (*.f64 1/2 y) (*.f64 -1 y))))) (pow.f64 x 3)) z)) (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 (*.f64 -1/2 y) (*.f64 -1 (+.f64 (*.f64 1/2 y) (*.f64 -1 y)))) (pow.f64 x 2)) z)) (*.f64 2 (/.f64 y (*.f64 z x))))))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
y
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 1/2 y) (*.f64 -1 y)))) (+.f64 y (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 1/2 y) (*.f64 -1 y)))) (+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 y) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/2 y) (*.f64 -1 y))) (*.f64 1/6 y))) (pow.f64 x 3))))))
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))))
(*.f64 2 y)
(+.f64 (*.f64 2 y) (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 y) (*.f64 -1 (+.f64 (*.f64 1/2 y) (*.f64 -1 y)))) (pow.f64 x 3))) (+.f64 (*.f64 2 y) (*.f64 y (pow.f64 x 2))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 y) (*.f64 -1 (+.f64 (*.f64 1/2 y) (*.f64 -1 y)))) (pow.f64 x 3))) (+.f64 (*.f64 2 y) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1/6 y) (+.f64 (*.f64 -1 (+.f64 (*.f64 -1/2 y) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/2 y) (*.f64 -1 y))) (*.f64 1/6 y)))) (*.f64 -1/2 (+.f64 (*.f64 1/2 y) (*.f64 -1 y))))) (pow.f64 x 4))) (*.f64 y (pow.f64 x 2)))))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
Outputs
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(*.f64 -1 (/.f64 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))) (*.f64 z x)))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(*.f64 -1 (/.f64 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))) (*.f64 z x)))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(*.f64 -1 (/.f64 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))) (*.f64 z x)))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(*.f64 -1 (/.f64 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))) (*.f64 z x)))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(*.f64 2 (/.f64 y (*.f64 z x)))
(*.f64 2 (/.f64 y (*.f64 x z)))
(/.f64 y (/.f64 x (/.f64 2 z)))
(+.f64 (/.f64 (*.f64 y x) z) (*.f64 2 (/.f64 y (*.f64 z x))))
(+.f64 (*.f64 2 (/.f64 y (*.f64 x z))) (/.f64 (*.f64 x y) z))
(fma.f64 2 (/.f64 y (*.f64 x z)) (/.f64 (*.f64 x y) z))
(*.f64 (/.f64 y z) (+.f64 x (/.f64 2 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 (*.f64 -1/2 y) (*.f64 -1 (+.f64 (*.f64 1/2 y) (*.f64 -1 y)))) (pow.f64 x 2)) z)) (*.f64 2 (/.f64 y (*.f64 z x)))))
(+.f64 (*.f64 2 (/.f64 y (*.f64 x z))) (/.f64 (*.f64 x y) z))
(fma.f64 2 (/.f64 y (*.f64 x z)) (/.f64 (*.f64 x y) z))
(*.f64 (/.f64 y z) (+.f64 x (/.f64 2 x)))
(+.f64 (/.f64 (*.f64 y x) z) (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 (*.f64 -1/6 y) (+.f64 (*.f64 -1 (+.f64 (*.f64 -1/2 y) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/2 y) (*.f64 -1 y))) (*.f64 1/6 y)))) (*.f64 -1/2 (+.f64 (*.f64 1/2 y) (*.f64 -1 y))))) (pow.f64 x 3)) z)) (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 (*.f64 -1/2 y) (*.f64 -1 (+.f64 (*.f64 1/2 y) (*.f64 -1 y)))) (pow.f64 x 2)) z)) (*.f64 2 (/.f64 y (*.f64 z x))))))
(+.f64 (/.f64 (*.f64 x y) z) (fma.f64 -1 (/.f64 (fma.f64 -1/6 y (fma.f64 -1 (fma.f64 -1/2 y (fma.f64 -1 (*.f64 y -1/2) (*.f64 y 1/6))) (*.f64 -1/2 (*.f64 y -1/2)))) (/.f64 z (pow.f64 x 3))) (fma.f64 -1 (/.f64 (fma.f64 -1/2 y (neg.f64 (*.f64 y -1/2))) (/.f64 z (*.f64 x x))) (*.f64 2 (/.f64 y (*.f64 x z))))))
(+.f64 (/.f64 (*.f64 x y) z) (-.f64 (fma.f64 2 (/.f64 y (*.f64 x z)) (*.f64 (/.f64 (*.f64 0 (*.f64 y -1/2)) z) (*.f64 x x))) (/.f64 (fma.f64 y -1/6 (-.f64 (*.f64 y 1/4) (fma.f64 y -1/2 (fma.f64 y 1/6 (*.f64 y 1/2))))) (/.f64 z (pow.f64 x 3)))))
(-.f64 (fma.f64 (/.f64 0 z) (*.f64 x x) (*.f64 (/.f64 y z) (+.f64 x (/.f64 2 x)))) (*.f64 (/.f64 (pow.f64 x 3) z) (fma.f64 y -1/6 (*.f64 y 1/12))))
(-.f64 (*.f64 (/.f64 y z) (+.f64 x (/.f64 2 x))) (*.f64 (/.f64 (pow.f64 x 3) z) (fma.f64 y -1/6 (*.f64 y 1/12))))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
(/.f64 (+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x))) (*.f64 z x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 x z) y))
(*.f64 (/.f64 y z) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x))) (*.f64 x z))
y
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 (neg.f64 y) x))
(-.f64 y (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 1/2 y) (*.f64 -1 y)))) (+.f64 y (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 (*.f64 y -1/2) (*.f64 x x)) (+.f64 y (*.f64 (neg.f64 y) x)))
(-.f64 (-.f64 y (*.f64 x y)) (*.f64 x (*.f64 x (*.f64 y -1/2))))
(-.f64 (fma.f64 x (*.f64 y (*.f64 1/2 x)) y) (*.f64 x y))
(+.f64 y (*.f64 x (-.f64 (*.f64 y (*.f64 1/2 x)) y)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 1/2 y) (*.f64 -1 y)))) (+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 y) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/2 y) (*.f64 -1 y))) (*.f64 1/6 y))) (pow.f64 x 3))))))
(fma.f64 -1 (*.f64 (*.f64 y -1/2) (*.f64 x x)) (+.f64 y (*.f64 -1 (+.f64 (*.f64 x y) (*.f64 (fma.f64 -1/2 y (fma.f64 -1 (*.f64 y -1/2) (*.f64 y 1/6))) (pow.f64 x 3))))))
(+.f64 (*.f64 y (*.f64 1/2 (*.f64 x x))) (fma.f64 -1 (fma.f64 x y (*.f64 (fma.f64 y -1/2 (fma.f64 y 1/6 (*.f64 y 1/2))) (pow.f64 x 3))) y))
(fma.f64 x (*.f64 y (*.f64 1/2 x)) (-.f64 (fma.f64 (*.f64 y -1/6) (pow.f64 x 3) y) (*.f64 x y)))
(+.f64 (fma.f64 (*.f64 y -1/6) (pow.f64 x 3) y) (*.f64 x (-.f64 (*.f64 y (*.f64 1/2 x)) y)))
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y)
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))))
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))))
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))))
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (exp.f64 x)) (/.f64 1 (exp.f64 x)))))
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(*.f64 2 y)
(*.f64 y 2)
(+.f64 (*.f64 2 y) (*.f64 y (pow.f64 x 2)))
(fma.f64 2 y (*.f64 y (*.f64 x x)))
(*.f64 y (+.f64 (*.f64 x x) 2))
(*.f64 y (fma.f64 x x 2))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 y) (*.f64 -1 (+.f64 (*.f64 1/2 y) (*.f64 -1 y)))) (pow.f64 x 3))) (+.f64 (*.f64 2 y) (*.f64 y (pow.f64 x 2))))
(fma.f64 2 y (*.f64 y (*.f64 x x)))
(*.f64 y (+.f64 (*.f64 x x) 2))
(*.f64 y (fma.f64 x x 2))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 y) (*.f64 -1 (+.f64 (*.f64 1/2 y) (*.f64 -1 y)))) (pow.f64 x 3))) (+.f64 (*.f64 2 y) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1/6 y) (+.f64 (*.f64 -1 (+.f64 (*.f64 -1/2 y) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/2 y) (*.f64 -1 y))) (*.f64 1/6 y)))) (*.f64 -1/2 (+.f64 (*.f64 1/2 y) (*.f64 -1 y))))) (pow.f64 x 4))) (*.f64 y (pow.f64 x 2)))))
(fma.f64 -1 (*.f64 (fma.f64 -1/2 y (neg.f64 (*.f64 y -1/2))) (pow.f64 x 3)) (fma.f64 2 y (fma.f64 -1 (*.f64 (fma.f64 -1/6 y (fma.f64 -1 (fma.f64 -1/2 y (fma.f64 -1 (*.f64 y -1/2) (*.f64 y 1/6))) (*.f64 -1/2 (*.f64 y -1/2)))) (pow.f64 x 4)) (*.f64 y (*.f64 x x)))))
(fma.f64 (*.f64 0 (*.f64 y -1/2)) (pow.f64 x 3) (fma.f64 y 2 (-.f64 (*.f64 x (*.f64 x y)) (*.f64 (fma.f64 y -1/6 (-.f64 (*.f64 y 1/4) (fma.f64 y -1/2 (fma.f64 y 1/6 (*.f64 y 1/2))))) (pow.f64 x 4)))))
(-.f64 (fma.f64 y (fma.f64 x x 2) (*.f64 0 (pow.f64 x 3))) (*.f64 (fma.f64 y -1/6 (*.f64 y 1/12)) (pow.f64 x 4)))
(fma.f64 (pow.f64 x 4) (-.f64 (*.f64 y 1/6) (*.f64 y 1/12)) (*.f64 y (fma.f64 x x 2)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))
(+.f64 (*.f64 y (exp.f64 x)) (/.f64 y (exp.f64 x)))
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) y)
(fma.f64 (exp.f64 x) y (/.f64 y (exp.f64 x)))

prune303.0ms (5.9%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New1642166
Fresh257
Picked011
Done011
Total1669175
Error
0b
Counts
175 → 9
Alt Table
StatusErrorProgram
7.8b
(*.f64 1/2 (/.f64 (*.f64 (/.f64 y z) 2) (/.f64 x (cosh.f64 x))))
8.6b
(*.f64 1/2 (/.f64 2 (*.f64 (/.f64 z y) (/.f64 x (cosh.f64 x)))))
9.5b
(/.f64 (/.f64 (cosh.f64 x) (/.f64 x y)) z)
7.6b
(*.f64 1/2 (*.f64 (pow.f64 x -1) (/.f64 (*.f64 y (*.f64 2 (cosh.f64 x))) z)))
8.2b
(*.f64 1/2 (*.f64 (*.f64 (/.f64 (sqrt.f64 (*.f64 2 (cosh.f64 x))) 1) (/.f64 (sqrt.f64 (*.f64 2 (cosh.f64 x))) x)) (/.f64 y z)))
6.6b
(*.f64 1/2 (*.f64 (/.f64 (pow.f64 x -1) z) (*.f64 y (*.f64 2 (cosh.f64 x)))))
6.3b
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
36.0b
(/.f64 (/.f64 (/.f64 (*.f64 (cosh.f64 x) y) (sqrt.f64 x)) (sqrt.f64 x)) z)
6.3b
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x)))
Compiler

Compiled 3403 to 1854 computations (45.5% saved)

regimes161.0ms (3.1%)

Accuracy

Total -55.6b remaining (-23507.3%)

Threshold costs -55.6b (-23507.3%)

Counts
20 → 3
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 (pow.f64 x -1) (/.f64 (*.f64 y (*.f64 2 (cosh.f64 x))) z)))
(*.f64 1/2 (*.f64 (/.f64 (pow.f64 x -1) z) (*.f64 y (*.f64 2 (cosh.f64 x)))))
(*.f64 1/2 (/.f64 (*.f64 (/.f64 y z) 2) (/.f64 x (cosh.f64 x))))
(*.f64 1/2 (/.f64 2 (*.f64 (/.f64 z y) (/.f64 x (cosh.f64 x)))))
(*.f64 1/2 (*.f64 (*.f64 (/.f64 (sqrt.f64 (*.f64 2 (cosh.f64 x))) 1) (/.f64 (sqrt.f64 (*.f64 2 (cosh.f64 x))) x)) (/.f64 y z)))
(*.f64 1/2 (/.f64 (*.f64 2 (cosh.f64 x)) (/.f64 (*.f64 x z) y)))
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x)))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 2 (cosh.f64 x)) x) (/.f64 y z)))
(*.f64 1/2 (pow.f64 (*.f64 (/.f64 x (*.f64 2 (cosh.f64 x))) (/.f64 z y)) -1))
(*.f64 (/.f64 (/.f64 y x) (sqrt.f64 z)) (/.f64 (cosh.f64 x) (sqrt.f64 z)))
(*.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)))
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(/.f64 (/.f64 (/.f64 (*.f64 (cosh.f64 x) y) (sqrt.f64 x)) (sqrt.f64 x)) z)
(pow.f64 (*.f64 (/.f64 x y) (/.f64 z (cosh.f64 x))) -1)
(*.f64 (/.f64 (cosh.f64 x) z) (/.f64 y x))
(/.f64 (/.f64 (cosh.f64 x) (/.f64 x y)) z)
(*.f64 y (/.f64 (fma.f64 1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (*.f64 z 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))))
(*.f64 (cosh.f64 x) (/.f64 (/.f64 y x) z))
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
Outputs
(*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x)))
(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
(*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x)))
Results
20.0ms4.5bx
28.0ms0.2by
28.0ms0.2bz
26.0ms0.3b(/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z)
25.0ms0.2b(*.f64 (cosh.f64 x) (/.f64 y x))
26.0ms0.2b(*.f64 (cosh.f64 x) (/.f64 y x))
Compiler

Compiled 306 to 152 computations (50.3% saved)

bsearch28.0ms (0.6%)

Algorithm
binary-search
Calls

2 calls:

21.0ms
y
7.0ms
y
Steps
ItersPointRange
2.506332563062992e-147
∈ [
2.506332563062992e-147
,
3.441026342727036e-140
]
-1e+32
∈ [
-3.990162939266597e+33
,
-1.5969235007472322e+29
]
Compiler

Compiled 48 to 33 computations (31.3% saved)

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02868
13668
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 y -100000000000000005366162204393472) (*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))) (if (<=.f64 y 144329909013464320/57586096570152913699974892898380567793532123114264532903689671329431521032595044740083720782129802971518987656109067457577065805510327036019308994315074097345724416) (/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z) (*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x)))))
Outputs
(if (<=.f64 y -100000000000000005366162204393472) (*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1 (exp.f64 x)) (exp.f64 x)) y) (*.f64 z x))) (if (<=.f64 y 144329909013464320/57586096570152913699974892898380567793532123114264532903689671329431521032595044740083720782129802971518987656109067457577065805510327036019308994315074097345724416) (/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z) (*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 z x)))))
(if (<=.f64 y -100000000000000005366162204393472) (*.f64 1/2 (/.f64 (*.f64 y (+.f64 (exp.f64 x) (/.f64 1 (exp.f64 x)))) (*.f64 x z))) (if (<=.f64 y 563788707083845/224945689727159819140526925384299092943484855915095831655037778630591879033574393515952034305194542857496045531676044756160413302774714984450425759043258192756736) (/.f64 (*.f64 (cosh.f64 x) (/.f64 y x)) z) (*.f64 1/2 (/.f64 (fma.f64 y (exp.f64 x) (/.f64 y (exp.f64 x))) (*.f64 x z)))))

end27.0ms (0.5%)

Stop Event
fuel
Compiler

Compiled 96 to 54 computations (43.8% saved)

Profiling

Loading profile data...