Time bar (total: 2.3s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 1 |
| 50% | 50% | 50% | 0.1% | 0% | 0% | 0% | 2 |
| 50% | 50% | 50% | 0.1% | 0% | 0% | 0% | 3 |
| 75% | 74.9% | 25% | 0.1% | 0% | 0% | 0% | 4 |
| 75% | 74.9% | 25% | 0.1% | 0% | 0% | 0% | 5 |
| 77.4% | 74.9% | 21.9% | 0.1% | 3.1% | 0% | 0% | 6 |
| 78.7% | 74.9% | 20.3% | 0.1% | 4.7% | 0% | 0% | 7 |
| 80.7% | 74.9% | 18% | 0.1% | 7% | 0% | 0% | 8 |
| 81.7% | 74.9% | 16.8% | 0.1% | 8.2% | 0% | 0% | 9 |
| 82.9% | 74.9% | 15.4% | 0.1% | 9.6% | 0% | 0% | 10 |
| 83.6% | 74.9% | 14.7% | 0.1% | 10.2% | 0% | 0% | 11 |
| 84.3% | 74.9% | 14% | 0.1% | 11% | 0% | 0% | 12 |
Compiled 8 to 6 computations (25% saved)
| 737.0ms | 6058× | body | 256 | valid |
| 546.0ms | 1455× | body | 1024 | valid |
| 239.0ms | 724× | body | 1024 | infinite |
| 161.0ms | 737× | body | 512 | valid |
| 72.0ms | 345× | body | 512 | infinite |
| 62.0ms | 504× | body | 256 | infinite |
| 3.0ms | 6× | body | 2048 | valid |
| 2× | egg-herbie |
| 4× | rational.json-simplify-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 30 |
| 1 | 13 | 30 |
| 0 | 2 | 2 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
0 |
1 |
| Outputs |
|---|
0 |
1 |
| Inputs |
|---|
(*.f64 (exp.f64 re) (sin.f64 im)) |
(*.f64 (exp.f64 im) (sin.f64 re)) |
| Outputs |
|---|
(*.f64 (exp.f64 re) (sin.f64 im)) |
(*.f64 (exp.f64 im) (sin.f64 re)) |
Compiled 9 to 7 computations (22.2% saved)
| 1× | egg-herbie |
| 2× | rational.json-simplify-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 15 |
| 1 | 9 | 15 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (exp.f64 re) (sin.f64 im)) |
| Outputs |
|---|
(*.f64 (exp.f64 re) (sin.f64 im)) |
Compiled 7 to 5 computations (28.6% saved)
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 1 | 1 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 0 | 2 | 2 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.0b | (*.f64 (exp.f64 re) (sin.f64 im)) |
Compiled 7 to 5 computations (28.6% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (exp.f64 re) (sin.f64 im)) |
Compiled 13 to 5 computations (61.5% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | re | @ | inf | (*.f64 (exp.f64 re) (sin.f64 im)) |
| 1.0ms | im | @ | 0 | (*.f64 (exp.f64 re) (sin.f64 im)) |
| 0.0ms | re | @ | 0 | (*.f64 (exp.f64 re) (sin.f64 im)) |
| 0.0ms | im | @ | inf | (*.f64 (exp.f64 re) (sin.f64 im)) |
| 0.0ms | re | @ | -inf | (*.f64 (exp.f64 re) (sin.f64 im)) |
| 1× | batch-egg-rewrite |
| 24× | bool.json-1 |
| 22× | rational.json-simplify-2 |
| 20× | rational.json-1 |
| 20× | rational.json-2 |
| 20× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 15 |
| 1 | 37 | 15 |
| 2 | 65 | 15 |
| 3 | 69 | 15 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (exp.f64 re) (sin.f64 im)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (exp.f64 re) (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (exp.f64 re) (sin.f64 im)) (*.f64 (exp.f64 re) (sin.f64 im))))))) |
| 1× | egg-herbie |
| 112× | rational.json-simplify-1 |
| 72× | rational.json-simplify-2 |
| 60× | rational.json-simplify-33 |
| 20× | rational.json-simplify-31 |
| 6× | rational.json-simplify-19 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 50 | 634 |
| 1 | 96 | 634 |
| 2 | 146 | 634 |
| 3 | 187 | 634 |
| 4 | 203 | 634 |
| 5 | 207 | 634 |
| 1× | saturated |
| Inputs |
|---|
(sin.f64 im) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))) |
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (exp.f64 re) im) |
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (*.f64 (exp.f64 re) im)) |
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (*.f64 (exp.f64 re) im))) |
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7))) (*.f64 (exp.f64 re) im)))) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(+.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0) |
(+.f64 0 (*.f64 (exp.f64 re) (sin.f64 im))) |
| Outputs |
|---|
(sin.f64 im) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (sin.f64 im) (+.f64 re 1)) |
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))) |
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))) |
(+.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))) |
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))) |
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))))) |
(+.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))))) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (exp.f64 re) im) |
(*.f64 im (exp.f64 re)) |
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (*.f64 (exp.f64 re) im)) |
(+.f64 (*.f64 im (exp.f64 re)) (*.f64 (exp.f64 re) (*.f64 -1/6 (pow.f64 im 3)))) |
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (*.f64 (exp.f64 re) im))) |
(+.f64 (*.f64 (exp.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 im (exp.f64 re)) (*.f64 (exp.f64 re) (*.f64 1/120 (pow.f64 im 5))))) |
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7))) (*.f64 (exp.f64 re) im)))) |
(+.f64 (*.f64 (exp.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 (exp.f64 re) (*.f64 1/120 (pow.f64 im 5))) (+.f64 (*.f64 im (exp.f64 re)) (*.f64 (exp.f64 re) (*.f64 -1/5040 (pow.f64 im 7)))))) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(*.f64 (sin.f64 im) (exp.f64 re)) |
(+.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0) |
(+.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 0) |
(+.f64 0 (*.f64 (exp.f64 re) (sin.f64 im))) |
(+.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 0) |
Compiled 308 to 162 computations (47.4% saved)
5 alts after pruning (4 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 18 | 4 | 22 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 18 | 5 | 23 |
| Status | Error | Program |
|---|---|---|
| ▶ | 22.9b | (+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
| ▶ | 22.9b | (*.f64 (sin.f64 im) (+.f64 re 1)) |
| ✓ | 0.0b | (*.f64 (exp.f64 re) (sin.f64 im)) |
| ▶ | 20.8b | (*.f64 (exp.f64 re) im) |
| ▶ | 22.6b | (sin.f64 im) |
Compiled 34 to 23 computations (32.4% saved)
Compiled 5 to 3 computations (40% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (exp.f64 re) im) |
Compiled 10 to 4 computations (60% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | im | @ | inf | (*.f64 (exp.f64 re) im) |
| 0.0ms | im | @ | 0 | (*.f64 (exp.f64 re) im) |
| 0.0ms | re | @ | inf | (*.f64 (exp.f64 re) im) |
| 0.0ms | im | @ | -inf | (*.f64 (exp.f64 re) im) |
| 0.0ms | re | @ | 0 | (*.f64 (exp.f64 re) im) |
| 1× | batch-egg-rewrite |
| 22× | bool.json-1 |
| 20× | rational.json-simplify-2 |
| 18× | rational.json-1 |
| 18× | rational.json-2 |
| 18× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 11 |
| 1 | 33 | 11 |
| 2 | 59 | 11 |
| 3 | 63 | 11 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (exp.f64 re) im) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 re) im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (exp.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (exp.f64 re) im) (*.f64 (exp.f64 re) im)))))) |
| 1× | egg-herbie |
| 62× | rational.json-simplify-1 |
| 34× | rational.json-simplify-2 |
| 34× | rational.json-simplify-33 |
| 8× | rational.json-simplify-31 |
| 6× | rational.json-simplify-19 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 25 | 146 |
| 1 | 43 | 146 |
| 2 | 67 | 146 |
| 3 | 92 | 146 |
| 4 | 106 | 146 |
| 5 | 109 | 146 |
| 6 | 111 | 146 |
| 1× | saturated |
| Inputs |
|---|
im |
(+.f64 (*.f64 re im) im) |
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)) |
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) im)) (+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))) |
(+.f64 (*.f64 (exp.f64 re) im) 0) |
(+.f64 0 (*.f64 (exp.f64 re) im)) |
| Outputs |
|---|
im |
(+.f64 (*.f64 re im) im) |
(+.f64 im (*.f64 im re)) |
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)) |
(+.f64 (*.f64 im re) (+.f64 im (*.f64 1/2 (*.f64 im (pow.f64 re 2))))) |
(+.f64 im (+.f64 (*.f64 im re) (*.f64 1/2 (*.f64 im (pow.f64 re 2))))) |
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) im)) (+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))) |
(+.f64 (+.f64 (*.f64 1/6 (*.f64 im (pow.f64 re 3))) (*.f64 im re)) (+.f64 im (*.f64 1/2 (*.f64 im (pow.f64 re 2))))) |
(+.f64 (+.f64 im (*.f64 1/2 (*.f64 im (pow.f64 re 2)))) (+.f64 (*.f64 im re) (*.f64 im (*.f64 1/6 (pow.f64 re 3))))) |
(+.f64 (*.f64 1/2 (*.f64 im (pow.f64 re 2))) (+.f64 (+.f64 im (*.f64 im re)) (*.f64 im (*.f64 1/6 (pow.f64 re 3))))) |
(+.f64 (+.f64 im (*.f64 im re)) (+.f64 (*.f64 1/2 (*.f64 im (pow.f64 re 2))) (*.f64 im (*.f64 1/6 (pow.f64 re 3))))) |
(+.f64 (*.f64 (exp.f64 re) im) 0) |
(+.f64 (*.f64 im (exp.f64 re)) 0) |
(+.f64 0 (*.f64 (exp.f64 re) im)) |
(+.f64 (*.f64 im (exp.f64 re)) 0) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.1b | (*.f64 (sin.f64 im) (+.f64 re 1)) |
Compiled 16 to 9 computations (43.8% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | im | @ | 0 | (*.f64 (sin.f64 im) (+.f64 re 1)) |
| 0.0ms | im | @ | inf | (*.f64 (sin.f64 im) (+.f64 re 1)) |
| 0.0ms | re | @ | inf | (*.f64 (sin.f64 im) (+.f64 re 1)) |
| 0.0ms | re | @ | -inf | (*.f64 (sin.f64 im) (+.f64 re 1)) |
| 0.0ms | im | @ | -inf | (*.f64 (sin.f64 im) (+.f64 re 1)) |
| 1× | batch-egg-rewrite |
| 24× | bool.json-1 |
| 22× | rational.json-simplify-2 |
| 22× | rational.json-simplify-1 |
| 20× | rational.json-1 |
| 20× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 17 |
| 1 | 41 | 17 |
| 2 | 66 | 17 |
| 3 | 71 | 17 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (sin.f64 im) (+.f64 re 1)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 im) (+.f64 re 1)) (*.f64 (sin.f64 im) (+.f64 re 1))))))) |
| 1× | egg-herbie |
| 66× | rational.json-simplify-1 |
| 42× | rational.json-simplify-2 |
| 40× | rational.json-simplify-33 |
| 12× | rational.json-simplify-31 |
| 2× | rational.json-simplify-19 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 37 | 594 |
| 1 | 62 | 594 |
| 2 | 91 | 594 |
| 3 | 116 | 594 |
| 4 | 128 | 594 |
| 5 | 129 | 594 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (+.f64 1 re) im) |
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im)) |
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im))) |
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 -1/5040 (*.f64 (+.f64 1 re) (pow.f64 im 7)))))) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(sin.f64 im) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(*.f64 (sin.f64 im) re) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(*.f64 (sin.f64 im) re) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(+.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0) |
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 re 1))) |
| Outputs |
|---|
(*.f64 (+.f64 1 re) im) |
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im)) |
(+.f64 (*.f64 (+.f64 1 re) im) (*.f64 (+.f64 1 re) (*.f64 -1/6 (pow.f64 im 3)))) |
(+.f64 (*.f64 (+.f64 1 re) im) (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3)))) |
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im))) |
(+.f64 (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 (+.f64 1 re) (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (+.f64 1 re) (*.f64 1/120 (pow.f64 im 5)))) |
(+.f64 (*.f64 (+.f64 1 re) im) (+.f64 (*.f64 (+.f64 1 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (+.f64 1 re) (*.f64 1/120 (pow.f64 im 5))))) |
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))))) |
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 -1/5040 (*.f64 (+.f64 1 re) (pow.f64 im 7)))))) |
(+.f64 (*.f64 (+.f64 1 re) (*.f64 1/120 (pow.f64 im 5))) (+.f64 (*.f64 (+.f64 1 re) (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 (+.f64 1 re) (*.f64 -1/5040 (pow.f64 im 7)))))) |
(+.f64 (*.f64 (+.f64 1 re) (*.f64 1/120 (pow.f64 im 5))) (+.f64 (+.f64 (*.f64 (+.f64 1 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (+.f64 1 re) (*.f64 -1/5040 (pow.f64 im 7)))) (*.f64 (+.f64 1 re) im))) |
(+.f64 (*.f64 (+.f64 1 re) im) (+.f64 (*.f64 (+.f64 1 re) (*.f64 -1/5040 (pow.f64 im 7))) (+.f64 (*.f64 (+.f64 1 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (+.f64 1 re) (*.f64 1/120 (pow.f64 im 5)))))) |
(+.f64 (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3)))) (+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (*.f64 (+.f64 1 re) (*.f64 -1/5040 (pow.f64 im 7))))) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(*.f64 (sin.f64 im) (+.f64 1 re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(sin.f64 im) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(*.f64 (sin.f64 im) re) |
(*.f64 re (sin.f64 im)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(*.f64 (sin.f64 im) re) |
(*.f64 re (sin.f64 im)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
(*.f64 (+.f64 1 re) (sin.f64 im)) |
(+.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0) |
(+.f64 (*.f64 (+.f64 1 re) (sin.f64 im)) 0) |
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 re 1))) |
(+.f64 (*.f64 (+.f64 1 re) (sin.f64 im)) 0) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
| ✓ | 0.1b | (*.f64 (sin.f64 im) re) |
Compiled 17 to 5 computations (70.6% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | re | @ | inf | (*.f64 (sin.f64 im) re) |
| 0.0ms | im | @ | 0 | (*.f64 (sin.f64 im) re) |
| 0.0ms | re | @ | 0 | (*.f64 (sin.f64 im) re) |
| 0.0ms | re | @ | -inf | (*.f64 (sin.f64 im) re) |
| 0.0ms | im | @ | inf | (*.f64 (sin.f64 im) re) |
| 1× | batch-egg-rewrite |
| 26× | rational.json-simplify-2 |
| 26× | rational.json-simplify-1 |
| 26× | bool.json-1 |
| 22× | rational.json-1 |
| 22× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 28 |
| 1 | 40 | 28 |
| 2 | 73 | 28 |
| 3 | 79 | 28 |
| 4 | 80 | 28 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (sin.f64 im) re) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 im) re) (*.f64 (sin.f64 im) re)))))) |
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 im) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re 1) (sin.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 im) (+.f64 re 1)) (*.f64 (sin.f64 im) (+.f64 re 1))))))) |
| 1× | egg-herbie |
| 1022× | rational.json-simplify-31 |
| 750× | rational.json-simplify-2 |
| 138× | rational.json-simplify-1 |
| 64× | rational.json-simplify-33 |
| 42× | rational.json-simplify-27 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 55 | 545 |
| 1 | 107 | 545 |
| 2 | 161 | 545 |
| 3 | 226 | 545 |
| 4 | 278 | 545 |
| 5 | 330 | 545 |
| 6 | 445 | 545 |
| 7 | 705 | 545 |
| 8 | 835 | 545 |
| 9 | 849 | 545 |
| 10 | 853 | 545 |
| 11 | 857 | 545 |
| 12 | 862 | 545 |
| 13 | 1074 | 545 |
| 14 | 1173 | 545 |
| 15 | 1191 | 545 |
| 16 | 1191 | 545 |
| 17 | 1223 | 545 |
| 18 | 1261 | 545 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 re im) |
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (*.f64 re im)) |
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im))) |
(+.f64 (*.f64 -1/5040 (*.f64 re (pow.f64 im 7))) (+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im)))) |
(*.f64 (+.f64 1 re) im) |
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (*.f64 (+.f64 1 re) im)) |
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (*.f64 (+.f64 1 re) im))) |
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (+.f64 (*.f64 (-.f64 (*.f64 -1/5040 re) 1/5040) (pow.f64 im 7)) (*.f64 (+.f64 1 re) im)))) |
(sin.f64 im) |
(*.f64 (sin.f64 im) re) |
(*.f64 (sin.f64 im) re) |
(+.f64 (*.f64 (sin.f64 im) re) 0) |
(+.f64 0 (*.f64 (sin.f64 im) re)) |
(*.f64 (sin.f64 im) (+.f64 re 1)) |
(*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1) |
(*.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1))) |
(*.f64 (+.f64 re 1) (sin.f64 im)) |
| Outputs |
|---|
(*.f64 re im) |
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (*.f64 re im)) |
(+.f64 (*.f64 re im) (*.f64 re (*.f64 -1/6 (pow.f64 im 3)))) |
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im))) |
(+.f64 (*.f64 re (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 re im) (*.f64 1/120 (*.f64 re (pow.f64 im 5))))) |
(+.f64 (+.f64 (*.f64 re im) (*.f64 re (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (pow.f64 im 5) (*.f64 re 1/120))) |
(+.f64 (*.f64 -1/5040 (*.f64 re (pow.f64 im 7))) (+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im)))) |
(+.f64 (+.f64 (*.f64 re (*.f64 -1/5040 (pow.f64 im 7))) (*.f64 re (*.f64 -1/6 (pow.f64 im 3)))) (+.f64 (*.f64 re im) (*.f64 1/120 (*.f64 re (pow.f64 im 5))))) |
(+.f64 (+.f64 (*.f64 re im) (*.f64 1/120 (*.f64 re (pow.f64 im 5)))) (+.f64 (*.f64 re (*.f64 -1/6 (pow.f64 im 3))) (*.f64 re (*.f64 -1/5040 (pow.f64 im 7))))) |
(+.f64 (*.f64 re (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (+.f64 (*.f64 re im) (*.f64 1/120 (*.f64 re (pow.f64 im 5)))) (*.f64 re (*.f64 -1/5040 (pow.f64 im 7))))) |
(+.f64 (*.f64 re (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 re im) (+.f64 (*.f64 (pow.f64 im 5) (*.f64 re 1/120)) (*.f64 re (*.f64 -1/5040 (pow.f64 im 7)))))) |
(*.f64 (+.f64 1 re) im) |
(*.f64 im (+.f64 re 1)) |
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (*.f64 (+.f64 1 re) im)) |
(+.f64 (*.f64 im (+.f64 re 1)) (*.f64 (pow.f64 im 3) (+.f64 -1/6 (*.f64 re -1/6)))) |
(+.f64 (*.f64 im (+.f64 re 1)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (+.f64 re 1)))) |
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (*.f64 (+.f64 1 re) im))) |
(+.f64 (*.f64 (pow.f64 im 3) (+.f64 -1/6 (*.f64 re -1/6))) (+.f64 (*.f64 im (+.f64 re 1)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120))))) |
(+.f64 (*.f64 im (+.f64 re 1)) (+.f64 (*.f64 (pow.f64 im 3) (+.f64 -1/6 (*.f64 re -1/6))) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120))))) |
(+.f64 (*.f64 im (+.f64 re 1)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 3) (+.f64 re 1))) (*.f64 1/120 (*.f64 (pow.f64 im 5) (+.f64 re 1))))) |
(+.f64 (*.f64 im (+.f64 re 1)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 3) (+.f64 re 1))) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120))))) |
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (+.f64 (*.f64 (-.f64 (*.f64 -1/5040 re) 1/5040) (pow.f64 im 7)) (*.f64 (+.f64 1 re) im)))) |
(+.f64 (*.f64 (pow.f64 im 3) (+.f64 -1/6 (*.f64 re -1/6))) (+.f64 (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120))) (+.f64 (*.f64 im (+.f64 re 1)) (*.f64 (pow.f64 im 7) (+.f64 -1/5040 (*.f64 re -1/5040)))))) |
(+.f64 (*.f64 (pow.f64 im 3) (+.f64 -1/6 (*.f64 re -1/6))) (+.f64 (*.f64 im (+.f64 re 1)) (+.f64 (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120))) (*.f64 (pow.f64 im 7) (+.f64 -1/5040 (*.f64 re -1/5040)))))) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 3) (+.f64 re 1))) (+.f64 (*.f64 im (+.f64 re 1)) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 im 5) (+.f64 re 1))) (*.f64 (pow.f64 im 7) (+.f64 -1/5040 (*.f64 re -1/5040)))))) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 3) (+.f64 re 1))) (+.f64 (+.f64 (*.f64 im (+.f64 re 1)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120)))) (*.f64 (pow.f64 im 7) (+.f64 -1/5040 (*.f64 re -1/5040))))) |
(sin.f64 im) |
(*.f64 (sin.f64 im) re) |
(*.f64 re (sin.f64 im)) |
(*.f64 (sin.f64 im) re) |
(*.f64 re (sin.f64 im)) |
(+.f64 (*.f64 (sin.f64 im) re) 0) |
(+.f64 (*.f64 re (sin.f64 im)) 0) |
(+.f64 0 (*.f64 (sin.f64 im) re)) |
(+.f64 (*.f64 re (sin.f64 im)) 0) |
(*.f64 (sin.f64 im) (+.f64 re 1)) |
(*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1) |
(*.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1))) |
(*.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1))) |
(*.f64 (+.f64 re 1) (sin.f64 im)) |
(*.f64 (sin.f64 im) (+.f64 re 1)) |
Compiled 1223 to 814 computations (33.4% saved)
6 alts after pruning (2 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 70 | 2 | 72 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 4 | 4 |
| Total | 71 | 6 | 77 |
| Status | Error | Program |
|---|---|---|
| ▶ | 43.5b | (+.f64 (*.f64 re im) im) |
| ✓ | 22.9b | (*.f64 (sin.f64 im) (+.f64 re 1)) |
| ✓ | 0.0b | (*.f64 (exp.f64 re) (sin.f64 im)) |
| ✓ | 20.8b | (*.f64 (exp.f64 re) im) |
| ✓ | 22.6b | (sin.f64 im) |
| 43.2b | im |
Compiled 35 to 24 computations (31.4% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 re im) im) |
Compiled 12 to 4 computations (66.7% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | re | @ | 0 | (+.f64 (*.f64 re im) im) |
| 0.0ms | im | @ | inf | (+.f64 (*.f64 re im) im) |
| 0.0ms | im | @ | -inf | (+.f64 (*.f64 re im) im) |
| 0.0ms | re | @ | inf | (+.f64 (*.f64 re im) im) |
| 0.0ms | im | @ | 0 | (+.f64 (*.f64 re im) im) |
| 1× | batch-egg-rewrite |
| 22× | rational.json-simplify-1 |
| 22× | bool.json-1 |
| 20× | rational.json-simplify-2 |
| 18× | rational.json-1 |
| 18× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 13 |
| 1 | 30 | 13 |
| 2 | 56 | 13 |
| 3 | 66 | 13 |
| 4 | 67 | 13 |
| 5 | 68 | 13 |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (*.f64 re im) im) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x *.f64 im (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 im (*.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 im (*.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re 1) im)))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 im (*.f64 re im)) (+.f64 im (*.f64 re im))))))) |
| 1× | egg-herbie |
| 94× | rational.json-simplify-31 |
| 88× | rational.json-simplify-2 |
| 12× | rational.json-simplify-27 |
| 12× | rational.json-simplify-9 |
| 8× | rational.json-simplify-1 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 19 | 373 |
| 1 | 32 | 373 |
| 2 | 41 | 337 |
| 3 | 61 | 337 |
| 4 | 87 | 337 |
| 5 | 113 | 337 |
| 6 | 146 | 337 |
| 7 | 151 | 337 |
| 8 | 152 | 337 |
| 1× | saturated |
| Inputs |
|---|
im |
(*.f64 re im) |
(+.f64 im (*.f64 re im)) |
(+.f64 im (*.f64 re im)) |
(+.f64 im (*.f64 re im)) |
(*.f64 re im) |
(+.f64 im (*.f64 re im)) |
(+.f64 im (*.f64 re im)) |
(+.f64 im (*.f64 re im)) |
(*.f64 (+.f64 1 re) im) |
(*.f64 (+.f64 1 re) im) |
(*.f64 (+.f64 1 re) im) |
(*.f64 (+.f64 1 re) im) |
(*.f64 (+.f64 1 re) im) |
(*.f64 (+.f64 1 re) im) |
(*.f64 (+.f64 1 re) im) |
(*.f64 (+.f64 1 re) im) |
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1))) |
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1))) |
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1))) |
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1))) |
(*.f64 im (+.f64 re 1)) |
(*.f64 (+.f64 im (*.f64 re im)) 1) |
(*.f64 1 (+.f64 im (*.f64 re im))) |
(*.f64 (+.f64 re 1) im) |
| Outputs |
|---|
im |
(*.f64 re im) |
(*.f64 im re) |
(+.f64 im (*.f64 re im)) |
(+.f64 im (*.f64 im re)) |
(+.f64 im (*.f64 re im)) |
(+.f64 im (*.f64 im re)) |
(+.f64 im (*.f64 re im)) |
(+.f64 im (*.f64 im re)) |
(*.f64 re im) |
(*.f64 im re) |
(+.f64 im (*.f64 re im)) |
(+.f64 im (*.f64 im re)) |
(+.f64 im (*.f64 re im)) |
(+.f64 im (*.f64 im re)) |
(+.f64 im (*.f64 re im)) |
(+.f64 im (*.f64 im re)) |
(*.f64 (+.f64 1 re) im) |
(+.f64 im (*.f64 im re)) |
(*.f64 (+.f64 1 re) im) |
(+.f64 im (*.f64 im re)) |
(*.f64 (+.f64 1 re) im) |
(+.f64 im (*.f64 im re)) |
(*.f64 (+.f64 1 re) im) |
(+.f64 im (*.f64 im re)) |
(*.f64 (+.f64 1 re) im) |
(+.f64 im (*.f64 im re)) |
(*.f64 (+.f64 1 re) im) |
(+.f64 im (*.f64 im re)) |
(*.f64 (+.f64 1 re) im) |
(+.f64 im (*.f64 im re)) |
(*.f64 (+.f64 1 re) im) |
(+.f64 im (*.f64 im re)) |
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1))) |
(*.f64 im (*.f64 -1 (+.f64 -1 (*.f64 re -1)))) |
(*.f64 im (-.f64 1 (*.f64 re -1))) |
(*.f64 im (+.f64 1 (*.f64 re 1))) |
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1))) |
(*.f64 im (*.f64 -1 (+.f64 -1 (*.f64 re -1)))) |
(*.f64 im (-.f64 1 (*.f64 re -1))) |
(*.f64 im (+.f64 1 (*.f64 re 1))) |
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1))) |
(*.f64 im (*.f64 -1 (+.f64 -1 (*.f64 re -1)))) |
(*.f64 im (-.f64 1 (*.f64 re -1))) |
(*.f64 im (+.f64 1 (*.f64 re 1))) |
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1))) |
(*.f64 im (*.f64 -1 (+.f64 -1 (*.f64 re -1)))) |
(*.f64 im (-.f64 1 (*.f64 re -1))) |
(*.f64 im (+.f64 1 (*.f64 re 1))) |
(*.f64 im (+.f64 re 1)) |
(+.f64 im (*.f64 im re)) |
(*.f64 (+.f64 im (*.f64 re im)) 1) |
(*.f64 im (*.f64 -1 (+.f64 -1 (*.f64 re -1)))) |
(*.f64 im (-.f64 1 (*.f64 re -1))) |
(*.f64 im (+.f64 1 (*.f64 re 1))) |
(*.f64 1 (+.f64 im (*.f64 re im))) |
(*.f64 im (*.f64 -1 (+.f64 -1 (*.f64 re -1)))) |
(*.f64 im (-.f64 1 (*.f64 re -1))) |
(*.f64 im (+.f64 1 (*.f64 re 1))) |
(*.f64 (+.f64 re 1) im) |
(+.f64 im (*.f64 im re)) |
Compiled 80 to 43 computations (46.3% saved)
7 alts after pruning (2 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 13 | 1 | 14 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 4 | 4 |
| Total | 13 | 7 | 20 |
| Status | Error | Program |
|---|---|---|
| ✓ | 43.5b | (+.f64 (*.f64 re im) im) |
| ✓ | 22.9b | (*.f64 (sin.f64 im) (+.f64 re 1)) |
| ✓ | 0.0b | (*.f64 (exp.f64 re) (sin.f64 im)) |
| ✓ | 20.8b | (*.f64 (exp.f64 re) im) |
| ▶ | 61.4b | (*.f64 re im) |
| ✓ | 22.6b | (sin.f64 im) |
| 43.2b | im |
Compiled 40 to 27 computations (32.5% saved)
Compiled 7 to 3 computations (57.1% saved)
Compiled 2 to 2 computations (0% saved)
7 alts after pruning (1 fresh and 6 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 0 | 0 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 5 | 5 |
| Total | 0 | 7 | 7 |
| Status | Error | Program |
|---|---|---|
| ✓ | 43.5b | (+.f64 (*.f64 re im) im) |
| ✓ | 22.9b | (*.f64 (sin.f64 im) (+.f64 re 1)) |
| ✓ | 0.0b | (*.f64 (exp.f64 re) (sin.f64 im)) |
| ✓ | 20.8b | (*.f64 (exp.f64 re) im) |
| ✓ | 61.4b | (*.f64 re im) |
| ✓ | 22.6b | (sin.f64 im) |
| 43.2b | im |
Compiled 40 to 27 computations (32.5% saved)
| Inputs |
|---|
im |
(*.f64 re im) |
(+.f64 (*.f64 re im) im) |
(sin.f64 im) |
(*.f64 (exp.f64 re) im) |
(*.f64 (sin.f64 im) (+.f64 re 1)) |
(*.f64 (exp.f64 re) (sin.f64 im)) |
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) |
| Outputs |
|---|
(*.f64 (exp.f64 re) (sin.f64 im)) |
5 calls:
| 5.0ms | (sin.f64 im) |
| 5.0ms | im |
| 5.0ms | re |
| 5.0ms | (*.f64 (exp.f64 re) (sin.f64 im)) |
| 2.0ms | (exp.f64 re) |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | re |
| 0.0b | 1 | im |
| 0.0b | 1 | (*.f64 (exp.f64 re) (sin.f64 im)) |
| 0.0b | 1 | (exp.f64 re) |
| 0.0b | 1 | (sin.f64 im) |
Compiled 56 to 28 computations (50% saved)
| Inputs |
|---|
im |
(*.f64 re im) |
(+.f64 (*.f64 re im) im) |
(sin.f64 im) |
(*.f64 (exp.f64 re) im) |
(*.f64 (sin.f64 im) (+.f64 re 1)) |
| Outputs |
|---|
(*.f64 (exp.f64 re) im) |
(*.f64 (sin.f64 im) (+.f64 re 1)) |
4 calls:
| 25.0ms | (sin.f64 im) |
| 17.0ms | im |
| 8.0ms | re |
| 3.0ms | (exp.f64 re) |
| Error | Segments | Branch |
|---|---|---|
| 0.3b | 2 | re |
| 8.9b | 4 | im |
| 0.3b | 2 | (exp.f64 re) |
| 9.6b | 5 | (sin.f64 im) |
Compiled 37 to 20 computations (45.9% saved)
| 1× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 0.0 | 2.3764553290949155e-66 |
Compiled 12 to 9 computations (25% saved)
| Inputs |
|---|
im |
(*.f64 re im) |
(+.f64 (*.f64 re im) im) |
(sin.f64 im) |
(*.f64 (exp.f64 re) im) |
| Outputs |
|---|
(*.f64 (exp.f64 re) im) |
(sin.f64 im) |
4 calls:
| 23.0ms | (sin.f64 im) |
| 15.0ms | im |
| 8.0ms | re |
| 3.0ms | (exp.f64 re) |
| Error | Segments | Branch |
|---|---|---|
| 0.4b | 2 | re |
| 8.9b | 4 | im |
| 0.4b | 2 | (exp.f64 re) |
| 9.6b | 5 | (sin.f64 im) |
Compiled 31 to 17 computations (45.2% saved)
| 1× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 0.0 | 2.3764553290949155e-66 |
Compiled 12 to 9 computations (25% saved)
| Inputs |
|---|
im |
(*.f64 re im) |
(+.f64 (*.f64 re im) im) |
(sin.f64 im) |
| Outputs |
|---|
(sin.f64 im) |
3 calls:
| 4.0ms | (sin.f64 im) |
| 4.0ms | im |
| 4.0ms | re |
| Error | Segments | Branch |
|---|---|---|
| 22.6b | 1 | re |
| 22.6b | 1 | im |
| 22.6b | 1 | (sin.f64 im) |
Compiled 23 to 12 computations (47.8% saved)
Total -18.6b remaining (-43%)
Threshold costs -18.6b (-43%)
| Inputs |
|---|
im |
(*.f64 re im) |
(+.f64 (*.f64 re im) im) |
| Outputs |
|---|
im |
2 calls:
| 3.0ms | im |
| 3.0ms | re |
| Error | Segments | Branch |
|---|---|---|
| 43.2b | 1 | re |
| 43.2b | 1 | im |
Compiled 17 to 8 computations (52.9% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 19 | 91 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (exp.f64 re) (sin.f64 im)) |
(if (<=.f64 (exp.f64 re) 0) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re 1))) |
(if (<=.f64 (exp.f64 re) 0) (*.f64 (exp.f64 re) im) (sin.f64 im)) |
(sin.f64 im) |
im |
| Outputs |
|---|
(*.f64 (exp.f64 re) (sin.f64 im)) |
(if (<=.f64 (exp.f64 re) 0) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re 1))) |
(if (<=.f64 (exp.f64 re) 0) (*.f64 (exp.f64 re) im) (sin.f64 im)) |
(sin.f64 im) |
im |
Compiled 44 to 29 computations (34.1% saved)
Compiled 36 to 15 computations (58.3% saved)
Loading profile data...