
Time bar (total: 5.4s)
| 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 14 to 11 computations (21.4% saved)
| 567.0ms | 1036× | body | 1024 | valid |
| 482.0ms | 2572× | body | 256 | infinite |
| 344.0ms | 2609× | body | 256 | valid |
| 308.0ms | 991× | body | 1024 | infinite |
| 166.0ms | 548× | body | 512 | valid |
| 135.0ms | 499× | body | 512 | infinite |
| 1.0ms | 1× | body | 2048 | valid |
| 1× | egg-herbie |
| 1664× | fma-def |
| 928× | associate-/r/ |
| 792× | sqr-pow |
| 750× | associate-/l/ |
| 676× | fabs-mul |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 27 | 140 |
| 1 | 81 | 140 |
| 2 | 182 | 140 |
| 3 | 343 | 132 |
| 4 | 674 | 132 |
| 5 | 1905 | 132 |
| 6 | 3540 | 132 |
| 7 | 3945 | 132 |
| 8 | 4964 | 132 |
| 9 | 5834 | 132 |
| 10 | 7272 | 132 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(*.f64 (*.f64 1/2 (cos.f64 (neg.f64 re))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 (neg.f64 im))) (exp.f64 (neg.f64 im)))) |
(*.f64 (*.f64 1/2 (cos.f64 im)) (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re))) |
| Outputs |
|---|
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re))) |
(*.f64 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))) |
(*.f64 (*.f64 1/2 (cos.f64 (neg.f64 re))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re))) |
(*.f64 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))) |
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 (neg.f64 im))) (exp.f64 (neg.f64 im)))) |
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re))) |
(*.f64 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))) |
(*.f64 (*.f64 1/2 (cos.f64 im)) (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re))) |
(*.f64 (cos.f64 im) (fma.f64 1/2 (exp.f64 re) (/.f64 1/2 (exp.f64 re)))) |
(abs re)
(abs im)
Compiled 15 to 12 computations (20% saved)
| 1× | egg-herbie |
| 1464× | fma-def |
| 1028× | associate-/l* |
| 860× | unswap-sqr |
| 748× | times-frac |
| 636× | associate-/r/ |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 35 |
| 1 | 30 | 35 |
| 2 | 73 | 35 |
| 3 | 132 | 33 |
| 4 | 194 | 33 |
| 5 | 348 | 33 |
| 6 | 790 | 33 |
| 7 | 1337 | 33 |
| 8 | 3879 | 33 |
| 9 | 4401 | 33 |
| 10 | 5368 | 33 |
| 11 | 5952 | 33 |
| 12 | 6984 | 33 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| Outputs |
|---|
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) |
(*.f64 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))) |
Compiled 35 to 18 computations (48.6% saved)
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 2 | 1 | 3 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 2 | 2 | 4 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 100.0% | (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| ▶ | 100.0% | (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
Compiled 26 to 20 computations (23.1% saved)
Found 1 expressions with local accuracy:
| New | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
Compiled 36 to 14 computations (61.1% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 5.0ms | im | @ | inf | (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| 1.0ms | re | @ | -inf | (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| 1.0ms | re | @ | inf | (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| 1.0ms | im | @ | -inf | (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| 1.0ms | re | @ | 0 | (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| 1× | batch-egg-rewrite |
| 282× | add-sqr-sqrt |
| 272× | pow1 |
| 272× | *-un-lft-identity |
| 264× | add-exp-log |
| 262× | add-log-exp |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 35 |
| 1 | 273 | 35 |
| 2 | 4277 | 35 |
| 1× | unsound |
| Inputs |
|---|
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| Outputs |
|---|
(+.f64 (cos.f64 re) (cos.f64 re)) |
(+.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) |
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) -2))) 1) |
(/.f64 (*.f64 (cos.f64 re) -2) -2) |
(/.f64 (*.f64 (cos.f64 re) -2) 1) |
(/.f64 (*.f64 (cos.f64 re) -2) (+.f64 (*.f64 (cos.f64 re) -2) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)))) |
(/.f64 (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))) |
(pow.f64 (*.f64 (cos.f64 re) -2) -2) |
(pow.f64 (*.f64 (cos.f64 re) -2) 1) |
(pow.f64 (*.f64 (cos.f64 re) -2) 3) |
(pow.f64 (*.f64 (cos.f64 re) -2) 1/3) |
(sqrt.f64 (*.f64 (cos.f64 re) -2)) |
(fabs.f64 (*.f64 (cos.f64 re) -2)) |
(log.f64 (pow.f64 1 (cos.f64 re))) |
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) -2)))) |
(cbrt.f64 (*.f64 (cos.f64 re) -2)) |
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) -2))) |
(exp.f64 (log.f64 (*.f64 (cos.f64 re) -2))) |
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1)) |
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -2)) |
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) -2))) |
(fma.f64 1 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) |
(fma.f64 (*.f64 (cos.f64 re) -2) 1 (*.f64 (cos.f64 re) -2)) |
| 1× | egg-herbie |
| 1156× | fma-neg |
| 1106× | div-sub |
| 876× | cancel-sign-sub-inv |
| 696× | associate-*r* |
| 696× | fma-def |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 95 | 1035 |
| 1 | 285 | 921 |
| 2 | 906 | 921 |
| 3 | 4789 | 921 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) |
(+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) |
(+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(cos.f64 re) |
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re)) |
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))))) |
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))) (*.f64 1/720 (*.f64 (cos.f64 re) (pow.f64 im 6)))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))) |
(+.f64 (cos.f64 re) (cos.f64 re)) |
(+.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) |
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) -2))) 1) |
(/.f64 (*.f64 (cos.f64 re) -2) -2) |
(/.f64 (*.f64 (cos.f64 re) -2) 1) |
(/.f64 (*.f64 (cos.f64 re) -2) (+.f64 (*.f64 (cos.f64 re) -2) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)))) |
(/.f64 (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))) |
(pow.f64 (*.f64 (cos.f64 re) -2) -2) |
(pow.f64 (*.f64 (cos.f64 re) -2) 1) |
(pow.f64 (*.f64 (cos.f64 re) -2) 3) |
(pow.f64 (*.f64 (cos.f64 re) -2) 1/3) |
(sqrt.f64 (*.f64 (cos.f64 re) -2)) |
(fabs.f64 (*.f64 (cos.f64 re) -2)) |
(log.f64 (pow.f64 1 (cos.f64 re))) |
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) -2)))) |
(cbrt.f64 (*.f64 (cos.f64 re) -2)) |
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) -2))) |
(exp.f64 (log.f64 (*.f64 (cos.f64 re) -2))) |
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1)) |
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -2)) |
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) -2))) |
(fma.f64 1 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) |
(fma.f64 (*.f64 (cos.f64 re) -2) 1 (*.f64 (cos.f64 re) -2)) |
| Outputs |
|---|
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) |
(fma.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (*.f64 -1/4 (*.f64 re re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) |
(+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) |
(fma.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (fma.f64 -1/4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 re re)) (*.f64 (*.f64 1/48 (pow.f64 re 4)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) |
(fma.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 -1/4 (*.f64 re re)) (*.f64 1/48 (pow.f64 re 4))))) |
(+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))) |
(fma.f64 -1/1440 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 6)) (fma.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (fma.f64 -1/4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 re re)) (*.f64 (*.f64 1/48 (pow.f64 re 4)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) |
(+.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 -1/4 (*.f64 re re)) (*.f64 1/48 (pow.f64 re 4)))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 -1/1440 (pow.f64 re 6)) 1/2))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(cos.f64 re) |
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re)) |
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) |
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))))) |
(+.f64 (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)))) |
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (fma.f64 (*.f64 (cos.f64 re) 1/24) (pow.f64 im 4) (cos.f64 re))) |
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))) (*.f64 1/720 (*.f64 (cos.f64 re) (pow.f64 im 6)))))) |
(+.f64 (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) (fma.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)) (*.f64 1/720 (*.f64 (cos.f64 re) (pow.f64 im 6))))) |
(+.f64 (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) (fma.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)) (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 6) 1/720)))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) |
(+.f64 (cos.f64 re) (cos.f64 re)) |
(cos.f64 re) |
(+.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) |
(cos.f64 re) |
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) -2))) 1) |
(cos.f64 re) |
(/.f64 (*.f64 (cos.f64 re) -2) -2) |
(cos.f64 re) |
(/.f64 (*.f64 (cos.f64 re) -2) 1) |
(cos.f64 re) |
(/.f64 (*.f64 (cos.f64 re) -2) (+.f64 (*.f64 (cos.f64 re) -2) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)))) |
(cos.f64 re) |
(/.f64 (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))) |
(cos.f64 re) |
(pow.f64 (*.f64 (cos.f64 re) -2) -2) |
(cos.f64 re) |
(pow.f64 (*.f64 (cos.f64 re) -2) 1) |
(cos.f64 re) |
(pow.f64 (*.f64 (cos.f64 re) -2) 3) |
(cos.f64 re) |
(pow.f64 (*.f64 (cos.f64 re) -2) 1/3) |
(cbrt.f64 (*.f64 (cos.f64 re) -2)) |
(sqrt.f64 (*.f64 (cos.f64 re) -2)) |
(cos.f64 re) |
(fabs.f64 (*.f64 (cos.f64 re) -2)) |
(cos.f64 re) |
(log.f64 (pow.f64 1 (cos.f64 re))) |
(cos.f64 re) |
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) -2)))) |
(cos.f64 re) |
(cbrt.f64 (*.f64 (cos.f64 re) -2)) |
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) -2))) |
(cos.f64 re) |
(exp.f64 (log.f64 (*.f64 (cos.f64 re) -2))) |
(cos.f64 re) |
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1)) |
(cos.f64 re) |
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -2)) |
(cos.f64 re) |
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) -2))) |
(cos.f64 re) |
(fma.f64 1 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) |
(cos.f64 re) |
(fma.f64 (*.f64 (cos.f64 re) -2) 1 (*.f64 (cos.f64 re) -2)) |
(cos.f64 re) |
Compiled 653 to 319 computations (51.1% saved)
6 alts after pruning (6 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 39 | 6 | 45 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 40 | 6 | 46 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 71.9% | (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) |
| ▶ | 7.7% | (pow.f64 (*.f64 (cos.f64 re) -2) -2) |
| ▶ | 10.3% | (+.f64 (cos.f64 re) (cos.f64 re)) |
| 65.8% | (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) | |
| ▶ | 68.9% | (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
| ▶ | 47.3% | (cos.f64 re) |
| ▶ | 71.9% | (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) |
| ▶ | 7.7% | (pow.f64 (*.f64 (cos.f64 re) -2) -2) |
| ▶ | 10.3% | (+.f64 (cos.f64 re) (cos.f64 re)) |
| 65.8% | (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) | |
| ▶ | 68.9% | (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
| ▶ | 47.3% | (cos.f64 re) |
Compiled 228 to 164 computations (28.1% saved)
Found 2 expressions with local accuracy:
| New | Accuracy | Program |
|---|---|---|
| ✓ | 99.6% | (pow.f64 (*.f64 (cos.f64 re) -2) -2) |
| ✓ | 99.9% | (*.f64 (cos.f64 re) (*.f64 im im)) |
Compiled 75 to 24 computations (68% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 5.0ms | re | @ | 0 | (*.f64 (cos.f64 re) (*.f64 im im)) |
| 2.0ms | re | @ | inf | (pow.f64 (*.f64 (cos.f64 re) -2) -2) |
| 1.0ms | re | @ | -inf | (pow.f64 (*.f64 (cos.f64 re) -2) -2) |
| 0.0ms | re | @ | inf | (*.f64 (cos.f64 re) (*.f64 im im)) |
| 0.0ms | im | @ | 0 | (*.f64 (cos.f64 re) (*.f64 im im)) |
| 1× | batch-egg-rewrite |
| 1066× | log-prod |
| 826× | exp-prod |
| 730× | prod-exp |
| 652× | pow-prod-down |
| 554× | pow-prod-up |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 34 |
| 1 | 227 | 34 |
| 2 | 2651 | 34 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (cos.f64 re) (*.f64 im im)) |
(pow.f64 (*.f64 (cos.f64 re) -2) -2) |
| Outputs |
|---|
(+.f64 0 (*.f64 (cos.f64 re) (*.f64 im im))) |
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))))) |
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))))) |
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 1) |
(pow.f64 (*.f64 (cos.f64 re) (*.f64 im im)) 1) |
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 3) |
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 4) 1/2) |
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6) 1/3) |
(pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 2) |
(pow.f64 (exp.f64 1) (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 2)) (cbrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) |
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) (sqrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) |
(sqrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 4)) |
(log.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))) |
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) |
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6)) |
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) |
(exp.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) |
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 1)) |
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 1) 1)) |
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 3)) |
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6)) 1/3)) |
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))) 2)) |
(exp.f64 (+.f64 (log.f64 (cos.f64 re)) (*.f64 (log.f64 im) 2))) |
(exp.f64 (+.f64 (log.f64 (cos.f64 re)) (*.f64 (log.f64 (*.f64 im im)) 1))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (log.f64 (*.f64 im im)))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (*.f64 (log.f64 im) 2))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (*.f64 (log.f64 (*.f64 im im)) 1))) |
(exp.f64 (+.f64 (*.f64 (log.f64 im) 1) (log.f64 (*.f64 (cos.f64 re) im)))) |
(exp.f64 (+.f64 (log.f64 (*.f64 im im)) (*.f64 (log.f64 (cos.f64 re)) 1))) |
(exp.f64 (+.f64 (*.f64 (log.f64 im) 2) (log.f64 (cos.f64 re)))) |
(exp.f64 (+.f64 (*.f64 (log.f64 im) 2) (*.f64 (log.f64 (cos.f64 re)) 1))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 im im)) 1) (log.f64 (cos.f64 re)))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 im im)) 1) (*.f64 (log.f64 (cos.f64 re)) 1))) |
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) im)) (*.f64 (log.f64 im) 1))) |
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) |
(+.f64 0 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)) |
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))))) |
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))))) |
(-.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))) 1) |
(*.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4) 1) |
(*.f64 1 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)) |
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2) (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16))) |
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2)) |
(*.f64 (*.f64 (/.f64 1 (cos.f64 re)) -1/2) (*.f64 (/.f64 1 (cos.f64 re)) -1/2)) |
(*.f64 (pow.f64 (cos.f64 re) -2) 1/4) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -4) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2)) |
(/.f64 1 (*.f64 (pow.f64 (cos.f64 re) 2) 4)) |
(sqrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16)) |
(log.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))) |
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)))) |
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) -2) -6)) |
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))) |
(exp.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2)))) |
(exp.f64 (*.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))) 1)) |
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1) -2)) |
(exp.f64 (*.f64 (*.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))) 1) 1)) |
(exp.f64 (*.f64 (log.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2)) 3)) |
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (cos.f64 re) -2) -6)) 1/3)) |
(exp.f64 (*.f64 (*.f64 2 (log.f64 (*.f64 (cos.f64 re) -2))) -1)) |
(exp.f64 (*.f64 (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))) 2)) |
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) 2)) |
(exp.f64 (+.f64 (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))) (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1))) |
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))) |
| 1× | egg-herbie |
| 858× | log-prod |
| 564× | fma-def |
| 524× | associate-*r* |
| 472× | associate-*l* |
| 466× | associate-/l* |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 215 | 2169 |
| 1 | 473 | 2073 |
| 2 | 1061 | 2037 |
| 3 | 3228 | 2031 |
| 4 | 7735 | 2031 |
| 1× | node limit |
| Inputs |
|---|
(pow.f64 im 2) |
(+.f64 (pow.f64 im 2) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2)))) |
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))) |
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2))) (*.f64 -1/720 (*.f64 (pow.f64 re 6) (pow.f64 im 2)))))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
1/4 |
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2))) |
(+.f64 1/4 (+.f64 (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 4)))) |
(+.f64 (*.f64 17/180 (pow.f64 re 6)) (+.f64 1/4 (+.f64 (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 4))))) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(+.f64 0 (*.f64 (cos.f64 re) (*.f64 im im))) |
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))))) |
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))))) |
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 1) |
(pow.f64 (*.f64 (cos.f64 re) (*.f64 im im)) 1) |
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 3) |
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 4) 1/2) |
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6) 1/3) |
(pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 2) |
(pow.f64 (exp.f64 1) (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 2)) (cbrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) |
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) (sqrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) |
(sqrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 4)) |
(log.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))) |
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) |
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6)) |
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) |
(exp.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) |
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 1)) |
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 1) 1)) |
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 3)) |
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6)) 1/3)) |
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))) 2)) |
(exp.f64 (+.f64 (log.f64 (cos.f64 re)) (*.f64 (log.f64 im) 2))) |
(exp.f64 (+.f64 (log.f64 (cos.f64 re)) (*.f64 (log.f64 (*.f64 im im)) 1))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (log.f64 (*.f64 im im)))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (*.f64 (log.f64 im) 2))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (*.f64 (log.f64 (*.f64 im im)) 1))) |
(exp.f64 (+.f64 (*.f64 (log.f64 im) 1) (log.f64 (*.f64 (cos.f64 re) im)))) |
(exp.f64 (+.f64 (log.f64 (*.f64 im im)) (*.f64 (log.f64 (cos.f64 re)) 1))) |
(exp.f64 (+.f64 (*.f64 (log.f64 im) 2) (log.f64 (cos.f64 re)))) |
(exp.f64 (+.f64 (*.f64 (log.f64 im) 2) (*.f64 (log.f64 (cos.f64 re)) 1))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 im im)) 1) (log.f64 (cos.f64 re)))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 im im)) 1) (*.f64 (log.f64 (cos.f64 re)) 1))) |
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) im)) (*.f64 (log.f64 im) 1))) |
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) |
(+.f64 0 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)) |
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))))) |
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))))) |
(-.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))) 1) |
(*.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4) 1) |
(*.f64 1 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)) |
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2) (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16))) |
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2)) |
(*.f64 (*.f64 (/.f64 1 (cos.f64 re)) -1/2) (*.f64 (/.f64 1 (cos.f64 re)) -1/2)) |
(*.f64 (pow.f64 (cos.f64 re) -2) 1/4) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -4) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2)) |
(/.f64 1 (*.f64 (pow.f64 (cos.f64 re) 2) 4)) |
(sqrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16)) |
(log.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))) |
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)))) |
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) -2) -6)) |
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))) |
(exp.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2)))) |
(exp.f64 (*.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))) 1)) |
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1) -2)) |
(exp.f64 (*.f64 (*.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))) 1) 1)) |
(exp.f64 (*.f64 (log.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2)) 3)) |
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (cos.f64 re) -2) -6)) 1/3)) |
(exp.f64 (*.f64 (*.f64 2 (log.f64 (*.f64 (cos.f64 re) -2))) -1)) |
(exp.f64 (*.f64 (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))) 2)) |
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) 2)) |
(exp.f64 (+.f64 (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))) (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1))) |
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))) |
| Outputs |
|---|
(pow.f64 im 2) |
(*.f64 im im) |
(+.f64 (pow.f64 im 2) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2)))) |
(+.f64 (*.f64 im im) (*.f64 -1/2 (*.f64 (*.f64 im im) (*.f64 re re)))) |
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (*.f64 im im)) |
(*.f64 (*.f64 im im) (fma.f64 -1/2 (*.f64 re re) 1)) |
(*.f64 im (*.f64 (fma.f64 (*.f64 -1/2 re) re 1) im)) |
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))) |
(fma.f64 1/24 (*.f64 (*.f64 im im) (pow.f64 re 4)) (+.f64 (*.f64 im im) (*.f64 -1/2 (*.f64 (*.f64 im im) (*.f64 re re))))) |
(fma.f64 1/24 (*.f64 (*.f64 (pow.f64 re 4) im) im) (*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (*.f64 im im))) |
(*.f64 (*.f64 im im) (+.f64 (*.f64 -1/2 (*.f64 re re)) (fma.f64 1/24 (pow.f64 re 4) 1))) |
(*.f64 (*.f64 im im) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (fma.f64 (*.f64 -1/2 re) re 1))) |
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2))) (*.f64 -1/720 (*.f64 (pow.f64 re 6) (pow.f64 im 2)))))) |
(fma.f64 1/24 (*.f64 (*.f64 im im) (pow.f64 re 4)) (+.f64 (*.f64 im im) (fma.f64 -1/2 (*.f64 (*.f64 im im) (*.f64 re re)) (*.f64 -1/720 (*.f64 (*.f64 im im) (pow.f64 re 6)))))) |
(fma.f64 1/24 (*.f64 (*.f64 (pow.f64 re 4) im) im) (fma.f64 im im (*.f64 (*.f64 im im) (+.f64 (*.f64 -1/2 (*.f64 re re)) (*.f64 -1/720 (pow.f64 re 6)))))) |
(fma.f64 im im (*.f64 (*.f64 im im) (+.f64 (fma.f64 -1/2 (*.f64 re re) (*.f64 -1/720 (pow.f64 re 6))) (*.f64 1/24 (pow.f64 re 4))))) |
(*.f64 (*.f64 im im) (+.f64 (fma.f64 -1/2 (*.f64 re re) (*.f64 -1/720 (pow.f64 re 6))) (fma.f64 1/24 (pow.f64 re 4) 1))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(*.f64 (cos.f64 re) (pow.f64 im 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
1/4 |
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2))) |
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
(fma.f64 (*.f64 re re) 1/4 1/4) |
(fma.f64 re (*.f64 re 1/4) 1/4) |
(*.f64 1/4 (fma.f64 re re 1)) |
(+.f64 1/4 (+.f64 (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 4)))) |
(+.f64 1/4 (fma.f64 1/4 (*.f64 re re) (*.f64 (pow.f64 re 4) 1/6))) |
(+.f64 1/4 (fma.f64 (*.f64 re re) 1/4 (*.f64 (pow.f64 re 4) 1/6))) |
(fma.f64 re (*.f64 re 1/4) (fma.f64 (pow.f64 re 4) 1/6 1/4)) |
(+.f64 (*.f64 17/180 (pow.f64 re 6)) (+.f64 1/4 (+.f64 (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 4))))) |
(fma.f64 17/180 (pow.f64 re 6) (+.f64 1/4 (fma.f64 1/4 (*.f64 re re) (*.f64 (pow.f64 re 4) 1/6)))) |
(+.f64 (fma.f64 (*.f64 re re) 1/4 (*.f64 (pow.f64 re 4) 1/6)) (fma.f64 (pow.f64 re 6) 17/180 1/4)) |
(fma.f64 (pow.f64 re 6) 17/180 (fma.f64 re (*.f64 re 1/4) (fma.f64 (pow.f64 re 4) 1/6 1/4))) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(+.f64 0 (*.f64 (cos.f64 re) (*.f64 im im))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))))) |
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))))) |
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))) 3) |
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 1) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(pow.f64 (*.f64 (cos.f64 re) (*.f64 im im)) 1) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 3) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 4) 1/2) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6) 1/3) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 2) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(pow.f64 (exp.f64 1) (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 2)) (cbrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (*.f64 im im) (cos.f64 re)))) 2)) (cbrt.f64 (log.f64 (*.f64 (*.f64 im im) (cos.f64 re))))) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (fma.f64 2 (log.f64 im) (log.f64 (cos.f64 re)))) 2)) (cbrt.f64 (fma.f64 2 (log.f64 im) (log.f64 (cos.f64 re))))) |
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) (sqrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) |
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (*.f64 im im) (cos.f64 re))))) (sqrt.f64 (log.f64 (*.f64 (*.f64 im im) (cos.f64 re))))) |
(pow.f64 (exp.f64 (sqrt.f64 (fma.f64 2 (log.f64 im) (log.f64 (cos.f64 re))))) (sqrt.f64 (fma.f64 2 (log.f64 im) (log.f64 (cos.f64 re))))) |
(sqrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 4)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(log.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 1)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 1) 1)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 3)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6)) 1/3)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))) 2)) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (+.f64 (log.f64 (cos.f64 re)) (*.f64 (log.f64 im) 2))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (+.f64 (log.f64 (cos.f64 re)) (*.f64 (log.f64 (*.f64 im im)) 1))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (log.f64 (*.f64 im im)))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (*.f64 (log.f64 im) 2))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (*.f64 (log.f64 (*.f64 im im)) 1))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (+.f64 (*.f64 (log.f64 im) 1) (log.f64 (*.f64 (cos.f64 re) im)))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (+.f64 (log.f64 (*.f64 im im)) (*.f64 (log.f64 (cos.f64 re)) 1))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (+.f64 (*.f64 (log.f64 im) 2) (log.f64 (cos.f64 re)))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (+.f64 (*.f64 (log.f64 im) 2) (*.f64 (log.f64 (cos.f64 re)) 1))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 im im)) 1) (log.f64 (cos.f64 re)))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 im im)) 1) (*.f64 (log.f64 (cos.f64 re)) 1))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) im)) (*.f64 (log.f64 im) 1))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) |
(*.f64 (*.f64 im im) (cos.f64 re)) |
(*.f64 im (*.f64 im (cos.f64 re))) |
(+.f64 0 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))))) |
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))))) |
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))))) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(-.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))) 1) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(*.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4) 1) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(*.f64 1 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2) (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16))) |
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2)) |
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2) (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16))) |
(*.f64 (*.f64 (/.f64 1 (cos.f64 re)) -1/2) (*.f64 (/.f64 1 (cos.f64 re)) -1/2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(*.f64 (pow.f64 (cos.f64 re) -2) 1/4) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -4) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(/.f64 1 (*.f64 (pow.f64 (cos.f64 re) 2) 4)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(sqrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16)) |
(log.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)))) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) -2) -6)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(exp.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2)))) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(exp.f64 (*.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))) 1)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1) -2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(exp.f64 (*.f64 (*.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))) 1) 1)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(exp.f64 (*.f64 (log.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2)) 3)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (cos.f64 re) -2) -6)) 1/3)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(exp.f64 (*.f64 (*.f64 2 (log.f64 (*.f64 (cos.f64 re) -2))) -1)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(exp.f64 (*.f64 (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))) 2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) 2)) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(exp.f64 (+.f64 (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))) (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1))) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))))) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1))) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))) |
(/.f64 1/4 (pow.f64 (cos.f64 re) 2)) |
(*.f64 1/4 (pow.f64 (cos.f64 re) -2)) |
Compiled 1555 to 855 computations (45% saved)
8 alts after pruning (4 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 106 | 3 | 109 |
| Fresh | 0 | 1 | 1 |
| Picked | 1 | 4 | 5 |
| Done | 0 | 0 | 0 |
| Total | 107 | 8 | 115 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 71.9% | (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) |
| ▶ | 64.2% | (fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
| ✓ | 10.3% | (+.f64 (cos.f64 re) (cos.f64 re)) |
| ▶ | 12.2% | (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
| ▶ | 65.8% | (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) |
| ✓ | 68.9% | (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
| ✓ | 47.3% | (cos.f64 re) |
| 7.7% | 1/4 | |
| ✓ | 71.9% | (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) |
| ▶ | 64.2% | (fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
| ✓ | 10.3% | (+.f64 (cos.f64 re) (cos.f64 re)) |
| ▶ | 12.2% | (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
| ▶ | 65.8% | (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) |
| ✓ | 68.9% | (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
| ✓ | 47.3% | (cos.f64 re) |
| 7.7% | 1/4 |
Compiled 140 to 100 computations (28.6% saved)
Found 3 expressions with local accuracy:
| New | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
| ✓ | 100.0% | (*.f64 (*.f64 re re) 1/4) |
| ✓ | 100.0% | (*.f64 -1/4 (*.f64 re re)) |
Compiled 81 to 33 computations (59.3% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | im | @ | inf | (fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
| 0.0ms | re | @ | 0 | (*.f64 -1/4 (*.f64 re re)) |
| 0.0ms | re | @ | inf | (*.f64 -1/4 (*.f64 re re)) |
| 0.0ms | re | @ | inf | (*.f64 (*.f64 re re) 1/4) |
| 0.0ms | re | @ | 0 | (fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
| 1× | batch-egg-rewrite |
| 1182× | log-prod |
| 646× | pow-prod-down |
| 614× | pow-prod-up |
| 542× | pow-exp |
| 466× | expm1-udef |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 15 | 45 |
| 1 | 298 | 45 |
| 2 | 3330 | 21 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1/4 (*.f64 re re)) |
(*.f64 (*.f64 re re) 1/4) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
| Outputs |
|---|
0 |
re |
0 |
re |
(+.f64 0 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) |
(+.f64 (cos.f64 0) (*.f64 1/2 (*.f64 im im))) |
(+.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0)) |
(+.f64 (*.f64 (*.f64 1/2 (*.f64 im im)) 1) (cos.f64 0)) |
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))))) |
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))))) |
(-.f64 (exp.f64 (log1p.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 1) |
(*.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 1) |
(*.f64 1 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) |
(*.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2)) |
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2) (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(*.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 3) (pow.f64 (cos.f64 0) 3)) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (-.f64 (pow.f64 (cos.f64 0) 2) (*.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (pow.f64 (cos.f64 0) 2)) (-.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0))) |
(pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 1) |
(pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 3) |
(pow.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 2) 1/2) |
(pow.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 3) 1/3) |
(pow.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2) |
(sqrt.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 2)) |
(log.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))) |
(log.f64 (*.f64 (exp.f64 (cos.f64 0)) (exp.f64 (*.f64 1/2 (*.f64 im im))))) |
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 0))) (exp.f64 (*.f64 1/2 (*.f64 im im))))) |
(log.f64 (*.f64 (exp.f64 (*.f64 1/2 (*.f64 im im))) (+.f64 1 (expm1.f64 (cos.f64 0))))) |
(cbrt.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 3)) |
(expm1.f64 (log1p.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(exp.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(exp.f64 (*.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 1)) |
(exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 1) 1)) |
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 3)) |
(exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 1/3)) |
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 2)) |
(log1p.f64 (expm1.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
| 1× | egg-herbie |
| 1228× | fma-def |
| 936× | associate-*r* |
| 870× | associate-*l* |
| 552× | log-prod |
| 482× | times-frac |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 120 | 1540 |
| 1 | 300 | 1436 |
| 2 | 863 | 1398 |
| 3 | 4987 | 1384 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 1/4 (pow.f64 re 2)) |
(cos.f64 re) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(*.f64 1/2 (pow.f64 im 2)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(*.f64 1/2 (pow.f64 im 2)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 1 (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))) |
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))))) |
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 -1/720 (pow.f64 re 6)))))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
0 |
0 |
(+.f64 0 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) |
(+.f64 (cos.f64 0) (*.f64 1/2 (*.f64 im im))) |
(+.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0)) |
(+.f64 (*.f64 (*.f64 1/2 (*.f64 im im)) 1) (cos.f64 0)) |
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))))) |
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))))) |
(-.f64 (exp.f64 (log1p.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 1) |
(*.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 1) |
(*.f64 1 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) |
(*.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2)) |
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2) (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(*.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 3) (pow.f64 (cos.f64 0) 3)) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (-.f64 (pow.f64 (cos.f64 0) 2) (*.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (pow.f64 (cos.f64 0) 2)) (-.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0))) |
(pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 1) |
(pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 3) |
(pow.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 2) 1/2) |
(pow.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 3) 1/3) |
(pow.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2) |
(sqrt.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 2)) |
(log.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))) |
(log.f64 (*.f64 (exp.f64 (cos.f64 0)) (exp.f64 (*.f64 1/2 (*.f64 im im))))) |
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 0))) (exp.f64 (*.f64 1/2 (*.f64 im im))))) |
(log.f64 (*.f64 (exp.f64 (*.f64 1/2 (*.f64 im im))) (+.f64 1 (expm1.f64 (cos.f64 0))))) |
(cbrt.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 3)) |
(expm1.f64 (log1p.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(exp.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(exp.f64 (*.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 1)) |
(exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 1) 1)) |
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 3)) |
(exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 1/3)) |
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 2)) |
(log1p.f64 (expm1.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
| Outputs |
|---|
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (*.f64 re re)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (*.f64 re re)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (*.f64 re re)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (*.f64 re re)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (*.f64 re re)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (*.f64 re re)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (*.f64 re re)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (*.f64 re re)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (*.f64 re re)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (*.f64 re re)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (*.f64 re re)) |
(*.f64 -1/4 (pow.f64 re 2)) |
(*.f64 -1/4 (*.f64 re re)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 (*.f64 re re) 1/4) |
(*.f64 re (*.f64 re 1/4)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 (*.f64 re re) 1/4) |
(*.f64 re (*.f64 re 1/4)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 (*.f64 re re) 1/4) |
(*.f64 re (*.f64 re 1/4)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 (*.f64 re re) 1/4) |
(*.f64 re (*.f64 re 1/4)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 (*.f64 re re) 1/4) |
(*.f64 re (*.f64 re 1/4)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 (*.f64 re re) 1/4) |
(*.f64 re (*.f64 re 1/4)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 (*.f64 re re) 1/4) |
(*.f64 re (*.f64 re 1/4)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 (*.f64 re re) 1/4) |
(*.f64 re (*.f64 re 1/4)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 (*.f64 re re) 1/4) |
(*.f64 re (*.f64 re 1/4)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 (*.f64 re re) 1/4) |
(*.f64 re (*.f64 re 1/4)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 (*.f64 re re) 1/4) |
(*.f64 re (*.f64 re 1/4)) |
(*.f64 1/4 (pow.f64 re 2)) |
(*.f64 (*.f64 re re) 1/4) |
(*.f64 re (*.f64 re 1/4)) |
(cos.f64 re) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(*.f64 1/2 (pow.f64 im 2)) |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(*.f64 1/2 (pow.f64 im 2)) |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 1 (*.f64 1/2 (pow.f64 im 2))) |
(fma.f64 1/2 (*.f64 im im) 1) |
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))) |
(+.f64 1 (fma.f64 1/2 (*.f64 im im) (*.f64 (*.f64 re re) -1/2))) |
(+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) |
(fma.f64 (*.f64 re re) -1/2 (fma.f64 1/2 (*.f64 im im) 1)) |
(fma.f64 re (*.f64 re -1/2) (fma.f64 1/2 (*.f64 im im) 1)) |
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))))) |
(fma.f64 1/24 (pow.f64 re 4) (+.f64 1 (fma.f64 1/2 (*.f64 im im) (*.f64 (*.f64 re re) -1/2)))) |
(+.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) (fma.f64 1/24 (pow.f64 re 4) 1)) |
(fma.f64 1/24 (pow.f64 re 4) (fma.f64 (*.f64 re re) -1/2 (fma.f64 1/2 (*.f64 im im) 1))) |
(fma.f64 1/24 (pow.f64 re 4) (fma.f64 re (*.f64 re -1/2) (fma.f64 1/2 (*.f64 im im) 1))) |
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 -1/720 (pow.f64 re 6)))))) |
(fma.f64 1/24 (pow.f64 re 4) (+.f64 (fma.f64 1/2 (*.f64 im im) 1) (fma.f64 -1/2 (*.f64 re re) (*.f64 -1/720 (pow.f64 re 6))))) |
(+.f64 (fma.f64 1/2 (*.f64 im im) (fma.f64 (*.f64 re re) -1/2 (*.f64 -1/720 (pow.f64 re 6)))) (fma.f64 1/24 (pow.f64 re 4) 1)) |
(+.f64 1 (fma.f64 1/24 (pow.f64 re 4) (fma.f64 re (*.f64 re -1/2) (fma.f64 -1/720 (pow.f64 re 6) (*.f64 1/2 (*.f64 im im)))))) |
(+.f64 (fma.f64 1/24 (pow.f64 re 4) (fma.f64 re (*.f64 re -1/2) (fma.f64 1/2 (*.f64 im im) 1))) (*.f64 -1/720 (pow.f64 re 6))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))) |
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
0 |
0 |
(+.f64 0 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) |
(fma.f64 1/2 (*.f64 im im) 1) |
(+.f64 (cos.f64 0) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) 1) |
(+.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0)) |
(fma.f64 1/2 (*.f64 im im) 1) |
(+.f64 (*.f64 (*.f64 1/2 (*.f64 im im)) 1) (cos.f64 0)) |
(fma.f64 1/2 (*.f64 im im) 1) |
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))))) |
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) 1))))) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) 1))))) |
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) 1))))) |
(*.f64 (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) 1)))) 3) |
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))))) |
(fma.f64 1/2 (*.f64 im im) 1) |
(-.f64 (exp.f64 (log1p.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 1) |
(fma.f64 1/2 (*.f64 im im) 1) |
(*.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 1) |
(fma.f64 1/2 (*.f64 im im) 1) |
(*.f64 1 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) |
(fma.f64 1/2 (*.f64 im im) 1) |
(*.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2)) |
(fma.f64 1/2 (*.f64 im im) 1) |
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2) (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(fma.f64 1/2 (*.f64 im im) 1) |
(*.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(fma.f64 1/2 (*.f64 im im) 1) |
(/.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 3) (pow.f64 (cos.f64 0) 3)) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (-.f64 (pow.f64 (cos.f64 0) 2) (*.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0))))) |
(/.f64 (+.f64 1 (pow.f64 (*.f64 1/2 (*.f64 im im)) 3)) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (-.f64 1 (*.f64 1/2 (*.f64 im im))))) |
(/.f64 (fma.f64 1/8 (pow.f64 (*.f64 im im) 3) 1) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (-.f64 1 (*.f64 1/2 (*.f64 im im))))) |
(/.f64 (fma.f64 1/8 (pow.f64 im 6) 1) (fma.f64 1/4 (pow.f64 im 4) (fma.f64 (*.f64 im im) -1/2 1))) |
(/.f64 (-.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (pow.f64 (cos.f64 0) 2)) (-.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0))) |
(/.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) -1) (fma.f64 1/2 (*.f64 im im) -1)) |
(/.f64 (fma.f64 1/4 (pow.f64 im 4) -1) (fma.f64 1/2 (*.f64 im im) -1)) |
(/.f64 (fma.f64 1/2 (*.f64 im im) 1) 1) |
(pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 1) |
(fma.f64 1/2 (*.f64 im im) 1) |
(pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 3) |
(fma.f64 1/2 (*.f64 im im) 1) |
(pow.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 2) 1/2) |
(fma.f64 1/2 (*.f64 im im) 1) |
(pow.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 3) 1/3) |
(fma.f64 1/2 (*.f64 im im) 1) |
(pow.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2) |
(fma.f64 1/2 (*.f64 im im) 1) |
(sqrt.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 2)) |
(fma.f64 1/2 (*.f64 im im) 1) |
(log.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(fma.f64 1/2 (*.f64 im im) 1) |
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))) |
(fma.f64 1/2 (*.f64 im im) 1) |
(log.f64 (*.f64 (exp.f64 (cos.f64 0)) (exp.f64 (*.f64 1/2 (*.f64 im im))))) |
(fma.f64 1/2 (*.f64 im im) 1) |
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 0))) (exp.f64 (*.f64 1/2 (*.f64 im im))))) |
(fma.f64 1/2 (*.f64 im im) 1) |
(log.f64 (*.f64 (exp.f64 (*.f64 1/2 (*.f64 im im))) (+.f64 1 (expm1.f64 (cos.f64 0))))) |
(fma.f64 1/2 (*.f64 im im) 1) |
(cbrt.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 3)) |
(fma.f64 1/2 (*.f64 im im) 1) |
(expm1.f64 (log1p.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(fma.f64 1/2 (*.f64 im im) 1) |
(exp.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(fma.f64 1/2 (*.f64 im im) 1) |
(exp.f64 (*.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 1)) |
(fma.f64 1/2 (*.f64 im im) 1) |
(exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 1) 1)) |
(fma.f64 1/2 (*.f64 im im) 1) |
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 3)) |
(fma.f64 1/2 (*.f64 im im) 1) |
(exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 1/3)) |
(fma.f64 1/2 (*.f64 im im) 1) |
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 2)) |
(fma.f64 1/2 (*.f64 im im) 1) |
(log1p.f64 (expm1.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) |
(fma.f64 1/2 (*.f64 im im) 1) |
Compiled 947 to 640 computations (32.4% saved)
10 alts after pruning (4 fresh and 6 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 69 | 3 | 72 |
| Fresh | 0 | 1 | 1 |
| Picked | 1 | 2 | 3 |
| Done | 0 | 4 | 4 |
| Total | 70 | 10 | 80 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 71.9% | (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) |
| ▶ | 46.0% | (fma.f64 1/2 (*.f64 im im) 1) |
| ✓ | 10.3% | (+.f64 (cos.f64 re) (cos.f64 re)) |
| ▶ | 45.3% | (+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) |
| ✓ | 12.2% | (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
| ✓ | 65.8% | (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) |
| ✓ | 68.9% | (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
| ▶ | 20.3% | (*.f64 1/2 (*.f64 im im)) |
| ✓ | 47.3% | (cos.f64 re) |
| 7.7% | 1/4 | |
| ✓ | 71.9% | (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) |
| ▶ | 46.0% | (fma.f64 1/2 (*.f64 im im) 1) |
| ✓ | 10.3% | (+.f64 (cos.f64 re) (cos.f64 re)) |
| ▶ | 45.3% | (+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) |
| ✓ | 12.2% | (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
| ✓ | 65.8% | (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) |
| ✓ | 68.9% | (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
| ▶ | 20.3% | (*.f64 1/2 (*.f64 im im)) |
| ✓ | 47.3% | (cos.f64 re) |
| 7.7% | 1/4 |
Compiled 180 to 130 computations (27.8% saved)
Found 1 expressions with local accuracy:
| New | Accuracy | Program |
|---|---|---|
| ✓ | 94.7% | (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) |
Compiled 63 to 28 computations (55.6% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | im | @ | 0 | (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) |
| 0.0ms | re | @ | inf | (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) |
| 0.0ms | im | @ | inf | (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) |
| 0.0ms | re | @ | 0 | (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) |
| 0.0ms | re | @ | -inf | (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) |
| 1× | batch-egg-rewrite |
| 1864× | pow1 |
| 1708× | add-exp-log |
| 1708× | log1p-expm1-u |
| 1708× | expm1-log1p-u |
| 1670× | add-log-exp |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 27 |
| 1 | 220 | 27 |
| 2 | 2453 | 27 |
| 1× | node limit |
| Inputs |
|---|
(fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) |
| Outputs |
|---|
(+.f64 (*.f64 1/2 (*.f64 im im)) (*.f64 re (*.f64 re -1/2))) |
(+.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))) |
(+.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) 1) (*.f64 1/2 (*.f64 im im))) |
(-.f64 (+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 1) |
(*.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 1) |
(*.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) |
(*.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2)) |
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2) (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(*.f64 (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 re (*.f64 re -1/2)) 3) (pow.f64 (*.f64 1/2 (*.f64 im im)) 3)) (+.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (-.f64 (*.f64 (pow.f64 im 4) 1/4) (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im)))))) |
(/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im)))) |
(pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 1) |
(pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 3) |
(pow.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 3) 1/3) |
(pow.f64 (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2) |
(sqrt.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 2)) |
(log.f64 (exp.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(cbrt.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 3)) |
(expm1.f64 (log1p.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(exp.f64 (log.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(log1p.f64 (expm1.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
| 1× | egg-herbie |
| 976× | associate-/l* |
| 760× | distribute-rgt-in |
| 744× | distribute-lft-in |
| 692× | associate-/r* |
| 640× | fma-def |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 68 | 1291 |
| 1 | 181 | 1259 |
| 2 | 762 | 1219 |
| 3 | 2857 | 1207 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 1/2 (pow.f64 im 2)) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(*.f64 -1/2 (pow.f64 re 2)) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(*.f64 -1/2 (pow.f64 re 2)) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(*.f64 -1/2 (pow.f64 re 2)) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(*.f64 1/2 (pow.f64 im 2)) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(*.f64 1/2 (pow.f64 im 2)) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 (*.f64 1/2 (*.f64 im im)) (*.f64 re (*.f64 re -1/2))) |
(+.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))) |
(+.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) 1) (*.f64 1/2 (*.f64 im im))) |
(-.f64 (+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 1) |
(*.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 1) |
(*.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) |
(*.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2)) |
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2) (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(*.f64 (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 re (*.f64 re -1/2)) 3) (pow.f64 (*.f64 1/2 (*.f64 im im)) 3)) (+.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (-.f64 (*.f64 (pow.f64 im 4) 1/4) (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im)))))) |
(/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im)))) |
(pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 1) |
(pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 3) |
(pow.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 3) 1/3) |
(pow.f64 (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2) |
(sqrt.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 2)) |
(log.f64 (exp.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(cbrt.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 3)) |
(expm1.f64 (log1p.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(exp.f64 (log.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(log1p.f64 (expm1.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
| Outputs |
|---|
(*.f64 1/2 (pow.f64 im 2)) |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(*.f64 -1/2 (pow.f64 re 2)) |
(*.f64 -1/2 (*.f64 re re)) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(*.f64 -1/2 (pow.f64 re 2)) |
(*.f64 -1/2 (*.f64 re re)) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(*.f64 -1/2 (pow.f64 re 2)) |
(*.f64 -1/2 (*.f64 re re)) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(*.f64 1/2 (pow.f64 im 2)) |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(*.f64 1/2 (pow.f64 im 2)) |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 1/2 (*.f64 im im)) (*.f64 re (*.f64 re -1/2))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(+.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) 1) (*.f64 1/2 (*.f64 im im))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(-.f64 (+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 1) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(*.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 1) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(*.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(*.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2)) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2) (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(*.f64 (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(/.f64 (+.f64 (pow.f64 (*.f64 re (*.f64 re -1/2)) 3) (pow.f64 (*.f64 1/2 (*.f64 im im)) 3)) (+.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (-.f64 (*.f64 (pow.f64 im 4) 1/4) (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im)))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 -1/2 (*.f64 re re)) 3) (*.f64 1/8 (pow.f64 (*.f64 im im) 3))) (fma.f64 (*.f64 -1/2 (*.f64 re re)) (*.f64 -1/2 (*.f64 re re)) (-.f64 (*.f64 (pow.f64 im 4) 1/4) (*.f64 re (*.f64 (*.f64 -1/2 re) (*.f64 1/2 (*.f64 im im))))))) |
(/.f64 (fma.f64 1/8 (pow.f64 (*.f64 im im) 3) (*.f64 -1/8 (pow.f64 (*.f64 re re) 3))) (fma.f64 re (*.f64 -1/2 (*.f64 -1/2 (pow.f64 re 3))) (-.f64 (*.f64 (pow.f64 im 4) 1/4) (*.f64 (*.f64 im im) (*.f64 (*.f64 re re) -1/4))))) |
(/.f64 (fma.f64 1/8 (pow.f64 im 6) (*.f64 -1/8 (pow.f64 (*.f64 re re) 3))) (fma.f64 1/4 (pow.f64 re 4) (fma.f64 (*.f64 (*.f64 re re) 1/4) (*.f64 im im) (*.f64 (pow.f64 im 4) 1/4)))) |
(/.f64 (fma.f64 1/8 (pow.f64 im 6) (*.f64 -1/8 (pow.f64 re 6))) (fma.f64 (pow.f64 im 4) 1/4 (*.f64 (*.f64 (*.f64 re re) 1/4) (fma.f64 re re (*.f64 im im))))) |
(/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im)))) |
(/.f64 (-.f64 (*.f64 re (*.f64 (*.f64 -1/2 re) (*.f64 -1/2 (*.f64 re re)))) (*.f64 (pow.f64 im 4) 1/4)) (+.f64 (*.f64 -1/2 (*.f64 re re)) (*.f64 -1/2 (*.f64 im im)))) |
(/.f64 (fma.f64 re (*.f64 -1/2 (*.f64 -1/2 (pow.f64 re 3))) (*.f64 (pow.f64 im 4) -1/4)) (*.f64 -1/2 (+.f64 (*.f64 re re) (*.f64 im im)))) |
(/.f64 (*.f64 1/4 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (*.f64 -1/2 (fma.f64 re re (*.f64 im im)))) |
(/.f64 1/4 (/.f64 (*.f64 -1/2 (fma.f64 re re (*.f64 im im))) (-.f64 (pow.f64 re 4) (pow.f64 im 4)))) |
(pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 1) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 3) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(pow.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 3) 1/3) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(pow.f64 (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(sqrt.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 2)) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(log.f64 (exp.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(cbrt.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 3)) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(expm1.f64 (log1p.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(exp.f64 (log.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
(log1p.f64 (expm1.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))) |
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re))) |
Compiled 691 to 430 computations (37.8% saved)
10 alts after pruning (4 fresh and 6 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 32 | 3 | 35 |
| Fresh | 0 | 1 | 1 |
| Picked | 2 | 1 | 3 |
| Done | 1 | 5 | 6 |
| Total | 35 | 10 | 45 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 71.9% | (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) |
| 30.0% | (+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) | |
| 46.0% | (+.f64 1 (*.f64 1/2 (*.f64 im im))) | |
| 34.2% | (+.f64 1 (*.f64 -1/2 (*.f64 re re))) | |
| ✓ | 12.2% | (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
| ✓ | 65.8% | (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) |
| ✓ | 68.9% | (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
| ✓ | 20.3% | (*.f64 1/2 (*.f64 im im)) |
| ✓ | 47.3% | (cos.f64 re) |
| 7.7% | 1/4 |
Compiled 253 to 158 computations (37.5% saved)
| Inputs |
|---|
1/4 |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
(+.f64 1 (*.f64 -1/2 (*.f64 re re))) |
(+.f64 1 (*.f64 1/2 (*.f64 im im))) |
(cos.f64 re) |
(fma.f64 1/2 (*.f64 im im) 1) |
(+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) |
(+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) |
(+.f64 (cos.f64 re) (cos.f64 re)) |
(pow.f64 (*.f64 (cos.f64 re) -2) -2) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) |
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) |
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| Outputs |
|---|
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
6 calls:
| 10.0ms | im |
| 9.0ms | re |
| 8.0ms | (cos.f64 re) |
| 8.0ms | (*.f64 1/2 (cos.f64 re)) |
| 5.0ms | (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 100.0% | 1 | re |
| 100.0% | 1 | im |
| 100.0% | 1 | (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| 100.0% | 1 | (*.f64 1/2 (cos.f64 re)) |
| 100.0% | 1 | (cos.f64 re) |
| 100.0% | 1 | (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) |
Compiled 178 to 103 computations (42.1% saved)
| Inputs |
|---|
1/4 |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
(+.f64 1 (*.f64 -1/2 (*.f64 re re))) |
(+.f64 1 (*.f64 1/2 (*.f64 im im))) |
(cos.f64 re) |
(fma.f64 1/2 (*.f64 im im) 1) |
(+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) |
(+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) |
(+.f64 (cos.f64 re) (cos.f64 re)) |
(pow.f64 (*.f64 (cos.f64 re) -2) -2) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) |
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) |
| Outputs |
|---|
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) |
3 calls:
| 36.0ms | (cos.f64 re) |
| 32.0ms | im |
| 16.0ms | re |
| Accuracy | Segments | Branch |
|---|---|---|
| 85.1% | 2 | re |
| 94.5% | 3 | im |
| 89.3% | 4 | (cos.f64 re) |
Compiled 140 to 78 computations (44.3% saved)
| Inputs |
|---|
1/4 |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
(+.f64 1 (*.f64 -1/2 (*.f64 re re))) |
(+.f64 1 (*.f64 1/2 (*.f64 im im))) |
(cos.f64 re) |
(fma.f64 1/2 (*.f64 im im) 1) |
(+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) |
(+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) |
(+.f64 (cos.f64 re) (cos.f64 re)) |
(pow.f64 (*.f64 (cos.f64 re) -2) -2) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) |
| Outputs |
|---|
(cos.f64 re) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) |
1 calls:
| 30.0ms | im |
| Accuracy | Segments | Branch |
|---|---|---|
| 90.2% | 3 | im |
Compiled 123 to 70 computations (43.1% saved)
| Inputs |
|---|
1/4 |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
(+.f64 1 (*.f64 -1/2 (*.f64 re re))) |
(+.f64 1 (*.f64 1/2 (*.f64 im im))) |
(cos.f64 re) |
(fma.f64 1/2 (*.f64 im im) 1) |
(+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) |
(+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) |
(+.f64 (cos.f64 re) (cos.f64 re)) |
(pow.f64 (*.f64 (cos.f64 re) -2) -2) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
| Outputs |
|---|
(cos.f64 re) |
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) |
1 calls:
| 14.0ms | im |
| Accuracy | Segments | Branch |
|---|---|---|
| 87.1% | 2 | im |
Compiled 109 to 65 computations (40.4% saved)
| Inputs |
|---|
1/4 |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
(+.f64 1 (*.f64 -1/2 (*.f64 re re))) |
(+.f64 1 (*.f64 1/2 (*.f64 im im))) |
(cos.f64 re) |
(fma.f64 1/2 (*.f64 im im) 1) |
(+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) |
(+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) |
(+.f64 (cos.f64 re) (cos.f64 re)) |
(pow.f64 (*.f64 (cos.f64 re) -2) -2) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
| Outputs |
|---|
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
(+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) |
(fma.f64 1/2 (*.f64 im im) (cos.f64 re)) |
3 calls:
| 35.0ms | re |
| 20.0ms | im |
| 6.0ms | (cos.f64 re) |
| Accuracy | Segments | Branch |
|---|---|---|
| 68.4% | 5 | re |
| 64.2% | 1 | (cos.f64 re) |
| 71.1% | 3 | im |
Compiled 108 to 64 computations (40.7% saved)
| Inputs |
|---|
1/4 |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
(+.f64 1 (*.f64 -1/2 (*.f64 re re))) |
(+.f64 1 (*.f64 1/2 (*.f64 im im))) |
(cos.f64 re) |
(fma.f64 1/2 (*.f64 im im) 1) |
(+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) |
(+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) |
(+.f64 (cos.f64 re) (cos.f64 re)) |
(pow.f64 (*.f64 (cos.f64 re) -2) -2) |
| Outputs |
|---|
(cos.f64 re) |
(+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) |
(+.f64 1 (*.f64 1/2 (*.f64 im im))) |
1 calls:
| 19.0ms | im |
| Accuracy | Segments | Branch |
|---|---|---|
| 71.1% | 3 | im |
Compiled 94 to 57 computations (39.4% saved)
| Inputs |
|---|
1/4 |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
(+.f64 1 (*.f64 -1/2 (*.f64 re re))) |
(+.f64 1 (*.f64 1/2 (*.f64 im im))) |
(cos.f64 re) |
(fma.f64 1/2 (*.f64 im im) 1) |
(+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) |
| Outputs |
|---|
(cos.f64 re) |
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
(+.f64 1 (*.f64 1/2 (*.f64 im im))) |
1 calls:
| 16.0ms | im |
| Accuracy | Segments | Branch |
|---|---|---|
| 68.0% | 3 | im |
Compiled 52 to 31 computations (40.4% saved)
| Inputs |
|---|
1/4 |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
(+.f64 1 (*.f64 -1/2 (*.f64 re re))) |
(+.f64 1 (*.f64 1/2 (*.f64 im im))) |
| Outputs |
|---|
(+.f64 1 (*.f64 1/2 (*.f64 im im))) |
(+.f64 1 (*.f64 -1/2 (*.f64 re re))) |
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
(+.f64 1 (*.f64 -1/2 (*.f64 re re))) |
2 calls:
| 16.0ms | re |
| 12.0ms | im |
| Accuracy | Segments | Branch |
|---|---|---|
| 52.3% | 4 | re |
| 49.9% | 3 | im |
Compiled 35 to 23 computations (34.3% saved)
| Inputs |
|---|
1/4 |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
(+.f64 1 (*.f64 -1/2 (*.f64 re re))) |
| Outputs |
|---|
(+.f64 1 (*.f64 -1/2 (*.f64 re re))) |
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
(*.f64 1/2 (*.f64 im im)) |
2 calls:
| 18.0ms | re |
| 11.0ms | im |
| Accuracy | Segments | Branch |
|---|---|---|
| 48.7% | 3 | im |
| 39.9% | 5 | re |
Compiled 28 to 19 computations (32.1% saved)
| Inputs |
|---|
1/4 |
(*.f64 1/2 (*.f64 im im)) |
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
| Outputs |
|---|
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) |
(*.f64 1/2 (*.f64 im im)) |
2 calls:
| 7.0ms | im |
| 6.0ms | re |
| Accuracy | Segments | Branch |
|---|---|---|
| 24.2% | 2 | re |
| 27.3% | 2 | im |
Compiled 21 to 15 computations (28.6% saved)
| Inputs |
|---|
1/4 |
(*.f64 1/2 (*.f64 im im)) |
| Outputs |
|---|
1/4 |
(*.f64 1/2 (*.f64 im im)) |
1 calls:
| 6.0ms | im |
| Accuracy | Segments | Branch |
|---|---|---|
| 24.8% | 2 | im |
Compiled 11 to 8 computations (27.3% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
1/4 |
| Outputs |
|---|
1/4 |
2 calls:
| 3.0ms | re |
| 3.0ms | im |
| Accuracy | Segments | Branch |
|---|---|---|
| 7.7% | 1 | re |
| 7.7% | 1 | im |
Compiled 9 to 7 computations (22.2% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 24.0ms | 5.083723235422087e+152 | 2.8677811883932575e+156 |
| 23.0ms | 3.958207999644232e-8 | 4.206122758780734e-7 |
| 11.0ms | 28× | body | 1024 | valid |
| 11.0ms | 83× | body | 256 | infinite |
| 8.0ms | 26× | body | 1024 | infinite |
| 7.0ms | 53× | body | 256 | valid |
| 4.0ms | 19× | body | 512 | infinite |
| 4.0ms | 15× | body | 512 | valid |
Compiled 354 to 252 computations (28.8% saved)
| 2× | binary-search |
| 1× | predicate-same |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 23.0ms | 3.9031006754011984e+127 | 4.797893492963072e+130 |
| 21.0ms | 3.958207999644232e-8 | 4.206122758780734e-7 |
| 11.0ms | 89× | body | 256 | infinite |
| 9.0ms | 64× | body | 256 | valid |
| 7.0ms | 18× | body | 1024 | valid |
| 6.0ms | 22× | body | 1024 | infinite |
| 4.0ms | 14× | body | 512 | valid |
| 4.0ms | 17× | body | 512 | infinite |
Compiled 338 to 268 computations (20.7% saved)
| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 23.0ms | 3.958207999644232e-8 | 4.206122758780734e-7 |
| 10.0ms | 27× | body | 1024 | valid |
| 8.0ms | 54× | body | 256 | valid |
| 4.0ms | 15× | body | 512 | valid |
Compiled 114 to 92 computations (19.3% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 29.0ms | 5.083723235422087e+152 | 2.8677811883932575e+156 |
| 19.0ms | 1.2626049870689057e+23 | 1.7533726487726416e+24 |
| 21.0ms | 52× | body | 1024 | infinite |
| 18.0ms | 143× | body | 256 | infinite |
| 6.0ms | 29× | body | 512 | infinite |
Compiled 634 to 462 computations (27.1% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 28.0ms | 5.083723235422087e+152 | 2.8677811883932575e+156 |
| 18.0ms | 1.3486353971197489e+25 | 6.827066843334879e+25 |
| 22.0ms | 148× | body | 256 | infinite |
| 12.0ms | 42× | body | 1024 | infinite |
| 7.0ms | 34× | body | 512 | infinite |
Compiled 604 to 452 computations (25.2% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 22.0ms | 9.505225846316366e+149 | 6.394830973150909e+151 |
| 37.0ms | 4.206122758780734e-7 | 35315.795389819854 |
| 23.0ms | 152× | body | 256 | infinite |
| 15.0ms | 47× | body | 1024 | infinite |
| 6.0ms | 25× | body | 512 | infinite |
| 5.0ms | 14× | body | 1024 | valid |
| 4.0ms | 26× | body | 256 | valid |
| 2.0ms | 8× | body | 512 | valid |
Compiled 308 to 246 computations (20.1% saved)
| 3× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 30.0ms | 6.742258172826217e+289 | 2.071162366755797e+290 |
| 31.0ms | 1.9844134332531692e+238 | 7.36095147599478e+238 |
| 27.0ms | 4.696814347783136e+165 | 7.94618346588493e+165 |
| 44.0ms | 97× | body | 1024 | valid |
| 41.0ms | 127× | body | 1024 | infinite |
Compiled 298 to 238 computations (20.1% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 21.0ms | 9.505225846316366e+149 | 6.394830973150909e+151 |
| 38.0ms | 4.206122758780734e-7 | 35315.795389819854 |
| 17.0ms | 44× | body | 1024 | valid |
| 13.0ms | 96× | body | 256 | valid |
| 10.0ms | 77× | body | 256 | infinite |
| 8.0ms | 27× | body | 1024 | infinite |
| 5.0ms | 20× | body | 512 | valid |
| 2.0ms | 8× | body | 512 | infinite |
Compiled 344 to 272 computations (20.9% saved)
| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 23.0ms | 9.505225846316366e+149 | 6.394830973150909e+151 |
| 10.0ms | 31× | body | 1024 | infinite |
| 8.0ms | 65× | body | 256 | infinite |
| 3.0ms | 16× | body | 512 | infinite |
Compiled 144 to 112 computations (22.2% saved)
| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 35.0ms | 4.206122758780734e-7 | 35315.795389819854 |
| 13.0ms | 99× | body | 256 | valid |
| 13.0ms | 34× | body | 1024 | valid |
| 7.0ms | 27× | body | 512 | valid |
Compiled 138 to 114 computations (17.4% saved)
| 1× | egg-herbie |
| 38× | *-commutative |
| 30× | +-commutative |
| 18× | sub-neg |
| 14× | neg-mul-1 |
| 14× | neg-sub0 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 93 | 798 |
| 1 | 136 | 798 |
| 2 | 158 | 798 |
| 3 | 173 | 798 |
| 4 | 181 | 798 |
| 5 | 183 | 798 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(if (<=.f64 im 1983393922805251/4722366482869645213696) (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)))) |
(if (<=.f64 im 1983393922805251/4722366482869645213696) (cos.f64 re) (if (<=.f64 im 90000000000000006765703822486638776472428615791716739213461819212198933271817368419808699098798223188543935953496727369400975360) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))))) |
(if (<=.f64 im 1983393922805251/4722366482869645213696) (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(if (<=.f64 im 195000000000000002097152) (fma.f64 1/2 (*.f64 im im) (cos.f64 re)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) (fma.f64 1/2 (*.f64 im im) (cos.f64 re)))) |
(if (<=.f64 im 25999999999999998490050560) (cos.f64 re) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) (+.f64 1 (*.f64 1/2 (*.f64 im im))))) |
(if (<=.f64 im 720) (cos.f64 re) (if (<=.f64 im 35000000000000002781729806439440840779347287959082695937987231620154290264207196512207057940207876118102062999693096604041823761356639322477525808971776) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (+.f64 1 (*.f64 1/2 (*.f64 im im))))) |
(if (<=.f64 re 5800000000000000112636886198564359955756869294359954283990752549513285836524672559602899644004569013895050413285321648632549722456086679198356951687567212866072215552) (+.f64 1 (*.f64 1/2 (*.f64 im im))) (if (<=.f64 re 65000000000000004607988973225829926069456722358581324574172720451228924965727064156846610681139469870263750697835167374885507016697219354049905027287016131830178267685346464261188184769406593196664400169962501748166042716071822787237380096) (+.f64 1 (*.f64 -1/2 (*.f64 re re))) (if (<=.f64 re 179999999999999993799854838762609447185516943828925864086220333545356370688124367223606611791243468147271241594517694103171688274731528559512015933876577326772005137522887331801027676181466158488097723507301678615492659327938404828345130926742892505185249057699081087455759892800959953240064) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (+.f64 1 (*.f64 -1/2 (*.f64 re re)))))) |
(if (<=.f64 im 49/2) (+.f64 1 (*.f64 -1/2 (*.f64 re re))) (if (<=.f64 im 27999999999999998736557968532639597986723552504844391852911253996996742860212801142697063407856268928764606973689362591573355299007657377015932829827072) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (*.f64 1/2 (*.f64 im im)))) |
(if (<=.f64 im 7499999999999999765412130756329448110632924119226824153978565990240993306341314474742326000446918223946384112775874345708937541700790787919925097791488) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (*.f64 1/2 (*.f64 im im))) |
(if (<=.f64 im 799388933858263/1125899906842624) 1/4 (*.f64 1/2 (*.f64 im im))) |
1/4 |
| Outputs |
|---|
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(if (<=.f64 im 1983393922805251/4722366482869645213696) (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)))) |
(if (or (<=.f64 im 1983393922805251/4722366482869645213696) (not (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160))) (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) |
(if (<=.f64 im 1983393922805251/4722366482869645213696) (cos.f64 re) (if (<=.f64 im 90000000000000006765703822486638776472428615791716739213461819212198933271817368419808699098798223188543935953496727369400975360) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))))) |
(if (<=.f64 im 1983393922805251/4722366482869645213696) (cos.f64 re) (if (<=.f64 im 90000000000000006765703822486638776472428615791716739213461819212198933271817368419808699098798223188543935953496727369400975360) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))))) |
(if (<=.f64 im 1983393922805251/4722366482869645213696) (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) |
(if (<=.f64 im 1983393922805251/4722366482869645213696) (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) |
(if (<=.f64 im 195000000000000002097152) (fma.f64 1/2 (*.f64 im im) (cos.f64 re)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) (fma.f64 1/2 (*.f64 im im) (cos.f64 re)))) |
(if (or (<=.f64 im 195000000000000002097152) (not (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160))) (fma.f64 1/2 (*.f64 im im) (cos.f64 re)) (+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im)))))) |
(if (<=.f64 im 25999999999999998490050560) (cos.f64 re) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) (+.f64 1 (*.f64 1/2 (*.f64 im im))))) |
(if (<=.f64 im 720) (cos.f64 re) (if (<=.f64 im 35000000000000002781729806439440840779347287959082695937987231620154290264207196512207057940207876118102062999693096604041823761356639322477525808971776) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (+.f64 1 (*.f64 1/2 (*.f64 im im))))) |
(if (<=.f64 re 5800000000000000112636886198564359955756869294359954283990752549513285836524672559602899644004569013895050413285321648632549722456086679198356951687567212866072215552) (+.f64 1 (*.f64 1/2 (*.f64 im im))) (if (<=.f64 re 65000000000000004607988973225829926069456722358581324574172720451228924965727064156846610681139469870263750697835167374885507016697219354049905027287016131830178267685346464261188184769406593196664400169962501748166042716071822787237380096) (+.f64 1 (*.f64 -1/2 (*.f64 re re))) (if (<=.f64 re 179999999999999993799854838762609447185516943828925864086220333545356370688124367223606611791243468147271241594517694103171688274731528559512015933876577326772005137522887331801027676181466158488097723507301678615492659327938404828345130926742892505185249057699081087455759892800959953240064) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (+.f64 1 (*.f64 -1/2 (*.f64 re re)))))) |
(if (<=.f64 re 5800000000000000112636886198564359955756869294359954283990752549513285836524672559602899644004569013895050413285321648632549722456086679198356951687567212866072215552) (+.f64 1 (*.f64 1/2 (*.f64 im im))) (if (or (<=.f64 re 65000000000000004607988973225829926069456722358581324574172720451228924965727064156846610681139469870263750697835167374885507016697219354049905027287016131830178267685346464261188184769406593196664400169962501748166042716071822787237380096) (not (<=.f64 re 179999999999999993799854838762609447185516943828925864086220333545356370688124367223606611791243468147271241594517694103171688274731528559512015933876577326772005137522887331801027676181466158488097723507301678615492659327938404828345130926742892505185249057699081087455759892800959953240064))) (+.f64 1 (*.f64 (*.f64 re re) -1/2)) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)))) |
(if (<=.f64 im 49/2) (+.f64 1 (*.f64 -1/2 (*.f64 re re))) (if (<=.f64 im 27999999999999998736557968532639597986723552504844391852911253996996742860212801142697063407856268928764606973689362591573355299007657377015932829827072) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (*.f64 1/2 (*.f64 im im)))) |
(if (<=.f64 im 49/2) (+.f64 1 (*.f64 (*.f64 re re) -1/2)) (if (<=.f64 im 27999999999999998736557968532639597986723552504844391852911253996996742860212801142697063407856268928764606973689362591573355299007657377015932829827072) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (*.f64 1/2 (*.f64 im im)))) |
(if (<=.f64 im 7499999999999999765412130756329448110632924119226824153978565990240993306341314474742326000446918223946384112775874345708937541700790787919925097791488) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (*.f64 1/2 (*.f64 im im))) |
(if (<=.f64 im 799388933858263/1125899906842624) 1/4 (*.f64 1/2 (*.f64 im im))) |
1/4 |
Compiled 315 to 222 computations (29.5% saved)
| 1864× | pow1 |
| 1708× | add-exp-log |
| 1708× | log1p-expm1-u |
| 1708× | expm1-log1p-u |
| 1670× | add-log-exp |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 35 |
| 1 | 273 | 35 |
| 2 | 4277 | 35 |
| 0 | 95 | 1035 |
| 1 | 285 | 921 |
| 2 | 906 | 921 |
| 3 | 4789 | 921 |
| 0 | 215 | 2169 |
| 1 | 473 | 2073 |
| 2 | 1061 | 2037 |
| 3 | 3228 | 2031 |
| 4 | 7735 | 2031 |
| 0 | 120 | 1540 |
| 1 | 300 | 1436 |
| 2 | 863 | 1398 |
| 3 | 4987 | 1384 |
| 0 | 215 | 2169 |
| 1 | 473 | 2073 |
| 2 | 1061 | 2037 |
| 3 | 3228 | 2031 |
| 4 | 7735 | 2031 |
| 0 | 120 | 1540 |
| 1 | 300 | 1436 |
| 2 | 863 | 1398 |
| 3 | 4987 | 1384 |
| 0 | 68 | 1291 |
| 1 | 181 | 1259 |
| 2 | 762 | 1219 |
| 3 | 2857 | 1207 |
| 0 | 68 | 1291 |
| 1 | 181 | 1259 |
| 2 | 762 | 1219 |
| 3 | 2857 | 1207 |
| 0 | 11 | 27 |
| 1 | 220 | 27 |
| 2 | 2453 | 27 |
| 0 | 95 | 1035 |
| 1 | 285 | 921 |
| 2 | 906 | 921 |
| 3 | 4789 | 921 |
| 1× | node limit |
| 1× | node limit |
| 1× | node limit |
| 1× | node limit |
| 1× | node limit |
| 1× | node limit |
| 1× | node limit |
| 1× | node limit |
| 1× | node limit |
| 1× | unsound |
Compiled 614 to 399 computations (35% saved)
(abs im)
(abs re)
Compiled 664 to 402 computations (39.5% saved)
Loading profile data...