
Time bar (total: 4.2s)
| 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)
| 486.0ms | 1040× | body | 1024 | valid |
| 363.0ms | 2618× | body | 256 | valid |
| 347.0ms | 2547× | body | 256 | infinite |
| 323.0ms | 1024× | body | 1024 | infinite |
| 125.0ms | 506× | body | 512 | valid |
| 108.0ms | 518× | body | 512 | infinite |
| 5.0ms | 3× | body | 2048 | valid |
| 2× | egg-herbie |
| 1744× | fma-def |
| 1496× | times-frac |
| 770× | sqr-pow |
| 640× | unswap-sqr |
| 620× | associate-*r* |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 20 | 70 |
| 1 | 51 | 70 |
| 2 | 138 | 70 |
| 3 | 263 | 66 |
| 4 | 380 | 66 |
| 5 | 683 | 66 |
| 6 | 1554 | 66 |
| 7 | 2637 | 66 |
| 8 | 3789 | 66 |
| 9 | 4533 | 66 |
| 10 | 5121 | 66 |
| 11 | 6015 | 66 |
| 12 | 7507 | 66 |
| 0 | 2 | 2 |
| 1× | saturated |
| 1× | node limit |
| Inputs |
|---|
0 |
1 |
| Outputs |
|---|
0 |
1 |
| Inputs |
|---|
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.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 (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 1/2 (*.f64 (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)))) |
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% | (cos.f64 re) |
Compiled 36 to 14 computations (61.1% saved)
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | re | @ | 0 | (cos.f64 re) |
| 0.0ms | re | @ | inf | (cos.f64 re) |
| 0.0ms | re | @ | -inf | (cos.f64 re) |
| 1× | batch-egg-rewrite |
| 738× | pow1 |
| 708× | add-sqr-sqrt |
| 698× | *-un-lft-identity |
| 674× | add-exp-log |
| 674× | log1p-expm1-u |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 4 | 5 |
| 1 | 78 | 5 |
| 2 | 910 | 5 |
| 1× | node limit |
| Inputs |
|---|
(cos.f64 re) |
| Outputs |
|---|
(+.f64 0 (cos.f64 re)) |
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re))))) |
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(+.f64 (*.f64 (cos.f64 (+.f64 1 re)) (cos.f64 1)) (*.f64 (sin.f64 (+.f64 1 re)) (sin.f64 1))) |
(-.f64 (+.f64 1 (cos.f64 re)) 1) |
(*.f64 (cos.f64 re) 1) |
(*.f64 1 (cos.f64 re)) |
(*.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) |
(*.f64 (cbrt.f64 (cos.f64 re)) (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4))) |
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re))) |
(*.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re))) |
(*.f64 (sqrt.f64 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (pow.f64 (cos.f64 re) 3/2))) |
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 5/2)) (sqrt.f64 (cbrt.f64 (cos.f64 re)))) |
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 re)))) |
(*.f64 (sqrt.f64 (pow.f64 (cos.f64 re) 3/2)) (sqrt.f64 (sqrt.f64 (cos.f64 re)))) |
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 5)) (sqrt.f64 (cbrt.f64 (cos.f64 re)))) |
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4)) (cbrt.f64 (cos.f64 re))) |
(*.f64 (pow.f64 1 1/3) (cos.f64 re)) |
(*.f64 (pow.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2) 1/3) (cbrt.f64 (cbrt.f64 (cos.f64 re)))) |
(*.f64 (pow.f64 (pow.f64 (cos.f64 re) 5/2) 1/3) (sqrt.f64 (cbrt.f64 (cos.f64 re)))) |
(pow.f64 (cos.f64 re) 1) |
(pow.f64 (cbrt.f64 (cos.f64 re)) 3) |
(pow.f64 (pow.f64 (cos.f64 re) 2) 1/2) |
(pow.f64 (pow.f64 (cos.f64 re) 3) 1/3) |
(pow.f64 (sqrt.f64 (cos.f64 re)) 2) |
(pow.f64 (E.f64) (log.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cos.f64 re)))) (sqrt.f64 (log.f64 (cos.f64 re)))) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cos.f64 re))) 2)) (cbrt.f64 (log.f64 (cos.f64 re)))) |
(sqrt.f64 (pow.f64 (cos.f64 re) 2)) |
(log.f64 (exp.f64 (cos.f64 re))) |
(cbrt.f64 (pow.f64 (cos.f64 re) 3)) |
(expm1.f64 (log1p.f64 (cos.f64 re))) |
(exp.f64 (log.f64 (cos.f64 re))) |
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (cos.f64 re))) 3)) |
(exp.f64 (*.f64 (*.f64 3 (log.f64 (cos.f64 re))) 1/3)) |
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (cos.f64 re))) 2)) |
(log1p.f64 (expm1.f64 (cos.f64 re))) |
| 1× | egg-herbie |
| 966× | log-prod |
| 646× | associate-*r* |
| 622× | associate-+l+ |
| 618× | associate-+r+ |
| 586× | *-commutative |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 120 | 569 |
| 1 | 240 | 531 |
| 2 | 644 | 515 |
| 3 | 3330 | 515 |
| 4 | 6970 | 515 |
| 1× | node limit |
| Inputs |
|---|
1 |
(+.f64 1 (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (*.f64 -1/2 (pow.f64 re 2)))) |
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 -1/720 (pow.f64 re 6))))) |
(+.f64 0 (cos.f64 re)) |
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re))))) |
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(+.f64 (*.f64 (cos.f64 (+.f64 1 re)) (cos.f64 1)) (*.f64 (sin.f64 (+.f64 1 re)) (sin.f64 1))) |
(-.f64 (+.f64 1 (cos.f64 re)) 1) |
(*.f64 (cos.f64 re) 1) |
(*.f64 1 (cos.f64 re)) |
(*.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) |
(*.f64 (cbrt.f64 (cos.f64 re)) (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4))) |
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re))) |
(*.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re))) |
(*.f64 (sqrt.f64 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (pow.f64 (cos.f64 re) 3/2))) |
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 5/2)) (sqrt.f64 (cbrt.f64 (cos.f64 re)))) |
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 re)))) |
(*.f64 (sqrt.f64 (pow.f64 (cos.f64 re) 3/2)) (sqrt.f64 (sqrt.f64 (cos.f64 re)))) |
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 5)) (sqrt.f64 (cbrt.f64 (cos.f64 re)))) |
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4)) (cbrt.f64 (cos.f64 re))) |
(*.f64 (pow.f64 1 1/3) (cos.f64 re)) |
(*.f64 (pow.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2) 1/3) (cbrt.f64 (cbrt.f64 (cos.f64 re)))) |
(*.f64 (pow.f64 (pow.f64 (cos.f64 re) 5/2) 1/3) (sqrt.f64 (cbrt.f64 (cos.f64 re)))) |
(pow.f64 (cos.f64 re) 1) |
(pow.f64 (cbrt.f64 (cos.f64 re)) 3) |
(pow.f64 (pow.f64 (cos.f64 re) 2) 1/2) |
(pow.f64 (pow.f64 (cos.f64 re) 3) 1/3) |
(pow.f64 (sqrt.f64 (cos.f64 re)) 2) |
(pow.f64 (E.f64) (log.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cos.f64 re)))) (sqrt.f64 (log.f64 (cos.f64 re)))) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cos.f64 re))) 2)) (cbrt.f64 (log.f64 (cos.f64 re)))) |
(sqrt.f64 (pow.f64 (cos.f64 re) 2)) |
(log.f64 (exp.f64 (cos.f64 re))) |
(cbrt.f64 (pow.f64 (cos.f64 re) 3)) |
(expm1.f64 (log1p.f64 (cos.f64 re))) |
(exp.f64 (log.f64 (cos.f64 re))) |
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (cos.f64 re))) 3)) |
(exp.f64 (*.f64 (*.f64 3 (log.f64 (cos.f64 re))) 1/3)) |
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (cos.f64 re))) 2)) |
(log1p.f64 (expm1.f64 (cos.f64 re))) |
| Outputs |
|---|
1 |
(+.f64 1 (*.f64 -1/2 (pow.f64 re 2))) |
(+.f64 1 (*.f64 -1/2 (*.f64 re re))) |
(fma.f64 -1/2 (*.f64 re re) 1) |
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (*.f64 -1/2 (pow.f64 re 2)))) |
(fma.f64 1/24 (pow.f64 re 4) (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) |
(fma.f64 1/24 (pow.f64 re 4) (fma.f64 -1/2 (*.f64 re re) 1)) |
(fma.f64 -1/2 (*.f64 re re) (fma.f64 1/24 (pow.f64 re 4) 1)) |
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 -1/720 (pow.f64 re 6))))) |
(fma.f64 1/24 (pow.f64 re 4) (+.f64 1 (fma.f64 -1/2 (*.f64 re re) (*.f64 -1/720 (pow.f64 re 6))))) |
(+.f64 (fma.f64 1/24 (pow.f64 re 4) (fma.f64 -1/2 (*.f64 re re) 1)) (*.f64 -1/720 (pow.f64 re 6))) |
(fma.f64 1/24 (pow.f64 re 4) (fma.f64 -1/2 (*.f64 re re) (fma.f64 -1/720 (pow.f64 re 6) 1))) |
(+.f64 0 (cos.f64 re)) |
(cos.f64 re) |
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re))))) |
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))) 3) |
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(cos.f64 re) |
(+.f64 (*.f64 (cos.f64 (+.f64 1 re)) (cos.f64 1)) (*.f64 (sin.f64 (+.f64 1 re)) (sin.f64 1))) |
(fma.f64 (cos.f64 (+.f64 1 re)) (cos.f64 1) (*.f64 (sin.f64 (+.f64 1 re)) (sin.f64 1))) |
(-.f64 (+.f64 1 (cos.f64 re)) 1) |
(cos.f64 re) |
(*.f64 (cos.f64 re) 1) |
(cos.f64 re) |
(*.f64 1 (cos.f64 re)) |
(cos.f64 re) |
(*.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) |
(cos.f64 re) |
(*.f64 (cbrt.f64 (cos.f64 re)) (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4))) |
(cos.f64 re) |
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re))) |
(cos.f64 re) |
(*.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re))) |
(cos.f64 re) |
(*.f64 (sqrt.f64 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (pow.f64 (cos.f64 re) 3/2))) |
(cos.f64 re) |
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 5/2)) (sqrt.f64 (cbrt.f64 (cos.f64 re)))) |
(*.f64 (sqrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (cos.f64 re) 5/2))) |
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 re)))) |
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2))) |
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4) 2))) |
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 8))) |
(*.f64 (sqrt.f64 (pow.f64 (cos.f64 re) 3/2)) (sqrt.f64 (sqrt.f64 (cos.f64 re)))) |
(cos.f64 re) |
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 5)) (sqrt.f64 (cbrt.f64 (cos.f64 re)))) |
(cos.f64 re) |
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4)) (cbrt.f64 (cos.f64 re))) |
(cos.f64 re) |
(*.f64 (pow.f64 1 1/3) (cos.f64 re)) |
(cos.f64 re) |
(*.f64 (pow.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2) 1/3) (cbrt.f64 (cbrt.f64 (cos.f64 re)))) |
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2))) |
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4) 2))) |
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 8))) |
(*.f64 (pow.f64 (pow.f64 (cos.f64 re) 5/2) 1/3) (sqrt.f64 (cbrt.f64 (cos.f64 re)))) |
(*.f64 (sqrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (cos.f64 re) 5/2))) |
(pow.f64 (cos.f64 re) 1) |
(cos.f64 re) |
(pow.f64 (cbrt.f64 (cos.f64 re)) 3) |
(cos.f64 re) |
(pow.f64 (pow.f64 (cos.f64 re) 2) 1/2) |
(cos.f64 re) |
(pow.f64 (pow.f64 (cos.f64 re) 3) 1/3) |
(cos.f64 re) |
(pow.f64 (sqrt.f64 (cos.f64 re)) 2) |
(cos.f64 re) |
(pow.f64 (E.f64) (log.f64 (cos.f64 re))) |
(cos.f64 re) |
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cos.f64 re)))) (sqrt.f64 (log.f64 (cos.f64 re)))) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cos.f64 re))) 2)) (cbrt.f64 (log.f64 (cos.f64 re)))) |
(sqrt.f64 (pow.f64 (cos.f64 re) 2)) |
(cos.f64 re) |
(log.f64 (exp.f64 (cos.f64 re))) |
(cos.f64 re) |
(cbrt.f64 (pow.f64 (cos.f64 re) 3)) |
(cos.f64 re) |
(expm1.f64 (log1p.f64 (cos.f64 re))) |
(cos.f64 re) |
(exp.f64 (log.f64 (cos.f64 re))) |
(cos.f64 re) |
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (cos.f64 re))) 3)) |
(cos.f64 re) |
(exp.f64 (*.f64 (*.f64 3 (log.f64 (cos.f64 re))) 1/3)) |
(cos.f64 re) |
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (cos.f64 re))) 2)) |
(cos.f64 re) |
(log1p.f64 (expm1.f64 (cos.f64 re))) |
(cos.f64 re) |
Compiled 1042 to 455 computations (56.3% saved)
4 alts after pruning (3 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 55 | 3 | 58 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 55 | 4 | 59 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 99.6% | (*.f64 (*.f64 1/2 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| ▶ | 62.1% | (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re 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))) |
| ▶ | 63.7% | (*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| ▶ | 99.6% | (*.f64 (*.f64 1/2 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| ▶ | 62.1% | (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re 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))) |
| ▶ | 63.7% | (*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
Compiled 130 to 96 computations (26.2% saved)
Found 4 expressions with local accuracy:
| New | Accuracy | Program |
|---|---|---|
| 100.0% | (cos.f64 re) | |
| ✓ | 99.9% | (sqrt.f64 (exp.f64 (cos.f64 re))) |
| ✓ | 99.8% | (exp.f64 (cos.f64 re)) |
| ✓ | 99.1% | (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) |
Compiled 164 to 50 computations (69.5% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 30.0ms | re | @ | inf | (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) |
| 17.0ms | re | @ | -inf | (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) |
| 1.0ms | re | @ | 0 | (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) |
| 0.0ms | re | @ | 0 | (sqrt.f64 (exp.f64 (cos.f64 re))) |
| 0.0ms | re | @ | 0 | (exp.f64 (cos.f64 re)) |
| 1× | batch-egg-rewrite |
| 1156× | pow1 |
| 1056× | add-exp-log |
| 1056× | log1p-expm1-u |
| 1056× | expm1-log1p-u |
| 1026× | add-log-exp |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 39 |
| 1 | 131 | 33 |
| 2 | 1488 | 33 |
| 1× | node limit |
| Inputs |
|---|
(log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(exp.f64 (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
| Outputs |
|---|
(+.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4))) |
(+.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))) |
(+.f64 0 (*.f64 (cos.f64 re) 1/2)) |
(-.f64 (+.f64 1 (*.f64 (cos.f64 re) 1/2)) 1) |
(*.f64 (cos.f64 re) 1/2) |
(*.f64 (*.f64 (cos.f64 re) 1/2) 1) |
(*.f64 1 (*.f64 (cos.f64 re) 1/2)) |
(*.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) |
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) (cbrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 1/2 (cos.f64 re)) |
(pow.f64 (*.f64 (cos.f64 re) 1/2) 1) |
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 3) |
(pow.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3) 1/3) |
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) |
(sqrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 2)) |
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3)) |
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) 1/2))) |
(exp.f64 (log.f64 (*.f64 (cos.f64 re) 1/2))) |
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) 1/2))) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(-.f64 (+.f64 1 (exp.f64 (cos.f64 re))) 1) |
(*.f64 (exp.f64 (cos.f64 re)) 1) |
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(*.f64 1 (exp.f64 (cos.f64 re))) |
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) |
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2) (cbrt.f64 (exp.f64 (cos.f64 re)))) |
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 (*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) |
(*.f64 (*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(pow.f64 (exp.f64 (cos.f64 re)) 1) |
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 2) |
(pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 3) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 2) 1/2) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3) 1/3) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 1) (cos.f64 re)) |
(sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 2)) |
(log.f64 (exp.f64 (exp.f64 (cos.f64 re)))) |
(cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3)) |
(expm1.f64 (log1p.f64 (exp.f64 (cos.f64 re)))) |
(log1p.f64 (expm1.f64 (exp.f64 (cos.f64 re)))) |
(+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) 1/2))) |
(-.f64 (+.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) 1) |
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1) |
(*.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (exp.f64 (cos.f64 re)))) |
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) |
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) (sqrt.f64 (cbrt.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2) 1/2) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 1/2)) |
(pow.f64 (exp.f64 (cos.f64 re)) 1/2) |
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1) |
(pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) 3) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3/2) 1/3) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) 2) |
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) (cbrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(pow.f64 (exp.f64 1) (*.f64 (cos.f64 re) 1/2)) |
(fabs.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(log.f64 (exp.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3/2)) |
(expm1.f64 (log1p.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(exp.f64 (*.f64 (cos.f64 re) 1/2)) |
(log1p.f64 (expm1.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
| 1× | egg-herbie |
| 1690× | fma-def |
| 962× | log-prod |
| 592× | *-commutative |
| 562× | exp-prod |
| 514× | distribute-lft-in |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 199 | 2242 |
| 1 | 456 | 1874 |
| 2 | 1648 | 1286 |
| 3 | 6117 | 1286 |
| 1× | node limit |
| Inputs |
|---|
(log.f64 (sqrt.f64 (exp.f64 1))) |
(+.f64 (log.f64 (sqrt.f64 (exp.f64 1))) (*.f64 -1/4 (pow.f64 re 2))) |
(+.f64 (log.f64 (sqrt.f64 (exp.f64 1))) (+.f64 (*.f64 1/24 (*.f64 (-.f64 (*.f64 12 (/.f64 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)) (exp.f64 1))) 3/4) (pow.f64 re 4))) (*.f64 -1/4 (pow.f64 re 2)))) |
(+.f64 (log.f64 (sqrt.f64 (exp.f64 1))) (+.f64 (*.f64 1/24 (*.f64 (-.f64 (*.f64 12 (/.f64 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)) (exp.f64 1))) 3/4) (pow.f64 re 4))) (+.f64 (*.f64 -1/4 (pow.f64 re 2)) (*.f64 1/720 (*.f64 (pow.f64 re 6) (-.f64 (+.f64 (*.f64 360 (/.f64 (-.f64 (*.f64 -31/720 (exp.f64 1)) (*.f64 -1/4 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)))) (exp.f64 1))) (*.f64 90 (/.f64 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)) (exp.f64 1)))) 15/4)))))) |
(exp.f64 1) |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (exp.f64 1))) (exp.f64 1)) |
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 4) (exp.f64 1))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (exp.f64 1))) (exp.f64 1))) |
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 4) (exp.f64 1))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (exp.f64 1))) (+.f64 (*.f64 -31/720 (*.f64 (pow.f64 re 6) (exp.f64 1))) (exp.f64 1)))) |
(sqrt.f64 (exp.f64 1)) |
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (sqrt.f64 (exp.f64 1)))) (sqrt.f64 (exp.f64 1))) |
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (sqrt.f64 (exp.f64 1)))) (+.f64 (sqrt.f64 (exp.f64 1)) (*.f64 1/2 (*.f64 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2))) (sqrt.f64 (/.f64 1 (exp.f64 1))))))) |
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (sqrt.f64 (exp.f64 1)))) (+.f64 (sqrt.f64 (exp.f64 1)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -31/720 (exp.f64 1)) (*.f64 -1/4 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2))))) (sqrt.f64 (/.f64 1 (exp.f64 1))))) (*.f64 1/2 (*.f64 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2))) (sqrt.f64 (/.f64 1 (exp.f64 1)))))))) |
(+.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4))) |
(+.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))) |
(+.f64 0 (*.f64 (cos.f64 re) 1/2)) |
(-.f64 (+.f64 1 (*.f64 (cos.f64 re) 1/2)) 1) |
(*.f64 (cos.f64 re) 1/2) |
(*.f64 (*.f64 (cos.f64 re) 1/2) 1) |
(*.f64 1 (*.f64 (cos.f64 re) 1/2)) |
(*.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) |
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) (cbrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 1/2 (cos.f64 re)) |
(pow.f64 (*.f64 (cos.f64 re) 1/2) 1) |
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 3) |
(pow.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3) 1/3) |
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) |
(sqrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 2)) |
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3)) |
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) 1/2))) |
(exp.f64 (log.f64 (*.f64 (cos.f64 re) 1/2))) |
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) 1/2))) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(-.f64 (+.f64 1 (exp.f64 (cos.f64 re))) 1) |
(*.f64 (exp.f64 (cos.f64 re)) 1) |
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(*.f64 1 (exp.f64 (cos.f64 re))) |
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) |
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2) (cbrt.f64 (exp.f64 (cos.f64 re)))) |
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 (*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) |
(*.f64 (*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(pow.f64 (exp.f64 (cos.f64 re)) 1) |
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 2) |
(pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 3) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 2) 1/2) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3) 1/3) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 1) (cos.f64 re)) |
(sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 2)) |
(log.f64 (exp.f64 (exp.f64 (cos.f64 re)))) |
(cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3)) |
(expm1.f64 (log1p.f64 (exp.f64 (cos.f64 re)))) |
(log1p.f64 (expm1.f64 (exp.f64 (cos.f64 re)))) |
(+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) 1/2))) |
(-.f64 (+.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) 1) |
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1) |
(*.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (exp.f64 (cos.f64 re)))) |
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) |
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) (sqrt.f64 (cbrt.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2) 1/2) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 1/2)) |
(pow.f64 (exp.f64 (cos.f64 re)) 1/2) |
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1) |
(pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) 3) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3/2) 1/3) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) 2) |
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) (cbrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(pow.f64 (exp.f64 1) (*.f64 (cos.f64 re) 1/2)) |
(fabs.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(log.f64 (exp.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3/2)) |
(expm1.f64 (log1p.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(exp.f64 (*.f64 (cos.f64 re) 1/2)) |
(log1p.f64 (expm1.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
| Outputs |
|---|
(log.f64 (sqrt.f64 (exp.f64 1))) |
(log.f64 (sqrt.f64 (E.f64))) |
(+.f64 (log.f64 (sqrt.f64 (exp.f64 1))) (*.f64 -1/4 (pow.f64 re 2))) |
(+.f64 (log.f64 (sqrt.f64 (E.f64))) (*.f64 -1/4 (*.f64 re re))) |
(fma.f64 -1/4 (*.f64 re re) (log.f64 (sqrt.f64 (E.f64)))) |
(+.f64 (log.f64 (sqrt.f64 (exp.f64 1))) (+.f64 (*.f64 1/24 (*.f64 (-.f64 (*.f64 12 (/.f64 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)) (exp.f64 1))) 3/4) (pow.f64 re 4))) (*.f64 -1/4 (pow.f64 re 2)))) |
(+.f64 (log.f64 (sqrt.f64 (E.f64))) (fma.f64 1/24 (*.f64 (fma.f64 12 (/.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (E.f64)) -3/4) (pow.f64 re 4)) (*.f64 -1/4 (*.f64 re re)))) |
(+.f64 (fma.f64 -1/4 (*.f64 re re) (log.f64 (sqrt.f64 (E.f64)))) (*.f64 (fma.f64 12 (/.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (E.f64)) -3/4) (*.f64 (pow.f64 re 4) 1/24))) |
(fma.f64 -1/4 (*.f64 re re) (fma.f64 (pow.f64 re 4) 1/48 (log.f64 (sqrt.f64 (E.f64))))) |
(+.f64 (log.f64 (sqrt.f64 (exp.f64 1))) (+.f64 (*.f64 1/24 (*.f64 (-.f64 (*.f64 12 (/.f64 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)) (exp.f64 1))) 3/4) (pow.f64 re 4))) (+.f64 (*.f64 -1/4 (pow.f64 re 2)) (*.f64 1/720 (*.f64 (pow.f64 re 6) (-.f64 (+.f64 (*.f64 360 (/.f64 (-.f64 (*.f64 -31/720 (exp.f64 1)) (*.f64 -1/4 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)))) (exp.f64 1))) (*.f64 90 (/.f64 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)) (exp.f64 1)))) 15/4)))))) |
(+.f64 (log.f64 (sqrt.f64 (E.f64))) (fma.f64 1/24 (*.f64 (fma.f64 12 (/.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (E.f64)) -3/4) (pow.f64 re 4)) (fma.f64 -1/4 (*.f64 re re) (*.f64 1/720 (*.f64 (pow.f64 re 6) (+.f64 (fma.f64 360 (/.f64 (+.f64 (*.f64 (E.f64) -31/720) (*.f64 1/4 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)))) (E.f64)) (*.f64 (/.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (E.f64)) 90)) -15/4)))))) |
(+.f64 (log.f64 (sqrt.f64 (E.f64))) (fma.f64 1/24 (*.f64 (fma.f64 12 (/.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (E.f64)) -3/4) (pow.f64 re 4)) (fma.f64 -1/4 (*.f64 re re) (*.f64 (pow.f64 re 6) (*.f64 (fma.f64 360 (/.f64 (fma.f64 (E.f64) -31/720 (*.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) 1/4)) (E.f64)) (fma.f64 (/.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (E.f64)) 90 -15/4)) 1/720))))) |
(+.f64 (log.f64 (sqrt.f64 (E.f64))) (fma.f64 -1/4 (*.f64 re re) (fma.f64 (pow.f64 re 4) 1/48 (*.f64 (pow.f64 re 6) -1/1440)))) |
(exp.f64 1) |
(E.f64) |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (exp.f64 1))) (exp.f64 1)) |
(fma.f64 -1/2 (*.f64 (E.f64) (*.f64 re re)) (E.f64)) |
(*.f64 (E.f64) (fma.f64 (*.f64 re re) -1/2 1)) |
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 4) (exp.f64 1))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (exp.f64 1))) (exp.f64 1))) |
(fma.f64 1/6 (*.f64 (E.f64) (pow.f64 re 4)) (fma.f64 -1/2 (*.f64 (E.f64) (*.f64 re re)) (E.f64))) |
(+.f64 (E.f64) (*.f64 (E.f64) (+.f64 (*.f64 1/6 (pow.f64 re 4)) (*.f64 (*.f64 -1/2 re) re)))) |
(fma.f64 (E.f64) (fma.f64 1/6 (pow.f64 re 4) (*.f64 re (*.f64 re -1/2))) (E.f64)) |
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 4) (exp.f64 1))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (exp.f64 1))) (+.f64 (*.f64 -31/720 (*.f64 (pow.f64 re 6) (exp.f64 1))) (exp.f64 1)))) |
(fma.f64 1/6 (*.f64 (E.f64) (pow.f64 re 4)) (fma.f64 -1/2 (*.f64 (E.f64) (*.f64 re re)) (fma.f64 -31/720 (*.f64 (E.f64) (pow.f64 re 6)) (E.f64)))) |
(+.f64 (fma.f64 -31/720 (*.f64 (E.f64) (pow.f64 re 6)) (E.f64)) (*.f64 (E.f64) (+.f64 (*.f64 1/6 (pow.f64 re 4)) (*.f64 (*.f64 -1/2 re) re)))) |
(fma.f64 (E.f64) (fma.f64 1/6 (pow.f64 re 4) (*.f64 re (*.f64 re -1/2))) (*.f64 (E.f64) (fma.f64 (pow.f64 re 6) -31/720 1))) |
(sqrt.f64 (exp.f64 1)) |
(sqrt.f64 (E.f64)) |
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (sqrt.f64 (exp.f64 1)))) (sqrt.f64 (exp.f64 1))) |
(fma.f64 -1/4 (*.f64 (sqrt.f64 (E.f64)) (*.f64 re re)) (sqrt.f64 (E.f64))) |
(*.f64 (+.f64 (*.f64 re (*.f64 re -1/4)) 1) (sqrt.f64 (E.f64))) |
(*.f64 (sqrt.f64 (E.f64)) (fma.f64 -1/4 (*.f64 re re) 1)) |
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (sqrt.f64 (exp.f64 1)))) (+.f64 (sqrt.f64 (exp.f64 1)) (*.f64 1/2 (*.f64 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2))) (sqrt.f64 (/.f64 1 (exp.f64 1))))))) |
(+.f64 (fma.f64 -1/4 (*.f64 (sqrt.f64 (E.f64)) (*.f64 re re)) (sqrt.f64 (E.f64))) (*.f64 1/2 (*.f64 (pow.f64 re 4) (*.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (sqrt.f64 (exp.f64 -1)))))) |
(fma.f64 -1/4 (*.f64 (sqrt.f64 (E.f64)) (*.f64 re re)) (fma.f64 1/2 (*.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (*.f64 (pow.f64 re 4) (sqrt.f64 (exp.f64 -1)))) (sqrt.f64 (E.f64)))) |
(fma.f64 (pow.f64 re 4) (*.f64 1/2 (*.f64 (fma.f64 (E.f64) 1/6 (*.f64 (E.f64) -1/16)) (sqrt.f64 (exp.f64 -1)))) (*.f64 (sqrt.f64 (E.f64)) (fma.f64 -1/4 (*.f64 re re) 1))) |
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (sqrt.f64 (exp.f64 1)))) (+.f64 (sqrt.f64 (exp.f64 1)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -31/720 (exp.f64 1)) (*.f64 -1/4 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2))))) (sqrt.f64 (/.f64 1 (exp.f64 1))))) (*.f64 1/2 (*.f64 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2))) (sqrt.f64 (/.f64 1 (exp.f64 1)))))))) |
(+.f64 (fma.f64 -1/4 (*.f64 (sqrt.f64 (E.f64)) (*.f64 re re)) (sqrt.f64 (E.f64))) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 re 6) (*.f64 (+.f64 (*.f64 (E.f64) -31/720) (*.f64 1/4 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)))) (sqrt.f64 (exp.f64 -1)))) (*.f64 (pow.f64 re 4) (*.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (sqrt.f64 (exp.f64 -1))))))) |
(fma.f64 -1/4 (*.f64 (sqrt.f64 (E.f64)) (*.f64 re re)) (fma.f64 1/2 (*.f64 (sqrt.f64 (exp.f64 -1)) (+.f64 (*.f64 (pow.f64 re 6) (fma.f64 (E.f64) -31/720 (*.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) 1/4))) (*.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (pow.f64 re 4)))) (sqrt.f64 (E.f64)))) |
(fma.f64 1/2 (*.f64 (sqrt.f64 (exp.f64 -1)) (fma.f64 (pow.f64 re 6) (fma.f64 (E.f64) -31/720 (*.f64 (fma.f64 (E.f64) 1/6 (*.f64 (E.f64) -1/16)) 1/4)) (*.f64 (fma.f64 (E.f64) 1/6 (*.f64 (E.f64) -1/16)) (pow.f64 re 4)))) (*.f64 (sqrt.f64 (E.f64)) (fma.f64 -1/4 (*.f64 re re) 1))) |
(+.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4))) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(+.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(+.f64 0 (*.f64 (cos.f64 re) 1/2)) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(-.f64 (+.f64 1 (*.f64 (cos.f64 re) 1/2)) 1) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (cos.f64 re) 1/2) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (*.f64 (cos.f64 re) 1/2) 1) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1 (*.f64 (cos.f64 re) 1/2)) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) (cbrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(pow.f64 (*.f64 (cos.f64 re) 1/2) 1) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 3) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(pow.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3) 1/3) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(sqrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 2)) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3)) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(exp.f64 (log.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 1/2 (cos.f64 re)) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(-.f64 (+.f64 1 (exp.f64 (cos.f64 re))) 1) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(*.f64 (exp.f64 (cos.f64 re)) 1) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(*.f64 1 (exp.f64 (cos.f64 re))) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(*.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2) (cbrt.f64 (exp.f64 (cos.f64 re)))) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(*.f64 (*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(*.f64 (*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(pow.f64 (exp.f64 (cos.f64 re)) 1) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 2) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 3) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 2) 1/2) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3) 1/3) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 1) (cos.f64 re)) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 2)) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(log.f64 (exp.f64 (exp.f64 (cos.f64 re)))) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3)) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(expm1.f64 (log1p.f64 (exp.f64 (cos.f64 re)))) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(log1p.f64 (expm1.f64 (exp.f64 (cos.f64 re)))) |
(+.f64 1 (expm1.f64 (cos.f64 re))) |
(exp.f64 (cos.f64 re)) |
(+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) 1/2))) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(-.f64 (+.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) 1) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(*.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (exp.f64 (cos.f64 re)))) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) (sqrt.f64 (cbrt.f64 (exp.f64 (cos.f64 re))))) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2) 1/2) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 1/2)) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 (cos.f64 re)) 1/2) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) 3) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3/2) 1/3) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) 2) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) (cbrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 1) (*.f64 (cos.f64 re) 1/2)) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(fabs.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(log.f64 (exp.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3/2)) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(expm1.f64 (log1p.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(exp.f64 (*.f64 (cos.f64 re) 1/2)) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(log1p.f64 (expm1.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re)))) |
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
Compiled 9824 to 4316 computations (56.1% saved)
4 alts after pruning (1 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 341 | 1 | 342 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 2 | 3 |
| Done | 0 | 1 | 1 |
| Total | 342 | 4 | 346 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 99.7% | (*.f64 (*.f64 1/2 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| ✓ | 62.1% | (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re 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))) |
| ✓ | 63.7% | (*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| ▶ | 99.7% | (*.f64 (*.f64 1/2 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| ✓ | 62.1% | (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re 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))) |
| ✓ | 63.7% | (*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
Compiled 132 to 104 computations (21.2% saved)
Found 4 expressions with local accuracy:
| New | Accuracy | Program |
|---|---|---|
| 99.9% | (sqrt.f64 (exp.f64 (cos.f64 re))) | |
| 99.8% | (exp.f64 (cos.f64 re)) | |
| 99.1% | (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) | |
| ✓ | 99.1% | (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))) |
Compiled 95 to 41 computations (56.8% saved)
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | re | @ | 0 | (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))) |
| 0.0ms | re | @ | inf | (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))) |
| 0.0ms | re | @ | -inf | (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))) |
| 1× | batch-egg-rewrite |
| 1348× | pow1 |
| 1232× | add-exp-log |
| 1232× | log1p-expm1-u |
| 1232× | expm1-log1p-u |
| 1200× | add-log-exp |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 11 |
| 1 | 162 | 11 |
| 2 | 1726 | 11 |
| 1× | node limit |
| Inputs |
|---|
(log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))) |
| Outputs |
|---|
(+.f64 0 (*.f64 (cos.f64 re) 1/2)) |
(+.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))) |
(+.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4))) |
(-.f64 (+.f64 1 (*.f64 (cos.f64 re) 1/2)) 1) |
(*.f64 (cos.f64 re) 1/2) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (*.f64 (cos.f64 re) 1/2) 1) |
(*.f64 1 (*.f64 (cos.f64 re) 1/2)) |
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) 1/2)) |
(*.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) |
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) (cbrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 (sqrt.f64 (cos.f64 re)) 1/2)) |
(*.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re))) |
(*.f64 (*.f64 1/2 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re))) |
(pow.f64 (*.f64 (cos.f64 re) 1/2) 1) |
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 3) |
(pow.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3) 1/3) |
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) |
(sqrt.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1/4)) |
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3)) |
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) 1/2))) |
(exp.f64 (log.f64 (*.f64 (cos.f64 re) 1/2))) |
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) 1/2))) |
| 1× | egg-herbie |
| 2046× | fma-neg |
| 1100× | log-prod |
| 980× | associate-*r* |
| 862× | associate-*l* |
| 824× | associate-+l+ |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 78 | 484 |
| 1 | 171 | 480 |
| 2 | 516 | 476 |
| 3 | 3553 | 476 |
| 4 | 7492 | 476 |
| 1× | node limit |
| Inputs |
|---|
1/2 |
(+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))) |
(+.f64 1/2 (+.f64 (*.f64 1/48 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 2)))) |
(+.f64 1/2 (+.f64 (*.f64 1/48 (pow.f64 re 4)) (+.f64 (*.f64 -1/1440 (pow.f64 re 6)) (*.f64 -1/4 (pow.f64 re 2))))) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(+.f64 0 (*.f64 (cos.f64 re) 1/2)) |
(+.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))) |
(+.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4))) |
(-.f64 (+.f64 1 (*.f64 (cos.f64 re) 1/2)) 1) |
(*.f64 (cos.f64 re) 1/2) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (*.f64 (cos.f64 re) 1/2) 1) |
(*.f64 1 (*.f64 (cos.f64 re) 1/2)) |
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) 1/2)) |
(*.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) |
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) (cbrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 (sqrt.f64 (cos.f64 re)) 1/2)) |
(*.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re))) |
(*.f64 (*.f64 1/2 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re))) |
(pow.f64 (*.f64 (cos.f64 re) 1/2) 1) |
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 3) |
(pow.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3) 1/3) |
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) |
(sqrt.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1/4)) |
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3)) |
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) 1/2))) |
(exp.f64 (log.f64 (*.f64 (cos.f64 re) 1/2))) |
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) 1/2))) |
| Outputs |
|---|
1/2 |
(+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))) |
(+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) |
(fma.f64 -1/4 (*.f64 re re) 1/2) |
(+.f64 1/2 (+.f64 (*.f64 1/48 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 2)))) |
(+.f64 1/2 (fma.f64 1/48 (pow.f64 re 4) (*.f64 -1/4 (*.f64 re re)))) |
(+.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (*.f64 1/48 (pow.f64 re 4))) |
(fma.f64 -1/4 (*.f64 re re) (fma.f64 1/48 (pow.f64 re 4) 1/2)) |
(+.f64 1/2 (+.f64 (*.f64 1/48 (pow.f64 re 4)) (+.f64 (*.f64 -1/1440 (pow.f64 re 6)) (*.f64 -1/4 (pow.f64 re 2))))) |
(+.f64 1/2 (fma.f64 1/48 (pow.f64 re 4) (fma.f64 -1/1440 (pow.f64 re 6) (*.f64 -1/4 (*.f64 re re))))) |
(+.f64 (fma.f64 1/48 (pow.f64 re 4) (*.f64 -1/1440 (pow.f64 re 6))) (fma.f64 -1/4 (*.f64 re re) 1/2)) |
(+.f64 1/2 (fma.f64 -1/4 (*.f64 re re) (fma.f64 1/48 (pow.f64 re 4) (*.f64 -1/1440 (pow.f64 re 6))))) |
(+.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (fma.f64 1/48 (pow.f64 re 4) (*.f64 -1/1440 (pow.f64 re 6)))) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(+.f64 0 (*.f64 (cos.f64 re) 1/2)) |
(*.f64 1/2 (cos.f64 re)) |
(+.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))) |
(+.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4))) |
(*.f64 1/2 (cos.f64 re)) |
(-.f64 (+.f64 1 (*.f64 (cos.f64 re) 1/2)) 1) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (cos.f64 re) 1/2) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (*.f64 (cos.f64 re) 1/2) 1) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 1 (*.f64 (cos.f64 re) 1/2)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) 1/2)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) (cbrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 (sqrt.f64 (cos.f64 re)) 1/2)) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re))) |
(*.f64 1/2 (cos.f64 re)) |
(*.f64 (*.f64 1/2 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re))) |
(*.f64 1/2 (cos.f64 re)) |
(pow.f64 (*.f64 (cos.f64 re) 1/2) 1) |
(*.f64 1/2 (cos.f64 re)) |
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 3) |
(*.f64 1/2 (cos.f64 re)) |
(pow.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3) 1/3) |
(*.f64 1/2 (cos.f64 re)) |
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) |
(*.f64 1/2 (cos.f64 re)) |
(sqrt.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1/4)) |
(*.f64 1/2 (cos.f64 re)) |
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3)) |
(*.f64 1/2 (cos.f64 re)) |
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 1/2 (cos.f64 re)) |
(exp.f64 (log.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 1/2 (cos.f64 re)) |
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) 1/2))) |
(*.f64 1/2 (cos.f64 re)) |
Compiled 4371 to 2376 computations (45.6% saved)
4 alts after pruning (1 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 149 | 1 | 150 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 3 | 3 |
| Total | 150 | 4 | 154 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 99.6% | (*.f64 (*.f64 1/2 (+.f64 (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))) (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| ✓ | 62.1% | (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re 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))) |
| ✓ | 63.7% | (*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| ▶ | 99.6% | (*.f64 (*.f64 1/2 (+.f64 (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))) (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| ✓ | 62.1% | (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re 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))) |
| ✓ | 63.7% | (*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
Compiled 134 to 106 computations (20.9% saved)
Found 3 expressions with local accuracy:
| New | Accuracy | Program |
|---|---|---|
| 100.0% | (cos.f64 re) | |
| ✓ | 99.9% | (exp.f64 (*.f64 (cos.f64 re) 1/2)) |
| 99.1% | (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))) |
Compiled 86 to 50 computations (41.9% saved)
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | re | @ | 0 | (exp.f64 (*.f64 (cos.f64 re) 1/2)) |
| 0.0ms | re | @ | inf | (exp.f64 (*.f64 (cos.f64 re) 1/2)) |
| 0.0ms | re | @ | -inf | (exp.f64 (*.f64 (cos.f64 re) 1/2)) |
| 1× | batch-egg-rewrite |
| 1346× | pow1 |
| 1230× | add-exp-log |
| 1230× | log1p-expm1-u |
| 1230× | expm1-log1p-u |
| 1200× | add-log-exp |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 15 |
| 1 | 155 | 13 |
| 2 | 1719 | 13 |
| 1× | node limit |
| Inputs |
|---|
(exp.f64 (*.f64 (cos.f64 re) 1/2)) |
| Outputs |
|---|
(+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) 1/2))) |
(-.f64 (+.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) 1) |
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1) |
(*.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (exp.f64 (cos.f64 re)))) |
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) |
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1) |
(pow.f64 (exp.f64 (cos.f64 re)) 1/2) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) 3) |
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 3) 1/3) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) 2) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) (cbrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(pow.f64 (exp.f64 1) (*.f64 (cos.f64 re) 1/2)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(log.f64 (exp.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 3)) |
(expm1.f64 (log1p.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(log1p.f64 (expm1.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
| 1× | egg-herbie |
| 1284× | fma-def |
| 868× | associate-*r* |
| 786× | unswap-sqr |
| 760× | associate-*l* |
| 666× | associate-+r+ |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 71 | 657 |
| 1 | 162 | 601 |
| 2 | 501 | 577 |
| 3 | 2976 | 567 |
| 4 | 5217 | 567 |
| 1× | node limit |
| Inputs |
|---|
(exp.f64 1/2) |
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (exp.f64 1/2))) (exp.f64 1/2)) |
(+.f64 (*.f64 5/96 (*.f64 (pow.f64 re 4) (exp.f64 1/2))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (exp.f64 1/2))) (exp.f64 1/2))) |
(+.f64 (*.f64 5/96 (*.f64 (pow.f64 re 4) (exp.f64 1/2))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (exp.f64 1/2))) (+.f64 (*.f64 -49/5760 (*.f64 (pow.f64 re 6) (exp.f64 1/2))) (exp.f64 1/2)))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) 1/2))) |
(-.f64 (+.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) 1) |
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1) |
(*.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (exp.f64 (cos.f64 re)))) |
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) |
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1) |
(pow.f64 (exp.f64 (cos.f64 re)) 1/2) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) 3) |
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 3) 1/3) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) 2) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) (cbrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(pow.f64 (exp.f64 1) (*.f64 (cos.f64 re) 1/2)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(log.f64 (exp.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 3)) |
(expm1.f64 (log1p.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(log1p.f64 (expm1.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
| Outputs |
|---|
(exp.f64 1/2) |
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (exp.f64 1/2))) (exp.f64 1/2)) |
(fma.f64 -1/4 (*.f64 (exp.f64 1/2) (*.f64 re re)) (exp.f64 1/2)) |
(*.f64 (exp.f64 1/2) (fma.f64 (*.f64 -1/4 re) re 1)) |
(*.f64 (exp.f64 1/2) (fma.f64 re (*.f64 -1/4 re) 1)) |
(*.f64 (exp.f64 1/2) (fma.f64 -1/4 (*.f64 re re) 1)) |
(+.f64 (*.f64 5/96 (*.f64 (pow.f64 re 4) (exp.f64 1/2))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (exp.f64 1/2))) (exp.f64 1/2))) |
(fma.f64 5/96 (*.f64 (exp.f64 1/2) (pow.f64 re 4)) (fma.f64 -1/4 (*.f64 (exp.f64 1/2) (*.f64 re re)) (exp.f64 1/2))) |
(+.f64 (exp.f64 1/2) (*.f64 (exp.f64 1/2) (+.f64 (*.f64 5/96 (pow.f64 re 4)) (*.f64 -1/4 (*.f64 re re))))) |
(*.f64 (exp.f64 1/2) (+.f64 (fma.f64 (*.f64 -1/4 re) re 1) (*.f64 5/96 (pow.f64 re 4)))) |
(*.f64 (exp.f64 1/2) (fma.f64 5/96 (pow.f64 re 4) (fma.f64 re (*.f64 -1/4 re) 1))) |
(*.f64 (exp.f64 1/2) (fma.f64 5/96 (pow.f64 re 4) (fma.f64 -1/4 (*.f64 re re) 1))) |
(+.f64 (*.f64 5/96 (*.f64 (pow.f64 re 4) (exp.f64 1/2))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (exp.f64 1/2))) (+.f64 (*.f64 -49/5760 (*.f64 (pow.f64 re 6) (exp.f64 1/2))) (exp.f64 1/2)))) |
(fma.f64 5/96 (*.f64 (exp.f64 1/2) (pow.f64 re 4)) (fma.f64 -1/4 (*.f64 (exp.f64 1/2) (*.f64 re re)) (fma.f64 -49/5760 (*.f64 (exp.f64 1/2) (pow.f64 re 6)) (exp.f64 1/2)))) |
(+.f64 (*.f64 (+.f64 (*.f64 -49/5760 (pow.f64 re 6)) 1) (exp.f64 1/2)) (*.f64 (exp.f64 1/2) (+.f64 (*.f64 5/96 (pow.f64 re 4)) (*.f64 -1/4 (*.f64 re re))))) |
(fma.f64 (exp.f64 1/2) (fma.f64 5/96 (pow.f64 re 4) (*.f64 -1/4 (*.f64 re re))) (*.f64 (exp.f64 1/2) (fma.f64 -49/5760 (pow.f64 re 6) 1))) |
(*.f64 (exp.f64 1/2) (+.f64 (*.f64 -1/4 (*.f64 re re)) (fma.f64 5/96 (pow.f64 re 4) (fma.f64 -49/5760 (pow.f64 re 6) 1)))) |
(fma.f64 (exp.f64 1/2) (fma.f64 (*.f64 re re) (fma.f64 (*.f64 re re) 5/96 -1/4) (*.f64 -49/5760 (pow.f64 re 6))) (exp.f64 1/2)) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(exp.f64 (*.f64 1/2 (cos.f64 re))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) 1/2))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(-.f64 (+.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) 1) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(*.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (exp.f64 (cos.f64 re)))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 (cos.f64 re)) 1/2) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) 3) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 3) 1/3) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) 2) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) (cbrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 1/2 (cos.f64 re))) 2)) (cbrt.f64 (*.f64 1/2 (cos.f64 re)))) |
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) |
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 1/2 (cos.f64 re)))) (sqrt.f64 (*.f64 1/2 (cos.f64 re)))) |
(pow.f64 (exp.f64 1) (*.f64 (cos.f64 re) 1/2)) |
(pow.f64 (E.f64) (*.f64 1/2 (cos.f64 re))) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(log.f64 (exp.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 3)) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(expm1.f64 (log1p.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
(log1p.f64 (expm1.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))) |
(pow.f64 (exp.f64 1/2) (cos.f64 re)) |
(sqrt.f64 (exp.f64 (cos.f64 re))) |
Compiled 7678 to 4364 computations (43.2% saved)
4 alts after pruning (0 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 276 | 0 | 276 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 3 | 3 |
| Total | 276 | 4 | 280 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 99.6% | (*.f64 (*.f64 1/2 (+.f64 (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))) (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| ✓ | 62.1% | (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re 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))) |
| ✓ | 63.7% | (*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
Compiled 169 to 102 computations (39.6% saved)
| Inputs |
|---|
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re 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 (*.f64 1/2 (+.f64 (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))) (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(*.f64 (*.f64 1/2 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(*.f64 (*.f64 1/2 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (sqrt.f64 (exp.f64 (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:
| 7.0ms | (*.f64 1/2 (cos.f64 re)) |
| 4.0ms | re |
| 4.0ms | im |
| 4.0ms | (cos.f64 re) |
| 3.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 139 to 77 computations (44.6% saved)
| Inputs |
|---|
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| Outputs |
|---|
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
3 calls:
| 34.0ms | (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) |
| 15.0ms | re |
| 8.0ms | im |
| Accuracy | Segments | Branch |
|---|---|---|
| 68.8% | 5 | re |
| 69.6% | 3 | im |
| 63.7% | 1 | (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) |
Compiled 42 to 28 computations (33.3% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
| Outputs |
|---|
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
2 calls:
| 9.0ms | im |
| 2.0ms | (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 63.7% | 1 | (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) |
| 63.7% | 1 | im |
Compiled 23 to 18 computations (21.7% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | predicate-same |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 2.5244536126589437e+255 | 2.6168568708851713e+255 |
| 3.0ms | -8.840080874128382e+89 | -4.8624993450289854e+85 |
| 2.0ms | 13× | body | 256 | infinite |
| 1.0ms | 2× | body | 1024 | infinite |
| 0.0ms | 1× | body | 512 | infinite |
Compiled 50 to 40 computations (20% saved)
| 1× | egg-herbie |
| 14× | *-commutative |
| 6× | +-commutative |
| 2× | sub-neg |
| 2× | 1-exp |
| 2× | neg-mul-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 31 | 159 |
| 1 | 49 | 159 |
| 2 | 51 | 159 |
| 3 | 52 | 159 |
| 1× | done |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(if (<=.f64 im -499999999999999983242056357731950024912593046310062751489837298654589877718689615343255552) (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (if (<=.f64 im 2600000000000000095001951822565046192714894480217351827825376553538283147772524734744985220843859164081014494023534962184038805238967682210912102840486899897340842916880570703305597183491233241815991856649607760177329291964458316132498517334377016537907200) (*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))) |
(*.f64 (*.f64 1/2 1) (+.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))) |
(if (<=.f64 im -499999999999999983242056357731950024912593046310062751489837298654589877718689615343255552) (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (if (<=.f64 im 2600000000000000095001951822565046192714894480217351827825376553538283147772524734744985220843859164081014494023534962184038805238967682210912102840486899897340842916880570703305597183491233241815991856649607760177329291964458316132498517334377016537907200) (*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))) |
(if (or (<=.f64 im -499999999999999983242056357731950024912593046310062751489837298654589877718689615343255552) (not (<=.f64 im 2600000000000000095001951822565046192714894480217351827825376553538283147772524734744985220843859164081014494023534962184038805238967682210912102840486899897340842916880570703305597183491233241815991856649607760177329291964458316132498517334377016537907200))) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re))))) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) |
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
(*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) |
Compiled 58 to 41 computations (29.3% saved)
| 966× | log-prod |
| 646× | associate-*r* |
| 622× | associate-+l+ |
| 618× | associate-+r+ |
| 586× | *-commutative |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 120 | 569 |
| 1 | 240 | 531 |
| 2 | 644 | 515 |
| 3 | 3330 | 515 |
| 4 | 6970 | 515 |
| 1× | node limit |
Compiled 34 to 23 computations (32.4% saved)
Compiled 134 to 78 computations (41.8% saved)
Loading profile data...