Time bar (total: 6.8s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 99.9% | 0.1% | 0 |
| 0% | 99.9% | 0.1% | 1 |
| 0% | 99.9% | 0.1% | 2 |
| 0% | 99.9% | 0.1% | 3 |
| 0% | 99.9% | 0.1% | 4 |
| 0% | 99.9% | 0.1% | 5 |
| 0% | 99.9% | 0.1% | 6 |
| 12.5% | 87.4% | 0.1% | 7 |
| 18.7% | 81.1% | 0.1% | 8 |
| 25% | 71.8% | 3.3% | 9 |
| 34.3% | 57.7% | 7.9% | 10 |
| 41.3% | 50.3% | 8.3% | 11 |
| 46.8% | 42.3% | 10.9% | 12 |
Compiled 13 to 10 computations (23.1% saved)
| 811.0ms | 8256× | body | 256 | valid |
| 111.0ms | 1103× | body | 256 | invalid |
| 2× | egg-herbie |
| 2243× | fma-neg_binary64 |
| 413× | unsub-neg_binary64 |
| 262× | associate--r+_binary64 |
| 234× | distribute-rgt-in_binary64 |
| 215× | sub-neg_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 20 | 52 |
| 1 | 55 | 52 |
| 2 | 144 | 44 |
| 3 | 494 | 44 |
| 4 | 1584 | 44 |
| 5 | 2961 | 44 |
| 6 | 3611 | 44 |
| 7 | 3718 | 44 |
| 8 | 3756 | 44 |
| 9 | 3772 | 44 |
| 10 | 3960 | 44 |
| 11 | 4041 | 44 |
| 12 | 4087 | 44 |
| 13 | 4154 | 44 |
| 14 | 4204 | 44 |
| 15 | 4204 | 44 |
| 16 | 6258 | 44 |
| 17 | 6258 | 44 |
| 0 | 3 | 3 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
0 |
1 |
2 |
| Outputs |
|---|
0 |
1 |
2 |
| Inputs |
|---|
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
(*.f64 y (-.f64 1 (*.f64 (-.f64 1 x) z))) |
(*.f64 z (-.f64 1 (*.f64 (-.f64 1 y) x))) |
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 z) y))) |
| Outputs |
|---|
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
(*.f64 x (fma.f64 z (+.f64 y -1) 1)) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 x (fma.f64 y z (-.f64 1 z))) |
(*.f64 y (-.f64 1 (*.f64 (-.f64 1 x) z))) |
(*.f64 y (-.f64 1 (*.f64 z (-.f64 1 x)))) |
(*.f64 y (fma.f64 z (+.f64 x -1) 1)) |
(fma.f64 y (-.f64 (*.f64 x z) z) y) |
(*.f64 z (-.f64 1 (*.f64 (-.f64 1 y) x))) |
(*.f64 z (-.f64 1 (*.f64 x (-.f64 1 y)))) |
(*.f64 z (fma.f64 x (+.f64 y -1) 1)) |
(fma.f64 z (-.f64 (*.f64 x y) x) z) |
(*.f64 z (fma.f64 x y (-.f64 1 x))) |
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 z) y))) |
(*.f64 x (-.f64 1 (*.f64 y (-.f64 1 z)))) |
(*.f64 x (fma.f64 y (+.f64 z -1) 1)) |
(fma.f64 x (-.f64 (*.f64 y z) y) x) |
Compiled 15 to 12 computations (20% saved)
| 1× | egg-herbie |
| 710× | fma-def_binary64 |
| 419× | fma-neg_binary64 |
| 208× | distribute-rgt-in_binary64 |
| 163× | distribute-lft-in_binary64 |
| 138× | unsub-neg_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 13 |
| 1 | 20 | 13 |
| 2 | 49 | 11 |
| 3 | 153 | 11 |
| 4 | 470 | 11 |
| 5 | 1119 | 11 |
| 6 | 1863 | 11 |
| 7 | 2564 | 11 |
| 8 | 2672 | 11 |
| 9 | 2672 | 11 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| Outputs |
|---|
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
(*.f64 x (fma.f64 z (+.f64 y -1) 1)) |
(fma.f64 z (fma.f64 x y (neg.f64 x)) x) |
(fma.f64 z (-.f64 (*.f64 x y) x) x) |
Compiled 20 to 12 computations (40% saved)
3 alts after pruning (3 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 2 | 2 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 0 | 3 | 3 |
| Status | Error | Program |
|---|---|---|
| ▶ | 2.6b | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| ▶ | 5.3b | (fma.f64 z (-.f64 (*.f64 x y) x) x) |
Compiled 23 to 15 computations (34.8% saved)
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| 5.0b | (fma.f64 z (-.f64 (*.f64 x y) x) x) | |
| 0.0b | (-.f64 (*.f64 x y) x) | |
| ✓ | 0.0b | (-.f64 (*.f64 x y) x) |
| ✓ | 5.0b | (fma.f64 z (-.f64 (*.f64 x y) x) x) |
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | y | @ | -inf | (-.f64 (*.f64 x y) x) |
| 1.0ms | y | @ | inf | (fma.f64 z (-.f64 (*.f64 x y) x) x) |
| 1.0ms | x | @ | -inf | (fma.f64 z (-.f64 (*.f64 x y) x) x) |
| 1.0ms | x | @ | 0 | (fma.f64 z (-.f64 (*.f64 x y) x) x) |
| 1.0ms | x | @ | inf | (fma.f64 z (-.f64 (*.f64 x y) x) x) |
| 1× | batch-egg-rewrite |
| 841× | pow1_binary64 |
| 778× | add-log-exp_binary64 |
| 778× | log1p-expm1-u_binary64 |
| 778× | expm1-log1p-u_binary64 |
| 760× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 18 |
| 1 | 151 | 18 |
| 2 | 2068 | 18 |
| 1× | node limit |
| Inputs |
|---|
(fma.f64 z (-.f64 (*.f64 x y) x) x) |
(-.f64 (*.f64 x y) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 z (-.f64 (*.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 z (-.f64 (*.f64 x y) x)) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 z (-.f64 (*.f64 x y) x) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 z (-.f64 (*.f64 x y) x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x)) (pow.f64 (cbrt.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x)) 2) (cbrt.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x)) (sqrt.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 z (-.f64 (*.f64 x y) x)) 3) (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 z (-.f64 (*.f64 x y) x)) (*.f64 z (-.f64 (*.f64 x y) x))) (-.f64 (*.f64 x x) (*.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 z (-.f64 (*.f64 x y) x)) (*.f64 z (-.f64 (*.f64 x y) x))) (*.f64 x x)) (-.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 z (-.f64 (*.f64 x y) x) x))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x y) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x y) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x y) x) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x y) x) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x y) x) (fma.f64 (neg.f64 (sqrt.f64 x)) (sqrt.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 x) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 y 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 x y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (*.f64 x y) x)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x y) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x y) x)) 2) (cbrt.f64 (-.f64 (*.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 x y) x)) (sqrt.f64 (-.f64 (*.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 x y) 2) (*.f64 x (fma.f64 x y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 x x)) (/.f64 1 (fma.f64 x y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (*.f64 x y)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (*.f64 x y)) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 x y) 2) (*.f64 x (fma.f64 x y x))) (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x y x) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (*.f64 x y) 2) (*.f64 x (fma.f64 x y x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 x x)) (fma.f64 x y x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 x 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 x y) 2) (*.f64 x (fma.f64 x y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 x x))) (neg.f64 (fma.f64 x y x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (neg.f64 x) 3)) (+.f64 (pow.f64 (*.f64 x y) 2) (-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (*.f64 x y) (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (neg.f64 x) (neg.f64 x))) (-.f64 (*.f64 x y) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 x y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (*.f64 x y) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (*.f64 x y) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (*.f64 x y) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (*.f64 x y) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (*.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (*.f64 x y) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (*.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x y (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y x (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x y) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (cbrt.f64 (*.f64 x y)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x y)) (sqrt.f64 (*.f64 x y)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (*.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (*.f64 x y) x))))))) |
| 1× | egg-herbie |
| 501× | fma-def_binary64 |
| 409× | fma-neg_binary64 |
| 165× | distribute-rgt-in_binary64 |
| 147× | unsub-neg_binary64 |
| 141× | distribute-lft-in_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 30 | 531 |
| 1 | 78 | 530 |
| 2 | 188 | 530 |
| 3 | 425 | 530 |
| 4 | 934 | 530 |
| 5 | 1962 | 530 |
| 6 | 2328 | 530 |
| 7 | 2439 | 530 |
| 8 | 2439 | 530 |
| 1× | saturated |
| Inputs |
|---|
x |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 -1 x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
| Outputs |
|---|
x |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 (-.f64 (*.f64 x y) x) z) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 (-.f64 (*.f64 x y) x) z) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(fma.f64 -1 (*.f64 x z) x) |
(-.f64 x (*.f64 x z)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 x (*.f64 y z)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 x (*.f64 y z)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 x y) x) z x) |
(fma.f64 x (-.f64 (*.f64 y z) z) x) |
(*.f64 (-.f64 y 1) x) |
(-.f64 (*.f64 x y) x) |
(*.f64 (-.f64 y 1) x) |
(-.f64 (*.f64 x y) x) |
(*.f64 (-.f64 y 1) x) |
(-.f64 (*.f64 x y) x) |
(*.f64 (-.f64 y 1) x) |
(-.f64 (*.f64 x y) x) |
(*.f64 (-.f64 y 1) x) |
(-.f64 (*.f64 x y) x) |
(*.f64 (-.f64 y 1) x) |
(-.f64 (*.f64 x y) x) |
(*.f64 (-.f64 y 1) x) |
(-.f64 (*.f64 x y) x) |
(*.f64 (-.f64 y 1) x) |
(-.f64 (*.f64 x y) x) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(-.f64 (*.f64 x y) x) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(-.f64 (*.f64 x y) x) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(-.f64 (*.f64 x y) x) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(-.f64 (*.f64 x y) x) |
(*.f64 -1 x) |
(neg.f64 x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(-.f64 (*.f64 x y) x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(-.f64 (*.f64 x y) x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(-.f64 (*.f64 x y) x) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(-.f64 (*.f64 x y) x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(-.f64 (*.f64 x y) x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(-.f64 (*.f64 x y) x) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(-.f64 (*.f64 x y) x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(-.f64 (*.f64 x y) x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(-.f64 (*.f64 x y) x) |
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| 2.5b | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) | |
| 0.0b | (*.f64 (-.f64 1 y) z) | |
| ✓ | 0.0b | (*.f64 (-.f64 1 y) z) |
| ✓ | 2.5b | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | z | @ | -inf | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 1.0ms | x | @ | 0 | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 1.0ms | y | @ | inf | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 1.0ms | y | @ | 0 | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 1.0ms | z | @ | 0 | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 1× | batch-egg-rewrite |
| 555× | prod-diff_binary64 |
| 479× | log-prod_binary64 |
| 360× | exp-prod_binary64 |
| 300× | pow-prod-down_binary64 |
| 259× | pow2_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 20 |
| 1 | 193 | 20 |
| 2 | 2558 | 20 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
(*.f64 (-.f64 1 y) z) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 (*.f64 (-.f64 1 y) (neg.f64 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x (*.f64 (-.f64 1 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (-.f64 1 (*.f64 (-.f64 1 y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (-.f64 1 (*.f64 (-.f64 1 y) z))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (-.f64 1 (*.f64 (-.f64 1 y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 (-.f64 1 y) z) 3)) x) (fma.f64 (*.f64 (-.f64 1 y) z) (fma.f64 (-.f64 1 y) z 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 (-.f64 1 y) z) 2)) x) (fma.f64 (-.f64 1 y) z 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (pow.f64 (*.f64 (-.f64 1 y) z) 3))) (fma.f64 (*.f64 (-.f64 1 y) z) (fma.f64 (-.f64 1 y) z 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (pow.f64 (*.f64 (-.f64 1 y) z) 2))) (fma.f64 (-.f64 1 y) z 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))) 2)) (cbrt.f64 (log.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))) (sqrt.f64 (log.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (-.f64 1 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 (*.f64 (-.f64 1 y) (neg.f64 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 x (*.f64 (-.f64 1 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 (*.f64 (-.f64 1 y) (neg.f64 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 x (*.f64 (-.f64 1 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (*.f64 (*.f64 (-.f64 1 y) (neg.f64 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (*.f64 x (*.f64 (-.f64 1 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 (*.f64 (-.f64 1 y) (neg.f64 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 x (*.f64 (-.f64 1 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 (*.f64 (-.f64 1 y) (neg.f64 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 x (*.f64 (-.f64 1 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 1) 1)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 z (*.f64 (neg.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 z (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 1 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 z) (-.f64 1 y))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 z) (-.f64 1 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 z) (-.f64 1 y)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 z) (-.f64 1 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 (-.f64 1 y) z 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 y 3)) z) (fma.f64 y (+.f64 1 y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 y y)) z) (+.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 1 (pow.f64 y 3))) (fma.f64 y (+.f64 1 y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 1 (*.f64 y y))) (+.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1 y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (*.f64 (-.f64 1 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1 y) z) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 1 y) z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 1 y) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1 y) z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (-.f64 1 y) z))) 2)) (cbrt.f64 (log.f64 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (-.f64 1 y) z)))) (sqrt.f64 (log.f64 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (-.f64 1 y) z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (-.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 1 y) z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 1 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 z (*.f64 (neg.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 z (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (-.f64 1 y) z 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z 1 (*.f64 (neg.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z 1 (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 z) (pow.f64 (cbrt.f64 z) 2) (*.f64 (neg.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 z) (pow.f64 (cbrt.f64 z) 2) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (cbrt.f64 z) (*.f64 (neg.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (cbrt.f64 z) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (sqrt.f64 z) (*.f64 (neg.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (sqrt.f64 z) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (-.f64 1 y) z 1)) 2) (cbrt.f64 (fma.f64 (-.f64 1 y) z 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (-.f64 1 y) z 1)) (sqrt.f64 (fma.f64 (-.f64 1 y) z 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 1 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 1 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (-.f64 1 y) z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (-.f64 1 y) z))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 1 y) z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (-.f64 1 y) z) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (-.f64 1 y) z)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (-.f64 1 y) z)) 3) 1/3)))))) |
| 1× | egg-herbie |
| 788× | fma-def_binary64 |
| 408× | fma-neg_binary64 |
| 141× | distribute-rgt-in_binary64 |
| 124× | unsub-neg_binary64 |
| 105× | distribute-lft-in_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 26 | 613 |
| 1 | 68 | 592 |
| 2 | 170 | 532 |
| 3 | 408 | 532 |
| 4 | 901 | 532 |
| 5 | 1554 | 532 |
| 6 | 2389 | 532 |
| 7 | 2552 | 532 |
| 8 | 2554 | 532 |
| 9 | 2554 | 532 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 z) x) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
x |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) |
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x) |
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x) |
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x) |
z |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
| Outputs |
|---|
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
x |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 x (-.f64 (*.f64 z y) z)) |
(*.f64 x (fma.f64 z y (neg.f64 z))) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 x (-.f64 (*.f64 z y) z)) |
(*.f64 x (fma.f64 z y (neg.f64 z))) |
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x) |
(*.f64 (fma.f64 z y (-.f64 1 z)) x) |
z |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(*.f64 -1 (*.f64 y z)) |
(neg.f64 (*.f64 z y)) |
(*.f64 z (neg.f64 y)) |
(*.f64 y (neg.f64 z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(*.f64 -1 (*.f64 y z)) |
(neg.f64 (*.f64 z y)) |
(*.f64 z (neg.f64 y)) |
(*.f64 y (neg.f64 z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(*.f64 z (-.f64 1 y)) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(*.f64 z (-.f64 1 y)) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(*.f64 z (-.f64 1 y)) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(*.f64 z (-.f64 1 y)) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(*.f64 z (-.f64 1 y)) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(*.f64 z (-.f64 1 y)) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(*.f64 z (-.f64 1 y)) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(*.f64 z (-.f64 1 y)) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(*.f64 z (-.f64 1 y)) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(*.f64 z (-.f64 1 y)) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(*.f64 z (-.f64 1 y)) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
(*.f64 z (-.f64 1 y)) |
(fma.f64 -1 (*.f64 z y) z) |
(-.f64 z (*.f64 z y)) |
(fma.f64 y (neg.f64 z) z) |
Compiled 2373 to 1200 computations (49.4% saved)
12 alts after pruning (11 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 171 | 11 | 182 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 1 | 0 | 1 |
| Total | 172 | 12 | 184 |
| Status | Error | Program |
|---|---|---|
| ✓ | 2.6b | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| ▶ | 46.9b | (*.f64 z (*.f64 y x)) |
| ▶ | 5.3b | (+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x) |
| 36.5b | (pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2) | |
| 19.1b | (*.f64 (-.f64 1 z) x) | |
| 33.4b | x | |
| ▶ | 17.9b | (*.f64 x (-.f64 1 (*.f64 y (neg.f64 z)))) |
| ▶ | 45.9b | (*.f64 y (*.f64 z x)) |
| 32.6b | (*.f64 (-.f64 (*.f64 y x) x) z) | |
| 47.1b | (*.f64 x (*.f64 y z)) | |
| 21.3b | (/.f64 (*.f64 x (-.f64 1 (pow.f64 (*.f64 (-.f64 1 y) z) 3))) (fma.f64 (*.f64 (-.f64 1 y) z) (fma.f64 (-.f64 1 y) z 1) 1)) | |
| ▶ | 19.1b | (-.f64 x (*.f64 x z)) |
Compiled 248 to 172 computations (30.6% saved)
Found 6 expressions with local error:
| New | Error | Program |
|---|---|---|
| 5.0b | (*.f64 z (-.f64 (*.f64 x y) x)) | |
| 0.0b | (+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x) | |
| 0.0b | (-.f64 (*.f64 x y) x) | |
| 0.0b | (-.f64 (*.f64 x y) x) | |
| ✓ | 0.0b | (+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x) |
| ✓ | 5.0b | (*.f64 z (-.f64 (*.f64 x y) x)) |
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | 0 | (*.f64 z (-.f64 (*.f64 x y) x)) |
| 1.0ms | z | @ | inf | (+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x) |
| 0.0ms | x | @ | 0 | (*.f64 z (-.f64 (*.f64 x y) x)) |
| 0.0ms | z | @ | inf | (*.f64 z (-.f64 (*.f64 x y) x)) |
| 0.0ms | z | @ | -inf | (*.f64 z (-.f64 (*.f64 x y) x)) |
| 1× | batch-egg-rewrite |
| 483× | log-prod_binary64 |
| 440× | prod-exp_binary64 |
| 419× | fma-def_binary64 |
| 365× | pow-prod-down_binary64 |
| 347× | exp-prod_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 21 |
| 1 | 180 | 21 |
| 2 | 2617 | 21 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (-.f64 (*.f64 x y) x)) |
(+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 x (-.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x y) z) (*.f64 (neg.f64 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 x y)) (*.f64 z (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 z) (*.f64 x (-.f64 y 1)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 z) (*.f64 x (-.f64 y 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 z) (*.f64 x (-.f64 y 1))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 z) (*.f64 x (-.f64 y 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 z (*.f64 x (-.f64 y 1))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 x 3)) z) (fma.f64 x (fma.f64 x y x) (pow.f64 (*.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 x x)) z) (fma.f64 x y x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 x 3))) (fma.f64 x (fma.f64 x y x) (pow.f64 (*.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 x x))) (fma.f64 x y x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 z (*.f64 x (-.f64 y 1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 z (*.f64 x (-.f64 y 1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 z (*.f64 x (-.f64 y 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 z (*.f64 x (-.f64 y 1))))) 2)) (cbrt.f64 (log.f64 (*.f64 z (*.f64 x (-.f64 y 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 z (*.f64 x (-.f64 y 1)))))) (sqrt.f64 (log.f64 (*.f64 z (*.f64 x (-.f64 y 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (*.f64 x (-.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 z (*.f64 x (-.f64 y 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z (*.f64 x (-.f64 y 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 x y) (*.f64 z (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x y) z (*.f64 (neg.f64 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 z (*.f64 x (-.f64 y 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 z (*.f64 x (-.f64 y 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 z (*.f64 x (-.f64 y 1)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 z (*.f64 x (-.f64 y 1))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 z (*.f64 x (-.f64 y 1))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 z (*.f64 x (-.f64 y 1))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 z (*.f64 x (-.f64 y 1)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 z (*.f64 x (-.f64 y 1)))) 3) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 z) 1) (log.f64 (*.f64 x (-.f64 y 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 z) (*.f64 (log.f64 (*.f64 x (-.f64 y 1))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 z) 1) (*.f64 (log.f64 (*.f64 x (-.f64 y 1))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 x (-.f64 y 1))) 1) (log.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (*.f64 x (-.f64 y 1))) (*.f64 (log.f64 z) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 x (-.f64 y 1))) 1) (*.f64 (log.f64 z) 1))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2) (fma.f64 z (*.f64 x (-.f64 y 1)) (neg.f64 x))) (/.f64 (*.f64 x x) (fma.f64 z (*.f64 x (-.f64 y 1)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 z (*.f64 x (-.f64 y 1)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)) (pow.f64 (cbrt.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)) 2) (cbrt.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)) (sqrt.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 3)) (/.f64 1 (fma.f64 x (-.f64 x (*.f64 z (*.f64 x (-.f64 y 1)))) (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2) (*.f64 x x)) (/.f64 1 (fma.f64 z (*.f64 x (-.f64 y 1)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x (-.f64 x (*.f64 z (*.f64 x (-.f64 y 1)))) (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2)) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) (neg.f64 x)) (-.f64 (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 3)) (fma.f64 x (-.f64 x (*.f64 z (*.f64 x (-.f64 y 1)))) (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 3)) (fma.f64 x x (-.f64 (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2) (*.f64 z (*.f64 (*.f64 x (-.f64 y 1)) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2) (*.f64 x x)) (fma.f64 z (*.f64 x (-.f64 y 1)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 3))) (neg.f64 (fma.f64 x (-.f64 x (*.f64 z (*.f64 x (-.f64 y 1)))) (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2) (*.f64 x x))) (neg.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2)) (-.f64 x (*.f64 z (*.f64 x (-.f64 y 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x (-.f64 x (*.f64 z (*.f64 x (-.f64 y 1)))) (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2)) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) (neg.f64 x)) (-.f64 (pow.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 2) (*.f64 x x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x))) 2)) (cbrt.f64 (log.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)))) (sqrt.f64 (log.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (pow.f64 (exp.f64 z) (*.f64 x (-.f64 y 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (+.f64 1 (expm1.f64 (*.f64 z (*.f64 x (-.f64 y 1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (+.f64 1 (expm1.f64 (*.f64 z (*.f64 x (-.f64 y 1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z (*.f64 x (-.f64 y 1))))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 z) (*.f64 x (-.f64 y 1))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z (*.f64 x (-.f64 y 1))))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 x (-.f64 y 1)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 z (*.f64 x (-.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (-.f64 y 1)) z x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (*.f64 x (-.f64 y 1))) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 z (*.f64 x (-.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z (*.f64 x (-.f64 y 1))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) (*.f64 x (-.f64 y 1))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 y 1))) 2) (*.f64 (cbrt.f64 (*.f64 x (-.f64 y 1))) z) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (*.f64 z (*.f64 x (-.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 z (*.f64 x (-.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z (*.f64 x (-.f64 y 1)))) (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x (-.f64 y 1)))) 2) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x (-.f64 y 1)))) 2) (cbrt.f64 (*.f64 z (*.f64 x (-.f64 y 1)))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (*.f64 x (-.f64 y 1))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (-.f64 y 1))) (*.f64 (sqrt.f64 (*.f64 x (-.f64 y 1))) z) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 z (*.f64 x (-.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z (*.f64 x (-.f64 y 1)))) (sqrt.f64 (*.f64 z (*.f64 x (-.f64 y 1)))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 (*.f64 x (-.f64 y 1))) 2)) (cbrt.f64 (*.f64 x (-.f64 y 1))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 (*.f64 x (-.f64 y 1)))) (sqrt.f64 (*.f64 x (-.f64 y 1))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (-.f64 y 1)) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (-.f64 y 1)) (sqrt.f64 z)) (sqrt.f64 z) x)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 z (*.f64 x (-.f64 y 1)) x)) 1) 1)))))) |
| 1× | egg-herbie |
| 736× | fma-def_binary64 |
| 476× | fma-neg_binary64 |
| 147× | distribute-rgt-in_binary64 |
| 129× | distribute-lft-in_binary64 |
| 116× | unsub-neg_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 30 | 723 |
| 1 | 80 | 722 |
| 2 | 210 | 722 |
| 3 | 506 | 722 |
| 4 | 1172 | 722 |
| 5 | 2361 | 722 |
| 6 | 2670 | 722 |
| 7 | 2741 | 722 |
| 8 | 2741 | 722 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
x |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
| Outputs |
|---|
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 -1 (*.f64 z x)) |
(neg.f64 (*.f64 x z)) |
(*.f64 x (neg.f64 z)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 x z)) |
(*.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 x z)) |
(*.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
x |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (*.f64 z (-.f64 y 1))) |
(*.f64 x (-.f64 (*.f64 y z) z)) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(+.f64 (*.f64 (-.f64 (*.f64 y x) x) z) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 -1 y)) z) 1) x)) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(fma.f64 -1 (*.f64 x z) x) |
(-.f64 x (*.f64 x z)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 x z)) |
(*.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 x z)) |
(*.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(fma.f64 (-.f64 (*.f64 y x) x) z x) |
(fma.f64 z (-.f64 (*.f64 y x) x) x) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (-.f64 x (*.f64 x z)) | |
| ✓ | 0.0b | (-.f64 x (*.f64 x z)) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | 0 | (-.f64 x (*.f64 x z)) |
| 1.0ms | x | @ | inf | (-.f64 x (*.f64 x z)) |
| 0.0ms | x | @ | -inf | (-.f64 x (*.f64 x z)) |
| 0.0ms | z | @ | -inf | (-.f64 x (*.f64 x z)) |
| 0.0ms | z | @ | 0 | (-.f64 x (*.f64 x z)) |
| 1× | batch-egg-rewrite |
| 649× | pow1_binary64 |
| 604× | add-log-exp_binary64 |
| 604× | log1p-expm1-u_binary64 |
| 604× | expm1-log1p-u_binary64 |
| 591× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 5 | 7 |
| 1 | 113 | 7 |
| 2 | 1644 | 7 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 x (*.f64 x z)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 (*.f64 x (neg.f64 z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 z) x (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 x) z (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 x z)) (fma.f64 (*.f64 x (neg.f64 z)) 1 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x z))) (pow.f64 (cbrt.f64 (*.f64 x z)) 2) (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 x z))) (sqrt.f64 (*.f64 x z)) (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (neg.f64 z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (*.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 x (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) (pow.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) 2) (cbrt.f64 (-.f64 x (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 x (*.f64 x z))) (sqrt.f64 (-.f64 x (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2)) (/.f64 1 (+.f64 x (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x z))) (-.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z)))) (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 x (*.f64 x z)) (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2)) (+.f64 x (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3))) (neg.f64 (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2))) (neg.f64 (+.f64 x (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x (neg.f64 z)) 3)) (+.f64 (*.f64 x x) (-.f64 (*.f64 (*.f64 x (neg.f64 z)) (*.f64 x (neg.f64 z))) (*.f64 x (*.f64 x (neg.f64 z))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 x (neg.f64 z)) (*.f64 x (neg.f64 z)))) (-.f64 x (*.f64 x (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 x (*.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 x (*.f64 x z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 x (*.f64 x z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 x (*.f64 x z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 x (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 x (*.f64 x z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 x (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 x (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 x (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 x (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 x (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 x (*.f64 x z)))))))) |
| 1× | egg-herbie |
| 145× | fma-def_binary64 |
| 71× | fma-neg_binary64 |
| 21× | cancel-sign-sub-inv_binary64 |
| 19× | sub-neg_binary64 |
| 18× | associate-*r*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 160 |
| 1 | 28 | 160 |
| 2 | 49 | 160 |
| 3 | 88 | 160 |
| 4 | 136 | 160 |
| 5 | 223 | 160 |
| 6 | 361 | 160 |
| 7 | 441 | 160 |
| 8 | 510 | 160 |
| 9 | 516 | 160 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
x |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
| Outputs |
|---|
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
x |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 (neg.f64 z) x) |
(*.f64 z (neg.f64 x)) |
(*.f64 x (neg.f64 z)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 (neg.f64 z) x) |
(*.f64 z (neg.f64 x)) |
(*.f64 x (neg.f64 z)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| 3.5b | (*.f64 y (*.f64 z x)) | |
| ✓ | 3.5b | (*.f64 y (*.f64 z x)) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | inf | (*.f64 y (*.f64 z x)) |
| 1.0ms | y | @ | 0 | (*.f64 y (*.f64 z x)) |
| 1.0ms | y | @ | inf | (*.f64 y (*.f64 z x)) |
| 1.0ms | z | @ | -inf | (*.f64 y (*.f64 z x)) |
| 1.0ms | z | @ | 0 | (*.f64 y (*.f64 z x)) |
| 1× | batch-egg-rewrite |
| 582× | pow1_binary64 |
| 532× | add-log-exp_binary64 |
| 532× | log1p-expm1-u_binary64 |
| 532× | expm1-log1p-u_binary64 |
| 519× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 7 |
| 1 | 119 | 7 |
| 2 | 1454 | 7 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y (*.f64 z x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 y (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (*.f64 z x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (*.f64 z x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 y) (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (*.f64 z x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (*.f64 z x)))))))) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 0 | 0 |
| 1× | saturated |
| Inputs |
|---|
| Outputs |
|---|
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| 7.3b | (*.f64 z (*.f64 y x)) | |
| ✓ | 7.3b | (*.f64 z (*.f64 y x)) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | z | @ | 0 | (*.f64 z (*.f64 y x)) |
| 0.0ms | x | @ | -inf | (*.f64 z (*.f64 y x)) |
| 0.0ms | y | @ | -inf | (*.f64 z (*.f64 y x)) |
| 0.0ms | z | @ | -inf | (*.f64 z (*.f64 y x)) |
| 0.0ms | z | @ | inf | (*.f64 z (*.f64 y x)) |
| 1× | batch-egg-rewrite |
| 582× | pow1_binary64 |
| 532× | add-log-exp_binary64 |
| 532× | log1p-expm1-u_binary64 |
| 532× | expm1-log1p-u_binary64 |
| 519× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 7 |
| 1 | 119 | 7 |
| 2 | 1454 | 7 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (*.f64 y x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 z (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (*.f64 y x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 z (*.f64 y x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 z (*.f64 y x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 z (*.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (*.f64 y x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 z (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 z (*.f64 y x)))))))) |
| 1× | egg-herbie |
| 5× | *-commutative_binary64 |
| 3× | associate-*r*_binary64 |
| 3× | associate-*l*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 252 |
| 1 | 10 | 252 |
| 2 | 17 | 252 |
| 3 | 19 | 252 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
| Outputs |
|---|
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| 2.5b | (*.f64 x (-.f64 1 (*.f64 y (neg.f64 z)))) | |
| ✓ | 2.5b | (*.f64 x (-.f64 1 (*.f64 y (neg.f64 z)))) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | z | @ | 0 | (*.f64 x (-.f64 1 (*.f64 y (neg.f64 z)))) |
| 1.0ms | y | @ | 0 | (*.f64 x (-.f64 1 (*.f64 y (neg.f64 z)))) |
| 1.0ms | x | @ | 0 | (*.f64 x (-.f64 1 (*.f64 y (neg.f64 z)))) |
| 1.0ms | y | @ | inf | (*.f64 x (-.f64 1 (*.f64 y (neg.f64 z)))) |
| 1.0ms | z | @ | inf | (*.f64 x (-.f64 1 (*.f64 y (neg.f64 z)))) |
| 1× | batch-egg-rewrite |
| 812× | pow1_binary64 |
| 748× | add-log-exp_binary64 |
| 748× | log1p-expm1-u_binary64 |
| 748× | expm1-log1p-u_binary64 |
| 733× | add-exp-log_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 12 |
| 1 | 188 | 10 |
| 2 | 2493 | 10 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 x (-.f64 1 (*.f64 y (neg.f64 z)))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 (*.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.f64 x (*.f64 (*.f64 y z) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (*.f64 y z) 3)) x) (+.f64 1 (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (*.f64 y z) 2)) x) (+.f64 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1 (pow.f64 (*.f64 y z) 3))) (+.f64 1 (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1 (pow.f64 (*.f64 y z) 2))) (+.f64 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 (*.f64 y z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 x (*.f64 (*.f64 y z) x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 x (*.f64 (*.f64 y z) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 x (*.f64 (*.f64 y z) x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 x (*.f64 (*.f64 y z) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (+.f64 1 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 x (*.f64 (*.f64 y z) x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (+.f64 1 (*.f64 y z)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 1 (*.f64 y z)) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 x (*.f64 (*.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 x (*.f64 (*.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log1p.f64 (*.f64 y z)) (log.f64 x))))))) |
| 1× | egg-herbie |
| 290× | fma-def_binary64 |
| 60× | fma-neg_binary64 |
| 55× | associate-*l*_binary64 |
| 49× | unsub-neg_binary64 |
| 48× | associate-*r*_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 390 |
| 1 | 31 | 270 |
| 2 | 72 | 270 |
| 3 | 159 | 270 |
| 4 | 334 | 270 |
| 5 | 505 | 270 |
| 6 | 690 | 270 |
| 7 | 792 | 270 |
| 8 | 924 | 270 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
| Outputs |
|---|
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (fma.f64 y z 1) x) |
(fma.f64 z (*.f64 y x) x) |
Compiled 3456 to 1665 computations (51.8% saved)
14 alts after pruning (10 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 254 | 6 | 260 |
| Fresh | 2 | 4 | 6 |
| Picked | 1 | 0 | 1 |
| Done | 1 | 4 | 5 |
| Total | 258 | 14 | 272 |
| Status | Error | Program |
|---|---|---|
| ✓ | 2.6b | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| ✓ | 46.9b | (*.f64 z (*.f64 y x)) |
| ▶ | 36.5b | (pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2) |
| ▶ | 19.1b | (*.f64 (-.f64 1 z) x) |
| 33.4b | x | |
| 55.8b | (pow.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 2) | |
| ✓ | 19.1b | (-.f64 x (*.f64 x z)) |
| 47.1b | (*.f64 x (*.f64 y z)) | |
| ▶ | 17.0b | (+.f64 (*.f64 y (*.f64 z x)) x) |
| ✓ | 45.9b | (*.f64 y (*.f64 z x)) |
| ▶ | 32.6b | (*.f64 (-.f64 (*.f64 y x) x) z) |
| ▶ | 48.4b | (*.f64 x (neg.f64 z)) |
| 17.9b | (+.f64 x (*.f64 x (*.f64 y z))) | |
| 26.3b | (+.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 x x)) z) (fma.f64 x y x)) x) |
Compiled 240 to 159 computations (33.8% saved)
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| 3.5b | (*.f64 y (*.f64 z x)) | |
| 0.0b | (+.f64 (*.f64 y (*.f64 z x)) x) | |
| ✓ | 0.0b | (+.f64 (*.f64 y (*.f64 z x)) x) |
| 3.5b | (*.f64 y (*.f64 z x)) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 y (*.f64 z x)) x) |
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 y (*.f64 z x)) x) |
| 0.0ms | x | @ | 0 | (+.f64 (*.f64 y (*.f64 z x)) x) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 y (*.f64 z x)) x) |
| 0.0ms | x | @ | inf | (+.f64 (*.f64 y (*.f64 z x)) x) |
| 1× | batch-egg-rewrite |
| 836× | pow1_binary64 |
| 774× | add-log-exp_binary64 |
| 774× | log1p-expm1-u_binary64 |
| 774× | expm1-log1p-u_binary64 |
| 756× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 8 |
| 1 | 151 | 8 |
| 2 | 2105 | 8 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 y (*.f64 z x)) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 y (*.f64 z x) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (-.f64 (*.f64 y (*.f64 z x)) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 y (*.f64 z x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (*.f64 y z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y (*.f64 z x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y (*.f64 z x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y (*.f64 z x) x)) (pow.f64 (cbrt.f64 (fma.f64 y (*.f64 z x) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 y (*.f64 z x) x)) 2) (cbrt.f64 (fma.f64 y (*.f64 z x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 y (*.f64 z x) x)) (sqrt.f64 (fma.f64 y (*.f64 z x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 y (*.f64 z x)) 3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x (-.f64 x (*.f64 y (*.f64 z x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x)) (/.f64 1 (-.f64 (*.f64 y (*.f64 z x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y z) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x (-.f64 x (*.f64 y (*.f64 z x))))) (+.f64 (pow.f64 (*.f64 y (*.f64 z x)) 3) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 y (*.f64 z x)) x) (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y (*.f64 z x)) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x (-.f64 x (*.f64 y (*.f64 z x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y (*.f64 z x)) 3) (pow.f64 x 3)) (+.f64 (*.f64 x x) (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 y (*.f64 (*.f64 z x) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x)) (-.f64 (*.f64 y (*.f64 z x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y (*.f64 z x)) 3) (pow.f64 x 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x (-.f64 x (*.f64 y (*.f64 z x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x))) (neg.f64 (-.f64 (*.f64 y (*.f64 z x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 y (*.f64 z x)) 2)) (-.f64 x (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y (*.f64 z x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y (*.f64 z x) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y (*.f64 z x) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 y (*.f64 z x) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 y (*.f64 z x) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y (*.f64 z x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 y (*.f64 z x) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 y (*.f64 z x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 z x) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z x) y x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 y (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y (*.f64 z x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 z x))) 2) (cbrt.f64 (*.f64 y (*.f64 z x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 y (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) (sqrt.f64 (*.f64 y (*.f64 z x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 y (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y z) x x)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y (*.f64 z x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y (*.f64 z x) x))))))) |
| 1× | egg-herbie |
| 168× | fma-def_binary64 |
| 124× | fma-neg_binary64 |
| 60× | associate-*l*_binary64 |
| 51× | associate-*r*_binary64 |
| 44× | unsub-neg_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 15 | 126 |
| 1 | 36 | 126 |
| 2 | 88 | 126 |
| 3 | 221 | 126 |
| 4 | 441 | 126 |
| 5 | 671 | 126 |
| 6 | 807 | 126 |
| 7 | 853 | 126 |
| 1× | saturated |
| Inputs |
|---|
x |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
x |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
| Outputs |
|---|
x |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 x z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 x z)) |
(*.f64 x (*.f64 y z)) |
x |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 x z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 x z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 x z) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 x z) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 x z) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 x z) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 x z) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 x z) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 x z) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 x z) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 x z) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 x z) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 x z) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 x z) x) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (*.f64 (-.f64 1 z) x) | |
| ✓ | 0.0b | (*.f64 (-.f64 1 z) x) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | inf | (*.f64 (-.f64 1 z) x) |
| 0.0ms | x | @ | -inf | (*.f64 (-.f64 1 z) x) |
| 0.0ms | z | @ | 0 | (*.f64 (-.f64 1 z) x) |
| 0.0ms | x | @ | 0 | (*.f64 (-.f64 1 z) x) |
| 0.0ms | z | @ | inf | (*.f64 (-.f64 1 z) x) |
| 1× | batch-egg-rewrite |
| 617× | pow1_binary64 |
| 572× | add-log-exp_binary64 |
| 572× | log1p-expm1-u_binary64 |
| 572× | expm1-log1p-u_binary64 |
| 561× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 7 |
| 1 | 122 | 7 |
| 2 | 1509 | 7 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 1 z) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 (neg.f64 z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (-.f64 1 z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 z 3)) x) (+.f64 1 (fma.f64 z z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 z z)) x) (+.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (pow.f64 z 3))) (+.f64 1 (fma.f64 z z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (*.f64 z z))) (+.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1 z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1 z) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 1 z) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 1 z) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (-.f64 1 z) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 1 z) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 1 z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 1 z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 1 z) x))))))) |
| 1× | egg-herbie |
| 140× | fma-def_binary64 |
| 84× | fma-neg_binary64 |
| 20× | cancel-sign-sub-inv_binary64 |
| 19× | associate-*r*_binary64 |
| 19× | associate-*l*_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 85 |
| 1 | 14 | 76 |
| 2 | 33 | 76 |
| 3 | 51 | 76 |
| 4 | 72 | 76 |
| 5 | 146 | 76 |
| 6 | 273 | 76 |
| 7 | 382 | 76 |
| 8 | 462 | 76 |
| 9 | 526 | 76 |
| 1× | saturated |
| Inputs |
|---|
x |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
| Outputs |
|---|
x |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(fma.f64 -1 (*.f64 x z) x) |
(-.f64 x (*.f64 x z)) |
(fma.f64 z (neg.f64 x) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(fma.f64 -1 (*.f64 x z) x) |
(-.f64 x (*.f64 x z)) |
(fma.f64 z (neg.f64 x) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(fma.f64 -1 (*.f64 x z) x) |
(-.f64 x (*.f64 x z)) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 -1 (*.f64 z x)) |
(neg.f64 (*.f64 x z)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(fma.f64 -1 (*.f64 x z) x) |
(-.f64 x (*.f64 x z)) |
(fma.f64 z (neg.f64 x) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(fma.f64 -1 (*.f64 x z) x) |
(-.f64 x (*.f64 x z)) |
(fma.f64 z (neg.f64 x) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(fma.f64 -1 (*.f64 x z) x) |
(-.f64 x (*.f64 x z)) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 -1 (*.f64 z x)) |
(neg.f64 (*.f64 x z)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(fma.f64 -1 (*.f64 x z) x) |
(-.f64 x (*.f64 x z)) |
(fma.f64 z (neg.f64 x) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(fma.f64 -1 (*.f64 x z) x) |
(-.f64 x (*.f64 x z)) |
(fma.f64 z (neg.f64 x) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(fma.f64 -1 (*.f64 x z) x) |
(-.f64 x (*.f64 x z)) |
(fma.f64 z (neg.f64 x) x) |
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| 5.0b | (*.f64 (-.f64 (*.f64 y x) x) z) | |
| 0.0b | (-.f64 (*.f64 y x) x) | |
| ✓ | 0.0b | (-.f64 (*.f64 y x) x) |
| ✓ | 5.0b | (*.f64 (-.f64 (*.f64 y x) x) z) |
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (*.f64 (-.f64 (*.f64 y x) x) z) |
| 0.0ms | y | @ | inf | (*.f64 (-.f64 (*.f64 y x) x) z) |
| 0.0ms | y | @ | -inf | (*.f64 (-.f64 (*.f64 y x) x) z) |
| 0.0ms | z | @ | -inf | (*.f64 (-.f64 (*.f64 y x) x) z) |
| 0.0ms | x | @ | -inf | (*.f64 (-.f64 (*.f64 y x) x) z) |
| 1× | batch-egg-rewrite |
| 826× | pow1_binary64 |
| 764× | add-log-exp_binary64 |
| 764× | log1p-expm1-u_binary64 |
| 764× | expm1-log1p-u_binary64 |
| 747× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 17 |
| 1 | 150 | 17 |
| 2 | 2055 | 17 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 (*.f64 y x) x) z) |
(-.f64 (*.f64 y x) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y x) z) (*.f64 (neg.f64 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 y x)) (*.f64 z (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (-.f64 (*.f64 y x) x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 x 3)) z) (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x (fma.f64 y x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x x)) z) (fma.f64 y x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 x 3))) (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x (fma.f64 y x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x x))) (fma.f64 y x x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 (*.f64 y x) x) 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 z 3) (pow.f64 (-.f64 (*.f64 y x) x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 (*.f64 y x) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 (*.f64 y x) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 (*.f64 y x) x) z))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y x) x) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y x) x) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y x) x) (fma.f64 (neg.f64 (sqrt.f64 x)) (sqrt.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 x) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 y 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 y x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 y x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (*.f64 y x) x)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 y x) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 y x) x)) 2) (cbrt.f64 (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 y x) x)) (sqrt.f64 (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x (fma.f64 y x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x x)) (/.f64 1 (fma.f64 y x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x (fma.f64 y x x))) (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 y x x) (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x (fma.f64 y x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x x)) (fma.f64 y x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 x 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x (fma.f64 y x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x x))) (neg.f64 (fma.f64 y x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 (neg.f64 x) 3)) (+.f64 (pow.f64 (*.f64 y x) 2) (-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (*.f64 y x) (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 (neg.f64 x) (neg.f64 x))) (-.f64 (*.f64 y x) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 y x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (*.f64 y x) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (*.f64 y x) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (*.f64 y x) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (*.f64 y x) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (*.f64 y x) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y x (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x y (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y x) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (cbrt.f64 (*.f64 y x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 (*.f64 y x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (*.f64 y x) x))))))) |
| 1× | egg-herbie |
| 428× | fma-def_binary64 |
| 214× | fma-neg_binary64 |
| 76× | cancel-sign-sub-inv_binary64 |
| 72× | distribute-rgt-in_binary64 |
| 61× | distribute-lft-in_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 22 | 388 |
| 1 | 60 | 388 |
| 2 | 152 | 388 |
| 3 | 304 | 388 |
| 4 | 647 | 388 |
| 5 | 1057 | 388 |
| 6 | 1447 | 388 |
| 7 | 1507 | 388 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 -1 x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
| Outputs |
|---|
(*.f64 -1 (*.f64 z x)) |
(neg.f64 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 x (*.f64 z y)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 x (*.f64 z y)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) |
(*.f64 (*.f64 z x) (+.f64 y -1)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 -1 x) |
(neg.f64 x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 x (+.f64 -1 y)) |
Found 8 expressions with local error:
| New | Error | Program |
|---|---|---|
| 2.5b | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) | |
| 0.2b | (pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2) | |
| 0.1b | (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) | |
| 0.0b | (*.f64 (-.f64 1 y) z) | |
| 0.0b | (*.f64 (-.f64 1 y) z) | |
| ✓ | 0.1b | (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) |
| ✓ | 0.2b | (pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2) |
| 2.5b | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 4.0ms | z | @ | -inf | (pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2) |
| 2.0ms | y | @ | inf | (pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2) |
| 2.0ms | z | @ | inf | (pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2) |
| 2.0ms | x | @ | -inf | (pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2) |
| 2.0ms | x | @ | 0 | (pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2) |
| 1× | batch-egg-rewrite |
| 555× | prod-diff_binary64 |
| 541× | log-prod_binary64 |
| 348× | pow-prod-down_binary64 |
| 294× | pow2_binary64 |
| 210× | fma-def_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 28 |
| 1 | 259 | 28 |
| 2 | 3001 | 28 |
| 1× | node limit |
| Inputs |
|---|
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2) |
(sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 (*.f64 (-.f64 1 y) (neg.f64 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x (*.f64 (-.f64 1 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))) 2) (*.f64 (cbrt.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (-.f64 1 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) (pow.f64 (cbrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2) (cbrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))) (*.f64 (sqrt.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (-.f64 1 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (pow.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1/4) (sqrt.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 3/2)) (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))) 2)) (cbrt.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (sqrt.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)))) (sqrt.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) (cbrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))) (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) x) 1/2) (sqrt.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 (-.f64 1 y) z) 3)) x) (fma.f64 (*.f64 (-.f64 1 y) z) (fma.f64 (-.f64 1 y) z 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 (-.f64 1 y) z) 2)) x) (fma.f64 (-.f64 1 y) z 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (pow.f64 (*.f64 (-.f64 1 y) z) 3))) (fma.f64 (*.f64 (-.f64 1 y) z) (fma.f64 (-.f64 1 y) z 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (pow.f64 (*.f64 (-.f64 1 y) z) 2))) (fma.f64 (-.f64 1 y) z 1))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 (*.f64 (-.f64 1 y) (neg.f64 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 x (*.f64 (-.f64 1 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 (*.f64 (-.f64 1 y) (neg.f64 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 x (*.f64 (-.f64 1 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (*.f64 (*.f64 (-.f64 1 y) (neg.f64 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (*.f64 x (*.f64 (-.f64 1 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 (*.f64 (-.f64 1 y) (neg.f64 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 x (*.f64 (-.f64 1 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 (*.f64 (-.f64 1 y) (neg.f64 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 x (*.f64 (-.f64 1 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 1)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1/6) (cbrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (sqrt.f64 (-.f64 1 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1/4) (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))) 1)))))) |
| 1× | egg-herbie |
| 786× | associate-*r*_binary64 |
| 743× | associate-*l*_binary64 |
| 692× | fma-def_binary64 |
| 440× | unswap-sqr_binary64 |
| 306× | *-commutative_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 96 | 387 |
| 1 | 310 | 375 |
| 2 | 1168 | 351 |
| 3 | 6721 | 351 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 1 z) x) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 z 2) x) (-.f64 1 z))) (*.f64 1/4 (/.f64 (*.f64 (pow.f64 z 2) x) (-.f64 1 z))))) (+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))) |
(+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 z 2) x) (-.f64 1 z))) (*.f64 1/4 (/.f64 (*.f64 (pow.f64 z 2) x) (-.f64 1 z))))) (+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 (pow.f64 y 3) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 z 3) x) (pow.f64 (-.f64 1 z) 2))) (*.f64 1/8 (/.f64 (*.f64 (pow.f64 z 3) x) (pow.f64 (-.f64 1 z) 2))))) (*.f64 (-.f64 1 z) x)))) |
x |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 (*.f64 (+.f64 (*.f64 1/4 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 -1/4 (*.f64 (pow.f64 (-.f64 y 1) 2) x))) (pow.f64 z 2)) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)) |
(+.f64 (*.f64 (+.f64 (*.f64 1/4 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 -1/4 (*.f64 (pow.f64 (-.f64 y 1) 2) x))) (pow.f64 z 2)) (+.f64 (*.f64 (+.f64 (*.f64 1/8 (*.f64 (pow.f64 (-.f64 y 1) 3) x)) (*.f64 -1/8 (*.f64 (pow.f64 (-.f64 y 1) 3) x))) (pow.f64 z 3)) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x))) |
(sqrt.f64 (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 x (-.f64 1 z))))) (sqrt.f64 (*.f64 (-.f64 1 z) x))) |
(+.f64 (*.f64 1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 x (-.f64 1 z))))) (+.f64 (sqrt.f64 (*.f64 (-.f64 1 z) x)) (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 3))))))) |
(+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 5))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 x (-.f64 1 z))))) (+.f64 (sqrt.f64 (*.f64 (-.f64 1 z) x)) (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 3)))))))) |
(sqrt.f64 x) |
(+.f64 (*.f64 1/2 (*.f64 (*.f64 z (-.f64 y 1)) (sqrt.f64 x))) (sqrt.f64 x)) |
(+.f64 (*.f64 1/2 (*.f64 (*.f64 z (-.f64 y 1)) (sqrt.f64 x))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 z 2) (pow.f64 (-.f64 y 1) 2)) (sqrt.f64 x))) (sqrt.f64 x))) |
(+.f64 (*.f64 1/2 (*.f64 (*.f64 z (-.f64 y 1)) (sqrt.f64 x))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y 1) 3)) (sqrt.f64 x))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 z 2) (pow.f64 (-.f64 y 1) 2)) (sqrt.f64 x))) (sqrt.f64 x)))) |
| Outputs |
|---|
(*.f64 (-.f64 1 z) x) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(fma.f64 y (*.f64 z x) (*.f64 (-.f64 1 z) x)) |
(*.f64 x (+.f64 (*.f64 z y) (-.f64 1 z))) |
(*.f64 x (fma.f64 z y (-.f64 1 z))) |
(+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 z 2) x) (-.f64 1 z))) (*.f64 1/4 (/.f64 (*.f64 (pow.f64 z 2) x) (-.f64 1 z))))) (+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))) |
(fma.f64 y (*.f64 z x) (*.f64 (-.f64 1 z) x)) |
(*.f64 x (+.f64 (*.f64 z y) (-.f64 1 z))) |
(*.f64 x (fma.f64 z y (-.f64 1 z))) |
(+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 z 2) x) (-.f64 1 z))) (*.f64 1/4 (/.f64 (*.f64 (pow.f64 z 2) x) (-.f64 1 z))))) (+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 (pow.f64 y 3) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 z 3) x) (pow.f64 (-.f64 1 z) 2))) (*.f64 1/8 (/.f64 (*.f64 (pow.f64 z 3) x) (pow.f64 (-.f64 1 z) 2))))) (*.f64 (-.f64 1 z) x)))) |
(fma.f64 y (*.f64 z x) (*.f64 (-.f64 1 z) x)) |
(*.f64 x (+.f64 (*.f64 z y) (-.f64 1 z))) |
(*.f64 x (fma.f64 z y (-.f64 1 z))) |
x |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(fma.f64 y (*.f64 z x) (*.f64 (-.f64 1 z) x)) |
(*.f64 x (+.f64 (*.f64 z y) (-.f64 1 z))) |
(*.f64 x (fma.f64 z y (-.f64 1 z))) |
(+.f64 (*.f64 (+.f64 (*.f64 1/4 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 -1/4 (*.f64 (pow.f64 (-.f64 y 1) 2) x))) (pow.f64 z 2)) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)) |
(fma.f64 y (*.f64 z x) (*.f64 (-.f64 1 z) x)) |
(*.f64 x (+.f64 (*.f64 z y) (-.f64 1 z))) |
(*.f64 x (fma.f64 z y (-.f64 1 z))) |
(+.f64 (*.f64 (+.f64 (*.f64 1/4 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 -1/4 (*.f64 (pow.f64 (-.f64 y 1) 2) x))) (pow.f64 z 2)) (+.f64 (*.f64 (+.f64 (*.f64 1/8 (*.f64 (pow.f64 (-.f64 y 1) 3) x)) (*.f64 -1/8 (*.f64 (pow.f64 (-.f64 y 1) 3) x))) (pow.f64 z 3)) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x))) |
(fma.f64 y (*.f64 z x) (*.f64 (-.f64 1 z) x)) |
(*.f64 x (+.f64 (*.f64 z y) (-.f64 1 z))) |
(*.f64 x (fma.f64 z y (-.f64 1 z))) |
(sqrt.f64 (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 x (-.f64 1 z))))) (sqrt.f64 (*.f64 (-.f64 1 z) x))) |
(fma.f64 1/2 (*.f64 y (*.f64 z (sqrt.f64 (/.f64 x (-.f64 1 z))))) (sqrt.f64 (*.f64 (-.f64 1 z) x))) |
(fma.f64 y (*.f64 (sqrt.f64 (/.f64 x (-.f64 1 z))) (*.f64 z 1/2)) (sqrt.f64 (*.f64 (-.f64 1 z) x))) |
(+.f64 (*.f64 1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 x (-.f64 1 z))))) (+.f64 (sqrt.f64 (*.f64 (-.f64 1 z) x)) (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 3))))))) |
(+.f64 (fma.f64 1/2 (*.f64 y (*.f64 z (sqrt.f64 (/.f64 x (-.f64 1 z))))) (sqrt.f64 (*.f64 (-.f64 1 z) x))) (*.f64 -1/8 (*.f64 (*.f64 (*.f64 y y) (*.f64 z z)) (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 3)))))) |
(fma.f64 1/2 (*.f64 y (*.f64 z (sqrt.f64 (/.f64 x (-.f64 1 z))))) (fma.f64 -1/8 (*.f64 (*.f64 z z) (*.f64 (*.f64 y y) (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 3))))) (sqrt.f64 (*.f64 (-.f64 1 z) x)))) |
(fma.f64 (*.f64 (*.f64 y y) (*.f64 z z)) (*.f64 -1/8 (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 3)))) (fma.f64 y (*.f64 (sqrt.f64 (/.f64 x (-.f64 1 z))) (*.f64 z 1/2)) (sqrt.f64 (*.f64 (-.f64 1 z) x)))) |
(+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 5))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 x (-.f64 1 z))))) (+.f64 (sqrt.f64 (*.f64 (-.f64 1 z) x)) (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 3)))))))) |
(fma.f64 1/16 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 5))))) (+.f64 (fma.f64 1/2 (*.f64 y (*.f64 z (sqrt.f64 (/.f64 x (-.f64 1 z))))) (sqrt.f64 (*.f64 (-.f64 1 z) x))) (*.f64 -1/8 (*.f64 (*.f64 (*.f64 y y) (*.f64 z z)) (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 3))))))) |
(fma.f64 1/16 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 5))))) (fma.f64 1/2 (*.f64 y (*.f64 z (sqrt.f64 (/.f64 x (-.f64 1 z))))) (fma.f64 -1/8 (*.f64 (*.f64 z z) (*.f64 (*.f64 y y) (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 3))))) (sqrt.f64 (*.f64 (-.f64 1 z) x))))) |
(fma.f64 (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 5))) (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) 1/16)) (fma.f64 (*.f64 (*.f64 y y) (*.f64 z z)) (*.f64 -1/8 (sqrt.f64 (/.f64 x (pow.f64 (-.f64 1 z) 3)))) (fma.f64 y (*.f64 (sqrt.f64 (/.f64 x (-.f64 1 z))) (*.f64 z 1/2)) (sqrt.f64 (*.f64 (-.f64 1 z) x))))) |
(sqrt.f64 x) |
(+.f64 (*.f64 1/2 (*.f64 (*.f64 z (-.f64 y 1)) (sqrt.f64 x))) (sqrt.f64 x)) |
(fma.f64 1/2 (*.f64 (sqrt.f64 x) (*.f64 z (+.f64 y -1))) (sqrt.f64 x)) |
(*.f64 (+.f64 (*.f64 1/2 (*.f64 z (+.f64 y -1))) 1) (sqrt.f64 x)) |
(*.f64 (sqrt.f64 x) (fma.f64 1/2 (fma.f64 z y (neg.f64 z)) 1)) |
(+.f64 (*.f64 1/2 (*.f64 (*.f64 z (-.f64 y 1)) (sqrt.f64 x))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 z 2) (pow.f64 (-.f64 y 1) 2)) (sqrt.f64 x))) (sqrt.f64 x))) |
(fma.f64 1/2 (*.f64 (sqrt.f64 x) (*.f64 z (+.f64 y -1))) (fma.f64 -1/8 (*.f64 (sqrt.f64 x) (*.f64 (*.f64 z z) (pow.f64 (+.f64 y -1) 2))) (sqrt.f64 x))) |
(+.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 1/2 (*.f64 z (+.f64 y -1))) (*.f64 -1/8 (*.f64 (*.f64 z z) (pow.f64 (+.f64 y -1) 2)))))) |
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 (*.f64 z z) -1/8)) (fma.f64 1/2 (fma.f64 z y (neg.f64 z)) 1))) |
(+.f64 (*.f64 1/2 (*.f64 (*.f64 z (-.f64 y 1)) (sqrt.f64 x))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y 1) 3)) (sqrt.f64 x))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 z 2) (pow.f64 (-.f64 y 1) 2)) (sqrt.f64 x))) (sqrt.f64 x)))) |
(fma.f64 1/2 (*.f64 (sqrt.f64 x) (*.f64 z (+.f64 y -1))) (fma.f64 1/16 (*.f64 (pow.f64 z 3) (*.f64 (pow.f64 (+.f64 y -1) 3) (sqrt.f64 x))) (fma.f64 -1/8 (*.f64 (sqrt.f64 x) (*.f64 (*.f64 z z) (pow.f64 (+.f64 y -1) 2))) (sqrt.f64 x)))) |
(+.f64 (*.f64 (+.f64 (*.f64 -1/8 (*.f64 (*.f64 z z) (pow.f64 (+.f64 y -1) 2))) 1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 1/2 (*.f64 z (+.f64 y -1))) (*.f64 1/16 (*.f64 (pow.f64 z 3) (pow.f64 (+.f64 y -1) 3)))))) |
(fma.f64 (sqrt.f64 x) (fma.f64 1/16 (*.f64 (pow.f64 z 3) (pow.f64 (+.f64 y -1) 3)) (*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 (*.f64 z z) -1/8))) (*.f64 (sqrt.f64 x) (fma.f64 1/2 (fma.f64 z y (neg.f64 z)) 1))) |
Compiled 5285 to 3151 computations (40.4% saved)
15 alts after pruning (7 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 348 | 5 | 353 |
| Fresh | 3 | 2 | 5 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 8 | 8 |
| Total | 352 | 15 | 367 |
| Status | Error | Program |
|---|---|---|
| ✓ | 2.6b | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| ✓ | 46.9b | (*.f64 z (*.f64 y x)) |
| 32.7b | (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (sqrt.f64 x)) (sqrt.f64 x)) | |
| ✓ | 48.4b | (*.f64 x (neg.f64 z)) |
| ▶ | 55.8b | (pow.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 2) |
| ▶ | 38.6b | (/.f64 1 (/.f64 (-.f64 (*.f64 y (*.f64 z x)) x) (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x)))) |
| ▶ | 47.1b | (*.f64 x (*.f64 y z)) |
| ✓ | 17.0b | (+.f64 (*.f64 y (*.f64 z x)) x) |
| ✓ | 19.1b | (-.f64 x (*.f64 x z)) |
| ✓ | 45.9b | (*.f64 y (*.f64 z x)) |
| ✓ | 32.6b | (*.f64 (-.f64 (*.f64 y x) x) z) |
| ✓ | 19.1b | (*.f64 (-.f64 1 z) x) |
| 33.4b | x | |
| ▶ | 50.3b | (pow.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) 2) |
| ▶ | 17.9b | (+.f64 x (*.f64 x (*.f64 y z))) |
Compiled 239 to 154 computations (35.6% saved)
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| 5.8b | (*.f64 x (*.f64 y z)) | |
| 0.0b | (+.f64 x (*.f64 x (*.f64 y z))) | |
| ✓ | 0.0b | (+.f64 x (*.f64 x (*.f64 y z))) |
| ✓ | 5.8b | (*.f64 x (*.f64 y z)) |
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | 0 | (*.f64 x (*.f64 y z)) |
| 0.0ms | x | @ | -inf | (+.f64 x (*.f64 x (*.f64 y z))) |
| 0.0ms | x | @ | inf | (*.f64 x (*.f64 y z)) |
| 0.0ms | y | @ | inf | (+.f64 x (*.f64 x (*.f64 y z))) |
| 0.0ms | y | @ | -inf | (+.f64 x (*.f64 x (*.f64 y z))) |
| 1× | batch-egg-rewrite |
| 844× | pow1_binary64 |
| 782× | add-log-exp_binary64 |
| 782× | log1p-expm1-u_binary64 |
| 782× | expm1-log1p-u_binary64 |
| 764× | add-exp-log_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 17 |
| 1 | 150 | 15 |
| 2 | 2114 | 15 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 x (*.f64 y z)) |
(+.f64 x (*.f64 x (*.f64 y z))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (*.f64 y z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (*.f64 y z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (*.f64 y z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (*.f64 y z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 z) y) x))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (*.f64 y z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (*.f64 y z)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 x (*.f64 y z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (-.f64 x (*.f64 x (*.f64 y z)))) (/.f64 (pow.f64 (*.f64 x (*.f64 y z)) 2) (-.f64 x (*.f64 x (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (*.f64 y z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (*.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x (*.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (*.f64 y z) x)) (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 y z) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 y z) x)) 2) (cbrt.f64 (fma.f64 x (*.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (*.f64 y z) x)) (sqrt.f64 (fma.f64 x (*.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x (*.f64 y z)) 3)) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 x (*.f64 y z)) (-.f64 (*.f64 x (*.f64 y z)) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x (*.f64 y z)) 2)) (/.f64 1 (-.f64 x (*.f64 x (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y z) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x (*.f64 (*.f64 x (*.f64 y z)) (-.f64 (*.f64 x (*.f64 y z)) x))) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x (*.f64 y z)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (*.f64 x (*.f64 y z))) (-.f64 (*.f64 x x) (pow.f64 (*.f64 x (*.f64 y z)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x (*.f64 y z)) 3)) (fma.f64 x x (*.f64 (*.f64 x (*.f64 y z)) (-.f64 (*.f64 x (*.f64 y z)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x (*.f64 y z)) 3)) (+.f64 (pow.f64 (*.f64 x (*.f64 y z)) 2) (-.f64 (*.f64 x x) (*.f64 (*.f64 x x) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x (*.f64 y z)) 2)) (-.f64 x (*.f64 x (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x (*.f64 y z)) 3))) (neg.f64 (fma.f64 x x (*.f64 (*.f64 x (*.f64 y z)) (-.f64 (*.f64 x (*.f64 y z)) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x (*.f64 y z)) 2))) (neg.f64 (-.f64 x (*.f64 x (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 y z)) 2) (*.f64 x x)) (-.f64 (*.f64 x (*.f64 y z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (*.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (*.f64 y z) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (*.f64 y z) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (*.f64 y z) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (*.f64 y z) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (*.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (*.f64 y z) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (*.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 y z) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y z) x x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (*.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 y z))) 2) (cbrt.f64 (*.f64 x (*.f64 y z))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (*.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (*.f64 y z))) (sqrt.f64 (*.f64 x (*.f64 y z))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x y) z x)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (*.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x (*.f64 y z) x))))))) |
| 1× | egg-herbie |
| 175× | fma-def_binary64 |
| 124× | fma-neg_binary64 |
| 55× | associate-*l*_binary64 |
| 49× | associate-*r*_binary64 |
| 44× | unsub-neg_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 16 | 522 |
| 1 | 39 | 522 |
| 2 | 93 | 522 |
| 3 | 222 | 522 |
| 4 | 435 | 522 |
| 5 | 664 | 522 |
| 6 | 800 | 522 |
| 7 | 846 | 522 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
| Outputs |
|---|
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (fma.f64 y z 1)) |
(fma.f64 y (*.f64 z x) x) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| 5.8b | (*.f64 x (*.f64 y z)) | |
| 5.8b | (*.f64 x (*.f64 y z)) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 0 | 0 |
| 1× | saturated |
| Inputs |
|---|
| Outputs |
|---|
Found 8 expressions with local error:
| New | Error | Program |
|---|---|---|
| 3.5b | (*.f64 y (*.f64 z x)) | |
| 0.3b | (pow.f64 (*.f64 y (*.f64 z x)) 2) | |
| 0.2b | (/.f64 1 (/.f64 (-.f64 (*.f64 y (*.f64 z x)) x) (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x)))) | |
| 0.0b | (-.f64 (*.f64 y (*.f64 z x)) x) | |
| ✓ | 0.3b | (pow.f64 (*.f64 y (*.f64 z x)) 2) |
| 3.5b | (*.f64 y (*.f64 z x)) | |
| ✓ | 4.1b | (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x)) |
| ✓ | 26.3b | (/.f64 (-.f64 (*.f64 y (*.f64 z x)) x) (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x))) |
27 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | y | @ | inf | (/.f64 (-.f64 (*.f64 y (*.f64 z x)) x) (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x))) |
| 1.0ms | x | @ | -inf | (pow.f64 (*.f64 y (*.f64 z x)) 2) |
| 1.0ms | x | @ | 0 | (/.f64 (-.f64 (*.f64 y (*.f64 z x)) x) (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x))) |
| 1.0ms | x | @ | -inf | (/.f64 (-.f64 (*.f64 y (*.f64 z x)) x) (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x))) |
| 1.0ms | x | @ | inf | (/.f64 (-.f64 (*.f64 y (*.f64 z x)) x) (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x))) |
| 1× | batch-egg-rewrite |
| 747× | log-prod_binary64 |
| 585× | fma-def_binary64 |
| 323× | fma-neg_binary64 |
| 248× | pow1/3_binary64 |
| 241× | expm1-udef_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 54 |
| 1 | 279 | 37 |
| 2 | 4120 | 37 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 (-.f64 (*.f64 y (*.f64 z x)) x) (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x))) |
(-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x)) |
(pow.f64 (*.f64 y (*.f64 z x)) 2) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (*.f64 z x) (/.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) y)) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (fma.f64 z (*.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x)))) (cbrt.f64 (exp.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x)))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 z x) (/.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) y)) (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (fma.f64 y z -1)) (/.f64 1 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (fma.f64 z (*.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (fma.f64 z (*.f64 x y) x))) (pow.f64 (/.f64 1 (cbrt.f64 (fma.f64 z (*.f64 x y) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 1 (cbrt.f64 (fma.f64 z (*.f64 x y) x))) 2) (/.f64 1 (cbrt.f64 (fma.f64 z (*.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y z -1))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 y z -1))) (/.f64 1 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (fma.f64 z (*.f64 x y) x))) (/.f64 1 (sqrt.f64 (fma.f64 z (*.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (fma.f64 y z -1))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 y z -1))) (/.f64 1 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 x (fma.f64 y z -1))) (/.f64 1 (neg.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) (*.f64 x (fma.f64 y z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2))) (/.f64 (*.f64 x (fma.f64 y z -1)) (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))) (/.f64 (*.f64 x (fma.f64 y z -1)) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y z -1))) 2) 1) (/.f64 (cbrt.f64 (*.f64 x (fma.f64 y z -1))) (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 x (fma.f64 y z -1))) 1) (/.f64 (sqrt.f64 (*.f64 x (fma.f64 y z -1))) (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y z -1))) 2) (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2))) (/.f64 1 (cbrt.f64 (fma.f64 z (*.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 x (fma.f64 y z -1))) (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2))) (/.f64 (sqrt.f64 (*.f64 x (fma.f64 y z -1))) (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y z -1))) 2) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))) (/.f64 (cbrt.f64 (*.f64 x (fma.f64 y z -1))) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (fma.f64 y z -1)) (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 6) (pow.f64 x 6))) (fma.f64 (*.f64 x x) (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)) (pow.f64 (*.f64 z (*.f64 x y)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (fma.f64 y z -1)) (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4) (pow.f64 x 4))) (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (fma.f64 z (*.f64 x y) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (sqrt.f64 (fma.f64 z (*.f64 x y) x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 z (*.f64 x y) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 x (fma.f64 y z -1)) 3) (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 z (*.f64 x y) x) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 x (fma.f64 y z -1)) (neg.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 x (fma.f64 y z -1)) 3) (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (*.f64 x y)) (/.f64 1 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 (*.f64 z x) (/.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) y)) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z x) (/.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) y))) (cbrt.f64 (/.f64 (*.f64 z x) (/.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) y)))) (cbrt.f64 (/.f64 (*.f64 z x) (/.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) y))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 (*.f64 z x) (/.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) y))) (sqrt.f64 (/.f64 (*.f64 z x) (/.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) y))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2))) (/.f64 (*.f64 z (*.f64 x y)) (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))) (/.f64 (*.f64 z (*.f64 x y)) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 y 1) (/.f64 (*.f64 z x) (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 z x) 1) (/.f64 y (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2) 1) (/.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) 1) (/.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 y z) 1) (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 y (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2))) (/.f64 (*.f64 z x) (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 z x) (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2))) (/.f64 y (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2) (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2))) (/.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2))) (/.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 y z) (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2))) (/.f64 x (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 y (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))) (/.f64 (*.f64 z x) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 z x) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))) (/.f64 y (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))) (/.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))) (/.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 y z) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))) (/.f64 x (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x))))) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 z (*.f64 x y)) (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 6) (pow.f64 x 6))) (fma.f64 (*.f64 x x) (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)) (pow.f64 (*.f64 z (*.f64 x y)) 4)) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 z (*.f64 x y)) (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4) (pow.f64 x 4))) (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)) (neg.f64 (/.f64 x (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (fma.f64 z (*.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log.f64 (fma.f64 z (*.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (fma.f64 z (*.f64 x y) x))) 1)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) (fma.f64 (neg.f64 x) x (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) (fma.f64 (*.f64 x (neg.f64 x)) 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (pow.f64 x 4)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (neg.f64 x)) (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))) (cbrt.f64 (exp.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))) (log.f64 (cbrt.f64 (exp.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))))) (log.f64 (sqrt.f64 (exp.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2)) (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x)))) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 6) (pow.f64 x 6)) (/.f64 1 (fma.f64 (*.f64 x x) (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)) (pow.f64 (*.f64 z (*.f64 x y)) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 z (*.f64 x y) x) (*.f64 x (fma.f64 y z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4) (pow.f64 x 4)) (/.f64 1 (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 x x) (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)) (pow.f64 (*.f64 z (*.f64 x y)) 4)) (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 6) (pow.f64 x 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)) (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4) (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 6) (pow.f64 x 6)) (fma.f64 (*.f64 x x) (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)) (pow.f64 (*.f64 z (*.f64 x y)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4) (pow.f64 x 4)) (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 6) (pow.f64 x 6))) (neg.f64 (fma.f64 (*.f64 x x) (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)) (pow.f64 (*.f64 z (*.f64 x y)) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4) (pow.f64 x 4))) (neg.f64 (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 z (*.f64 x y)) 6) (pow.f64 (*.f64 x (neg.f64 x)) 3)) (+.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4) (-.f64 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x))) (*.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x (neg.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4) (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 x x) (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)) (pow.f64 (*.f64 z (*.f64 x y)) 4)) (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 6) (pow.f64 x 6))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)) (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4) (pow.f64 x 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2))) (pow.f64 (exp.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2)) (+.f64 1 (expm1.f64 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2))) (+.f64 1 (expm1.f64 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2))) (exp.f64 (*.f64 x (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2)) (/.f64 1 (pow.f64 (exp.f64 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2))) (/.f64 1 (pow.f64 (exp.f64 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x (neg.f64 x))) (exp.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 x) x)) (exp.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x (neg.f64 x))) (+.f64 1 (expm1.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 x) x)) (+.f64 1 (expm1.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 (*.f64 z x) (*.f64 z (*.f64 x y))) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 (*.f64 z x) (*.f64 z (*.f64 x y))) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (neg.f64 x) (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z x) (*.f64 y (*.f64 z (*.f64 x y))) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z x) (*.f64 y (*.f64 z (*.f64 x y))) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (*.f64 x y)) (*.f64 z (*.f64 x y)) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (*.f64 x y)) (*.f64 z (*.f64 x y)) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) 1 (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) 1 (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 1 (fma.f64 (neg.f64 x) x (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 1 (fma.f64 (*.f64 x (neg.f64 x)) 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 1 (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (pow.f64 x 4)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) (fma.f64 (neg.f64 x) x (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) (fma.f64 (*.f64 x (neg.f64 x)) 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (pow.f64 x 4)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (neg.f64 x)) (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2)) (fma.f64 (neg.f64 x) x (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2)) (fma.f64 (*.f64 x (neg.f64 x)) 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (pow.f64 x 4)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2)) (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) (fma.f64 (neg.f64 x) x (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2)) (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) (fma.f64 (*.f64 x (neg.f64 x)) 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x)) 2)) (cbrt.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (pow.f64 x 4)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2) (cbrt.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4)) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2) (cbrt.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4)) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2) (*.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) (*.f64 z (*.f64 x y))) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2) (*.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) (*.f64 z (*.f64 x y))) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4)) (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4)) (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x 4)) (neg.f64 (pow.f64 (cbrt.f64 x) 2)) (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x)))) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x)))) (fma.f64 (neg.f64 x) x (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x)))) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x)))) (fma.f64 (*.f64 x (neg.f64 x)) 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x)))) (hypot.f64 (*.f64 z (*.f64 x y)) (sqrt.f64 (*.f64 x (neg.f64 x)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (pow.f64 x 4)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) (*.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) (*.f64 z (*.f64 x y))) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) (*.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) (*.f64 z (*.f64 x y))) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 x) x (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) (pow.f64 (*.f64 z x) 2) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) (pow.f64 (*.f64 z x) 2) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 z x) 2) (*.f64 y y) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 z x) 2) (*.f64 y y) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 6) (pow.f64 x 6)) (/.f64 1 (fma.f64 (*.f64 x x) (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)) (pow.f64 (*.f64 z (*.f64 x y)) 4))) (fma.f64 (neg.f64 x) x (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 6) (pow.f64 x 6)) (/.f64 1 (fma.f64 (*.f64 x x) (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)) (pow.f64 (*.f64 z (*.f64 x y)) 4))) (fma.f64 (*.f64 x (neg.f64 x)) 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 6) (pow.f64 x 6)) (/.f64 1 (fma.f64 (*.f64 x x) (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2)) (pow.f64 (*.f64 z (*.f64 x y)) 4))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (pow.f64 x 4)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 z (*.f64 x y) x) (*.f64 x (fma.f64 y z -1)) (fma.f64 (neg.f64 x) x (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 z (*.f64 x y) x) (*.f64 x (fma.f64 y z -1)) (fma.f64 (*.f64 x (neg.f64 x)) 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 z (*.f64 x y) x) (*.f64 x (fma.f64 y z -1)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (pow.f64 x 4)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4) (pow.f64 x 4)) (/.f64 1 (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2))) (fma.f64 (neg.f64 x) x (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4) (pow.f64 x 4)) (/.f64 1 (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2))) (fma.f64 (*.f64 x (neg.f64 x)) 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4) (pow.f64 x 4)) (/.f64 1 (fma.f64 x x (pow.f64 (*.f64 z (*.f64 x y)) 2))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (pow.f64 x 4)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y z) (*.f64 x (*.f64 z (*.f64 x y))) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y z) (*.f64 x (*.f64 z (*.f64 x y))) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) 3) (sqrt.f64 (*.f64 z (*.f64 x y))) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) 3) (sqrt.f64 (*.f64 z (*.f64 x y))) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y z) (*.f64 y z)) (*.f64 x x) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y z) (*.f64 y z)) (*.f64 x x) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 x (neg.f64 x))) (cbrt.f64 (*.f64 x (neg.f64 x)))) (cbrt.f64 (*.f64 x (neg.f64 x))) (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (neg.f64 x))) (sqrt.f64 (*.f64 x (neg.f64 x))) (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 x x) (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x x) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x x) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (pow.f64 x 4))) (pow.f64 (cbrt.f64 x) 2) (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 x) 1) x (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 x) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 x) (sqrt.f64 x)) (sqrt.f64 x) (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z (*.f64 x y)) y) (*.f64 z x) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z (*.f64 x y)) y) (*.f64 z x) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z (*.f64 x y)) (*.f64 z x)) y (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z (*.f64 x y)) (*.f64 z x)) y (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z (*.f64 x y)) (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2)) (cbrt.f64 (*.f64 z (*.f64 x y))) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z (*.f64 x y)) (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2)) (cbrt.f64 (*.f64 z (*.f64 x y))) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z (*.f64 x y)) (*.f64 y z)) x (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z (*.f64 x y)) (*.f64 y z)) x (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) (*.f64 x x))) 1)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2))) (cbrt.f64 (exp.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (*.f64 z x) (*.f64 z (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z x) (*.f64 y (*.f64 z (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (*.f64 x y)) (*.f64 z (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 z (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2) (cbrt.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2) (*.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) (*.f64 z (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4)) (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) (*.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) (*.f64 z (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) (pow.f64 (*.f64 z x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 z x) 2) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y z) (*.f64 x (*.f64 z (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 z (*.f64 x y))) 3) (sqrt.f64 (*.f64 z (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y z) (*.f64 y z)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 z (*.f64 x y)) y) (*.f64 z x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 z (*.f64 x y)) (*.f64 z x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 z (*.f64 x y)) (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x y))) 2)) (cbrt.f64 (*.f64 z (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 z (*.f64 x y)) (*.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 z (*.f64 x y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (*.f64 x y)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 z (*.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (*.f64 z (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (*.f64 z (*.f64 x y)))) 1)))))) |
| 1× | egg-herbie |
| 793× | associate-/l*_binary64 |
| 520× | associate-/l/_binary64 |
| 422× | fma-def_binary64 |
| 346× | cancel-sign-sub-inv_binary64 |
| 316× | div-sub_binary64 |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 61 | 2372 |
| 1 | 179 | 2182 |
| 2 | 562 | 2156 |
| 3 | 2677 | 2154 |
| 4 | 7550 | 2126 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 1 x) |
(+.f64 (*.f64 -1 (/.f64 (*.f64 y z) x)) (/.f64 1 x)) |
(+.f64 (*.f64 -1 (/.f64 (*.f64 y z) x)) (+.f64 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) x) (/.f64 1 x))) |
(+.f64 (*.f64 -1 (/.f64 (*.f64 y z) x)) (+.f64 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) x) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) x))))) |
(/.f64 1 (*.f64 y (*.f64 z x))) |
(-.f64 (/.f64 1 (*.f64 y (*.f64 z x))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x))) (/.f64 1 (*.f64 (pow.f64 y 4) (*.f64 (pow.f64 z 4) x))))) |
(/.f64 1 (*.f64 y (*.f64 z x))) |
(-.f64 (/.f64 1 (*.f64 y (*.f64 z x))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x))) (/.f64 1 (*.f64 (pow.f64 y 4) (*.f64 (pow.f64 z 4) x))))) |
(/.f64 1 x) |
(+.f64 (*.f64 -1 (/.f64 (*.f64 y z) x)) (/.f64 1 x)) |
(+.f64 (*.f64 -1 (/.f64 (*.f64 y z) x)) (+.f64 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) x) (/.f64 1 x))) |
(+.f64 (*.f64 -1 (/.f64 (*.f64 y z) x)) (+.f64 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) x) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) x))))) |
(/.f64 1 (*.f64 y (*.f64 z x))) |
(-.f64 (/.f64 1 (*.f64 y (*.f64 z x))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x))) (/.f64 1 (*.f64 (pow.f64 y 4) (*.f64 (pow.f64 z 4) x))))) |
(/.f64 1 (*.f64 y (*.f64 z x))) |
(-.f64 (/.f64 1 (*.f64 y (*.f64 z x))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x))) (/.f64 1 (*.f64 (pow.f64 y 4) (*.f64 (pow.f64 z 4) x))))) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x))) |
(*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x))) |
(*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x))) |
(*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x))) |
(*.f64 -1 (pow.f64 x 2)) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(*.f64 -1 (pow.f64 x 2)) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
| Outputs |
|---|
(/.f64 1 x) |
(+.f64 (*.f64 -1 (/.f64 (*.f64 y z) x)) (/.f64 1 x)) |
(fma.f64 -1 (/.f64 (*.f64 y z) x) (/.f64 1 x)) |
(-.f64 (/.f64 1 x) (/.f64 z (/.f64 x y))) |
(/.f64 (-.f64 1 (*.f64 y z)) x) |
(/.f64 (neg.f64 (fma.f64 y z -1)) x) |
(+.f64 (*.f64 -1 (/.f64 (*.f64 y z) x)) (+.f64 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) x) (/.f64 1 x))) |
(fma.f64 -1 (/.f64 (*.f64 y z) x) (+.f64 (/.f64 1 x) (/.f64 (*.f64 (*.f64 y y) (*.f64 z z)) x))) |
(+.f64 (*.f64 (/.f64 (*.f64 y y) x) (*.f64 z z)) (-.f64 (/.f64 1 x) (/.f64 z (/.f64 x y)))) |
(fma.f64 (/.f64 y (/.f64 x y)) (*.f64 z z) (/.f64 (-.f64 1 (*.f64 y z)) x)) |
(-.f64 (*.f64 (/.f64 z (/.f64 x y)) (*.f64 y z)) (/.f64 (fma.f64 y z -1) x)) |
(+.f64 (*.f64 -1 (/.f64 (*.f64 y z) x)) (+.f64 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) x) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) x))))) |
(fma.f64 -1 (/.f64 (*.f64 y z) x) (+.f64 (/.f64 (*.f64 (*.f64 y y) (*.f64 z z)) x) (+.f64 (/.f64 1 x) (neg.f64 (/.f64 (pow.f64 y 3) (/.f64 x (pow.f64 z 3))))))) |
(-.f64 (+.f64 (*.f64 (/.f64 (*.f64 y y) x) (*.f64 z z)) (-.f64 (/.f64 1 x) (*.f64 (/.f64 (pow.f64 y 3) x) (pow.f64 z 3)))) (/.f64 z (/.f64 x y))) |
(-.f64 (fma.f64 (/.f64 y (/.f64 x y)) (*.f64 z z) (/.f64 (-.f64 1 (*.f64 y z)) x)) (*.f64 (pow.f64 z 3) (/.f64 (pow.f64 y 3) x))) |
(+.f64 (/.f64 (neg.f64 (fma.f64 y z -1)) x) (*.f64 (*.f64 y y) (-.f64 (/.f64 z (/.f64 x z)) (*.f64 (/.f64 y x) (pow.f64 z 3))))) |
(-.f64 (*.f64 (/.f64 z (/.f64 x y)) (*.f64 y z)) (+.f64 (/.f64 (fma.f64 y z -1) x) (/.f64 (pow.f64 (*.f64 y z) 3) x))) |
(/.f64 1 (*.f64 y (*.f64 z x))) |
(/.f64 1 (*.f64 y (*.f64 x z))) |
(/.f64 1 (*.f64 x (*.f64 y z))) |
(/.f64 (/.f64 1 x) (*.f64 y z)) |
(/.f64 1 (*.f64 z (*.f64 x y))) |
(-.f64 (/.f64 1 (*.f64 y (*.f64 z x))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(-.f64 (/.f64 1 (*.f64 y (*.f64 x z))) (/.f64 1 (*.f64 (*.f64 y y) (*.f64 x (*.f64 z z))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 y z))) (/.f64 -1 (*.f64 (*.f64 z z) (*.f64 x (*.f64 y y))))) |
(+.f64 (/.f64 (/.f64 1 x) (*.f64 y z)) (/.f64 (/.f64 -1 x) (*.f64 z (*.f64 z (*.f64 y y))))) |
(+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (/.f64 -1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y)))))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 x (pow.f64 z 3)))) (-.f64 (/.f64 1 (*.f64 y (*.f64 x z))) (/.f64 1 (*.f64 (*.f64 y y) (*.f64 x (*.f64 z z)))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 y z))) (-.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (/.f64 1 (*.f64 (*.f64 z z) (*.f64 x (*.f64 y y)))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (+.f64 (/.f64 (/.f64 1 x) (*.f64 y z)) (/.f64 (/.f64 -1 x) (*.f64 z (*.f64 z (*.f64 y y)))))) |
(+.f64 (/.f64 (/.f64 1 (*.f64 x (pow.f64 z 3))) (pow.f64 y 3)) (+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (/.f64 -1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y))))))) |
(+.f64 (/.f64 1 (*.f64 x (pow.f64 (*.f64 y z) 3))) (+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (/.f64 -1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y))))))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x))) (/.f64 1 (*.f64 (pow.f64 y 4) (*.f64 (pow.f64 z 4) x))))) |
(+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 x (pow.f64 z 3)))) (-.f64 (/.f64 1 (*.f64 y (*.f64 x z))) (+.f64 (/.f64 1 (*.f64 (*.f64 y y) (*.f64 x (*.f64 z z)))) (/.f64 1 (*.f64 (pow.f64 y 4) (*.f64 x (pow.f64 z 4))))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 y z))) (-.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (+.f64 (/.f64 1 (*.f64 (*.f64 z z) (*.f64 x (*.f64 y y)))) (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 4) (pow.f64 z 4))))))) |
(+.f64 (/.f64 (/.f64 1 x) (*.f64 y z)) (+.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (+.f64 (/.f64 (/.f64 -1 x) (*.f64 z (*.f64 z (*.f64 y y)))) (/.f64 -1 (*.f64 (pow.f64 z 4) (*.f64 x (pow.f64 y 4))))))) |
(+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (+.f64 (/.f64 (/.f64 1 (*.f64 x (pow.f64 z 3))) (pow.f64 y 3)) (-.f64 (/.f64 (/.f64 -1 (pow.f64 y 4)) (*.f64 x (pow.f64 z 4))) (/.f64 1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y)))))))) |
(+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (+.f64 (/.f64 1 (*.f64 x (pow.f64 (*.f64 y z) 3))) (-.f64 (/.f64 (/.f64 -1 (pow.f64 y 4)) (*.f64 x (pow.f64 z 4))) (/.f64 1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y)))))))) |
(/.f64 1 (*.f64 y (*.f64 z x))) |
(/.f64 1 (*.f64 y (*.f64 x z))) |
(/.f64 1 (*.f64 x (*.f64 y z))) |
(/.f64 (/.f64 1 x) (*.f64 y z)) |
(/.f64 1 (*.f64 z (*.f64 x y))) |
(-.f64 (/.f64 1 (*.f64 y (*.f64 z x))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(-.f64 (/.f64 1 (*.f64 y (*.f64 x z))) (/.f64 1 (*.f64 (*.f64 y y) (*.f64 x (*.f64 z z))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 y z))) (/.f64 -1 (*.f64 (*.f64 z z) (*.f64 x (*.f64 y y))))) |
(+.f64 (/.f64 (/.f64 1 x) (*.f64 y z)) (/.f64 (/.f64 -1 x) (*.f64 z (*.f64 z (*.f64 y y))))) |
(+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (/.f64 -1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y)))))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 x (pow.f64 z 3)))) (-.f64 (/.f64 1 (*.f64 y (*.f64 x z))) (/.f64 1 (*.f64 (*.f64 y y) (*.f64 x (*.f64 z z)))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 y z))) (-.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (/.f64 1 (*.f64 (*.f64 z z) (*.f64 x (*.f64 y y)))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (+.f64 (/.f64 (/.f64 1 x) (*.f64 y z)) (/.f64 (/.f64 -1 x) (*.f64 z (*.f64 z (*.f64 y y)))))) |
(+.f64 (/.f64 (/.f64 1 (*.f64 x (pow.f64 z 3))) (pow.f64 y 3)) (+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (/.f64 -1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y))))))) |
(+.f64 (/.f64 1 (*.f64 x (pow.f64 (*.f64 y z) 3))) (+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (/.f64 -1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y))))))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x))) (/.f64 1 (*.f64 (pow.f64 y 4) (*.f64 (pow.f64 z 4) x))))) |
(+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 x (pow.f64 z 3)))) (-.f64 (/.f64 1 (*.f64 y (*.f64 x z))) (+.f64 (/.f64 1 (*.f64 (*.f64 y y) (*.f64 x (*.f64 z z)))) (/.f64 1 (*.f64 (pow.f64 y 4) (*.f64 x (pow.f64 z 4))))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 y z))) (-.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (+.f64 (/.f64 1 (*.f64 (*.f64 z z) (*.f64 x (*.f64 y y)))) (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 4) (pow.f64 z 4))))))) |
(+.f64 (/.f64 (/.f64 1 x) (*.f64 y z)) (+.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (+.f64 (/.f64 (/.f64 -1 x) (*.f64 z (*.f64 z (*.f64 y y)))) (/.f64 -1 (*.f64 (pow.f64 z 4) (*.f64 x (pow.f64 y 4))))))) |
(+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (+.f64 (/.f64 (/.f64 1 (*.f64 x (pow.f64 z 3))) (pow.f64 y 3)) (-.f64 (/.f64 (/.f64 -1 (pow.f64 y 4)) (*.f64 x (pow.f64 z 4))) (/.f64 1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y)))))))) |
(+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (+.f64 (/.f64 1 (*.f64 x (pow.f64 (*.f64 y z) 3))) (-.f64 (/.f64 (/.f64 -1 (pow.f64 y 4)) (*.f64 x (pow.f64 z 4))) (/.f64 1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y)))))))) |
(/.f64 1 x) |
(+.f64 (*.f64 -1 (/.f64 (*.f64 y z) x)) (/.f64 1 x)) |
(fma.f64 -1 (/.f64 (*.f64 y z) x) (/.f64 1 x)) |
(-.f64 (/.f64 1 x) (/.f64 z (/.f64 x y))) |
(/.f64 (-.f64 1 (*.f64 y z)) x) |
(/.f64 (neg.f64 (fma.f64 y z -1)) x) |
(+.f64 (*.f64 -1 (/.f64 (*.f64 y z) x)) (+.f64 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) x) (/.f64 1 x))) |
(fma.f64 -1 (/.f64 (*.f64 y z) x) (+.f64 (/.f64 1 x) (/.f64 (*.f64 (*.f64 y y) (*.f64 z z)) x))) |
(+.f64 (*.f64 (/.f64 (*.f64 y y) x) (*.f64 z z)) (-.f64 (/.f64 1 x) (/.f64 z (/.f64 x y)))) |
(fma.f64 (/.f64 y (/.f64 x y)) (*.f64 z z) (/.f64 (-.f64 1 (*.f64 y z)) x)) |
(-.f64 (*.f64 (/.f64 z (/.f64 x y)) (*.f64 y z)) (/.f64 (fma.f64 y z -1) x)) |
(+.f64 (*.f64 -1 (/.f64 (*.f64 y z) x)) (+.f64 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) x) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) x))))) |
(fma.f64 -1 (/.f64 (*.f64 y z) x) (+.f64 (/.f64 (*.f64 (*.f64 y y) (*.f64 z z)) x) (+.f64 (/.f64 1 x) (neg.f64 (/.f64 (pow.f64 y 3) (/.f64 x (pow.f64 z 3))))))) |
(-.f64 (+.f64 (*.f64 (/.f64 (*.f64 y y) x) (*.f64 z z)) (-.f64 (/.f64 1 x) (*.f64 (/.f64 (pow.f64 y 3) x) (pow.f64 z 3)))) (/.f64 z (/.f64 x y))) |
(-.f64 (fma.f64 (/.f64 y (/.f64 x y)) (*.f64 z z) (/.f64 (-.f64 1 (*.f64 y z)) x)) (*.f64 (pow.f64 z 3) (/.f64 (pow.f64 y 3) x))) |
(+.f64 (/.f64 (neg.f64 (fma.f64 y z -1)) x) (*.f64 (*.f64 y y) (-.f64 (/.f64 z (/.f64 x z)) (*.f64 (/.f64 y x) (pow.f64 z 3))))) |
(-.f64 (*.f64 (/.f64 z (/.f64 x y)) (*.f64 y z)) (+.f64 (/.f64 (fma.f64 y z -1) x) (/.f64 (pow.f64 (*.f64 y z) 3) x))) |
(/.f64 1 (*.f64 y (*.f64 z x))) |
(/.f64 1 (*.f64 y (*.f64 x z))) |
(/.f64 1 (*.f64 x (*.f64 y z))) |
(/.f64 (/.f64 1 x) (*.f64 y z)) |
(/.f64 1 (*.f64 z (*.f64 x y))) |
(-.f64 (/.f64 1 (*.f64 y (*.f64 z x))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(-.f64 (/.f64 1 (*.f64 y (*.f64 x z))) (/.f64 1 (*.f64 (*.f64 y y) (*.f64 x (*.f64 z z))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 y z))) (/.f64 -1 (*.f64 (*.f64 z z) (*.f64 x (*.f64 y y))))) |
(+.f64 (/.f64 (/.f64 1 x) (*.f64 y z)) (/.f64 (/.f64 -1 x) (*.f64 z (*.f64 z (*.f64 y y))))) |
(+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (/.f64 -1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y)))))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 x (pow.f64 z 3)))) (-.f64 (/.f64 1 (*.f64 y (*.f64 x z))) (/.f64 1 (*.f64 (*.f64 y y) (*.f64 x (*.f64 z z)))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 y z))) (-.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (/.f64 1 (*.f64 (*.f64 z z) (*.f64 x (*.f64 y y)))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (+.f64 (/.f64 (/.f64 1 x) (*.f64 y z)) (/.f64 (/.f64 -1 x) (*.f64 z (*.f64 z (*.f64 y y)))))) |
(+.f64 (/.f64 (/.f64 1 (*.f64 x (pow.f64 z 3))) (pow.f64 y 3)) (+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (/.f64 -1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y))))))) |
(+.f64 (/.f64 1 (*.f64 x (pow.f64 (*.f64 y z) 3))) (+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (/.f64 -1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y))))))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x))) (/.f64 1 (*.f64 (pow.f64 y 4) (*.f64 (pow.f64 z 4) x))))) |
(+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 x (pow.f64 z 3)))) (-.f64 (/.f64 1 (*.f64 y (*.f64 x z))) (+.f64 (/.f64 1 (*.f64 (*.f64 y y) (*.f64 x (*.f64 z z)))) (/.f64 1 (*.f64 (pow.f64 y 4) (*.f64 x (pow.f64 z 4))))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 y z))) (-.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (+.f64 (/.f64 1 (*.f64 (*.f64 z z) (*.f64 x (*.f64 y y)))) (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 4) (pow.f64 z 4))))))) |
(+.f64 (/.f64 (/.f64 1 x) (*.f64 y z)) (+.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (+.f64 (/.f64 (/.f64 -1 x) (*.f64 z (*.f64 z (*.f64 y y)))) (/.f64 -1 (*.f64 (pow.f64 z 4) (*.f64 x (pow.f64 y 4))))))) |
(+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (+.f64 (/.f64 (/.f64 1 (*.f64 x (pow.f64 z 3))) (pow.f64 y 3)) (-.f64 (/.f64 (/.f64 -1 (pow.f64 y 4)) (*.f64 x (pow.f64 z 4))) (/.f64 1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y)))))))) |
(+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (+.f64 (/.f64 1 (*.f64 x (pow.f64 (*.f64 y z) 3))) (-.f64 (/.f64 (/.f64 -1 (pow.f64 y 4)) (*.f64 x (pow.f64 z 4))) (/.f64 1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y)))))))) |
(/.f64 1 (*.f64 y (*.f64 z x))) |
(/.f64 1 (*.f64 y (*.f64 x z))) |
(/.f64 1 (*.f64 x (*.f64 y z))) |
(/.f64 (/.f64 1 x) (*.f64 y z)) |
(/.f64 1 (*.f64 z (*.f64 x y))) |
(-.f64 (/.f64 1 (*.f64 y (*.f64 z x))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(-.f64 (/.f64 1 (*.f64 y (*.f64 x z))) (/.f64 1 (*.f64 (*.f64 y y) (*.f64 x (*.f64 z z))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 y z))) (/.f64 -1 (*.f64 (*.f64 z z) (*.f64 x (*.f64 y y))))) |
(+.f64 (/.f64 (/.f64 1 x) (*.f64 y z)) (/.f64 (/.f64 -1 x) (*.f64 z (*.f64 z (*.f64 y y))))) |
(+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (/.f64 -1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y)))))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x)))) |
(+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 x (pow.f64 z 3)))) (-.f64 (/.f64 1 (*.f64 y (*.f64 x z))) (/.f64 1 (*.f64 (*.f64 y y) (*.f64 x (*.f64 z z)))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 y z))) (-.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (/.f64 1 (*.f64 (*.f64 z z) (*.f64 x (*.f64 y y)))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (+.f64 (/.f64 (/.f64 1 x) (*.f64 y z)) (/.f64 (/.f64 -1 x) (*.f64 z (*.f64 z (*.f64 y y)))))) |
(+.f64 (/.f64 (/.f64 1 (*.f64 x (pow.f64 z 3))) (pow.f64 y 3)) (+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (/.f64 -1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y))))))) |
(+.f64 (/.f64 1 (*.f64 x (pow.f64 (*.f64 y z) 3))) (+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (/.f64 -1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y))))))) |
(-.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) x))) (/.f64 1 (*.f64 y (*.f64 z x)))) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) x))) (/.f64 1 (*.f64 (pow.f64 y 4) (*.f64 (pow.f64 z 4) x))))) |
(+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (*.f64 x (pow.f64 z 3)))) (-.f64 (/.f64 1 (*.f64 y (*.f64 x z))) (+.f64 (/.f64 1 (*.f64 (*.f64 y y) (*.f64 x (*.f64 z z)))) (/.f64 1 (*.f64 (pow.f64 y 4) (*.f64 x (pow.f64 z 4))))))) |
(+.f64 (/.f64 1 (*.f64 x (*.f64 y z))) (-.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (+.f64 (/.f64 1 (*.f64 (*.f64 z z) (*.f64 x (*.f64 y y)))) (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 4) (pow.f64 z 4))))))) |
(+.f64 (/.f64 (/.f64 1 x) (*.f64 y z)) (+.f64 (/.f64 1 (*.f64 x (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (+.f64 (/.f64 (/.f64 -1 x) (*.f64 z (*.f64 z (*.f64 y y)))) (/.f64 -1 (*.f64 (pow.f64 z 4) (*.f64 x (pow.f64 y 4))))))) |
(+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (+.f64 (/.f64 (/.f64 1 (*.f64 x (pow.f64 z 3))) (pow.f64 y 3)) (-.f64 (/.f64 (/.f64 -1 (pow.f64 y 4)) (*.f64 x (pow.f64 z 4))) (/.f64 1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y)))))))) |
(+.f64 (/.f64 1 (*.f64 z (*.f64 x y))) (+.f64 (/.f64 1 (*.f64 x (pow.f64 (*.f64 y z) 3))) (-.f64 (/.f64 (/.f64 -1 (pow.f64 y 4)) (*.f64 x (pow.f64 z 4))) (/.f64 1 (*.f64 z (*.f64 z (*.f64 x (*.f64 y y)))))))) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 z (*.f64 z (*.f64 y y)) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 z (*.f64 z (*.f64 y y)) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 z (*.f64 z (*.f64 y y)) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 z (*.f64 z (*.f64 y y)) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 z (*.f64 z (*.f64 y y)) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 z (*.f64 z (*.f64 y y)) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 z (*.f64 z (*.f64 y y)) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(/.f64 (-.f64 (*.f64 y z) 1) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x)) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 z (*.f64 z (*.f64 y y)) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 z (*.f64 z (*.f64 y y)) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 z (*.f64 z (*.f64 y y)) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 z (*.f64 z (*.f64 y y)) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) (*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) x))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 z (*.f64 z (*.f64 y y)) -1))) |
(/.f64 (fma.f64 y z -1) (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 -1 (pow.f64 x 2)) |
(neg.f64 (*.f64 x x)) |
(*.f64 x (neg.f64 x)) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 -1 (pow.f64 x 2)) |
(neg.f64 (*.f64 x x)) |
(*.f64 x (neg.f64 x)) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2)))) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (-.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) 1) (pow.f64 x 2)) |
(fma.f64 -1 (*.f64 x x) (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 x (*.f64 x (fma.f64 (*.f64 y y) (*.f64 z z) -1))) |
(*.f64 (fma.f64 z (*.f64 z (*.f64 y y)) -1) (*.f64 x x)) |
(*.f64 x (*.f64 x (fma.f64 y (*.f64 y (*.f64 z z)) -1))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
(*.f64 (pow.f64 y 2) (*.f64 (pow.f64 z 2) (pow.f64 x 2))) |
(*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (*.f64 x x))) |
(*.f64 y (*.f64 y (*.f64 (*.f64 z z) (*.f64 x x)))) |
(*.f64 y (*.f64 (*.f64 z z) (*.f64 (*.f64 x x) y))) |
(*.f64 z (*.f64 z (*.f64 y (*.f64 y (*.f64 x x))))) |
Found 6 expressions with local error:
| New | Error | Program |
|---|---|---|
| 11.6b | (sqrt.f64 (*.f64 y (*.f64 z x))) | |
| 3.5b | (*.f64 y (*.f64 z x)) | |
| 0.2b | (pow.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 2) | |
| ✓ | 0.2b | (pow.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 2) |
| 3.5b | (*.f64 y (*.f64 z x)) | |
| ✓ | 11.6b | (sqrt.f64 (*.f64 y (*.f64 z x))) |
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 18.0ms | x | @ | -inf | (sqrt.f64 (*.f64 y (*.f64 z x))) |
| 9.0ms | x | @ | 0 | (pow.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 2) |
| 1.0ms | z | @ | -inf | (pow.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 2) |
| 1.0ms | x | @ | -inf | (pow.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 2) |
| 1.0ms | y | @ | -inf | (pow.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 2) |
| 1× | batch-egg-rewrite |
| 735× | pow1_binary64 |
| 677× | add-log-exp_binary64 |
| 677× | log1p-expm1-u_binary64 |
| 677× | expm1-log1p-u_binary64 |
| 660× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 16 |
| 1 | 185 | 16 |
| 2 | 1903 | 16 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 y (*.f64 z x))) |
(pow.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 2) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (sqrt.f64 (*.f64 y (*.f64 z x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y (*.f64 z x))) (cbrt.f64 (sqrt.f64 (*.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 y (*.f64 z x)))) (cbrt.f64 (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 z x)) (sqrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (sqrt.f64 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 y (*.f64 z x)) 1/4) (pow.f64 (*.f64 y (*.f64 z x)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y z)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2))) (sqrt.f64 (cbrt.f64 (*.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2)) 1/2) (pow.f64 (cbrt.f64 (*.f64 y (*.f64 z x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 y z) 1/2) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 z x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (*.f64 z x)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 y (*.f64 z x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (*.f64 z x)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (*.f64 z x)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 y (*.f64 z x))))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 y (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 z x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z x) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) (sqrt.f64 (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 z x)) 2) (*.f64 (cbrt.f64 (*.f64 z x)) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y (*.f64 z x))) (cbrt.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y (*.f64 z x))) (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 y (*.f64 z x)))) (sqrt.f64 (*.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2)) (cbrt.f64 (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (*.f64 z x)) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (*.f64 z x)) (sqrt.f64 (*.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 y (*.f64 z x)) 1/4) (*.f64 (pow.f64 (*.f64 y (*.f64 z x)) 1/4) (sqrt.f64 (*.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y z) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) (pow.f64 (*.f64 y (*.f64 z x)) 1/4)) (pow.f64 (*.f64 y (*.f64 z x)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y x) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (pow.f64 (cbrt.f64 (*.f64 z x)) 2)) (cbrt.f64 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (sqrt.f64 (*.f64 z x))) (sqrt.f64 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 z x) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 z x) (sqrt.f64 y)) (sqrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) (cbrt.f64 (*.f64 y (*.f64 z x)))) (cbrt.f64 (sqrt.f64 (*.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) (sqrt.f64 y)) (sqrt.f64 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y z) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y z) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y z) (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 y) (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (*.f64 z x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 y 3) (pow.f64 (*.f64 z x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 z x) 3) (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (*.f64 z x)))))))) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 0 | 0 |
| 1× | saturated |
| Inputs |
|---|
| Outputs |
|---|
Found 8 expressions with local error:
| New | Error | Program |
|---|---|---|
| 6.3b | (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) | |
| 5.0b | (*.f64 (-.f64 (*.f64 y x) x) z) | |
| 0.3b | (pow.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) 2) | |
| 0.0b | (-.f64 (*.f64 y x) x) | |
| 0.0b | (-.f64 (*.f64 y x) x) | |
| ✓ | 0.3b | (pow.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) 2) |
| 5.0b | (*.f64 (-.f64 (*.f64 y x) x) z) | |
| ✓ | 6.3b | (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) |
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | y | @ | inf | (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) |
| 1.0ms | y | @ | inf | (pow.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) 2) |
| 1.0ms | z | @ | -inf | (pow.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) 2) |
| 1.0ms | x | @ | -inf | (pow.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) 2) |
| 1.0ms | x | @ | -inf | (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) |
| 1× | batch-egg-rewrite |
| 975× | pow1_binary64 |
| 905× | add-log-exp_binary64 |
| 904× | log1p-expm1-u_binary64 |
| 904× | expm1-log1p-u_binary64 |
| 99× | add-sqr-sqrt_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 22 |
| 1 | 216 | 22 |
| 2 | 2496 | 22 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) |
(pow.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) 2) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z))) (cbrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 1/4) (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 y x) x)) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (sqrt.f64 (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 2))) (sqrt.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 2)) 1/2) (pow.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y x) z) (*.f64 (neg.f64 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 y x)) (*.f64 z (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 (*.f64 y x) x) z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 y x) x) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (-.f64 (*.f64 y x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (-.f64 (*.f64 y x) x) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 y x) x)) 2) (*.f64 (cbrt.f64 (-.f64 (*.f64 y x) x)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) (cbrt.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z))) (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 2)) (cbrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 1/4) (*.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 1/4) (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 y x) x)) (*.f64 (sqrt.f64 (-.f64 (*.f64 y x) x)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 y x) x)) (*.f64 (sqrt.f64 z) (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 1/4)) (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 y x) x) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 y x) x) (sqrt.f64 z)) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (pow.f64 (cbrt.f64 (-.f64 (*.f64 y x) x)) 2)) (cbrt.f64 (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (sqrt.f64 (-.f64 (*.f64 y x) x))) (sqrt.f64 (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) (cbrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z))) (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) (sqrt.f64 (-.f64 (*.f64 y x) x))) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 x 3)) z) (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x (fma.f64 y x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x x)) z) (fma.f64 y x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 x 3))) (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x (fma.f64 y x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x x))) (fma.f64 y x x))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 (*.f64 y x) x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 (*.f64 y x) x) z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 (*.f64 y x) x) 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 z 3) (pow.f64 (-.f64 (*.f64 y x) x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 (*.f64 y x) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 (*.f64 y x) x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 (*.f64 y x) x) z))))))) |
| 1× | egg-herbie |
| 431× | associate-/r*_binary64 |
| 409× | *-commutative_binary64 |
| 378× | associate-/l/_binary64 |
| 324× | distribute-rgt-out_binary64 |
| 307× | associate-/r/_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 57 | 221 |
| 1 | 170 | 179 |
| 2 | 570 | 150 |
| 3 | 2465 | 144 |
| 4 | 5170 | 144 |
| 5 | 6958 | 144 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 z x))) |
(+.f64 (*.f64 1/2 (*.f64 (/.f64 y (sqrt.f64 -1)) (sqrt.f64 (*.f64 z x)))) (*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 z x)))) |
(+.f64 (*.f64 1/2 (*.f64 (/.f64 y (sqrt.f64 -1)) (sqrt.f64 (*.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (*.f64 z x)))) (*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 z x))))) |
(+.f64 (*.f64 1/2 (*.f64 (/.f64 y (sqrt.f64 -1)) (sqrt.f64 (*.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (*.f64 z x)))) (+.f64 (*.f64 1/16 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (*.f64 z x)))) (*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 z x)))))) |
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x))) |
(+.f64 (*.f64 (+.f64 (*.f64 1/4 (/.f64 (*.f64 z x) (pow.f64 (sqrt.f64 -1) 2))) (*.f64 -1/4 (/.f64 (*.f64 z x) (pow.f64 (sqrt.f64 -1) 2)))) (pow.f64 y 2)) (+.f64 (*.f64 y (*.f64 z x)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x)))) |
(+.f64 (*.f64 (+.f64 (*.f64 1/4 (/.f64 (*.f64 z x) (pow.f64 (sqrt.f64 -1) 2))) (*.f64 -1/4 (/.f64 (*.f64 z x) (pow.f64 (sqrt.f64 -1) 2)))) (pow.f64 y 2)) (+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 (+.f64 (*.f64 -1/8 (/.f64 (*.f64 z x) (pow.f64 (sqrt.f64 -1) 4))) (*.f64 1/8 (/.f64 (*.f64 z x) (pow.f64 (sqrt.f64 -1) 4)))) (pow.f64 y 3)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x))))) |
| Outputs |
|---|
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 z x))) |
(+.f64 (*.f64 1/2 (*.f64 (/.f64 y (sqrt.f64 -1)) (sqrt.f64 (*.f64 z x)))) (*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 z x)))) |
(fma.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z x)) (/.f64 y (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 z x)))) |
(*.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 y (sqrt.f64 -1))) (sqrt.f64 -1))) |
(*.f64 (sqrt.f64 (*.f64 z x)) (fma.f64 1/2 (/.f64 y (sqrt.f64 -1)) (sqrt.f64 -1))) |
(+.f64 (*.f64 1/2 (*.f64 (/.f64 y (sqrt.f64 -1)) (sqrt.f64 (*.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (*.f64 z x)))) (*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 z x))))) |
(fma.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z x)) (/.f64 y (sqrt.f64 -1))) (fma.f64 -1/8 (*.f64 (sqrt.f64 (*.f64 z x)) (/.f64 (*.f64 y y) (pow.f64 (sqrt.f64 -1) 3))) (*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 z x))))) |
(fma.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z x)) (/.f64 y (sqrt.f64 -1))) (*.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (sqrt.f64 -1) (*.f64 -1/8 (*.f64 (/.f64 y (sqrt.f64 -1)) (/.f64 y -1)))))) |
(*.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (sqrt.f64 -1) (fma.f64 1/2 (/.f64 y (sqrt.f64 -1)) (*.f64 1/8 (/.f64 y (/.f64 (sqrt.f64 -1) y)))))) |
(*.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (sqrt.f64 -1) (*.f64 (/.f64 y (sqrt.f64 -1)) (+.f64 (*.f64 -1/8 (/.f64 y -1)) 1/2)))) |
(*.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (sqrt.f64 -1) (*.f64 (/.f64 y (sqrt.f64 -1)) (+.f64 1/2 (*.f64 -1/8 (/.f64 y -1)))))) |
(*.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (sqrt.f64 -1) (*.f64 (/.f64 y (sqrt.f64 -1)) (+.f64 (/.f64 (*.f64 y -1/8) -1) 1/2)))) |
(+.f64 (*.f64 1/2 (*.f64 (/.f64 y (sqrt.f64 -1)) (sqrt.f64 (*.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (*.f64 z x)))) (+.f64 (*.f64 1/16 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (*.f64 z x)))) (*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 z x)))))) |
(fma.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z x)) (/.f64 y (sqrt.f64 -1))) (fma.f64 -1/8 (*.f64 (sqrt.f64 (*.f64 z x)) (/.f64 (*.f64 y y) (pow.f64 (sqrt.f64 -1) 3))) (fma.f64 1/16 (*.f64 (sqrt.f64 (*.f64 z x)) (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5))) (*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 z x)))))) |
(+.f64 (*.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 y (sqrt.f64 -1)) (/.f64 y -1))) (*.f64 1/16 (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5))))) (*.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 1/2 (/.f64 y (sqrt.f64 -1))) (sqrt.f64 -1)))) |
(*.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (fma.f64 1/16 (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 -1)) (fma.f64 1/2 (/.f64 y (sqrt.f64 -1)) (*.f64 1/8 (/.f64 y (/.f64 (sqrt.f64 -1) y)))))) |
(*.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (fma.f64 1/16 (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 -1)) (*.f64 (/.f64 y (sqrt.f64 -1)) (+.f64 (*.f64 -1/8 (/.f64 y -1)) 1/2)))) |
(*.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (fma.f64 1/16 (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 -1)) (*.f64 (/.f64 y (sqrt.f64 -1)) (+.f64 1/2 (*.f64 -1/8 (/.f64 y -1)))))) |
(*.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (fma.f64 1/16 (/.f64 (pow.f64 y 3) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 -1)) (*.f64 (/.f64 y (sqrt.f64 -1)) (+.f64 (/.f64 (*.f64 y -1/8) -1) 1/2)))) |
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x)) |
(*.f64 (*.f64 z x) (pow.f64 (sqrt.f64 -1) 2)) |
(*.f64 x (*.f64 z -1)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x))) |
(*.f64 (*.f64 z x) (+.f64 y (pow.f64 (sqrt.f64 -1) 2))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 x (fma.f64 z y (neg.f64 z))) |
(*.f64 z (fma.f64 x y (neg.f64 x))) |
(+.f64 (*.f64 (+.f64 (*.f64 1/4 (/.f64 (*.f64 z x) (pow.f64 (sqrt.f64 -1) 2))) (*.f64 -1/4 (/.f64 (*.f64 z x) (pow.f64 (sqrt.f64 -1) 2)))) (pow.f64 y 2)) (+.f64 (*.f64 y (*.f64 z x)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x)))) |
(*.f64 (*.f64 z x) (+.f64 y (pow.f64 (sqrt.f64 -1) 2))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 x (fma.f64 z y (neg.f64 z))) |
(*.f64 z (fma.f64 x y (neg.f64 x))) |
(+.f64 (*.f64 (+.f64 (*.f64 1/4 (/.f64 (*.f64 z x) (pow.f64 (sqrt.f64 -1) 2))) (*.f64 -1/4 (/.f64 (*.f64 z x) (pow.f64 (sqrt.f64 -1) 2)))) (pow.f64 y 2)) (+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 (+.f64 (*.f64 -1/8 (/.f64 (*.f64 z x) (pow.f64 (sqrt.f64 -1) 4))) (*.f64 1/8 (/.f64 (*.f64 z x) (pow.f64 (sqrt.f64 -1) 4)))) (pow.f64 y 3)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 z x))))) |
(*.f64 (*.f64 z x) (+.f64 y (pow.f64 (sqrt.f64 -1) 2))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 x (fma.f64 z y (neg.f64 z))) |
(*.f64 z (fma.f64 x y (neg.f64 x))) |
Compiled 11631 to 4235 computations (63.6% saved)
16 alts after pruning (3 fresh and 13 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 550 | 2 | 552 |
| Fresh | 1 | 1 | 2 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 12 | 12 |
| Total | 551 | 16 | 567 |
| Status | Error | Program |
|---|---|---|
| ✓ | 2.6b | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| ✓ | 46.9b | (*.f64 z (*.f64 y x)) |
| ✓ | 48.4b | (*.f64 x (neg.f64 z)) |
| 33.5b | (/.f64 1 (/.f64 1 x)) | |
| ✓ | 55.8b | (pow.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 2) |
| ✓ | 38.6b | (/.f64 1 (/.f64 (-.f64 (*.f64 y (*.f64 z x)) x) (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x)))) |
| ✓ | 47.1b | (*.f64 x (*.f64 y z)) |
| ✓ | 17.0b | (+.f64 (*.f64 y (*.f64 z x)) x) |
| ✓ | 19.1b | (-.f64 x (*.f64 x z)) |
| ✓ | 45.9b | (*.f64 y (*.f64 z x)) |
| ✓ | 32.6b | (*.f64 (-.f64 (*.f64 y x) x) z) |
| ✓ | 19.1b | (*.f64 (-.f64 1 z) x) |
| 33.4b | x | |
| ✓ | 50.3b | (pow.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) 2) |
| ✓ | 17.9b | (+.f64 x (*.f64 x (*.f64 y z))) |
| 54.5b | (*.f64 (*.f64 (*.f64 y z) (sqrt.f64 x)) (sqrt.f64 x)) |
Compiled 161 to 105 computations (34.8% saved)
| Inputs |
|---|
x |
(*.f64 x (neg.f64 z)) |
(/.f64 1 (/.f64 1 x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(-.f64 x (*.f64 x z)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 x (*.f64 y z))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (-.f64 1 (*.f64 y (neg.f64 z)))) |
(+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x) |
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
(fma.f64 z (-.f64 (*.f64 x y) x) x) |
(/.f64 1 (/.f64 (-.f64 (*.f64 y (*.f64 z x)) x) (-.f64 (pow.f64 (*.f64 y (*.f64 z x)) 2) (*.f64 x x)))) |
(pow.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 2) |
(pow.f64 (sqrt.f64 (*.f64 y (*.f64 z x))) 2) |
(*.f64 (*.f64 (*.f64 y z) (sqrt.f64 x)) (sqrt.f64 x)) |
(pow.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 y x) x) z)) 2) |
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2) |
(*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (sqrt.f64 x)) (sqrt.f64 x)) |
(+.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 x x)) z) (fma.f64 x y x)) x) |
(/.f64 (*.f64 x (-.f64 1 (pow.f64 (*.f64 (-.f64 1 y) z) 3))) (fma.f64 (*.f64 (-.f64 1 y) z) (fma.f64 (-.f64 1 y) z 1) 1)) |
| Outputs |
|---|
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
(+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x) |
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
11 calls:
| 48.0ms | z |
| 39.0ms | x |
| 27.0ms | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 27.0ms | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 26.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 0.1b | 3 | x |
| 1.4b | 2 | y |
| 0.1b | 3 | z |
| 1.1b | 2 | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 1.1b | 2 | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 1.1b | 2 | (-.f64 1 (*.f64 (-.f64 1 y) z)) |
| 1.1b | 2 | (-.f64 1 (*.f64 (-.f64 1 y) z)) |
| 1.1b | 2 | (*.f64 (-.f64 1 y) z) |
| 1.1b | 2 | (*.f64 (-.f64 1 y) z) |
| 1.4b | 2 | (-.f64 1 y) |
| 1.4b | 2 | (-.f64 1 y) |
Compiled 311 to 164 computations (47.3% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 21.0ms | 1.5524451704913054e-168 | 2.546030841327231e-165 |
| 8.0ms | -1.3081621671085857e+138 | -4.6605896604111605e+135 |
Compiled 44 to 32 computations (27.3% saved)
| Inputs |
|---|
x |
(*.f64 x (neg.f64 z)) |
(/.f64 1 (/.f64 1 x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(-.f64 x (*.f64 x z)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 x (*.f64 y z))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (-.f64 1 (*.f64 y (neg.f64 z)))) |
(+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x) |
| Outputs |
|---|
(+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x) |
(+.f64 x (*.f64 x (*.f64 y z))) |
(+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x) |
3 calls:
| 40.0ms | x |
| 24.0ms | z |
| 24.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 2.5b | 3 | x |
| 1.4b | 3 | y |
| 0.1b | 3 | z |
Compiled 98 to 41 computations (58.2% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 17.0ms | 4.58355198202799e-22 | 4.6726427628104755e-17 |
| 19.0ms | -4.0483219142097575e-61 | -1.5054384432511812e-66 |
Compiled 42 to 29 computations (31% saved)
| Inputs |
|---|
x |
(*.f64 x (neg.f64 z)) |
(/.f64 1 (/.f64 1 x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(-.f64 x (*.f64 x z)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 x (*.f64 y z))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
(*.f64 x (-.f64 1 (*.f64 y (neg.f64 z)))) |
| Outputs |
|---|
(*.f64 (-.f64 (*.f64 y x) x) z) |
(+.f64 x (*.f64 x (*.f64 y z))) |
(*.f64 (-.f64 (*.f64 y x) x) z) |
3 calls:
| 44.0ms | x |
| 30.0ms | y |
| 24.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 11.7b | 6 | x |
| 2.7b | 3 | y |
| 1.3b | 3 | z |
Compiled 89 to 37 computations (58.4% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 14.0ms | 6.760149711475684e-6 | 1129.482550646479 |
| 14.0ms | -2.6746171982079283 | -0.2362919593653397 |
Compiled 62 to 42 computations (32.3% saved)
| Inputs |
|---|
x |
(*.f64 x (neg.f64 z)) |
(/.f64 1 (/.f64 1 x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(-.f64 x (*.f64 x z)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 x (*.f64 y z))) |
| Outputs |
|---|
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(+.f64 x (*.f64 x (*.f64 y z))) |
3 calls:
| 34.0ms | z |
| 28.0ms | x |
| 27.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 13.4b | 4 | x |
| 2.7b | 3 | y |
| 8.4b | 5 | z |
Compiled 74 to 31 computations (58.1% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 19.0ms | 0.014191937481997147 | 2252.7663649529754 |
| 21.0ms | -2.285844912751982 | -0.439014693999706 |
Compiled 18 to 14 computations (22.2% saved)
| Inputs |
|---|
x |
(*.f64 x (neg.f64 z)) |
(/.f64 1 (/.f64 1 x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(-.f64 x (*.f64 x z)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
| Outputs |
|---|
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
3 calls:
| 34.0ms | z |
| 27.0ms | x |
| 19.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 13.4b | 4 | x |
| 2.9b | 3 | y |
| 10.0b | 5 | z |
Compiled 67 to 30 computations (55.2% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 20.0ms | 0.014191937481997147 | 2252.7663649529754 |
| 18.0ms | -2.285844912751982 | -0.439014693999706 |
Compiled 18 to 14 computations (22.2% saved)
| Inputs |
|---|
x |
(*.f64 x (neg.f64 z)) |
(/.f64 1 (/.f64 1 x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 x (*.f64 y z)) |
(-.f64 x (*.f64 x z)) |
| Outputs |
|---|
(*.f64 y (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(*.f64 x (*.f64 y z)) |
3 calls:
| 31.0ms | z |
| 18.0ms | y |
| 7.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 19.1b | 1 | x |
| 11.8b | 3 | y |
| 16.6b | 5 | z |
Compiled 60 to 29 computations (51.7% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 18.0ms | 51746012972654550.0 | 2.8093008181664506e+24 |
| 88.0ms | -3.289471879274542e+87 | -3.342918009796151e+86 |
Compiled 126 to 92 computations (27% saved)
| Inputs |
|---|
x |
(*.f64 x (neg.f64 z)) |
(/.f64 1 (/.f64 1 x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
| Outputs |
|---|
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
(*.f64 x (*.f64 y z)) |
3 calls:
| 23.0ms | z |
| 14.0ms | y |
| 6.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 19.1b | 1 | x |
| 12.2b | 3 | y |
| 16.6b | 5 | z |
Compiled 45 to 25 computations (44.4% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 18.0ms | 51746012972654550.0 | 2.8093008181664506e+24 |
| 88.0ms | -3.289471879274542e+87 | -3.342918009796151e+86 |
Compiled 126 to 92 computations (27% saved)
| Inputs |
|---|
x |
(*.f64 x (neg.f64 z)) |
(/.f64 1 (/.f64 1 x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 z (*.f64 y x)) |
| Outputs |
|---|
(*.f64 x (neg.f64 z)) |
(*.f64 z (*.f64 y x)) |
x |
(*.f64 x (neg.f64 z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 x (neg.f64 z)) |
3 calls:
| 39.0ms | x |
| 38.0ms | y |
| 26.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 27.0b | 9 | x |
| 22.6b | 9 | y |
| 18.0b | 6 | z |
Compiled 40 to 22 computations (45% saved)
| 5× | binary-search |
| Time | Left | Right |
|---|---|---|
| 56.0ms | 8.75799817547482e+71 | 2.706723731555475e+73 |
| 84.0ms | 3.396569450862298e+42 | 2.1936882927665747e+51 |
| 127.0ms | 6.760149711475684e-6 | 1129.482550646479 |
| 18.0ms | -3.3208976595093053e-71 | -3.4166480690758255e-73 |
| 38.0ms | -73752027766.18983 | -56176968904.29365 |
Compiled 458 to 332 computations (27.5% saved)
| Inputs |
|---|
x |
(*.f64 x (neg.f64 z)) |
(/.f64 1 (/.f64 1 x)) |
(*.f64 x (*.f64 y z)) |
(*.f64 x (*.f64 y z)) |
| Outputs |
|---|
(*.f64 x (neg.f64 z)) |
(*.f64 x (*.f64 y z)) |
x |
(*.f64 x (neg.f64 z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 x (neg.f64 z)) |
3 calls:
| 35.0ms | y |
| 27.0ms | x |
| 25.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 29.6b | 7 | x |
| 22.9b | 9 | y |
| 18.0b | 6 | z |
Compiled 35 to 20 computations (42.9% saved)
| 5× | binary-search |
| Time | Left | Right |
|---|---|---|
| 56.0ms | 8.75799817547482e+71 | 2.706723731555475e+73 |
| 84.0ms | 3.396569450862298e+42 | 2.1936882927665747e+51 |
| 126.0ms | 6.760149711475684e-6 | 1129.482550646479 |
| 19.0ms | -3.3208976595093053e-71 | -3.4166480690758255e-73 |
| 38.0ms | -73752027766.18983 | -56176968904.29365 |
Compiled 458 to 332 computations (27.5% saved)
Total -41.4b remaining (-204.2%)
Threshold costs -41.4b (-204.2%)
| Inputs |
|---|
x |
(*.f64 x (neg.f64 z)) |
(/.f64 1 (/.f64 1 x)) |
| Outputs |
|---|
(*.f64 x (neg.f64 z)) |
x |
(*.f64 x (neg.f64 z)) |
3 calls:
| 22.0ms | y |
| 16.0ms | x |
| 11.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 30.8b | 5 | x |
| 29.5b | 7 | y |
| 20.3b | 3 | z |
Compiled 25 to 18 computations (28% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 159.0ms | 6.760149711475684e-6 | 1129.482550646479 |
| 193.0ms | -2.6746171982079283 | -0.2362919593653397 |
Compiled 213 to 164 computations (23% saved)
| 1× | egg-herbie |
| 94× | distribute-rgt-neg-in_binary64 |
| 73× | cancel-sign-sub-inv_binary64 |
| 63× | distribute-lft-neg-out_binary64 |
| 57× | distribute-lft-neg-in_binary64 |
| 56× | neg-sub0_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 79 | 437 |
| 1 | 112 | 437 |
| 2 | 137 | 437 |
| 3 | 155 | 437 |
| 4 | 183 | 437 |
| 5 | 235 | 437 |
| 6 | 300 | 437 |
| 7 | 381 | 437 |
| 8 | 474 | 437 |
| 9 | 561 | 437 |
| 10 | 638 | 437 |
| 11 | 701 | 437 |
| 12 | 739 | 437 |
| 13 | 747 | 437 |
| 1× | saturated |
| Inputs |
|---|
(if (<=.f64 x -1000000000000000032841562489204926078987012566359611695512313426258747006898787995544001315627727412683949504784322435578648490634211491840) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (if (<=.f64 x 3298250447251343/2124551971267068394758352826209874509318372470908127692797776552801614239443408970956650009060917142675557317944986004061386317350610828957638079915066349407775325083341572876126912512) (+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))) |
(if (<=.f64 z -46876365235155896/115792089237316195423570985008687907853269984665640564039457584007913129639936) (+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x) (if (<=.f64 z 3402823669209384448/340282366920938463463374607431768211456) (+.f64 x (*.f64 x (*.f64 y z))) (+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x))) |
(if (<=.f64 z -1) (*.f64 (-.f64 (*.f64 y x) x) z) (if (<=.f64 z 1) (+.f64 x (*.f64 x (*.f64 y z))) (*.f64 (-.f64 (*.f64 y x) x) z))) |
(if (<=.f64 y -5147265148648285/2251799813685248) (+.f64 (*.f64 y (*.f64 z x)) x) (if (<=.f64 y 261795038640487328/18446744073709551616) (*.f64 (-.f64 1 z) x) (+.f64 x (*.f64 x (*.f64 y z))))) |
(if (<=.f64 y -5147265148648285/2251799813685248) (+.f64 (*.f64 y (*.f64 z x)) x) (if (<=.f64 y 261795038640487328/18446744073709551616) (*.f64 (-.f64 1 z) x) (+.f64 (*.f64 y (*.f64 z x)) x))) |
(if (<=.f64 y -3200000000000000046818224738159593699104137561166896189691554518943348365603674290913280) (*.f64 y (*.f64 z x)) (if (<=.f64 y 51746012972654552) (*.f64 (-.f64 1 z) x) (*.f64 x (*.f64 y z)))) |
(if (<=.f64 y -3200000000000000046818224738159593699104137561166896189691554518943348365603674290913280) (*.f64 z (*.f64 y x)) (if (<=.f64 y 51746012972654552) (*.f64 (-.f64 1 z) x) (*.f64 x (*.f64 y z)))) |
(if (<=.f64 z -243269632000000000/4194304) (*.f64 x (neg.f64 z)) (if (<=.f64 z -16515595718128534/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 z (*.f64 y x)) (if (<=.f64 z 1100) x (if (<=.f64 z 439999999999999991277092674789657062961840128) (*.f64 x (neg.f64 z)) (if (<=.f64 z 900000000000000086733230315498755630559395348786198330628736850501566464) (*.f64 x (*.f64 y z)) (*.f64 x (neg.f64 z))))))) |
(if (<=.f64 z -243269632000000000/4194304) (*.f64 x (neg.f64 z)) (if (<=.f64 z -16515595718128534/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 x (*.f64 y z)) (if (<=.f64 z 1100) x (if (<=.f64 z 439999999999999991277092674789657062961840128) (*.f64 x (neg.f64 z)) (if (<=.f64 z 900000000000000086733230315498755630559395348786198330628736850501566464) (*.f64 x (*.f64 y z)) (*.f64 x (neg.f64 z))))))) |
(if (<=.f64 z -1) (*.f64 x (neg.f64 z)) (if (<=.f64 z 1100) x (*.f64 x (neg.f64 z)))) |
x |
| Outputs |
|---|
(if (<=.f64 x -1000000000000000032841562489204926078987012566359611695512313426258747006898787995544001315627727412683949504784322435578648490634211491840) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (if (<=.f64 x 3298250447251343/2124551971267068394758352826209874509318372470908127692797776552801614239443408970956650009060917142675557317944986004061386317350610828957638079915066349407775325083341572876126912512) (+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))) |
(if (<=.f64 x -1000000000000000032841562489204926078987012566359611695512313426258747006898787995544001315627727412683949504784322435578648490634211491840) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (if (<=.f64 x 3298250447251343/2124551971267068394758352826209874509318372470908127692797776552801614239443408970956650009060917142675557317944986004061386317350610828957638079915066349407775325083341572876126912512) (+.f64 x (*.f64 z (-.f64 (*.f64 x y) x))) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))) |
(if (<=.f64 x -1000000000000000032841562489204926078987012566359611695512313426258747006898787995544001315627727412683949504784322435578648490634211491840) (*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) (if (<=.f64 x 3298250447251343/2124551971267068394758352826209874509318372470908127692797776552801614239443408970956650009060917142675557317944986004061386317350610828957638079915066349407775325083341572876126912512) (+.f64 x (*.f64 z (-.f64 (*.f64 x y) x))) (*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))))) |
(if (<=.f64 z -46876365235155896/115792089237316195423570985008687907853269984665640564039457584007913129639936) (+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x) (if (<=.f64 z 3402823669209384448/340282366920938463463374607431768211456) (+.f64 x (*.f64 x (*.f64 y z))) (+.f64 (*.f64 z (-.f64 (*.f64 x y) x)) x))) |
(if (<=.f64 z -5859545654394487/14474011154664524427946373126085988481658748083205070504932198000989141204992) (+.f64 x (*.f64 z (-.f64 (*.f64 x y) x))) (if (<=.f64 z 6646139978924579/664613997892457936451903530140172288) (+.f64 x (*.f64 x (*.f64 y z))) (+.f64 x (*.f64 z (-.f64 (*.f64 x y) x))))) |
(if (<=.f64 z -1) (*.f64 (-.f64 (*.f64 y x) x) z) (if (<=.f64 z 1) (+.f64 x (*.f64 x (*.f64 y z))) (*.f64 (-.f64 (*.f64 y x) x) z))) |
(if (<=.f64 z -1) (*.f64 z (-.f64 (*.f64 x y) x)) (if (<=.f64 z 1) (+.f64 x (*.f64 x (*.f64 y z))) (*.f64 z (-.f64 (*.f64 x y) x)))) |
(if (<=.f64 y -5147265148648285/2251799813685248) (+.f64 (*.f64 y (*.f64 z x)) x) (if (<=.f64 y 261795038640487328/18446744073709551616) (*.f64 (-.f64 1 z) x) (+.f64 x (*.f64 x (*.f64 y z))))) |
(if (<=.f64 y -5147265148648285/2251799813685248) (+.f64 x (*.f64 y (*.f64 x z))) (if (<=.f64 y 8181094957515229/576460752303423488) (*.f64 x (-.f64 1 z)) (+.f64 x (*.f64 x (*.f64 y z))))) |
(if (<=.f64 y -5147265148648285/2251799813685248) (+.f64 (*.f64 y (*.f64 z x)) x) (if (<=.f64 y 261795038640487328/18446744073709551616) (*.f64 (-.f64 1 z) x) (+.f64 (*.f64 y (*.f64 z x)) x))) |
(if (<=.f64 y -5147265148648285/2251799813685248) (+.f64 x (*.f64 y (*.f64 x z))) (if (<=.f64 y 8181094957515229/576460752303423488) (*.f64 x (-.f64 1 z)) (+.f64 x (*.f64 y (*.f64 x z))))) |
(if (<=.f64 y -3200000000000000046818224738159593699104137561166896189691554518943348365603674290913280) (*.f64 y (*.f64 z x)) (if (<=.f64 y 51746012972654552) (*.f64 (-.f64 1 z) x) (*.f64 x (*.f64 y z)))) |
(if (<=.f64 y -3200000000000000046818224738159593699104137561166896189691554518943348365603674290913280) (*.f64 y (*.f64 x z)) (if (<=.f64 y 51746012972654552) (*.f64 x (-.f64 1 z)) (*.f64 x (*.f64 y z)))) |
(if (<=.f64 y -3200000000000000046818224738159593699104137561166896189691554518943348365603674290913280) (*.f64 z (*.f64 y x)) (if (<=.f64 y 51746012972654552) (*.f64 (-.f64 1 z) x) (*.f64 x (*.f64 y z)))) |
(if (<=.f64 y -3200000000000000046818224738159593699104137561166896189691554518943348365603674290913280) (*.f64 z (*.f64 x y)) (if (<=.f64 y 51746012972654552) (*.f64 x (-.f64 1 z)) (*.f64 x (*.f64 y z)))) |
(if (<=.f64 z -243269632000000000/4194304) (*.f64 x (neg.f64 z)) (if (<=.f64 z -16515595718128534/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 z (*.f64 y x)) (if (<=.f64 z 1100) x (if (<=.f64 z 439999999999999991277092674789657062961840128) (*.f64 x (neg.f64 z)) (if (<=.f64 z 900000000000000086733230315498755630559395348786198330628736850501566464) (*.f64 x (*.f64 y z)) (*.f64 x (neg.f64 z))))))) |
(if (<=.f64 z -58000000000) (*.f64 x (neg.f64 z)) (if (<=.f64 z -8257797859064267/248661618204893321077691124073410420050228075398673858720231988446579748506266687766528) (*.f64 z (*.f64 x y)) (if (<=.f64 z 1100) x (if (<=.f64 z 439999999999999991277092674789657062961840128) (*.f64 x (neg.f64 z)) (if (<=.f64 z 900000000000000086733230315498755630559395348786198330628736850501566464) (*.f64 x (*.f64 y z)) (*.f64 x (neg.f64 z))))))) |
(if (<=.f64 z -243269632000000000/4194304) (*.f64 x (neg.f64 z)) (if (<=.f64 z -16515595718128534/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 x (*.f64 y z)) (if (<=.f64 z 1100) x (if (<=.f64 z 439999999999999991277092674789657062961840128) (*.f64 x (neg.f64 z)) (if (<=.f64 z 900000000000000086733230315498755630559395348786198330628736850501566464) (*.f64 x (*.f64 y z)) (*.f64 x (neg.f64 z))))))) |
(if (<=.f64 z -58000000000) (*.f64 x (neg.f64 z)) (if (<=.f64 z -8257797859064267/248661618204893321077691124073410420050228075398673858720231988446579748506266687766528) (*.f64 x (*.f64 y z)) (if (<=.f64 z 1100) x (if (<=.f64 z 439999999999999991277092674789657062961840128) (*.f64 x (neg.f64 z)) (if (<=.f64 z 900000000000000086733230315498755630559395348786198330628736850501566464) (*.f64 x (*.f64 y z)) (*.f64 x (neg.f64 z))))))) |
(if (<=.f64 z -1) (*.f64 x (neg.f64 z)) (if (<=.f64 z 1100) x (*.f64 x (neg.f64 z)))) |
x |
| 1× | fuel |
Compiled 638 to 299 computations (53.1% saved)
Loading profile data...