
Time bar (total: 11.6s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 0 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 1 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 2 |
| 50% | 50% | 50% | 0% | 0% | 0% | 0% | 3 |
| 50% | 50% | 50% | 0% | 0% | 0% | 0% | 4 |
| 50% | 50% | 50% | 0% | 0% | 0% | 0% | 5 |
| 50% | 50% | 50% | 0% | 0% | 0% | 0% | 6 |
| 50% | 50% | 50% | 0% | 0% | 0% | 0% | 7 |
| 50% | 50% | 50% | 0% | 0% | 0% | 0% | 8 |
| 50% | 50% | 50% | 0% | 0% | 0% | 0% | 9 |
| 50% | 50% | 50% | 0% | 0% | 0% | 0% | 10 |
| 50% | 50% | 50% | 0% | 0% | 0% | 0% | 11 |
| 50% | 50% | 50% | 0% | 0% | 0% | 0% | 12 |
Compiled 12 to 10 computations (16.7% saved)
| 2.2s | 1 615× | 5 | exit |
| 1.5s | 2 767× | 2 | valid |
| 989.0ms | 3 483× | 1 | valid |
| 422.0ms | 3 265× | 0 | invalid |
| 300.0ms | 2 006× | 0 | valid |
ival-cos: 1.9s (40.2% of total)ival-fmod: 1.1s (22.6% of total)ival-exp: 763.0ms (15.8% of total)adjust: 414.0ms (8.6% of total)ival-sqrt: 343.0ms (7.1% of total)ival-mult: 173.0ms (3.6% of total)ival-neg: 85.0ms (1.8% of total)ival-true: 10.0ms (0.2% of total)ival-assert: 5.0ms (0.1% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 201 | 0 | - | 201 | (-6.812622606160521e-196) | (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
| 0 | 0 | - | 0 | - | (sqrt.f64 (cos.f64 x)) |
| 0 | 0 | - | 0 | - | (cos.f64 x) |
| 0 | 0 | - | 0 | - | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| 0 | 0 | - | 0 | - | (exp.f64 x) |
| 0 | 0 | - | 0 | - | (exp.f64 (neg.f64 x)) |
| 0 | 0 | - | 0 | - | (neg.f64 x) |
| 0 | 0 | - | 0 | - | x |
| Predicted + | Predicted - | |
|---|---|---|
| + | 0 | 247 |
| - | 0 | 9 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 0 | 0 | 247 |
| - | 0 | 0 | 9 |
| number | freq |
|---|---|
| 0 | 256 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 0 | 0 | 1 |
| - | 0 | 0 | 0 |
| 479.0ms | 92× | 5 | exit |
| 70.0ms | 160× | 2 | valid |
| 60.0ms | 238× | 1 | valid |
| 3.0ms | 22× | 0 | valid |
Compiled 72 to 28 computations (61.1% saved)
ival-cos: 431.0ms (74.6% of total)ival-exp: 49.0ms (8.5% of total)ival-fmod: 46.0ms (8% of total)adjust: 20.0ms (3.5% of total)ival-sqrt: 19.0ms (3.3% of total)ival-mult: 8.0ms (1.4% of total)ival-neg: 4.0ms (0.7% of total)ival-true: 1.0ms (0.2% of total)ival-assert: 0.0ms (0% of total)| 1× | egg-herbie |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 21 |
| 1 | 39 | 21 |
| 2 | 86 | 21 |
| 3 | 303 | 21 |
| 4 | 1850 | 21 |
| 0 | 8 | 10 |
| 0 | 15 | 10 |
| 1 | 31 | 10 |
| 2 | 60 | 9 |
| 3 | 167 | 9 |
| 4 | 769 | 9 |
| 0 | 8458 | 9 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| Outputs |
|---|
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
Compiled 10 to 8 computations (20% saved)
Compiled 0 to 1 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 8.3% | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
Compiled 10 to 8 computations (20% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (sqrt.f64 (cos.f64 x)) | |
| cost-diff | 0 | (exp.f64 x) | |
| cost-diff | 0 | (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) | |
| cost-diff | 1 | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 29 |
| 0 | 15 | 29 |
| 1 | 31 | 29 |
| 2 | 60 | 28 |
| 3 | 167 | 28 |
| 4 | 769 | 28 |
| 0 | 8458 | 28 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(exp.f64 x) |
x |
(sqrt.f64 (cos.f64 x)) |
(cos.f64 x) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
| Outputs |
|---|
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(exp.f64 x) |
x |
(sqrt.f64 (cos.f64 x)) |
(cos.f64 x) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (cos.f64 x) | |
| accuracy | 0.00390625 | (sqrt.f64 (cos.f64 x)) | |
| accuracy | 0.01953125 | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) | |
| accuracy | 47.18576017150156 | (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
| 267.0ms | 46× | 5 | exit |
| 47.0ms | 119× | 1 | valid |
| 34.0ms | 80× | 2 | valid |
| 1.0ms | 11× | 0 | valid |
Compiled 31 to 10 computations (67.7% saved)
ival-cos: 248.0ms (78.9% of total)ival-exp: 22.0ms (7% of total)ival-fmod: 19.0ms (6% of total)adjust: 10.0ms (3.2% of total)ival-sqrt: 8.0ms (2.5% of total)ival-mult: 6.0ms (1.9% of total)ival-neg: 2.0ms (0.6% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| Inputs |
|---|
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(exp.f64 x) |
(sqrt.f64 (cos.f64 x)) |
(cos.f64 x) |
| Outputs |
|---|
(fmod (exp x) (sqrt (cos x))) |
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
1 |
(+ 1 x) |
(+ 1 (* x (+ 1 (* 1/2 x)))) |
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x)))))) |
(+ 1 (* -1/4 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4))) |
(+ 1 (* -1/2 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) |
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x)))) |
(exp x) |
(sqrt (cos x)) |
(cos x) |
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x)))) |
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | 0 | ((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (cos x)) |
| 1.0ms | x | @ | inf | ((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (cos x)) |
| 1.0ms | x | @ | -inf | ((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (cos x)) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 76 | 218 |
| 1 | 225 | 197 |
| 2 | 690 | 191 |
| 3 | 2473 | 181 |
| 4 | 6178 | 181 |
| 0 | 8118 | 161 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(fmod (exp x) (sqrt (cos x))) |
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
1 |
(+ 1 x) |
(+ 1 (* x (+ 1 (* 1/2 x)))) |
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x)))))) |
(+ 1 (* -1/4 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4))) |
(+ 1 (* -1/2 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) |
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x)))) |
(exp x) |
(sqrt (cos x)) |
(cos x) |
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x)))) |
| Outputs |
|---|
(fmod (exp x) (sqrt (cos x))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal -1 binary64)) x #s(literal 1 binary64))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (*.f64 x x) (-.f64 #s(literal 1 binary64) x))) |
1 |
#s(literal 1 binary64) |
(+ 1 x) |
(+.f64 #s(literal 1 binary64) x) |
(+ 1 (* x (+ 1 (* 1/2 x)))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x)))))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
(+ 1 (* -1/4 (pow x 2))) |
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)) |
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4))) |
(fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4))) |
(fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(+ 1 (* -1/2 (pow x 2))) |
(fma.f64 (*.f64 #s(literal -1/2 binary64) x) x #s(literal 1 binary64)) |
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x)))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
(exp x) |
(exp.f64 x) |
(sqrt (cos x)) |
(sqrt.f64 (cos.f64 x)) |
(cos x) |
(cos.f64 x) |
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x)))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 23 |
| 0 | 15 | 23 |
| 1 | 33 | 23 |
| 2 | 140 | 22 |
| 0 | 1064 | 22 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(exp.f64 x) |
(sqrt.f64 (cos.f64 x)) |
(cos.f64 x) |
| Outputs |
|---|
(*.f64 (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(literal 1 binary64)) (exp.f64 (neg.f64 x))) |
(*.f64 (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (pow.f64 (cosh.f64 x) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) |
(*.f64 #s(literal 1 binary64) (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))) |
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 (-.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (pow.f64 (sinh.f64 x) #s(literal 3 binary64))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (fma.f64 (sinh.f64 x) (exp.f64 x) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) |
(/.f64 (*.f64 (+.f64 (neg.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64))) (pow.f64 (cosh.f64 x) #s(literal 3 binary64))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (fma.f64 (sinh.f64 (neg.f64 x)) (-.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) |
(/.f64 (*.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (neg.f64 (exp.f64 x))) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (pow.f64 (sinh.f64 x) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 x) (exp.f64 x) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64))) (pow.f64 (cosh.f64 x) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 (neg.f64 x)) (-.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(literal -1 binary64)) (neg.f64 (exp.f64 x))) |
(/.f64 (neg.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (neg.f64 (exp.f64 x))) |
(/.f64 (-.f64 (*.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) (*.f64 (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))) (-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 3 binary64)) (pow.f64 (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 3 binary64))) (fma.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (-.f64 (*.f64 (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) (*.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
(fma.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(fma.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (sinh.f64 (neg.f64 x)) (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(fma.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (neg.f64 (sinh.f64 (neg.f64 x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (neg.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (sinh.f64 (neg.f64 x)))) |
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(+.f64 (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(literal 1 binary64)) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(*.f64 (/.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (pow.f64 (sinh.f64 x) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 x) (exp.f64 x) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) |
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 (neg.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64))) (pow.f64 (cosh.f64 x) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 (neg.f64 x)) (-.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) |
(*.f64 #s(literal -1 binary64) (neg.f64 (exp.f64 x))) |
(*.f64 #s(literal 1 binary64) (exp.f64 x)) |
(/.f64 (-.f64 (pow.f64 (sinh.f64 x) #s(literal 2 binary64)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))) (-.f64 (sinh.f64 x) (cosh.f64 x))) |
(/.f64 (-.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (neg.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)))) (fma.f64 (cosh.f64 x) (cosh.f64 x) (fma.f64 (sinh.f64 x) (sinh.f64 x) (*.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x))))) |
(/.f64 (fma.f64 #s(literal 2 binary64) (sinh.f64 x) (*.f64 #s(literal 2 binary64) (cosh.f64 x))) #s(literal 2 binary64)) |
(/.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 x) (*.f64 #s(literal 2 binary64) (sinh.f64 x))) #s(literal 2 binary64)) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (pow.f64 (cosh.f64 x) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))) |
(/.f64 (-.f64 (*.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 x)) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 x))))) #s(literal 4 binary64)) |
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 x)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 x)))) #s(literal 4 binary64)) |
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 x)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 x)))) #s(literal 4 binary64)) |
(/.f64 (-.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 x)) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 x)))) #s(literal 2 binary64)) |
(/.f64 (+.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (pow.f64 (cosh.f64 x) #s(literal 3 binary64))) (fma.f64 (sinh.f64 x) (sinh.f64 x) (-.f64 (pow.f64 (cosh.f64 x) #s(literal 2 binary64)) (*.f64 (sinh.f64 x) (cosh.f64 x))))) |
(/.f64 (+.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (pow.f64 (cosh.f64 x) #s(literal 3 binary64))) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) |
(/.f64 #s(literal -1 binary64) (neg.f64 (exp.f64 (neg.f64 x)))) |
(/.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 x))) |
(-.f64 (/.f64 (pow.f64 (cosh.f64 x) #s(literal 2 binary64)) (exp.f64 (neg.f64 x))) (/.f64 (pow.f64 (sinh.f64 x) #s(literal 2 binary64)) (exp.f64 (neg.f64 x)))) |
(-.f64 (cosh.f64 x) (sinh.f64 (neg.f64 x))) |
(exp.f64 x) |
(+.f64 (/.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))) |
(+.f64 (sinh.f64 x) (cosh.f64 x)) |
(+.f64 (cosh.f64 x) (sinh.f64 x)) |
(*.f64 (neg.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64))) (neg.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)))) |
(*.f64 (fabs.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64))) (fabs.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)))) |
(*.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)) (pow.f64 (cos.f64 x) #s(literal 1/4 binary64))) |
(pow.f64 (exp.f64 (log.f64 (cos.f64 x))) #s(literal 1/2 binary64)) |
(pow.f64 (*.f64 (cos.f64 x) (cos.f64 x)) #s(literal 1/4 binary64)) |
(pow.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)) #s(literal 2 binary64)) |
(pow.f64 (cos.f64 x) #s(literal 1/2 binary64)) |
(sqrt.f64 (cos.f64 x)) |
(exp.f64 (*.f64 (log.f64 (cos.f64 x)) #s(literal 1/2 binary64))) |
(+.f64 (cosh.f64 (*.f64 (log.f64 (cos.f64 x)) #s(literal 1/2 binary64))) (sinh.f64 (*.f64 (log.f64 (cos.f64 x)) #s(literal 1/2 binary64)))) |
(/.f64 (-.f64 (*.f64 (*.f64 (sin.f64 x) #s(literal 0 binary64)) (*.f64 (sin.f64 x) #s(literal 0 binary64))) (*.f64 (*.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 #s(literal 1 binary64) (cos.f64 x)))) (-.f64 (*.f64 (sin.f64 x) #s(literal 0 binary64)) (*.f64 #s(literal 1 binary64) (cos.f64 x)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (sin.f64 x) #s(literal 0 binary64)) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal 1 binary64) (cos.f64 x)) #s(literal 3 binary64))) (fma.f64 (*.f64 (sin.f64 x) #s(literal 0 binary64)) (*.f64 (sin.f64 x) #s(literal 0 binary64)) (-.f64 (*.f64 (*.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 #s(literal 1 binary64) (cos.f64 x))) (*.f64 (*.f64 (sin.f64 x) #s(literal 0 binary64)) (*.f64 #s(literal 1 binary64) (cos.f64 x)))))) |
(fma.f64 (sin.f64 (neg.f64 x)) #s(literal 0 binary64) (*.f64 #s(literal 1 binary64) (cos.f64 x))) |
(fma.f64 (sin.f64 x) #s(literal 0 binary64) (*.f64 #s(literal 1 binary64) (cos.f64 x))) |
(fma.f64 #s(literal 0 binary64) (sin.f64 x) (*.f64 #s(literal 1 binary64) (cos.f64 x))) |
(fma.f64 #s(literal 1 binary64) (cos.f64 x) (*.f64 (sin.f64 x) #s(literal 0 binary64))) |
(fma.f64 (cos.f64 x) #s(literal 1 binary64) (*.f64 (sin.f64 x) #s(literal 0 binary64))) |
(sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) (neg.f64 x))) |
(sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) x)) |
(-.f64 (*.f64 (sin.f64 x) #s(literal 0 binary64)) (*.f64 (neg.f64 (cos.f64 x)) #s(literal 1 binary64))) |
(cos.f64 (neg.f64 x)) |
(cos.f64 x) |
(+.f64 (*.f64 (sin.f64 (neg.f64 x)) #s(literal 0 binary64)) (*.f64 #s(literal 1 binary64) (cos.f64 x))) |
(+.f64 (*.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 (sin.f64 x) #s(literal 0 binary64))) |
(+.f64 (*.f64 (sin.f64 x) #s(literal 0 binary64)) (*.f64 #s(literal 1 binary64) (cos.f64 x))) |
Compiled 1 886 to 387 computations (79.5% saved)
13 alts after pruning (12 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 81 | 12 | 93 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 81 | 13 | 94 |
| Status | Accuracy | Program |
|---|---|---|
| 8.3% | (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) | |
| 8.3% | (-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) | |
| 8.2% | (*.f64 (fmod.f64 (+.f64 (/.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) | |
| ✓ | 8.3% | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| ▶ | 8.0% | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x))) |
| 8.0% | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| ▶ | 8.0% | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| ▶ | 7.9% | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| 14.8% | (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) | |
| ▶ | 22.0% | (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| ▶ | 6.0% | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
| 7.1% | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (*.f64 x x) (-.f64 #s(literal 1 binary64) x)))) | |
| 6.8% | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
Compiled 524 to 346 computations (34% saved)
| 1× | egg-herbie |
Found 20 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))) | |
| cost-diff | 0 | (exp.f64 x) | |
| cost-diff | 0 | (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) | |
| cost-diff | 1 | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x))) | |
| cost-diff | 0 | #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) | |
| cost-diff | 0 | (exp.f64 x) | |
| cost-diff | 0 | (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) | |
| cost-diff | 1 | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| cost-diff | 0 | #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) | |
| cost-diff | 0 | (exp.f64 x) | |
| cost-diff | 0 | (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) | |
| cost-diff | 1 | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| cost-diff | 0 | (sqrt.f64 (cos.f64 x)) | |
| cost-diff | 0 | (exp.f64 x) | |
| cost-diff | 0 | (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) | |
| cost-diff | 0 | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) | |
| cost-diff | 0 | (sqrt.f64 (cos.f64 x)) | |
| cost-diff | 0 | #s(approx (exp x) #s(literal 1 binary64)) | |
| cost-diff | 0 | (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) | |
| cost-diff | 1 | (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 39 | 312 |
| 0 | 68 | 312 |
| 1 | 112 | 312 |
| 2 | 308 | 307 |
| 3 | 1068 | 307 |
| 4 | 4292 | 307 |
| 0 | 9233 | 307 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) |
#s(approx (exp x) #s(literal 1 binary64)) |
#s(literal 1 binary64) |
(sqrt.f64 (cos.f64 x)) |
(cos.f64 x) |
x |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(exp.f64 x) |
x |
(sqrt.f64 (cos.f64 x)) |
(cos.f64 x) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
(exp.f64 x) |
x |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)) |
(*.f64 x x) |
#s(literal -1/4 binary64) |
#s(literal 1 binary64) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(exp.f64 x) |
x |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) |
#s(literal -1/96 binary64) |
(*.f64 x x) |
#s(literal -1/4 binary64) |
#s(literal 1 binary64) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) |
(exp.f64 x) |
x |
(sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
#s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) |
#s(literal 1/24 binary64) |
(*.f64 x x) |
#s(literal -1/2 binary64) |
#s(literal 1 binary64) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
| Outputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) |
#s(approx (exp x) #s(literal 1 binary64)) |
#s(literal 1 binary64) |
(sqrt.f64 (cos.f64 x)) |
(cos.f64 x) |
x |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(exp.f64 x) |
x |
(sqrt.f64 (cos.f64 x)) |
(cos.f64 x) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
(exp.f64 x) |
x |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)) |
(*.f64 x x) |
#s(literal -1/4 binary64) |
#s(literal 1 binary64) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(exp.f64 x) |
x |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) |
#s(literal -1/96 binary64) |
(*.f64 x x) |
#s(literal -1/4 binary64) |
#s(literal 1 binary64) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x)) |
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) |
(exp.f64 x) |
x |
(sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
#s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) |
#s(literal 1/24 binary64) |
(*.f64 x x) |
#s(literal -1/2 binary64) |
#s(literal 1 binary64) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
Found 20 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.00390625 | (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))) | |
| accuracy | 0.01953125 | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x))) | |
| accuracy | 0.8582283389064518 | #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) | |
| accuracy | 47.18576017150156 | (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) | |
| accuracy | 0.0078125 | (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) | |
| accuracy | 0.01953125 | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| accuracy | 0.9594758528937365 | #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) | |
| accuracy | 47.18576017150156 | (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) | |
| accuracy | 0.0 | (exp.f64 x) | |
| accuracy | 0.01953125 | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| accuracy | 1.0801568606517764 | #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) | |
| accuracy | 47.18576017150156 | (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) | |
| accuracy | 0.0 | (cos.f64 x) | |
| accuracy | 0.00390625 | (sqrt.f64 (cos.f64 x)) | |
| accuracy | 2.0617222293455124 | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) | |
| accuracy | 47.18576017150156 | (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) | |
| accuracy | 0.00390625 | (sqrt.f64 (cos.f64 x)) | |
| accuracy | 0.01953125 | (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) | |
| accuracy | 2.0497261461743768 | #s(approx (exp x) #s(literal 1 binary64)) | |
| accuracy | 47.18576017150156 | (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) |
| 278.0ms | 46× | 5 | exit |
| 60.0ms | 80× | 2 | valid |
| 54.0ms | 119× | 1 | valid |
| 3.0ms | 11× | 0 | valid |
Compiled 203 to 26 computations (87.2% saved)
ival-cos: 203.0ms (58.3% of total)adjust: 36.0ms (10.3% of total)const: 26.0ms (7.5% of total)ival-exp: 22.0ms (6.3% of total)ival-mult: 19.0ms (5.5% of total)ival-fmod: 19.0ms (5.5% of total)ival-add: 13.0ms (3.7% of total)ival-sqrt: 8.0ms (2.3% of total)ival-neg: 2.0ms (0.6% of total)exact: 1.0ms (0.3% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| Inputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) |
#s(approx (exp x) #s(literal 1 binary64)) |
(sqrt.f64 (cos.f64 x)) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(exp.f64 x) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) |
(sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(cos.f64 x) |
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) |
#s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
| Outputs |
|---|
(fmod (exp x) (sqrt (cos x))) |
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
1 |
(+ 1 x) |
(+ 1 (* x (+ 1 (* 1/2 x)))) |
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x)))))) |
(+ 1 (* -1/4 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4))) |
(+ 1 (* -1/2 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) |
-1/4 |
(- (* -1/96 (pow x 2)) 1/4) |
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x)))) |
(exp x) |
(sqrt (cos x)) |
(cos x) |
(* -1/96 (pow x 2)) |
(* -1 (* (pow x 2) (+ 1/96 (* 1/4 (/ 1 (pow x 2)))))) |
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x)))) |
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | inf | ((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (cos x) (+ (* -1/96 (* x x)) -1/4) (cos x)) |
| 1.0ms | x | @ | -inf | ((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (cos x) (+ (* -1/96 (* x x)) -1/4) (cos x)) |
| 1.0ms | x | @ | 0 | ((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (cos x) (+ (* -1/96 (* x x)) -1/4) (cos x)) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 81 | 238 |
| 1 | 248 | 217 |
| 2 | 815 | 211 |
| 3 | 3125 | 201 |
| 0 | 8746 | 181 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(fmod (exp x) (sqrt (cos x))) |
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
1 |
(+ 1 x) |
(+ 1 (* x (+ 1 (* 1/2 x)))) |
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x)))))) |
(+ 1 (* -1/4 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4))) |
(+ 1 (* -1/2 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) |
-1/4 |
(- (* -1/96 (pow x 2)) 1/4) |
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x)))) |
(exp x) |
(sqrt (cos x)) |
(cos x) |
(* -1/96 (pow x 2)) |
(* -1 (* (pow x 2) (+ 1/96 (* 1/4 (/ 1 (pow x 2)))))) |
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x)))) |
| Outputs |
|---|
(fmod (exp x) (sqrt (cos x))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal -1 binary64)) x #s(literal 1 binary64))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (*.f64 x x) (-.f64 #s(literal 1 binary64) x))) |
1 |
#s(literal 1 binary64) |
(+ 1 x) |
(-.f64 x #s(literal -1 binary64)) |
(+ 1 (* x (+ 1 (* 1/2 x)))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x)))))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
(+ 1 (* -1/4 (pow x 2))) |
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)) |
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4))) |
(fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4))) |
(fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(+ 1 (* -1/2 (pow x 2))) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1 binary64)) |
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) |
(fma.f64 (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 x x)) #s(literal 1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) |
(fma.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/720 binary64) (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 x x)) #s(literal 1/2 binary64))) (*.f64 x x) #s(literal 1 binary64)) |
-1/4 |
#s(literal -1/4 binary64) |
(- (* -1/96 (pow x 2)) 1/4) |
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) |
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x)))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
(exp x) |
(exp.f64 x) |
(sqrt (cos x)) |
(sqrt.f64 (cos.f64 x)) |
(cos x) |
(cos.f64 x) |
(* -1/96 (pow x 2)) |
(*.f64 #s(literal -1/96 binary64) (*.f64 x x)) |
(* -1 (* (pow x 2) (+ 1/96 (* 1/4 (/ 1 (pow x 2)))))) |
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) |
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x)))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 39 | 224 |
| 0 | 68 | 224 |
| 1 | 178 | 224 |
| 0 | 1139 | 224 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) |
#s(approx (exp x) #s(literal 1 binary64)) |
(sqrt.f64 (cos.f64 x)) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(exp.f64 x) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) |
(sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(cos.f64 x) |
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) |
#s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
| Outputs |
|---|
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))) (exp.f64 x)) |
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) #s(literal 1 binary64)) (exp.f64 x)) |
(fma.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))))) |
(fma.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (cosh.f64 x) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (sinh.f64 (neg.f64 x)))) |
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))))) |
(+.f64 (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (sinh.f64 (neg.f64 x)))) |
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) |
#s(approx (exp x) #s(literal 1 binary64)) |
(*.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)) (pow.f64 (cos.f64 x) #s(literal 1/4 binary64))) |
(pow.f64 (cos.f64 x) #s(literal 1/2 binary64)) |
(sqrt.f64 (cos.f64 x)) |
(exp.f64 (*.f64 (log.f64 (cos.f64 x)) #s(literal 1/2 binary64))) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(/.f64 (-.f64 (*.f64 (cosh.f64 x) (cosh.f64 x)) (*.f64 (sinh.f64 x) (sinh.f64 x))) (exp.f64 (neg.f64 x))) |
(/.f64 (+.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (pow.f64 (sinh.f64 x) #s(literal 3 binary64))) (fma.f64 (cosh.f64 x) (cosh.f64 x) (-.f64 (*.f64 (sinh.f64 x) (sinh.f64 x)) (*.f64 (cosh.f64 x) (sinh.f64 x))))) |
(exp.f64 x) |
(+.f64 (sinh.f64 x) (cosh.f64 x)) |
(+.f64 (cosh.f64 x) (sinh.f64 x)) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) |
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x)) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))) |
(fma.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))) |
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) |
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x)) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))))) |
(fma.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))))) |
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x))) |
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))))) |
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))))) (exp.f64 x)) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) #s(literal 1 binary64)) (exp.f64 x)) |
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))))) |
(fma.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (cosh.f64 x) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (sinh.f64 (neg.f64 x)))) |
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))))) |
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (cosh.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (sinh.f64 (neg.f64 x)))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) |
(*.f64 (pow.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #s(literal 1/4 binary64)) (pow.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #s(literal 1/4 binary64))) |
(pow.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #s(literal 1/2 binary64)) |
(sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(exp.f64 (*.f64 (log.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1/2 binary64))) |
(fma.f64 (sin.f64 x) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64))) (*.f64 (cos.f64 x) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64))))) |
(sin.f64 (+.f64 (neg.f64 x) (/.f64 (PI.f64) #s(literal 2 binary64)))) |
(sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) x)) |
(cos.f64 (neg.f64 (neg.f64 x))) |
(cos.f64 (neg.f64 x)) |
(cos.f64 x) |
(+.f64 (*.f64 (sin.f64 x) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))) (*.f64 (cos.f64 x) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64))))) |
(/.f64 (-.f64 #s(literal 1/16 binary64) (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64))) (-.f64 #s(literal -1/4 binary64) (*.f64 #s(literal -1/96 binary64) (*.f64 x x)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64)))) |
(/.f64 (neg.f64 (fma.f64 #s(literal -1/884736 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal -1/64 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64))) |
(/.f64 (fma.f64 #s(literal -1/884736 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal -1/64 binary64)) (+.f64 #s(literal 1/16 binary64) (-.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64))))) |
(/.f64 (fma.f64 #s(literal -1/884736 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal -1/64 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64)))) |
(fma.f64 (*.f64 #s(literal -1/96 binary64) (fabs.f64 x)) (fabs.f64 x) #s(literal -1/4 binary64)) |
(fma.f64 (*.f64 #s(literal -1/96 binary64) (neg.f64 x)) (neg.f64 x) #s(literal -1/4 binary64)) |
(fma.f64 (*.f64 #s(literal -1/96 binary64) x) x #s(literal -1/4 binary64)) |
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal -1/96 binary64)) #s(literal -1/4 binary64)) |
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) |
(fma.f64 (*.f64 x x) #s(literal -1/96 binary64) #s(literal -1/4 binary64)) |
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal -1/96 binary64)) #s(literal -1/4 binary64)) |
(fma.f64 x (*.f64 #s(literal -1/96 binary64) x) #s(literal -1/4 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64))) (/.f64 #s(literal 1/16 binary64) (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64)))) |
(-.f64 #s(literal -1/4 binary64) (*.f64 (neg.f64 (*.f64 #s(literal -1/96 binary64) x)) x)) |
(-.f64 #s(literal -1/4 binary64) (*.f64 #s(literal 1/96 binary64) (*.f64 x x))) |
(-.f64 #s(literal -1/4 binary64) (*.f64 (neg.f64 (*.f64 x x)) #s(literal -1/96 binary64))) |
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64)))) (/.f64 #s(literal -1/64 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64))))) |
(+.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64)) |
(+.f64 #s(literal -1/4 binary64) (*.f64 #s(literal -1/96 binary64) (*.f64 x x))) |
#s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
Compiled 3 382 to 469 computations (86.1% saved)
14 alts after pruning (9 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 131 | 4 | 135 |
| Fresh | 2 | 5 | 7 |
| Picked | 1 | 4 | 5 |
| Done | 0 | 1 | 1 |
| Total | 134 | 14 | 148 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 8.0% | (/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
| ▶ | 7.9% | (/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
| ▶ | 8.3% | (-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
| 8.2% | (*.f64 (fmod.f64 (+.f64 (/.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) | |
| ✓ | 8.3% | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| ✓ | 8.0% | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x))) |
| 8.0% | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| ✓ | 8.0% | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| ✓ | 7.9% | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| 14.8% | (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) | |
| ✓ | 22.0% | (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| ▶ | 22.0% | (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| ▶ | 6.0% | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
| 6.8% | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
Compiled 509 to 325 computations (36.1% saved)
| 1× | egg-herbie |
Found 20 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) | |
| cost-diff | 0 | (cosh.f64 x) | |
| cost-diff | 0 | (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) | |
| cost-diff | 10 | (-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) | |
| cost-diff | 0 | (exp.f64 x) | |
| cost-diff | 0 | (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) | |
| cost-diff | 0 | (/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) | |
| cost-diff | 2 | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) | |
| cost-diff | 0 | (exp.f64 x) | |
| cost-diff | 0 | (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) | |
| cost-diff | 0 | (/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) | |
| cost-diff | 2 | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) | |
| cost-diff | 0 | #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) | |
| cost-diff | 0 | (exp.f64 x) | |
| cost-diff | 0 | (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) | |
| cost-diff | 0 | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) | |
| cost-diff | 0 | #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) | |
| cost-diff | 0 | #s(approx (exp x) #s(literal 1 binary64)) | |
| cost-diff | 0 | (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) | |
| cost-diff | 1 | (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 41 | 353 |
| 0 | 72 | 336 |
| 1 | 125 | 336 |
| 2 | 306 | 333 |
| 3 | 1088 | 333 |
| 4 | 6550 | 333 |
| 0 | 8432 | 333 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
#s(approx (exp x) #s(literal 1 binary64)) |
#s(literal 1 binary64) |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)) |
(*.f64 x x) |
x |
#s(literal -1/4 binary64) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
(exp.f64 x) |
x |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)) |
(*.f64 x x) |
#s(literal -1/4 binary64) |
#s(literal 1 binary64) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
(exp.f64 x) |
x |
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)) |
#s(literal -1/4 binary64) |
(*.f64 x x) |
#s(literal 1 binary64) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(exp.f64 x) |
x |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) |
#s(literal -1/96 binary64) |
(*.f64 x x) |
#s(literal -1/4 binary64) |
#s(literal 1 binary64) |
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(cosh.f64 x) |
x |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(exp.f64 x) |
(sqrt.f64 (cos.f64 x)) |
(cos.f64 x) |
(*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(sinh.f64 x) |
| Outputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
#s(approx (exp x) #s(literal 1 binary64)) |
#s(literal 1 binary64) |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)) |
(*.f64 x x) |
x |
#s(literal -1/4 binary64) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
(exp.f64 x) |
x |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)) |
(*.f64 x x) |
#s(literal -1/4 binary64) |
#s(literal 1 binary64) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
(exp.f64 x) |
x |
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)) |
#s(literal -1/4 binary64) |
(*.f64 x x) |
#s(literal 1 binary64) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(exp.f64 x) |
x |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) |
#s(literal -1/96 binary64) |
(*.f64 x x) |
#s(literal -1/4 binary64) |
#s(literal 1 binary64) |
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
(*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) |
(cosh.f64 x) |
x |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(exp.f64 x) |
(sqrt.f64 (cos.f64 x)) |
(cos.f64 x) |
(*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(sinh.f64 x) |
Found 20 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.015625 | (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) | |
| accuracy | 0.03125 | (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) | |
| accuracy | 0.050086611177641314 | (-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) | |
| accuracy | 46.943569399876885 | (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) | |
| accuracy | 0.0078125 | (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) | |
| accuracy | 0.01171875 | (/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) | |
| accuracy | 0.7132753849182006 | #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) | |
| accuracy | 46.943569399876885 | (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) | |
| accuracy | 0.0 | (exp.f64 x) | |
| accuracy | 0.01171875 | (/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) | |
| accuracy | 0.8340087680694789 | #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))) | |
| accuracy | 46.943569399876885 | (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) | |
| accuracy | 0.0 | (exp.f64 x) | |
| accuracy | 0.8340087680694789 | #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) | |
| accuracy | 1.8195407568646746 | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) | |
| accuracy | 46.943569399876885 | (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) | |
| accuracy | 0.01953125 | (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| accuracy | 0.8340087680694789 | #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) | |
| accuracy | 1.8075386461743768 | #s(approx (exp x) #s(literal 1 binary64)) | |
| accuracy | 46.943569399876885 | (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
| 193.0ms | 199× | 1 | valid |
| 17.0ms | 2× | 5 | exit |
| 12.0ms | 45× | 0 | exit |
| 3.0ms | 10× | 0 | valid |
Compiled 230 to 29 computations (87.4% saved)
ival-fmod: 66.0ms (34% of total)ival-exp: 32.0ms (16.5% of total)ival-cos: 24.0ms (12.4% of total)adjust: 17.0ms (8.8% of total)ival-mult: 16.0ms (8.2% of total)ival-cosh: 11.0ms (5.7% of total)ival-add: 7.0ms (3.6% of total)ival-sinh: 6.0ms (3.1% of total)ival-sqrt: 4.0ms (2.1% of total)const: 4.0ms (2.1% of total)ival-div: 3.0ms (1.5% of total)ival-sub: 2.0ms (1% of total)ival-neg: 1.0ms (0.5% of total)exact: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
#s(approx (exp x) #s(literal 1 binary64)) |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
(exp.f64 x) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(cosh.f64 x) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))) |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) |
(*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
| Outputs |
|---|
(fmod (exp x) (sqrt (cos x))) |
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
1 |
(+ 1 x) |
(+ 1 (* x (+ 1 (* 1/2 x)))) |
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x)))))) |
(+ 1 (* -1/4 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4))) |
(+ (* x (- (* -1 (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (- (* x (- (* -1 (* x (+ (* -1 (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (+ (* -1/2 (fmod (exp x) (sqrt (cos x)))) (* 1/6 (fmod (exp x) (sqrt (cos x)))))))) (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (- (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (- (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* 1/2 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* (pow x 2) (+ (* 1/24 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* (pow x 2) (+ (* 1/2 (fmod (exp x) (sqrt (cos x)))) (* (pow x 2) (+ (* 1/720 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/24 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
(+ 1 (* 1/2 (pow x 2))) |
(+ 1 (* (pow x 2) (+ 1/2 (* 1/24 (pow x 2))))) |
(+ 1 (* (pow x 2) (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/720 (pow x 2))))))) |
-1/4 |
(- (* -1/96 (pow x 2)) 1/4) |
(* x (fmod (exp x) (sqrt (cos x)))) |
(* x (+ (* 1/6 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))) |
(* x (+ (* (pow x 2) (+ (* 1/120 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/6 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x))))) |
(* x (+ (* (pow x 2) (+ (* 1/6 (fmod (exp x) (sqrt (cos x)))) (* (pow x 2) (+ (* 1/5040 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/120 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))) |
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x)))) |
(exp x) |
(sqrt (cos x)) |
(/ (fmod (exp x) (sqrt (cos x))) (exp x)) |
(- (* 1/2 (* (+ (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))) (* 1/2 (* (- (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x)))))) |
(* 1/2 (* (+ (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))) |
(* 1/2 (+ (exp x) (/ 1 (exp x)))) |
(* -1/96 (pow x 2)) |
(* -1 (* (pow x 2) (+ 1/96 (* 1/4 (/ 1 (pow x 2)))))) |
(* 1/2 (* (- (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))) |
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x)))) |
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 4.0ms | x | @ | inf | ((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (* (fmod (exp x) (sqrt (cos x))) 1) (/ (* (fmod (exp x) (sqrt (cos x))) 1) (exp x)) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) 1) (/ (* (fmod (exp x) (sqrt (cos x))) 1) (exp x)) (fmod (exp x) (sqrt (cos x))) (- (* (cosh x) (fmod (exp x) (sqrt (cos x)))) (* (sinh x) (fmod (exp x) (sqrt (cos x))))) (* (cosh x) (fmod (exp x) (sqrt (cos x)))) (cosh x) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (sqrt (cos x)) (+ (* -1/96 (* x x)) -1/4) (* (sinh x) (fmod (exp x) (sqrt (cos x))))) |
| 3.0ms | x | @ | -inf | ((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (* (fmod (exp x) (sqrt (cos x))) 1) (/ (* (fmod (exp x) (sqrt (cos x))) 1) (exp x)) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) 1) (/ (* (fmod (exp x) (sqrt (cos x))) 1) (exp x)) (fmod (exp x) (sqrt (cos x))) (- (* (cosh x) (fmod (exp x) (sqrt (cos x)))) (* (sinh x) (fmod (exp x) (sqrt (cos x))))) (* (cosh x) (fmod (exp x) (sqrt (cos x)))) (cosh x) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (sqrt (cos x)) (+ (* -1/96 (* x x)) -1/4) (* (sinh x) (fmod (exp x) (sqrt (cos x))))) |
| 3.0ms | x | @ | 0 | ((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (* (fmod (exp x) (sqrt (cos x))) 1) (/ (* (fmod (exp x) (sqrt (cos x))) 1) (exp x)) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) 1) (/ (* (fmod (exp x) (sqrt (cos x))) 1) (exp x)) (fmod (exp x) (sqrt (cos x))) (- (* (cosh x) (fmod (exp x) (sqrt (cos x)))) (* (sinh x) (fmod (exp x) (sqrt (cos x))))) (* (cosh x) (fmod (exp x) (sqrt (cos x)))) (cosh x) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (sqrt (cos x)) (+ (* -1/96 (* x x)) -1/4) (* (sinh x) (fmod (exp x) (sqrt (cos x))))) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 147 | 649 |
| 1 | 503 | 549 |
| 2 | 1943 | 520 |
| 3 | 6439 | 520 |
| 0 | 8136 | 481 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(fmod (exp x) (sqrt (cos x))) |
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
1 |
(+ 1 x) |
(+ 1 (* x (+ 1 (* 1/2 x)))) |
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x)))))) |
(+ 1 (* -1/4 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4))) |
(+ (* x (- (* -1 (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (- (* x (- (* -1 (* x (+ (* -1 (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (+ (* -1/2 (fmod (exp x) (sqrt (cos x)))) (* 1/6 (fmod (exp x) (sqrt (cos x)))))))) (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (- (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (- (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* 1/2 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* (pow x 2) (+ (* 1/24 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* (pow x 2) (+ (* 1/2 (fmod (exp x) (sqrt (cos x)))) (* (pow x 2) (+ (* 1/720 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/24 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
(+ 1 (* 1/2 (pow x 2))) |
(+ 1 (* (pow x 2) (+ 1/2 (* 1/24 (pow x 2))))) |
(+ 1 (* (pow x 2) (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/720 (pow x 2))))))) |
-1/4 |
(- (* -1/96 (pow x 2)) 1/4) |
(* x (fmod (exp x) (sqrt (cos x)))) |
(* x (+ (* 1/6 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))) |
(* x (+ (* (pow x 2) (+ (* 1/120 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/6 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x))))) |
(* x (+ (* (pow x 2) (+ (* 1/6 (fmod (exp x) (sqrt (cos x)))) (* (pow x 2) (+ (* 1/5040 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/120 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))) |
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x)))) |
(exp x) |
(sqrt (cos x)) |
(/ (fmod (exp x) (sqrt (cos x))) (exp x)) |
(- (* 1/2 (* (+ (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))) (* 1/2 (* (- (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x)))))) |
(* 1/2 (* (+ (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))) |
(* 1/2 (+ (exp x) (/ 1 (exp x)))) |
(* -1/96 (pow x 2)) |
(* -1 (* (pow x 2) (+ 1/96 (* 1/4 (/ 1 (pow x 2)))))) |
(* 1/2 (* (- (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))) |
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x)))) |
| Outputs |
|---|
(fmod (exp x) (sqrt (cos x))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 #s(literal -1 binary64) x (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) #s(literal 1 binary64)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
(fma.f64 (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (*.f64 x x) (*.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))) |
1 |
#s(literal 1 binary64) |
(+ 1 x) |
(-.f64 x #s(literal -1 binary64)) |
(+ 1 (* x (+ 1 (* 1/2 x)))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x)))))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
(+ 1 (* -1/4 (pow x 2))) |
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)) |
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4))) |
(fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4))) |
(fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(+ (* x (- (* -1 (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 #s(literal -1 binary64) x (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) #s(literal 1 binary64)))) |
(+ (* x (- (* x (- (* -1 (* x (+ (* -1 (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (+ (* -1/2 (fmod (exp x) (sqrt (cos x)))) (* 1/6 (fmod (exp x) (sqrt (cos x)))))))) (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(fma.f64 (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (*.f64 x x) (*.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))) |
(+ (* x (- (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 #s(literal -1 binary64) x (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) #s(literal 1 binary64)))) |
(+ (* x (- (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(fma.f64 (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (*.f64 x x) (*.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))) |
(+ (* 1/2 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) #s(literal 1 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(+ (* (pow x 2) (+ (* 1/24 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(+ (* (pow x 2) (+ (* 1/2 (fmod (exp x) (sqrt (cos x)))) (* (pow x 2) (+ (* 1/720 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/24 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
(fma.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 (fma.f64 #s(literal 1/720 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) #s(literal 1 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(+ 1 (* 1/2 (pow x 2))) |
(fma.f64 (*.f64 x x) #s(literal 1/2 binary64) #s(literal 1 binary64)) |
(+ 1 (* (pow x 2) (+ 1/2 (* 1/24 (pow x 2))))) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(+ 1 (* (pow x 2) (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/720 (pow x 2))))))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/720 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
-1/4 |
#s(literal -1/4 binary64) |
(- (* -1/96 (pow x 2)) 1/4) |
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) |
(* x (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x) |
(* x (+ (* 1/6 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (*.f64 (*.f64 x x) #s(literal 1/6 binary64)) x x)) |
(* x (+ (* (pow x 2) (+ (* 1/120 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/6 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x))))) |
(*.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 x x)) (*.f64 x x) (fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal 1 binary64)))) x) |
(* x (+ (* (pow x 2) (+ (* 1/6 (fmod (exp x) (sqrt (cos x)))) (* (pow x 2) (+ (* 1/5040 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/120 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))) |
(*.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 (fma.f64 #s(literal 1/5040 binary64) (*.f64 x x) #s(literal 1/120 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal 1 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) x) |
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x)))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
(exp x) |
(exp.f64 x) |
(sqrt (cos x)) |
(sqrt.f64 (cos.f64 x)) |
(/ (fmod (exp x) (sqrt (cos x))) (exp x)) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
(- (* 1/2 (* (+ (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))) (* 1/2 (* (- (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x)))))) |
(*.f64 (*.f64 #s(literal 1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (-.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) |
(* 1/2 (* (+ (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))) |
(*.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) #s(literal 1/2 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(* 1/2 (+ (exp x) (/ 1 (exp x)))) |
(*.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) #s(literal 1/2 binary64)) |
(* -1/96 (pow x 2)) |
(*.f64 #s(literal -1/96 binary64) (*.f64 x x)) |
(* -1 (* (pow x 2) (+ 1/96 (* 1/4 (/ 1 (pow x 2)))))) |
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) |
(* 1/2 (* (- (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))) |
(*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 #s(literal 1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x)))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 41 | 270 |
| 0 | 72 | 253 |
| 1 | 196 | 253 |
| 0 | 1067 | 253 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
#s(approx (exp x) #s(literal 1 binary64)) |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
(exp.f64 x) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(cosh.f64 x) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))) |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) |
(*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
| Outputs |
|---|
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x)) |
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(fma.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))) |
(fma.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))) |
(+.f64 (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
#s(approx (exp x) #s(literal 1 binary64)) |
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) |
(*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
(/.f64 (-.f64 (*.f64 (cosh.f64 x) (cosh.f64 x)) (*.f64 (sinh.f64 x) (sinh.f64 x))) (exp.f64 (neg.f64 x))) |
(/.f64 (+.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (pow.f64 (sinh.f64 x) #s(literal 3 binary64))) (fma.f64 (cosh.f64 x) (cosh.f64 x) (-.f64 (*.f64 (sinh.f64 x) (sinh.f64 x)) (*.f64 (cosh.f64 x) (sinh.f64 x))))) |
(/.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 x) (*.f64 #s(literal 2 binary64) (sinh.f64 x))) #s(literal 2 binary64)) |
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 x)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 x)))) #s(literal 4 binary64)) |
(exp.f64 x) |
(+.f64 (sinh.f64 x) (cosh.f64 x)) |
(+.f64 (cosh.f64 x) (sinh.f64 x)) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) |
(*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) |
(*.f64 #s(literal 1 binary64) (/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))) |
(/.f64 (neg.f64 (neg.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))) (neg.f64 (neg.f64 (exp.f64 x)))) |
(/.f64 (neg.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (neg.f64 (exp.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
(neg.f64 (/.f64 (neg.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x))) |
(neg.f64 (/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (neg.f64 (exp.f64 x)))) |
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))) |
(fma.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))) |
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) |
(*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) |
(*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) |
(*.f64 #s(literal 1 binary64) (/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))) |
(/.f64 (neg.f64 (neg.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))))) (neg.f64 (neg.f64 (exp.f64 x)))) |
(/.f64 (neg.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (neg.f64 (exp.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
(neg.f64 (/.f64 (neg.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x))) |
(neg.f64 (/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (neg.f64 (exp.f64 x)))) |
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))))) |
(fma.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))))) |
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) |
(*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (exp.f64 x)) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(literal 1 binary64)) (exp.f64 x)) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 3 binary64)) (pow.f64 (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 2 binary64)) (*.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))))) |
(/.f64 (neg.f64 (*.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))))) (neg.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 3 binary64)) (pow.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 2 binary64))))) |
(/.f64 (*.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 3 binary64)) (pow.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 3 binary64))) (fma.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 2 binary64)))) |
(fma.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x))) |
(fma.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (sinh.f64 (neg.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x))) |
(fma.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x) (*.f64 (neg.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (sinh.f64 x))) |
(fma.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (neg.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (sinh.f64 x))) |
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(-.f64 (/.f64 (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 2 binary64)) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))) (/.f64 (pow.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 2 binary64)) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)))) |
(-.f64 (/.f64 (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 3 binary64)) (fma.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 3 binary64)) (fma.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 2 binary64))))) |
(-.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) (*.f64 (neg.f64 (sinh.f64 (neg.f64 x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(-.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(+.f64 (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x))) |
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) (*.f64 (neg.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (sinh.f64 x))) |
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) |
(*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(/.f64 (*.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 2 binary64)) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 2 binary64) (cosh.f64 x))) #s(literal 2 binary64)) |
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 x))) #s(literal -2 binary64)) |
(/.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))) #s(literal 2 binary64)) |
(/.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 x)) #s(literal 2 binary64)) |
(cosh.f64 (neg.f64 (neg.f64 x))) |
(cosh.f64 (neg.f64 x)) |
(cosh.f64 x) |
(+.f64 (/.f64 (exp.f64 x) #s(literal 2 binary64)) (/.f64 (exp.f64 (neg.f64 x)) #s(literal 2 binary64))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))) |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(/.f64 (-.f64 #s(literal 1/16 binary64) (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64))) (-.f64 #s(literal -1/4 binary64) (*.f64 #s(literal -1/96 binary64) (*.f64 x x)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64)))) |
(/.f64 (neg.f64 (fma.f64 #s(literal -1/884736 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal -1/64 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64))) |
(/.f64 (fma.f64 #s(literal -1/884736 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal -1/64 binary64)) (+.f64 #s(literal 1/16 binary64) (-.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64))))) |
(/.f64 (fma.f64 #s(literal -1/884736 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal -1/64 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64)))) |
(fma.f64 (*.f64 #s(literal -1/96 binary64) (fabs.f64 x)) (fabs.f64 x) #s(literal -1/4 binary64)) |
(fma.f64 (*.f64 #s(literal -1/96 binary64) (neg.f64 x)) (neg.f64 x) #s(literal -1/4 binary64)) |
(fma.f64 (*.f64 #s(literal -1/96 binary64) x) x #s(literal -1/4 binary64)) |
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal -1/96 binary64)) #s(literal -1/4 binary64)) |
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) |
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal -1/96 binary64)) #s(literal -1/4 binary64)) |
(fma.f64 (*.f64 x x) #s(literal -1/96 binary64) #s(literal -1/4 binary64)) |
(fma.f64 x (*.f64 #s(literal -1/96 binary64) x) #s(literal -1/4 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64))) (/.f64 #s(literal 1/16 binary64) (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64)))) |
(-.f64 #s(literal -1/4 binary64) (*.f64 (neg.f64 (*.f64 #s(literal -1/96 binary64) x)) x)) |
(-.f64 #s(literal -1/4 binary64) (*.f64 #s(literal 1/96 binary64) (*.f64 x x))) |
(-.f64 #s(literal -1/4 binary64) (*.f64 (neg.f64 (*.f64 x x)) #s(literal -1/96 binary64))) |
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64)))) (/.f64 #s(literal -1/64 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64))))) |
(+.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64)) |
(+.f64 #s(literal -1/4 binary64) (*.f64 #s(literal -1/96 binary64) (*.f64 x x))) |
(*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (sinh.f64 x)) |
(/.f64 (*.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 2 binary64)) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 2 binary64) (sinh.f64 x))) #s(literal 2 binary64)) |
Compiled 5 376 to 624 computations (88.4% saved)
17 alts after pruning (9 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 186 | 5 | 191 |
| Fresh | 0 | 4 | 4 |
| Picked | 2 | 3 | 5 |
| Done | 0 | 5 | 5 |
| Total | 188 | 17 | 205 |
| Status | Accuracy | Program |
|---|---|---|
| 8.0% | (/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) | |
| 7.9% | (/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) | |
| ✓ | 8.3% | (-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
| 8.2% | (*.f64 (fmod.f64 (+.f64 (/.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) | |
| ✓ | 8.3% | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| ✓ | 8.0% | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x))) |
| ▶ | 8.0% | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| ✓ | 8.0% | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| ✓ | 7.9% | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| 12.1% | (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| ▶ | 14.8% | (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| ▶ | 14.8% | (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| ▶ | 25.0% | (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| ✓ | 22.0% | (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| ✓ | 22.0% | (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| ✓ | 6.0% | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
| ▶ | 6.8% | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
Compiled 587 to 385 computations (34.4% saved)
| 1× | egg-herbie |
Found 20 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) | |
| cost-diff | 0 | (exp.f64 x) | |
| cost-diff | 0 | (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) | |
| cost-diff | 1 | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| cost-diff | 0 | (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) | |
| cost-diff | 0 | #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) | |
| cost-diff | 0 | (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) | |
| cost-diff | 1 | (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) | |
| cost-diff | 0 | (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) | |
| cost-diff | 0 | (-.f64 #s(literal 1 binary64) x) | |
| cost-diff | 0 | (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) | |
| cost-diff | 0 | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) | |
| cost-diff | 0 | (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) | |
| cost-diff | 0 | #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) | |
| cost-diff | 0 | (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) | |
| cost-diff | 1 | (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| cost-diff | 0 | (-.f64 x #s(literal -1 binary64)) | |
| cost-diff | 0 | #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) | |
| cost-diff | 0 | (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) | |
| cost-diff | 1 | (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 44 | 414 |
| 0 | 77 | 414 |
| 1 | 121 | 414 |
| 2 | 299 | 409 |
| 3 | 924 | 409 |
| 4 | 4155 | 409 |
| 0 | 8517 | 409 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
#s(approx (exp x) (-.f64 x #s(literal -1 binary64))) |
(-.f64 x #s(literal -1 binary64)) |
x |
#s(literal -1 binary64) |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)) |
(*.f64 x x) |
#s(literal -1/4 binary64) |
#s(literal 1 binary64) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) |
#s(literal 1/2 binary64) |
x |
#s(literal 1 binary64) |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)) |
(*.f64 x x) |
#s(literal -1/4 binary64) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(-.f64 #s(literal 1 binary64) x) |
#s(literal 1 binary64) |
x |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(exp.f64 x) |
(sqrt.f64 (cos.f64 x)) |
(cos.f64 x) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) |
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) |
#s(literal 1/2 binary64) |
x |
#s(literal 1 binary64) |
(sqrt.f64 (cos.f64 x)) |
(cos.f64 x) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(exp.f64 x) |
x |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) |
(-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) |
(*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) |
#s(literal -19/5760 binary64) |
(*.f64 x x) |
#s(literal 1/96 binary64) |
#s(literal -1/4 binary64) |
#s(literal 1 binary64) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
| Outputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
(fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
(fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
#s(approx (exp x) (-.f64 x #s(literal -1 binary64))) |
(-.f64 x #s(literal -1 binary64)) |
x |
#s(literal -1 binary64) |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)) |
(*.f64 x x) |
#s(literal -1/4 binary64) |
#s(literal 1 binary64) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) |
#s(literal 1/2 binary64) |
x |
#s(literal 1 binary64) |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)) |
(*.f64 x x) |
#s(literal -1/4 binary64) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) x))) |
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) x)) |
(-.f64 #s(literal 1 binary64) x) |
#s(literal 1 binary64) |
x |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(exp.f64 x) |
(sqrt.f64 (cos.f64 x)) |
(cos.f64 x) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) |
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) |
#s(literal 1/2 binary64) |
x |
#s(literal 1 binary64) |
(sqrt.f64 (cos.f64 x)) |
(cos.f64 x) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(exp.f64 x) |
x |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
(fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) |
(-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) |
(*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) |
#s(literal -19/5760 binary64) |
(*.f64 x x) |
#s(literal 1/96 binary64) |
#s(literal -1/4 binary64) |
#s(literal 1 binary64) |
(exp.f64 (neg.f64 x)) |
(neg.f64 x) |
Found 20 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.01953125 | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| accuracy | 0.125 | (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) | |
| accuracy | 0.8754386097907378 | #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) | |
| accuracy | 47.18576017150156 | (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) | |
| accuracy | 0.00390625 | (sqrt.f64 (cos.f64 x)) | |
| accuracy | 0.01953125 | (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) | |
| accuracy | 1.1105458097972223 | #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) | |
| accuracy | 47.18576017150156 | (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) | |
| accuracy | 0.00390625 | (sqrt.f64 (cos.f64 x)) | |
| accuracy | 0.015625 | (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) | |
| accuracy | 1.3186920326728127 | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) | |
| accuracy | 47.18576017150156 | (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) | |
| accuracy | 0.01953125 | (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| accuracy | 1.0801568606517764 | #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) | |
| accuracy | 1.1105458097972223 | #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) | |
| accuracy | 47.18576017150156 | (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) | |
| accuracy | 0.01953125 | (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| accuracy | 1.0801568606517764 | #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) | |
| accuracy | 1.3151880329468697 | #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) | |
| accuracy | 47.18576017150156 | (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
| 279.0ms | 46× | 5 | exit |
| 159.0ms | 80× | 2 | valid |
| 67.0ms | 119× | 1 | valid |
| 3.0ms | 11× | 0 | valid |
Compiled 260 to 32 computations (87.7% saved)
ival-cos: 203.0ms (44.8% of total)ival-sqrt: 77.0ms (17% of total)adjust: 63.0ms (13.9% of total)ival-mult: 26.0ms (5.7% of total)ival-exp: 22.0ms (4.9% of total)const: 19.0ms (4.2% of total)ival-fmod: 19.0ms (4.2% of total)ival-add: 14.0ms (3.1% of total)ival-sub: 7.0ms (1.5% of total)ival-neg: 2.0ms (0.4% of total)exact: 1.0ms (0.2% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| Inputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
#s(approx (exp x) (-.f64 x #s(literal -1 binary64))) |
(-.f64 x #s(literal -1 binary64)) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(-.f64 #s(literal 1 binary64) x) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(exp.f64 x) |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
(sqrt.f64 (cos.f64 x)) |
(*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) |
| Outputs |
|---|
(fmod (exp x) (sqrt (cos x))) |
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
1 |
(+ 1 x) |
(+ 1 (* x (+ 1 (* 1/2 x)))) |
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x)))))) |
(+ 1 (* -1 x)) |
(+ 1 (* -1/4 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4))) |
(* -19/5760 (pow x 2)) |
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x)))) |
(exp x) |
x |
(* x (+ 1 (/ 1 x))) |
(* 1/2 (pow x 2)) |
(* (pow x 2) (+ 1/2 (/ 1 x))) |
(* (pow x 2) (+ 1/2 (+ (/ 1 x) (/ 1 (pow x 2))))) |
(* -1 (* x (fmod (exp x) (sqrt (cos x))))) |
(* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (/ (fmod (exp x) (sqrt (cos x))) x))) |
(* -1 x) |
(* x (- (/ 1 x) 1)) |
(sqrt (cos x)) |
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x)))) |
(* -1 (* x (+ (* -1 (/ (fmod (exp x) (sqrt (cos x))) x)) (fmod (exp x) (sqrt (cos x)))))) |
(* -1 (* x (- 1 (/ 1 x)))) |
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | inf | ((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (- x -1) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (+ (* (+ (* 1/2 x) 1) x) 1) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (* (- 1 x) (fmod (exp x) (sqrt (cos x)))) (- 1 x) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (sqrt (cos x)) (sqrt (cos x)) (* -19/5760 (* x x))) |
| 1.0ms | x | @ | -inf | ((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (- x -1) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (+ (* (+ (* 1/2 x) 1) x) 1) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (* (- 1 x) (fmod (exp x) (sqrt (cos x)))) (- 1 x) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (sqrt (cos x)) (sqrt (cos x)) (* -19/5760 (* x x))) |
| 1.0ms | x | @ | 0 | ((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (- x -1) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (+ (* (+ (* 1/2 x) 1) x) 1) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (* (- 1 x) (fmod (exp x) (sqrt (cos x)))) (- 1 x) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (sqrt (cos x)) (sqrt (cos x)) (* -19/5760 (* x x))) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 84 | 264 |
| 1 | 259 | 224 |
| 2 | 809 | 217 |
| 3 | 3707 | 215 |
| 0 | 8595 | 202 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(fmod (exp x) (sqrt (cos x))) |
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
1 |
(+ 1 x) |
(+ 1 (* x (+ 1 (* 1/2 x)))) |
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x)))))) |
(+ 1 (* -1 x)) |
(+ 1 (* -1/4 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4))) |
(* -19/5760 (pow x 2)) |
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x)))) |
(exp x) |
x |
(* x (+ 1 (/ 1 x))) |
(* 1/2 (pow x 2)) |
(* (pow x 2) (+ 1/2 (/ 1 x))) |
(* (pow x 2) (+ 1/2 (+ (/ 1 x) (/ 1 (pow x 2))))) |
(* -1 (* x (fmod (exp x) (sqrt (cos x))))) |
(* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (/ (fmod (exp x) (sqrt (cos x))) x))) |
(* -1 x) |
(* x (- (/ 1 x) 1)) |
(sqrt (cos x)) |
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x)))) |
(* -1 (* x (+ (* -1 (/ (fmod (exp x) (sqrt (cos x))) x)) (fmod (exp x) (sqrt (cos x)))))) |
(* -1 (* x (- 1 (/ 1 x)))) |
| Outputs |
|---|
(fmod (exp x) (sqrt (cos x))) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x)))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 (*.f64 #s(literal -1/2 binary64) x) x))) |
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))) |
(fma.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 (*.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) x) #s(literal 1 binary64))) x (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
1 |
#s(literal 1 binary64) |
(+ 1 x) |
(-.f64 x #s(literal -1 binary64)) |
(+ 1 (* x (+ 1 (* 1/2 x)))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x)))))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
(+ 1 (* -1 x)) |
(-.f64 #s(literal 1 binary64) x) |
(+ 1 (* -1/4 (pow x 2))) |
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)) |
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4))) |
(fma.f64 (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4))) |
(fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) x) x) #s(literal 1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)) |
(* -19/5760 (pow x 2)) |
(*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) |
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x)))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
(exp x) |
(exp.f64 x) |
x |
(* x (+ 1 (/ 1 x))) |
(-.f64 x #s(literal -1 binary64)) |
(* 1/2 (pow x 2)) |
(*.f64 (*.f64 x x) #s(literal 1/2 binary64)) |
(* (pow x 2) (+ 1/2 (/ 1 x))) |
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) |
(* (pow x 2) (+ 1/2 (+ (/ 1 x) (/ 1 (pow x 2))))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
(* -1 (* x (fmod (exp x) (sqrt (cos x))))) |
(*.f64 (neg.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (/ (fmod (exp x) (sqrt (cos x))) x))) |
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(* -1 x) |
(neg.f64 x) |
(* x (- (/ 1 x) 1)) |
(-.f64 #s(literal 1 binary64) x) |
(sqrt (cos x)) |
(sqrt.f64 (cos.f64 x)) |
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x)))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
(* -1 (* x (+ (* -1 (/ (fmod (exp x) (sqrt (cos x))) x)) (fmod (exp x) (sqrt (cos x)))))) |
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(* -1 (* x (- 1 (/ 1 x)))) |
(-.f64 #s(literal 1 binary64) x) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 44 | 275 |
| 0 | 77 | 275 |
| 1 | 214 | 275 |
| 0 | 1473 | 275 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
#s(approx (exp x) (-.f64 x #s(literal -1 binary64))) |
(-.f64 x #s(literal -1 binary64)) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) |
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(-.f64 #s(literal 1 binary64) x) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(exp.f64 x) |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))) |
(sqrt.f64 (cos.f64 x)) |
(*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) |
| Outputs |
|---|
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) |
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x)) |
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(fma.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))) |
(fma.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))) |
(+.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
#s(approx (exp x) (-.f64 x #s(literal -1 binary64))) |
(/.f64 (neg.f64 (fma.f64 x x #s(literal -1 binary64))) (neg.f64 (+.f64 #s(literal -1 binary64) x))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) (neg.f64 (fma.f64 x x (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64))))) |
(/.f64 (fma.f64 x x #s(literal -1 binary64)) (+.f64 #s(literal -1 binary64) x)) |
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (fma.f64 x x (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64)))) |
(-.f64 (/.f64 (*.f64 x x) (+.f64 #s(literal -1 binary64) x)) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal -1 binary64) x))) |
(-.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64)))) (/.f64 #s(literal -1 binary64) (fma.f64 x x (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64))))) |
(-.f64 x #s(literal -1 binary64)) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) |
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x)) |
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(fma.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))) |
(fma.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))) |
(+.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) |
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) |
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal -1 binary64)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 3 binary64)) #s(literal -1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x)))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal -1 binary64))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 3 binary64)) #s(literal -1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x)))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 3 binary64)) #s(literal -1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) |
(fma.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal -1 binary64)) #s(literal -1 binary64) #s(literal 1 binary64)) |
(fma.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 1 binary64) #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 1 binary64)) |
(fma.f64 x (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 x (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #s(literal 1 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal -1 binary64)))) |
(-.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal -1 binary64)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))) x)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 x) (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)))) |
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x)))) |
(+.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 1 binary64)) |
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x)) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) x))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) x)) |
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (+.f64 #s(literal 1 binary64) x)) |
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 3 binary64))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (+.f64 (fma.f64 x x x) #s(literal 1 binary64))) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) (*.f64 x x))) (+.f64 #s(literal 1 binary64) x)) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 3 binary64)))) (+.f64 (fma.f64 x x x) #s(literal 1 binary64))) |
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (neg.f64 (+.f64 #s(literal 1 binary64) x))) |
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (+.f64 (fma.f64 x x x) #s(literal 1 binary64)))) |
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)) (+.f64 #s(literal 1 binary64) x)) |
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 3 binary64))) (+.f64 (fma.f64 x x x) #s(literal 1 binary64))) |
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) x)) (/.f64 (*.f64 x x) (+.f64 #s(literal 1 binary64) x))) |
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (fma.f64 x x x) #s(literal 1 binary64))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (+.f64 (fma.f64 x x x) #s(literal 1 binary64)))) |
(-.f64 #s(literal 1 binary64) x) |
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x)))) |
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x)))) (exp.f64 x)) |
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) #s(literal 1 binary64)) (exp.f64 x)) |
(fma.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))))) |
(fma.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (cosh.f64 x) (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (sinh.f64 (neg.f64 x)))) |
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))))) |
(+.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (sinh.f64 (neg.f64 x)))) |
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) |
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x)) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))))) |
(fma.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))))) |
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x)))) |
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) |
(/.f64 (-.f64 (*.f64 (cosh.f64 x) (cosh.f64 x)) (*.f64 (sinh.f64 x) (sinh.f64 x))) (exp.f64 (neg.f64 x))) |
(/.f64 (+.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (pow.f64 (sinh.f64 x) #s(literal 3 binary64))) (fma.f64 (cosh.f64 x) (cosh.f64 x) (-.f64 (*.f64 (sinh.f64 x) (sinh.f64 x)) (*.f64 (cosh.f64 x) (sinh.f64 x))))) |
(exp.f64 x) |
(+.f64 (sinh.f64 x) (cosh.f64 x)) |
(+.f64 (cosh.f64 x) (sinh.f64 x)) |
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))) |
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))) |
(*.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)) (pow.f64 (cos.f64 x) #s(literal 1/4 binary64))) |
(pow.f64 (cos.f64 x) #s(literal 1/2 binary64)) |
(sqrt.f64 (cos.f64 x)) |
(exp.f64 (*.f64 (log.f64 (cos.f64 x)) #s(literal 1/2 binary64))) |
(*.f64 (*.f64 #s(literal -19/5760 binary64) (fabs.f64 x)) (fabs.f64 x)) |
(*.f64 (*.f64 #s(literal -19/5760 binary64) (neg.f64 x)) (neg.f64 x)) |
(*.f64 (*.f64 #s(literal -19/5760 binary64) x) x) |
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal -19/5760 binary64))) |
(*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) |
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal -19/5760 binary64))) |
(*.f64 (*.f64 x x) #s(literal -19/5760 binary64)) |
(*.f64 x (*.f64 #s(literal -19/5760 binary64) x)) |
Compiled 4 461 to 535 computations (88% saved)
24 alts after pruning (12 fresh and 12 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 143 | 8 | 151 |
| Fresh | 0 | 4 | 4 |
| Picked | 1 | 4 | 5 |
| Done | 0 | 8 | 8 |
| Total | 144 | 24 | 168 |
| Status | Accuracy | Program |
|---|---|---|
| 8.0% | (/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) | |
| 7.9% | (/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) | |
| 14.8% | (/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) | |
| 25.0% | (/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) | |
| ✓ | 8.3% | (-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
| 8.2% | (*.f64 (fmod.f64 (+.f64 (/.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) | |
| ✓ | 8.3% | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| ✓ | 8.0% | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x))) |
| ✓ | 8.0% | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| ✓ | 8.0% | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| ✓ | 7.9% | (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| 12.1% | (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| 14.9% | (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (*.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)) (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)))) (exp.f64 (neg.f64 x))) | |
| ✓ | 14.8% | (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| ✓ | 25.0% | (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| 46.0% | (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) | |
| 46.0% | (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| 12.4% | (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) | |
| 12.4% | (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) | |
| ✓ | 22.0% | (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| ✓ | 22.0% | (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| ✓ | 6.0% | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
| 6.8% | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) (*.f64 x x))) (+.f64 #s(literal 1 binary64) x))) | |
| ✓ | 6.8% | #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
Compiled 1 248 to 526 computations (57.9% saved)
| Inputs |
|---|
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (*.f64 x x) (-.f64 #s(literal 1 binary64) x)))) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) (*.f64 x x))) (+.f64 #s(literal 1 binary64) x))) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (*.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)) (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)))) (exp.f64 (neg.f64 x))) |
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(*.f64 (fmod.f64 (+.f64 (/.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| Outputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
2 calls:
| 8.0ms | x |
| 6.0ms | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 60.5% | 3 | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| 60.3% | 3 | x |
Compiled 11 to 9 computations (18.2% saved)
| Inputs |
|---|
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (*.f64 x x) (-.f64 #s(literal 1 binary64) x)))) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) (*.f64 x x))) (+.f64 #s(literal 1 binary64) x))) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| Outputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
1 calls:
| 5.0ms | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 59.0% | 2 | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
Compiled 10 to 8 computations (20% saved)
| Inputs |
|---|
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) |
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
| Outputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)) |
1 calls:
| 11.0ms | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 58.9% | 2 | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
Compiled 10 to 8 computations (20% saved)
| Inputs |
|---|
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| Outputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
1 calls:
| 2.0ms | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 58.9% | 2 | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
Compiled 10 to 8 computations (20% saved)
| Inputs |
|---|
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| Outputs |
|---|
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
2 calls:
| 2.0ms | x |
| 1.0ms | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 25.0% | 1 | x |
| 25.0% | 1 | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
Compiled 11 to 9 computations (18.2% saved)
| Inputs |
|---|
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
| Outputs |
|---|
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
2 calls:
| 1.0ms | x |
| 1.0ms | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 24.4% | 2 | x |
| 24.4% | 2 | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
Compiled 11 to 9 computations (18.2% saved)
Total 0.0b remaining (0%)
Threshold costs 0b (0%)
| Inputs |
|---|
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
| Outputs |
|---|
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
2 calls:
| 1.0ms | x |
| 1.0ms | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 6.0% | 1 | (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) |
| 6.0% | 1 | x |
Compiled 11 to 9 computations (18.2% saved)
| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 1.0 | NaN |
| 0.0ms | 8.406608742391013e-12 | 2.6561724780237843e-8 |
Compiled 13 to 12 computations (7.7% saved)
| 1× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 0.012725050899029759 | 0.9999999999999999 |
Compiled 13 to 12 computations (7.7% saved)
| 1× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 0.012725050899029759 | 0.9999999999999999 |
Compiled 13 to 12 computations (7.7% saved)
| 1× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 0.012725050899029759 | 0.9999999999999999 |
Compiled 13 to 12 computations (7.7% saved)
| 1× | binary-search |
| 1× | predicate-failed |
| Time | Left | Right |
|---|---|---|
| 20.0ms | 0.012765964256984683 | 7.596881839669079 |
| 10.0ms | 101× | 0 | invalid |
| 2.0ms | 16× | 0 | valid |
Compiled 56 to 44 computations (21.4% saved)
ival-cos: 3.0ms (32.8% of total)ival-exp: 2.0ms (21.9% of total)ival-fmod: 2.0ms (21.9% of total)ival-mult: 1.0ms (10.9% of total)ival-sqrt: 1.0ms (10.9% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)ival-neg: 0.0ms (0% of total)| 1× | egg-herbie |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 62 | 375 |
| 1 | 89 | 375 |
| 2 | 143 | 373 |
| 3 | 370 | 373 |
| 4 | 1842 | 373 |
| 1× | node limit |
| Inputs |
|---|
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 6189700196426901/618970019642690137449562112 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) (if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 2 binary64)) (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))))) |
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))) |
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))) |
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))) |
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(if (<=.f64 x #s(literal 1/2 binary64)) #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
| Outputs |
|---|
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 6189700196426901/618970019642690137449562112 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) (if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 2 binary64)) (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))))) |
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))) |
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) (/.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))) |
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))) |
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) (/.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))) |
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))) |
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) |
(if (<=.f64 x #s(literal 1/2 binary64)) #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))) |
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 84 | 264 |
| 1 | 259 | 224 |
| 2 | 809 | 217 |
| 3 | 3707 | 215 |
| 0 | 8595 | 202 |
| 0 | 147 | 649 |
| 1 | 503 | 549 |
| 2 | 1943 | 520 |
| 3 | 6439 | 520 |
| 0 | 8136 | 481 |
| 0 | 44 | 275 |
| 0 | 77 | 275 |
| 1 | 214 | 275 |
| 0 | 1473 | 275 |
| 0 | 81 | 238 |
| 1 | 248 | 217 |
| 2 | 815 | 211 |
| 3 | 3125 | 201 |
| 0 | 8746 | 181 |
| 0 | 76 | 218 |
| 1 | 225 | 197 |
| 2 | 690 | 191 |
| 3 | 2473 | 181 |
| 4 | 6178 | 181 |
| 0 | 8118 | 161 |
| 0 | 8 | 23 |
| 0 | 15 | 23 |
| 1 | 33 | 23 |
| 2 | 140 | 22 |
| 0 | 1064 | 22 |
| 1× | fuel |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | node limit |
Compiled 375 to 63 computations (83.2% saved)
Compiled 770 to 142 computations (81.6% saved)
Loading profile data...