Time bar (total: 16.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 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 3 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 4 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 5 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 6 |
| 25% | 25% | 74.9% | 0.1% | 0% | 0% | 0% | 7 |
| 37.5% | 37.4% | 62.4% | 0.1% | 0% | 0% | 0% | 8 |
| 37.5% | 37.4% | 62.4% | 0.1% | 0% | 0% | 0% | 9 |
| 56.3% | 56.2% | 43.7% | 0.1% | 0% | 0% | 0% | 10 |
| 65.6% | 65.5% | 34.3% | 0.1% | 0% | 0% | 0% | 11 |
| 65.6% | 65.5% | 34.3% | 0.1% | 0% | 0% | 0% | 12 |
Compiled 13 to 9 computations (30.8% saved)
| 2.9s | 2147× | body | 1024 | valid |
| 2.4s | 5079× | body | 256 | valid |
| 1.3s | 1029× | body | 512 | valid |
| 2.0ms | 1× | body | 2048 | valid |
| 2× | egg-herbie |
| 2522× | rational.json-simplify-42 |
| 1858× | rational.json-simplify-45 |
| 1718× | rational.json-simplify-35 |
| 1012× | rational.json-simplify-2 |
| 846× | rational.json-simplify-48 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 24 | 108 |
| 1 | 46 | 108 |
| 2 | 69 | 108 |
| 3 | 105 | 108 |
| 4 | 185 | 108 |
| 5 | 335 | 108 |
| 6 | 804 | 108 |
| 7 | 2051 | 108 |
| 8 | 4417 | 108 |
| 9 | 5365 | 108 |
| 10 | 5768 | 108 |
| 11 | 6239 | 108 |
| 12 | 6542 | 108 |
| 0 | 3 | 3 |
| 1× | saturated |
| 1× | node limit |
| Inputs |
|---|
0 |
1 |
2 |
| Outputs |
|---|
0 |
1 |
2 |
| Inputs |
|---|
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
(-.f64 (*.f64 y (cos.f64 x)) (*.f64 z (sin.f64 x))) |
(-.f64 (*.f64 z (cos.f64 y)) (*.f64 x (sin.f64 y))) |
(-.f64 (*.f64 x (cos.f64 z)) (*.f64 y (sin.f64 z))) |
| Outputs |
|---|
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
(-.f64 (*.f64 y (cos.f64 x)) (*.f64 z (sin.f64 x))) |
(-.f64 (*.f64 z (cos.f64 y)) (*.f64 x (sin.f64 y))) |
(-.f64 (*.f64 (cos.f64 y) z) (*.f64 x (sin.f64 y))) |
(-.f64 (*.f64 x (cos.f64 z)) (*.f64 y (sin.f64 z))) |
Compiled 15 to 11 computations (26.7% saved)
| 1× | egg-herbie |
| 2186× | rational.json-simplify-35 |
| 1772× | rational.json-simplify-1 |
| 1260× | rational.json-simplify-26 |
| 926× | rational.json-simplify-2 |
| 678× | rational.json-simplify-52 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 27 |
| 1 | 19 | 27 |
| 2 | 28 | 27 |
| 3 | 42 | 27 |
| 4 | 74 | 27 |
| 5 | 134 | 27 |
| 6 | 292 | 27 |
| 7 | 719 | 27 |
| 8 | 2044 | 27 |
| 9 | 3312 | 27 |
| 10 | 4058 | 27 |
| 11 | 4541 | 27 |
| 12 | 5311 | 27 |
| 13 | 5729 | 27 |
| 14 | 6337 | 27 |
| 15 | 6912 | 27 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
| Outputs |
|---|
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
Compiled 12 to 8 computations (33.3% 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.1b | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
Compiled 12 to 8 computations (33.3% saved)
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
| ✓ | 0.0b | (sin.f64 y) |
| ✓ | 0.1b | (*.f64 x (cos.f64 y)) |
| ✓ | 0.2b | (*.f64 z (sin.f64 y)) |
Compiled 27 to 8 computations (70.4% saved)
24 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | 0 | (*.f64 z (sin.f64 y)) |
| 1.0ms | x | @ | -inf | (*.f64 x (cos.f64 y)) |
| 1.0ms | x | @ | 0 | (*.f64 x (cos.f64 y)) |
| 0.0ms | y | @ | 0 | (*.f64 z (sin.f64 y)) |
| 0.0ms | x | @ | 0 | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
| 1× | batch-egg-rewrite |
| 2030× | bool.json-1 |
| 1046× | bool.json-2 |
| 1012× | rational.json-1 |
| 1012× | rational.json-2 |
| 1012× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 54 |
| 1 | 112 | 54 |
| 2 | 319 | 54 |
| 3 | 701 | 54 |
| 4 | 1523 | 54 |
| 5 | 3501 | 54 |
| 6 | 7766 | 54 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (sin.f64 y)) |
(*.f64 x (cos.f64 y)) |
(sin.f64 y) |
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (sin.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) (*.f64 z 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (sin.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (sin.f64 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8)) (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (sin.f64 y)) (*.f64 z (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (sin.f64 y)) (*.f64 z (sin.f64 y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (cos.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 y) (*.f64 x 1/2)) (*.f64 (cos.f64 y) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (cos.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (cos.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (cos.f64 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8)) (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (cos.f64 y)) (*.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (cos.f64 y)) (*.f64 x (cos.f64 y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) 1/2) (*.f64 (sin.f64 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sin.f64 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sin.f64 y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sin.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sin.f64 y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (sin.f64 y)) (neg.f64 (sin.f64 y))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) (*.f64 2 (*.f64 (sin.f64 y) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x and (sin.f64 y) (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x or (sin.f64 y) (sin.f64 y)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (cos.f64 y)) (neg.f64 (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (*.f64 x (cos.f64 y)) (-.f64 1 (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 z (sin.f64 y))) (*.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x (cos.f64 y)) (-.f64 1 (*.f64 z (sin.f64 y)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2) (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (*.f64 (cos.f64 y) (*.f64 x 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (-.f64 (*.f64 (cos.f64 y) (+.f64 x x)) (*.f64 (sin.f64 y) (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8)) (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))) (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))))))) |
| 1× | egg-herbie |
| 1990× | rational.json-simplify-35 |
| 1206× | rational.json-simplify-51 |
| 1158× | rational.json-simplify-2 |
| 1076× | rational.json-simplify-48 |
| 824× | rational.json-simplify-49 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 208 | 3049 |
| 1 | 441 | 2807 |
| 2 | 1090 | 2789 |
| 3 | 2590 | 2759 |
| 4 | 5204 | 2759 |
| 5 | 5965 | 2759 |
| 6 | 7506 | 2759 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y z) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 y z)) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (*.f64 1/120 (*.f64 (pow.f64 y 5) z)))) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 y 7) z)) (*.f64 1/120 (*.f64 (pow.f64 y 5) z))))) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
x |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x) |
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x)) |
(+.f64 (*.f64 -1/720 (*.f64 (pow.f64 y 6) x)) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x))) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
y |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) y) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) y)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 -1/5040 (pow.f64 y 7))))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(*.f64 (cos.f64 y) x) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(*.f64 (cos.f64 y) x) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) x))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 (cos.f64 y) x) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 z (sin.f64 y)) 0) |
(+.f64 0 (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 (sin.f64 y) (*.f64 z 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2))) |
(-.f64 (*.f64 z (sin.f64 y)) 0) |
(/.f64 (*.f64 z (sin.f64 y)) 1) |
(/.f64 (*.f64 (sin.f64 y) (+.f64 z z)) 2) |
(/.f64 (*.f64 (sin.f64 y) (*.f64 z 4)) 4) |
(/.f64 (*.f64 (*.f64 z (sin.f64 y)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8)) (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8))) 32) |
(+.f64 (*.f64 x (cos.f64 y)) 0) |
(+.f64 0 (*.f64 x (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) (*.f64 x 1/2)) (*.f64 (cos.f64 y) (*.f64 x 1/2))) |
(-.f64 (*.f64 x (cos.f64 y)) 0) |
(/.f64 (*.f64 x (cos.f64 y)) 1) |
(/.f64 (*.f64 (cos.f64 y) (+.f64 x x)) 2) |
(/.f64 (*.f64 (cos.f64 y) (*.f64 x 4)) 4) |
(/.f64 (*.f64 (*.f64 x (cos.f64 y)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8)) (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8))) 32) |
(+.f64 (sin.f64 y) 0) |
(+.f64 0 (sin.f64 y)) |
(+.f64 -1 (-.f64 1 (neg.f64 (sin.f64 y)))) |
(+.f64 (*.f64 (sin.f64 y) 1/2) (*.f64 (sin.f64 y) 1/2)) |
(+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1) |
(-.f64 (sin.f64 y) 0) |
(-.f64 0 (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) 1) |
(*.f64 1 (sin.f64 y)) |
(*.f64 -1 (neg.f64 (sin.f64 y))) |
(*.f64 2 (*.f64 (sin.f64 y) 1/2)) |
(*.f64 (*.f64 (sin.f64 y) 2) 1/2) |
(*.f64 4 (/.f64 (sin.f64 y) 4)) |
(*.f64 (*.f64 (sin.f64 y) 4) 1/4) |
(*.f64 1/2 (*.f64 (sin.f64 y) 2)) |
(*.f64 (*.f64 (sin.f64 y) 1/2) 2) |
(*.f64 (neg.f64 (sin.f64 y)) -1) |
(*.f64 1/4 (*.f64 (sin.f64 y) 4)) |
(*.f64 (/.f64 (sin.f64 y) 4) 4) |
(/.f64 (sin.f64 y) 1) |
(/.f64 (*.f64 (sin.f64 y) 2) 2) |
(/.f64 (*.f64 (sin.f64 y) 4) 4) |
(/.f64 (*.f64 (sin.f64 y) 8) 8) |
(/.f64 (neg.f64 (sin.f64 y)) -1) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) 16) |
(/.f64 (+.f64 (neg.f64 (sin.f64 y)) (neg.f64 (sin.f64 y))) -2) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) (*.f64 2 (*.f64 (sin.f64 y) 8))) 32) |
(neg.f64 (neg.f64 (sin.f64 y))) |
(+.f64 (*.f64 x (cos.f64 y)) (neg.f64 (*.f64 z (sin.f64 y)))) |
(+.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 0) |
(+.f64 0 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))) |
(+.f64 -1 (+.f64 (*.f64 x (cos.f64 y)) (-.f64 1 (*.f64 z (sin.f64 y))))) |
(+.f64 (neg.f64 (*.f64 z (sin.f64 y))) (*.f64 x (cos.f64 y))) |
(+.f64 (+.f64 (*.f64 x (cos.f64 y)) (-.f64 1 (*.f64 z (sin.f64 y)))) -1) |
(+.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2) (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2)) |
(*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1) |
(*.f64 1 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))) |
(*.f64 -1 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))) |
(*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2)) |
(*.f64 2 (-.f64 (*.f64 (cos.f64 y) (*.f64 x 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2)))) |
(*.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2) 1/2) |
(*.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) -1) |
(*.f64 4 (/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4)) |
(*.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 1/4) |
(*.f64 1/2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2)) |
(*.f64 1/2 (-.f64 (*.f64 (cos.f64 y) (+.f64 x x)) (*.f64 (sin.f64 y) (+.f64 z z)))) |
(*.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2) 2) |
(*.f64 1/4 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4)) |
(*.f64 (/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 4) |
(/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1) |
(/.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2) 2) |
(/.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) -1) |
(/.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 4) |
(/.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8) 8) |
(/.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))) -2) |
(/.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8)) 16) |
(/.f64 (*.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) 4) -4) |
(/.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))) 2) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8)) (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8))) 32) |
(/.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))) (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))))) 4) |
(neg.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))) |
| Outputs |
|---|
(*.f64 y z) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 y z)) |
(+.f64 (*.f64 y z) (*.f64 -1/6 (*.f64 z (pow.f64 y 3)))) |
(*.f64 z (+.f64 y (*.f64 -1/6 (pow.f64 y 3)))) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (*.f64 1/120 (*.f64 (pow.f64 y 5) z)))) |
(+.f64 (*.f64 -1/6 (*.f64 z (pow.f64 y 3))) (+.f64 (*.f64 y z) (*.f64 (pow.f64 y 5) (*.f64 z 1/120)))) |
(+.f64 (*.f64 -1/6 (*.f64 z (pow.f64 y 3))) (+.f64 (*.f64 y z) (*.f64 1/120 (*.f64 z (pow.f64 y 5))))) |
(+.f64 (*.f64 (pow.f64 y 3) (*.f64 z -1/6)) (*.f64 z (+.f64 y (*.f64 1/120 (pow.f64 y 5))))) |
(*.f64 z (+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 1/120 (pow.f64 y 5))))) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 y 7) z)) (*.f64 1/120 (*.f64 (pow.f64 y 5) z))))) |
(+.f64 (*.f64 y z) (+.f64 (+.f64 (*.f64 (pow.f64 y 5) (*.f64 z 1/120)) (*.f64 -1/5040 (*.f64 z (pow.f64 y 7)))) (*.f64 -1/6 (*.f64 z (pow.f64 y 3))))) |
(+.f64 (*.f64 -1/6 (*.f64 z (pow.f64 y 3))) (+.f64 (*.f64 y z) (+.f64 (*.f64 1/120 (*.f64 z (pow.f64 y 5))) (*.f64 -1/5040 (*.f64 z (pow.f64 y 7)))))) |
(+.f64 (*.f64 (pow.f64 y 5) (*.f64 z 1/120)) (+.f64 (*.f64 z (+.f64 y (*.f64 -1/5040 (pow.f64 y 7)))) (*.f64 (pow.f64 y 3) (*.f64 z -1/6)))) |
(+.f64 (*.f64 z (*.f64 -1/6 (pow.f64 y 3))) (*.f64 z (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 -1/5040 (pow.f64 y 7)))))) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
x |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x) |
(+.f64 x (*.f64 -1/2 (*.f64 x (pow.f64 y 2)))) |
(+.f64 x (*.f64 x (*.f64 (pow.f64 y 2) -1/2))) |
(+.f64 x (*.f64 x (*.f64 -1/2 (pow.f64 y 2)))) |
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x)) |
(+.f64 (*.f64 -1/2 (*.f64 x (pow.f64 y 2))) (+.f64 x (*.f64 1/24 (*.f64 x (pow.f64 y 4))))) |
(+.f64 x (+.f64 (*.f64 x (*.f64 (pow.f64 y 4) 1/24)) (*.f64 x (*.f64 (pow.f64 y 2) -1/2)))) |
(+.f64 (*.f64 x (*.f64 -1/2 (pow.f64 y 2))) (+.f64 x (*.f64 (pow.f64 y 4) (*.f64 x 1/24)))) |
(+.f64 x (*.f64 x (+.f64 (*.f64 1/24 (pow.f64 y 4)) (*.f64 -1/2 (pow.f64 y 2))))) |
(+.f64 (*.f64 -1/720 (*.f64 (pow.f64 y 6) x)) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x))) |
(+.f64 (*.f64 1/24 (*.f64 x (pow.f64 y 4))) (+.f64 (+.f64 x (*.f64 -1/2 (*.f64 x (pow.f64 y 2)))) (*.f64 -1/720 (*.f64 x (pow.f64 y 6))))) |
(+.f64 (*.f64 x (*.f64 (pow.f64 y 2) -1/2)) (+.f64 (+.f64 x (*.f64 x (*.f64 (pow.f64 y 4) 1/24))) (*.f64 x (*.f64 (pow.f64 y 6) -1/720)))) |
(+.f64 (*.f64 x (*.f64 -1/2 (pow.f64 y 2))) (+.f64 (*.f64 x (*.f64 -1/720 (pow.f64 y 6))) (+.f64 x (*.f64 (pow.f64 y 4) (*.f64 x 1/24))))) |
(+.f64 x (+.f64 (*.f64 x (+.f64 (*.f64 -1/720 (pow.f64 y 6)) (*.f64 -1/2 (pow.f64 y 2)))) (*.f64 x (*.f64 1/24 (pow.f64 y 4))))) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
(*.f64 (cos.f64 y) x) |
y |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) y) |
(+.f64 y (*.f64 -1/6 (pow.f64 y 3))) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) y)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (*.f64 1/120 (pow.f64 y 5)))) |
(+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 1/120 (pow.f64 y 5)))) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 -1/5040 (pow.f64 y 7))))) |
(+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 (+.f64 y (*.f64 -1/5040 (pow.f64 y 7))) (*.f64 -1/6 (pow.f64 y 3)))) |
(+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (*.f64 -1/5040 (pow.f64 y 7))))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (sin.f64 (neg.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 (cos.f64 y) x) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 (cos.f64 y) x) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (*.f64 y (*.f64 z -1))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x)) |
(+.f64 (*.f64 -1/2 (*.f64 x (pow.f64 y 2))) (+.f64 x (*.f64 y (*.f64 z -1)))) |
(+.f64 x (+.f64 (*.f64 x (*.f64 (pow.f64 y 2) -1/2)) (*.f64 y (neg.f64 z)))) |
(+.f64 x (+.f64 (*.f64 x (*.f64 -1/2 (pow.f64 y 2))) (*.f64 y (neg.f64 z)))) |
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) x))) |
(+.f64 (*.f64 -1/2 (*.f64 x (pow.f64 y 2))) (+.f64 (+.f64 x (*.f64 (pow.f64 y 3) (*.f64 z 1/6))) (*.f64 y (*.f64 z -1)))) |
(+.f64 (*.f64 x (*.f64 (pow.f64 y 2) -1/2)) (+.f64 (*.f64 y (neg.f64 z)) (+.f64 x (*.f64 (pow.f64 y 3) (*.f64 z 1/6))))) |
(+.f64 x (+.f64 (+.f64 (*.f64 x (*.f64 -1/2 (pow.f64 y 2))) (*.f64 (pow.f64 y 3) (*.f64 z 1/6))) (*.f64 y (neg.f64 z)))) |
(+.f64 x (+.f64 (*.f64 z (+.f64 (neg.f64 y) (*.f64 (pow.f64 y 3) 1/6))) (*.f64 x (*.f64 -1/2 (pow.f64 y 2))))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(*.f64 (cos.f64 y) x) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (sin.f64 (neg.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (sin.f64 (neg.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 z (sin.f64 y)) 0) |
(*.f64 z (sin.f64 y)) |
(+.f64 0 (*.f64 z (sin.f64 y))) |
(*.f64 z (sin.f64 y)) |
(+.f64 (*.f64 (sin.f64 y) (*.f64 z 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2))) |
(*.f64 z (sin.f64 y)) |
(-.f64 (*.f64 z (sin.f64 y)) 0) |
(*.f64 z (sin.f64 y)) |
(/.f64 (*.f64 z (sin.f64 y)) 1) |
(*.f64 z (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) (+.f64 z z)) 2) |
(*.f64 z (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) (*.f64 z 4)) 4) |
(*.f64 z (sin.f64 y)) |
(/.f64 (*.f64 (*.f64 z (sin.f64 y)) 8) 8) |
(*.f64 z (sin.f64 y)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8)) 16) |
(*.f64 z (sin.f64 y)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8)) (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8))) 32) |
(*.f64 z (sin.f64 y)) |
(+.f64 (*.f64 x (cos.f64 y)) 0) |
(*.f64 (cos.f64 y) x) |
(+.f64 0 (*.f64 x (cos.f64 y))) |
(*.f64 (cos.f64 y) x) |
(+.f64 (*.f64 (cos.f64 y) (*.f64 x 1/2)) (*.f64 (cos.f64 y) (*.f64 x 1/2))) |
(*.f64 (cos.f64 y) x) |
(-.f64 (*.f64 x (cos.f64 y)) 0) |
(*.f64 (cos.f64 y) x) |
(/.f64 (*.f64 x (cos.f64 y)) 1) |
(*.f64 (cos.f64 y) x) |
(/.f64 (*.f64 (cos.f64 y) (+.f64 x x)) 2) |
(*.f64 (cos.f64 y) x) |
(/.f64 (*.f64 (cos.f64 y) (*.f64 x 4)) 4) |
(*.f64 (cos.f64 y) x) |
(/.f64 (*.f64 (*.f64 x (cos.f64 y)) 8) 8) |
(*.f64 (cos.f64 y) x) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8)) 16) |
(*.f64 (cos.f64 y) x) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8)) (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8))) 32) |
(*.f64 (cos.f64 y) x) |
(+.f64 (sin.f64 y) 0) |
(sin.f64 y) |
(+.f64 0 (sin.f64 y)) |
(sin.f64 y) |
(+.f64 -1 (-.f64 1 (neg.f64 (sin.f64 y)))) |
(sin.f64 y) |
(+.f64 (*.f64 (sin.f64 y) 1/2) (*.f64 (sin.f64 y) 1/2)) |
(sin.f64 y) |
(+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1) |
(sin.f64 y) |
(-.f64 (sin.f64 y) 0) |
(sin.f64 y) |
(-.f64 0 (neg.f64 (sin.f64 y))) |
(sin.f64 y) |
(*.f64 (sin.f64 y) 1) |
(sin.f64 y) |
(*.f64 1 (sin.f64 y)) |
(sin.f64 y) |
(*.f64 -1 (neg.f64 (sin.f64 y))) |
(sin.f64 y) |
(*.f64 2 (*.f64 (sin.f64 y) 1/2)) |
(sin.f64 y) |
(*.f64 (*.f64 (sin.f64 y) 2) 1/2) |
(sin.f64 y) |
(*.f64 4 (/.f64 (sin.f64 y) 4)) |
(sin.f64 y) |
(*.f64 (*.f64 (sin.f64 y) 4) 1/4) |
(sin.f64 y) |
(*.f64 1/2 (*.f64 (sin.f64 y) 2)) |
(sin.f64 y) |
(*.f64 (*.f64 (sin.f64 y) 1/2) 2) |
(sin.f64 y) |
(*.f64 (neg.f64 (sin.f64 y)) -1) |
(sin.f64 y) |
(*.f64 1/4 (*.f64 (sin.f64 y) 4)) |
(sin.f64 y) |
(*.f64 (/.f64 (sin.f64 y) 4) 4) |
(sin.f64 y) |
(/.f64 (sin.f64 y) 1) |
(sin.f64 y) |
(/.f64 (*.f64 (sin.f64 y) 2) 2) |
(sin.f64 y) |
(/.f64 (*.f64 (sin.f64 y) 4) 4) |
(sin.f64 y) |
(/.f64 (*.f64 (sin.f64 y) 8) 8) |
(sin.f64 y) |
(/.f64 (neg.f64 (sin.f64 y)) -1) |
(sin.f64 y) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) 16) |
(sin.f64 y) |
(/.f64 (+.f64 (neg.f64 (sin.f64 y)) (neg.f64 (sin.f64 y))) -2) |
(sin.f64 y) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) (*.f64 2 (*.f64 (sin.f64 y) 8))) 32) |
(sin.f64 y) |
(neg.f64 (neg.f64 (sin.f64 y))) |
(sin.f64 y) |
(+.f64 (*.f64 x (cos.f64 y)) (neg.f64 (*.f64 z (sin.f64 y)))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 0) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 0 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 -1 (+.f64 (*.f64 x (cos.f64 y)) (-.f64 1 (*.f64 z (sin.f64 y))))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (neg.f64 (*.f64 z (sin.f64 y))) (*.f64 x (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (+.f64 (*.f64 x (cos.f64 y)) (-.f64 1 (*.f64 z (sin.f64 y)))) -1) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(+.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2) (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 1 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 -1 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 2 (-.f64 (*.f64 (cos.f64 y) (*.f64 x 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2)))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2) 1/2) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) -1) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 4 (/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 1/4) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 1/2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 1/2 (-.f64 (*.f64 (cos.f64 y) (+.f64 x x)) (*.f64 (sin.f64 y) (+.f64 z z)))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2) 2) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 1/4 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4)) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(*.f64 (/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 4) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(/.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2) 2) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(/.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) -1) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(/.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 4) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(/.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8) 8) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(/.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))) -2) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(/.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8)) 16) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(/.f64 (*.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) 4) -4) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(/.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))) 2) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8)) (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8))) 32) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(/.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))) (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))))) 4) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
(neg.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))) |
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y)))) |
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y))) |
Compiled 2174 to 1000 computations (54% saved)
7 alts after pruning (6 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 134 | 6 | 140 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 134 | 7 | 141 |
| Status | Error | Program |
|---|---|---|
| ▶ | 7.8b | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1))) |
| ✓ | 0.1b | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
| ▶ | 23.4b | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y)) |
| ▶ | 16.7b | (-.f64 x (*.f64 z (sin.f64 y))) |
| 35.5b | (+.f64 x (+.f64 (*.f64 x (*.f64 (pow.f64 y 2) -1/2)) (*.f64 y (neg.f64 z)))) | |
| ▶ | 34.2b | (+.f64 x (*.f64 y (neg.f64 z))) |
| ▶ | 36.9b | (*.f64 z (sin.f64 (neg.f64 y))) |
Compiled 154 to 108 computations (29.9% saved)
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.1b | (*.f64 x (cos.f64 y)) | |
| ✓ | 0.2b | (*.f64 z (+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1)) |
| ✓ | 0.5b | (-.f64 1 (neg.f64 (sin.f64 y))) |
| ✓ | 3.4b | (+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1) |
Compiled 54 to 26 computations (51.9% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1) |
| 0.0ms | y | @ | 0 | (*.f64 z (+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1)) |
| 0.0ms | y | @ | 0 | (-.f64 1 (neg.f64 (sin.f64 y))) |
| 0.0ms | y | @ | inf | (-.f64 1 (neg.f64 (sin.f64 y))) |
| 0.0ms | y | @ | -inf | (-.f64 1 (neg.f64 (sin.f64 y))) |
| 1× | batch-egg-rewrite |
| 1190× | bool.json-1 |
| 1190× | bool.json-2 |
| 1148× | rational.json-1 |
| 1148× | rational.json-2 |
| 1148× | rational.json-4 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 63 |
| 1 | 131 | 47 |
| 2 | 369 | 27 |
| 3 | 803 | 27 |
| 4 | 1721 | 27 |
| 5 | 4026 | 27 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1) |
(-.f64 1 (neg.f64 (sin.f64 y))) |
(*.f64 z (+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (-.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sin.f64 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (-.f64 -1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 2 (-.f64 2 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -2 (-.f64 -2 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 y) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 y) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 y) -2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 y) 1/2) (*.f64 (sin.f64 y) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 3 (neg.f64 (sin.f64 y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sin.f64 y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (sin.f64 y) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) -2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sin.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (neg.f64 (*.f64 (sin.f64 y) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (*.f64 (sin.f64 y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sin.f64 y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) -1/2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) -2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) -4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 y) -4)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) -4))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 y) -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) (neg.f64 (*.f64 (sin.f64 y) -2))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) -4)) (neg.f64 (*.f64 (sin.f64 y) -4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 y)))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (PI.f64) y))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (neg.f64 (+.f64 y (PI.f64))))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (-.f64 y (PI.f64)) (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 y (-.f64 (neg.f64 (PI.f64)) (PI.f64))))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (PI.f64) (-.f64 (-.f64 y (PI.f64)) (PI.f64))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x and (sin.f64 y) (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x or (sin.f64 y) (sin.f64 y)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (sin.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (sin.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 2 (+.f64 (sin.f64 y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 3 (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 y) -1) 2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 y) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) (*.f64 (+.f64 1 (sin.f64 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 3 (neg.f64 (sin.f64 y))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 -1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 (sin.f64 y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 1 (sin.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 -1 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 1 (sin.f64 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 1 (sin.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 1 (sin.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (sin.f64 y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 -1 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 -2 (*.f64 (sin.f64 y) -2))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2))) (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 -1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 1 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 1 (sin.f64 y)) (+.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 1 (sin.f64 y)) (+.f64 1 (sin.f64 y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) (*.f64 z 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4)))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 y) z) (*.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 y) z) (*.f64 (sin.f64 y) z)))))) |
| 1× | egg-herbie |
| 1838× | rational.json-simplify-35 |
| 1032× | rational.json-simplify-1 |
| 906× | trig.json-simplify-16 |
| 846× | rational.json-simplify-2 |
| 628× | rational.json-simplify-52 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 219 | 1587 |
| 1 | 467 | 1587 |
| 2 | 1364 | 1569 |
| 3 | 3039 | 1569 |
| 4 | 4529 | 1569 |
| 5 | 5624 | 1569 |
| 6 | 6125 | 1569 |
| 7 | 6659 | 1569 |
| 8 | 7528 | 1569 |
| 1× | node limit |
| Inputs |
|---|
y |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) y) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) y)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 -1/5040 (pow.f64 y 7))))) |
(sin.f64 y) |
(sin.f64 y) |
(sin.f64 y) |
(sin.f64 y) |
(sin.f64 y) |
(sin.f64 y) |
(sin.f64 y) |
(sin.f64 y) |
1 |
(+.f64 1 y) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 1 y)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 1 (+.f64 y (*.f64 1/120 (pow.f64 y 5))))) |
(+.f64 1 (sin.f64 y)) |
(+.f64 1 (sin.f64 y)) |
(+.f64 1 (sin.f64 y)) |
(+.f64 1 (sin.f64 y)) |
(+.f64 1 (sin.f64 y)) |
(+.f64 1 (sin.f64 y)) |
(+.f64 1 (sin.f64 y)) |
(+.f64 1 (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 y z) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 y z)) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (*.f64 1/120 (*.f64 (pow.f64 y 5) z)))) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 y 7) z)) (*.f64 1/120 (*.f64 (pow.f64 y 5) z))))) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(*.f64 z (sin.f64 y)) |
(-.f64 1 (-.f64 1 (sin.f64 y))) |
(-.f64 (sin.f64 y) 0) |
(-.f64 (+.f64 1 (sin.f64 y)) 1) |
(-.f64 -1 (-.f64 -1 (sin.f64 y))) |
(-.f64 0 (neg.f64 (sin.f64 y))) |
(-.f64 2 (-.f64 2 (sin.f64 y))) |
(-.f64 -2 (-.f64 -2 (sin.f64 y))) |
(-.f64 (+.f64 (sin.f64 y) -1) -1) |
(-.f64 (+.f64 (sin.f64 y) 2) 2) |
(-.f64 (+.f64 (sin.f64 y) -2) -2) |
(-.f64 (*.f64 (sin.f64 y) 1/2) (*.f64 (sin.f64 y) -1/2)) |
(-.f64 (-.f64 3 (neg.f64 (sin.f64 y))) 3) |
(*.f64 1 (sin.f64 y)) |
(*.f64 (sin.f64 y) 1) |
(*.f64 (neg.f64 (sin.f64 y)) -1) |
(*.f64 -1 (neg.f64 (sin.f64 y))) |
(*.f64 2 (*.f64 (sin.f64 y) 1/2)) |
(*.f64 (*.f64 (sin.f64 y) 2) 1/2) |
(*.f64 4 (/.f64 (sin.f64 y) 4)) |
(*.f64 -2 (*.f64 (sin.f64 y) -1/2)) |
(*.f64 (*.f64 (sin.f64 y) -2) -1/2) |
(*.f64 (*.f64 (sin.f64 y) 4) 1/4) |
(*.f64 1/2 (*.f64 (sin.f64 y) 2)) |
(*.f64 1/2 (neg.f64 (*.f64 (sin.f64 y) -2))) |
(*.f64 -1/2 (*.f64 (sin.f64 y) -2)) |
(*.f64 (*.f64 (sin.f64 y) 1/2) 2) |
(*.f64 1/4 (*.f64 (sin.f64 y) 4)) |
(*.f64 (*.f64 (sin.f64 y) -1/2) -2) |
(*.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) 1/2) |
(*.f64 (/.f64 (sin.f64 y) 4) 4) |
(/.f64 (sin.f64 y) 1) |
(/.f64 (neg.f64 (sin.f64 y)) -1) |
(/.f64 (*.f64 (sin.f64 y) 2) 2) |
(/.f64 (*.f64 (sin.f64 y) -2) -2) |
(/.f64 (*.f64 (sin.f64 y) 4) 4) |
(/.f64 (*.f64 (sin.f64 y) -4) -4) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) 8) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) -4)) -8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) -4))) -16) |
(/.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4))) -8) |
(/.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) 2) |
(/.f64 (neg.f64 (*.f64 (sin.f64 y) -4)) 4) |
(/.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4))) 8) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4)))) 32) |
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)))) -16) |
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) (neg.f64 (*.f64 (sin.f64 y) -2))) 4) |
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) -4)) (neg.f64 (*.f64 (sin.f64 y) -4))) 8) |
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4)))) 16) |
(neg.f64 (neg.f64 (sin.f64 y))) |
(sin.f64 y) |
(sin.f64 (-.f64 (PI.f64) y)) |
(sin.f64 (neg.f64 (+.f64 y (PI.f64)))) |
(sin.f64 (-.f64 (-.f64 y (PI.f64)) (PI.f64))) |
(sin.f64 (-.f64 y (-.f64 (neg.f64 (PI.f64)) (PI.f64)))) |
(sin.f64 (-.f64 (PI.f64) (-.f64 (-.f64 y (PI.f64)) (PI.f64)))) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (+.f64 1 (sin.f64 y)) 0) |
(+.f64 -1 (+.f64 (sin.f64 y) 2)) |
(+.f64 0 (+.f64 1 (sin.f64 y))) |
(+.f64 2 (+.f64 (sin.f64 y) -1)) |
(+.f64 -2 (-.f64 3 (neg.f64 (sin.f64 y)))) |
(+.f64 (+.f64 (sin.f64 y) -1) 2) |
(+.f64 (+.f64 (sin.f64 y) 2) -1) |
(+.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) (*.f64 (+.f64 1 (sin.f64 y)) 1/2)) |
(+.f64 (-.f64 3 (neg.f64 (sin.f64 y))) -2) |
(*.f64 1 (+.f64 1 (sin.f64 y))) |
(*.f64 (+.f64 1 (sin.f64 y)) 1) |
(*.f64 -1 (-.f64 -1 (sin.f64 y))) |
(*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 1/2)) |
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 2) 1/2) |
(*.f64 4 (/.f64 (+.f64 1 (sin.f64 y)) 4)) |
(*.f64 (-.f64 -1 (sin.f64 y)) -1) |
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 1/4) |
(*.f64 1/2 (*.f64 (+.f64 1 (sin.f64 y)) 2)) |
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 1 (sin.f64 y)) 4)) |
(*.f64 (/.f64 (+.f64 1 (sin.f64 y)) 4) 4) |
(/.f64 (+.f64 1 (sin.f64 y)) 1) |
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 2) 2) |
(/.f64 (-.f64 -1 (sin.f64 y)) -1) |
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 4) |
(/.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4)) 8) |
(/.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)) -2) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4))) 16) |
(/.f64 (*.f64 2 (+.f64 -2 (*.f64 (sin.f64 y) -2))) -4) |
(/.f64 (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2))) 2) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4)))) 32) |
(/.f64 (+.f64 (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2))) (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)))) 4) |
(neg.f64 (-.f64 -1 (sin.f64 y))) |
(+.f64 (*.f64 (sin.f64 y) z) 0) |
(+.f64 0 (*.f64 (sin.f64 y) z)) |
(+.f64 (*.f64 (sin.f64 y) (*.f64 z 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2))) |
(-.f64 (*.f64 (sin.f64 y) z) 0) |
(/.f64 (*.f64 (sin.f64 y) z) 1) |
(/.f64 (*.f64 (sin.f64 y) (+.f64 z z)) 2) |
(/.f64 (*.f64 (sin.f64 y) (*.f64 z 4)) 4) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4))) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4)))) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4)))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4))))) 32) |
| Outputs |
|---|
y |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) y) |
(+.f64 y (*.f64 -1/6 (pow.f64 y 3))) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) y)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (*.f64 1/120 (pow.f64 y 5)))) |
(+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 1/120 (pow.f64 y 5)))) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 -1/5040 (pow.f64 y 7))))) |
(+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (*.f64 -1/5040 (pow.f64 y 7))))) |
(sin.f64 y) |
(sin.f64 y) |
(sin.f64 y) |
(sin.f64 y) |
(sin.f64 y) |
(sin.f64 y) |
(sin.f64 y) |
(sin.f64 y) |
1 |
(+.f64 1 y) |
(+.f64 y 1) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 1 y)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y 1)) |
(+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) 1)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 1 (+.f64 y (*.f64 1/120 (pow.f64 y 5))))) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (+.f64 y (*.f64 1/120 (pow.f64 y 5))) 1)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y 1))) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 y z) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 y z)) |
(+.f64 (*.f64 y z) (*.f64 -1/6 (*.f64 (pow.f64 y 3) z))) |
(*.f64 z (+.f64 y (*.f64 -1/6 (pow.f64 y 3)))) |
(*.f64 (+.f64 y (*.f64 -1/6 (pow.f64 y 3))) z) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (*.f64 1/120 (*.f64 (pow.f64 y 5) z)))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 1/120 (*.f64 (pow.f64 y 5) z)))) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 z (+.f64 y (*.f64 1/120 (pow.f64 y 5))))) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 (+.f64 y (*.f64 1/120 (pow.f64 y 5))) z)) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 y 7) z)) (*.f64 1/120 (*.f64 (pow.f64 y 5) z))))) |
(+.f64 (*.f64 y z) (+.f64 (+.f64 (*.f64 1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 -1/5040 (*.f64 (pow.f64 y 7) z))) (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 -1/5040 (*.f64 (pow.f64 y 7) z))))) |
(+.f64 (*.f64 (pow.f64 y 5) (*.f64 1/120 z)) (+.f64 (*.f64 z (+.f64 y (*.f64 -1/5040 (pow.f64 y 7)))) (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)))) |
(+.f64 (*.f64 (pow.f64 y 5) (*.f64 1/120 z)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 (+.f64 y (*.f64 -1/5040 (pow.f64 y 7))) z))) |
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 (+.f64 y (*.f64 -1/5040 (pow.f64 y 7))) z))) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(*.f64 z (sin.f64 y)) |
(*.f64 (sin.f64 y) z) |
(-.f64 1 (-.f64 1 (sin.f64 y))) |
(sin.f64 y) |
(-.f64 (sin.f64 y) 0) |
(sin.f64 y) |
(-.f64 (+.f64 1 (sin.f64 y)) 1) |
(sin.f64 y) |
(-.f64 -1 (-.f64 -1 (sin.f64 y))) |
(sin.f64 y) |
(-.f64 0 (neg.f64 (sin.f64 y))) |
(sin.f64 y) |
(-.f64 2 (-.f64 2 (sin.f64 y))) |
(sin.f64 y) |
(-.f64 -2 (-.f64 -2 (sin.f64 y))) |
(sin.f64 y) |
(-.f64 (+.f64 (sin.f64 y) -1) -1) |
(sin.f64 y) |
(-.f64 (+.f64 (sin.f64 y) 2) 2) |
(sin.f64 y) |
(-.f64 (+.f64 (sin.f64 y) -2) -2) |
(sin.f64 y) |
(-.f64 (*.f64 (sin.f64 y) 1/2) (*.f64 (sin.f64 y) -1/2)) |
(sin.f64 y) |
(-.f64 (-.f64 3 (neg.f64 (sin.f64 y))) 3) |
(sin.f64 y) |
(*.f64 1 (sin.f64 y)) |
(sin.f64 y) |
(*.f64 (sin.f64 y) 1) |
(sin.f64 y) |
(*.f64 (neg.f64 (sin.f64 y)) -1) |
(sin.f64 y) |
(*.f64 -1 (neg.f64 (sin.f64 y))) |
(sin.f64 y) |
(*.f64 2 (*.f64 (sin.f64 y) 1/2)) |
(sin.f64 y) |
(*.f64 (*.f64 (sin.f64 y) 2) 1/2) |
(sin.f64 y) |
(*.f64 4 (/.f64 (sin.f64 y) 4)) |
(sin.f64 y) |
(*.f64 -2 (*.f64 (sin.f64 y) -1/2)) |
(sin.f64 y) |
(*.f64 (*.f64 (sin.f64 y) -2) -1/2) |
(sin.f64 y) |
(*.f64 (*.f64 (sin.f64 y) 4) 1/4) |
(sin.f64 y) |
(*.f64 1/2 (*.f64 (sin.f64 y) 2)) |
(sin.f64 y) |
(*.f64 1/2 (neg.f64 (*.f64 (sin.f64 y) -2))) |
(sin.f64 y) |
(*.f64 -1/2 (*.f64 (sin.f64 y) -2)) |
(sin.f64 y) |
(*.f64 (*.f64 (sin.f64 y) 1/2) 2) |
(sin.f64 y) |
(*.f64 1/4 (*.f64 (sin.f64 y) 4)) |
(sin.f64 y) |
(*.f64 (*.f64 (sin.f64 y) -1/2) -2) |
(sin.f64 y) |
(*.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) 1/2) |
(sin.f64 y) |
(*.f64 (/.f64 (sin.f64 y) 4) 4) |
(sin.f64 y) |
(/.f64 (sin.f64 y) 1) |
(sin.f64 y) |
(/.f64 (neg.f64 (sin.f64 y)) -1) |
(sin.f64 y) |
(/.f64 (*.f64 (sin.f64 y) 2) 2) |
(sin.f64 y) |
(/.f64 (*.f64 (sin.f64 y) -2) -2) |
(sin.f64 y) |
(/.f64 (*.f64 (sin.f64 y) 4) 4) |
(sin.f64 y) |
(/.f64 (*.f64 (sin.f64 y) -4) -4) |
(sin.f64 y) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) 8) |
(sin.f64 y) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) -4)) -8) |
(sin.f64 y) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))) 16) |
(sin.f64 y) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) -4))) -16) |
(sin.f64 y) |
(/.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4))) -8) |
(sin.f64 y) |
(/.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) 2) |
(sin.f64 y) |
(/.f64 (neg.f64 (*.f64 (sin.f64 y) -4)) 4) |
(sin.f64 y) |
(/.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4))) 8) |
(sin.f64 y) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4)))) 32) |
(sin.f64 y) |
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)))) -16) |
(sin.f64 y) |
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) (neg.f64 (*.f64 (sin.f64 y) -2))) 4) |
(sin.f64 y) |
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) -4)) (neg.f64 (*.f64 (sin.f64 y) -4))) 8) |
(sin.f64 y) |
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4)))) 16) |
(sin.f64 y) |
(neg.f64 (neg.f64 (sin.f64 y))) |
(sin.f64 y) |
(sin.f64 y) |
(sin.f64 (-.f64 (PI.f64) y)) |
(sin.f64 y) |
(sin.f64 (neg.f64 (+.f64 y (PI.f64)))) |
(neg.f64 (sin.f64 (+.f64 y (PI.f64)))) |
(sin.f64 (-.f64 (-.f64 y (PI.f64)) (PI.f64))) |
(sin.f64 (-.f64 y (-.f64 (neg.f64 (PI.f64)) (PI.f64)))) |
(neg.f64 (sin.f64 (+.f64 y (PI.f64)))) |
(sin.f64 (-.f64 (PI.f64) (-.f64 (-.f64 y (PI.f64)) (PI.f64)))) |
(sin.f64 (-.f64 (-.f64 y (PI.f64)) (PI.f64))) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (+.f64 1 (sin.f64 y)) 0) |
(+.f64 (sin.f64 y) 1) |
(+.f64 -1 (+.f64 (sin.f64 y) 2)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 0 (+.f64 1 (sin.f64 y))) |
(+.f64 (sin.f64 y) 1) |
(+.f64 2 (+.f64 (sin.f64 y) -1)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 -2 (-.f64 3 (neg.f64 (sin.f64 y)))) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (+.f64 (sin.f64 y) -1) 2) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (+.f64 (sin.f64 y) 2) -1) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) (*.f64 (+.f64 1 (sin.f64 y)) 1/2)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (-.f64 3 (neg.f64 (sin.f64 y))) -2) |
(+.f64 (sin.f64 y) 1) |
(*.f64 1 (+.f64 1 (sin.f64 y))) |
(+.f64 (sin.f64 y) 1) |
(*.f64 (+.f64 1 (sin.f64 y)) 1) |
(+.f64 (sin.f64 y) 1) |
(*.f64 -1 (-.f64 -1 (sin.f64 y))) |
(+.f64 (sin.f64 y) 1) |
(*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 1/2)) |
(+.f64 (sin.f64 y) 1) |
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 2) 1/2) |
(+.f64 (sin.f64 y) 1) |
(*.f64 4 (/.f64 (+.f64 1 (sin.f64 y)) 4)) |
(+.f64 (sin.f64 y) 1) |
(*.f64 (-.f64 -1 (sin.f64 y)) -1) |
(+.f64 (sin.f64 y) 1) |
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 1/4) |
(+.f64 (sin.f64 y) 1) |
(*.f64 1/2 (*.f64 (+.f64 1 (sin.f64 y)) 2)) |
(+.f64 (sin.f64 y) 1) |
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) 2) |
(+.f64 (sin.f64 y) 1) |
(*.f64 1/4 (*.f64 (+.f64 1 (sin.f64 y)) 4)) |
(+.f64 (sin.f64 y) 1) |
(*.f64 (/.f64 (+.f64 1 (sin.f64 y)) 4) 4) |
(+.f64 (sin.f64 y) 1) |
(/.f64 (+.f64 1 (sin.f64 y)) 1) |
(+.f64 (sin.f64 y) 1) |
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 2) 2) |
(+.f64 (sin.f64 y) 1) |
(/.f64 (-.f64 -1 (sin.f64 y)) -1) |
(+.f64 (sin.f64 y) 1) |
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 4) |
(+.f64 (sin.f64 y) 1) |
(/.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4)) 8) |
(+.f64 (sin.f64 y) 1) |
(/.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)) -2) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4))) 16) |
(+.f64 (sin.f64 y) 1) |
(/.f64 (*.f64 2 (+.f64 -2 (*.f64 (sin.f64 y) -2))) -4) |
(*.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)) -1/2) |
(*.f64 -1/2 (+.f64 -2 (*.f64 (sin.f64 y) -2))) |
(/.f64 (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2))) 2) |
(/.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)) -2) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4)))) 32) |
(+.f64 (sin.f64 y) 1) |
(/.f64 (+.f64 (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2))) (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)))) 4) |
(/.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)) -2) |
(neg.f64 (-.f64 -1 (sin.f64 y))) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (*.f64 (sin.f64 y) z) 0) |
(*.f64 (sin.f64 y) z) |
(+.f64 0 (*.f64 (sin.f64 y) z)) |
(*.f64 (sin.f64 y) z) |
(+.f64 (*.f64 (sin.f64 y) (*.f64 z 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2))) |
(*.f64 (sin.f64 y) z) |
(-.f64 (*.f64 (sin.f64 y) z) 0) |
(*.f64 (sin.f64 y) z) |
(/.f64 (*.f64 (sin.f64 y) z) 1) |
(*.f64 (sin.f64 y) z) |
(/.f64 (*.f64 (sin.f64 y) (+.f64 z z)) 2) |
(*.f64 (sin.f64 y) z) |
(/.f64 (*.f64 (sin.f64 y) (*.f64 z 4)) 4) |
(*.f64 (sin.f64 y) z) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4))) 8) |
(*.f64 (sin.f64 y) z) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4)))) 16) |
(*.f64 (sin.f64 y) z) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4)))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4))))) 32) |
(*.f64 (sin.f64 y) z) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 x (*.f64 y (neg.f64 z))) |
Compiled 18 to 6 computations (66.7% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | inf | (+.f64 x (*.f64 y (neg.f64 z))) |
| 0.0ms | x | @ | 0 | (+.f64 x (*.f64 y (neg.f64 z))) |
| 0.0ms | y | @ | inf | (+.f64 x (*.f64 y (neg.f64 z))) |
| 0.0ms | y | @ | 0 | (+.f64 x (*.f64 y (neg.f64 z))) |
| 0.0ms | z | @ | 0 | (+.f64 x (*.f64 y (neg.f64 z))) |
| 1× | batch-egg-rewrite |
| 1518× | bool.json-1 |
| 1518× | bool.json-2 |
| 1464× | rational.json-1 |
| 1464× | rational.json-2 |
| 1464× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 17 |
| 1 | 92 | 17 |
| 2 | 256 | 17 |
| 3 | 555 | 17 |
| 4 | 1207 | 17 |
| 5 | 2768 | 17 |
| 6 | 5789 | 17 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 x (*.f64 y (neg.f64 z))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 y (neg.f64 z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 y (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y (*.f64 z -1/2)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 y (*.f64 z -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 y (*.f64 z -2)) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x x) (*.f64 y (*.f64 z -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8)) (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 x (*.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 x (*.f64 y (neg.f64 z))) (+.f64 x (*.f64 y (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 x (*.f64 y (neg.f64 z))) (+.f64 x (*.f64 y (neg.f64 z)))))))) |
| 1× | egg-herbie |
| 3362× | rational.json-simplify-48 |
| 3116× | rational.json-simplify-1 |
| 1518× | rational.json-simplify-35 |
| 1232× | rational.json-simplify-2 |
| 1054× | rational.json-simplify-49 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 62 | 903 |
| 1 | 121 | 903 |
| 2 | 294 | 903 |
| 3 | 666 | 903 |
| 4 | 1053 | 903 |
| 5 | 2430 | 903 |
| 6 | 3294 | 903 |
| 7 | 3445 | 903 |
| 8 | 3626 | 903 |
| 9 | 4007 | 903 |
| 10 | 4364 | 903 |
| 11 | 4514 | 903 |
| 12 | 4610 | 903 |
| 13 | 4653 | 903 |
| 14 | 4692 | 903 |
| 15 | 4731 | 903 |
| 16 | 4770 | 903 |
| 17 | 4809 | 903 |
| 18 | 4871 | 903 |
| 19 | 5665 | 903 |
| 20 | 5719 | 903 |
| 21 | 5768 | 903 |
| 22 | 6307 | 903 |
| 23 | 6448 | 903 |
| 24 | 7031 | 903 |
| 25 | 7817 | 903 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(-.f64 (+.f64 x (*.f64 y (neg.f64 z))) 0) |
(*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1) |
(*.f64 1 (+.f64 x (*.f64 y (neg.f64 z)))) |
(*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1/2)) |
(*.f64 2 (+.f64 (*.f64 y (*.f64 z -1/2)) (*.f64 x 1/2))) |
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 y (*.f64 z -1/2)))) |
(*.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2) 1/2) |
(*.f64 4 (/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4)) |
(*.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 1/4) |
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2)) |
(*.f64 1/2 (+.f64 (*.f64 y (*.f64 z -2)) (+.f64 x x))) |
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 y (*.f64 z -2)))) |
(*.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4)) |
(*.f64 (/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 4) |
(/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1) |
(/.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2) 2) |
(/.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 4) |
(/.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8)) (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8))) 32) |
| Outputs |
|---|
(*.f64 -1 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(neg.f64 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 -1 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(neg.f64 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 -1 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(neg.f64 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 -1 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(neg.f64 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 -1 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(neg.f64 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(-.f64 (+.f64 x (*.f64 y (neg.f64 z))) 0) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 1 (+.f64 x (*.f64 y (neg.f64 z)))) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1/2)) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 2 (+.f64 (*.f64 y (*.f64 z -1/2)) (*.f64 x 1/2))) |
(*.f64 2 (+.f64 (*.f64 (*.f64 y z) -1/2) (*.f64 x 1/2))) |
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 y (*.f64 z -1/2)))) |
(*.f64 2 (+.f64 (*.f64 y (*.f64 z -1/2)) (*.f64 x 1/2))) |
(*.f64 2 (+.f64 (*.f64 (*.f64 y z) -1/2) (*.f64 x 1/2))) |
(*.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2) 1/2) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 4 (/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4)) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 1/4) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2)) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 1/2 (+.f64 (*.f64 y (*.f64 z -2)) (+.f64 x x))) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 y (*.f64 z -2)))) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1/2) 2) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4)) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(*.f64 (/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 4) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(/.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2) 2) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(/.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 4) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(/.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8) 8) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8)) 16) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8)) (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8))) 32) |
(+.f64 (*.f64 y (neg.f64 z)) x) |
(+.f64 (neg.f64 (*.f64 y z)) x) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (sin.f64 (neg.f64 y)) |
| ✓ | 0.2b | (*.f64 z (sin.f64 (neg.f64 y))) |
Compiled 15 to 6 computations (60% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | 0 | (*.f64 z (sin.f64 (neg.f64 y))) |
| 0.0ms | y | @ | 0 | (*.f64 z (sin.f64 (neg.f64 y))) |
| 0.0ms | z | @ | inf | (*.f64 z (sin.f64 (neg.f64 y))) |
| 0.0ms | y | @ | inf | (*.f64 z (sin.f64 (neg.f64 y))) |
| 0.0ms | z | @ | -inf | (*.f64 z (sin.f64 (neg.f64 y))) |
| 1× | batch-egg-rewrite |
| 1100× | bool.json-1 |
| 1100× | bool.json-2 |
| 1062× | rational.json-1 |
| 1062× | rational.json-2 |
| 1062× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 24 |
| 1 | 88 | 24 |
| 2 | 283 | 24 |
| 3 | 647 | 24 |
| 4 | 1465 | 24 |
| 5 | 3559 | 24 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (sin.f64 (neg.f64 y))) |
(sin.f64 (neg.f64 y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (neg.f64 (sin.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 (sin.f64 y) -1/2)) (*.f64 z (*.f64 (sin.f64 y) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (neg.f64 (sin.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (neg.f64 (sin.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (*.f64 z -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (sin.f64 y) -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8)) (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 z (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (neg.f64 (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (neg.f64 (sin.f64 y))) (*.f64 z (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (neg.f64 (sin.f64 y))) (*.f64 z (neg.f64 (sin.f64 y)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (sin.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 -1 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) -1/2) (*.f64 (sin.f64 y) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (+.f64 -1 (sin.f64 y))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (neg.f64 (sin.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (+.f64 -1 (sin.f64 y)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (-.f64 (sin.f64 y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (+.f64 -1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 1 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 y) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (/.f64 (sin.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sin.f64 y) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) -4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sin.f64 y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (*.f64 (sin.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 y) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sin.f64 y) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 y) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (sin.f64 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) (*.f64 2 (*.f64 (sin.f64 y) 4))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) (neg.f64 (*.f64 (sin.f64 y) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) -1) 8)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (neg.f64 (sin.f64 y)) (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (neg.f64 (sin.f64 y)) (neg.f64 (sin.f64 y))))))) |
| 1× | egg-herbie |
| 2556× | rational.json-simplify-2 |
| 1802× | rational.json-simplify-35 |
| 1558× | rational.json-simplify-52 |
| 928× | rational.json-simplify-1 |
| 836× | rational.json-simplify-43 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 135 | 1115 |
| 1 | 300 | 973 |
| 2 | 670 | 973 |
| 3 | 2317 | 973 |
| 4 | 3421 | 973 |
| 5 | 4116 | 973 |
| 6 | 5253 | 973 |
| 7 | 5845 | 973 |
| 8 | 6533 | 973 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))) |
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))) |
(+.f64 (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))))) |
(*.f64 (sin.f64 (*.f64 -1 y)) z) |
(*.f64 (sin.f64 (*.f64 -1 y)) z) |
(*.f64 (sin.f64 (*.f64 -1 y)) z) |
(*.f64 (sin.f64 (*.f64 -1 y)) z) |
(*.f64 -1 y) |
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)) |
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))) |
(+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)))) |
(sin.f64 (*.f64 -1 y)) |
(sin.f64 (*.f64 -1 y)) |
(sin.f64 (*.f64 -1 y)) |
(sin.f64 (*.f64 -1 y)) |
(+.f64 (*.f64 z (neg.f64 (sin.f64 y))) 0) |
(+.f64 0 (*.f64 z (neg.f64 (sin.f64 y)))) |
(+.f64 (*.f64 z (*.f64 (sin.f64 y) -1/2)) (*.f64 z (*.f64 (sin.f64 y) -1/2))) |
(-.f64 (*.f64 z (neg.f64 (sin.f64 y))) 0) |
(/.f64 (*.f64 z (neg.f64 (sin.f64 y))) 1) |
(/.f64 (*.f64 (sin.f64 y) (*.f64 z -2)) 2) |
(/.f64 (*.f64 z (*.f64 (sin.f64 y) -4)) 4) |
(/.f64 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8)) (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8))) 32) |
(neg.f64 (*.f64 z (sin.f64 y))) |
(+.f64 (neg.f64 (sin.f64 y)) 0) |
(+.f64 0 (neg.f64 (sin.f64 y))) |
(+.f64 -1 (-.f64 1 (sin.f64 y))) |
(+.f64 (-.f64 1 (sin.f64 y)) -1) |
(+.f64 -2 (-.f64 1 (+.f64 -1 (sin.f64 y)))) |
(+.f64 (*.f64 (sin.f64 y) -1/2) (*.f64 (sin.f64 y) -1/2)) |
(+.f64 (-.f64 1 (+.f64 -1 (sin.f64 y))) -2) |
(-.f64 (neg.f64 (sin.f64 y)) 0) |
(-.f64 0 (sin.f64 y)) |
(-.f64 0 (-.f64 (+.f64 -1 (sin.f64 y)) -1)) |
(-.f64 1 (-.f64 (sin.f64 y) -1)) |
(-.f64 -1 (+.f64 -1 (sin.f64 y))) |
(-.f64 (-.f64 1 (sin.f64 y)) 1) |
(*.f64 (neg.f64 (sin.f64 y)) 1) |
(*.f64 1 (neg.f64 (sin.f64 y))) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 (sin.f64 y) -1) |
(*.f64 2 (*.f64 (sin.f64 y) -1/2)) |
(*.f64 -2 (/.f64 (sin.f64 y) 2)) |
(*.f64 (*.f64 (sin.f64 y) -2) 1/2) |
(*.f64 4 (/.f64 (sin.f64 y) -4)) |
(*.f64 (*.f64 (sin.f64 y) 2) -1/2) |
(*.f64 (*.f64 (sin.f64 y) -4) 1/4) |
(*.f64 1/2 (*.f64 (sin.f64 y) -2)) |
(*.f64 (*.f64 (sin.f64 y) -1/2) 2) |
(*.f64 -1/2 (*.f64 (sin.f64 y) 2)) |
(*.f64 (/.f64 (sin.f64 y) 2) -2) |
(*.f64 1/4 (*.f64 (sin.f64 y) -4)) |
(*.f64 (/.f64 (sin.f64 y) -4) 4) |
(/.f64 (neg.f64 (sin.f64 y)) 1) |
(/.f64 (sin.f64 y) -1) |
(/.f64 (*.f64 (sin.f64 y) -2) 2) |
(/.f64 (*.f64 (sin.f64 y) 2) -2) |
(/.f64 (*.f64 (sin.f64 y) -4) 4) |
(/.f64 (*.f64 (sin.f64 y) 4) -4) |
(/.f64 (*.f64 (neg.f64 (sin.f64 y)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) -8) |
(/.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) 16) |
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) 4) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) (*.f64 2 (*.f64 (sin.f64 y) 4))) -16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8))) 32) |
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) (neg.f64 (*.f64 (sin.f64 y) 4))) 8) |
(/.f64 (/.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) -1) 8) |
(neg.f64 (sin.f64 y)) |
| Outputs |
|---|
(*.f64 -1 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 z (pow.f64 y 3)))) |
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 z (*.f64 1/6 (pow.f64 y 3)))) |
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6))) |
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 1/6 (*.f64 z (pow.f64 y 3)))) |
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))) |
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 1/6 (*.f64 z (pow.f64 y 3))) (*.f64 (pow.f64 y 5) (*.f64 z -1/120)))) |
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 z (*.f64 1/6 (pow.f64 y 3))) (*.f64 -1/120 (*.f64 z (pow.f64 y 5))))) |
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 (pow.f64 y 5) (*.f64 z -1/120)))) |
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 1/6 (*.f64 z (pow.f64 y 3))) (*.f64 z (*.f64 -1/120 (pow.f64 y 5))))) |
(+.f64 (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))))) |
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (+.f64 (*.f64 1/6 (*.f64 z (pow.f64 y 3))) (*.f64 (pow.f64 y 5) (*.f64 z -1/120))) (*.f64 1/5040 (*.f64 z (pow.f64 y 7))))) |
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (+.f64 (*.f64 z (*.f64 1/6 (pow.f64 y 3))) (*.f64 -1/120 (*.f64 z (pow.f64 y 5)))) (*.f64 z (*.f64 1/5040 (pow.f64 y 7))))) |
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (+.f64 (*.f64 (pow.f64 y 5) (*.f64 z -1/120)) (*.f64 (pow.f64 y 7) (*.f64 z 1/5040))))) |
(+.f64 (+.f64 (*.f64 y (neg.f64 z)) (*.f64 1/6 (*.f64 z (pow.f64 y 3)))) (+.f64 (*.f64 z (*.f64 -1/120 (pow.f64 y 5))) (*.f64 1/5040 (*.f64 z (pow.f64 y 7))))) |
(*.f64 (sin.f64 (*.f64 -1 y)) z) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 (*.f64 -1 y)) z) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 (*.f64 -1 y)) z) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 (*.f64 -1 y)) z) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 -1 y) |
(neg.f64 y) |
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)) |
(+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) |
(+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))) |
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))) |
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (*.f64 -1 y) (*.f64 -1/120 (pow.f64 y 5)))) |
(+.f64 (neg.f64 y) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5)))) |
(+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)))) |
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) (*.f64 1/5040 (pow.f64 y 7)))) |
(+.f64 (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))) (+.f64 (*.f64 1/5040 (pow.f64 y 7)) (*.f64 -1/120 (pow.f64 y 5)))) |
(+.f64 (neg.f64 y) (+.f64 (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5))) (*.f64 1/5040 (pow.f64 y 7)))) |
(+.f64 (neg.f64 y) (+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5))))) |
(+.f64 (neg.f64 y) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (*.f64 1/5040 (pow.f64 y 7))))) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(+.f64 (*.f64 z (neg.f64 (sin.f64 y))) 0) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(+.f64 0 (*.f64 z (neg.f64 (sin.f64 y)))) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(+.f64 (*.f64 z (*.f64 (sin.f64 y) -1/2)) (*.f64 z (*.f64 (sin.f64 y) -1/2))) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(-.f64 (*.f64 z (neg.f64 (sin.f64 y))) 0) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(/.f64 (*.f64 z (neg.f64 (sin.f64 y))) 1) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(/.f64 (*.f64 (sin.f64 y) (*.f64 z -2)) 2) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(/.f64 (*.f64 z (*.f64 (sin.f64 y) -4)) 4) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(/.f64 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8) 8) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(/.f64 (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8)) 16) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8)) (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8))) 32) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(neg.f64 (*.f64 z (sin.f64 y))) |
(*.f64 z (sin.f64 (*.f64 -1 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(+.f64 (neg.f64 (sin.f64 y)) 0) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(+.f64 0 (neg.f64 (sin.f64 y))) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(+.f64 -1 (-.f64 1 (sin.f64 y))) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(+.f64 (-.f64 1 (sin.f64 y)) -1) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(+.f64 -2 (-.f64 1 (+.f64 -1 (sin.f64 y)))) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(+.f64 (*.f64 (sin.f64 y) -1/2) (*.f64 (sin.f64 y) -1/2)) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(+.f64 (-.f64 1 (+.f64 -1 (sin.f64 y))) -2) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(-.f64 (neg.f64 (sin.f64 y)) 0) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(-.f64 0 (sin.f64 y)) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(-.f64 0 (-.f64 (+.f64 -1 (sin.f64 y)) -1)) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(-.f64 1 (-.f64 (sin.f64 y) -1)) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(-.f64 -1 (+.f64 -1 (sin.f64 y))) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(-.f64 (-.f64 1 (sin.f64 y)) 1) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (neg.f64 (sin.f64 y)) 1) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 1 (neg.f64 (sin.f64 y))) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (sin.f64 y) -1) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 2 (*.f64 (sin.f64 y) -1/2)) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -2 (/.f64 (sin.f64 y) 2)) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (*.f64 (sin.f64 y) -2) 1/2) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 4 (/.f64 (sin.f64 y) -4)) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (*.f64 (sin.f64 y) 2) -1/2) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (*.f64 (sin.f64 y) -4) 1/4) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 1/2 (*.f64 (sin.f64 y) -2)) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (*.f64 (sin.f64 y) -1/2) 2) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1/2 (*.f64 (sin.f64 y) 2)) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (/.f64 (sin.f64 y) 2) -2) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 1/4 (*.f64 (sin.f64 y) -4)) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (/.f64 (sin.f64 y) -4) 4) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(/.f64 (neg.f64 (sin.f64 y)) 1) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(/.f64 (sin.f64 y) -1) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) -2) 2) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) 2) -2) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) -4) 4) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) 4) -4) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (neg.f64 (sin.f64 y)) 8) 8) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) -8) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) 16) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) 4) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) (*.f64 2 (*.f64 (sin.f64 y) 4))) -16) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8))) 32) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) (neg.f64 (*.f64 (sin.f64 y) 4))) 8) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(/.f64 (/.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) -1) 8) |
(sin.f64 (*.f64 -1 y)) |
(neg.f64 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(sin.f64 (*.f64 -1 y)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (sin.f64 y) | |
| 0.2b | (*.f64 z (sin.f64 y)) |
Compiled 18 to 6 computations (66.7% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (cos.f64 y) |
| 0.1b | (*.f64 x (cos.f64 y)) |
Compiled 23 to 7 computations (69.6% saved)
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (cos.f64 y) |
| 0.0ms | y | @ | inf | (cos.f64 y) |
| 0.0ms | y | @ | -inf | (cos.f64 y) |
| 1× | batch-egg-rewrite |
| 1670× | bool.json-1 |
| 1670× | bool.json-2 |
| 1608× | rational.json-1 |
| 1078× | rational.json-simplify-2 |
| 1018× | bool.json-3 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 4 | 5 |
| 1 | 44 | 5 |
| 2 | 161 | 5 |
| 3 | 370 | 5 |
| 4 | 781 | 5 |
| 5 | 1691 | 5 |
| 6 | 3727 | 5 |
| 7 | 6964 | 5 |
| 1× | node limit |
| Inputs |
|---|
(cos.f64 y) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 y) 1/2) (*.f64 (cos.f64 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (cos.f64 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (cos.f64 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 y) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (cos.f64 y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 1/2 (*.f64 (cos.f64 y) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 y) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (cos.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 y) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (cos.f64 y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cos.f64 y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (*.f64 (cos.f64 y) 1/2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cos.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (cos.f64 y) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8))) (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x and (cos.f64 y) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x or (cos.f64 y) (cos.f64 y)))))) |
| 1× | egg-herbie |
| 2144× | rational.json-simplify-2 |
| 1700× | rational.json-simplify-35 |
| 1692× | rational.json-simplify-1 |
| 1322× | rational.json-simplify-49 |
| 926× | rational.json-simplify-51 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 61 | 227 |
| 1 | 124 | 227 |
| 2 | 298 | 227 |
| 3 | 723 | 227 |
| 4 | 1165 | 227 |
| 5 | 2333 | 227 |
| 6 | 3001 | 227 |
| 7 | 3081 | 227 |
| 8 | 3162 | 227 |
| 9 | 3259 | 227 |
| 10 | 3367 | 227 |
| 11 | 3649 | 227 |
| 12 | 3811 | 227 |
| 13 | 3902 | 227 |
| 14 | 3987 | 227 |
| 15 | 4070 | 227 |
| 16 | 4154 | 227 |
| 17 | 5311 | 227 |
| 18 | 5840 | 227 |
| 19 | 7173 | 227 |
| 20 | 7826 | 227 |
| 1× | node limit |
| Inputs |
|---|
1 |
(+.f64 1 (*.f64 -1/2 (pow.f64 y 2))) |
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4)))) |
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4))))) |
(+.f64 (cos.f64 y) 0) |
(+.f64 0 (cos.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) 1/2) (*.f64 (cos.f64 y) 1/2)) |
(-.f64 (cos.f64 y) 0) |
(*.f64 (cos.f64 y) 1) |
(*.f64 1 (cos.f64 y)) |
(*.f64 2 (*.f64 (cos.f64 y) 1/2)) |
(*.f64 (*.f64 (cos.f64 y) 2) 1/2) |
(*.f64 4 (/.f64 (cos.f64 y) 4)) |
(*.f64 4 (*.f64 1/2 (*.f64 (cos.f64 y) 1/2))) |
(*.f64 (*.f64 (cos.f64 y) 4) 1/4) |
(*.f64 1/2 (*.f64 (cos.f64 y) 2)) |
(*.f64 (*.f64 (cos.f64 y) 1/2) 2) |
(*.f64 1/4 (*.f64 (cos.f64 y) 4)) |
(*.f64 (/.f64 (cos.f64 y) 4) 4) |
(*.f64 (*.f64 1/2 (*.f64 (cos.f64 y) 1/2)) 4) |
(/.f64 (cos.f64 y) 1) |
(/.f64 (*.f64 (cos.f64 y) 2) 2) |
(/.f64 (*.f64 (cos.f64 y) 4) 4) |
(/.f64 (*.f64 (cos.f64 y) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (cos.f64 y) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8))) (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8)))) 64) |
| Outputs |
|---|
1 |
(+.f64 1 (*.f64 -1/2 (pow.f64 y 2))) |
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4)))) |
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4))))) |
(+.f64 1 (+.f64 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4))) (*.f64 -1/720 (pow.f64 y 6)))) |
(+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (+.f64 1 (*.f64 1/24 (pow.f64 y 4))) (*.f64 -1/720 (pow.f64 y 6)))) |
(+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (*.f64 1/24 (pow.f64 y 4))))) |
(+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) (+.f64 1 (*.f64 -1/720 (pow.f64 y 6))))) |
(+.f64 (*.f64 1/24 (pow.f64 y 4)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 1 (*.f64 -1/720 (pow.f64 y 6))))) |
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) (*.f64 -1/720 (pow.f64 y 6))))) |
(+.f64 (cos.f64 y) 0) |
(cos.f64 y) |
(+.f64 0 (cos.f64 y)) |
(cos.f64 y) |
(+.f64 (*.f64 (cos.f64 y) 1/2) (*.f64 (cos.f64 y) 1/2)) |
(cos.f64 y) |
(-.f64 (cos.f64 y) 0) |
(cos.f64 y) |
(*.f64 (cos.f64 y) 1) |
(cos.f64 y) |
(*.f64 1 (cos.f64 y)) |
(cos.f64 y) |
(*.f64 2 (*.f64 (cos.f64 y) 1/2)) |
(cos.f64 y) |
(*.f64 (*.f64 (cos.f64 y) 2) 1/2) |
(cos.f64 y) |
(*.f64 4 (/.f64 (cos.f64 y) 4)) |
(cos.f64 y) |
(*.f64 4 (*.f64 1/2 (*.f64 (cos.f64 y) 1/2))) |
(cos.f64 y) |
(*.f64 (*.f64 (cos.f64 y) 4) 1/4) |
(cos.f64 y) |
(*.f64 1/2 (*.f64 (cos.f64 y) 2)) |
(cos.f64 y) |
(*.f64 (*.f64 (cos.f64 y) 1/2) 2) |
(cos.f64 y) |
(*.f64 1/4 (*.f64 (cos.f64 y) 4)) |
(cos.f64 y) |
(*.f64 (/.f64 (cos.f64 y) 4) 4) |
(cos.f64 y) |
(*.f64 (*.f64 1/2 (*.f64 (cos.f64 y) 1/2)) 4) |
(cos.f64 y) |
(/.f64 (cos.f64 y) 1) |
(cos.f64 y) |
(/.f64 (*.f64 (cos.f64 y) 2) 2) |
(cos.f64 y) |
(/.f64 (*.f64 (cos.f64 y) 4) 4) |
(cos.f64 y) |
(/.f64 (*.f64 (cos.f64 y) 8) 8) |
(cos.f64 y) |
(/.f64 (*.f64 2 (*.f64 (cos.f64 y) 8)) 16) |
(cos.f64 y) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8))) 32) |
(cos.f64 y) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8))) (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8)))) 64) |
(cos.f64 y) |
Compiled 5967 to 3369 computations (43.5% saved)
10 alts after pruning (6 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 401 | 6 | 407 |
| Fresh | 1 | 0 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 2 | 3 | 5 |
| Total | 404 | 10 | 414 |
| Status | Error | Program |
|---|---|---|
| ▶ | 26.0b | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1))) |
| ✓ | 0.1b | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
| ✓ | 23.4b | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y)) |
| ✓ | 16.7b | (-.f64 x (*.f64 z (sin.f64 y))) |
| ▶ | 34.2b | (-.f64 x (*.f64 z y)) |
| ▶ | 44.4b | (*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1)) |
| ▶ | 44.4b | (*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1))) |
| ✓ | 36.9b | (*.f64 z (sin.f64 (neg.f64 y))) |
| ▶ | 54.1b | (*.f64 z (neg.f64 y)) |
| 41.8b | x |
Compiled 144 to 106 computations (26.4% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (cos.f64 y) | |
| 0.1b | (*.f64 x (cos.f64 y)) |
Compiled 32 to 19 computations (40.6% saved)
Compiled 11 to 5 computations (54.5% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (-.f64 x (*.f64 z y)) |
Compiled 14 to 5 computations (64.3% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | 0 | (-.f64 x (*.f64 z y)) |
| 0.0ms | y | @ | -inf | (-.f64 x (*.f64 z y)) |
| 0.0ms | z | @ | -inf | (-.f64 x (*.f64 z y)) |
| 0.0ms | z | @ | inf | (-.f64 x (*.f64 z y)) |
| 0.0ms | z | @ | 0 | (-.f64 x (*.f64 z y)) |
| 1× | batch-egg-rewrite |
| 1320× | bool.json-1 |
| 1320× | bool.json-2 |
| 1278× | rational.json-1 |
| 1278× | rational.json-2 |
| 1278× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 69 | 13 |
| 2 | 197 | 13 |
| 3 | 429 | 13 |
| 4 | 883 | 13 |
| 5 | 1945 | 13 |
| 6 | 4435 | 13 |
| 7 | 7956 | 13 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 x (*.f64 z y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (neg.f64 (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 z y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 x (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 z y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 x (-.f64 1 (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (-.f64 1 (*.f64 z y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (-.f64 1 (*.f64 z y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x (*.f64 z y)) 1/2) (*.f64 (-.f64 x (*.f64 z y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 2 (-.f64 (*.f64 z y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 x (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x (*.f64 z y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 z y) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 x (*.f64 z y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (-.f64 (/.f64 x 4) (/.f64 (*.f64 z y) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x (*.f64 z y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 z y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 x (*.f64 z y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x (*.f64 z y)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 x (*.f64 z y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (-.f64 (*.f64 x 4) (*.f64 z (*.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x (*.f64 z y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (*.f64 z y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 z y) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (*.f64 z y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (*.f64 z y) x)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (*.f64 z y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 z y) x) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 z y) x) 4)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4)) (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 z y) x))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 x (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 x (*.f64 z y)) (-.f64 x (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 x (*.f64 z y)) (-.f64 x (*.f64 z y))))))) |
| 1× | egg-herbie |
| 1986× | rational.json-simplify-35 |
| 1902× | rational.json-simplify-1 |
| 1816× | rational.json-simplify-2 |
| 1310× | rational.json-simplify-52 |
| 898× | rational.json-simplify-41 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 88 | 1037 |
| 1 | 189 | 1037 |
| 2 | 422 | 1037 |
| 3 | 967 | 1037 |
| 4 | 1854 | 1037 |
| 5 | 3006 | 1037 |
| 6 | 3662 | 1037 |
| 7 | 3810 | 1037 |
| 8 | 3922 | 1037 |
| 9 | 4058 | 1037 |
| 10 | 4262 | 1037 |
| 11 | 4757 | 1037 |
| 12 | 5852 | 1037 |
| 13 | 6573 | 1037 |
| 14 | 7546 | 1037 |
| 15 | 7598 | 1037 |
| 16 | 7611 | 1037 |
| 17 | 7611 | 1037 |
| 18 | 7611 | 1037 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 z y))) |
(+.f64 (-.f64 x (*.f64 z y)) 0) |
(+.f64 0 (-.f64 x (*.f64 z y))) |
(+.f64 (neg.f64 (*.f64 z y)) x) |
(+.f64 -1 (+.f64 x (-.f64 1 (*.f64 z y)))) |
(+.f64 -1 (+.f64 (-.f64 1 (*.f64 z y)) x)) |
(+.f64 (+.f64 x (-.f64 1 (*.f64 z y))) -1) |
(+.f64 (*.f64 (-.f64 x (*.f64 z y)) 1/2) (*.f64 (-.f64 x (*.f64 z y)) 1/2)) |
(+.f64 -2 (-.f64 2 (-.f64 (*.f64 z y) x))) |
(*.f64 (-.f64 x (*.f64 z y)) 1) |
(*.f64 1 (-.f64 x (*.f64 z y))) |
(*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 1/2)) |
(*.f64 (*.f64 (-.f64 x (*.f64 z y)) 2) 1/2) |
(*.f64 (-.f64 (*.f64 z y) x) -1) |
(*.f64 4 (/.f64 (-.f64 x (*.f64 z y)) 4)) |
(*.f64 4 (-.f64 (/.f64 x 4) (/.f64 (*.f64 z y) 4))) |
(*.f64 (*.f64 (-.f64 x (*.f64 z y)) 4) 1/4) |
(*.f64 -1 (-.f64 (*.f64 z y) x)) |
(*.f64 1/2 (*.f64 (-.f64 x (*.f64 z y)) 2)) |
(*.f64 (*.f64 (-.f64 x (*.f64 z y)) 1/2) 2) |
(*.f64 1/4 (*.f64 (-.f64 x (*.f64 z y)) 4)) |
(*.f64 1/4 (-.f64 (*.f64 x 4) (*.f64 z (*.f64 y 4)))) |
(*.f64 (/.f64 (-.f64 x (*.f64 z y)) 4) 4) |
(/.f64 (-.f64 x (*.f64 z y)) 1) |
(/.f64 (*.f64 (-.f64 x (*.f64 z y)) 2) 2) |
(/.f64 (-.f64 (*.f64 z y) x) -1) |
(/.f64 (*.f64 (-.f64 x (*.f64 z y)) 4) 4) |
(/.f64 (*.f64 2 (-.f64 (*.f64 z y) x)) -2) |
(/.f64 (*.f64 (-.f64 x (*.f64 z y)) 8) 8) |
(/.f64 (*.f64 (-.f64 (*.f64 z y) x) 4) -4) |
(/.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 z y) x) 4)) -8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8))) 32) |
(/.f64 (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4)) 4) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8)))) 64) |
(/.f64 (+.f64 (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4)) (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4))) 8) |
(neg.f64 (-.f64 (*.f64 z y) x)) |
| Outputs |
|---|
(*.f64 -1 (*.f64 y z)) |
(neg.f64 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(*.f64 z (neg.f64 y)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 y z)) |
(neg.f64 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(*.f64 z (neg.f64 y)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 y z)) |
(neg.f64 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(*.f64 z (neg.f64 y)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
x |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 y z)) |
(neg.f64 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(*.f64 z (neg.f64 y)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 y z)) |
(neg.f64 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(*.f64 z (neg.f64 y)) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 x (neg.f64 (*.f64 z y))) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (-.f64 x (*.f64 z y)) 0) |
(-.f64 x (*.f64 y z)) |
(+.f64 0 (-.f64 x (*.f64 z y))) |
(-.f64 x (*.f64 y z)) |
(+.f64 (neg.f64 (*.f64 z y)) x) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 -1 (+.f64 x (-.f64 1 (*.f64 z y)))) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 -1 (+.f64 (-.f64 1 (*.f64 z y)) x)) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (+.f64 x (-.f64 1 (*.f64 z y))) -1) |
(+.f64 x (neg.f64 (*.f64 y z))) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(+.f64 x (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 (-.f64 x (*.f64 z y)) 1/2) (*.f64 (-.f64 x (*.f64 z y)) 1/2)) |
(-.f64 x (*.f64 y z)) |
(+.f64 -2 (-.f64 2 (-.f64 (*.f64 z y) x))) |
(-.f64 x (*.f64 y z)) |
(*.f64 (-.f64 x (*.f64 z y)) 1) |
(-.f64 x (*.f64 y z)) |
(*.f64 1 (-.f64 x (*.f64 z y))) |
(-.f64 x (*.f64 y z)) |
(*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 1/2)) |
(-.f64 x (*.f64 y z)) |
(*.f64 (*.f64 (-.f64 x (*.f64 z y)) 2) 1/2) |
(-.f64 x (*.f64 y z)) |
(*.f64 (-.f64 (*.f64 z y) x) -1) |
(-.f64 x (*.f64 y z)) |
(*.f64 4 (/.f64 (-.f64 x (*.f64 z y)) 4)) |
(-.f64 x (*.f64 y z)) |
(*.f64 4 (-.f64 (/.f64 x 4) (/.f64 (*.f64 z y) 4))) |
(*.f64 4 (-.f64 (/.f64 x 4) (*.f64 y (/.f64 z 4)))) |
(*.f64 4 (-.f64 (/.f64 x 4) (/.f64 (*.f64 y z) 4))) |
(*.f64 (*.f64 (-.f64 x (*.f64 z y)) 4) 1/4) |
(-.f64 x (*.f64 y z)) |
(*.f64 -1 (-.f64 (*.f64 z y) x)) |
(-.f64 x (*.f64 y z)) |
(*.f64 1/2 (*.f64 (-.f64 x (*.f64 z y)) 2)) |
(-.f64 x (*.f64 y z)) |
(*.f64 (*.f64 (-.f64 x (*.f64 z y)) 1/2) 2) |
(-.f64 x (*.f64 y z)) |
(*.f64 1/4 (*.f64 (-.f64 x (*.f64 z y)) 4)) |
(-.f64 x (*.f64 y z)) |
(*.f64 1/4 (-.f64 (*.f64 x 4) (*.f64 z (*.f64 y 4)))) |
(-.f64 x (*.f64 y z)) |
(*.f64 (/.f64 (-.f64 x (*.f64 z y)) 4) 4) |
(-.f64 x (*.f64 y z)) |
(/.f64 (-.f64 x (*.f64 z y)) 1) |
(-.f64 x (*.f64 y z)) |
(/.f64 (*.f64 (-.f64 x (*.f64 z y)) 2) 2) |
(-.f64 x (*.f64 y z)) |
(/.f64 (-.f64 (*.f64 z y) x) -1) |
(-.f64 x (*.f64 y z)) |
(/.f64 (*.f64 (-.f64 x (*.f64 z y)) 4) 4) |
(-.f64 x (*.f64 y z)) |
(/.f64 (*.f64 2 (-.f64 (*.f64 z y) x)) -2) |
(-.f64 x (*.f64 y z)) |
(/.f64 (*.f64 (-.f64 x (*.f64 z y)) 8) 8) |
(-.f64 x (*.f64 y z)) |
(/.f64 (*.f64 (-.f64 (*.f64 z y) x) 4) -4) |
(-.f64 x (*.f64 y z)) |
(/.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8)) 16) |
(-.f64 x (*.f64 y z)) |
(/.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 z y) x) 4)) -8) |
(-.f64 x (*.f64 y z)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8))) 32) |
(-.f64 x (*.f64 y z)) |
(/.f64 (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4)) 4) |
(-.f64 x (*.f64 y z)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8)))) 64) |
(-.f64 x (*.f64 y z)) |
(/.f64 (+.f64 (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4)) (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4))) 8) |
(-.f64 x (*.f64 y z)) |
(neg.f64 (-.f64 (*.f64 z y) x)) |
(-.f64 x (*.f64 y z)) |
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (sin.f64 y) | |
| ✓ | 0.2b | (*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1))) |
| ✓ | 0.5b | (-.f64 (sin.f64 y) -1) |
| ✓ | 3.4b | (-.f64 1 (-.f64 (sin.f64 y) -1)) |
Compiled 27 to 17 computations (37% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | inf | (*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1))) |
| 0.0ms | z | @ | 0 | (*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1))) |
| 0.0ms | y | @ | -inf | (*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1))) |
| 0.0ms | y | @ | 0 | (*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1))) |
| 0.0ms | y | @ | 0 | (-.f64 1 (-.f64 (sin.f64 y) -1)) |
| 1× | batch-egg-rewrite |
| 1930× | bool.json-1 |
| 1930× | bool.json-2 |
| 938× | rational.json-1 |
| 938× | rational.json-2 |
| 938× | rational.json-4 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 51 |
| 1 | 118 | 51 |
| 2 | 330 | 35 |
| 3 | 669 | 35 |
| 4 | 1383 | 35 |
| 5 | 3195 | 35 |
| 6 | 7220 | 35 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 1 (-.f64 (sin.f64 y) -1)) |
(-.f64 (sin.f64 y) -1) |
(*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 (neg.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sin.f64 (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (sin.f64 y) -2) (/.f64 (sin.f64 y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sin.f64 (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 (neg.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (sin.f64 y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sin.f64 y) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 (neg.f64 y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sin.f64 y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (neg.f64 (*.f64 (sin.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (sin.f64 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sin.f64 (neg.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 y) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 1/2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 y) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 (neg.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 (neg.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 (neg.f64 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 8) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8)) (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) (neg.f64 (*.f64 (sin.f64 y) 2))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) (neg.f64 (*.f64 (sin.f64 y) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) (neg.f64 (*.f64 (sin.f64 y) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -1) 16)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 y (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (+.f64 y (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (*.f64 (PI.f64) 2) y))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sin.f64 (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sin.f64 (neg.f64 y)) (sin.f64 (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sin.f64 (neg.f64 y)) (sin.f64 (neg.f64 y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (sin.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (sin.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 y) -1) 2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 2 (+.f64 (sin.f64 y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 y) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 y) -2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (+.f64 (sin.f64 y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) (*.f64 (+.f64 1 (sin.f64 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 y) 3) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 3 (+.f64 (sin.f64 y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (*.f64 (sin.f64 y) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 1 (sin.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 2 (*.f64 (sin.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 1 (sin.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 1 (sin.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 2 (*.f64 (sin.f64 y) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (sin.f64 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 1 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 1 (sin.f64 y)) (+.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 1 (sin.f64 y)) (+.f64 1 (sin.f64 y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 (neg.f64 y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (/.f64 (sin.f64 y) -2)) (*.f64 z (/.f64 (sin.f64 y) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (*.f64 -2 z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 (neg.f64 y)) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 (neg.f64 y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 (neg.f64 y)) z) (*.f64 (sin.f64 (neg.f64 y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 (neg.f64 y)) z) (*.f64 (sin.f64 (neg.f64 y)) z)))))) |
| 1× | egg-herbie |
| 1932× | rational.json-simplify-35 |
| 1126× | rational.json-simplify-51 |
| 1050× | rational.json-simplify-2 |
| 950× | rational.json-simplify-52 |
| 918× | rational.json-simplify-53 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 189 | 1735 |
| 1 | 406 | 1727 |
| 2 | 1007 | 1727 |
| 3 | 2540 | 1703 |
| 4 | 4468 | 1703 |
| 5 | 5307 | 1703 |
| 6 | 6267 | 1703 |
| 7 | 6843 | 1703 |
| 8 | 7393 | 1703 |
| 9 | 7757 | 1703 |
| 10 | 7983 | 1703 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 y) |
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)) |
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))) |
(+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)))) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
1 |
(+.f64 1 y) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 1 y)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 1 (+.f64 y (*.f64 1/120 (pow.f64 y 5))))) |
(+.f64 1 (sin.f64 y)) |
(+.f64 1 (sin.f64 y)) |
(+.f64 1 (sin.f64 y)) |
(+.f64 1 (sin.f64 y)) |
(+.f64 1 (sin.f64 y)) |
(+.f64 1 (sin.f64 y)) |
(+.f64 1 (sin.f64 y)) |
(+.f64 1 (sin.f64 y)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))) |
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))) |
(+.f64 (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(+.f64 -1 (-.f64 1 (sin.f64 y))) |
(+.f64 (sin.f64 (neg.f64 y)) 0) |
(+.f64 0 (sin.f64 (neg.f64 y))) |
(+.f64 (-.f64 1 (sin.f64 y)) -1) |
(+.f64 (/.f64 (sin.f64 y) -2) (/.f64 (sin.f64 y) -2)) |
(*.f64 1 (sin.f64 (neg.f64 y))) |
(*.f64 (sin.f64 y) -1) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 (sin.f64 (neg.f64 y)) 1) |
(*.f64 2 (/.f64 (sin.f64 y) -2)) |
(*.f64 4 (/.f64 (sin.f64 y) -4)) |
(*.f64 (*.f64 (sin.f64 y) -2) 1/2) |
(*.f64 (*.f64 (sin.f64 (neg.f64 y)) 4) 1/4) |
(*.f64 1/2 (*.f64 (sin.f64 y) -2)) |
(*.f64 1/2 (neg.f64 (*.f64 (sin.f64 y) 2))) |
(*.f64 -2 (*.f64 (sin.f64 y) 1/2)) |
(*.f64 1/4 (*.f64 (sin.f64 (neg.f64 y)) 4)) |
(*.f64 (/.f64 (sin.f64 y) -2) 2) |
(*.f64 (*.f64 (sin.f64 y) 1/2) -2) |
(*.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) 1/2) |
(*.f64 (/.f64 (sin.f64 y) -4) 4) |
(/.f64 (sin.f64 y) -1) |
(/.f64 (sin.f64 (neg.f64 y)) 1) |
(/.f64 (*.f64 (sin.f64 y) -2) 2) |
(/.f64 (*.f64 (sin.f64 y) 2) -2) |
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) 4) 4) |
(/.f64 (*.f64 (sin.f64 y) 4) -4) |
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) 8) 8) |
(/.f64 (*.f64 (sin.f64 y) 8) -8) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -16) |
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) 2) |
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) 4) |
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) 8) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8)) (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8))) 32) |
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) (neg.f64 (*.f64 (sin.f64 y) 2))) 4) |
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) (neg.f64 (*.f64 (sin.f64 y) 4))) 8) |
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) (neg.f64 (*.f64 (sin.f64 y) 8))) 16) |
(/.f64 (/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -1) 16) |
(neg.f64 (sin.f64 y)) |
(sin.f64 (-.f64 y (PI.f64))) |
(sin.f64 (neg.f64 y)) |
(sin.f64 (+.f64 y (PI.f64))) |
(sin.f64 (-.f64 (*.f64 (PI.f64) 2) y)) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 -1 (+.f64 (sin.f64 y) 2)) |
(+.f64 (+.f64 1 (sin.f64 y)) 0) |
(+.f64 0 (+.f64 1 (sin.f64 y))) |
(+.f64 (+.f64 (sin.f64 y) -1) 2) |
(+.f64 2 (+.f64 (sin.f64 y) -1)) |
(+.f64 (+.f64 (sin.f64 y) 2) -1) |
(+.f64 (+.f64 (sin.f64 y) -2) 3) |
(+.f64 -2 (+.f64 (sin.f64 y) 3)) |
(+.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) (*.f64 (+.f64 1 (sin.f64 y)) 1/2)) |
(+.f64 (+.f64 (sin.f64 y) 3) -2) |
(+.f64 3 (+.f64 (sin.f64 y) -2)) |
(*.f64 1 (+.f64 1 (sin.f64 y))) |
(*.f64 (+.f64 1 (sin.f64 y)) 1) |
(*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 1/2)) |
(*.f64 (+.f64 2 (*.f64 (sin.f64 y) 2)) 1/2) |
(*.f64 4 (/.f64 (+.f64 1 (sin.f64 y)) 4)) |
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 1/4) |
(*.f64 1/2 (+.f64 2 (*.f64 (sin.f64 y) 2))) |
(*.f64 1/4 (*.f64 (+.f64 1 (sin.f64 y)) 4)) |
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) 2) |
(*.f64 (/.f64 (+.f64 1 (sin.f64 y)) 4) 4) |
(/.f64 (+.f64 1 (sin.f64 y)) 1) |
(/.f64 (+.f64 2 (*.f64 (sin.f64 y) 2)) 2) |
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 4) |
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8))) 32) |
(+.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 0) |
(+.f64 0 (*.f64 (sin.f64 (neg.f64 y)) z)) |
(+.f64 (*.f64 z (/.f64 (sin.f64 y) -2)) (*.f64 z (/.f64 (sin.f64 y) -2))) |
(-.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 0) |
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 1) |
(/.f64 (*.f64 (sin.f64 y) (*.f64 -2 z)) 2) |
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) (*.f64 z 4)) 4) |
(/.f64 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8))) 32) |
| Outputs |
|---|
(*.f64 -1 y) |
(neg.f64 y) |
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)) |
(+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))) |
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))) |
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (neg.f64 y) (*.f64 -1/120 (pow.f64 y 5)))) |
(+.f64 (neg.f64 y) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5)))) |
(+.f64 (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))) (*.f64 -1/120 (pow.f64 y 5))) |
(+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)))) |
(+.f64 (+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (neg.f64 y) (*.f64 -1/120 (pow.f64 y 5)))) (*.f64 1/5040 (pow.f64 y 7))) |
(+.f64 (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (*.f64 1/5040 (pow.f64 y 7)))) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
1 |
(+.f64 1 y) |
(+.f64 y 1) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 1 y)) |
(+.f64 (+.f64 y 1) (*.f64 (pow.f64 y 3) -1/6)) |
(+.f64 y (+.f64 1 (*.f64 (pow.f64 y 3) -1/6))) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 1 (+.f64 y (*.f64 1/120 (pow.f64 y 5))))) |
(+.f64 (*.f64 (pow.f64 y 3) -1/6) (+.f64 y (+.f64 (*.f64 (pow.f64 y 5) 1/120) 1))) |
(+.f64 y (+.f64 (+.f64 1 (*.f64 (pow.f64 y 5) 1/120)) (*.f64 (pow.f64 y 3) -1/6))) |
(+.f64 y (+.f64 (*.f64 (pow.f64 y 3) -1/6) (+.f64 1 (*.f64 (pow.f64 y 5) 1/120)))) |
(+.f64 y (+.f64 (*.f64 (pow.f64 y 5) 1/120) (+.f64 1 (*.f64 (pow.f64 y 3) -1/6)))) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6))) |
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))) |
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 (pow.f64 y 3) (*.f64 1/6 z))) |
(*.f64 z (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3)))) |
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))) |
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)))) |
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 (pow.f64 y 5) (*.f64 -1/120 z)))) |
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 1/6 z)) (*.f64 (pow.f64 y 5) (*.f64 -1/120 z)))) |
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 z (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5))))) |
(+.f64 (*.f64 z (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3)))) (*.f64 (pow.f64 y 5) (*.f64 -1/120 z))) |
(+.f64 (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))))) |
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (+.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 -1/120 (*.f64 (pow.f64 y 5) z))) (*.f64 (pow.f64 y 7) (*.f64 z 1/5040)))) |
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 (pow.f64 y 5) (*.f64 -1/120 z))) (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)))) |
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 1/6 z)) (+.f64 (*.f64 (pow.f64 y 5) (*.f64 -1/120 z)) (*.f64 (pow.f64 y 7) (*.f64 1/5040 z))))) |
(+.f64 (*.f64 z (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3)))) (*.f64 z (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (*.f64 1/5040 (pow.f64 y 7))))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(+.f64 -1 (-.f64 1 (sin.f64 y))) |
(neg.f64 (sin.f64 y)) |
(+.f64 (sin.f64 (neg.f64 y)) 0) |
(neg.f64 (sin.f64 y)) |
(+.f64 0 (sin.f64 (neg.f64 y))) |
(neg.f64 (sin.f64 y)) |
(+.f64 (-.f64 1 (sin.f64 y)) -1) |
(neg.f64 (sin.f64 y)) |
(+.f64 (/.f64 (sin.f64 y) -2) (/.f64 (sin.f64 y) -2)) |
(neg.f64 (sin.f64 y)) |
(*.f64 1 (sin.f64 (neg.f64 y))) |
(neg.f64 (sin.f64 y)) |
(*.f64 (sin.f64 y) -1) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (sin.f64 (neg.f64 y)) 1) |
(neg.f64 (sin.f64 y)) |
(*.f64 2 (/.f64 (sin.f64 y) -2)) |
(neg.f64 (sin.f64 y)) |
(*.f64 4 (/.f64 (sin.f64 y) -4)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (*.f64 (sin.f64 y) -2) 1/2) |
(neg.f64 (sin.f64 y)) |
(*.f64 (*.f64 (sin.f64 (neg.f64 y)) 4) 1/4) |
(neg.f64 (sin.f64 y)) |
(*.f64 1/2 (*.f64 (sin.f64 y) -2)) |
(neg.f64 (sin.f64 y)) |
(*.f64 1/2 (neg.f64 (*.f64 (sin.f64 y) 2))) |
(neg.f64 (sin.f64 y)) |
(*.f64 -2 (*.f64 (sin.f64 y) 1/2)) |
(neg.f64 (sin.f64 y)) |
(*.f64 1/4 (*.f64 (sin.f64 (neg.f64 y)) 4)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (/.f64 (sin.f64 y) -2) 2) |
(neg.f64 (sin.f64 y)) |
(*.f64 (*.f64 (sin.f64 y) 1/2) -2) |
(neg.f64 (sin.f64 y)) |
(*.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) 1/2) |
(neg.f64 (sin.f64 y)) |
(*.f64 (/.f64 (sin.f64 y) -4) 4) |
(neg.f64 (sin.f64 y)) |
(/.f64 (sin.f64 y) -1) |
(neg.f64 (sin.f64 y)) |
(/.f64 (sin.f64 (neg.f64 y)) 1) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) -2) 2) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) 2) -2) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) 4) 4) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) 4) -4) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) 8) 8) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) 8) -8) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8)) 16) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -16) |
(neg.f64 (sin.f64 y)) |
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) 2) |
(neg.f64 (sin.f64 y)) |
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) 4) |
(neg.f64 (sin.f64 y)) |
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) 8) |
(neg.f64 (sin.f64 y)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8)) (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8))) 32) |
(neg.f64 (sin.f64 y)) |
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) (neg.f64 (*.f64 (sin.f64 y) 2))) 4) |
(neg.f64 (sin.f64 y)) |
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) (neg.f64 (*.f64 (sin.f64 y) 4))) 8) |
(neg.f64 (sin.f64 y)) |
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) (neg.f64 (*.f64 (sin.f64 y) 8))) 16) |
(neg.f64 (sin.f64 y)) |
(/.f64 (/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -1) 16) |
(neg.f64 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(sin.f64 (-.f64 y (PI.f64))) |
(neg.f64 (sin.f64 y)) |
(sin.f64 (neg.f64 y)) |
(neg.f64 (sin.f64 y)) |
(sin.f64 (+.f64 y (PI.f64))) |
(neg.f64 (sin.f64 y)) |
(sin.f64 (-.f64 (*.f64 (PI.f64) 2) y)) |
(sin.f64 (-.f64 (*.f64 2 (PI.f64)) y)) |
(+.f64 1 (sin.f64 y)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (sin.f64 y) 1) |
(+.f64 -1 (+.f64 (sin.f64 y) 2)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (+.f64 1 (sin.f64 y)) 0) |
(+.f64 (sin.f64 y) 1) |
(+.f64 0 (+.f64 1 (sin.f64 y))) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (+.f64 (sin.f64 y) -1) 2) |
(+.f64 (sin.f64 y) 1) |
(+.f64 2 (+.f64 (sin.f64 y) -1)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (+.f64 (sin.f64 y) 2) -1) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (+.f64 (sin.f64 y) -2) 3) |
(+.f64 (sin.f64 y) 1) |
(+.f64 -2 (+.f64 (sin.f64 y) 3)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) (*.f64 (+.f64 1 (sin.f64 y)) 1/2)) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (+.f64 (sin.f64 y) 3) -2) |
(+.f64 (sin.f64 y) 1) |
(+.f64 3 (+.f64 (sin.f64 y) -2)) |
(+.f64 (sin.f64 y) 1) |
(*.f64 1 (+.f64 1 (sin.f64 y))) |
(+.f64 (sin.f64 y) 1) |
(*.f64 (+.f64 1 (sin.f64 y)) 1) |
(+.f64 (sin.f64 y) 1) |
(*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 1/2)) |
(+.f64 (sin.f64 y) 1) |
(*.f64 (+.f64 2 (*.f64 (sin.f64 y) 2)) 1/2) |
(+.f64 (sin.f64 y) 1) |
(*.f64 4 (/.f64 (+.f64 1 (sin.f64 y)) 4)) |
(+.f64 (sin.f64 y) 1) |
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 1/4) |
(+.f64 (sin.f64 y) 1) |
(*.f64 1/2 (+.f64 2 (*.f64 (sin.f64 y) 2))) |
(+.f64 (sin.f64 y) 1) |
(*.f64 1/4 (*.f64 (+.f64 1 (sin.f64 y)) 4)) |
(+.f64 (sin.f64 y) 1) |
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) 2) |
(+.f64 (sin.f64 y) 1) |
(*.f64 (/.f64 (+.f64 1 (sin.f64 y)) 4) 4) |
(+.f64 (sin.f64 y) 1) |
(/.f64 (+.f64 1 (sin.f64 y)) 1) |
(+.f64 (sin.f64 y) 1) |
(/.f64 (+.f64 2 (*.f64 (sin.f64 y) 2)) 2) |
(+.f64 (sin.f64 y) 1) |
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 4) |
(+.f64 (sin.f64 y) 1) |
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 8) 8) |
(+.f64 (sin.f64 y) 1) |
(/.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)) 16) |
(+.f64 (sin.f64 y) 1) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8))) 32) |
(+.f64 (sin.f64 y) 1) |
(+.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 0) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(+.f64 0 (*.f64 (sin.f64 (neg.f64 y)) z)) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(+.f64 (*.f64 z (/.f64 (sin.f64 y) -2)) (*.f64 z (/.f64 (sin.f64 y) -2))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(-.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 0) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 1) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(/.f64 (*.f64 (sin.f64 y) (*.f64 -2 z)) 2) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) (*.f64 z 4)) 4) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(/.f64 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8) 8) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8)) 16) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8))) 32) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (sin.f64 y) | |
| ✓ | 0.2b | (*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1)) |
| ✓ | 0.5b | (-.f64 1 (sin.f64 y)) |
| ✓ | 3.4b | (-.f64 (-.f64 1 (sin.f64 y)) 1) |
Compiled 26 to 16 computations (38.5% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (-.f64 (-.f64 1 (sin.f64 y)) 1) |
| 0.0ms | y | @ | 0 | (-.f64 1 (sin.f64 y)) |
| 0.0ms | y | @ | 0 | (*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1)) |
| 0.0ms | y | @ | -inf | (-.f64 1 (sin.f64 y)) |
| 0.0ms | y | @ | inf | (-.f64 1 (sin.f64 y)) |
| 1× | batch-egg-rewrite |
| 1892× | bool.json-1 |
| 1892× | bool.json-2 |
| 1252× | bool.json-3 |
| 946× | rational.json-1 |
| 946× | rational.json-2 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 39 |
| 1 | 109 | 35 |
| 2 | 314 | 35 |
| 3 | 650 | 35 |
| 4 | 1378 | 35 |
| 5 | 3192 | 35 |
| 6 | 7070 | 35 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 (-.f64 1 (sin.f64 y)) 1) |
(-.f64 1 (sin.f64 y)) |
(*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (sin.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (neg.f64 (+.f64 (sin.f64 y) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (sin.f64 y) -2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) -1/2) (*.f64 (sin.f64 y) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 y) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sin.f64 y) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (neg.f64 (sin.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 4) -1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) -4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sin.f64 y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (sin.f64 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sin.f64 y) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 1/2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (*.f64 (sin.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/4 (*.f64 (sin.f64 y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 y) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (neg.f64 (sin.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (sin.f64 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 8) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) (neg.f64 (*.f64 (sin.f64 y) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 y (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (+.f64 y (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (*.f64 (PI.f64) 2) y))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (neg.f64 (sin.f64 y)) (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (neg.f64 (sin.f64 y)) (neg.f64 (sin.f64 y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (sin.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (neg.f64 (+.f64 (sin.f64 y) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (sin.f64 y) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 (sin.f64 y)) 1/2) (*.f64 (-.f64 1 (sin.f64 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (sin.f64 y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 1 (sin.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (sin.f64 y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (sin.f64 y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 1 (sin.f64 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 1 (sin.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (sin.f64 y)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1 (sin.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (sin.f64 y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 y) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (sin.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (sin.f64 y) -1)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (sin.f64 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (sin.f64 y) -1) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1))) (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (sin.f64 y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 1 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 1 (sin.f64 y)) (-.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 1 (sin.f64 y)) (-.f64 1 (sin.f64 y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 y) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 (sin.f64 y) -1/2)) (*.f64 z (*.f64 (sin.f64 y) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (*.f64 z -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (sin.f64 y) -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 y) (neg.f64 z)) (*.f64 (sin.f64 y) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 y) (neg.f64 z)) (*.f64 (sin.f64 y) (neg.f64 z))))))) |
| 1× | egg-herbie |
| 2716× | rational.json-simplify-2 |
| 1870× | rational.json-simplify-35 |
| 1176× | rational.json-simplify-48 |
| 1162× | rational.json-simplify-1 |
| 1096× | rational.json-simplify-51 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 187 | 1660 |
| 1 | 410 | 1648 |
| 2 | 1026 | 1648 |
| 3 | 2331 | 1624 |
| 4 | 4120 | 1624 |
| 5 | 5227 | 1624 |
| 6 | 5774 | 1624 |
| 7 | 6825 | 1624 |
| 8 | 7450 | 1624 |
| 9 | 7849 | 1624 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 y) |
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)) |
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))) |
(+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)))) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
1 |
(+.f64 1 (*.f64 -1 y)) |
(+.f64 1 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3)))) |
(+.f64 1 (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))) |
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))) |
(+.f64 (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(+.f64 (-.f64 1 (sin.f64 y)) -1) |
(+.f64 (neg.f64 (sin.f64 y)) 0) |
(+.f64 0 (neg.f64 (sin.f64 y))) |
(+.f64 -1 (-.f64 1 (sin.f64 y))) |
(+.f64 -2 (neg.f64 (+.f64 (sin.f64 y) -2))) |
(+.f64 (neg.f64 (+.f64 (sin.f64 y) -2)) -2) |
(+.f64 (*.f64 (sin.f64 y) -1/2) (*.f64 (sin.f64 y) -1/2)) |
(*.f64 1 (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) -1) |
(*.f64 (neg.f64 (sin.f64 y)) 1) |
(*.f64 -1 (sin.f64 y)) |
(*.f64 2 (*.f64 (sin.f64 y) -1/2)) |
(*.f64 (*.f64 (sin.f64 y) -2) 1/2) |
(*.f64 (*.f64 (sin.f64 y) 2) -1/2) |
(*.f64 4 (/.f64 (sin.f64 y) -4)) |
(*.f64 4 (/.f64 (neg.f64 (sin.f64 y)) 4)) |
(*.f64 (*.f64 (sin.f64 y) 4) -1/4) |
(*.f64 (*.f64 (sin.f64 y) -4) 1/4) |
(*.f64 1/2 (*.f64 (sin.f64 y) -2)) |
(*.f64 -2 (*.f64 (sin.f64 y) 1/2)) |
(*.f64 (*.f64 (sin.f64 y) -1/2) 2) |
(*.f64 1/4 (*.f64 (sin.f64 y) -4)) |
(*.f64 (*.f64 (sin.f64 y) 1/2) -2) |
(*.f64 -1/2 (*.f64 (sin.f64 y) 2)) |
(*.f64 -1/4 (*.f64 (sin.f64 y) 4)) |
(*.f64 (/.f64 (sin.f64 y) -4) 4) |
(*.f64 (/.f64 (neg.f64 (sin.f64 y)) 4) 4) |
(/.f64 (sin.f64 y) -1) |
(/.f64 (neg.f64 (sin.f64 y)) 1) |
(/.f64 (*.f64 (sin.f64 y) -2) 2) |
(/.f64 (*.f64 (sin.f64 y) 2) -2) |
(/.f64 (*.f64 (sin.f64 y) 4) -4) |
(/.f64 (*.f64 (sin.f64 y) -4) 4) |
(/.f64 (*.f64 (neg.f64 (sin.f64 y)) 8) 8) |
(/.f64 (*.f64 (sin.f64 y) 8) -8) |
(/.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -16) |
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) 8) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8))) 32) |
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) (neg.f64 (*.f64 (sin.f64 y) 8))) 16) |
(neg.f64 (sin.f64 y)) |
(sin.f64 (-.f64 y (PI.f64))) |
(sin.f64 (neg.f64 y)) |
(sin.f64 (+.f64 y (PI.f64))) |
(sin.f64 (-.f64 (*.f64 (PI.f64) 2) y)) |
(+.f64 (-.f64 1 (sin.f64 y)) 0) |
(+.f64 0 (-.f64 1 (sin.f64 y))) |
(+.f64 -1 (neg.f64 (+.f64 (sin.f64 y) -2))) |
(+.f64 (neg.f64 (+.f64 (sin.f64 y) -2)) -1) |
(+.f64 (*.f64 (-.f64 1 (sin.f64 y)) 1/2) (*.f64 (-.f64 1 (sin.f64 y)) 1/2)) |
(*.f64 1 (-.f64 1 (sin.f64 y))) |
(*.f64 (-.f64 1 (sin.f64 y)) 1) |
(*.f64 -1 (+.f64 (sin.f64 y) -1)) |
(*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 1/2)) |
(*.f64 4 (/.f64 (-.f64 1 (sin.f64 y)) 4)) |
(*.f64 (*.f64 (-.f64 1 (sin.f64 y)) 2) 1/2) |
(*.f64 (+.f64 (sin.f64 y) -1) -1) |
(*.f64 (*.f64 (-.f64 1 (sin.f64 y)) 4) 1/4) |
(*.f64 1/2 (*.f64 (-.f64 1 (sin.f64 y)) 2)) |
(*.f64 1/4 (*.f64 (-.f64 1 (sin.f64 y)) 4)) |
(*.f64 (*.f64 (-.f64 1 (sin.f64 y)) 1/2) 2) |
(*.f64 (/.f64 (-.f64 1 (sin.f64 y)) 4) 4) |
(/.f64 (-.f64 1 (sin.f64 y)) 1) |
(/.f64 (*.f64 (-.f64 1 (sin.f64 y)) 2) 2) |
(/.f64 (+.f64 (sin.f64 y) -1) -1) |
(/.f64 (*.f64 (-.f64 1 (sin.f64 y)) 4) 4) |
(/.f64 (*.f64 2 (+.f64 (sin.f64 y) -1)) -2) |
(/.f64 (*.f64 (-.f64 1 (sin.f64 y)) 8) 8) |
(/.f64 (*.f64 (+.f64 (sin.f64 y) -1) 4) -4) |
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8)) 16) |
(/.f64 (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1))) 2) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8))) 32) |
(/.f64 (+.f64 (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1))) (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1)))) 4) |
(neg.f64 (+.f64 (sin.f64 y) -1)) |
(+.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 0) |
(+.f64 0 (*.f64 (sin.f64 y) (neg.f64 z))) |
(+.f64 (*.f64 z (*.f64 (sin.f64 y) -1/2)) (*.f64 z (*.f64 (sin.f64 y) -1/2))) |
(-.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 0) |
(/.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 1) |
(/.f64 (*.f64 (sin.f64 y) (*.f64 z -2)) 2) |
(/.f64 (*.f64 z (*.f64 (sin.f64 y) -4)) 4) |
(/.f64 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8))) 32) |
| Outputs |
|---|
(*.f64 -1 y) |
(neg.f64 y) |
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)) |
(+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))) |
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))) |
(+.f64 (neg.f64 y) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5)))) |
(+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)))) |
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))) (*.f64 1/5040 (pow.f64 y 7)))) |
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (+.f64 (neg.f64 y) (*.f64 -1/120 (pow.f64 y 5))) (*.f64 1/5040 (pow.f64 y 7)))) |
(+.f64 (neg.f64 y) (+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5))))) |
(+.f64 (neg.f64 y) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (*.f64 1/5040 (pow.f64 y 7))))) |
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (neg.f64 y) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (*.f64 1/5040 (pow.f64 y 7))))) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
1 |
(+.f64 1 (*.f64 -1 y)) |
(+.f64 (neg.f64 y) 1) |
(-.f64 1 y) |
(+.f64 1 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3)))) |
(+.f64 (neg.f64 y) (+.f64 (*.f64 1/6 (pow.f64 y 3)) 1)) |
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (-.f64 1 y)) |
(+.f64 1 (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))))) |
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (neg.f64 y) (+.f64 (*.f64 1/6 (pow.f64 y 3)) 1))) |
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (-.f64 1 y))) |
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (-.f64 1 y) (*.f64 -1/120 (pow.f64 y 5)))) |
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (-.f64 1 y))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))) |
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))) |
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 (pow.f64 y 3) (*.f64 1/6 z))) |
(*.f64 z (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3)))) |
(*.f64 (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))) |
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)))) |
(+.f64 (*.f64 (pow.f64 y 3) (*.f64 1/6 z)) (+.f64 (*.f64 y (neg.f64 z)) (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)))) |
(+.f64 (*.f64 (pow.f64 y 3) (*.f64 1/6 z)) (*.f64 z (+.f64 (neg.f64 y) (*.f64 -1/120 (pow.f64 y 5))))) |
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 z (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5))))) |
(+.f64 (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))))) |
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 -1/120 (*.f64 (pow.f64 y 5) z))) (*.f64 (pow.f64 y 7) (*.f64 z 1/5040)))) |
(+.f64 (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 -1/120 (*.f64 (pow.f64 y 5) z))) (+.f64 (*.f64 (pow.f64 y 7) (*.f64 1/5040 z)) (*.f64 y (neg.f64 z)))) |
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 1/6 z)) (*.f64 (pow.f64 y 7) (*.f64 1/5040 z))))) |
(+.f64 (*.f64 z (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3)))) (*.f64 z (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (*.f64 1/5040 (pow.f64 y 7))))) |
(+.f64 (*.f64 (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))) z) (*.f64 z (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (*.f64 1/5040 (pow.f64 y 7))))) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(*.f64 -1 (*.f64 z (sin.f64 y))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(+.f64 (-.f64 1 (sin.f64 y)) -1) |
(neg.f64 (sin.f64 y)) |
(+.f64 (neg.f64 (sin.f64 y)) 0) |
(neg.f64 (sin.f64 y)) |
(+.f64 0 (neg.f64 (sin.f64 y))) |
(neg.f64 (sin.f64 y)) |
(+.f64 -1 (-.f64 1 (sin.f64 y))) |
(neg.f64 (sin.f64 y)) |
(+.f64 -2 (neg.f64 (+.f64 (sin.f64 y) -2))) |
(neg.f64 (sin.f64 y)) |
(+.f64 (neg.f64 (+.f64 (sin.f64 y) -2)) -2) |
(neg.f64 (sin.f64 y)) |
(+.f64 (*.f64 (sin.f64 y) -1/2) (*.f64 (sin.f64 y) -1/2)) |
(neg.f64 (sin.f64 y)) |
(*.f64 1 (neg.f64 (sin.f64 y))) |
(neg.f64 (sin.f64 y)) |
(*.f64 (sin.f64 y) -1) |
(neg.f64 (sin.f64 y)) |
(*.f64 (neg.f64 (sin.f64 y)) 1) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(*.f64 2 (*.f64 (sin.f64 y) -1/2)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (*.f64 (sin.f64 y) -2) 1/2) |
(neg.f64 (sin.f64 y)) |
(*.f64 (*.f64 (sin.f64 y) 2) -1/2) |
(neg.f64 (sin.f64 y)) |
(*.f64 4 (/.f64 (sin.f64 y) -4)) |
(neg.f64 (sin.f64 y)) |
(*.f64 4 (/.f64 (neg.f64 (sin.f64 y)) 4)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (*.f64 (sin.f64 y) 4) -1/4) |
(neg.f64 (sin.f64 y)) |
(*.f64 (*.f64 (sin.f64 y) -4) 1/4) |
(neg.f64 (sin.f64 y)) |
(*.f64 1/2 (*.f64 (sin.f64 y) -2)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -2 (*.f64 (sin.f64 y) 1/2)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (*.f64 (sin.f64 y) -1/2) 2) |
(neg.f64 (sin.f64 y)) |
(*.f64 1/4 (*.f64 (sin.f64 y) -4)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (*.f64 (sin.f64 y) 1/2) -2) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1/2 (*.f64 (sin.f64 y) 2)) |
(neg.f64 (sin.f64 y)) |
(*.f64 -1/4 (*.f64 (sin.f64 y) 4)) |
(neg.f64 (sin.f64 y)) |
(*.f64 (/.f64 (sin.f64 y) -4) 4) |
(neg.f64 (sin.f64 y)) |
(*.f64 (/.f64 (neg.f64 (sin.f64 y)) 4) 4) |
(neg.f64 (sin.f64 y)) |
(/.f64 (sin.f64 y) -1) |
(neg.f64 (sin.f64 y)) |
(/.f64 (neg.f64 (sin.f64 y)) 1) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) -2) 2) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) 2) -2) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) 4) -4) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) -4) 4) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (neg.f64 (sin.f64 y)) 8) 8) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 (sin.f64 y) 8) -8) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) 16) |
(neg.f64 (sin.f64 y)) |
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -16) |
(neg.f64 (sin.f64 y)) |
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) 8) |
(neg.f64 (sin.f64 y)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8))) 32) |
(neg.f64 (sin.f64 y)) |
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) (neg.f64 (*.f64 (sin.f64 y) 8))) 16) |
(neg.f64 (sin.f64 y)) |
(neg.f64 (sin.f64 y)) |
(sin.f64 (-.f64 y (PI.f64))) |
(neg.f64 (sin.f64 y)) |
(sin.f64 (neg.f64 y)) |
(neg.f64 (sin.f64 y)) |
(sin.f64 (+.f64 y (PI.f64))) |
(neg.f64 (sin.f64 y)) |
(sin.f64 (-.f64 (*.f64 (PI.f64) 2) y)) |
(sin.f64 (-.f64 (*.f64 2 (PI.f64)) y)) |
(+.f64 (-.f64 1 (sin.f64 y)) 0) |
(-.f64 1 (sin.f64 y)) |
(+.f64 0 (-.f64 1 (sin.f64 y))) |
(-.f64 1 (sin.f64 y)) |
(+.f64 -1 (neg.f64 (+.f64 (sin.f64 y) -2))) |
(-.f64 1 (sin.f64 y)) |
(+.f64 (neg.f64 (+.f64 (sin.f64 y) -2)) -1) |
(-.f64 1 (sin.f64 y)) |
(+.f64 (*.f64 (-.f64 1 (sin.f64 y)) 1/2) (*.f64 (-.f64 1 (sin.f64 y)) 1/2)) |
(-.f64 1 (sin.f64 y)) |
(*.f64 1 (-.f64 1 (sin.f64 y))) |
(-.f64 1 (sin.f64 y)) |
(*.f64 (-.f64 1 (sin.f64 y)) 1) |
(-.f64 1 (sin.f64 y)) |
(*.f64 -1 (+.f64 (sin.f64 y) -1)) |
(-.f64 1 (sin.f64 y)) |
(*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 1/2)) |
(-.f64 1 (sin.f64 y)) |
(*.f64 4 (/.f64 (-.f64 1 (sin.f64 y)) 4)) |
(-.f64 1 (sin.f64 y)) |
(*.f64 (*.f64 (-.f64 1 (sin.f64 y)) 2) 1/2) |
(-.f64 1 (sin.f64 y)) |
(*.f64 (+.f64 (sin.f64 y) -1) -1) |
(-.f64 1 (sin.f64 y)) |
(*.f64 (*.f64 (-.f64 1 (sin.f64 y)) 4) 1/4) |
(-.f64 1 (sin.f64 y)) |
(*.f64 1/2 (*.f64 (-.f64 1 (sin.f64 y)) 2)) |
(-.f64 1 (sin.f64 y)) |
(*.f64 1/4 (*.f64 (-.f64 1 (sin.f64 y)) 4)) |
(-.f64 1 (sin.f64 y)) |
(*.f64 (*.f64 (-.f64 1 (sin.f64 y)) 1/2) 2) |
(-.f64 1 (sin.f64 y)) |
(*.f64 (/.f64 (-.f64 1 (sin.f64 y)) 4) 4) |
(-.f64 1 (sin.f64 y)) |
(/.f64 (-.f64 1 (sin.f64 y)) 1) |
(-.f64 1 (sin.f64 y)) |
(/.f64 (*.f64 (-.f64 1 (sin.f64 y)) 2) 2) |
(-.f64 1 (sin.f64 y)) |
(/.f64 (+.f64 (sin.f64 y) -1) -1) |
(-.f64 1 (sin.f64 y)) |
(/.f64 (*.f64 (-.f64 1 (sin.f64 y)) 4) 4) |
(-.f64 1 (sin.f64 y)) |
(/.f64 (*.f64 2 (+.f64 (sin.f64 y) -1)) -2) |
(-.f64 1 (sin.f64 y)) |
(/.f64 (*.f64 (-.f64 1 (sin.f64 y)) 8) 8) |
(-.f64 1 (sin.f64 y)) |
(/.f64 (*.f64 (+.f64 (sin.f64 y) -1) 4) -4) |
(-.f64 1 (sin.f64 y)) |
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8)) 16) |
(-.f64 1 (sin.f64 y)) |
(/.f64 (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1))) 2) |
(-.f64 1 (sin.f64 y)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8))) 32) |
(-.f64 1 (sin.f64 y)) |
(/.f64 (+.f64 (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1))) (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1)))) 4) |
(-.f64 1 (sin.f64 y)) |
(neg.f64 (+.f64 (sin.f64 y) -1)) |
(-.f64 1 (sin.f64 y)) |
(+.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 0) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(+.f64 0 (*.f64 (sin.f64 y) (neg.f64 z))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(+.f64 (*.f64 z (*.f64 (sin.f64 y) -1/2)) (*.f64 z (*.f64 (sin.f64 y) -1/2))) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(-.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 0) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(/.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 1) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(/.f64 (*.f64 (sin.f64 y) (*.f64 z -2)) 2) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(/.f64 (*.f64 z (*.f64 (sin.f64 y) -4)) 4) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(/.f64 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8) 8) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8)) 16) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8))) 32) |
(*.f64 z (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) (neg.f64 z)) |
Compiled 5543 to 3691 computations (33.4% saved)
12 alts after pruning (3 fresh and 9 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 441 | 2 | 443 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 8 | 8 |
| Total | 441 | 12 | 453 |
| Status | Error | Program |
|---|---|---|
| ✓ | 26.0b | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1))) |
| ✓ | 0.1b | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
| ✓ | 23.4b | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y)) |
| ✓ | 16.7b | (-.f64 x (*.f64 z (sin.f64 y))) |
| ✓ | 34.2b | (-.f64 x (*.f64 z y)) |
| ✓ | 44.4b | (*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1)) |
| ▶ | 61.4b | (*.f64 z (-.f64 (-.f64 1 y) 1)) |
| ✓ | 44.4b | (*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1))) |
| ▶ | 62.1b | (*.f64 z (-.f64 1 1)) |
| ✓ | 36.9b | (*.f64 z (sin.f64 (neg.f64 y))) |
| ✓ | 54.1b | (*.f64 z (neg.f64 y)) |
| 41.8b | x |
Compiled 112 to 83 computations (25.9% saved)
Compiled 13 to 11 computations (15.4% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 3.0b | (-.f64 (-.f64 1 y) 1) |
Compiled 21 to 15 computations (28.6% saved)
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | inf | (-.f64 (-.f64 1 y) 1) |
| 0.0ms | y | @ | 0 | (-.f64 (-.f64 1 y) 1) |
| 0.0ms | y | @ | -inf | (-.f64 (-.f64 1 y) 1) |
| 1× | batch-egg-rewrite |
| 1862× | bool.json-1 |
| 1862× | bool.json-2 |
| 1228× | rational.json-simplify-35 |
| 1136× | bool.json-3 |
| 1122× | rational.json-1 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 7 |
| 1 | 71 | 5 |
| 2 | 232 | 5 |
| 3 | 463 | 5 |
| 4 | 912 | 5 |
| 5 | 2046 | 5 |
| 6 | 4406 | 5 |
| 7 | 7309 | 5 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 (-.f64 1 y) 1) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 y -2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (neg.f64 (+.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -1/2) (*.f64 y -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 y -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 y -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 y -1/2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 y -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y -4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) -1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 y -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 y -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/4 (*.f64 y 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 y -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y y) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y 8) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y 8)) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y -8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y 8))) -32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y -8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 y 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 y 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 y -8))) (*.f64 2 (*.f64 2 (*.f64 y -8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 y 8))) (*.f64 2 (neg.f64 (*.f64 y 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 y 8))) (neg.f64 (*.f64 2 (*.f64 y 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 y)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x and (neg.f64 y) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x or (neg.f64 y) (neg.f64 y)))))) |
| 1× | egg-herbie |
| 3438× | rational.json-simplify-35 |
| 2462× | rational.json-simplify-1 |
| 1426× | rational.json-simplify-2 |
| 1234× | rational.json-simplify-41 |
| 1210× | rational.json-simplify-48 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 95 | 319 |
| 1 | 202 | 319 |
| 2 | 411 | 319 |
| 3 | 1171 | 319 |
| 4 | 2532 | 319 |
| 5 | 4224 | 319 |
| 6 | 4487 | 319 |
| 7 | 4728 | 319 |
| 8 | 4913 | 319 |
| 9 | 5062 | 319 |
| 10 | 5204 | 319 |
| 11 | 5992 | 319 |
| 12 | 6053 | 319 |
| 13 | 6239 | 319 |
| 14 | 6545 | 319 |
| 15 | 6729 | 319 |
| 16 | 6769 | 319 |
| 17 | 6913 | 319 |
| 18 | 7055 | 319 |
| 19 | 7197 | 319 |
| 20 | 7339 | 319 |
| 21 | 7481 | 319 |
| 22 | 7884 | 319 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 y) |
(*.f64 -1 y) |
(*.f64 -1 y) |
(*.f64 -1 y) |
(*.f64 -1 y) |
(*.f64 -1 y) |
(*.f64 -1 y) |
(*.f64 -1 y) |
(*.f64 -1 y) |
(*.f64 -1 y) |
(*.f64 -1 y) |
(*.f64 -1 y) |
(+.f64 (-.f64 1 y) -1) |
(+.f64 (neg.f64 y) 0) |
(+.f64 0 (neg.f64 y)) |
(+.f64 -1 (-.f64 1 y)) |
(+.f64 (neg.f64 (+.f64 y -2)) -2) |
(+.f64 -2 (neg.f64 (+.f64 y -2))) |
(+.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1)) |
(+.f64 (*.f64 y -1/2) (*.f64 y -1/2)) |
(*.f64 1 (neg.f64 y)) |
(*.f64 y -1) |
(*.f64 (neg.f64 y) 1) |
(*.f64 -1 y) |
(*.f64 2 (*.f64 y -1/2)) |
(*.f64 (*.f64 y -2) 1/2) |
(*.f64 4 (/.f64 y -4)) |
(*.f64 4 (*.f64 (*.f64 y -1/2) 1/2)) |
(*.f64 4 (*.f64 (/.f64 y -4) 1)) |
(*.f64 (+.f64 y y) -1/2) |
(*.f64 (*.f64 y -4) 1/4) |
(*.f64 (*.f64 y 4) -1/4) |
(*.f64 1/2 (*.f64 y -2)) |
(*.f64 -2 (*.f64 y 1/2)) |
(*.f64 (*.f64 y 1/2) -2) |
(*.f64 (*.f64 y -1/2) 2) |
(*.f64 1/4 (*.f64 y -4)) |
(*.f64 -1/2 (+.f64 y y)) |
(*.f64 -1/4 (*.f64 y 4)) |
(*.f64 (/.f64 y -4) 4) |
(/.f64 y -1) |
(/.f64 (neg.f64 y) 1) |
(/.f64 (*.f64 y -2) 2) |
(/.f64 (+.f64 y y) -2) |
(/.f64 (*.f64 y -4) 4) |
(/.f64 (*.f64 y 4) -4) |
(/.f64 (*.f64 y 8) -8) |
(/.f64 (*.f64 y -8) 8) |
(/.f64 (*.f64 2 (*.f64 y 8)) -16) |
(/.f64 (*.f64 2 (*.f64 y -8)) 16) |
(/.f64 (neg.f64 (*.f64 y 8)) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y 8))) -32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y -8))) 32) |
(/.f64 (*.f64 2 (neg.f64 (*.f64 y 8))) 16) |
(/.f64 (neg.f64 (*.f64 2 (*.f64 y 8))) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 y -8))) (*.f64 2 (*.f64 2 (*.f64 y -8)))) 64) |
(/.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 y 8))) (*.f64 2 (neg.f64 (*.f64 y 8)))) 32) |
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 y 8))) (neg.f64 (*.f64 2 (*.f64 y 8)))) 32) |
(neg.f64 y) |
| Outputs |
|---|
(*.f64 -1 y) |
(neg.f64 y) |
(*.f64 -1 y) |
(neg.f64 y) |
(*.f64 -1 y) |
(neg.f64 y) |
(*.f64 -1 y) |
(neg.f64 y) |
(*.f64 -1 y) |
(neg.f64 y) |
(*.f64 -1 y) |
(neg.f64 y) |
(*.f64 -1 y) |
(neg.f64 y) |
(*.f64 -1 y) |
(neg.f64 y) |
(*.f64 -1 y) |
(neg.f64 y) |
(*.f64 -1 y) |
(neg.f64 y) |
(*.f64 -1 y) |
(neg.f64 y) |
(*.f64 -1 y) |
(neg.f64 y) |
(+.f64 (-.f64 1 y) -1) |
(neg.f64 y) |
(+.f64 (neg.f64 y) 0) |
(neg.f64 y) |
(+.f64 0 (neg.f64 y)) |
(neg.f64 y) |
(+.f64 -1 (-.f64 1 y)) |
(neg.f64 y) |
(+.f64 (neg.f64 (+.f64 y -2)) -2) |
(+.f64 -2 (neg.f64 (+.f64 y -2))) |
(+.f64 -2 (neg.f64 (+.f64 y -2))) |
(+.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1)) |
(neg.f64 y) |
(+.f64 (*.f64 y -1/2) (*.f64 y -1/2)) |
(neg.f64 y) |
(*.f64 1 (neg.f64 y)) |
(neg.f64 y) |
(*.f64 y -1) |
(neg.f64 y) |
(*.f64 (neg.f64 y) 1) |
(neg.f64 y) |
(*.f64 -1 y) |
(neg.f64 y) |
(*.f64 2 (*.f64 y -1/2)) |
(neg.f64 y) |
(*.f64 (*.f64 y -2) 1/2) |
(neg.f64 y) |
(*.f64 4 (/.f64 y -4)) |
(neg.f64 y) |
(*.f64 4 (*.f64 (*.f64 y -1/2) 1/2)) |
(neg.f64 y) |
(*.f64 4 (*.f64 (/.f64 y -4) 1)) |
(neg.f64 y) |
(*.f64 (+.f64 y y) -1/2) |
(neg.f64 y) |
(*.f64 (*.f64 y -4) 1/4) |
(neg.f64 y) |
(*.f64 (*.f64 y 4) -1/4) |
(neg.f64 y) |
(*.f64 1/2 (*.f64 y -2)) |
(neg.f64 y) |
(*.f64 -2 (*.f64 y 1/2)) |
(neg.f64 y) |
(*.f64 (*.f64 y 1/2) -2) |
(neg.f64 y) |
(*.f64 (*.f64 y -1/2) 2) |
(neg.f64 y) |
(*.f64 1/4 (*.f64 y -4)) |
(neg.f64 y) |
(*.f64 -1/2 (+.f64 y y)) |
(neg.f64 y) |
(*.f64 -1/4 (*.f64 y 4)) |
(neg.f64 y) |
(*.f64 (/.f64 y -4) 4) |
(neg.f64 y) |
(/.f64 y -1) |
(neg.f64 y) |
(/.f64 (neg.f64 y) 1) |
(neg.f64 y) |
(/.f64 (*.f64 y -2) 2) |
(neg.f64 y) |
(/.f64 (+.f64 y y) -2) |
(neg.f64 y) |
(/.f64 (*.f64 y -4) 4) |
(neg.f64 y) |
(/.f64 (*.f64 y 4) -4) |
(neg.f64 y) |
(/.f64 (*.f64 y 8) -8) |
(neg.f64 y) |
(/.f64 (*.f64 y -8) 8) |
(neg.f64 y) |
(/.f64 (*.f64 2 (*.f64 y 8)) -16) |
(neg.f64 y) |
(/.f64 (*.f64 2 (*.f64 y -8)) 16) |
(neg.f64 y) |
(/.f64 (neg.f64 (*.f64 y 8)) 8) |
(neg.f64 y) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y 8))) -32) |
(neg.f64 y) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y -8))) 32) |
(neg.f64 y) |
(/.f64 (*.f64 2 (neg.f64 (*.f64 y 8))) 16) |
(neg.f64 y) |
(/.f64 (neg.f64 (*.f64 2 (*.f64 y 8))) 16) |
(neg.f64 y) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 y -8))) (*.f64 2 (*.f64 2 (*.f64 y -8)))) 64) |
(neg.f64 y) |
(/.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 y 8))) (*.f64 2 (neg.f64 (*.f64 y 8)))) 32) |
(neg.f64 y) |
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 y 8))) (neg.f64 (*.f64 2 (*.f64 y 8)))) 32) |
(neg.f64 y) |
(neg.f64 y) |
Compiled 385 to 276 computations (28.3% saved)
13 alts after pruning (2 fresh and 11 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 46 | 1 | 47 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 10 | 10 |
| Total | 46 | 13 | 59 |
| Status | Error | Program |
|---|---|---|
| ✓ | 26.0b | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1))) |
| ✓ | 0.1b | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
| ✓ | 23.4b | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y)) |
| ✓ | 16.7b | (-.f64 x (*.f64 z (sin.f64 y))) |
| ✓ | 34.2b | (-.f64 x (*.f64 z y)) |
| ✓ | 44.4b | (*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1)) |
| ✓ | 61.4b | (*.f64 z (-.f64 (-.f64 1 y) 1)) |
| ✓ | 44.4b | (*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1))) |
| ✓ | 62.1b | (*.f64 z (-.f64 1 1)) |
| 61.4b | (*.f64 z (+.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1))) | |
| ✓ | 36.9b | (*.f64 z (sin.f64 (neg.f64 y))) |
| ✓ | 54.1b | (*.f64 z (neg.f64 y)) |
| 41.8b | x |
Compiled 130 to 98 computations (24.6% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 y)) |
(*.f64 z (-.f64 1 1)) |
(-.f64 x (*.f64 z y)) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(*.f64 z (-.f64 (-.f64 1 y) 1)) |
(*.f64 z (+.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1))) |
(*.f64 z (sin.f64 (neg.f64 y))) |
(-.f64 x (*.f64 z (sin.f64 y))) |
(*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1))) |
(*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1)) |
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y)) |
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1))) |
(+.f64 x (+.f64 (*.f64 x (*.f64 (pow.f64 y 2) -1/2)) (*.f64 y (neg.f64 z)))) |
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1))) |
| Outputs |
|---|
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
4 calls:
| 10.0ms | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
| 10.0ms | y |
| 8.0ms | z |
| 8.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 0.1b | 1 | x |
| 0.1b | 1 | y |
| 0.1b | 1 | z |
| 0.1b | 1 | (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
Compiled 152 to 86 computations (43.4% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 y)) |
(*.f64 z (-.f64 1 1)) |
(-.f64 x (*.f64 z y)) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(*.f64 z (-.f64 (-.f64 1 y) 1)) |
(*.f64 z (+.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1))) |
(*.f64 z (sin.f64 (neg.f64 y))) |
(-.f64 x (*.f64 z (sin.f64 y))) |
(*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1))) |
(*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1)) |
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y)) |
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1))) |
(+.f64 x (+.f64 (*.f64 x (*.f64 (pow.f64 y 2) -1/2)) (*.f64 y (neg.f64 z)))) |
| Outputs |
|---|
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1))) |
(-.f64 x (*.f64 z (sin.f64 y))) |
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1))) |
3 calls:
| 63.0ms | y |
| 23.0ms | x |
| 21.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 7.7b | 3 | x |
| 10.8b | 7 | y |
| 9.2b | 3 | z |
Compiled 117 to 70 computations (40.2% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 134.0ms | 1.0360179452069724e+39 | 1.2050067684050333e+40 |
| 167.0ms | -2.002576489452528e+156 | -1.1976594960232068e+150 |
| 138.0ms | 37× | body | 512 | valid |
| 134.0ms | 145× | body | 256 | valid |
| 25.0ms | 58× | body | 1024 | valid |
Compiled 378 to 283 computations (25.1% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 y)) |
(*.f64 z (-.f64 1 1)) |
(-.f64 x (*.f64 z y)) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(*.f64 z (-.f64 (-.f64 1 y) 1)) |
(*.f64 z (+.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1))) |
(*.f64 z (sin.f64 (neg.f64 y))) |
(-.f64 x (*.f64 z (sin.f64 y))) |
(*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1))) |
(*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1)) |
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y)) |
| Outputs |
|---|
(-.f64 x (*.f64 z (sin.f64 y))) |
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y)) |
(-.f64 x (*.f64 z (sin.f64 y))) |
3 calls:
| 99.0ms | y |
| 66.0ms | x |
| 66.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 10.3b | 3 | x |
| 14.2b | 3 | y |
| 10.3b | 3 | z |
Compiled 93 to 58 computations (37.6% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 77.0ms | 3.2046065110439475e-142 | 1.890858445800975e-141 |
| 144.0ms | -1.8516526064442985e-17 | -2.8076507109945895e-31 |
| 131.0ms | 73× | body | 1024 | valid |
| 76.0ms | 146× | body | 256 | valid |
| 11.0ms | 37× | body | 512 | valid |
Compiled 370 to 253 computations (31.6% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 y)) |
(*.f64 z (-.f64 1 1)) |
(-.f64 x (*.f64 z y)) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(*.f64 z (-.f64 (-.f64 1 y) 1)) |
(*.f64 z (+.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1))) |
(*.f64 z (sin.f64 (neg.f64 y))) |
(-.f64 x (*.f64 z (sin.f64 y))) |
(*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1))) |
(*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1)) |
| Outputs |
|---|
(-.f64 x (*.f64 z (sin.f64 y))) |
3 calls:
| 90.0ms | y |
| 6.0ms | x |
| 6.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 16.7b | 1 | x |
| 16.7b | 1 | y |
| 16.7b | 1 | z |
Compiled 85 to 55 computations (35.3% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 y)) |
(*.f64 z (-.f64 1 1)) |
(-.f64 x (*.f64 z y)) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(*.f64 z (-.f64 (-.f64 1 y) 1)) |
(*.f64 z (+.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1))) |
(*.f64 z (sin.f64 (neg.f64 y))) |
| Outputs |
|---|
(*.f64 z (sin.f64 (neg.f64 y))) |
(-.f64 x (*.f64 z y)) |
(*.f64 z (sin.f64 (neg.f64 y))) |
3 calls:
| 94.0ms | x |
| 15.0ms | z |
| 15.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 26.4b | 3 | x |
| 17.9b | 3 | y |
| 27.1b | 3 | z |
Compiled 63 to 42 computations (33.3% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 87.0ms | 802218.0443287347 | 4026122207.468995 |
| 6.0ms | -793397.5379758866 | -712437.9739472561 |
| 91.0ms | 160× | body | 256 | valid |
Compiled 198 to 143 computations (27.8% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 y)) |
(*.f64 z (-.f64 1 1)) |
(-.f64 x (*.f64 z y)) |
(+.f64 x (*.f64 y (neg.f64 z))) |
(*.f64 z (-.f64 (-.f64 1 y) 1)) |
(*.f64 z (+.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1))) |
| Outputs |
|---|
(-.f64 x (*.f64 z y)) |
3 calls:
| 5.0ms | y |
| 5.0ms | z |
| 5.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 34.2b | 1 | x |
| 34.2b | 1 | y |
| 34.2b | 1 | z |
Compiled 58 to 40 computations (31% saved)
Total -24.1b remaining (-62.5%)
Threshold costs -24.1b (-62.5%)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 y)) |
(*.f64 z (-.f64 1 1)) |
| Outputs |
|---|
x |
(*.f64 z (neg.f64 y)) |
x |
3 calls:
| 60.0ms | y |
| 8.0ms | x |
| 3.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 38.6b | 3 | x |
| 40.7b | 3 | y |
| 41.8b | 1 | z |
Compiled 25 to 18 computations (28% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 109.0ms | 1.2597865723105145e-253 | 1.0621364758699423e-244 |
| 31.0ms | -2.5603412135012383e-26 | -4.322801147823336e-30 |
| 83.0ms | 44× | body | 512 | valid |
| 28.0ms | 166× | body | 256 | valid |
| 27.0ms | 62× | body | 1024 | valid |
Compiled 239 to 183 computations (23.4% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 52 | 306 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
(if (<=.f64 x -1200000000000000013344651621705194036153934411236609269391465806550823148718924258603522328009361548664795008007589484566806519110758981414610129649664) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1))) (if (<=.f64 x 2600000000000000054805850998728369897472) (-.f64 x (*.f64 z (sin.f64 y))) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1))))) |
(if (<=.f64 z -178405961588245/356811923176489970264571492362373784095686656) (-.f64 x (*.f64 z (sin.f64 y))) (if (<=.f64 z 3706990736470529/3432398830065304857490950399540696608634717650071652704697231729592771591698828026061279820330727277488648155695740429018560993999858321906287014145557528576) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y)) (-.f64 x (*.f64 z (sin.f64 y))))) |
(-.f64 x (*.f64 z (sin.f64 y))) |
(if (<=.f64 y -720000) (*.f64 z (sin.f64 (neg.f64 y))) (if (<=.f64 y 820000) (-.f64 x (*.f64 z y)) (*.f64 z (sin.f64 (neg.f64 y))))) |
(-.f64 x (*.f64 z y)) |
(if (<=.f64 x -6279889847906223/1427247692705959881058285969449495136382746624) x (if (<=.f64 x 3075078893078405/30750788930784052141961861920805916103932967295178766486232675904563738880488373075752592173385037335955677262580553574888172300969173988400174943873597051535522721474932336956770829721145939608862637129391729156728137068727028191720507858482133392040241659904) (*.f64 z (neg.f64 y)) x)) |
x |
| Outputs |
|---|
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) |
(if (<=.f64 x -1200000000000000013344651621705194036153934411236609269391465806550823148718924258603522328009361548664795008007589484566806519110758981414610129649664) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1))) (if (<=.f64 x 2600000000000000054805850998728369897472) (-.f64 x (*.f64 z (sin.f64 y))) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1))))) |
(if (<=.f64 x -1200000000000000013344651621705194036153934411236609269391465806550823148718924258603522328009361548664795008007589484566806519110758981414610129649664) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z 0)) (if (<=.f64 x 2600000000000000054805850998728369897472) (-.f64 x (*.f64 z (sin.f64 y))) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z 0)))) |
(if (<=.f64 z -178405961588245/356811923176489970264571492362373784095686656) (-.f64 x (*.f64 z (sin.f64 y))) (if (<=.f64 z 3706990736470529/3432398830065304857490950399540696608634717650071652704697231729592771591698828026061279820330727277488648155695740429018560993999858321906287014145557528576) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y)) (-.f64 x (*.f64 z (sin.f64 y))))) |
(-.f64 x (*.f64 z (sin.f64 y))) |
(if (<=.f64 y -720000) (*.f64 z (sin.f64 (neg.f64 y))) (if (<=.f64 y 820000) (-.f64 x (*.f64 z y)) (*.f64 z (sin.f64 (neg.f64 y))))) |
(-.f64 x (*.f64 z y)) |
(if (<=.f64 x -6279889847906223/1427247692705959881058285969449495136382746624) x (if (<=.f64 x 3075078893078405/30750788930784052141961861920805916103932967295178766486232675904563738880488373075752592173385037335955677262580553574888172300969173988400174943873597051535522721474932336956770829721145939608862637129391729156728137068727028191720507858482133392040241659904) (*.f64 z (neg.f64 y)) x)) |
x |
Compiled 140 to 83 computations (40.7% saved)
Compiled 119 to 46 computations (61.3% saved)
Loading profile data...