
Time bar (total: 10.6s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 100% | 99.9% | 0% | 0.1% | 0% | 0% | 0% | 1 |
Compiled 7 to 7 computations (0% saved)
| 2.0s | 8 256× | 0 | valid |
ival-cos: 217.0ms (41.7% of total)ival-exp: 172.0ms (33.1% of total)ival-mult: 118.0ms (22.7% of total)ival-true: 7.0ms (1.3% of total)ival-assert: 4.0ms (0.8% of total)adjust: 2.0ms (0.4% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 0 | 0 | - | 0 | - | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 0 | 0 | - | 0 | - | (cos.f64 im) |
| 0 | 0 | - | 0 | - | re |
| 0 | 0 | - | 0 | - | (exp.f64 re) |
| 0 | 0 | - | 0 | - | im |
| Predicted + | Predicted - | |
|---|---|---|
| + | 0 | 0 |
| - | 0 | 256 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 0 | 0 | 0 |
| - | 0 | 0 | 256 |
| number | freq |
|---|---|
| 0 | 256 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 0 | 0 | 0 |
| - | 0 | 0 | 1 |
| 64.0ms | 512× | 0 | valid |
Compiled 31 to 19 computations (38.7% saved)
ival-mult: 35.0ms (68.1% of total)ival-cos: 12.0ms (23.3% of total)ival-exp: 4.0ms (7.8% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 15 | 29 |
| 1 | 51 | 29 |
| 2 | 138 | 27 |
| 3 | 417 | 27 |
| 4 | 1624 | 27 |
| 0 | 5 | 5 |
| 0 | 8 | 5 |
| 1 | 19 | 5 |
| 2 | 39 | 5 |
| 3 | 86 | 5 |
| 4 | 325 | 5 |
| 5 | 2558 | 5 |
| 0 | 8529 | 5 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (exp.f64 re) (cos.f64 im)) |
| Outputs |
|---|
(*.f64 (exp.f64 re) (cos.f64 im)) |
(*.f64 (cos.f64 im) (exp.f64 re)) |
(abs im)
Compiled 5 to 5 computations (0% saved)
Compiled 0 to 2 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 100.0% | (*.f64 (exp.f64 re) (cos.f64 im)) |
Compiled 5 to 5 computations (0% saved)
| 1× | egg-herbie |
Found 3 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (cos.f64 im) | |
| cost-diff | 0 | (exp.f64 re) | |
| cost-diff | 0 | (*.f64 (exp.f64 re) (cos.f64 im)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 5 | 11 |
| 0 | 8 | 11 |
| 1 | 19 | 11 |
| 2 | 39 | 11 |
| 3 | 86 | 11 |
| 4 | 325 | 11 |
| 5 | 2558 | 11 |
| 0 | 8529 | 11 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 (exp.f64 re) (cos.f64 im)) |
(exp.f64 re) |
re |
(cos.f64 im) |
im |
| Outputs |
|---|
(*.f64 (exp.f64 re) (cos.f64 im)) |
(*.f64 (cos.f64 im) (exp.f64 re)) |
(exp.f64 re) |
re |
(cos.f64 im) |
im |
Found 3 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (exp.f64 re) | |
| accuracy | 0.0 | (cos.f64 im) | |
| accuracy | 0.0078125 | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 16.0ms | 256× | 0 | valid |
Compiled 13 to 7 computations (46.2% saved)
ival-cos: 6.0ms (64% of total)ival-exp: 2.0ms (21.3% of total)ival-mult: 2.0ms (21.3% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
(*.f64 (exp.f64 re) (cos.f64 im)) |
(exp.f64 re) |
(cos.f64 im) |
| Outputs |
|---|
(cos im) |
(+ (cos im) (* re (cos im))) |
(+ (cos im) (* re (+ (cos im) (* 1/2 (* re (cos im)))))) |
(+ (cos im) (* re (+ (cos im) (* re (+ (* 1/6 (* re (cos im))) (* 1/2 (cos im))))))) |
1 |
(+ 1 re) |
(+ 1 (* re (+ 1 (* 1/2 re)))) |
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))) |
(* (cos im) (exp re)) |
(exp re) |
(+ (exp re) (* -1/2 (* (pow im 2) (exp re)))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* 1/24 (* (pow im 2) (exp re)))))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* (pow im 2) (+ (* -1/720 (* (pow im 2) (exp re))) (* 1/24 (exp re))))))) |
(+ 1 (* -1/2 (pow im 2))) |
(+ 1 (* (pow im 2) (- (* 1/24 (pow im 2)) 1/2))) |
(+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/24 (* -1/720 (pow im 2)))) 1/2))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | re | @ | inf | ((* (exp re) (cos im)) (exp re) (cos im)) |
| 1.0ms | re | @ | -inf | ((* (exp re) (cos im)) (exp re) (cos im)) |
| 1.0ms | im | @ | 0 | ((* (exp re) (cos im)) (exp re) (cos im)) |
| 0.0ms | re | @ | 0 | ((* (exp re) (cos im)) (exp re) (cos im)) |
| 0.0ms | im | @ | inf | ((* (exp re) (cos im)) (exp re) (cos im)) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 64 | 175 |
| 1 | 237 | 164 |
| 2 | 910 | 160 |
| 3 | 4069 | 156 |
| 0 | 8359 | 136 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(cos im) |
(+ (cos im) (* re (cos im))) |
(+ (cos im) (* re (+ (cos im) (* 1/2 (* re (cos im)))))) |
(+ (cos im) (* re (+ (cos im) (* re (+ (* 1/6 (* re (cos im))) (* 1/2 (cos im))))))) |
1 |
(+ 1 re) |
(+ 1 (* re (+ 1 (* 1/2 re)))) |
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))) |
(* (cos im) (exp re)) |
(exp re) |
(+ (exp re) (* -1/2 (* (pow im 2) (exp re)))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* 1/24 (* (pow im 2) (exp re)))))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* (pow im 2) (+ (* -1/720 (* (pow im 2) (exp re))) (* 1/24 (exp re))))))) |
(+ 1 (* -1/2 (pow im 2))) |
(+ 1 (* (pow im 2) (- (* 1/24 (pow im 2)) 1/2))) |
(+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/24 (* -1/720 (pow im 2)))) 1/2))) |
| Outputs |
|---|
(cos im) |
(cos.f64 im) |
(+ (cos im) (* re (cos im))) |
(fma.f64 (cos.f64 im) re (cos.f64 im)) |
(+ (cos im) (* re (+ (cos im) (* 1/2 (* re (cos im)))))) |
(*.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)) (cos.f64 im)) |
(+ (cos im) (* re (+ (cos im) (* re (+ (* 1/6 (* re (cos im))) (* 1/2 (cos im))))))) |
(*.f64 (cos.f64 im) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
1 |
#s(literal 1 binary64) |
(+ 1 re) |
(+.f64 #s(literal 1 binary64) re) |
(+ 1 (* re (+ 1 (* 1/2 re)))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(* (cos im) (exp re)) |
(*.f64 (exp.f64 re) (cos.f64 im)) |
(exp re) |
(exp.f64 re) |
(+ (exp re) (* -1/2 (* (pow im 2) (exp re)))) |
(*.f64 (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) (exp.f64 re)) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* 1/24 (* (pow im 2) (exp re)))))) |
(*.f64 (exp.f64 re) (fma.f64 (*.f64 #s(literal -1/2 binary64) im) im (fma.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64) #s(literal 1 binary64)))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* (pow im 2) (+ (* -1/720 (* (pow im 2) (exp re))) (* 1/24 (exp re))))))) |
(*.f64 (exp.f64 re) (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (pow.f64 im #s(literal 4 binary64)) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(+ 1 (* -1/2 (pow im 2))) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(+ 1 (* (pow im 2) (- (* 1/24 (pow im 2)) 1/2))) |
(fma.f64 (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/24 (* -1/720 (pow im 2)))) 1/2))) |
(fma.f64 (fma.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1/720 binary64) (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 1/2 binary64))) (*.f64 im im) #s(literal 1 binary64)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 5 | 9 |
| 0 | 8 | 9 |
| 1 | 19 | 9 |
| 2 | 88 | 9 |
| 0 | 656 | 9 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 (exp.f64 re) (cos.f64 im)) |
(exp.f64 re) |
(cos.f64 im) |
| Outputs |
|---|
(*.f64 (cos.f64 im) (exp.f64 re)) |
(*.f64 (exp.f64 re) (cos.f64 im)) |
(/.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64))) (cos.f64 im)) (fma.f64 (sinh.f64 re) (-.f64 (sinh.f64 re) (cosh.f64 re)) (pow.f64 (cosh.f64 re) #s(literal 2 binary64)))) |
(/.f64 (*.f64 (cos.f64 im) (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 re) (-.f64 (sinh.f64 re) (cosh.f64 re)) (pow.f64 (cosh.f64 re) #s(literal 2 binary64)))) |
(/.f64 (-.f64 (*.f64 (*.f64 (cosh.f64 re) (cos.f64 im)) (*.f64 (cosh.f64 re) (cos.f64 im))) (*.f64 (*.f64 (sinh.f64 re) (cos.f64 im)) (*.f64 (sinh.f64 re) (cos.f64 im)))) (-.f64 (*.f64 (cosh.f64 re) (cos.f64 im)) (*.f64 (sinh.f64 re) (cos.f64 im)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (cosh.f64 re) (cos.f64 im)) #s(literal 3 binary64)) (pow.f64 (*.f64 (sinh.f64 re) (cos.f64 im)) #s(literal 3 binary64))) (fma.f64 (*.f64 (cosh.f64 re) (cos.f64 im)) (*.f64 (cosh.f64 re) (cos.f64 im)) (-.f64 (*.f64 (*.f64 (sinh.f64 re) (cos.f64 im)) (*.f64 (sinh.f64 re) (cos.f64 im))) (*.f64 (*.f64 (cosh.f64 re) (cos.f64 im)) (*.f64 (sinh.f64 re) (cos.f64 im)))))) |
(/.f64 (*.f64 #s(literal 1 binary64) (cos.f64 im)) (exp.f64 (neg.f64 re))) |
(fma.f64 (*.f64 #s(literal 0 binary64) (sin.f64 im)) (exp.f64 re) (*.f64 (*.f64 #s(literal 1 binary64) (cos.f64 im)) (exp.f64 re))) |
(fma.f64 (sinh.f64 re) (cos.f64 im) (*.f64 (cosh.f64 re) (cos.f64 im))) |
(fma.f64 (cosh.f64 re) (cos.f64 im) (*.f64 (sinh.f64 re) (cos.f64 im))) |
(fma.f64 (cos.f64 im) (sinh.f64 re) (*.f64 (cosh.f64 re) (cos.f64 im))) |
(fma.f64 (cos.f64 im) (cosh.f64 re) (*.f64 (sinh.f64 re) (cos.f64 im))) |
(fma.f64 (exp.f64 re) (*.f64 #s(literal 0 binary64) (sin.f64 im)) (*.f64 (exp.f64 re) (*.f64 #s(literal 1 binary64) (cos.f64 im)))) |
(-.f64 (*.f64 (cosh.f64 re) (cos.f64 im)) (*.f64 (neg.f64 (sinh.f64 re)) (cos.f64 im))) |
(-.f64 (*.f64 (cosh.f64 re) (cos.f64 im)) (*.f64 (neg.f64 (cos.f64 im)) (sinh.f64 re))) |
(+.f64 (*.f64 (*.f64 #s(literal 0 binary64) (sin.f64 im)) (exp.f64 re)) (*.f64 (*.f64 #s(literal 1 binary64) (cos.f64 im)) (exp.f64 re))) |
(+.f64 (*.f64 (exp.f64 re) (*.f64 #s(literal 0 binary64) (sin.f64 im))) (*.f64 (exp.f64 re) (*.f64 #s(literal 1 binary64) (cos.f64 im)))) |
(+.f64 (*.f64 (sinh.f64 re) (cos.f64 im)) (*.f64 (cosh.f64 re) (cos.f64 im))) |
(+.f64 (*.f64 (cosh.f64 re) (cos.f64 im)) (*.f64 (sinh.f64 re) (cos.f64 im))) |
(/.f64 (-.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (pow.f64 (cosh.f64 re) #s(literal 2 binary64))) (-.f64 (sinh.f64 re) (cosh.f64 re))) |
(/.f64 (fma.f64 #s(literal 2 binary64) (sinh.f64 re) (*.f64 #s(literal 2 binary64) (cosh.f64 re))) #s(literal 2 binary64)) |
(/.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 re))) #s(literal 2 binary64)) |
(/.f64 #s(literal -1 binary64) (neg.f64 (exp.f64 (neg.f64 re)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (sinh.f64 re) (-.f64 (sinh.f64 re) (cosh.f64 re)) (pow.f64 (cosh.f64 re) #s(literal 2 binary64))))) |
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 re)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 re)))) #s(literal 4 binary64)) |
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 re)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 re)))) #s(literal 4 binary64)) |
(/.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64))) (fma.f64 (sinh.f64 re) (sinh.f64 re) (-.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (*.f64 (sinh.f64 re) (cosh.f64 re))))) |
(/.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64))) (fma.f64 (sinh.f64 re) (-.f64 (sinh.f64 re) (cosh.f64 re)) (pow.f64 (cosh.f64 re) #s(literal 2 binary64)))) |
(/.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 re))) |
(-.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re)))) |
(exp.f64 re) |
(+.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (sinh.f64 re) (-.f64 (sinh.f64 re) (cosh.f64 re)) (pow.f64 (cosh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (sinh.f64 re) (-.f64 (sinh.f64 re) (cosh.f64 re)) (pow.f64 (cosh.f64 re) #s(literal 2 binary64))))) |
(+.f64 (sinh.f64 re) (cosh.f64 re)) |
(+.f64 (cosh.f64 re) (sinh.f64 re)) |
(/.f64 (-.f64 (*.f64 (*.f64 #s(literal 0 binary64) (sin.f64 im)) (*.f64 #s(literal 0 binary64) (sin.f64 im))) (*.f64 (*.f64 #s(literal 1 binary64) (cos.f64 im)) (*.f64 #s(literal 1 binary64) (cos.f64 im)))) (-.f64 (*.f64 #s(literal 0 binary64) (sin.f64 im)) (*.f64 #s(literal 1 binary64) (cos.f64 im)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 #s(literal 0 binary64) (sin.f64 im)) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal 1 binary64) (cos.f64 im)) #s(literal 3 binary64))) (fma.f64 (*.f64 #s(literal 0 binary64) (sin.f64 im)) (*.f64 #s(literal 0 binary64) (sin.f64 im)) (-.f64 (*.f64 (*.f64 #s(literal 1 binary64) (cos.f64 im)) (*.f64 #s(literal 1 binary64) (cos.f64 im))) (*.f64 (*.f64 #s(literal 0 binary64) (sin.f64 im)) (*.f64 #s(literal 1 binary64) (cos.f64 im)))))) |
(fma.f64 (sin.f64 (neg.f64 im)) #s(literal 0 binary64) (*.f64 #s(literal 1 binary64) (cos.f64 im))) |
(fma.f64 #s(literal 1 binary64) (cos.f64 im) (*.f64 #s(literal 0 binary64) (sin.f64 im))) |
(fma.f64 #s(literal 0 binary64) (sin.f64 im) (*.f64 #s(literal 1 binary64) (cos.f64 im))) |
(fma.f64 (sin.f64 im) #s(literal 0 binary64) (*.f64 #s(literal 1 binary64) (cos.f64 im))) |
(fma.f64 (cos.f64 im) #s(literal 1 binary64) (*.f64 #s(literal 0 binary64) (sin.f64 im))) |
(sin.f64 (+.f64 (neg.f64 im) (/.f64 (PI.f64) #s(literal 2 binary64)))) |
(sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) im)) |
(-.f64 (*.f64 #s(literal 0 binary64) (sin.f64 im)) (*.f64 (neg.f64 (cos.f64 im)) #s(literal 1 binary64))) |
(cos.f64 (neg.f64 im)) |
(cos.f64 im) |
(+.f64 (*.f64 (sin.f64 (neg.f64 im)) #s(literal 0 binary64)) (*.f64 #s(literal 1 binary64) (cos.f64 im))) |
(+.f64 (*.f64 #s(literal 1 binary64) (cos.f64 im)) (*.f64 #s(literal 0 binary64) (sin.f64 im))) |
(+.f64 (*.f64 #s(literal 0 binary64) (sin.f64 im)) (*.f64 #s(literal 1 binary64) (cos.f64 im))) |
Compiled 996 to 215 computations (78.4% saved)
8 alts after pruning (7 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 58 | 7 | 65 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 58 | 8 | 66 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 57.6% | (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| ▶ | 62.0% | (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
| ▶ | 67.0% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
| ▶ | 63.4% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
| ▶ | 51.2% | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
| 51.2% | #s(approx (* (exp re) (cos im)) (fma.f64 (cos.f64 im) re (cos.f64 im))) | |
| ▶ | 50.2% | #s(approx (* (exp re) (cos im)) (cos.f64 im)) |
Compiled 181 to 141 computations (22.1% saved)
| 1× | egg-herbie |
Found 18 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) | |
| cost-diff | 0 | (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)) | |
| cost-diff | 0 | #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) | |
| cost-diff | 0 | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) | |
| cost-diff | 0 | (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) | |
| cost-diff | 0 | #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) | |
| cost-diff | 0 | (exp.f64 re) | |
| cost-diff | 0 | (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| cost-diff | 0 | (cos.f64 im) | |
| cost-diff | 0 | (+.f64 #s(literal 1 binary64) re) | |
| cost-diff | 0 | #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) | |
| cost-diff | 0 | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) | |
| cost-diff | 0 | (cos.f64 im) | |
| cost-diff | 0 | #s(approx (* (exp re) (cos im)) (cos.f64 im)) | |
| cost-diff | 0 | (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) | |
| cost-diff | 0 | (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) | |
| cost-diff | 0 | #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) | |
| cost-diff | 0 | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 28 | 167 |
| 0 | 50 | 167 |
| 1 | 85 | 167 |
| 2 | 190 | 167 |
| 3 | 560 | 167 |
| 4 | 1902 | 167 |
| 5 | 7522 | 167 |
| 0 | 8015 | 167 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
#s(literal 1/6 binary64) |
re |
#s(literal 1/2 binary64) |
#s(literal 1 binary64) |
(cos.f64 im) |
im |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
(cos.f64 im) |
im |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) |
(+.f64 #s(literal 1 binary64) re) |
#s(literal 1 binary64) |
re |
(cos.f64 im) |
im |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(exp.f64 re) |
re |
#s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(*.f64 im im) |
im |
#s(literal -1/2 binary64) |
#s(literal 1 binary64) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) |
#s(literal 1/2 binary64) |
re |
#s(literal 1 binary64) |
(cos.f64 im) |
im |
| Outputs |
|---|
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
(*.f64 (cos.f64 im) #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)))) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
#s(literal 1/6 binary64) |
re |
#s(literal 1/2 binary64) |
#s(literal 1 binary64) |
(cos.f64 im) |
im |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
(cos.f64 im) |
im |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) (cos.f64 im)) |
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) |
#s(approx (exp re) (-.f64 re #s(literal -1 binary64))) |
(+.f64 #s(literal 1 binary64) re) |
(-.f64 re #s(literal -1 binary64)) |
#s(literal 1 binary64) |
re |
(cos.f64 im) |
im |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) (exp.f64 re)) |
(exp.f64 re) |
re |
#s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) |
#s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64)) |
(*.f64 im im) |
im |
#s(literal -1/2 binary64) |
#s(literal 1 binary64) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) |
#s(literal 1/2 binary64) |
re |
#s(literal 1 binary64) |
(cos.f64 im) |
im |
Found 18 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) | |
| accuracy | 0.0 | (cos.f64 im) | |
| accuracy | 0.0078125 | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) | |
| accuracy | 23.381630793492096 | #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) | |
| accuracy | 0.0 | (*.f64 im im) | |
| accuracy | 0.0 | (exp.f64 re) | |
| accuracy | 0.0078125 | (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| accuracy | 31.888647635490102 | #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) | |
| accuracy | 0.0 | (+.f64 #s(literal 1 binary64) re) | |
| accuracy | 0.0 | (cos.f64 im) | |
| accuracy | 0.0078125 | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) | |
| accuracy | 31.220557498423553 | #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) | |
| accuracy | 0.0 | (cos.f64 im) | |
| accuracy | 31.870319103821963 | #s(approx (* (exp re) (cos im)) (cos.f64 im)) | |
| accuracy | 0.06640625 | (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) | |
| accuracy | 0.078125 | (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) | |
| accuracy | 0.203125 | (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) | |
| accuracy | 21.11807429164231 | #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
| 48.0ms | 256× | 0 | valid |
Compiled 116 to 25 computations (78.4% saved)
ival-mult: 12.0ms (36.5% of total)ival-add: 8.0ms (24.3% of total)ival-cos: 6.0ms (18.2% of total)const: 4.0ms (12.2% of total)ival-exp: 2.0ms (6.1% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)| Inputs |
|---|
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
(cos.f64 im) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) |
(+.f64 #s(literal 1 binary64) re) |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(exp.f64 re) |
#s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
(*.f64 im im) |
| Outputs |
|---|
(cos im) |
(+ (cos im) (* re (cos im))) |
(+ (cos im) (* re (+ (cos im) (* 1/2 (* re (cos im)))))) |
(+ (cos im) (* re (+ (cos im) (* re (+ (* 1/6 (* re (cos im))) (* 1/2 (cos im))))))) |
1 |
(+ 1 re) |
(+ 1 (* re (+ 1 (* 1/2 re)))) |
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))) |
(+ 1 (* 1/2 re)) |
(+ 1 (* re (+ 1/2 (* 1/6 re)))) |
1/2 |
(+ 1/2 (* 1/6 re)) |
(* (cos im) (exp re)) |
(exp re) |
(* 1/6 (pow re 3)) |
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re)))) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3)))))) |
(* 1/6 (pow re 2)) |
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re)))) |
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
re |
(* re (+ 1 (/ 1 re))) |
(* 1/2 (pow re 2)) |
(* (pow re 2) (+ 1/2 (/ 1 re))) |
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2))))) |
(* 1/2 re) |
(* re (+ 1/2 (/ 1 re))) |
(* 1/6 re) |
(* re (+ 1/6 (* 1/2 (/ 1 re)))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6))) |
(+ (exp re) (* -1/2 (* (pow im 2) (exp re)))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* 1/24 (* (pow im 2) (exp re)))))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* (pow im 2) (+ (* -1/720 (* (pow im 2) (exp re))) (* 1/24 (exp re))))))) |
(+ 1 (* -1/2 (pow im 2))) |
(+ 1 (* (pow im 2) (- (* 1/24 (pow im 2)) 1/2))) |
(+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/24 (* -1/720 (pow im 2)))) 1/2))) |
(pow im 2) |
(* -1/2 (pow im 2)) |
(* (pow im 2) (- (/ 1 (pow im 2)) 1/2)) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | re | @ | inf | ((* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (cos im) (* (exp re) (cos im)) (exp re) (+ 1 re) (* (exp re) (cos im)) (exp re) (cos im) (+ (* (* im im) -1/2) 1) (* (exp re) (cos im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (+ (* 1/2 re) 1) (+ (* 1/6 re) 1/2) (* im im)) |
| 2.0ms | re | @ | -inf | ((* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (cos im) (* (exp re) (cos im)) (exp re) (+ 1 re) (* (exp re) (cos im)) (exp re) (cos im) (+ (* (* im im) -1/2) 1) (* (exp re) (cos im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (+ (* 1/2 re) 1) (+ (* 1/6 re) 1/2) (* im im)) |
| 1.0ms | re | @ | 0 | ((* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (cos im) (* (exp re) (cos im)) (exp re) (+ 1 re) (* (exp re) (cos im)) (exp re) (cos im) (+ (* (* im im) -1/2) 1) (* (exp re) (cos im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (+ (* 1/2 re) 1) (+ (* 1/6 re) 1/2) (* im im)) |
| 1.0ms | im | @ | inf | ((* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (cos im) (* (exp re) (cos im)) (exp re) (+ 1 re) (* (exp re) (cos im)) (exp re) (cos im) (+ (* (* im im) -1/2) 1) (* (exp re) (cos im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (+ (* 1/2 re) 1) (+ (* 1/6 re) 1/2) (* im im)) |
| 1.0ms | im | @ | -inf | ((* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (cos im) (* (exp re) (cos im)) (exp re) (+ 1 re) (* (exp re) (cos im)) (exp re) (cos im) (+ (* (* im im) -1/2) 1) (* (exp re) (cos im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (+ (* 1/2 re) 1) (+ (* 1/6 re) 1/2) (* im im)) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 108 | 358 |
| 1 | 387 | 341 |
| 2 | 1456 | 333 |
| 3 | 5769 | 332 |
| 0 | 8274 | 292 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(cos im) |
(+ (cos im) (* re (cos im))) |
(+ (cos im) (* re (+ (cos im) (* 1/2 (* re (cos im)))))) |
(+ (cos im) (* re (+ (cos im) (* re (+ (* 1/6 (* re (cos im))) (* 1/2 (cos im))))))) |
1 |
(+ 1 re) |
(+ 1 (* re (+ 1 (* 1/2 re)))) |
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))) |
(+ 1 (* 1/2 re)) |
(+ 1 (* re (+ 1/2 (* 1/6 re)))) |
1/2 |
(+ 1/2 (* 1/6 re)) |
(* (cos im) (exp re)) |
(exp re) |
(* 1/6 (pow re 3)) |
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re)))) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3)))))) |
(* 1/6 (pow re 2)) |
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re)))) |
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
re |
(* re (+ 1 (/ 1 re))) |
(* 1/2 (pow re 2)) |
(* (pow re 2) (+ 1/2 (/ 1 re))) |
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2))))) |
(* 1/2 re) |
(* re (+ 1/2 (/ 1 re))) |
(* 1/6 re) |
(* re (+ 1/6 (* 1/2 (/ 1 re)))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6))) |
(+ (exp re) (* -1/2 (* (pow im 2) (exp re)))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* 1/24 (* (pow im 2) (exp re)))))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* (pow im 2) (+ (* -1/720 (* (pow im 2) (exp re))) (* 1/24 (exp re))))))) |
(+ 1 (* -1/2 (pow im 2))) |
(+ 1 (* (pow im 2) (- (* 1/24 (pow im 2)) 1/2))) |
(+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/24 (* -1/720 (pow im 2)))) 1/2))) |
(pow im 2) |
(* -1/2 (pow im 2)) |
(* (pow im 2) (- (/ 1 (pow im 2)) 1/2)) |
| Outputs |
|---|
(cos im) |
(cos.f64 im) |
(+ (cos im) (* re (cos im))) |
(fma.f64 (cos.f64 im) re (cos.f64 im)) |
(+ (cos im) (* re (+ (cos im) (* 1/2 (* re (cos im)))))) |
(*.f64 (cos.f64 im) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(+ (cos im) (* re (+ (cos im) (* re (+ (* 1/6 (* re (cos im))) (* 1/2 (cos im))))))) |
(fma.f64 (*.f64 (cos.f64 im) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))) re (cos.f64 im)) |
1 |
#s(literal 1 binary64) |
(+ 1 re) |
(-.f64 re #s(literal -1 binary64)) |
(+ 1 (* re (+ 1 (* 1/2 re)))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(+ 1 (* 1/2 re)) |
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) |
(+ 1 (* re (+ 1/2 (* 1/6 re)))) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
1/2 |
#s(literal 1/2 binary64) |
(+ 1/2 (* 1/6 re)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
(* (cos im) (exp re)) |
(*.f64 (cos.f64 im) (exp.f64 re)) |
(exp re) |
(exp.f64 re) |
(* 1/6 (pow re 3)) |
(*.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/6 binary64)) |
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re)))) |
(*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3)))))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(* 1/6 (pow re 2)) |
(*.f64 (*.f64 re re) #s(literal 1/6 binary64)) |
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re)))) |
(*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) |
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
re |
(* re (+ 1 (/ 1 re))) |
(-.f64 re #s(literal -1 binary64)) |
(* 1/2 (pow re 2)) |
(*.f64 (*.f64 re re) #s(literal 1/2 binary64)) |
(* (pow re 2) (+ 1/2 (/ 1 re))) |
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) |
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2))))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(* 1/2 re) |
(*.f64 #s(literal 1/2 binary64) re) |
(* re (+ 1/2 (/ 1 re))) |
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) |
(* 1/6 re) |
(*.f64 #s(literal 1/6 binary64) re) |
(* re (+ 1/6 (* 1/2 (/ 1 re)))) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6))) |
(*.f64 (pow.f64 (neg.f64 re) #s(literal 3 binary64)) (-.f64 (/.f64 (-.f64 #s(literal -1/2 binary64) (/.f64 #s(literal 1 binary64) re)) re) #s(literal 1/6 binary64))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6))) |
(*.f64 (pow.f64 (neg.f64 re) #s(literal 3 binary64)) (-.f64 (-.f64 (/.f64 #s(literal -1/2 binary64) re) (/.f64 (-.f64 re #s(literal -1 binary64)) (pow.f64 re #s(literal 3 binary64)))) #s(literal 1/6 binary64))) |
(+ (exp re) (* -1/2 (* (pow im 2) (exp re)))) |
(*.f64 (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) (exp.f64 re)) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* 1/24 (* (pow im 2) (exp re)))))) |
(fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (exp.f64 re)) (*.f64 im im) (exp.f64 re)) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* (pow im 2) (+ (* -1/720 (* (pow im 2) (exp re))) (* 1/24 (exp re))))))) |
(fma.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (exp.f64 re)) (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) (exp.f64 re))) |
(+ 1 (* -1/2 (pow im 2))) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(+ 1 (* (pow im 2) (- (* 1/24 (pow im 2)) 1/2))) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/24 (* -1/720 (pow im 2)))) 1/2))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(pow im 2) |
(*.f64 im im) |
(* -1/2 (pow im 2)) |
(*.f64 (*.f64 im im) #s(literal -1/2 binary64)) |
(* (pow im 2) (- (/ 1 (pow im 2)) 1/2)) |
(*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 28 | 144 |
| 0 | 50 | 144 |
| 1 | 163 | 144 |
| 0 | 1168 | 144 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
(cos.f64 im) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) |
(+.f64 #s(literal 1 binary64) re) |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(exp.f64 re) |
#s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
(*.f64 im im) |
| Outputs |
|---|
(*.f64 (cos.f64 im) #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64))) |
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)) |
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)) |
(fma.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 1 binary64) #s(literal 1 binary64)) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)) |
(fma.f64 re (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 re (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) #s(literal 1 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64)))) |
(-.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal -1 binary64)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))) re)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)))) |
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))) |
(+.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 1 binary64)) |
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)) |
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))) |
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)) |
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)) |
(fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
(fma.f64 re (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 re (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) #s(literal 1 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64)))) |
(-.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal -1 binary64)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)))) |
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))) |
(+.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64)) |
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)) |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
(fma.f64 (sin.f64 im) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64))) (*.f64 (cos.f64 im) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64))))) |
(sin.f64 (+.f64 (neg.f64 im) (/.f64 (PI.f64) #s(literal 2 binary64)))) |
(sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) im)) |
(cos.f64 (neg.f64 (neg.f64 im))) |
(cos.f64 (neg.f64 im)) |
(cos.f64 im) |
(+.f64 (*.f64 (sin.f64 im) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))) (*.f64 (cos.f64 im) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64))))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) (cos.f64 im)) |
(*.f64 (cos.f64 im) #s(approx (exp re) (-.f64 re #s(literal -1 binary64)))) |
#s(approx (exp re) (-.f64 re #s(literal -1 binary64))) |
(/.f64 (-.f64 (*.f64 re re) #s(literal 1 binary64)) (-.f64 re #s(literal 1 binary64))) |
(/.f64 (+.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 re re (-.f64 #s(literal 1 binary64) re))) |
(/.f64 (+.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64))) |
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 re re))) (neg.f64 (-.f64 #s(literal 1 binary64) re))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64)))) |
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 re re)) (-.f64 #s(literal 1 binary64) re)) |
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) re) |
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) re) |
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) re) |
(fma.f64 #s(literal 1 binary64) re #s(literal 1 binary64)) |
(fma.f64 re #s(literal 1 binary64) #s(literal 1 binary64)) |
(-.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) re)) (/.f64 (*.f64 re re) (-.f64 #s(literal 1 binary64) re))) |
(-.f64 re #s(literal -1 binary64)) |
(+.f64 (/.f64 #s(literal 1 binary64) (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64))) (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64)))) |
(+.f64 #s(literal 1 binary64) re) |
(+.f64 re #s(literal 1 binary64)) |
(*.f64 #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) (exp.f64 re)) |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64)))) |
(fma.f64 (cosh.f64 re) #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) (*.f64 (sinh.f64 re) #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))))) |
(fma.f64 #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) (cosh.f64 re) (*.f64 #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) (sinh.f64 re))) |
(+.f64 (*.f64 (cosh.f64 re) #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 (sinh.f64 re) #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))))) |
(+.f64 (*.f64 #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) (cosh.f64 re)) (*.f64 #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) (sinh.f64 re))) |
(/.f64 (-.f64 (*.f64 (cosh.f64 re) (cosh.f64 re)) (*.f64 (sinh.f64 re) (sinh.f64 re))) (-.f64 (cosh.f64 re) (sinh.f64 re))) |
(/.f64 (+.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (pow.f64 (sinh.f64 re) #s(literal 3 binary64))) (fma.f64 (cosh.f64 re) (cosh.f64 re) (-.f64 (*.f64 (sinh.f64 re) (sinh.f64 re)) (*.f64 (cosh.f64 re) (sinh.f64 re))))) |
(exp.f64 re) |
(+.f64 (sinh.f64 re) (cosh.f64 re)) |
(+.f64 (cosh.f64 re) (sinh.f64 re)) |
#s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) |
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 im im)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/2 binary64) (*.f64 im im)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal -1 binary64)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal -1 binary64))) |
(fma.f64 (*.f64 #s(literal -1/2 binary64) (fabs.f64 im)) (fabs.f64 im) #s(literal 1 binary64)) |
(fma.f64 (*.f64 #s(literal -1/2 binary64) (neg.f64 im)) (neg.f64 im) #s(literal 1 binary64)) |
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))) |
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))) |
(fma.f64 (*.f64 #s(literal -1/2 binary64) im) im #s(literal 1 binary64)) |
(fma.f64 (fabs.f64 im) (*.f64 (fabs.f64 im) #s(literal -1/2 binary64)) #s(literal 1 binary64)) |
(fma.f64 (neg.f64 im) (*.f64 (neg.f64 im) #s(literal -1/2 binary64)) #s(literal 1 binary64)) |
(fma.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 1 binary64) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 (*.f64 im im) #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64)) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(fma.f64 im (*.f64 (*.f64 #s(literal -1/2 binary64) im) #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 im (*.f64 #s(literal -1/2 binary64) im) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))) |
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal -1 binary64)))) |
(-.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal -1 binary64)) |
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (*.f64 im im))) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (*.f64 im im)) #s(literal -1/2 binary64))) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 im) (*.f64 #s(literal -1/2 binary64) im))) |
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/2 binary64) (*.f64 im im)))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))))) |
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 1 binary64)) |
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
(*.f64 (cos.f64 im) #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))) |
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal -1 binary64)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal -1 binary64))) |
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)) |
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)) |
(fma.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 1 binary64) #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)) |
(fma.f64 re (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 re (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) #s(literal 1 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal -1 binary64)))) |
(-.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal -1 binary64)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))) re)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)))) |
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))) |
(+.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 1 binary64)) |
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)) |
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re))) |
(/.f64 (neg.f64 (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) #s(literal -1 binary64))) (neg.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64)))) |
(/.f64 (neg.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/8 binary64) #s(literal 1 binary64))) (neg.f64 (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re))))) |
(/.f64 (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) #s(literal -1 binary64)) (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64))) |
(/.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/8 binary64) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 2 binary64)) (*.f64 #s(literal 1/2 binary64) re)))) |
(/.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/8 binary64) #s(literal 1 binary64)) (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re)))) |
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 #s(literal 1/2 binary64) re)) |
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 #s(literal 1/2 binary64) re)) |
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 1 binary64) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re)) |
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) |
(fma.f64 re #s(literal 1/2 binary64) #s(literal 1 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 2 binary64)) (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64)))) |
(-.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal -1 binary64)) |
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) re)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) #s(literal 1/2 binary64))) |
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 3 binary64)) (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re)))) (/.f64 #s(literal 1 binary64) (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re))))) |
(+.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 1 binary64)) |
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re)) |
(/.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64))) (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) re))) |
(/.f64 (neg.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64)))) |
(/.f64 (neg.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64)))))) |
(/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) |
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (-.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64)) (*.f64 re #s(literal 1/12 binary64))))) |
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64))) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))) |
(fma.f64 #s(literal 1/2 binary64) #s(literal 1 binary64) (*.f64 #s(literal 1/6 binary64) re)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
(fma.f64 re #s(literal 1/6 binary64) #s(literal 1/2 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) (/.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64)))) |
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) re)) |
(-.f64 #s(literal 1/2 binary64) (*.f64 (neg.f64 re) #s(literal 1/6 binary64))) |
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64)) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))) (/.f64 #s(literal 1/8 binary64) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64)))))) |
(+.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64)) |
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) re)) |
(*.f64 (pow.f64 im #s(literal 1 binary64)) (pow.f64 im #s(literal 1 binary64))) |
(*.f64 (neg.f64 (fabs.f64 im)) (neg.f64 (fabs.f64 im))) |
(*.f64 (fabs.f64 (fabs.f64 im)) (fabs.f64 (fabs.f64 im))) |
(*.f64 (neg.f64 (neg.f64 im)) (neg.f64 (neg.f64 im))) |
(*.f64 (fabs.f64 im) (fabs.f64 im)) |
(*.f64 (neg.f64 im) (neg.f64 im)) |
(*.f64 im im) |
(pow.f64 (fabs.f64 im) #s(literal 2 binary64)) |
(pow.f64 (neg.f64 im) #s(literal 2 binary64)) |
(pow.f64 im #s(literal 2 binary64)) |
(neg.f64 (*.f64 (neg.f64 im) im)) |
(neg.f64 (*.f64 im (neg.f64 im))) |
(fabs.f64 (*.f64 im im)) |
(exp.f64 (*.f64 (log.f64 im) #s(literal 2 binary64))) |
Compiled 5 002 to 973 computations (80.5% saved)
22 alts after pruning (16 fresh and 6 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 235 | 15 | 250 |
| Fresh | 1 | 1 | 2 |
| Picked | 0 | 5 | 5 |
| Done | 0 | 1 | 1 |
| Total | 236 | 22 | 258 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (*.f64 (exp.f64 re) (cos.f64 im)) |
| ✓ | 62.0% | (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
| 26.7% | (*.f64 (exp.f64 re) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) | |
| ✓ | 67.0% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
| ▶ | 39.2% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
| 39.8% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| ✓ | 63.4% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
| 36.5% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| 36.0% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| ✓ | 51.2% | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
| ▶ | 30.9% | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
| 30.6% | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| 19.3% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (cos.f64 im)) | |
| 19.6% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (cos.f64 im)) | |
| ▶ | 16.0% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
| 16.2% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im)) | |
| ▶ | 51.2% | #s(approx (* (exp re) (cos im)) (fma.f64 (cos.f64 im) re (cos.f64 im))) |
| 28.8% | #s(approx (* (exp re) (cos im)) (sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) im))) | |
| ✓ | 50.2% | #s(approx (* (exp re) (cos im)) (cos.f64 im)) |
| 30.5% | #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| 29.7% | #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| ▶ | 28.4% | #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
Compiled 735 to 530 computations (27.9% saved)
| 1× | egg-herbie |
Found 19 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) | |
| cost-diff | 0 | #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)) | |
| cost-diff | 0 | #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) | |
| cost-diff | 0 | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) | |
| cost-diff | 0 | (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) | |
| cost-diff | 0 | (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) | |
| cost-diff | 0 | #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) | |
| cost-diff | 0 | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| cost-diff | 0 | #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) | |
| cost-diff | 0 | (+.f64 #s(literal 1 binary64) re) | |
| cost-diff | 0 | #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) | |
| cost-diff | 0 | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| cost-diff | 0 | (*.f64 im im) | |
| cost-diff | 0 | (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) | |
| cost-diff | 0 | #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) | |
| cost-diff | 0 | #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| cost-diff | 0 | (cos.f64 im) | |
| cost-diff | 0 | (fma.f64 (cos.f64 im) re (cos.f64 im)) | |
| cost-diff | 0 | #s(approx (* (exp re) (cos im)) (fma.f64 (cos.f64 im) re (cos.f64 im))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 37 | 300 |
| 0 | 61 | 300 |
| 1 | 105 | 300 |
| 2 | 255 | 300 |
| 3 | 862 | 300 |
| 4 | 2944 | 300 |
| 0 | 8395 | 297 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) (fma.f64 (cos.f64 im) re (cos.f64 im))) |
(fma.f64 (cos.f64 im) re (cos.f64 im)) |
(cos.f64 im) |
im |
re |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(*.f64 im im) |
im |
#s(literal -1/2 binary64) |
#s(literal 1 binary64) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) |
(+.f64 #s(literal 1 binary64) re) |
#s(literal 1 binary64) |
re |
#s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) |
#s(literal 1/24 binary64) |
(*.f64 im im) |
im |
#s(literal -1/2 binary64) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
#s(literal 1/6 binary64) |
re |
#s(literal 1/2 binary64) |
#s(literal 1 binary64) |
#s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) |
#s(literal 1/24 binary64) |
(*.f64 im im) |
im |
#s(literal -1/2 binary64) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) |
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)) |
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) |
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) |
#s(literal 1/2 binary64) |
re |
#s(literal 1 binary64) |
(cos.f64 im) |
im |
| Outputs |
|---|
#s(approx (* (exp re) (cos im)) (fma.f64 (cos.f64 im) re (cos.f64 im))) |
(fma.f64 (cos.f64 im) re (cos.f64 im)) |
(cos.f64 im) |
im |
re |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) |
#s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64)) |
(*.f64 im im) |
im |
#s(literal -1/2 binary64) |
#s(literal 1 binary64) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) #s(approx (exp re) (-.f64 re #s(literal -1 binary64)))) |
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) |
#s(approx (exp re) (-.f64 re #s(literal -1 binary64))) |
(+.f64 #s(literal 1 binary64) re) |
(-.f64 re #s(literal -1 binary64)) |
#s(literal 1 binary64) |
re |
#s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) |
#s(literal 1/24 binary64) |
(*.f64 im im) |
im |
#s(literal -1/2 binary64) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
#s(literal 1/6 binary64) |
re |
#s(literal 1/2 binary64) |
#s(literal 1 binary64) |
#s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) |
#s(literal 1/24 binary64) |
(*.f64 im im) |
im |
#s(literal -1/2 binary64) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) |
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)) |
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) |
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) |
#s(literal 1/2 binary64) |
re |
#s(literal 1 binary64) |
(cos.f64 im) |
im |
Found 19 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0078125 | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) | |
| accuracy | 0.01171875 | (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) | |
| accuracy | 23.381630793492096 | #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) | |
| accuracy | 31.035755857348384 | #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)) | |
| accuracy | 0.09765625 | (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) | |
| accuracy | 0.203125 | (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) | |
| accuracy | 21.11807429164231 | #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) | |
| accuracy | 32.02444955495144 | #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) | |
| accuracy | 0.05078125 | (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) | |
| accuracy | 0.09765625 | (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) | |
| accuracy | 31.220557498423553 | #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) | |
| accuracy | 32.02444955495144 | #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) | |
| accuracy | 0.0 | (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) | |
| accuracy | 0.0 | (*.f64 im im) | |
| accuracy | 31.870319103821963 | #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| accuracy | 31.888647635490102 | #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) | |
| accuracy | 0.0 | (cos.f64 im) | |
| accuracy | 0.0703125 | (fma.f64 (cos.f64 im) re (cos.f64 im)) | |
| accuracy | 31.22861826924881 | #s(approx (* (exp re) (cos im)) (fma.f64 (cos.f64 im) re (cos.f64 im))) |
| 111.0ms | 256× | 0 | valid |
Compiled 178 to 32 computations (82% saved)
ival-add: 62.0ms (66.4% of total)ival-mult: 16.0ms (17.1% of total)ival-cos: 6.0ms (6.4% of total)const: 6.0ms (6.4% of total)ival-exp: 2.0ms (2.1% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (* (exp re) (cos im)) (fma.f64 (cos.f64 im) re (cos.f64 im))) |
(fma.f64 (cos.f64 im) re (cos.f64 im)) |
(cos.f64 im) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(*.f64 im im) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) |
(+.f64 #s(literal 1 binary64) re) |
#s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) |
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)) |
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) |
(fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
| Outputs |
|---|
(cos im) |
(+ (cos im) (* re (cos im))) |
(+ (cos im) (* re (+ (cos im) (* 1/2 (* re (cos im)))))) |
(+ (cos im) (* re (+ (cos im) (* re (+ (* 1/6 (* re (cos im))) (* 1/2 (cos im))))))) |
1 |
(+ 1 re) |
(+ 1 (* re (+ 1 (* 1/2 re)))) |
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))) |
(+ 1 (* 1/2 re)) |
(+ 1 (* re (+ 1/2 (* 1/6 re)))) |
re |
(* re (+ 1 (* 1/2 re))) |
1/2 |
(+ 1/2 (* 1/6 re)) |
(* (cos im) (exp re)) |
(* re (cos im)) |
(* re (+ (cos im) (/ (cos im) re))) |
(exp re) |
(* re (+ 1 (/ 1 re))) |
(* 1/6 (pow re 3)) |
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re)))) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3)))))) |
(* 1/6 (pow re 2)) |
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re)))) |
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
(* 1/2 (pow re 2)) |
(* (pow re 2) (+ 1/2 (/ 1 re))) |
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2))))) |
(* 1/6 re) |
(* re (+ 1/6 (* 1/2 (/ 1 re)))) |
(* -1 (* re (+ (* -1 (cos im)) (* -1 (/ (cos im) re))))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6))) |
(+ (exp re) (* -1/2 (* (pow im 2) (exp re)))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* 1/24 (* (pow im 2) (exp re)))))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* (pow im 2) (+ (* -1/720 (* (pow im 2) (exp re))) (* 1/24 (exp re))))))) |
(+ 1 (+ re (* (pow im 2) (- (* -1/2 re) 1/2)))) |
(+ 1 (+ re (* (pow im 2) (- (+ (* -1/2 re) (* (pow im 2) (+ 1/24 (* 1/24 re)))) 1/2)))) |
(+ 1 (+ re (* (pow im 2) (- (+ (* -1/2 re) (* (pow im 2) (+ 1/24 (+ (* 1/24 re) (* (pow im 2) (- (* -1/720 re) 1/720)))))) 1/2)))) |
(+ 1 (* -1/2 (pow im 2))) |
(+ 1 (* (pow im 2) (- (* 1/24 (pow im 2)) 1/2))) |
(+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/24 (* -1/720 (pow im 2)))) 1/2))) |
(pow im 2) |
-1/2 |
(- (* 1/24 (pow im 2)) 1/2) |
(* -1/2 (pow im 2)) |
(* (pow im 2) (- (/ 1 (pow im 2)) 1/2)) |
(* 1/24 (pow im 2)) |
(* (pow im 2) (- 1/24 (* 1/2 (/ 1 (pow im 2))))) |
(* 1/24 (pow im 4)) |
(* (pow im 4) (- 1/24 (* 1/2 (/ 1 (pow im 2))))) |
(* (pow im 4) (- (+ 1/24 (/ 1 (pow im 4))) (* 1/2 (/ 1 (pow im 2))))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | im | @ | 0 | ((* (exp re) (cos im)) (+ (* (cos im) re) (cos im)) (cos im) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* im im) (* (exp re) (cos im)) (exp re) (+ 1 re) (cos im) (* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (+ (* 1/2 re) 1) re) (+ (* 1/24 (* im im)) -1/2) (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (+ (* 1/6 re) 1/2)) |
| 1.0ms | im | @ | inf | ((* (exp re) (cos im)) (+ (* (cos im) re) (cos im)) (cos im) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* im im) (* (exp re) (cos im)) (exp re) (+ 1 re) (cos im) (* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (+ (* 1/2 re) 1) re) (+ (* 1/24 (* im im)) -1/2) (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (+ (* 1/6 re) 1/2)) |
| 1.0ms | re | @ | -inf | ((* (exp re) (cos im)) (+ (* (cos im) re) (cos im)) (cos im) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* im im) (* (exp re) (cos im)) (exp re) (+ 1 re) (cos im) (* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (+ (* 1/2 re) 1) re) (+ (* 1/24 (* im im)) -1/2) (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (+ (* 1/6 re) 1/2)) |
| 1.0ms | re | @ | inf | ((* (exp re) (cos im)) (+ (* (cos im) re) (cos im)) (cos im) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* im im) (* (exp re) (cos im)) (exp re) (+ 1 re) (cos im) (* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (+ (* 1/2 re) 1) re) (+ (* 1/24 (* im im)) -1/2) (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (+ (* 1/6 re) 1/2)) |
| 1.0ms | im | @ | -inf | ((* (exp re) (cos im)) (+ (* (cos im) re) (cos im)) (cos im) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* im im) (* (exp re) (cos im)) (exp re) (+ 1 re) (cos im) (* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (+ (* 1/2 re) 1) re) (+ (* 1/24 (* im im)) -1/2) (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (+ (* 1/6 re) 1/2)) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 151 | 497 |
| 1 | 517 | 482 |
| 2 | 1965 | 474 |
| 3 | 7925 | 474 |
| 0 | 8001 | 422 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(cos im) |
(+ (cos im) (* re (cos im))) |
(+ (cos im) (* re (+ (cos im) (* 1/2 (* re (cos im)))))) |
(+ (cos im) (* re (+ (cos im) (* re (+ (* 1/6 (* re (cos im))) (* 1/2 (cos im))))))) |
1 |
(+ 1 re) |
(+ 1 (* re (+ 1 (* 1/2 re)))) |
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))) |
(+ 1 (* 1/2 re)) |
(+ 1 (* re (+ 1/2 (* 1/6 re)))) |
re |
(* re (+ 1 (* 1/2 re))) |
1/2 |
(+ 1/2 (* 1/6 re)) |
(* (cos im) (exp re)) |
(* re (cos im)) |
(* re (+ (cos im) (/ (cos im) re))) |
(exp re) |
(* re (+ 1 (/ 1 re))) |
(* 1/6 (pow re 3)) |
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re)))) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3)))))) |
(* 1/6 (pow re 2)) |
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re)))) |
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
(* 1/2 (pow re 2)) |
(* (pow re 2) (+ 1/2 (/ 1 re))) |
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2))))) |
(* 1/6 re) |
(* re (+ 1/6 (* 1/2 (/ 1 re)))) |
(* -1 (* re (+ (* -1 (cos im)) (* -1 (/ (cos im) re))))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6))) |
(+ (exp re) (* -1/2 (* (pow im 2) (exp re)))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* 1/24 (* (pow im 2) (exp re)))))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* (pow im 2) (+ (* -1/720 (* (pow im 2) (exp re))) (* 1/24 (exp re))))))) |
(+ 1 (+ re (* (pow im 2) (- (* -1/2 re) 1/2)))) |
(+ 1 (+ re (* (pow im 2) (- (+ (* -1/2 re) (* (pow im 2) (+ 1/24 (* 1/24 re)))) 1/2)))) |
(+ 1 (+ re (* (pow im 2) (- (+ (* -1/2 re) (* (pow im 2) (+ 1/24 (+ (* 1/24 re) (* (pow im 2) (- (* -1/720 re) 1/720)))))) 1/2)))) |
(+ 1 (* -1/2 (pow im 2))) |
(+ 1 (* (pow im 2) (- (* 1/24 (pow im 2)) 1/2))) |
(+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/24 (* -1/720 (pow im 2)))) 1/2))) |
(pow im 2) |
-1/2 |
(- (* 1/24 (pow im 2)) 1/2) |
(* -1/2 (pow im 2)) |
(* (pow im 2) (- (/ 1 (pow im 2)) 1/2)) |
(* 1/24 (pow im 2)) |
(* (pow im 2) (- 1/24 (* 1/2 (/ 1 (pow im 2))))) |
(* 1/24 (pow im 4)) |
(* (pow im 4) (- 1/24 (* 1/2 (/ 1 (pow im 2))))) |
(* (pow im 4) (- (+ 1/24 (/ 1 (pow im 4))) (* 1/2 (/ 1 (pow im 2))))) |
| Outputs |
|---|
(cos im) |
(cos.f64 im) |
(+ (cos im) (* re (cos im))) |
(fma.f64 (cos.f64 im) re (cos.f64 im)) |
(+ (cos im) (* re (+ (cos im) (* 1/2 (* re (cos im)))))) |
(*.f64 (cos.f64 im) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(+ (cos im) (* re (+ (cos im) (* re (+ (* 1/6 (* re (cos im))) (* 1/2 (cos im))))))) |
(fma.f64 (*.f64 (cos.f64 im) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))) re (cos.f64 im)) |
1 |
#s(literal 1 binary64) |
(+ 1 re) |
(-.f64 re #s(literal -1 binary64)) |
(+ 1 (* re (+ 1 (* 1/2 re)))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(+ 1 (* 1/2 re)) |
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) |
(+ 1 (* re (+ 1/2 (* 1/6 re)))) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
re |
(* re (+ 1 (* 1/2 re))) |
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) |
1/2 |
#s(literal 1/2 binary64) |
(+ 1/2 (* 1/6 re)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
(* (cos im) (exp re)) |
(*.f64 (cos.f64 im) (exp.f64 re)) |
(* re (cos im)) |
(*.f64 (cos.f64 im) re) |
(* re (+ (cos im) (/ (cos im) re))) |
(fma.f64 (cos.f64 im) re (cos.f64 im)) |
(exp re) |
(exp.f64 re) |
(* re (+ 1 (/ 1 re))) |
(-.f64 re #s(literal -1 binary64)) |
(* 1/6 (pow re 3)) |
(*.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/6 binary64)) |
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re)))) |
(*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3)))))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(* 1/6 (pow re 2)) |
(*.f64 (*.f64 re re) #s(literal 1/6 binary64)) |
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re)))) |
(*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) |
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
(* 1/2 (pow re 2)) |
(*.f64 (*.f64 re re) #s(literal 1/2 binary64)) |
(* (pow re 2) (+ 1/2 (/ 1 re))) |
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) |
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2))))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(* 1/6 re) |
(*.f64 #s(literal 1/6 binary64) re) |
(* re (+ 1/6 (* 1/2 (/ 1 re)))) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
(* -1 (* re (+ (* -1 (cos im)) (* -1 (/ (cos im) re))))) |
(fma.f64 (cos.f64 im) re (cos.f64 im)) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6))) |
(*.f64 (pow.f64 (neg.f64 re) #s(literal 3 binary64)) (-.f64 (/.f64 (-.f64 #s(literal -1/2 binary64) (/.f64 #s(literal 1 binary64) re)) re) #s(literal 1/6 binary64))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6))) |
(*.f64 (pow.f64 (neg.f64 re) #s(literal 3 binary64)) (-.f64 (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (/.f64 (-.f64 re #s(literal -1 binary64)) re) re) #s(literal -1/2 binary64)) re) #s(literal 1/6 binary64))) |
(+ (exp re) (* -1/2 (* (pow im 2) (exp re)))) |
(*.f64 (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) (exp.f64 re)) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* 1/24 (* (pow im 2) (exp re)))))) |
(fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (exp.f64 re)) (*.f64 im im) (exp.f64 re)) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* (pow im 2) (+ (* -1/720 (* (pow im 2) (exp re))) (* 1/24 (exp re))))))) |
(fma.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (exp.f64 re)) (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) (exp.f64 re))) |
(+ 1 (+ re (* (pow im 2) (- (* -1/2 re) 1/2)))) |
(-.f64 (fma.f64 (fma.f64 #s(literal -1/2 binary64) re #s(literal -1/2 binary64)) (*.f64 im im) re) #s(literal -1 binary64)) |
(+ 1 (+ re (* (pow im 2) (- (+ (* -1/2 re) (* (pow im 2) (+ 1/24 (* 1/24 re)))) 1/2)))) |
(fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) re #s(literal 1/24 binary64)) im) im (fma.f64 #s(literal -1/2 binary64) re #s(literal -1/2 binary64))) (*.f64 im im) (-.f64 re #s(literal -1 binary64))) |
(+ 1 (+ re (* (pow im 2) (- (+ (* -1/2 re) (* (pow im 2) (+ 1/24 (+ (* 1/24 re) (* (pow im 2) (- (* -1/720 re) 1/720)))))) 1/2)))) |
(fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/720 binary64) re) #s(literal 1/720 binary64)) im) im (fma.f64 #s(literal 1/24 binary64) re #s(literal 1/24 binary64))) (*.f64 im im) (fma.f64 #s(literal -1/2 binary64) re #s(literal -1/2 binary64))) (*.f64 im im) (-.f64 re #s(literal -1 binary64))) |
(+ 1 (* -1/2 (pow im 2))) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(+ 1 (* (pow im 2) (- (* 1/24 (pow im 2)) 1/2))) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/24 (* -1/720 (pow im 2)))) 1/2))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(pow im 2) |
(*.f64 im im) |
-1/2 |
#s(literal -1/2 binary64) |
(- (* 1/24 (pow im 2)) 1/2) |
(fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) |
(* -1/2 (pow im 2)) |
(*.f64 (*.f64 im im) #s(literal -1/2 binary64)) |
(* (pow im 2) (- (/ 1 (pow im 2)) 1/2)) |
(*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im) |
(* 1/24 (pow im 2)) |
(*.f64 #s(literal 1/24 binary64) (*.f64 im im)) |
(* (pow im 2) (- 1/24 (* 1/2 (/ 1 (pow im 2))))) |
(*.f64 (*.f64 (-.f64 #s(literal 1/24 binary64) (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) im) im) |
(* 1/24 (pow im 4)) |
(*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)) |
(* (pow im 4) (- 1/24 (* 1/2 (/ 1 (pow im 2))))) |
(*.f64 (pow.f64 im #s(literal 4 binary64)) (-.f64 #s(literal 1/24 binary64) (/.f64 #s(literal 1/2 binary64) (*.f64 im im)))) |
(* (pow im 4) (- (+ 1/24 (/ 1 (pow im 4))) (* 1/2 (/ 1 (pow im 2))))) |
(*.f64 (-.f64 (+.f64 (/.f64 #s(literal 1 binary64) (pow.f64 im #s(literal 4 binary64))) #s(literal 1/24 binary64)) (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) (pow.f64 im #s(literal 4 binary64))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 37 | 236 |
| 0 | 61 | 236 |
| 1 | 217 | 236 |
| 0 | 1704 | 233 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) (fma.f64 (cos.f64 im) re (cos.f64 im))) |
(fma.f64 (cos.f64 im) re (cos.f64 im)) |
(cos.f64 im) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(*.f64 im im) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) |
(+.f64 #s(literal 1 binary64) re) |
#s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) |
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)) |
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) |
(fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
| Outputs |
|---|
#s(approx (* (exp re) (cos im)) (fma.f64 (cos.f64 im) re (cos.f64 im))) |
(*.f64 (-.f64 re #s(literal -1 binary64)) (cos.f64 im)) |
(/.f64 (-.f64 (pow.f64 (cos.f64 im) #s(literal 2 binary64)) (pow.f64 (*.f64 (cos.f64 im) re) #s(literal 2 binary64))) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 im) re) #s(literal 2 binary64)) (pow.f64 (cos.f64 im) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 im) #s(literal 3 binary64)) (pow.f64 (*.f64 (cos.f64 im) re) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)) (pow.f64 (*.f64 (cos.f64 im) re) #s(literal 2 binary64))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 im) re) #s(literal 2 binary64)) (pow.f64 (cos.f64 im) #s(literal 2 binary64))) (-.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))) |
(/.f64 (+.f64 (pow.f64 (cos.f64 im) #s(literal 3 binary64)) (pow.f64 (*.f64 (cos.f64 im) re) #s(literal 3 binary64))) (fma.f64 (cos.f64 im) (cos.f64 im) (-.f64 (pow.f64 (*.f64 (cos.f64 im) re) #s(literal 2 binary64)) (*.f64 re (pow.f64 (cos.f64 im) #s(literal 2 binary64)))))) |
(/.f64 (+.f64 (pow.f64 (cos.f64 im) #s(literal 3 binary64)) (pow.f64 (*.f64 (cos.f64 im) re) #s(literal 3 binary64))) (fma.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)) (pow.f64 (*.f64 (cos.f64 im) re) #s(literal 2 binary64)))) |
(fma.f64 (cos.f64 im) re (cos.f64 im)) |
(fma.f64 re (cos.f64 im) (cos.f64 im)) |
(-.f64 (/.f64 (pow.f64 (*.f64 (cos.f64 im) re) #s(literal 2 binary64)) (-.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))) (/.f64 (pow.f64 (cos.f64 im) #s(literal 2 binary64)) (-.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))) |
(-.f64 (cos.f64 im) (*.f64 (neg.f64 (cos.f64 im)) re)) |
(-.f64 (cos.f64 im) (*.f64 (neg.f64 re) (cos.f64 im))) |
(+.f64 (/.f64 (pow.f64 (*.f64 (cos.f64 im) re) #s(literal 3 binary64)) (fma.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)) (pow.f64 (*.f64 (cos.f64 im) re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (cos.f64 im) #s(literal 3 binary64)) (fma.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)) (pow.f64 (*.f64 (cos.f64 im) re) #s(literal 2 binary64))))) |
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)) |
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)) |
(fma.f64 (sin.f64 im) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64))) (*.f64 (cos.f64 im) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64))))) |
(sin.f64 (+.f64 (neg.f64 im) (/.f64 (PI.f64) #s(literal 2 binary64)))) |
(sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) im)) |
(cos.f64 (neg.f64 (neg.f64 im))) |
(cos.f64 (neg.f64 im)) |
(cos.f64 im) |
(+.f64 (*.f64 (sin.f64 im) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))) (*.f64 (cos.f64 im) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) |
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 im im)))) |
(/.f64 (fma.f64 (pow.f64 (*.f64 im im) #s(literal 3 binary64)) #s(literal -1/8 binary64) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))))) |
(/.f64 (fma.f64 (pow.f64 (*.f64 im im) #s(literal 3 binary64)) #s(literal -1/8 binary64) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/2 binary64) (*.f64 im im)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal -1 binary64)))) |
(/.f64 (neg.f64 (fma.f64 (pow.f64 (*.f64 im im) #s(literal 3 binary64)) #s(literal -1/8 binary64) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal -1 binary64))) |
(fma.f64 (*.f64 #s(literal -1/2 binary64) (fabs.f64 im)) (fabs.f64 im) #s(literal 1 binary64)) |
(fma.f64 (*.f64 #s(literal -1/2 binary64) (neg.f64 im)) (neg.f64 im) #s(literal 1 binary64)) |
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))) |
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))) |
(fma.f64 (*.f64 #s(literal -1/2 binary64) im) im #s(literal 1 binary64)) |
(fma.f64 (fabs.f64 im) (*.f64 (fabs.f64 im) #s(literal -1/2 binary64)) #s(literal 1 binary64)) |
(fma.f64 (neg.f64 im) (*.f64 (neg.f64 im) #s(literal -1/2 binary64)) #s(literal 1 binary64)) |
(fma.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 1 binary64) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 (*.f64 im im) #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64)) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(fma.f64 im (*.f64 (*.f64 #s(literal -1/2 binary64) im) #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 im (*.f64 #s(literal -1/2 binary64) im) #s(literal 1 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal -1 binary64)))) |
(-.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal -1 binary64)) |
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (*.f64 im im))) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (*.f64 im im)) #s(literal -1/2 binary64))) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 im) (*.f64 #s(literal -1/2 binary64) im))) |
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/2 binary64) (*.f64 im im)))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))))) |
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 1 binary64)) |
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))) |
(*.f64 (pow.f64 im #s(literal 1 binary64)) (pow.f64 im #s(literal 1 binary64))) |
(*.f64 (neg.f64 (fabs.f64 im)) (neg.f64 (fabs.f64 im))) |
(*.f64 (fabs.f64 (fabs.f64 im)) (fabs.f64 (fabs.f64 im))) |
(*.f64 (neg.f64 (neg.f64 im)) (neg.f64 (neg.f64 im))) |
(*.f64 (fabs.f64 im) (fabs.f64 im)) |
(*.f64 (neg.f64 im) (neg.f64 im)) |
(*.f64 im im) |
(pow.f64 (fabs.f64 im) #s(literal 2 binary64)) |
(pow.f64 (neg.f64 im) #s(literal 2 binary64)) |
(pow.f64 im #s(literal 2 binary64)) |
(neg.f64 (*.f64 (neg.f64 im) im)) |
(neg.f64 (*.f64 im (neg.f64 im))) |
(fabs.f64 (*.f64 im im)) |
(exp.f64 (*.f64 (log.f64 im) #s(literal 2 binary64))) |
(*.f64 #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) #s(approx (exp re) (-.f64 re #s(literal -1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (exp re) (-.f64 re #s(literal -1 binary64))) |
(/.f64 (-.f64 (*.f64 re re) #s(literal 1 binary64)) (-.f64 re #s(literal 1 binary64))) |
(/.f64 (+.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 re re (-.f64 #s(literal 1 binary64) re))) |
(/.f64 (+.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64))) |
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 re re))) (neg.f64 (-.f64 #s(literal 1 binary64) re))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64)))) |
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 re re)) (-.f64 #s(literal 1 binary64) re)) |
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) re) |
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) re) |
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) re) |
(fma.f64 #s(literal 1 binary64) re #s(literal 1 binary64)) |
(fma.f64 re #s(literal 1 binary64) #s(literal 1 binary64)) |
(-.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) re)) (/.f64 (*.f64 re re) (-.f64 #s(literal 1 binary64) re))) |
(-.f64 re #s(literal -1 binary64)) |
(+.f64 (/.f64 #s(literal 1 binary64) (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64))) (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64)))) |
(+.f64 #s(literal 1 binary64) re) |
(+.f64 re #s(literal 1 binary64)) |
#s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)))) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64))) |
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)) |
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)) |
(fma.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 1 binary64) #s(literal 1 binary64)) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)) |
(fma.f64 re (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 re (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) #s(literal 1 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64)))) |
(-.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal -1 binary64)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))) re)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)))) |
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))) |
(+.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 1 binary64)) |
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)) |
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))) |
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)) |
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)) |
(fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64) #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)) |
(fma.f64 re (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 re (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) #s(literal 1 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64)))) |
(-.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal -1 binary64)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)))) |
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))) |
(+.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64)) |
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
(*.f64 (cos.f64 im) #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))) |
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) |
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)) |
(*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 1 binary64)) |
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) |
(*.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)) |
(*.f64 re (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) #s(literal 1 binary64))) |
(*.f64 re (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))) |
(/.f64 (*.f64 (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) #s(literal -1 binary64)) re) (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64))) |
(/.f64 (*.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/8 binary64) #s(literal 1 binary64)) re) (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re)))) |
(/.f64 (*.f64 re (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) #s(literal -1 binary64))) (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64))) |
(/.f64 (*.f64 re (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/8 binary64) #s(literal 1 binary64))) (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re)))) |
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) re re) |
(fma.f64 #s(literal 1 binary64) re (*.f64 (*.f64 #s(literal 1/2 binary64) re) re)) |
(fma.f64 #s(literal 1 binary64) re (*.f64 re (*.f64 #s(literal 1/2 binary64) re))) |
(fma.f64 re (*.f64 #s(literal 1/2 binary64) re) re) |
(fma.f64 re #s(literal 1 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) re) re)) |
(fma.f64 re #s(literal 1 binary64) (*.f64 re (*.f64 #s(literal 1/2 binary64) re))) |
(+.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) re) |
(+.f64 (*.f64 re (*.f64 #s(literal 1/2 binary64) re)) re) |
(+.f64 re (*.f64 (*.f64 #s(literal 1/2 binary64) re) re)) |
(+.f64 re (*.f64 re (*.f64 #s(literal 1/2 binary64) re))) |
(/.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 2 binary64))) (-.f64 #s(literal -1/2 binary64) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/4 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal -1/2 binary64)))) |
(/.f64 (neg.f64 (+.f64 #s(literal -1/8 binary64) (pow.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 3 binary64)))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (*.f64 (*.f64 im im) #s(literal -1/48 binary64))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal -1/2 binary64))) |
(/.f64 (+.f64 #s(literal -1/8 binary64) (pow.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (-.f64 (pow.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 2 binary64)) (*.f64 (*.f64 im im) #s(literal -1/48 binary64))))) |
(/.f64 (+.f64 #s(literal -1/8 binary64) (pow.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 3 binary64))) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (*.f64 (*.f64 im im) #s(literal -1/48 binary64)))) |
(fma.f64 (*.f64 #s(literal 1/24 binary64) (fabs.f64 im)) (fabs.f64 im) #s(literal -1/2 binary64)) |
(fma.f64 (*.f64 #s(literal 1/24 binary64) (neg.f64 im)) (neg.f64 im) #s(literal -1/2 binary64)) |
(fma.f64 (*.f64 #s(literal 1/24 binary64) im) im #s(literal -1/2 binary64)) |
(fma.f64 (fabs.f64 im) (*.f64 (fabs.f64 im) #s(literal 1/24 binary64)) #s(literal -1/2 binary64)) |
(fma.f64 (neg.f64 im) (*.f64 (neg.f64 im) #s(literal 1/24 binary64)) #s(literal -1/2 binary64)) |
(fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) |
(fma.f64 #s(literal -1/2 binary64) #s(literal 1 binary64) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) |
(fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) |
(fma.f64 im (*.f64 #s(literal 1/24 binary64) im) #s(literal -1/2 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal -1/2 binary64))) (/.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal -1/2 binary64)))) |
(-.f64 #s(literal -1/2 binary64) (*.f64 (neg.f64 (*.f64 #s(literal 1/24 binary64) im)) im)) |
(-.f64 #s(literal -1/2 binary64) (*.f64 #s(literal -1/24 binary64) (*.f64 im im))) |
(-.f64 #s(literal -1/2 binary64) (*.f64 (neg.f64 (*.f64 im im)) #s(literal 1/24 binary64))) |
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (*.f64 (*.f64 im im) #s(literal -1/48 binary64)))) (/.f64 #s(literal -1/8 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (*.f64 (*.f64 im im) #s(literal -1/48 binary64))))) |
(+.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal -1/2 binary64)) |
(+.f64 #s(literal -1/2 binary64) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) |
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 2 binary64)) (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im)) (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 2 binary64)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal -1 binary64)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (+.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im)) (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 2 binary64))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal -1 binary64))) |
(fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (fabs.f64 im)) (fabs.f64 im) #s(literal 1 binary64)) |
(fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (neg.f64 im)) (neg.f64 im) #s(literal 1 binary64)) |
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im)) |
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im)) |
(fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) (*.f64 im #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)) |
(fma.f64 (fabs.f64 im) (*.f64 (fabs.f64 im) (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64))) #s(literal 1 binary64)) |
(fma.f64 (neg.f64 im) (*.f64 (neg.f64 im) (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64))) #s(literal 1 binary64)) |
(fma.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 1 binary64) #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 (*.f64 im im) #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im)) |
(fma.f64 (*.f64 im im) (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 (*.f64 im im) (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) #s(literal 1 binary64)) |
(fma.f64 im (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) #s(literal 1 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 2 binary64)) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal -1 binary64)))) |
(-.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal -1 binary64)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im)) im)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64))) (*.f64 im im))) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (*.f64 im im)) (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)))) |
(+.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 3 binary64)) (+.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im)) (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 2 binary64)))) (/.f64 #s(literal 1 binary64) (+.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im)) (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 2 binary64))))) |
(+.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im) #s(literal 1 binary64)) |
(+.f64 #s(literal 1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im)) |
(/.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64))) (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) re))) |
(/.f64 (neg.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64)))) |
(/.f64 (neg.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64)))))) |
(/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) |
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (-.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64)) (*.f64 re #s(literal 1/12 binary64))))) |
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64))) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))) |
(fma.f64 #s(literal 1/2 binary64) #s(literal 1 binary64) (*.f64 #s(literal 1/6 binary64) re)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
(fma.f64 re #s(literal 1/6 binary64) #s(literal 1/2 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) (/.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64)))) |
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) re)) |
(-.f64 #s(literal 1/2 binary64) (*.f64 (neg.f64 re) #s(literal 1/6 binary64))) |
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64)) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))) (/.f64 #s(literal 1/8 binary64) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64)))))) |
(+.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64)) |
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) re)) |
Compiled 11 653 to 1 393 computations (88% saved)
30 alts after pruning (21 fresh and 9 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 395 | 11 | 406 |
| Fresh | 1 | 10 | 11 |
| Picked | 2 | 3 | 5 |
| Done | 0 | 6 | 6 |
| Total | 398 | 30 | 428 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (*.f64 (exp.f64 re) (cos.f64 im)) |
| ✓ | 62.0% | (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
| 26.7% | (*.f64 (exp.f64 re) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) | |
| ✓ | 67.0% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
| ▶ | 39.8% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
| 39.2% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| ✓ | 63.4% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
| 36.0% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| ✓ | 51.2% | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
| 30.9% | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) | |
| 30.6% | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| 30.8% | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) | |
| ▶ | 18.5% | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) |
| 19.3% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (cos.f64 im)) | |
| 19.6% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (cos.f64 im)) | |
| ▶ | 15.9% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
| ✓ | 16.0% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
| 14.0% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| 13.4% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| 12.9% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| 16.2% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im)) | |
| ✓ | 51.2% | #s(approx (* (exp re) (cos im)) (fma.f64 (cos.f64 im) re (cos.f64 im))) |
| 28.8% | #s(approx (* (exp re) (cos im)) (sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) im))) | |
| ✓ | 50.2% | #s(approx (* (exp re) (cos im)) (cos.f64 im)) |
| 4.0% | #s(approx (* (exp re) (cos im)) #s(approx (+ (* (cos im) re) (cos im)) (*.f64 (cos.f64 im) re))) | |
| 30.5% | #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| 29.7% | #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| ✓ | 28.4% | #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
| ▶ | 23.4% | #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
| ▶ | 12.0% | #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
Compiled 1 186 to 846 computations (28.7% saved)
| 1× | egg-herbie |
Found 20 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)))) | |
| cost-diff | 0 | (+.f64 #s(literal 1 binary64) re) | |
| cost-diff | 0 | #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) | |
| cost-diff | 0 | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) | |
| cost-diff | 0 | (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re) | |
| cost-diff | 0 | #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re)) | |
| cost-diff | 0 | #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) | |
| cost-diff | 0 | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| cost-diff | 0 | (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im) | |
| cost-diff | 0 | #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)) | |
| cost-diff | 0 | #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im))) | |
| cost-diff | 0 | #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) | |
| cost-diff | 0 | (*.f64 (*.f64 im im) #s(literal -1/2 binary64)) | |
| cost-diff | 0 | #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))) | |
| cost-diff | 0 | #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64)))) | |
| cost-diff | 0 | #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) | |
| cost-diff | 0 | (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) | |
| cost-diff | 0 | (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) | |
| cost-diff | 0 | #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) | |
| cost-diff | 0 | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 58 | 466 |
| 0 | 83 | 466 |
| 1 | 130 | 466 |
| 2 | 271 | 466 |
| 3 | 843 | 466 |
| 4 | 2995 | 466 |
| 0 | 8253 | 466 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
#s(literal 1/6 binary64) |
re |
#s(literal 1/2 binary64) |
#s(literal 1 binary64) |
#s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(*.f64 im im) |
im |
#s(literal -1/2 binary64) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64)))) |
#s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))) |
(*.f64 (*.f64 im im) #s(literal -1/2 binary64)) |
(*.f64 im im) |
im |
#s(literal -1/2 binary64) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
#s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im))) |
#s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)) |
(*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im) |
(*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) |
(-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) |
(/.f64 #s(literal 1 binary64) (*.f64 im im)) |
#s(literal 1 binary64) |
(*.f64 im im) |
im |
#s(literal 1/2 binary64) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) |
#s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re)) |
(*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re) |
(*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
#s(literal 1/6 binary64) |
re |
#s(literal 1/2 binary64) |
#s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) |
#s(literal 1/24 binary64) |
(*.f64 im im) |
im |
#s(literal -1/2 binary64) |
#s(literal 1 binary64) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) |
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) |
(+.f64 #s(literal 1 binary64) re) |
#s(literal 1 binary64) |
re |
#s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)))) |
#s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))) |
(*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)) |
(pow.f64 im #s(literal 4 binary64)) |
im |
#s(literal 4 binary64) |
#s(literal 1/24 binary64) |
| Outputs |
|---|
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)))) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
#s(literal 1/6 binary64) |
re |
#s(literal 1/2 binary64) |
#s(literal 1 binary64) |
#s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) |
#s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64)) |
(*.f64 im im) |
im |
#s(literal -1/2 binary64) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))))) |
#s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64)))) |
#s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(literal -1/2 binary64) (*.f64 im im)))) |
#s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))) |
#s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))) |
(*.f64 (*.f64 im im) #s(literal -1/2 binary64)) |
(*.f64 #s(literal -1/2 binary64) (*.f64 im im)) |
(*.f64 im im) |
im |
#s(literal -1/2 binary64) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
#s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im))) |
#s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)) |
(*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im) |
(*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) |
(-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) |
(/.f64 #s(literal 1 binary64) (*.f64 im im)) |
#s(literal 1 binary64) |
(*.f64 im im) |
im |
#s(literal 1/2 binary64) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re)))) |
#s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) |
#s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re)) |
(*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re) |
(*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
#s(literal 1/6 binary64) |
re |
#s(literal 1/2 binary64) |
#s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) |
#s(literal 1/24 binary64) |
(*.f64 im im) |
im |
#s(literal -1/2 binary64) |
#s(literal 1 binary64) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) |
(*.f64 #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)))) #s(approx (exp re) (-.f64 re #s(literal -1 binary64)))) |
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) |
#s(approx (exp re) (-.f64 re #s(literal -1 binary64))) |
(+.f64 #s(literal 1 binary64) re) |
(-.f64 re #s(literal -1 binary64)) |
#s(literal 1 binary64) |
re |
#s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)))) |
#s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))) |
(*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)) |
(pow.f64 im #s(literal 4 binary64)) |
im |
#s(literal 4 binary64) |
#s(literal 1/24 binary64) |
Found 20 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.1171875 | (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)) | |
| accuracy | 30.25639040556121 | #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))) | |
| accuracy | 31.220557498423553 | #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) | |
| accuracy | 32.02444955495144 | #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)))) | |
| accuracy | 0.203125 | (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) | |
| accuracy | 21.11807429164231 | #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) | |
| accuracy | 30.911576939596067 | #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re)) | |
| accuracy | 32.02444955495144 | #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) | |
| accuracy | 0.22146371700114814 | (/.f64 #s(literal 1 binary64) (*.f64 im im)) | |
| accuracy | 12.917091327240135 | (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) | |
| accuracy | 31.870319103821963 | #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) | |
| accuracy | 31.888647635490102 | #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im))) | |
| accuracy | 0.0078125 | (*.f64 (*.f64 im im) #s(literal -1/2 binary64)) | |
| accuracy | 30.563729772091563 | #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))) | |
| accuracy | 31.870319103821963 | #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) | |
| accuracy | 31.888647635490102 | #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64)))) | |
| accuracy | 0.078125 | (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) | |
| accuracy | 0.203125 | (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) | |
| accuracy | 21.11807429164231 | #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) | |
| accuracy | 31.888647635490102 | #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) |
| 124.0ms | 256× | 0 | valid |
Compiled 241 to 34 computations (85.9% saved)
ival-sub: 30.0ms (34.7% of total)ival-mult: 28.0ms (32.4% of total)ival-add: 8.0ms (9.3% of total)const: 7.0ms (8.1% of total)ival-cos: 6.0ms (6.9% of total)ival-pow: 3.0ms (3.5% of total)ival-div: 2.0ms (2.3% of total)ival-exp: 2.0ms (2.3% of total)exact: 1.0ms (1.2% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| Inputs |
|---|
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64)))) |
#s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))) |
(*.f64 (*.f64 im im) #s(literal -1/2 binary64)) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
#s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im))) |
#s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)) |
(*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) |
#s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re)) |
(*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) |
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) |
(+.f64 #s(literal 1 binary64) re) |
#s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)))) |
#s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
(*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) |
(/.f64 #s(literal 1 binary64) (*.f64 im im)) |
#s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) |
#s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))) |
(*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)) |
| Outputs |
|---|
(cos im) |
(+ (cos im) (* re (cos im))) |
(+ (cos im) (* re (+ (cos im) (* 1/2 (* re (cos im)))))) |
(+ (cos im) (* re (+ (cos im) (* re (+ (* 1/6 (* re (cos im))) (* 1/2 (cos im))))))) |
1 |
(+ 1 re) |
(+ 1 (* re (+ 1 (* 1/2 re)))) |
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))) |
(+ 1 (* 1/2 re)) |
(+ 1 (* re (+ 1/2 (* 1/6 re)))) |
(* 1/2 (pow re 2)) |
(* (pow re 2) (+ 1/2 (* 1/6 re))) |
1/2 |
(+ 1/2 (* 1/6 re)) |
(* (cos im) (exp re)) |
(exp re) |
(* 1/6 (pow re 3)) |
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re)))) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3)))))) |
(* 1/6 (pow re 2)) |
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re)))) |
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
re |
(* re (+ 1 (/ 1 re))) |
(* 1/6 re) |
(* re (+ 1/6 (* 1/2 (/ 1 re)))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6))) |
(+ (exp re) (* -1/2 (* (pow im 2) (exp re)))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* 1/24 (* (pow im 2) (exp re)))))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* (pow im 2) (+ (* -1/720 (* (pow im 2) (exp re))) (* 1/24 (exp re))))))) |
(+ 1 (* -1/2 (pow im 2))) |
(+ 1 (* (pow im 2) (- (* 1/24 (pow im 2)) 1/2))) |
(+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/24 (* -1/720 (pow im 2)))) 1/2))) |
(* -1/2 (pow im 2)) |
(/ 1 im) |
(/ (+ 1 (* -1/2 (pow im 2))) im) |
(/ 1 (pow im 2)) |
(* 1/24 (pow im 4)) |
(* (pow im 2) (- (/ 1 (pow im 2)) 1/2)) |
(* -1/2 im) |
(* im (- (/ 1 (pow im 2)) 1/2)) |
(* (pow im 4) (- 1/24 (* 1/2 (/ 1 (pow im 2))))) |
(* (pow im 4) (- (+ 1/24 (/ 1 (pow im 4))) (* 1/2 (/ 1 (pow im 2))))) |
(* -1 (* im (- 1/2 (/ 1 (pow im 2))))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | im | @ | inf | ((* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* (* im im) -1/2) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* (* (- (/ 1 (* im im)) 1/2) im) im) (* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (* (* (+ (* 1/6 re) 1/2) re) re) (* (exp re) (cos im)) (exp re) (+ 1 re) (cos im) (cos im) (+ (* 1/6 re) 1/2) (* (- (/ 1 (* im im)) 1/2) im) (/ 1 (* im im)) (cos im) (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (* (pow im 4) 1/24)) |
| 2.0ms | im | @ | -inf | ((* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* (* im im) -1/2) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* (* (- (/ 1 (* im im)) 1/2) im) im) (* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (* (* (+ (* 1/6 re) 1/2) re) re) (* (exp re) (cos im)) (exp re) (+ 1 re) (cos im) (cos im) (+ (* 1/6 re) 1/2) (* (- (/ 1 (* im im)) 1/2) im) (/ 1 (* im im)) (cos im) (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (* (pow im 4) 1/24)) |
| 1.0ms | im | @ | 0 | ((* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* (* im im) -1/2) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* (* (- (/ 1 (* im im)) 1/2) im) im) (* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (* (* (+ (* 1/6 re) 1/2) re) re) (* (exp re) (cos im)) (exp re) (+ 1 re) (cos im) (cos im) (+ (* 1/6 re) 1/2) (* (- (/ 1 (* im im)) 1/2) im) (/ 1 (* im im)) (cos im) (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (* (pow im 4) 1/24)) |
| 1.0ms | re | @ | inf | ((* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* (* im im) -1/2) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* (* (- (/ 1 (* im im)) 1/2) im) im) (* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (* (* (+ (* 1/6 re) 1/2) re) re) (* (exp re) (cos im)) (exp re) (+ 1 re) (cos im) (cos im) (+ (* 1/6 re) 1/2) (* (- (/ 1 (* im im)) 1/2) im) (/ 1 (* im im)) (cos im) (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (* (pow im 4) 1/24)) |
| 1.0ms | re | @ | -inf | ((* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* (* im im) -1/2) (* (exp re) (cos im)) (cos im) (+ (* (* im im) -1/2) 1) (* (* (- (/ 1 (* im im)) 1/2) im) im) (* (exp re) (cos im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (* (* (+ (* 1/6 re) 1/2) re) re) (* (exp re) (cos im)) (exp re) (+ 1 re) (cos im) (cos im) (+ (* 1/6 re) 1/2) (* (- (/ 1 (* im im)) 1/2) im) (/ 1 (* im im)) (cos im) (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (* (pow im 4) 1/24)) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 123 | 410 |
| 1 | 412 | 395 |
| 2 | 1492 | 387 |
| 3 | 5569 | 386 |
| 0 | 8460 | 348 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(cos im) |
(+ (cos im) (* re (cos im))) |
(+ (cos im) (* re (+ (cos im) (* 1/2 (* re (cos im)))))) |
(+ (cos im) (* re (+ (cos im) (* re (+ (* 1/6 (* re (cos im))) (* 1/2 (cos im))))))) |
1 |
(+ 1 re) |
(+ 1 (* re (+ 1 (* 1/2 re)))) |
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))) |
(+ 1 (* 1/2 re)) |
(+ 1 (* re (+ 1/2 (* 1/6 re)))) |
(* 1/2 (pow re 2)) |
(* (pow re 2) (+ 1/2 (* 1/6 re))) |
1/2 |
(+ 1/2 (* 1/6 re)) |
(* (cos im) (exp re)) |
(exp re) |
(* 1/6 (pow re 3)) |
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re)))) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3)))))) |
(* 1/6 (pow re 2)) |
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re)))) |
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
re |
(* re (+ 1 (/ 1 re))) |
(* 1/6 re) |
(* re (+ 1/6 (* 1/2 (/ 1 re)))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6))) |
(+ (exp re) (* -1/2 (* (pow im 2) (exp re)))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* 1/24 (* (pow im 2) (exp re)))))) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* (pow im 2) (+ (* -1/720 (* (pow im 2) (exp re))) (* 1/24 (exp re))))))) |
(+ 1 (* -1/2 (pow im 2))) |
(+ 1 (* (pow im 2) (- (* 1/24 (pow im 2)) 1/2))) |
(+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/24 (* -1/720 (pow im 2)))) 1/2))) |
(* -1/2 (pow im 2)) |
(/ 1 im) |
(/ (+ 1 (* -1/2 (pow im 2))) im) |
(/ 1 (pow im 2)) |
(* 1/24 (pow im 4)) |
(* (pow im 2) (- (/ 1 (pow im 2)) 1/2)) |
(* -1/2 im) |
(* im (- (/ 1 (pow im 2)) 1/2)) |
(* (pow im 4) (- 1/24 (* 1/2 (/ 1 (pow im 2))))) |
(* (pow im 4) (- (+ 1/24 (/ 1 (pow im 4))) (* 1/2 (/ 1 (pow im 2))))) |
(* -1 (* im (- 1/2 (/ 1 (pow im 2))))) |
| Outputs |
|---|
(cos im) |
(cos.f64 im) |
(+ (cos im) (* re (cos im))) |
(fma.f64 (cos.f64 im) re (cos.f64 im)) |
(+ (cos im) (* re (+ (cos im) (* 1/2 (* re (cos im)))))) |
(*.f64 (cos.f64 im) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(+ (cos im) (* re (+ (cos im) (* re (+ (* 1/6 (* re (cos im))) (* 1/2 (cos im))))))) |
(fma.f64 (*.f64 (cos.f64 im) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))) re (cos.f64 im)) |
1 |
#s(literal 1 binary64) |
(+ 1 re) |
(-.f64 re #s(literal -1 binary64)) |
(+ 1 (* re (+ 1 (* 1/2 re)))) |
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(+ 1 (* 1/2 re)) |
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) |
(+ 1 (* re (+ 1/2 (* 1/6 re)))) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
(* 1/2 (pow re 2)) |
(*.f64 (*.f64 re re) #s(literal 1/2 binary64)) |
(* (pow re 2) (+ 1/2 (* 1/6 re))) |
(*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re) |
1/2 |
#s(literal 1/2 binary64) |
(+ 1/2 (* 1/6 re)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
(* (cos im) (exp re)) |
(*.f64 (cos.f64 im) (exp.f64 re)) |
(exp re) |
(exp.f64 re) |
(* 1/6 (pow re 3)) |
(*.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/6 binary64)) |
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re)))) |
(*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) |
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3)))))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(* 1/6 (pow re 2)) |
(*.f64 (*.f64 re re) #s(literal 1/6 binary64)) |
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re)))) |
(*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) |
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2))))) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
re |
(* re (+ 1 (/ 1 re))) |
(-.f64 re #s(literal -1 binary64)) |
(* 1/6 re) |
(*.f64 #s(literal 1/6 binary64) re) |
(* re (+ 1/6 (* 1/2 (/ 1 re)))) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6))) |
(*.f64 (pow.f64 (neg.f64 re) #s(literal 3 binary64)) (-.f64 (/.f64 (-.f64 #s(literal -1/2 binary64) (/.f64 #s(literal 1 binary64) re)) re) #s(literal 1/6 binary64))) |
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6))) |
(*.f64 (pow.f64 (neg.f64 re) #s(literal 3 binary64)) (-.f64 (-.f64 (/.f64 #s(literal -1/2 binary64) re) (/.f64 (-.f64 re #s(literal -1 binary64)) (pow.f64 re #s(literal 3 binary64)))) #s(literal 1/6 binary64))) |
(+ (exp re) (* -1/2 (* (pow im 2) (exp re)))) |
(*.f64 (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) (exp.f64 re)) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* 1/24 (* (pow im 2) (exp re)))))) |
(fma.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (exp.f64 re)) (*.f64 im im) (exp.f64 re)) |
(+ (exp re) (* (pow im 2) (+ (* -1/2 (exp re)) (* (pow im 2) (+ (* -1/720 (* (pow im 2) (exp re))) (* 1/24 (exp re))))))) |
(fma.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (exp.f64 re)) (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) (exp.f64 re))) |
(+ 1 (* -1/2 (pow im 2))) |
(fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(+ 1 (* (pow im 2) (- (* 1/24 (pow im 2)) 1/2))) |
(fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/24 (* -1/720 (pow im 2)))) 1/2))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)) |
(* -1/2 (pow im 2)) |
(*.f64 (*.f64 im im) #s(literal -1/2 binary64)) |
(/ 1 im) |
(/.f64 #s(literal 1 binary64) im) |
(/ (+ 1 (* -1/2 (pow im 2))) im) |
(/.f64 (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)) im) |
(/ 1 (pow im 2)) |
(/.f64 (/.f64 #s(literal 1 binary64) im) im) |
(* 1/24 (pow im 4)) |
(*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)) |
(* (pow im 2) (- (/ 1 (pow im 2)) 1/2)) |
(*.f64 (*.f64 (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) im) im) #s(literal 1/2 binary64)) im) im) |
(* -1/2 im) |
(*.f64 #s(literal -1/2 binary64) im) |
(* im (- (/ 1 (pow im 2)) 1/2)) |
(*.f64 (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) im) im) #s(literal 1/2 binary64)) im) |
(* (pow im 4) (- 1/24 (* 1/2 (/ 1 (pow im 2))))) |
(*.f64 (-.f64 #s(literal 1/24 binary64) (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) (pow.f64 im #s(literal 4 binary64))) |
(* (pow im 4) (- (+ 1/24 (/ 1 (pow im 4))) (* 1/2 (/ 1 (pow im 2))))) |
(*.f64 (-.f64 (+.f64 (/.f64 #s(literal 1 binary64) (pow.f64 im #s(literal 4 binary64))) #s(literal 1/24 binary64)) (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) (pow.f64 im #s(literal 4 binary64))) |
(* -1 (* im (- 1/2 (/ 1 (pow im 2))))) |
(*.f64 (neg.f64 im) (-.f64 #s(literal 1/2 binary64) (/.f64 (/.f64 #s(literal 1 binary64) im) im))) |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 58 | 388 |
| 0 | 83 | 388 |
| 1 | 229 | 376 |
| 0 | 1505 | 376 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64)))) |
#s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))) |
(*.f64 (*.f64 im im) #s(literal -1/2 binary64)) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
#s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im))) |
#s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)) |
(*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) |
#s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re)) |
(*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) |
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) |
(+.f64 #s(literal 1 binary64) re) |
#s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)))) |
#s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
(*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) |
(/.f64 #s(literal 1 binary64) (*.f64 im im)) |
#s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) |
#s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))) |
(*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)) |
| Outputs |
|---|
(*.f64 #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) |
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64))) |
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)) |
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)) |
(fma.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 1 binary64) #s(literal 1 binary64)) |
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)) |
(fma.f64 re (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 re (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) #s(literal 1 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64)))) |
(-.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal -1 binary64)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))) re)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)))) |
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))) |
(+.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 1 binary64)) |
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)) |
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))) |
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)) |
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)) |
(fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64)) |
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)) |
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) |
(fma.f64 re (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64)) |
(fma.f64 re (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) #s(literal 1 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64)))) |
(-.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal -1 binary64)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re)) |
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)))) |
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))) |
(+.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64)) |
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))))) |
#s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(literal -1/2 binary64) (*.f64 im im)))) |
#s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))) |
(*.f64 (*.f64 #s(literal -1/2 binary64) (fabs.f64 im)) (fabs.f64 im)) |
(*.f64 (*.f64 #s(literal -1/2 binary64) (neg.f64 im)) (neg.f64 im)) |
(*.f64 (*.f64 #s(literal -1/2 binary64) im) im) |
(*.f64 (fabs.f64 im) (*.f64 (fabs.f64 im) #s(literal -1/2 binary64))) |
(*.f64 (neg.f64 im) (*.f64 (neg.f64 im) #s(literal -1/2 binary64))) |
(*.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 im im)) #s(literal 1 binary64)) |
(*.f64 #s(literal -1/2 binary64) (*.f64 (*.f64 im im) #s(literal 1 binary64))) |
(*.f64 #s(literal -1/2 binary64) (*.f64 im im)) |
(*.f64 (*.f64 im im) #s(literal -1/2 binary64)) |
(*.f64 im (*.f64 (*.f64 #s(literal -1/2 binary64) im) #s(literal 1 binary64))) |
(*.f64 im (*.f64 #s(literal -1/2 binary64) im)) |
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 im im))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64)) im) im)))) |
#s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64)) im) im))) |
#s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64)) im) im)) |
(*.f64 (*.f64 (-.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64)) (fabs.f64 im)) (fabs.f64 im)) |
(*.f64 (*.f64 (-.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64)) (neg.f64 im)) (neg.f64 im)) |
(*.f64 (*.f64 (-.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64)) im) im) |
(*.f64 (-.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64)) (*.f64 im im)) |
(*.f64 (*.f64 im im) (-.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64))) |
(*.f64 im (*.f64 (-.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64)) im)) |
(/.f64 (*.f64 (-.f64 (pow.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1 binary64)) #s(literal 1/4 binary64)) (*.f64 im im)) (+.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64))) |
(/.f64 (*.f64 (-.f64 (pow.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 3 binary64)) #s(literal 1/8 binary64)) (*.f64 im im)) (fma.f64 #s(literal 1/2 binary64) (+.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64)) (pow.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1 binary64)))) |
(*.f64 #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) |
#s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re)) |
(*.f64 (*.f64 re re) (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) |
(*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re) |
(*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) (*.f64 re re)) |
(*.f64 re (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)) |
(/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) |
(/.f64 (*.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64))) (*.f64 re re)) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))) |
(*.f64 #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)))) #s(approx (exp re) (-.f64 re #s(literal -1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) |
#s(approx (exp re) (-.f64 re #s(literal -1 binary64))) |
(/.f64 (-.f64 (*.f64 re re) #s(literal 1 binary64)) (-.f64 re #s(literal 1 binary64))) |
(/.f64 (+.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 re re (-.f64 #s(literal 1 binary64) re))) |
(/.f64 (+.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64))) |
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 re re))) (neg.f64 (-.f64 #s(literal 1 binary64) re))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64)))) |
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 re re)) (-.f64 #s(literal 1 binary64) re)) |
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) re) |
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) re) |
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) re) |
(fma.f64 #s(literal 1 binary64) re #s(literal 1 binary64)) |
(fma.f64 re #s(literal 1 binary64) #s(literal 1 binary64)) |
(-.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) re)) (/.f64 (*.f64 re re) (-.f64 #s(literal 1 binary64) re))) |
(-.f64 re #s(literal -1 binary64)) |
(+.f64 (/.f64 #s(literal 1 binary64) (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64))) (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64)))) |
(+.f64 #s(literal 1 binary64) re) |
(+.f64 re #s(literal 1 binary64)) |
#s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)))) |
#s(approx (cos im) (fma.f64 #s(literal -1/2 binary64) (*.f64 im im) #s(literal 1 binary64))) |
(/.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64))) (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) re))) |
(/.f64 (neg.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64)))) |
(/.f64 (neg.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64)))))) |
(/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) |
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (-.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64)) (*.f64 re #s(literal 1/12 binary64))))) |
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64))) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))) |
(fma.f64 #s(literal 1 binary64) #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) re)) |
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) |
(fma.f64 re #s(literal 1/6 binary64) #s(literal 1/2 binary64)) |
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) (/.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64)))) |
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) re)) |
(-.f64 #s(literal 1/2 binary64) (*.f64 (neg.f64 re) #s(literal 1/6 binary64))) |
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64)) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))) (/.f64 #s(literal 1/8 binary64) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64)))))) |
(+.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64)) |
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) re)) |
(*.f64 (-.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64)) im) |
(*.f64 im (-.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64))) |
(/.f64 (*.f64 (-.f64 (pow.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1 binary64)) #s(literal 1/4 binary64)) im) (+.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64))) |
(/.f64 (*.f64 (-.f64 (pow.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 3 binary64)) #s(literal 1/8 binary64)) im) (fma.f64 #s(literal 1/2 binary64) (+.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64)) (pow.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1 binary64)))) |
(/.f64 (*.f64 im (-.f64 (pow.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1 binary64)) #s(literal 1/4 binary64))) (+.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64))) |
(/.f64 (*.f64 im (-.f64 (pow.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 3 binary64)) #s(literal 1/8 binary64))) (fma.f64 #s(literal 1/2 binary64) (+.f64 (pow.f64 im #s(literal -2 binary64)) #s(literal 1/2 binary64)) (pow.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1 binary64)))) |
(*.f64 (pow.f64 (*.f64 im im) #s(literal -1/2 binary64)) (pow.f64 (*.f64 im im) #s(literal -1/2 binary64))) |
(*.f64 (/.f64 #s(literal 1 binary64) (fabs.f64 im)) (/.f64 #s(literal 1 binary64) (fabs.f64 im))) |
(*.f64 (/.f64 #s(literal 1 binary64) (neg.f64 im)) (/.f64 #s(literal 1 binary64) (neg.f64 im))) |
(*.f64 (pow.f64 (fabs.f64 im) #s(literal -1 binary64)) (pow.f64 (fabs.f64 im) #s(literal -1 binary64))) |
(*.f64 (pow.f64 (neg.f64 im) #s(literal -1 binary64)) (pow.f64 (neg.f64 im) #s(literal -1 binary64))) |
(*.f64 (pow.f64 im #s(literal -1 binary64)) (pow.f64 im #s(literal -1 binary64))) |
(*.f64 #s(literal 1 binary64) (pow.f64 im #s(literal -2 binary64))) |
(pow.f64 (*.f64 im im) #s(literal -1 binary64)) |
(pow.f64 im #s(literal -2 binary64)) |
(/.f64 (/.f64 #s(literal 1 binary64) (fabs.f64 im)) (fabs.f64 im)) |
(/.f64 (/.f64 #s(literal 1 binary64) (neg.f64 im)) (neg.f64 im)) |
(/.f64 (neg.f64 (pow.f64 im #s(literal -1 binary64))) (neg.f64 im)) |
(/.f64 (pow.f64 im #s(literal -1 binary64)) im) |
(/.f64 #s(literal -1 binary64) (*.f64 (neg.f64 im) im)) |
(/.f64 #s(literal 1 binary64) (pow.f64 (*.f64 im im) #s(literal 1 binary64))) |
(/.f64 #s(literal 1 binary64) (*.f64 im im)) |
(neg.f64 (/.f64 #s(literal -1 binary64) (*.f64 im im))) |
(neg.f64 (/.f64 #s(literal 1 binary64) (*.f64 (neg.f64 im) im))) |
(exp.f64 (*.f64 (log.f64 (*.f64 im im)) #s(literal -1 binary64))) |
#s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))) |
#s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))) |
(*.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) (*.f64 im im)) |
(*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64)) |
(*.f64 #s(literal 1/24 binary64) (pow.f64 im #s(literal 4 binary64))) |
(*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) |
Compiled 6 623 to 987 computations (85.1% saved)
33 alts after pruning (21 fresh and 12 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 195 | 11 | 206 |
| Fresh | 6 | 10 | 16 |
| Picked | 2 | 3 | 5 |
| Done | 0 | 9 | 9 |
| Total | 203 | 33 | 236 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (*.f64 (exp.f64 re) (cos.f64 im)) |
| ✓ | 62.0% | (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
| 26.7% | (*.f64 (exp.f64 re) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) | |
| ✓ | 67.0% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
| ✓ | 39.8% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
| 39.8% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| 36.0% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| ✓ | 63.4% | (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
| 30.6% | (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| ✓ | 51.2% | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
| 30.9% | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) | |
| ✓ | 18.5% | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) |
| 18.5% | (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) | |
| 16.6% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| 19.3% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (cos.f64 im)) | |
| 19.6% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (cos.f64 im)) | |
| 16.6% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| 15.5% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| 13.3% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| ✓ | 16.0% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
| 14.0% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| 13.4% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| 12.9% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) | |
| 16.2% | (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im)) | |
| ✓ | 51.2% | #s(approx (* (exp re) (cos im)) (fma.f64 (cos.f64 im) re (cos.f64 im))) |
| 28.8% | #s(approx (* (exp re) (cos im)) (sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) im))) | |
| ✓ | 50.2% | #s(approx (* (exp re) (cos im)) (cos.f64 im)) |
| 4.0% | #s(approx (* (exp re) (cos im)) #s(approx (+ (* (cos im) re) (cos im)) (*.f64 (cos.f64 im) re))) | |
| 29.7% | #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) | |
| ✓ | 28.4% | #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
| ✓ | 23.4% | #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
| 12.0% | #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) | |
| 27.7% | #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
Compiled 1 885 to 760 computations (59.7% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) #s(approx (+ (* (cos im) re) (cos im)) (*.f64 (cos.f64 im) re))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) (sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) im))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (cos.f64 im)) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 (exp.f64 re) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) (fma.f64 (cos.f64 im) re (cos.f64 im))) |
| Outputs |
|---|
(*.f64 (exp.f64 re) (cos.f64 im)) |
5 calls:
| 27.0ms | im |
| 12.0ms | re |
| 11.0ms | (cos.f64 im) |
| 10.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 9.0ms | (exp.f64 re) |
| Accuracy | Segments | Branch |
|---|---|---|
| 100.0% | 1 | (cos.f64 im) |
| 100.0% | 1 | (exp.f64 re) |
| 100.0% | 1 | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 100.0% | 1 | re |
| 100.0% | 1 | im |
Compiled 11 to 15 computations (-36.4% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) #s(approx (+ (* (cos im) re) (cos im)) (*.f64 (cos.f64 im) re))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) (sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) im))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (cos.f64 im)) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
| Outputs |
|---|
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (cos.f64 im)) |
5 calls:
| 49.0ms | im |
| 22.0ms | (exp.f64 re) |
| 11.0ms | re |
| 11.0ms | (cos.f64 im) |
| 9.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 84.0% | 2 | (cos.f64 im) |
| 85.4% | 2 | (exp.f64 re) |
| 91.7% | 4 | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 91.7% | 4 | re |
| 83.6% | 2 | im |
Compiled 11 to 15 computations (-36.4% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) #s(approx (+ (* (cos im) re) (cos im)) (*.f64 (cos.f64 im) re))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) (sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) im))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (cos.f64 im)) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
| Outputs |
|---|
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im)) |
2 calls:
| 11.0ms | re |
| 11.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 88.6% | 4 | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 90.1% | 4 | re |
Compiled 6 to 7 computations (-16.7% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) #s(approx (+ (* (cos im) re) (cos im)) (*.f64 (cos.f64 im) re))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) (sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) im))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (cos.f64 im)) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
| Outputs |
|---|
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im)) |
1 calls:
| 11.0ms | re |
| Accuracy | Segments | Branch |
|---|---|---|
| 90.0% | 4 | re |
Compiled 1 to 2 computations (-100% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) #s(approx (+ (* (cos im) re) (cos im)) (*.f64 (cos.f64 im) re))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) (sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) im))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
| Outputs |
|---|
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im)) |
1 calls:
| 22.0ms | re |
| Accuracy | Segments | Branch |
|---|---|---|
| 89.8% | 4 | re |
Compiled 1 to 2 computations (-100% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) #s(approx (+ (* (cos im) re) (cos im)) (*.f64 (cos.f64 im) re))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) (sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) im))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (cos.f64 im)) |
| Outputs |
|---|
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
(*.f64 (exp.f64 re) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
3 calls:
| 10.0ms | re |
| 8.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 7.0ms | (exp.f64 re) |
| Accuracy | Segments | Branch |
|---|---|---|
| 82.6% | 3 | (exp.f64 re) |
| 89.2% | 5 | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 88.8% | 5 | re |
Compiled 8 to 10 computations (-25% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) #s(approx (+ (* (cos im) re) (cos im)) (*.f64 (cos.f64 im) re))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) (sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) im))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/24 binary64))))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im)) |
| Outputs |
|---|
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
5 calls:
| 31.0ms | im |
| 9.0ms | re |
| 9.0ms | (cos.f64 im) |
| 8.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 7.0ms | (exp.f64 re) |
| Accuracy | Segments | Branch |
|---|---|---|
| 75.4% | 3 | (exp.f64 re) |
| 58.5% | 2 | im |
| 58.8% | 2 | (cos.f64 im) |
| 81.6% | 5 | re |
| 82.0% | 5 | (*.f64 (exp.f64 re) (cos.f64 im)) |
Compiled 11 to 15 computations (-36.4% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
#s(approx (* (exp re) (cos im)) #s(approx (+ (* (cos im) re) (cos im)) (*.f64 (cos.f64 im) re))) |
| Outputs |
|---|
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
#s(approx (* (exp re) (cos im)) (cos.f64 im)) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
2 calls:
| 12.0ms | re |
| 7.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 77.6% | 4 | re |
| 81.5% | 5 | (*.f64 (exp.f64 re) (cos.f64 im)) |
Compiled 6 to 7 computations (-16.7% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
| Outputs |
|---|
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
5 calls:
| 12.0ms | re |
| 10.0ms | im |
| 7.0ms | (cos.f64 im) |
| 7.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 6.0ms | (exp.f64 re) |
| Accuracy | Segments | Branch |
|---|---|---|
| 39.8% | 1 | im |
| 46.4% | 2 | (cos.f64 im) |
| 52.5% | 3 | (exp.f64 re) |
| 55.3% | 4 | re |
| 59.6% | 4 | (*.f64 (exp.f64 re) (cos.f64 im)) |
Compiled 11 to 15 computations (-36.4% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
| Outputs |
|---|
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
1 calls:
| 6.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 59.4% | 4 | (*.f64 (exp.f64 re) (cos.f64 im)) |
Compiled 5 to 5 computations (0% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
| Outputs |
|---|
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
1 calls:
| 31.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 58.8% | 4 | (*.f64 (exp.f64 re) (cos.f64 im)) |
Compiled 5 to 5 computations (0% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
| Outputs |
|---|
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
1 calls:
| 5.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 56.7% | 4 | (*.f64 (exp.f64 re) (cos.f64 im)) |
Compiled 5 to 5 computations (0% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
| Outputs |
|---|
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
1 calls:
| 5.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 56.3% | 4 | (*.f64 (exp.f64 re) (cos.f64 im)) |
Compiled 5 to 5 computations (0% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 im im) #s(literal 1/24 binary64)) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
| Outputs |
|---|
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
2 calls:
| 22.0ms | re |
| 5.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 54.1% | 4 | re |
| 53.1% | 4 | (*.f64 (exp.f64 re) (cos.f64 im)) |
Compiled 6 to 7 computations (-16.7% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) im) im #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
| Outputs |
|---|
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
3 calls:
| 5.0ms | re |
| 4.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 4.0ms | (exp.f64 re) |
| Accuracy | Segments | Branch |
|---|---|---|
| 49.6% | 4 | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 47.1% | 2 | (exp.f64 re) |
| 50.5% | 4 | re |
Compiled 8 to 10 computations (-25% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) im) im)))) |
| Outputs |
|---|
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
1 calls:
| 7.0ms | re |
| Accuracy | Segments | Branch |
|---|---|---|
| 50.5% | 4 | re |
Compiled 1 to 2 computations (-100% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
| Outputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
4 calls:
| 5.0ms | (cos.f64 im) |
| 3.0ms | re |
| 3.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 2.0ms | (exp.f64 re) |
| Accuracy | Segments | Branch |
|---|---|---|
| 35.3% | 2 | (cos.f64 im) |
| 45.0% | 4 | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 44.6% | 3 | (exp.f64 re) |
| 46.5% | 4 | re |
Compiled 10 to 13 computations (-30% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
| Outputs |
|---|
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) |
4 calls:
| 3.0ms | re |
| 3.0ms | im |
| 2.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 2.0ms | (exp.f64 re) |
| Accuracy | Segments | Branch |
|---|---|---|
| 30.6% | 1 | im |
| 44.0% | 4 | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 39.4% | 3 | (exp.f64 re) |
| 41.3% | 4 | re |
Compiled 9 to 12 computations (-33.3% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
| Outputs |
|---|
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
2 calls:
| 2.0ms | re |
| 2.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 39.4% | 3 | re |
| 39.7% | 3 | (*.f64 (exp.f64 re) (cos.f64 im)) |
Compiled 6 to 7 computations (-16.7% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
| Outputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) |
3 calls:
| 41.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 2.0ms | re |
| 1.0ms | (exp.f64 re) |
| Accuracy | Segments | Branch |
|---|---|---|
| 37.2% | 3 | (exp.f64 re) |
| 37.3% | 3 | re |
| 37.8% | 2 | (*.f64 (exp.f64 re) (cos.f64 im)) |
Compiled 8 to 10 computations (-25% saved)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
| Outputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) |
3 calls:
| 2.0ms | re |
| 1.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 1.0ms | (exp.f64 re) |
| Accuracy | Segments | Branch |
|---|---|---|
| 35.3% | 2 | (exp.f64 re) |
| 35.3% | 2 | re |
| 35.3% | 2 | (*.f64 (exp.f64 re) (cos.f64 im)) |
Compiled 8 to 10 computations (-25% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) |
| Outputs |
|---|
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
5 calls:
| 1.0ms | (*.f64 (exp.f64 re) (cos.f64 im)) |
| 1.0ms | re |
| 1.0ms | im |
| 1.0ms | (cos.f64 im) |
| 1.0ms | (exp.f64 re) |
| Accuracy | Segments | Branch |
|---|---|---|
| 12.0% | 1 | im |
| 12.0% | 1 | (cos.f64 im) |
| 12.0% | 1 | (exp.f64 re) |
| 12.0% | 1 | re |
| 12.0% | 1 | (*.f64 (exp.f64 re) (cos.f64 im)) |
Compiled 11 to 15 computations (-36.4% saved)
| 3× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 8.0ms | 7.737019784198316e+93 | 2.1025703142937377e+94 |
| 26.0ms | 5.1595366699537015 | 2.6871084755750605e+27 |
| 60.0ms | -0.028879248092246505 | -4.2173099986702434e-5 |
| 77.0ms | 384× | 0 | valid |
Compiled 836 to 679 computations (18.8% saved)
ival-mult: 48.0ms (77.8% of total)ival-cos: 9.0ms (14.6% of total)ival-exp: 4.0ms (6.5% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 3× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 16.0ms | 2.682966783881113e+151 | 4.2448592892449567e+170 |
| 1.0ms | 5.1595366699537015 | 2.6871084755750605e+27 |
| 1.0ms | -0.028879248092246505 | -4.2173099986702434e-5 |
| 9.0ms | 160× | 0 | valid |
Compiled 870 to 746 computations (14.3% saved)
ival-cos: 3.0ms (51.4% of total)ival-exp: 1.0ms (17.1% of total)ival-mult: 1.0ms (17.1% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 3× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 1.0ms | 2.682966783881113e+151 | 4.2448592892449567e+170 |
| 1.0ms | 5.1595366699537015 | 2.6871084755750605e+27 |
| 17.0ms | -4.2173099986702434e-5 | -4.811488755535847e-15 |
| 10.0ms | 160× | 0 | valid |
Compiled 863 to 752 computations (12.9% saved)
ival-cos: 3.0ms (47% of total)ival-exp: 2.0ms (31.3% of total)ival-mult: 1.0ms (15.7% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 3× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 1.0ms | 2.682966783881113e+151 | 4.2448592892449567e+170 |
| 210.0ms | 9.624234254335356e-10 | 0.003662245451028687 |
| 1.0ms | -4.2173099986702434e-5 | -4.811488755535847e-15 |
| 205.0ms | 144× | 0 | valid |
Compiled 737 to 670 computations (9.1% saved)
ival-cos: 3.0ms (52.1% of total)ival-exp: 2.0ms (34.8% of total)ival-mult: 1.0ms (17.4% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 4× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 1.003668959665766 | +inf |
| 0.0ms | 0.0 | 0.021774754249704115 |
| 0.0ms | -0.04584705879298484 | 0.0 |
| 0.0ms | -inf | -162.19981523143915 |
Compiled 8 to 10 computations (-25% saved)
| 4× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 1.003668959665766 | +inf |
| 0.0ms | 0.0 | 0.021774754249704115 |
| 0.0ms | -0.04584705879298484 | 0.0 |
| 0.0ms | -inf | -162.19981523143915 |
Compiled 8 to 10 computations (-25% saved)
| 4× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 1.003668959665766 | +inf |
| 0.0ms | 0.0 | 0.021774754249704115 |
| 0.0ms | -0.04584705879298484 | 0.0 |
| 0.0ms | -inf | -162.19981523143915 |
Compiled 8 to 10 computations (-25% saved)
| 3× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 1.003668959665766 | +inf |
| 0.0ms | 0.0 | 0.021774754249704115 |
| 0.0ms | -0.04584705879298484 | 0.0 |
Compiled 8 to 10 computations (-25% saved)
| 3× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 0.9420007411613863 | 0.9715337719403204 |
| 0.0ms | 0.0 | 0.021774754249704115 |
| 0.0ms | -0.04584705879298484 | 0.0 |
Compiled 8 to 10 computations (-25% saved)
| 3× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 1.003668959665766 | +inf |
| 0.0ms | 0.0 | 0.021774754249704115 |
| 0.0ms | -0.04584705879298484 | 0.0 |
Compiled 8 to 10 computations (-25% saved)
| 3× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 0.9989431134218453 | 0.999957827789286 |
| 0.0ms | 0.0 | 0.021774754249704115 |
| 0.0ms | -0.04584705879298484 | 0.0 |
Compiled 8 to 10 computations (-25% saved)
| 3× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 1.003668959665766 | +inf |
| 0.0ms | 0.0 | 0.021774754249704115 |
| 0.0ms | -0.04584705879298484 | 0.0 |
Compiled 8 to 10 computations (-25% saved)
| 3× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 36.0ms | 6.8972950515449375e+90 | 7.737019784198316e+93 |
| 14.0ms | 9.624234254335356e-10 | 0.003662245451028687 |
| 46.0ms | -6634.888583326411 | -0.028879248092246505 |
| 55.0ms | 400× | 0 | valid |
Compiled 1 637 to 1 169 computations (28.6% saved)
ival-exp: 34.0ms (73.6% of total)ival-cos: 9.0ms (19.5% of total)ival-mult: 3.0ms (6.5% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 3× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 9.0ms | 6.8972950515449375e+90 | 7.737019784198316e+93 |
| 1.0ms | 9.624234254335356e-10 | 0.003662245451028687 |
| 1.0ms | -6634.888583326411 | -0.028879248092246505 |
| 5.0ms | 80× | 0 | valid |
Compiled 1 589 to 1 129 computations (28.9% saved)
ival-cos: 2.0ms (62.4% of total)ival-exp: 1.0ms (31.2% of total)ival-mult: 1.0ms (31.2% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 3× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 1.0ms | 6.8972950515449375e+90 | 7.737019784198316e+93 |
| 19.0ms | 5.1595366699537015 | 2.6871084755750605e+27 |
| 1.0ms | -6634.888583326411 | -0.028879248092246505 |
| 14.0ms | 112× | 0 | valid |
Compiled 1 557 to 1 099 computations (29.4% saved)
ival-mult: 7.0ms (63.2% of total)ival-cos: 2.0ms (18.1% of total)ival-exp: 1.0ms (9% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 3× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 1.0ms | 6.8972950515449375e+90 | 7.737019784198316e+93 |
| 2.0ms | 5.1595366699537015 | 2.6871084755750605e+27 |
| 1.0ms | -6634.888583326411 | -0.028879248092246505 |
Compiled 1 458 to 1 045 computations (28.3% saved)
| 3× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 0.9989431134218453 | 0.999957827789286 |
| 0.0ms | 0.0 | 0.021774754249704115 |
| 0.0ms | -162.19981523143915 | -0.9999924219590178 |
Compiled 8 to 10 computations (-25% saved)
| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 0.0 | 0.021774754249704115 |
| 0.0ms | -162.19981523143915 | -0.9999924219590178 |
Compiled 8 to 10 computations (-25% saved)
| 1× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 0.0 | 0.021774754249704115 |
Compiled 8 to 10 computations (-25% saved)
| 1× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 0.0 | 0.021774754249704115 |
Compiled 8 to 10 computations (-25% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 213 | 2435 |
| 1 | 258 | 2435 |
| 2 | 406 | 2435 |
| 3 | 1023 | 2435 |
| 4 | 3531 | 2435 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (exp.f64 re) (cos.f64 im)) |
(if (<=.f64 re #s(literal -7926335344172073/288230376151711744 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 re #s(literal 5854679515581645/1125899906842624 binary64)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) (if (<=.f64 re #s(literal 20999999999999998942457719432627585338389414676296292042037510260168864399904375195244594987008 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (cos.f64 im))))) |
(if (<=.f64 re #s(literal -7926335344172073/288230376151711744 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 re #s(literal 5854679515581645/1125899906842624 binary64)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) (if (<=.f64 re #s(literal 13999999999999999624126215218373424466723756628999792018937385960434328649190950682933561119844203475201553338089456373175085254909523321112146188185894912 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im))))) |
(if (<=.f64 re #s(literal -6198106008766409/147573952589676412928 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 re #s(literal 5854679515581645/1125899906842624 binary64)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) (if (<=.f64 re #s(literal 13999999999999999624126215218373424466723756628999792018937385960434328649190950682933561119844203475201553338089456373175085254909523321112146188185894912 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im))))) |
(if (<=.f64 re #s(literal -6198106008766409/147573952589676412928 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 re #s(literal 7194230188746725/18446744073709551616 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) (if (<=.f64 re #s(literal 13999999999999999624126215218373424466723756628999792018937385960434328649190950682933561119844203475201553338089456373175085254909523321112146188185894912 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -inf.0 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -inf.0 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -inf.0 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) #s(approx (* (exp re) (cos im)) (cos.f64 im)) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) #s(approx (* (exp re) (cos im)) (cos.f64 im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 4278419646001971/4503599627370496 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 8998192055486251/9007199254740992 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 re #s(literal -500 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 re #s(literal 4835703278458517/4835703278458516698824704 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (if (<=.f64 re #s(literal 11499999999999999558028190154926552026324120041358050777786773169035760527638462711531044864 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))))))) |
(if (<=.f64 re #s(literal -500 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 re #s(literal 4835703278458517/4835703278458516698824704 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (if (<=.f64 re #s(literal 35999999999999999245740906339966790167030859524511658159104163103288924474876839835625062400 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))))))) |
(if (<=.f64 re #s(literal -500 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 re #s(literal 380 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (if (<=.f64 re #s(literal 11499999999999999558028190154926552026324120041358050777786773169035760527638462711531044864 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))))))) |
(if (<=.f64 re #s(literal -510 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) (if (<=.f64 re #s(literal 380 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (if (<=.f64 re #s(literal 11499999999999999558028190154926552026324120041358050777786773169035760527638462711531044864 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -100 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 8998192055486251/9007199254740992 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -100 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
| Outputs |
|---|
(*.f64 (exp.f64 re) (cos.f64 im)) |
(if (<=.f64 re #s(literal -7926335344172073/288230376151711744 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 re #s(literal 5854679515581645/1125899906842624 binary64)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) (if (<=.f64 re #s(literal 20999999999999998942457719432627585338389414676296292042037510260168864399904375195244594987008 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 im im)) #s(literal 1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (cos.f64 im))))) |
(if (<=.f64 re #s(literal -7926335344172073/288230376151711744 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 re #s(literal 5854679515581645/1125899906842624 binary64)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) (if (<=.f64 re #s(literal 13999999999999999624126215218373424466723756628999792018937385960434328649190950682933561119844203475201553338089456373175085254909523321112146188185894912 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im))))) |
(if (<=.f64 re #s(literal -6198106008766409/147573952589676412928 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 re #s(literal 5854679515581645/1125899906842624 binary64)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (cos.f64 im)) (if (<=.f64 re #s(literal 13999999999999999624126215218373424466723756628999792018937385960434328649190950682933561119844203475201553338089456373175085254909523321112146188185894912 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im))))) |
(if (<=.f64 re #s(literal -6198106008766409/147573952589676412928 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 re #s(literal 7194230188746725/18446744073709551616 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) (if (<=.f64 re #s(literal 13999999999999999624126215218373424466723756628999792018937385960434328649190950682933561119844203475201553338089456373175085254909523321112146188185894912 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (cos.f64 im))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -inf.0 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 (exp.f64 re) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 im im) #s(literal -1/2 binary64))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -inf.0 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (cos.f64 im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -inf.0 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) #s(approx (* (exp re) (cos im)) (cos.f64 im)) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) #s(approx (* (exp re) (cos im)) (cos.f64 im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (pow.f64 im #s(literal -1 binary64))) im)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 4278419646001971/4503599627370496 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 4278419646001971/4503599627370496 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (pow.f64 im #s(literal -1 binary64))) im)))) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (pow.f64 im #s(literal -1 binary64))) im)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 8998192055486251/9007199254740992 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 8998192055486251/9007199254740992 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (pow.f64 im #s(literal -1 binary64))) im)))) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -5764607523034235/144115188075855872 binary64)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 2 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (pow.f64 im #s(literal -1 binary64))) im)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 re #s(literal -500 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 re #s(literal 4835703278458517/4835703278458516698824704 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (if (<=.f64 re #s(literal 11499999999999999558028190154926552026324120041358050777786773169035760527638462711531044864 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))))))) |
(if (<=.f64 re #s(literal -500 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 re #s(literal 4835703278458517/4835703278458516698824704 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (pow.f64 im #s(literal -1 binary64))) im)))) (if (<=.f64 re #s(literal 11499999999999999558028190154926552026324120041358050777786773169035760527638462711531044864 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))))))) |
(if (<=.f64 re #s(literal -500 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 re #s(literal 4835703278458517/4835703278458516698824704 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (if (<=.f64 re #s(literal 35999999999999999245740906339966790167030859524511658159104163103288924474876839835625062400 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))))))) |
(if (<=.f64 re #s(literal -500 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 re #s(literal 4835703278458517/4835703278458516698824704 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (pow.f64 im #s(literal -1 binary64))) im)))) (if (<=.f64 re #s(literal 35999999999999999245740906339966790167030859524511658159104163103288924474876839835625062400 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 #s(approx (+ (* 1/24 (* im im)) -1/2) (*.f64 #s(literal 1/24 binary64) (*.f64 im im))) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))))))) |
(if (<=.f64 re #s(literal -500 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 re #s(literal 380 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (if (<=.f64 re #s(literal 11499999999999999558028190154926552026324120041358050777786773169035760527638462711531044864 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))))))) |
(if (<=.f64 re #s(literal -500 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) #s(approx (+ (* (+ (* 1/24 (* im im)) -1/2) (* im im)) 1) (*.f64 (*.f64 im im) (*.f64 #s(literal 1/24 binary64) (*.f64 im im)))))) (if (<=.f64 re #s(literal 380 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (pow.f64 im #s(literal -1 binary64))) im)))) (if (<=.f64 re #s(literal 11499999999999999558028190154926552026324120041358050777786773169035760527638462711531044864 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))))))) |
(if (<=.f64 re #s(literal -510 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) (if (<=.f64 re #s(literal 380 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) (if (<=.f64 re #s(literal 11499999999999999558028190154926552026324120041358050777786773169035760527638462711531044864 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))))))) |
(if (<=.f64 re #s(literal -510 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) (if (<=.f64 re #s(literal 380 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (pow.f64 im #s(literal -1 binary64))) im)))) (if (<=.f64 re #s(literal 11499999999999999558028190154926552026324120041358050777786773169035760527638462711531044864 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64)))) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -100 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 8998192055486251/9007199254740992 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))) #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -100 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 8998192055486251/9007199254740992 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (pow.f64 im #s(literal -1 binary64))) im)))) #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 im im) #s(literal -1/2 binary64)) (*.f64 im im) #s(literal 1 binary64))))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -100 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im)))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal -100 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64)))) (if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (pow.f64 im #s(literal -1 binary64))) im)))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (/.f64 #s(literal 1 binary64) im)) im))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 #s(approx (* (- (/ 1 (* im im)) 1/2) im) (pow.f64 im #s(literal -1 binary64))) im))))) |
(if (<=.f64 (*.f64 (exp.f64 re) (cos.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) #s(approx (* (exp re) (cos im)) #s(approx (cos im) (fma.f64 (*.f64 im im) #s(literal -1/2 binary64) #s(literal 1 binary64))))) |
#s(approx (* (exp re) (cos im)) #s(approx (cos im) #s(approx (+ (* (* im im) -1/2) 1) (*.f64 (*.f64 #s(literal -1/2 binary64) im) im)))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 64 | 175 |
| 1 | 237 | 164 |
| 2 | 910 | 160 |
| 3 | 4069 | 156 |
| 0 | 8359 | 136 |
| 0 | 58 | 388 |
| 0 | 83 | 388 |
| 1 | 229 | 376 |
| 0 | 1505 | 376 |
| 0 | 123 | 410 |
| 1 | 412 | 395 |
| 2 | 1492 | 387 |
| 3 | 5569 | 386 |
| 0 | 8460 | 348 |
| 0 | 151 | 497 |
| 1 | 517 | 482 |
| 2 | 1965 | 474 |
| 3 | 7925 | 474 |
| 0 | 8001 | 422 |
| 0 | 108 | 358 |
| 1 | 387 | 341 |
| 2 | 1456 | 333 |
| 3 | 5769 | 332 |
| 0 | 8274 | 292 |
| 1× | fuel |
| 1× | iter limit |
| 1× | node 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 |
Compiled 2 435 to 219 computations (91% saved)
(abs im)
Compiled 4 900 to 468 computations (90.4% saved)
Loading profile data...