Time bar (total: 13.6s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 99.7% | 0.3% | 0 |
| 0% | 99.7% | 0.3% | 1 |
| 0% | 99.7% | 0.3% | 2 |
| 0% | 99.7% | 0.3% | 3 |
| 0% | 99.7% | 0.3% | 4 |
| 0% | 99.7% | 0.3% | 5 |
| 0% | 99.7% | 0.3% | 6 |
| 0% | 99.7% | 0.3% | 7 |
| 0% | 99.7% | 0.3% | 8 |
| 0% | 99.7% | 0.3% | 9 |
| 0% | 99.7% | 0.3% | 10 |
| 0% | 99.7% | 0.3% | 11 |
| 0% | 99.7% | 0.3% | 12 |
Compiled 22 to 14 computations (36.4% saved)
| 2.0s | 8256× | body | 256 | valid |
| 985.0ms | 3946× | body | 256 | invalid |
| 2× | egg-herbie |
| 1158× | fma-def_binary64 |
| 333× | associate-+l+_binary64 |
| 303× | associate-+r+_binary64 |
| 244× | +-commutative_binary64 |
| 64× | *-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 86 | 352 |
| 1 | 257 | 254 |
| 2 | 793 | 236 |
| 3 | 1763 | 236 |
| 4 | 1917 | 236 |
| 5 | 1939 | 236 |
| 6 | 1939 | 208 |
| 7 | 2483 | 208 |
| 8 | 2483 | 208 |
| 0 | 6 | 6 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
0 |
1 |
2 |
3 |
4 |
5 |
| Outputs |
|---|
0 |
1 |
2 |
3 |
4 |
5 |
| Inputs |
|---|
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(+.f64 (+.f64 (+.f64 y (*.f64 x z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(+.f64 (+.f64 (+.f64 z (*.f64 y x)) (*.f64 t a)) (*.f64 (*.f64 a x) b)) |
(+.f64 (+.f64 (+.f64 t (*.f64 y z)) (*.f64 x a)) (*.f64 (*.f64 a z) b)) |
(+.f64 (+.f64 (+.f64 a (*.f64 y z)) (*.f64 t x)) (*.f64 (*.f64 x z) b)) |
(+.f64 (+.f64 (+.f64 b (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) x)) |
(+.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 t a)) (*.f64 (*.f64 a y) b)) |
(+.f64 (+.f64 (+.f64 x (*.f64 t z)) (*.f64 y a)) (*.f64 (*.f64 a z) b)) |
(+.f64 (+.f64 (+.f64 x (*.f64 a z)) (*.f64 t y)) (*.f64 (*.f64 y z) b)) |
(+.f64 (+.f64 (+.f64 x (*.f64 b z)) (*.f64 t a)) (*.f64 (*.f64 a z) y)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y t)) (*.f64 z a)) (*.f64 (*.f64 a t) b)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y a)) (*.f64 t z)) (*.f64 (*.f64 z a) b)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y b)) (*.f64 t a)) (*.f64 (*.f64 a b) z)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 a t)) (*.f64 (*.f64 t z) b)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 b a)) (*.f64 (*.f64 a z) t)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t b)) (*.f64 (*.f64 b z) a)) |
| Outputs |
|---|
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b)))) |
(fma.f64 z (*.f64 a b) (fma.f64 t a (fma.f64 y z x))) |
(fma.f64 a (+.f64 t (*.f64 z b)) (fma.f64 y z x)) |
(fma.f64 z (fma.f64 a b y) (fma.f64 t a x)) |
(+.f64 (+.f64 (+.f64 y (*.f64 x z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(+.f64 (+.f64 y (*.f64 x z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b)))) |
(fma.f64 z (*.f64 a b) (fma.f64 t a (fma.f64 x z y))) |
(fma.f64 a (+.f64 t (*.f64 z b)) (fma.f64 x z y)) |
(+.f64 (fma.f64 t a y) (*.f64 z (fma.f64 a b x))) |
(fma.f64 x z (fma.f64 a (fma.f64 z b t) y)) |
(+.f64 (+.f64 (+.f64 z (*.f64 y x)) (*.f64 t a)) (*.f64 (*.f64 a x) b)) |
(+.f64 (+.f64 z (*.f64 x y)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 x b)))) |
(fma.f64 a (*.f64 x b) (fma.f64 t a (fma.f64 x y z))) |
(fma.f64 a (+.f64 t (*.f64 x b)) (fma.f64 x y z)) |
(fma.f64 x y (fma.f64 a (fma.f64 x b t) z)) |
(+.f64 (+.f64 (+.f64 t (*.f64 y z)) (*.f64 x a)) (*.f64 (*.f64 a z) b)) |
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 t (+.f64 (*.f64 y z) (*.f64 x a)))) |
(+.f64 (fma.f64 y z t) (*.f64 a (fma.f64 z b x))) |
(fma.f64 a (fma.f64 z b x) (fma.f64 y z t)) |
(fma.f64 x a (fma.f64 z (fma.f64 a b y) t)) |
(+.f64 (+.f64 (+.f64 a (*.f64 y z)) (*.f64 t x)) (*.f64 (*.f64 x z) b)) |
(+.f64 (+.f64 (*.f64 y z) a) (+.f64 (*.f64 x t) (*.f64 x (*.f64 z b)))) |
(fma.f64 x (*.f64 z b) (fma.f64 x t (fma.f64 y z a))) |
(fma.f64 x (+.f64 t (*.f64 z b)) (fma.f64 y z a)) |
(fma.f64 x (fma.f64 z b t) (fma.f64 y z a)) |
(+.f64 (+.f64 (+.f64 b (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) x)) |
(+.f64 (+.f64 b (+.f64 (*.f64 y z) (*.f64 t a))) (*.f64 x (*.f64 z a))) |
(fma.f64 x (*.f64 z a) (fma.f64 t a (fma.f64 y z b))) |
(fma.f64 a (+.f64 t (*.f64 x z)) (fma.f64 y z b)) |
(fma.f64 y z (fma.f64 a (fma.f64 x z t) b)) |
(+.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 t a)) (*.f64 (*.f64 a y) b)) |
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 b (*.f64 y a)))) |
(fma.f64 a (*.f64 y b) (fma.f64 t a (fma.f64 y z x))) |
(fma.f64 a (+.f64 t (*.f64 y b)) (fma.f64 y z x)) |
(fma.f64 y z (fma.f64 a (fma.f64 y b t) x)) |
(+.f64 (+.f64 (+.f64 x (*.f64 t z)) (*.f64 y a)) (*.f64 (*.f64 a z) b)) |
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 z t) (*.f64 y a)))) |
(fma.f64 z (*.f64 a b) (fma.f64 z t (fma.f64 y a x))) |
(fma.f64 z (+.f64 t (*.f64 a b)) (fma.f64 y a x)) |
(fma.f64 y a (fma.f64 z (fma.f64 a b t) x)) |
(+.f64 (+.f64 (+.f64 x (*.f64 a z)) (*.f64 t y)) (*.f64 (*.f64 y z) b)) |
(+.f64 (+.f64 x (+.f64 (*.f64 z a) (*.f64 y t))) (*.f64 y (*.f64 z b))) |
(fma.f64 y (*.f64 z b) (fma.f64 y t (fma.f64 z a x))) |
(fma.f64 y (+.f64 t (*.f64 z b)) (fma.f64 z a x)) |
(fma.f64 y t (fma.f64 z (fma.f64 y b a) x)) |
(+.f64 (+.f64 (+.f64 x (*.f64 b z)) (*.f64 t a)) (*.f64 (*.f64 a z) y)) |
(+.f64 (+.f64 x (*.f64 z b)) (+.f64 (*.f64 t a) (*.f64 y (*.f64 z a)))) |
(+.f64 (fma.f64 z b x) (*.f64 a (fma.f64 y z t))) |
(fma.f64 a (fma.f64 y z t) (fma.f64 z b x)) |
(fma.f64 t a (fma.f64 z (fma.f64 y a b) x)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y t)) (*.f64 z a)) (*.f64 (*.f64 a t) b)) |
(+.f64 (+.f64 x (*.f64 y t)) (+.f64 (*.f64 z a) (*.f64 (*.f64 t a) b))) |
(fma.f64 a (*.f64 t b) (fma.f64 y t (fma.f64 z a x))) |
(fma.f64 a (+.f64 z (*.f64 t b)) (fma.f64 y t x)) |
(fma.f64 z a (fma.f64 t (fma.f64 a b y) x)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y a)) (*.f64 t z)) (*.f64 (*.f64 z a) b)) |
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 z t) (*.f64 y a)))) |
(fma.f64 z (*.f64 a b) (fma.f64 z t (fma.f64 y a x))) |
(fma.f64 z (+.f64 t (*.f64 a b)) (fma.f64 y a x)) |
(fma.f64 y a (fma.f64 z (fma.f64 a b t) x)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y b)) (*.f64 t a)) (*.f64 (*.f64 a b) z)) |
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 y b) (*.f64 t a)))) |
(fma.f64 z (*.f64 a b) (fma.f64 t a (fma.f64 y b x))) |
(fma.f64 a (+.f64 t (*.f64 z b)) (fma.f64 y b x)) |
(fma.f64 a (fma.f64 z b t) (fma.f64 y b x)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 a t)) (*.f64 (*.f64 t z) b)) |
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 t (*.f64 z b)))) |
(fma.f64 t (*.f64 z b) (fma.f64 t a (fma.f64 y z x))) |
(fma.f64 t (+.f64 a (*.f64 z b)) (fma.f64 y z x)) |
(fma.f64 y z (fma.f64 t (fma.f64 z b a) x)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 b a)) (*.f64 (*.f64 a z) t)) |
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 a b) (*.f64 t (*.f64 z a)))) |
(fma.f64 t (*.f64 z a) (fma.f64 a b (fma.f64 y z x))) |
(fma.f64 a (+.f64 b (*.f64 z t)) (fma.f64 y z x)) |
(fma.f64 y z (fma.f64 a (fma.f64 z t b) x)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t b)) (*.f64 (*.f64 b z) a)) |
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t b) (*.f64 a (*.f64 z b)))) |
(fma.f64 z (*.f64 a b) (fma.f64 t b (fma.f64 y z x))) |
(fma.f64 b (+.f64 t (*.f64 z a)) (fma.f64 y z x)) |
(fma.f64 z (fma.f64 a b y) (fma.f64 t b x)) |
Compiled 27 to 19 computations (29.6% saved)
| 1× | egg-herbie |
| 89× | fma-def_binary64 |
| 23× | associate-+l+_binary64 |
| 21× | associate-+r+_binary64 |
| 19× | +-commutative_binary64 |
| 10× | *-commutative_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 22 |
| 1 | 27 | 16 |
| 2 | 69 | 15 |
| 3 | 148 | 13 |
| 4 | 191 | 13 |
| 5 | 203 | 13 |
| 6 | 206 | 13 |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
| Outputs |
|---|
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b)))) |
(fma.f64 a (*.f64 z b) (fma.f64 t a (fma.f64 y z x))) |
(fma.f64 a (+.f64 t (*.f64 z b)) (fma.f64 y z x)) |
(fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) |
Compiled 31 to 16 computations (48.4% 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 |
|---|---|---|
| ▶ | 3.3b | (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) |
| ▶ | 2.6b | (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
Compiled 37 to 22 computations (40.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 x (*.f64 y z)) |
| ✓ | 0.0b | (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) |
| ✓ | 0.0b | (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
| ✓ | 5.6b | (*.f64 (*.f64 a z) b) |
Compiled 55 to 13 computations (76.4% saved)
51 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | a | @ | inf | (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
| 1.0ms | b | @ | -inf | (*.f64 (*.f64 a z) b) |
| 1.0ms | b | @ | inf | (*.f64 (*.f64 a z) b) |
| 1.0ms | z | @ | 0 | (*.f64 (*.f64 a z) b) |
| 1.0ms | a | @ | 0 | (*.f64 (*.f64 a z) b) |
| 1× | batch-egg-rewrite |
| 854× | log-prod_binary64 |
| 458× | fma-neg_binary64 |
| 296× | expm1-udef_binary64 |
| 296× | log1p-udef_binary64 |
| 245× | log-pow_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 49 |
| 1 | 311 | 37 |
| 2 | 4686 | 37 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (*.f64 a z) b) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) |
(+.f64 x (*.f64 y z)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 b) (*.f64 a z))) (cbrt.f64 (pow.f64 (exp.f64 b) (*.f64 a z))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 b) (*.f64 a z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 b) (*.f64 a z)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 b) (*.f64 a z)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 a (*.f64 z b)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 z b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (*.f64 z b)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 b) (*.f64 a z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (*.f64 z b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 a (*.f64 z b))) 1)))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (-.f64 (fma.f64 a t (fma.f64 z y x)) (*.f64 a (*.f64 z b)))) (/.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (-.f64 (fma.f64 a t (fma.f64 z y x)) (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))) (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))) 2) (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))) (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3)) (/.f64 1 (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t (fma.f64 z y x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (pow.f64 (*.f64 a (*.f64 z b)) 2)) (/.f64 1 (-.f64 (fma.f64 a t (fma.f64 z y x)) (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t (fma.f64 z y x))))) (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (fma.f64 a t (fma.f64 z y x)) (*.f64 a (*.f64 z b))) (-.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (pow.f64 (*.f64 a (*.f64 z b)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3)) (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t (fma.f64 z y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3)) (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (-.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (*.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t (fma.f64 z y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (pow.f64 (*.f64 a (*.f64 z b)) 2)) (-.f64 (fma.f64 a t (fma.f64 z y x)) (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3))) (neg.f64 (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t (fma.f64 z y x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (pow.f64 (*.f64 a (*.f64 z b)) 2))) (neg.f64 (-.f64 (fma.f64 a t (fma.f64 z y x)) (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 z y x) 3) (pow.f64 (*.f64 a (+.f64 t (*.f64 z b))) 3)) (+.f64 (pow.f64 (fma.f64 z y x) 2) (-.f64 (*.f64 (*.f64 a (+.f64 t (*.f64 z b))) (*.f64 a (+.f64 t (*.f64 z b)))) (*.f64 (fma.f64 z y x) (*.f64 a (+.f64 t (*.f64 z b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 z y x) 2) (*.f64 (*.f64 a (+.f64 t (*.f64 z b))) (*.f64 a (+.f64 t (*.f64 z b))))) (-.f64 (fma.f64 z y x) (*.f64 a (+.f64 t (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a (*.f64 z b)))) (exp.f64 (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 b) (*.f64 a z)) (+.f64 1 (expm1.f64 (fma.f64 a t (fma.f64 z y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a (*.f64 z b)))) (+.f64 1 (expm1.f64 (fma.f64 a t (fma.f64 z y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 z y x))) (exp.f64 (*.f64 a (+.f64 t (*.f64 z b))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 z y x)) (*.f64 (pow.f64 (exp.f64 t) a) (pow.f64 (exp.f64 b) (*.f64 a z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 z y x))) (*.f64 (pow.f64 (exp.f64 t) a) (pow.f64 (exp.f64 b) (*.f64 a z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a t (fma.f64 z y x)))) (pow.f64 (exp.f64 b) (*.f64 a z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 a t (fma.f64 z y x))) (+.f64 1 (expm1.f64 (*.f64 a (*.f64 z b))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a t (fma.f64 z y x)))) (+.f64 1 (expm1.f64 (*.f64 a (*.f64 z b))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 a (+.f64 t (*.f64 z b)))) (exp.f64 (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 t) a) (pow.f64 (exp.f64 b) (*.f64 a z))) (exp.f64 (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 a (+.f64 t (*.f64 z b)))) (+.f64 1 (expm1.f64 (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 t) a) (pow.f64 (exp.f64 b) (*.f64 a z))) (+.f64 1 (expm1.f64 (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a z) b (fma.f64 a t (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 a z) (fma.f64 a t (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (*.f64 z b)) (fma.f64 a t (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 z y x) (*.f64 a (+.f64 t (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 a t (fma.f64 z y x)) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 2) (cbrt.f64 (*.f64 a (*.f64 z b))) (fma.f64 a t (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2)) (cbrt.f64 (fma.f64 a t (fma.f64 z y x))) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 z y x) 2)) (cbrt.f64 (fma.f64 z y x)) (*.f64 a (+.f64 t (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) (sqrt.f64 (*.f64 a (*.f64 z b))) (fma.f64 a t (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 a t (fma.f64 z y x))) (sqrt.f64 (fma.f64 a t (fma.f64 z y x))) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 z y x)) (sqrt.f64 (fma.f64 z y x)) (*.f64 a (+.f64 t (*.f64 z b)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a t (fma.f64 z y x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (fma.f64 z y x) 2) (-.f64 (fma.f64 z y x) (*.f64 a t))) (/.f64 (pow.f64 (*.f64 a t) 2) (-.f64 (fma.f64 z y x) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a t (fma.f64 z y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a t (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a t (fma.f64 z y x))) (cbrt.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2)) (cbrt.f64 (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a t (fma.f64 z y x))) (sqrt.f64 (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 z y x) 3) (pow.f64 (*.f64 a t) 3)) (/.f64 1 (+.f64 (pow.f64 (fma.f64 z y x) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (fma.f64 z y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (fma.f64 z y x) 2) (pow.f64 (*.f64 a t) 2)) (/.f64 1 (-.f64 (fma.f64 z y x) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 z y x) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (fma.f64 z y x)))) (+.f64 (pow.f64 (fma.f64 z y x) 3) (pow.f64 (*.f64 a t) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (fma.f64 z y x) (*.f64 a t)) (-.f64 (pow.f64 (fma.f64 z y x) 2) (pow.f64 (*.f64 a t) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 z y x) 3) (pow.f64 (*.f64 a t) 3)) (+.f64 (pow.f64 (fma.f64 z y x) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 z y x) 3) (pow.f64 (*.f64 a t) 3)) (+.f64 (pow.f64 (*.f64 a t) 2) (-.f64 (pow.f64 (fma.f64 z y x) 2) (*.f64 (fma.f64 z y x) (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 z y x) 2) (pow.f64 (*.f64 a t) 2)) (-.f64 (fma.f64 z y x) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 z y x) 3) (pow.f64 (*.f64 a t) 3))) (neg.f64 (+.f64 (pow.f64 (fma.f64 z y x) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (fma.f64 z y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 z y x) 2) (pow.f64 (*.f64 a t) 2))) (neg.f64 (-.f64 (fma.f64 z y x) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (fma.f64 z y (*.f64 a t)) 3)) (+.f64 (*.f64 x x) (-.f64 (*.f64 (fma.f64 z y (*.f64 a t)) (fma.f64 z y (*.f64 a t))) (*.f64 x (fma.f64 z y (*.f64 a t))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (*.f64 (fma.f64 z y (*.f64 a t)) (fma.f64 z y (*.f64 a t)))) (-.f64 x (fma.f64 z y (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (pow.f64 (fma.f64 z y x) 2)) (-.f64 (*.f64 a t) (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a t (fma.f64 z y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a t (fma.f64 z y x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a t (fma.f64 z y x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (exp.f64 (fma.f64 z y (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (*.f64 (pow.f64 (exp.f64 y) z) (pow.f64 (exp.f64 t) a))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (*.f64 (pow.f64 (exp.f64 y) z) (pow.f64 (exp.f64 t) a))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 z y x))) (pow.f64 (exp.f64 t) a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 z y x)) (+.f64 1 (expm1.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 z y x))) (+.f64 1 (expm1.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a t))) (exp.f64 (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 t) a) (+.f64 1 (expm1.f64 (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a t))) (+.f64 1 (expm1.f64 (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 z y (*.f64 a t))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 y) z) (pow.f64 (exp.f64 t) a)) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 z y (*.f64 a t))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 y) z) (pow.f64 (exp.f64 t) a)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a t (fma.f64 z y x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a t (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t a (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (fma.f64 z y (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 z y x) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a t) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (cbrt.f64 (*.f64 a t)) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 z y x) 2)) (cbrt.f64 (fma.f64 z y x)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (fma.f64 z y (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 z y x)) (sqrt.f64 (fma.f64 z y x)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (fma.f64 z y (*.f64 a t))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 z y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (-.f64 x (*.f64 z y))) (/.f64 (pow.f64 (*.f64 z y) 2) (-.f64 x (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 z y x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 z y x)) (cbrt.f64 (pow.f64 (fma.f64 z y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 z y x) 2)) (cbrt.f64 (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 z y x)) (sqrt.f64 (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z y) 3)) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 z y) (fma.f64 z y (neg.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 z y) 2)) (/.f64 1 (-.f64 x (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x (*.f64 (*.f64 z y) (fma.f64 z y (neg.f64 x)))) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (*.f64 z y)) (-.f64 (*.f64 x x) (pow.f64 (*.f64 z y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z y) 3)) (fma.f64 x x (*.f64 (*.f64 z y) (fma.f64 z y (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z y) 3)) (+.f64 (pow.f64 (*.f64 z y) 2) (-.f64 (*.f64 x x) (*.f64 x (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 z y) 2)) (-.f64 x (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z y) 3))) (neg.f64 (fma.f64 x x (*.f64 (*.f64 z y) (fma.f64 z y (neg.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 z y) 2))) (neg.f64 (-.f64 x (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z y) 2) (*.f64 x x)) (fma.f64 z y (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 z y x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 z y x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 z y x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z y x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 z y x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (pow.f64 (exp.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (+.f64 1 (expm1.f64 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (+.f64 1 (expm1.f64 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z y))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 y) z) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z y))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 z y x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 z y x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z y x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y z x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z y) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z y)) 2) (cbrt.f64 (*.f64 z y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z y)) (sqrt.f64 (*.f64 z y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 z y)))))) |
| 1× | egg-herbie |
| 1275× | fma-neg_binary64 |
| 1117× | fma-def_binary64 |
| 182× | cancel-sign-sub-inv_binary64 |
| 150× | distribute-rgt-in_binary64 |
| 134× | sub-neg_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 56 | 1812 |
| 1 | 190 | 1693 |
| 2 | 397 | 1693 |
| 3 | 797 | 1693 |
| 4 | 2011 | 1693 |
| 5 | 3363 | 1693 |
| 6 | 3851 | 1693 |
| 7 | 4154 | 1693 |
| 8 | 4180 | 1693 |
| 9 | 4180 | 1693 |
| 10 | 4316 | 1693 |
| 11 | 4316 | 1693 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
x |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
x |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)) |
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
x |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
x |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
x |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
x |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
x |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
(*.f64 y z) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
(*.f64 y z) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
x |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
(*.f64 y z) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
(*.f64 y z) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) x) |
| Outputs |
|---|
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))) |
(fma.f64 y z (*.f64 a (+.f64 (*.f64 b z) t))) |
(fma.f64 a t (*.f64 z (fma.f64 a b y))) |
(fma.f64 a (fma.f64 b z t) (*.f64 z y)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
x |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
x |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)) |
(fma.f64 (+.f64 (*.f64 b z) t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 a t) x) |
(fma.f64 a t x) |
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 y z (fma.f64 a (*.f64 b z) x)) |
(fma.f64 z (fma.f64 a b y) x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 a (+.f64 (*.f64 b z) t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) |
(*.f64 a (+.f64 (*.f64 b z) t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x)) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(*.f64 a (*.f64 b z)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(fma.f64 y z (*.f64 a t)) |
(fma.f64 z y (*.f64 a t)) |
(fma.f64 a t (*.f64 z y)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
x |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
x |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 a t) x) |
(fma.f64 a t x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 a t) x) |
(fma.f64 a t x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
x |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
x |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
x |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
x |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) |
| ✓ | 3.1b | (fma.f64 a (fma.f64 z b t) x) |
Compiled 33 to 9 computations (72.7% saved)
33 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | inf | (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) |
| 1.0ms | b | @ | -inf | (fma.f64 a (fma.f64 z b t) x) |
| 1.0ms | z | @ | 0 | (fma.f64 a (fma.f64 z b t) x) |
| 1.0ms | z | @ | -inf | (fma.f64 a (fma.f64 z b t) x) |
| 1.0ms | b | @ | inf | (fma.f64 a (fma.f64 z b t) x) |
| 1× | batch-egg-rewrite |
| 977× | pow1_binary64 |
| 889× | add-log-exp_binary64 |
| 889× | log1p-expm1-u_binary64 |
| 889× | expm1-log1p-u_binary64 |
| 866× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 22 |
| 1 | 197 | 22 |
| 2 | 2355 | 22 |
| 1× | node limit |
| Inputs |
|---|
(fma.f64 a (fma.f64 z b t) x) |
(fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (fma.f64 z b t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a (fma.f64 z b t)) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 a (fma.f64 z b t) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (fma.f64 z b t) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (fma.f64 z b t) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)) (cbrt.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 2)) (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)) (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 3) (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 a (fma.f64 z b t)) (*.f64 a (fma.f64 z b t))) (-.f64 (*.f64 x x) (*.f64 (*.f64 a (fma.f64 z b t)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 a (fma.f64 z b t)) (*.f64 a (fma.f64 z b t))) (*.f64 x x)) (-.f64 (*.f64 a (fma.f64 z b t)) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (fma.f64 z b t) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (fma.f64 z b t) x))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 a (fma.f64 z b t) x) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z y) (fma.f64 a (fma.f64 z b t) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 z y) 1) (fma.f64 a (fma.f64 z b t) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 z y) (*.f64 a (fma.f64 z b t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))) (pow.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))) 2) (cbrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))) (sqrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (fma.f64 a (fma.f64 z b t) x) 3)) (+.f64 (*.f64 (*.f64 z y) (*.f64 z y)) (-.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 2) (*.f64 (*.f64 z y) (fma.f64 a (fma.f64 z b t) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 z y) (*.f64 z y)) (pow.f64 (fma.f64 a (fma.f64 z b t) x) 2)) (-.f64 (*.f64 z y) (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)))))))) |
| 1× | egg-herbie |
| 1240× | fma-neg_binary64 |
| 695× | fma-def_binary64 |
| 292× | cancel-sign-sub-inv_binary64 |
| 189× | distribute-rgt-in_binary64 |
| 128× | associate--r+_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 51 | 1304 |
| 1 | 156 | 1301 |
| 2 | 286 | 1301 |
| 3 | 536 | 1301 |
| 4 | 1058 | 1301 |
| 5 | 2101 | 1301 |
| 6 | 3006 | 1301 |
| 7 | 3796 | 1301 |
| 8 | 4013 | 1301 |
| 9 | 4013 | 1301 |
| 10 | 4070 | 1301 |
| 1× | saturated |
| Inputs |
|---|
x |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(*.f64 a t) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(*.f64 a t) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
x |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
x |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t))) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
x |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
x |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
| Outputs |
|---|
x |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) x) |
(fma.f64 a t x) |
(fma.f64 t a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) x) |
(fma.f64 a t x) |
(fma.f64 t a x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 b z) a x) |
(fma.f64 b (*.f64 z a) x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 a t) |
(*.f64 t a) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 a t) |
(*.f64 t a) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
x |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
x |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 a t) x) |
(fma.f64 a t x) |
(fma.f64 t a x) |
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (fma.f64 b a y)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (fma.f64 b a y)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(fma.f64 z y x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 t a x)) |
(fma.f64 t a (fma.f64 z y x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 y z (fma.f64 a (*.f64 b z) x)) |
(fma.f64 z (fma.f64 b a y) x) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(*.f64 a t) |
(*.f64 t a) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(*.f64 a t) |
(*.f64 t a) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t))) |
(fma.f64 y z (*.f64 (fma.f64 z b t) a)) |
(fma.f64 t a (*.f64 z (fma.f64 b a y))) |
(fma.f64 z (fma.f64 b a y) (*.f64 t a)) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
x |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
x |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)) |
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x)) |
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x)) |
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x)) |
Compiled 5176 to 1160 computations (77.6% saved)
13 alts after pruning (13 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 278 | 13 | 291 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 1 | 0 | 1 |
| Total | 280 | 13 | 293 |
| Status | Error | Program |
|---|---|---|
| ▶ | 50.6b | (*.f64 a t) |
| 38.3b | x | |
| ▶ | 17.6b | (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) |
| ▶ | 38.3b | (*.f64 z (+.f64 (*.f64 a b) y)) |
| 29.7b | (fma.f64 y z (pow.f64 (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)) 2)) | |
| ▶ | 26.1b | (+.f64 (*.f64 a t) x) |
| 47.9b | (*.f64 z y) | |
| 42.3b | (*.f64 (+.f64 t (*.f64 b z)) a) | |
| 23.6b | (fma.f64 z y x) | |
| 23.6b | (+.f64 (*.f64 y z) x) | |
| ▶ | 11.2b | (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
| 27.4b | (+.f64 (fma.f64 a t (*.f64 z y)) (*.f64 (*.f64 a z) b)) | |
| 27.4b | (+.f64 (+.f64 (*.f64 y z) (*.f64 a t)) (*.f64 (*.f64 a z) b)) |
Compiled 331 to 226 computations (31.7% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
Compiled 31 to 10 computations (67.7% saved)
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | a | @ | 0 | (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
| 0.0ms | a | @ | -inf | (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
| 0.0ms | t | @ | -inf | (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
| 1× | batch-egg-rewrite |
| 577× | fma-def_binary64 |
| 567× | log-prod_binary64 |
| 449× | pow-prod-down_binary64 |
| 306× | pow2_binary64 |
| 304× | fma-neg_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 9 |
| 1 | 220 | 9 |
| 2 | 3163 | 9 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 y z (fma.f64 a t x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 y z) 2) (-.f64 (*.f64 y z) (fma.f64 a t x))) (/.f64 (pow.f64 (fma.f64 a t x) 2) (-.f64 (*.f64 y z) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y z (fma.f64 a t x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y z (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a t x))) (pow.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a t x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a t x))) 2) (cbrt.f64 (fma.f64 y z (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 y z (fma.f64 a t x))) (sqrt.f64 (fma.f64 y z (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (fma.f64 a t x) 3)) (/.f64 1 (fma.f64 (fma.f64 a t x) (-.f64 (fma.f64 a t x) (*.f64 y z)) (pow.f64 (*.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (fma.f64 a t x) 2)) (/.f64 1 (-.f64 (*.f64 y z) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (fma.f64 a t x) (-.f64 (fma.f64 a t x) (*.f64 y z)) (pow.f64 (*.f64 y z) 2)) (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (fma.f64 a t x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 y z) (fma.f64 a t x)) (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (fma.f64 a t x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (fma.f64 a t x) 3)) (fma.f64 (fma.f64 a t x) (-.f64 (fma.f64 a t x) (*.f64 y z)) (pow.f64 (*.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (fma.f64 a t x) 3)) (+.f64 (pow.f64 (fma.f64 a t x) 2) (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (*.f64 y z) (fma.f64 a t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (fma.f64 a t x) 2)) (-.f64 (*.f64 y z) (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (fma.f64 a t x) 3))) (neg.f64 (fma.f64 (fma.f64 a t x) (-.f64 (fma.f64 a t x) (*.f64 y z)) (pow.f64 (*.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (fma.f64 a t x) 2))) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 y z (*.f64 a t)) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (fma.f64 y z (*.f64 a t)) 2) (-.f64 (*.f64 x x) (*.f64 (fma.f64 y z (*.f64 a t)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 a t x) 2) (pow.f64 (*.f64 y z) 2)) (-.f64 (fma.f64 a t x) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 y z (*.f64 a t)) 2) (*.f64 x x)) (-.f64 (fma.f64 y z (*.f64 a t)) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y z (fma.f64 a t x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y z (fma.f64 a t x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y z (fma.f64 a t x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a t x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 y z (fma.f64 a t x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (fma.f64 a t x) (-.f64 (fma.f64 a t x) (*.f64 y z)) (pow.f64 (*.f64 y z) 2)) (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (fma.f64 a t x) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 y z) (fma.f64 a t x)) (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (fma.f64 a t x) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 y z (fma.f64 a t x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y z (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 y z (fma.f64 a t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y z))) (exp.f64 (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 y z)) (+.f64 1 (expm1.f64 (fma.f64 a t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y z))) (+.f64 1 (expm1.f64 (fma.f64 a t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (exp.f64 (fma.f64 y z (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (exp.f64 (fma.f64 y z (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (*.f64 (exp.f64 (*.f64 y z)) (pow.f64 (exp.f64 a) t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (*.f64 (exp.f64 (*.f64 y z)) (pow.f64 (exp.f64 a) t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a t x))) (exp.f64 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 a t x)) (+.f64 1 (expm1.f64 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a t x))) (+.f64 1 (expm1.f64 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (exp.f64 (*.f64 y z)) (pow.f64 (exp.f64 a) t)) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 y z (*.f64 a t))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (exp.f64 (*.f64 y z)) (pow.f64 (exp.f64 a) t)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 y z (fma.f64 a t x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 y z (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y z (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y z (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 y z (fma.f64 a t x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y z (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z y (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y z) 1 (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a t (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t a (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a t) 1 (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (fma.f64 y z (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 a t x) 1 (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a t) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (fma.f64 y z (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 a t x) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 y z (*.f64 a t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 x x)) (fma.f64 y z (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (fma.f64 y z (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) t) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 a t x)) (pow.f64 (cbrt.f64 (fma.f64 a t x)) 2) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 a t x)) 2) (cbrt.f64 (fma.f64 a t x)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 t) 2) (*.f64 (cbrt.f64 t) a) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) y) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a t)) (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (cbrt.f64 (*.f64 a t)) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y z)) (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (cbrt.f64 (*.f64 y z)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (fma.f64 y z (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) t) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 a t x)) (sqrt.f64 (fma.f64 a t x)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (*.f64 (sqrt.f64 t) a) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) y) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y z)) (sqrt.f64 (*.f64 y z)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3)) (/.f64 1 (fma.f64 x (-.f64 x (*.f64 a t)) (pow.f64 (*.f64 a t) 2))) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x x)) (/.f64 1 (-.f64 (*.f64 a t) x)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 y z (*.f64 a t)) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 y z (*.f64 a t))) 2) (cbrt.f64 (fma.f64 y z (*.f64 a t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 y z (*.f64 a t))) (sqrt.f64 (fma.f64 y z (*.f64 a t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (pow.f64 (cbrt.f64 t) 2)) (cbrt.f64 t) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 t)) (sqrt.f64 t) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (cbrt.f64 (*.f64 a a))) (cbrt.f64 a) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (sqrt.f64 a)) (sqrt.f64 a) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 z)) (sqrt.f64 z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (cbrt.f64 (*.f64 y y))) (cbrt.f64 y) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 y)) (sqrt.f64 y) (fma.f64 a t x)))))) |
| 1× | egg-herbie |
| 8× | fma-def_binary64 |
| 3× | +-commutative_binary64 |
| 2× | *-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 62 |
| 1 | 19 | 62 |
| 2 | 24 | 62 |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (*.f64 a t) x) |
(*.f64 y z) |
(*.f64 y z) |
(+.f64 (*.f64 a t) x) |
(*.f64 y z) |
(*.f64 y z) |
(+.f64 (*.f64 y z) x) |
(*.f64 a t) |
(*.f64 a t) |
(+.f64 (*.f64 y z) x) |
(*.f64 a t) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
x |
x |
| Outputs |
|---|
(+.f64 (*.f64 a t) x) |
(fma.f64 a t x) |
(*.f64 y z) |
(*.f64 y z) |
(+.f64 (*.f64 a t) x) |
(fma.f64 a t x) |
(*.f64 y z) |
(*.f64 y z) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(*.f64 a t) |
(*.f64 a t) |
(+.f64 (*.f64 y z) x) |
(fma.f64 y z x) |
(*.f64 a t) |
(*.f64 a t) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(fma.f64 y z (*.f64 a t)) |
x |
x |
Compiled 11 to 7 computations (36.4% saved)
Compiled 17 to 8 computations (52.9% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 2.9b | (*.f64 z (+.f64 (*.f64 a b) y)) |
Compiled 25 to 9 computations (64% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | b | @ | 0 | (*.f64 z (+.f64 (*.f64 a b) y)) |
| 1.0ms | z | @ | 0 | (*.f64 z (+.f64 (*.f64 a b) y)) |
| 1.0ms | a | @ | inf | (*.f64 z (+.f64 (*.f64 a b) y)) |
| 0.0ms | z | @ | inf | (*.f64 z (+.f64 (*.f64 a b) y)) |
| 0.0ms | y | @ | 0 | (*.f64 z (+.f64 (*.f64 a b) y)) |
| 1× | batch-egg-rewrite |
| 973× | pow1_binary64 |
| 901× | add-log-exp_binary64 |
| 901× | log1p-expm1-u_binary64 |
| 901× | expm1-log1p-u_binary64 |
| 93× | add-sqr-sqrt_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 8 |
| 1 | 174 | 8 |
| 2 | 2478 | 8 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (+.f64 (*.f64 a b) y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 z a) b) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z y) (*.f64 (*.f64 z a) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (*.f64 z a) b) 1) (*.f64 (*.f64 z y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 z (fma.f64 a b y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (*.f64 z a) b) 3) (pow.f64 (*.f64 z y) 3)) (+.f64 (*.f64 (*.f64 (*.f64 z a) b) (*.f64 (*.f64 z a) b)) (-.f64 (*.f64 (*.f64 z y) (*.f64 z y)) (*.f64 (*.f64 (*.f64 z a) b) (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (*.f64 z a) b) (*.f64 (*.f64 z a) b)) (*.f64 (*.f64 z y) (*.f64 z y))) (-.f64 (*.f64 (*.f64 z a) b) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 y 3)) z) (+.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y (-.f64 y (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (-.f64 (*.f64 a b) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 y 3))) (+.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y (-.f64 y (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) (-.f64 (*.f64 a b) y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (fma.f64 a b y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (fma.f64 a b y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 z (fma.f64 a b y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 z (fma.f64 a b y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 z (fma.f64 a b y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (fma.f64 a b y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 z (fma.f64 a b y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (fma.f64 a b y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 z 3) (pow.f64 (fma.f64 a b y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 a b y) 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z (fma.f64 a b y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 z (fma.f64 a b y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 z (fma.f64 a b y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 a b) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a b) z (*.f64 z y)))))) |
| 1× | egg-herbie |
| 11× | fma-def_binary64 |
| 10× | *-commutative_binary64 |
| 3× | +-commutative_binary64 |
| 2× | associate-*r*_binary64 |
| 2× | associate-*l*_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 348 |
| 1 | 23 | 321 |
| 2 | 38 | 267 |
| 3 | 44 | 267 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
| Outputs |
|---|
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) |
| ✓ | 3.2b | (*.f64 a (+.f64 (*.f64 z b) t)) |
Compiled 35 to 10 computations (71.4% saved)
27 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | a | @ | inf | (*.f64 a (+.f64 (*.f64 z b) t)) |
| 1.0ms | a | @ | 0 | (*.f64 a (+.f64 (*.f64 z b) t)) |
| 0.0ms | z | @ | inf | (*.f64 a (+.f64 (*.f64 z b) t)) |
| 0.0ms | b | @ | inf | (*.f64 a (+.f64 (*.f64 z b) t)) |
| 0.0ms | a | @ | -inf | (*.f64 a (+.f64 (*.f64 z b) t)) |
| 1× | batch-egg-rewrite |
| 594× | log-prod_binary64 |
| 537× | fma-def_binary64 |
| 487× | pow-prod-down_binary64 |
| 313× | pow2_binary64 |
| 249× | fma-neg_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 19 |
| 1 | 223 | 17 |
| 2 | 3334 | 17 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 a (+.f64 (*.f64 z b) t)) |
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a (*.f64 z b)) 1) (*.f64 (*.f64 a t) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (fma.f64 z b t))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a) (fma.f64 z b t)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a) (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 a (fma.f64 z b t)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 3) (pow.f64 (*.f64 a t) 3)) (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 (*.f64 a (*.f64 z b)) (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (pow.f64 (*.f64 a t) 2)) (-.f64 (*.f64 a (*.f64 z b)) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (*.f64 z b) 3) (pow.f64 t 3)) a) (fma.f64 t (-.f64 t (*.f64 z b)) (pow.f64 (*.f64 z b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 z b) 2) (*.f64 t t)) a) (fma.f64 z b (neg.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (+.f64 (pow.f64 (*.f64 z b) 3) (pow.f64 t 3))) (fma.f64 t (-.f64 t (*.f64 z b)) (pow.f64 (*.f64 z b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (-.f64 (pow.f64 (*.f64 z b) 2) (*.f64 t t))) (fma.f64 z b (neg.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (fma.f64 z b t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (fma.f64 z b t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a (fma.f64 z b t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a) (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 a (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 a t)) (exp.f64 (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 a (fma.f64 z b t))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 z b) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a t (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 b a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 z a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z b) a (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t a (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a t) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 z b) 2)) (*.f64 (cbrt.f64 (*.f64 z b)) a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) t) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 t) 2) (*.f64 (cbrt.f64 t) a) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z b)) (*.f64 (sqrt.f64 (*.f64 z b)) a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) t) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (*.f64 (sqrt.f64 t) a) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (*.f64 z b)) 1 (*.f64 (*.f64 a t) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (cbrt.f64 (*.f64 a t)) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 2) (cbrt.f64 (*.f64 a (*.f64 z b))) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) (sqrt.f64 (*.f64 a (*.f64 z b))) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (pow.f64 (cbrt.f64 t) 2)) (cbrt.f64 t) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 t)) (sqrt.f64 t) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (cbrt.f64 (*.f64 a a))) (cbrt.f64 a) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a z) b (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a b) z (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (cbrt.f64 (pow.f64 (*.f64 z b) 2))) (cbrt.f64 (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z b) (cbrt.f64 (*.f64 a a))) (cbrt.f64 a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z b) (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a t)))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a (fma.f64 z b t) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (-.f64 x (*.f64 a (fma.f64 z b t)))) (/.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2) (-.f64 x (*.f64 a (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (fma.f64 z b t) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (fma.f64 z b t) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)) (pow.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)) 2) (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)) (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3)) (/.f64 1 (fma.f64 (*.f64 a (fma.f64 z b t)) (-.f64 (*.f64 a (fma.f64 z b t)) x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (fma.f64 z b t)) 2)) (/.f64 1 (-.f64 x (*.f64 a (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 a (fma.f64 z b t)) (-.f64 (*.f64 a (fma.f64 z b t)) x) (*.f64 x x)) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (*.f64 a (fma.f64 z b t))) (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (fma.f64 z b t)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3)) (fma.f64 (*.f64 a (fma.f64 z b t)) (-.f64 (*.f64 a (fma.f64 z b t)) x) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3)) (+.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2) (-.f64 (*.f64 x x) (*.f64 (*.f64 a (fma.f64 z b t)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (fma.f64 z b t)) 2)) (-.f64 x (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3))) (neg.f64 (fma.f64 (*.f64 a (fma.f64 z b t)) (-.f64 (*.f64 a (fma.f64 z b t)) x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (fma.f64 z b t)) 2))) (neg.f64 (-.f64 x (*.f64 a (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2) (*.f64 x x)) (-.f64 (*.f64 a (fma.f64 z b t)) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (fma.f64 z b t) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 a (fma.f64 z b t)) (-.f64 (*.f64 a (fma.f64 z b t)) x) (*.f64 x x)) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 x (*.f64 a (fma.f64 z b t))) (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (fma.f64 z b t)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a (fma.f64 z b t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a (fma.f64 z b t)))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 a) (fma.f64 z b t)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a (fma.f64 z b t)))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (pow.f64 (exp.f64 a) (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (+.f64 1 (expm1.f64 (*.f64 a (fma.f64 z b t))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (+.f64 1 (expm1.f64 (*.f64 a (fma.f64 z b t))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a (fma.f64 z b t) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 z b) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (fma.f64 z b t) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 b a) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 z a) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z b) a (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 z b t) a x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (fma.f64 z b t)) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (fma.f64 z b t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (*.f64 z b)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a (fma.f64 z b t))) (cbrt.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2)) (cbrt.f64 (*.f64 a (fma.f64 z b t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 z b) 2)) (*.f64 (cbrt.f64 (*.f64 z b)) a) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) (fma.f64 z b t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) (*.f64 z b)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 z b t)) 2) (*.f64 (cbrt.f64 (fma.f64 z b t)) a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a (fma.f64 z b t))) (sqrt.f64 (*.f64 a (fma.f64 z b t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z b)) (*.f64 (sqrt.f64 (*.f64 z b)) a) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (fma.f64 z b t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 z b)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 z b t)) (*.f64 (sqrt.f64 (fma.f64 z b t)) a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 2) (cbrt.f64 (*.f64 a (*.f64 z b))) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) (sqrt.f64 (*.f64 a (*.f64 z b))) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (pow.f64 (cbrt.f64 (fma.f64 z b t)) 2)) (cbrt.f64 (fma.f64 z b t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 (fma.f64 z b t))) (sqrt.f64 (fma.f64 z b t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 z b t) (cbrt.f64 (*.f64 a a))) (cbrt.f64 a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 z b t) (sqrt.f64 a)) (sqrt.f64 a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a z) b (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a b) z (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (cbrt.f64 (pow.f64 (*.f64 z b) 2))) (cbrt.f64 (*.f64 z b)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z b) (cbrt.f64 (*.f64 a a))) (cbrt.f64 a) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z b) (sqrt.f64 a)) (sqrt.f64 a) (fma.f64 a t x)))))) |
| 1× | egg-herbie |
| 32× | fma-def_binary64 |
| 11× | +-commutative_binary64 |
| 10× | *-commutative_binary64 |
| 4× | associate-+r+_binary64 |
| 3× | distribute-lft-out_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 28 | 763 |
| 1 | 68 | 763 |
| 2 | 87 | 763 |
| 3 | 93 | 763 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 a t) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a t) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a t) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a t) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
x |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
x |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
x |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(*.f64 a t) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(*.f64 a t) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
| Outputs |
|---|
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 a t) |
(*.f64 t a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 a t) |
(*.f64 t a) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 a t) |
(*.f64 t a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 a t) |
(*.f64 t a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
x |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
x |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
x |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 (fma.f64 z b t) a) |
(*.f64 (fma.f64 b z t) a) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) x) |
(fma.f64 a t x) |
(fma.f64 t a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) x) |
(fma.f64 a t x) |
(fma.f64 t a x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 b z) a) |
(*.f64 b (*.f64 z a)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 b z) a x) |
(fma.f64 b (*.f64 z a) x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 a t) |
(*.f64 t a) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(*.f64 a t) |
(*.f64 t a) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 (fma.f64 b z t) a x) |
Compiled 3940 to 1021 computations (74.1% saved)
16 alts after pruning (13 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 280 | 9 | 289 |
| Fresh | 4 | 4 | 8 |
| Picked | 1 | 0 | 1 |
| Done | 1 | 3 | 4 |
| Total | 286 | 16 | 302 |
| Status | Error | Program |
|---|---|---|
| 38.3b | x | |
| 36.8b | (+.f64 x (fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (*.f64 a t))) | |
| ✓ | 26.1b | (+.f64 (*.f64 a t) x) |
| ▶ | 36.0b | (+.f64 (*.f64 y z) (*.f64 a t)) |
| ▶ | 42.3b | (*.f64 (+.f64 t (*.f64 b z)) a) |
| 28.2b | (+.f64 x (*.f64 b (*.f64 z a))) | |
| 54.3b | (*.f64 a (*.f64 z b)) | |
| ▶ | 11.2b | (fma.f64 t a (+.f64 x (*.f64 y z))) |
| ✓ | 38.3b | (*.f64 z (+.f64 (*.f64 a b) y)) |
| 42.0b | (+.f64 x (fma.f64 (*.f64 (*.f64 z b) (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a t))) | |
| 48.5b | (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (-.f64 (*.f64 a b) y)) | |
| ▶ | 47.9b | (*.f64 z y) |
| 23.6b | (fma.f64 z y x) | |
| 23.6b | (+.f64 (*.f64 y z) x) | |
| ✓ | 50.6b | (*.f64 a t) |
| ▶ | 52.9b | (*.f64 z (*.f64 a b)) |
Compiled 380 to 254 computations (33.2% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (+.f64 x (*.f64 y z)) |
Compiled 27 to 9 computations (66.7% saved)
Compiled 11 to 7 computations (36.4% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 5.1b | (*.f64 z (*.f64 a b)) |
Compiled 17 to 8 computations (52.9% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | z | @ | 0 | (*.f64 z (*.f64 a b)) |
| 0.0ms | z | @ | inf | (*.f64 z (*.f64 a b)) |
| 0.0ms | a | @ | -inf | (*.f64 z (*.f64 a b)) |
| 0.0ms | b | @ | -inf | (*.f64 z (*.f64 a b)) |
| 0.0ms | z | @ | -inf | (*.f64 z (*.f64 a b)) |
| 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 a b)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 z (*.f64 a b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (*.f64 a b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (*.f64 a b)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 z (*.f64 a b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 z (*.f64 a b))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 z (*.f64 a b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (*.f64 a b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 z (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 z (*.f64 a b)))))))) |
| 1× | egg-herbie |
| 7× | *-commutative_binary64 |
| 2× | associate-*r*_binary64 |
| 2× | associate-*l*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 252 |
| 1 | 14 | 252 |
| 2 | 20 | 252 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
| Outputs |
|---|
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 3.2b | (*.f64 (+.f64 t (*.f64 b z)) a) |
Compiled 25 to 9 computations (64% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | a | @ | 0 | (*.f64 (+.f64 t (*.f64 b z)) a) |
| 0.0ms | a | @ | -inf | (*.f64 (+.f64 t (*.f64 b z)) a) |
| 0.0ms | a | @ | inf | (*.f64 (+.f64 t (*.f64 b z)) a) |
| 0.0ms | t | @ | 0 | (*.f64 (+.f64 t (*.f64 b z)) a) |
| 0.0ms | t | @ | -inf | (*.f64 (+.f64 t (*.f64 b z)) a) |
| 1× | batch-egg-rewrite |
| 911× | pow1_binary64 |
| 841× | add-log-exp_binary64 |
| 841× | log1p-expm1-u_binary64 |
| 841× | expm1-log1p-u_binary64 |
| 822× | add-exp-log_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 10 |
| 1 | 167 | 8 |
| 2 | 2267 | 8 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 t (*.f64 b z)) a) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 t a) (*.f64 (*.f64 b z) a))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 b z) a) (*.f64 t a))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (fma.f64 b z t) a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 t 3) (pow.f64 (*.f64 b z) 3)) a) (fma.f64 t t (*.f64 (*.f64 b z) (-.f64 (*.f64 b z) t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2)) a) (-.f64 t (*.f64 b z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (+.f64 (pow.f64 t 3) (pow.f64 (*.f64 b z) 3))) (fma.f64 t t (*.f64 (*.f64 b z) (-.f64 (*.f64 b z) t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2))) (-.f64 t (*.f64 b z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 b z t) a) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 b z t) a) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 b z t) a)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 b z t) a)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 b z t) a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 b z t)) a))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 b z t) a) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 b z t) 3) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (fma.f64 b z t) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 b z t) a)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 b z t) a)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 b z t) a))))))) |
| 1× | egg-herbie |
| 11× | fma-def_binary64 |
| 8× | *-commutative_binary64 |
| 3× | +-commutative_binary64 |
| 3× | distribute-lft-out_binary64 |
| 2× | associate-*r*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 15 | 331 |
| 1 | 37 | 331 |
| 2 | 48 | 331 |
| 3 | 50 | 331 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 a t) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 a t) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 a t) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 a t) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
| Outputs |
|---|
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a t) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a t) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a t) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a t) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 y z) (*.f64 a t)) |
Compiled 23 to 9 computations (60.9% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 y z) (*.f64 a t)) |
| 0.0ms | a | @ | -inf | (+.f64 (*.f64 y z) (*.f64 a t)) |
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 y z) (*.f64 a t)) |
| 0.0ms | z | @ | inf | (+.f64 (*.f64 y z) (*.f64 a t)) |
| 0.0ms | t | @ | inf | (+.f64 (*.f64 y z) (*.f64 a t)) |
| 1× | batch-egg-rewrite |
| 903× | pow1_binary64 |
| 833× | add-log-exp_binary64 |
| 833× | log1p-expm1-u_binary64 |
| 833× | expm1-log1p-u_binary64 |
| 814× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 8 |
| 1 | 168 | 8 |
| 2 | 2270 | 8 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 y z) (*.f64 a t)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 y z (*.f64 a t))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 y z) 2) (-.f64 (*.f64 y z) (*.f64 a t))) (/.f64 (pow.f64 (*.f64 a t) 2) (-.f64 (*.f64 y z) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y z (*.f64 a t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y z (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y z (*.f64 a t))) (pow.f64 (cbrt.f64 (fma.f64 y z (*.f64 a t))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 y z (*.f64 a t))) 2) (cbrt.f64 (fma.f64 y z (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 y z (*.f64 a t))) (sqrt.f64 (fma.f64 y z (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (*.f64 a t) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (*.f64 a t) 2)) (/.f64 1 (-.f64 (*.f64 y z) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (*.f64 y z)))) (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (*.f64 a t) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 y z) (*.f64 a t)) (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (*.f64 a t) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (*.f64 a t) 3)) (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (*.f64 a t) 3)) (+.f64 (pow.f64 (*.f64 a t) 2) (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (*.f64 y z) (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (*.f64 a t) 2)) (-.f64 (*.f64 y z) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (*.f64 a t) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (*.f64 a t) 2))) (neg.f64 (-.f64 (*.f64 y z) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (pow.f64 (*.f64 y z) 2)) (-.f64 (*.f64 a t) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y z (*.f64 a t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y z (*.f64 a t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y z (*.f64 a t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 y z (*.f64 a t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 y z (*.f64 a t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y z (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 y z (*.f64 a t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 y z (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y z (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y z (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y z (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z y (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a t (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t a (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y z) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a t) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (cbrt.f64 (*.f64 a t)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (cbrt.f64 (*.f64 y z)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y z)) (sqrt.f64 (*.f64 y z)) (*.f64 a t)))))) |
| 1× | egg-herbie |
| 2× | *-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 48 |
| 1 | 9 | 48 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 a t) |
(*.f64 y z) |
(*.f64 y z) |
(*.f64 a t) |
(*.f64 y z) |
(*.f64 y z) |
(*.f64 y z) |
(*.f64 a t) |
(*.f64 a t) |
(*.f64 y z) |
(*.f64 a t) |
(*.f64 a t) |
| Outputs |
|---|
(*.f64 a t) |
(*.f64 y z) |
(*.f64 y z) |
(*.f64 a t) |
(*.f64 y z) |
(*.f64 y z) |
(*.f64 y z) |
(*.f64 a t) |
(*.f64 a t) |
(*.f64 y z) |
(*.f64 a t) |
(*.f64 a t) |
Compiled 1523 to 510 computations (66.5% saved)
16 alts after pruning (9 fresh and 7 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 120 | 2 | 122 |
| Fresh | 1 | 7 | 8 |
| Picked | 0 | 1 | 1 |
| Done | 1 | 6 | 7 |
| Total | 122 | 16 | 138 |
| Status | Error | Program |
|---|---|---|
| 38.3b | x | |
| ▶ | 36.8b | (+.f64 x (fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (*.f64 a t))) |
| ✓ | 26.1b | (+.f64 (*.f64 a t) x) |
| ✓ | 36.0b | (+.f64 (*.f64 y z) (*.f64 a t)) |
| ✓ | 42.3b | (*.f64 (+.f64 t (*.f64 b z)) a) |
| ▶ | 28.2b | (+.f64 x (*.f64 b (*.f64 z a))) |
| 36.0b | (fma.f64 t a (*.f64 y z)) | |
| ✓ | 38.3b | (*.f64 z (+.f64 (*.f64 a b) y)) |
| 42.0b | (+.f64 x (fma.f64 (*.f64 (*.f64 z b) (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a t))) | |
| ▶ | 48.5b | (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (-.f64 (*.f64 a b) y)) |
| ✓ | 47.9b | (*.f64 z y) |
| ▶ | 23.6b | (fma.f64 z y x) |
| 23.6b | (+.f64 (*.f64 y z) x) | |
| ✓ | 50.6b | (*.f64 a t) |
| ✓ | 52.9b | (*.f64 z (*.f64 a b)) |
| ▶ | 54.3b | (*.f64 a (*.f64 z b)) |
Compiled 330 to 219 computations (33.6% saved)
Compiled 13 to 7 computations (46.2% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 4.5b | (*.f64 a (*.f64 z b)) |
Compiled 17 to 8 computations (52.9% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | a | @ | 0 | (*.f64 a (*.f64 z b)) |
| 0.0ms | z | @ | 0 | (*.f64 a (*.f64 z b)) |
| 0.0ms | b | @ | 0 | (*.f64 a (*.f64 z b)) |
| 0.0ms | a | @ | -inf | (*.f64 a (*.f64 z b)) |
| 0.0ms | a | @ | inf | (*.f64 a (*.f64 z b)) |
| 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 a (*.f64 z b)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a (*.f64 z b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 z b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (*.f64 z b)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a) (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (*.f64 z b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (*.f64 z b)))))))) |
| 1× | egg-herbie |
| 5× | *-commutative_binary64 |
| 3× | associate-*r*_binary64 |
| 3× | associate-*l*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 84 |
| 1 | 10 | 84 |
| 2 | 17 | 84 |
| 3 | 19 | 84 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
| Outputs |
|---|
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 x (*.f64 b (*.f64 z a))) |
| ✓ | 5.6b | (*.f64 b (*.f64 z a)) |
Compiled 25 to 9 computations (64% saved)
21 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | 0 | (+.f64 x (*.f64 b (*.f64 z a))) |
| 0.0ms | b | @ | 0 | (*.f64 b (*.f64 z a)) |
| 0.0ms | b | @ | inf | (*.f64 b (*.f64 z a)) |
| 0.0ms | a | @ | inf | (+.f64 x (*.f64 b (*.f64 z a))) |
| 0.0ms | z | @ | inf | (+.f64 x (*.f64 b (*.f64 z a))) |
| 1× | batch-egg-rewrite |
| 934× | pow1_binary64 |
| 863× | add-log-exp_binary64 |
| 863× | log1p-expm1-u_binary64 |
| 863× | expm1-log1p-u_binary64 |
| 843× | add-exp-log_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 17 |
| 1 | 169 | 15 |
| 2 | 2330 | 15 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 b (*.f64 z a)) |
(+.f64 x (*.f64 b (*.f64 z a))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 b (*.f64 z a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 z a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b (*.f64 z a))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 b (*.f64 z a))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (*.f64 z a)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b (*.f64 z a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 z) a) b))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (*.f64 z a)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b (*.f64 z a))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b (*.f64 z a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 b (*.f64 z a)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 (*.f64 b z) a x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (-.f64 x (*.f64 b (*.f64 z a)))) (/.f64 (pow.f64 (*.f64 b (*.f64 z a)) 2) (-.f64 x (*.f64 b (*.f64 z a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (*.f64 b z) a x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (*.f64 b z) a x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (*.f64 b z) a x)) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 b z) a x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 b z) a x)) 2) (cbrt.f64 (fma.f64 (*.f64 b z) a x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (*.f64 b z) a x)) (sqrt.f64 (fma.f64 (*.f64 b z) a x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 b (*.f64 z a)) 3)) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 b (*.f64 z a)) (-.f64 (*.f64 b (*.f64 z a)) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 b (*.f64 z a)) 2)) (/.f64 1 (-.f64 x (*.f64 b (*.f64 z a)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x (*.f64 (*.f64 b (*.f64 z a)) (-.f64 (*.f64 b (*.f64 z a)) x))) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 b (*.f64 z a)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (*.f64 b (*.f64 z a))) (-.f64 (*.f64 x x) (pow.f64 (*.f64 b (*.f64 z a)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 b (*.f64 z a)) 3)) (fma.f64 x x (*.f64 (*.f64 b (*.f64 z a)) (-.f64 (*.f64 b (*.f64 z a)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 b (*.f64 z a)) 3)) (+.f64 (pow.f64 (*.f64 b (*.f64 z a)) 2) (-.f64 (*.f64 x x) (*.f64 (*.f64 b (*.f64 z a)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 b (*.f64 z a)) 2)) (-.f64 x (*.f64 b (*.f64 z a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 b (*.f64 z a)) 3))) (neg.f64 (fma.f64 x x (*.f64 (*.f64 b (*.f64 z a)) (-.f64 (*.f64 b (*.f64 z a)) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 b (*.f64 z a)) 2))) (neg.f64 (-.f64 x (*.f64 b (*.f64 z a)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 b (*.f64 z a)) 2) (*.f64 x x)) (-.f64 (*.f64 b (*.f64 z a)) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (*.f64 b z) a x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (*.f64 b z) a x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (*.f64 b z) a x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (*.f64 b z) a x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (*.f64 b z) a x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (*.f64 b z) a x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (*.f64 b z) a x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (*.f64 b z) a x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (*.f64 b z) a x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 (*.f64 b z) a x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 z a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z a) b x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 b (*.f64 z a)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 b (*.f64 z a))) 2) (cbrt.f64 (*.f64 b (*.f64 z a))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 b (*.f64 z a))) (sqrt.f64 (*.f64 b (*.f64 z a))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b z) a x))))) |
| 1× | egg-herbie |
| 7× | *-commutative_binary64 |
| 7× | fma-def_binary64 |
| 2× | +-commutative_binary64 |
| 2× | associate-*r*_binary64 |
| 2× | associate-*l*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 594 |
| 1 | 21 | 594 |
| 2 | 30 | 594 |
| 3 | 32 | 594 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(+.f64 x (*.f64 a (*.f64 z b))) |
x |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(+.f64 (*.f64 a (*.f64 z b)) x) |
x |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(+.f64 (*.f64 a (*.f64 z b)) x) |
x |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
x |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(*.f64 a (*.f64 z b)) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(*.f64 a (*.f64 z b)) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(+.f64 x (*.f64 a (*.f64 z b))) |
x |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(*.f64 a (*.f64 z b)) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(*.f64 a (*.f64 z b)) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(+.f64 x (*.f64 a (*.f64 z b))) |
| Outputs |
|---|
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
x |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
x |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
x |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
x |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 (*.f64 a (*.f64 z b)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
x |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
(+.f64 x (*.f64 a (*.f64 z b))) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 z (*.f64 a b) x) |
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.3b | (pow.f64 (*.f64 a b) 2) |
| ✓ | 1.6b | (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) |
| ✓ | 6.2b | (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) |
| ✓ | 17.4b | (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (-.f64 (*.f64 a b) y)) |
Compiled 64 to 24 computations (62.5% saved)
39 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | b | @ | 0 | (pow.f64 (*.f64 a b) 2) |
| 1.0ms | a | @ | 0 | (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (-.f64 (*.f64 a b) y)) |
| 1.0ms | z | @ | 0 | (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (-.f64 (*.f64 a b) y)) |
| 1.0ms | y | @ | inf | (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (-.f64 (*.f64 a b) y)) |
| 1.0ms | y | @ | 0 | (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (-.f64 (*.f64 a b) y)) |
| 1× | batch-egg-rewrite |
| 758× | log-prod_binary64 |
| 509× | fma-def_binary64 |
| 258× | fma-neg_binary64 |
| 257× | expm1-udef_binary64 |
| 257× | log1p-udef_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 61 |
| 1 | 295 | 44 |
| 2 | 4231 | 44 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (-.f64 (*.f64 a b) y)) |
(*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) |
(-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) |
(pow.f64 (*.f64 a b) 2) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fma.f64 a b y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (*.f64 (fma.f64 a b y) z))) (cbrt.f64 (exp.f64 (*.f64 (fma.f64 a b y) z))))) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (fma.f64 a b y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (fma.f64 a b y) z)))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (fma.f64 a b y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 a b y) z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 a b) 2) (/.f64 (-.f64 (*.f64 a b) y) z)) (/.f64 (*.f64 y y) (/.f64 (-.f64 (*.f64 a b) y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (/.f64 1 (/.f64 (-.f64 (*.f64 a b) y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (*.f64 z (/.f64 1 (-.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (/.f64 1 (-.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (/.f64 1 (-.f64 (*.f64 a b) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (fma.f64 a b y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (fma.f64 a b y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) 2) (*.f64 (cbrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) (/.f64 1 (-.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (fma.f64 a b y) z)) (pow.f64 (cbrt.f64 (*.f64 (fma.f64 a b y) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 a b y) z)) 2) (cbrt.f64 (*.f64 (fma.f64 a b y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) (*.f64 (sqrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) (/.f64 1 (-.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (fma.f64 a b y) z)) (sqrt.f64 (*.f64 (fma.f64 a b y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (neg.f64 z)) (/.f64 1 (neg.f64 (-.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 (*.f64 a b) y)) (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a b y) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) 1) (/.f64 z (-.f64 (*.f64 a b) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 z 1) (fma.f64 a b y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) 2) 1) (/.f64 (cbrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) (-.f64 (*.f64 a b) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) 1) (/.f64 (sqrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) (-.f64 (*.f64 a b) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 a b) y)) 2)) (/.f64 z (cbrt.f64 (-.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 z (pow.f64 (cbrt.f64 (-.f64 (*.f64 a b) y)) 2)) (/.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (cbrt.f64 (-.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (-.f64 (*.f64 a b) y)) 2)) (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (cbrt.f64 (-.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) 2) (pow.f64 (cbrt.f64 (-.f64 (*.f64 a b) y)) 2)) (cbrt.f64 (*.f64 (fma.f64 a b y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 a b) y)) 2)) (/.f64 (sqrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) (cbrt.f64 (-.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (sqrt.f64 (-.f64 (*.f64 a b) y))) (/.f64 z (sqrt.f64 (-.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 z (sqrt.f64 (-.f64 (*.f64 a b) y))) (/.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (sqrt.f64 (-.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (-.f64 (*.f64 a b) y))) (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (sqrt.f64 (-.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) 2) (sqrt.f64 (-.f64 (*.f64 a b) y))) (/.f64 (cbrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) (sqrt.f64 (-.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) (fma.f64 a b y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (-.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 y 3))) (fma.f64 y (fma.f64 a b y) (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 a b y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 a b y) z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 a b y) z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 a b y) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (*.f64 (fma.f64 a b y) z)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 1 (*.f64 (fma.f64 a b y) z)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (neg.f64 (-.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 a b y) z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (fma.f64 a b y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 a b y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 a b y) z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) 3) (pow.f64 (-.f64 (*.f64 a b) y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 a b y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 a b y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 a b y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 a b y) z)) 1)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 (*.f64 a b) 2) z) (*.f64 (*.f64 y (neg.f64 y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (pow.f64 (*.f64 a b) 2)) (*.f64 z (*.f64 y (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 z) (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)))) (cbrt.f64 (pow.f64 (exp.f64 z) (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 z) (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 z) (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 z) (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 6) (pow.f64 y 6)) z) (fma.f64 (*.f64 y y) (fma.f64 y y (pow.f64 (*.f64 a b) 2)) (pow.f64 (*.f64 a b) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 4) (pow.f64 y 4)) z) (fma.f64 y y (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 (pow.f64 (*.f64 a b) 6) (pow.f64 y 6))) (fma.f64 (*.f64 y y) (fma.f64 y y (pow.f64 (*.f64 a b) 2)) (pow.f64 (*.f64 a b) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 (pow.f64 (*.f64 a b) 4) (pow.f64 y 4))) (fma.f64 y y (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 z 3) (pow.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 a b) 2) z (*.f64 (*.f64 y (neg.f64 y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (pow.f64 (*.f64 a b) 2) (*.f64 z (*.f64 y (neg.f64 y)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (*.f64 a b) 2) (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (fma.f64 (neg.f64 y) y (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (fma.f64 (*.f64 y (neg.f64 y)) 1 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 (pow.f64 y 4)) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (neg.f64 y)) (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)))) (cbrt.f64 (exp.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)))))) (log.f64 (cbrt.f64 (exp.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))))) (log.f64 (sqrt.f64 (exp.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) (pow.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) 2) (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 (*.f64 a b) (sqrt.f64 (*.f64 y (neg.f64 y)))) (hypot.f64 (*.f64 a b) (sqrt.f64 (*.f64 y (neg.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 a b) 6) (pow.f64 y 6)) (/.f64 1 (fma.f64 (*.f64 y y) (fma.f64 y y (pow.f64 (*.f64 a b) 2)) (pow.f64 (*.f64 a b) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 a b) 4) (pow.f64 y 4)) (/.f64 1 (fma.f64 y y (pow.f64 (*.f64 a b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 y y) (fma.f64 y y (pow.f64 (*.f64 a b) 2)) (pow.f64 (*.f64 a b) 4)) (-.f64 (pow.f64 (*.f64 a b) 6) (pow.f64 y 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 y y (pow.f64 (*.f64 a b) 2)) (-.f64 (pow.f64 (*.f64 a b) 4) (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a b) 6) (pow.f64 y 6)) (fma.f64 (*.f64 y y) (fma.f64 y y (pow.f64 (*.f64 a b) 2)) (pow.f64 (*.f64 a b) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a b) 4) (pow.f64 y 4)) (fma.f64 y y (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 a b) 6) (pow.f64 y 6))) (neg.f64 (fma.f64 (*.f64 y y) (fma.f64 y y (pow.f64 (*.f64 a b) 2)) (pow.f64 (*.f64 a b) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 a b) 4) (pow.f64 y 4))) (neg.f64 (fma.f64 y y (pow.f64 (*.f64 a b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a b) 6) (pow.f64 (*.f64 y (neg.f64 y)) 3)) (+.f64 (pow.f64 (*.f64 a b) 4) (-.f64 (*.f64 (*.f64 y (neg.f64 y)) (*.f64 y (neg.f64 y))) (*.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y (neg.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a b) 4) (*.f64 (*.f64 y (neg.f64 y)) (*.f64 y (neg.f64 y)))) (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 (*.f64 a b) (sqrt.f64 (*.f64 y (neg.f64 y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 y y) (fma.f64 y y (pow.f64 (*.f64 a b) 2)) (pow.f64 (*.f64 a b) 4)) (-.f64 (pow.f64 (*.f64 a b) 6) (pow.f64 y 6))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 y y (pow.f64 (*.f64 a b) 2)) (-.f64 (pow.f64 (*.f64 a b) 4) (pow.f64 y 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 a b) 2))) (pow.f64 (exp.f64 y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)) (+.f64 1 (expm1.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 a b) 2))) (+.f64 1 (expm1.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 a b) 2))) (exp.f64 (*.f64 y (neg.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)) (/.f64 1 (pow.f64 (exp.f64 y) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 a b) 2))) (/.f64 1 (pow.f64 (exp.f64 y) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 y (neg.f64 y))) (exp.f64 (pow.f64 (*.f64 a b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 y) y)) (exp.f64 (pow.f64 (*.f64 a b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 y (neg.f64 y))) (+.f64 1 (expm1.f64 (pow.f64 (*.f64 a b) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 y) y)) (+.f64 1 (expm1.f64 (pow.f64 (*.f64 a b) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 b (*.f64 a b)) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 b (*.f64 a b)) (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 a (*.f64 a b)) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 a (*.f64 a b)) (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a b) (*.f64 a b) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a b) (*.f64 a b) (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 a b) 2) 1 (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 a b) 2) 1 (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (neg.f64 y) (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) 1 (fma.f64 (neg.f64 y) y (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) 1 (fma.f64 (*.f64 y (neg.f64 y)) 1 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) 1 (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 (pow.f64 y 4)) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (*.f64 a b) 2) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (*.f64 a b) 2) (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (fma.f64 (neg.f64 y) y (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (fma.f64 (*.f64 y (neg.f64 y)) 1 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 (pow.f64 y 4)) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y (neg.f64 y)) (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 y 4)) (neg.f64 (pow.f64 (cbrt.f64 y) 2)) (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) (pow.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) 2) (fma.f64 (neg.f64 y) y (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) (pow.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) 2) (fma.f64 (*.f64 y (neg.f64 y)) 1 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) (pow.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) 2) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 (pow.f64 y 4)) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) 2) (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) (fma.f64 (neg.f64 y) y (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) 2) (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) (fma.f64 (*.f64 y (neg.f64 y)) 1 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) 2) (cbrt.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 (pow.f64 y 4)) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 4)) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 4)) (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b)) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b)) (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4)) (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4)) (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 (*.f64 a b) (sqrt.f64 (*.f64 y (neg.f64 y)))) (hypot.f64 (*.f64 a b) (sqrt.f64 (*.f64 y (neg.f64 y)))) (fma.f64 (neg.f64 y) y (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 (*.f64 a b) (sqrt.f64 (*.f64 y (neg.f64 y)))) (hypot.f64 (*.f64 a b) (sqrt.f64 (*.f64 y (neg.f64 y)))) (fma.f64 (*.f64 y (neg.f64 y)) 1 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 (*.f64 a b) (sqrt.f64 (*.f64 y (neg.f64 y)))) (hypot.f64 (*.f64 a b) (sqrt.f64 (*.f64 y (neg.f64 y)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 (pow.f64 y 4)) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a b)) (*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 a b)) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a b)) (*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 a b)) (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 y) y (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a a) (*.f64 b b) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a a) (*.f64 b b) (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b b) (*.f64 a a) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b b) (*.f64 a a) (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 a b) 6) (pow.f64 y 6)) (/.f64 1 (fma.f64 (*.f64 y y) (fma.f64 y y (pow.f64 (*.f64 a b) 2)) (pow.f64 (*.f64 a b) 4))) (fma.f64 (neg.f64 y) y (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 a b) 6) (pow.f64 y 6)) (/.f64 1 (fma.f64 (*.f64 y y) (fma.f64 y y (pow.f64 (*.f64 a b) 2)) (pow.f64 (*.f64 a b) 4))) (fma.f64 (*.f64 y (neg.f64 y)) 1 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 a b) 6) (pow.f64 y 6)) (/.f64 1 (fma.f64 (*.f64 y y) (fma.f64 y y (pow.f64 (*.f64 a b) 2)) (pow.f64 (*.f64 a b) 4))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 (pow.f64 y 4)) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 a b) 4) (pow.f64 y 4)) (/.f64 1 (fma.f64 y y (pow.f64 (*.f64 a b) 2))) (fma.f64 (neg.f64 y) y (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 a b) 4) (pow.f64 y 4)) (/.f64 1 (fma.f64 y y (pow.f64 (*.f64 a b) 2))) (fma.f64 (*.f64 y (neg.f64 y)) 1 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 a b) 4) (pow.f64 y 4)) (/.f64 1 (fma.f64 y y (pow.f64 (*.f64 a b) 2))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 (pow.f64 y 4)) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y) (fma.f64 (neg.f64 y) y (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y) (fma.f64 (*.f64 y (neg.f64 y)) 1 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 (pow.f64 y 4)) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (sqrt.f64 (*.f64 a b)) 3) (sqrt.f64 (*.f64 a b)) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (sqrt.f64 (*.f64 a b)) 3) (sqrt.f64 (*.f64 a b)) (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 y (neg.f64 y))) (cbrt.f64 (*.f64 y (neg.f64 y)))) (cbrt.f64 (*.f64 y (neg.f64 y))) (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y (neg.f64 y))) (sqrt.f64 (*.f64 y (neg.f64 y))) (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 y y) (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (pow.f64 y 4))) (pow.f64 (cbrt.f64 y) 2) (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 y) 1) y (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 y) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 y) (sqrt.f64 y)) (sqrt.f64 y) (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a b) a) b (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a b) a) b (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a b) b) a (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a b) b) a (*.f64 (*.f64 y (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a b) (pow.f64 (cbrt.f64 (*.f64 a b)) 2)) (cbrt.f64 (*.f64 a b)) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a b) (pow.f64 (cbrt.f64 (*.f64 a b)) 2)) (cbrt.f64 (*.f64 a b)) (*.f64 (*.f64 y (neg.f64 y)) 1)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (*.f64 a b) 2))) (cbrt.f64 (exp.f64 (pow.f64 (*.f64 a b) 2))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a (*.f64 b (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b (*.f64 a (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a b) (*.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 a b) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4)) (pow.f64 (cbrt.f64 (*.f64 a b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 a b)) (*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a a) (*.f64 b b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b b) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 a b)) 3) (sqrt.f64 (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a b) a) b)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a b) b) a)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a b) (pow.f64 (cbrt.f64 (*.f64 a b)) 2)) (cbrt.f64 (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a b) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 a b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a b) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 a b) 2)) 1)))))) |
| 1× | egg-herbie |
| 862× | fma-def_binary64 |
| 561× | fma-neg_binary64 |
| 520× | cancel-sign-sub-inv_binary64 |
| 271× | distribute-rgt-neg-in_binary64 |
| 235× | *-commutative_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 60 | 2389 |
| 1 | 208 | 2245 |
| 2 | 701 | 2035 |
| 3 | 2901 | 2035 |
| 4 | 7740 | 2035 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(-.f64 (+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) (*.f64 -1 (/.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) y)))) (*.f64 -1 (/.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) y))) |
(-.f64 (+.f64 (*.f64 y z) (+.f64 (/.f64 (*.f64 a (*.f64 (-.f64 (*.f64 -1 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2)))) (*.f64 -1 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)))) b)) (pow.f64 y 2)) (+.f64 (*.f64 a (*.f64 z b)) (*.f64 -1 (/.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) y))))) (*.f64 -1 (/.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) y))) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) (*.f64 -1 (/.f64 (-.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z))) y)))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (/.f64 (*.f64 a (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z))) b)) (pow.f64 y 2))) (+.f64 (*.f64 a (*.f64 z b)) (*.f64 -1 (/.f64 (-.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z))) y))))) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(*.f64 -1 (*.f64 (pow.f64 y 2) z)) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(*.f64 -1 (*.f64 (pow.f64 y 2) z)) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(*.f64 -1 (*.f64 (pow.f64 y 2) z)) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(*.f64 -1 (*.f64 (pow.f64 y 2) z)) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(*.f64 -1 (pow.f64 y 2)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(*.f64 -1 (pow.f64 y 2)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(*.f64 -1 (pow.f64 y 2)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(*.f64 -1 (pow.f64 y 2)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
| Outputs |
|---|
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 b (*.f64 z a)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 b (*.f64 z a)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 b (*.f64 z a)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 b (*.f64 z a)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 z b)) |
(*.f64 b (*.f64 z a)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(-.f64 (+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) (*.f64 -1 (/.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) y)))) (*.f64 -1 (/.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) y))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(-.f64 (+.f64 (*.f64 y z) (+.f64 (/.f64 (*.f64 a (*.f64 (-.f64 (*.f64 -1 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2)))) (*.f64 -1 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)))) b)) (pow.f64 y 2)) (+.f64 (*.f64 a (*.f64 z b)) (*.f64 -1 (/.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) y))))) (*.f64 -1 (/.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) y))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) (*.f64 -1 (/.f64 (-.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z))) y)))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (/.f64 (*.f64 a (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z))) b)) (pow.f64 y 2))) (+.f64 (*.f64 a (*.f64 z b)) (*.f64 -1 (/.f64 (-.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z))) y))))) |
(fma.f64 y z (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 y (*.f64 a b))) |
(*.f64 z (fma.f64 a b y)) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) (/.f64 (-.f64 (*.f64 a b) y) z)) |
(/.f64 (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) (/.f64 (fma.f64 a b (neg.f64 y)) z)) |
(*.f64 z (/.f64 (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) (-.f64 (*.f64 a b) y))) |
(*.f64 (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) (/.f64 z (fma.f64 a b (neg.f64 y)))) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) (/.f64 (-.f64 (*.f64 a b) y) z)) |
(/.f64 (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) (/.f64 (fma.f64 a b (neg.f64 y)) z)) |
(*.f64 z (/.f64 (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) (-.f64 (*.f64 a b) y))) |
(*.f64 (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) (/.f64 z (fma.f64 a b (neg.f64 y)))) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) (/.f64 (-.f64 (*.f64 a b) y) z)) |
(/.f64 (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) (/.f64 (fma.f64 a b (neg.f64 y)) z)) |
(*.f64 z (/.f64 (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) (-.f64 (*.f64 a b) y))) |
(*.f64 (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) (/.f64 z (fma.f64 a b (neg.f64 y)))) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) (/.f64 (-.f64 (*.f64 a b) y) z)) |
(/.f64 (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) (/.f64 (fma.f64 a b (neg.f64 y)) z)) |
(*.f64 z (/.f64 (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) (-.f64 (*.f64 a b) y))) |
(*.f64 (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) (/.f64 z (fma.f64 a b (neg.f64 y)))) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) (/.f64 (-.f64 (*.f64 a b) y) z)) |
(/.f64 (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) (/.f64 (fma.f64 a b (neg.f64 y)) z)) |
(*.f64 z (/.f64 (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) (-.f64 (*.f64 a b) y))) |
(*.f64 (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) (/.f64 z (fma.f64 a b (neg.f64 y)))) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) (/.f64 (-.f64 (*.f64 a b) y) z)) |
(/.f64 (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) (/.f64 (fma.f64 a b (neg.f64 y)) z)) |
(*.f64 z (/.f64 (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) (-.f64 (*.f64 a b) y))) |
(*.f64 (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) (/.f64 z (fma.f64 a b (neg.f64 y)))) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) (/.f64 (-.f64 (*.f64 a b) y) z)) |
(/.f64 (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) (/.f64 (fma.f64 a b (neg.f64 y)) z)) |
(*.f64 z (/.f64 (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) (-.f64 (*.f64 a b) y))) |
(*.f64 (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) (/.f64 z (fma.f64 a b (neg.f64 y)))) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) (/.f64 (-.f64 (*.f64 a b) y) z)) |
(/.f64 (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) (/.f64 (fma.f64 a b (neg.f64 y)) z)) |
(*.f64 z (/.f64 (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) (-.f64 (*.f64 a b) y))) |
(*.f64 (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) (/.f64 z (fma.f64 a b (neg.f64 y)))) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) (/.f64 (-.f64 (*.f64 a b) y) z)) |
(/.f64 (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) (/.f64 (fma.f64 a b (neg.f64 y)) z)) |
(*.f64 z (/.f64 (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) (-.f64 (*.f64 a b) y))) |
(*.f64 (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) (/.f64 z (fma.f64 a b (neg.f64 y)))) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) (/.f64 (-.f64 (*.f64 a b) y) z)) |
(/.f64 (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) (/.f64 (fma.f64 a b (neg.f64 y)) z)) |
(*.f64 z (/.f64 (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) (-.f64 (*.f64 a b) y))) |
(*.f64 (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) (/.f64 z (fma.f64 a b (neg.f64 y)))) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) (/.f64 (-.f64 (*.f64 a b) y) z)) |
(/.f64 (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) (/.f64 (fma.f64 a b (neg.f64 y)) z)) |
(*.f64 z (/.f64 (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) (-.f64 (*.f64 a b) y))) |
(*.f64 (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) (/.f64 z (fma.f64 a b (neg.f64 y)))) |
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) (-.f64 (*.f64 a b) y)) |
(/.f64 (-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) (/.f64 (-.f64 (*.f64 a b) y) z)) |
(/.f64 (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) (/.f64 (fma.f64 a b (neg.f64 y)) z)) |
(*.f64 z (/.f64 (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) (-.f64 (*.f64 a b) y))) |
(*.f64 (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) (/.f64 z (fma.f64 a b (neg.f64 y)))) |
(*.f64 -1 (*.f64 (pow.f64 y 2) z)) |
(*.f64 (neg.f64 (*.f64 y y)) z) |
(*.f64 (*.f64 y y) (neg.f64 z)) |
(*.f64 (*.f64 y z) (neg.f64 y)) |
(*.f64 y (*.f64 y (neg.f64 z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) |
(*.f64 (*.f64 a a) (*.f64 z (*.f64 b b))) |
(*.f64 a (*.f64 a (*.f64 z (*.f64 b b)))) |
(*.f64 (*.f64 z a) (*.f64 a (*.f64 b b))) |
(*.f64 b (*.f64 z (*.f64 b (*.f64 a a)))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) |
(*.f64 (*.f64 a a) (*.f64 z (*.f64 b b))) |
(*.f64 a (*.f64 a (*.f64 z (*.f64 b b)))) |
(*.f64 (*.f64 z a) (*.f64 a (*.f64 b b))) |
(*.f64 b (*.f64 z (*.f64 b (*.f64 a a)))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 -1 (*.f64 (pow.f64 y 2) z)) |
(*.f64 (neg.f64 (*.f64 y y)) z) |
(*.f64 (*.f64 y y) (neg.f64 z)) |
(*.f64 (*.f64 y z) (neg.f64 y)) |
(*.f64 y (*.f64 y (neg.f64 z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) |
(*.f64 (*.f64 a a) (*.f64 z (*.f64 b b))) |
(*.f64 a (*.f64 a (*.f64 z (*.f64 b b)))) |
(*.f64 (*.f64 z a) (*.f64 a (*.f64 b b))) |
(*.f64 b (*.f64 z (*.f64 b (*.f64 a a)))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) |
(*.f64 (*.f64 a a) (*.f64 z (*.f64 b b))) |
(*.f64 a (*.f64 a (*.f64 z (*.f64 b b)))) |
(*.f64 (*.f64 z a) (*.f64 a (*.f64 b b))) |
(*.f64 b (*.f64 z (*.f64 b (*.f64 a a)))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) |
(*.f64 (*.f64 a a) (*.f64 z (*.f64 b b))) |
(*.f64 a (*.f64 a (*.f64 z (*.f64 b b)))) |
(*.f64 (*.f64 z a) (*.f64 a (*.f64 b b))) |
(*.f64 b (*.f64 z (*.f64 b (*.f64 a a)))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) z)) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 -1 (*.f64 (pow.f64 y 2) z)) |
(*.f64 (neg.f64 (*.f64 y y)) z) |
(*.f64 (*.f64 y y) (neg.f64 z)) |
(*.f64 (*.f64 y z) (neg.f64 y)) |
(*.f64 y (*.f64 y (neg.f64 z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 -1 (*.f64 (pow.f64 y 2) z)) |
(*.f64 (neg.f64 (*.f64 y y)) z) |
(*.f64 (*.f64 y y) (neg.f64 z)) |
(*.f64 (*.f64 y z) (neg.f64 y)) |
(*.f64 y (*.f64 y (neg.f64 z))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(+.f64 (*.f64 (pow.f64 a 2) (*.f64 z (pow.f64 b 2))) (*.f64 -1 (*.f64 (pow.f64 y 2) z))) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 (-.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 y 2)) z) |
(fma.f64 (*.f64 a a) (*.f64 z (*.f64 b b)) (*.f64 (neg.f64 (*.f64 y y)) z)) |
(*.f64 z (-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y))) |
(*.f64 z (*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y))) |
(*.f64 z (*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y))) |
(*.f64 -1 (pow.f64 y 2)) |
(neg.f64 (*.f64 y y)) |
(*.f64 y (neg.f64 y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(*.f64 -1 (pow.f64 y 2)) |
(neg.f64 (*.f64 y y)) |
(*.f64 y (neg.f64 y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(*.f64 -1 (pow.f64 y 2)) |
(neg.f64 (*.f64 y y)) |
(*.f64 y (neg.f64 y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(*.f64 -1 (pow.f64 y 2)) |
(neg.f64 (*.f64 y y)) |
(*.f64 y (neg.f64 y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) |
(-.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 y y)) |
(-.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 y y)) |
(*.f64 (fma.f64 a b y) (-.f64 (*.f64 a b) y)) |
(*.f64 (fma.f64 a b (neg.f64 y)) (fma.f64 a b y)) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
(*.f64 (pow.f64 a 2) (pow.f64 b 2)) |
(*.f64 (*.f64 a a) (*.f64 b b)) |
(*.f64 b (*.f64 b (*.f64 a a))) |
(*.f64 a (*.f64 a (*.f64 b b))) |
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 x (fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (*.f64 a t))) |
| ✓ | 0.1b | (fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (*.f64 a t)) |
| ✓ | 0.1b | (*.f64 a (sqrt.f64 (*.f64 z b))) |
| ✓ | 9.6b | (sqrt.f64 (*.f64 z b)) |
Compiled 57 to 12 computations (78.9% saved)
42 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 15.0ms | z | @ | inf | (*.f64 a (sqrt.f64 (*.f64 z b))) |
| 4.0ms | b | @ | -inf | (fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (*.f64 a t)) |
| 3.0ms | z | @ | -inf | (fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (*.f64 a t)) |
| 3.0ms | b | @ | inf | (fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (*.f64 a t)) |
| 3.0ms | z | @ | 0 | (fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (*.f64 a t)) |
| 1× | batch-egg-rewrite |
| 721× | prod-diff_binary64 |
| 643× | log-prod_binary64 |
| 331× | pow2_binary64 |
| 269× | fma-def_binary64 |
| 234× | pow1/3_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 60 |
| 1 | 248 | 44 |
| 2 | 3231 | 38 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 z b)) |
(*.f64 a (sqrt.f64 (*.f64 z b))) |
(fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (*.f64 a t)) |
(+.f64 x (fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (*.f64 a t))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 z b)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 z b))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 z b))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 z b))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 z b)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 z b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 z b))) (cbrt.f64 (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 z b)) (cbrt.f64 (sqrt.f64 (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 z b) 1/4) (pow.f64 (*.f64 z b) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (sqrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 b) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 z b)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z b) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 z b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z b) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 z b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z b) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z b) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 z b)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 z b))) 1)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (*.f64 z b)) a))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (*.f64 z b))) a)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (*.f64 z b))) a))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (*.f64 z b))) a))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (*.f64 z b))) a))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 z b) (*.f64 a a)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 z b) 3/2) (pow.f64 a 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 a 3) (pow.f64 (*.f64 z b) 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 z b) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 (*.f64 z b))) a))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 z b) 3/2) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (*.f64 z b) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a)) 1)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 a (*.f64 z b) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a (*.f64 z b)) 1) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (*.f64 z b) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))) (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))) 2) (cbrt.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))) (sqrt.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 3) (pow.f64 (*.f64 a t) 3)) (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 (*.f64 a (*.f64 z b)) (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (pow.f64 (*.f64 a t) 2)) (-.f64 (*.f64 a (*.f64 z b)) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 t) a) (exp.f64 (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a t))) (exp.f64 (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 a (*.f64 z b))) (+.f64 1 (expm1.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))) 1)))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (-.f64 x (fma.f64 a (*.f64 z b) (*.f64 a t)))) (/.f64 (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 2) (-.f64 x (fma.f64 a (*.f64 z b) (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (*.f64 z b) (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))) (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))) 2) (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))) (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 3)) (/.f64 1 (fma.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) (-.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 2)) (/.f64 1 (-.f64 x (fma.f64 a (*.f64 z b) (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) (-.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) x) (*.f64 x x)) (+.f64 (pow.f64 x 3) (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (fma.f64 a (*.f64 z b) (*.f64 a t))) (-.f64 (*.f64 x x) (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 3)) (fma.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) (-.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) x) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 3)) (+.f64 (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 2) (-.f64 (*.f64 x x) (*.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 2)) (-.f64 x (fma.f64 a (*.f64 z b) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 3))) (neg.f64 (fma.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) (-.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 2))) (neg.f64 (-.f64 x (fma.f64 a (*.f64 z b) (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 2) (*.f64 x x)) (-.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) (-.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) x) (*.f64 x x)) (+.f64 (pow.f64 x 3) (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 x (fma.f64 a (*.f64 z b) (*.f64 a t))) (-.f64 (*.f64 x x) (pow.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (exp.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z b)) (*.f64 (sqrt.f64 (*.f64 z b)) a) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 z b) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a) (sqrt.f64 (*.f64 z b)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 a (*.f64 z b) (*.f64 a t)) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (fma.f64 a (*.f64 z b) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 a (*.f64 z b) (*.f64 a t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (fma.f64 a (*.f64 z b) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (*.f64 z b)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (fma.f64 a (*.f64 z b) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (fma.f64 a (*.f64 z b) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))) (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))) 2) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))) 2) (cbrt.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (*.f64 z b) (*.f64 a a))) (*.f64 (cbrt.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a)) (sqrt.f64 (*.f64 z b))) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (fma.f64 a (*.f64 z b) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))) (sqrt.f64 (fma.f64 a (*.f64 z b) (*.f64 a t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a)) (*.f64 (sqrt.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a)) (sqrt.f64 (*.f64 z b))) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 2) (cbrt.f64 (*.f64 a (*.f64 z b))) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) (sqrt.f64 (*.f64 a (*.f64 z b))) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a)) (pow.f64 (*.f64 z b) 1/4)) (*.f64 (sqrt.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a)) (pow.f64 (*.f64 z b) 1/4)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a) (cbrt.f64 (*.f64 z b))) (cbrt.f64 (sqrt.f64 (*.f64 z b))) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a) (pow.f64 (*.f64 z b) 1/4)) (pow.f64 (*.f64 z b) 1/4) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 z b)) a) (sqrt.f64 z)) (sqrt.f64 b) (fma.f64 a t x)))))) |
| 1× | egg-herbie |
| 474× | fma-def_binary64 |
| 470× | fma-neg_binary64 |
| 96× | cancel-sign-sub-inv_binary64 |
| 81× | associate-*l*_binary64 |
| 77× | distribute-rgt-in_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 31 | 559 |
| 1 | 92 | 559 |
| 2 | 195 | 559 |
| 3 | 384 | 559 |
| 4 | 866 | 559 |
| 5 | 1396 | 559 |
| 6 | 1676 | 559 |
| 7 | 1984 | 559 |
| 8 | 2059 | 559 |
| 9 | 2071 | 559 |
| 10 | 2077 | 559 |
| 11 | 2082 | 559 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) |
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) |
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) |
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) |
(*.f64 a t) |
(*.f64 a t) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a t) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a t) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
x |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
x |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
x |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) |
(+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x) |
(+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x) |
(+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(*.f64 a t) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(*.f64 a t) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
| Outputs |
|---|
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (sqrt.f64 (*.f64 b z))) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a (+.f64 (*.f64 z b) t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a t) |
(*.f64 a t) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a t) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 a t) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
x |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
x |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
x |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 a t) x) |
(fma.f64 a t x) |
(+.f64 (*.f64 a t) x) |
(fma.f64 a t x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(fma.f64 a (*.f64 b z) x) |
(fma.f64 (*.f64 a b) z x) |
(fma.f64 b (*.f64 a z) x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(*.f64 a t) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(*.f64 a t) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)) |
(fma.f64 (fma.f64 z b t) a x) |
(fma.f64 a (fma.f64 b z t) x) |
Compiled 9725 to 3016 computations (69% saved)
17 alts after pruning (7 fresh and 10 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 492 | 3 | 495 |
| Fresh | 0 | 4 | 4 |
| Picked | 1 | 0 | 1 |
| Done | 1 | 10 | 11 |
| Total | 494 | 17 | 511 |
| Status | Error | Program |
|---|---|---|
| 44.5b | (pow.f64 (sqrt.f64 (fma.f64 (*.f64 b z) a x)) 2) | |
| 42.0b | (+.f64 x (fma.f64 (*.f64 (*.f64 z b) (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a t))) | |
| 38.3b | x | |
| ✓ | 26.1b | (+.f64 (*.f64 a t) x) |
| ✓ | 36.0b | (+.f64 (*.f64 y z) (*.f64 a t)) |
| ✓ | 42.3b | (*.f64 (+.f64 t (*.f64 b z)) a) |
| ✓ | 28.2b | (+.f64 x (*.f64 b (*.f64 z a))) |
| 36.0b | (fma.f64 t a (*.f64 y z)) | |
| ✓ | 38.3b | (*.f64 z (+.f64 (*.f64 a b) y)) |
| 47.4b | (*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) 1) (/.f64 z (-.f64 (*.f64 a b) y))) | |
| ✓ | 47.9b | (*.f64 z y) |
| ✓ | 23.6b | (fma.f64 z y x) |
| 23.6b | (+.f64 (*.f64 y z) x) | |
| ✓ | 50.6b | (*.f64 a t) |
| ✓ | 52.9b | (*.f64 z (*.f64 a b)) |
| 58.7b | (/.f64 (*.f64 b (*.f64 z (*.f64 b (*.f64 a a)))) (-.f64 (*.f64 a b) y)) | |
| ✓ | 54.3b | (*.f64 a (*.f64 z b)) |
Compiled 224 to 155 computations (30.8% saved)
| Inputs |
|---|
x |
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 x (*.f64 b (*.f64 z a))) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (+.f64 (*.f64 y z) (*.f64 a t)) (*.f64 (*.f64 a z) b)) |
(/.f64 (*.f64 b (*.f64 z (*.f64 b (*.f64 a a)))) (-.f64 (*.f64 a b) y)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(fma.f64 z y x) |
(fma.f64 t a (*.f64 y z)) |
(fma.f64 t a (+.f64 x (*.f64 y z))) |
(+.f64 (fma.f64 a t (*.f64 z y)) (*.f64 (*.f64 a z) b)) |
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (-.f64 (*.f64 a b) y)) |
(*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) 1) (/.f64 z (-.f64 (*.f64 a b) y))) |
(pow.f64 (sqrt.f64 (fma.f64 (*.f64 b z) a x)) 2) |
(fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) |
(+.f64 x (fma.f64 (*.f64 (*.f64 z b) (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a t))) |
(+.f64 x (fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (*.f64 a t))) |
(fma.f64 y z (pow.f64 (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)) 2)) |
| Outputs |
|---|
(fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) |
7 calls:
| 163.0ms | z |
| 134.0ms | t |
| 46.0ms | x |
| 41.0ms | a |
| 27.0ms | b |
| Error | Segments | Branch |
|---|---|---|
| 2.6b | 1 | x |
| 2.6b | 1 | y |
| 2.6b | 1 | z |
| 1.3b | 2 | t |
| 0.1b | 3 | a |
| 1.0b | 2 | b |
| 0.8b | 2 | (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
Compiled 319 to 127 computations (60.2% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 25.0ms | 6.467021878229546e-40 | 8.278332259814782e-40 |
| 19.0ms | -55664276797161.75 | -116959637922.06657 |
Compiled 69 to 45 computations (34.8% saved)
| Inputs |
|---|
x |
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 x (*.f64 b (*.f64 z a))) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (+.f64 (*.f64 y z) (*.f64 a t)) (*.f64 (*.f64 a z) b)) |
(/.f64 (*.f64 b (*.f64 z (*.f64 b (*.f64 a a)))) (-.f64 (*.f64 a b) y)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(fma.f64 z y x) |
(fma.f64 t a (*.f64 y z)) |
(fma.f64 t a (+.f64 x (*.f64 y z))) |
(+.f64 (fma.f64 a t (*.f64 z y)) (*.f64 (*.f64 a z) b)) |
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (-.f64 (*.f64 a b) y)) |
(*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) 1) (/.f64 z (-.f64 (*.f64 a b) y))) |
(pow.f64 (sqrt.f64 (fma.f64 (*.f64 b z) a x)) 2) |
| Outputs |
|---|
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(fma.f64 t a (+.f64 x (*.f64 y z))) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
7 calls:
| 61.0ms | b |
| 28.0ms | x |
| 27.0ms | t |
| 27.0ms | a |
| 26.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 2.6b | 1 | x |
| 2.6b | 1 | y |
| 2.6b | 1 | z |
| 2.6b | 1 | t |
| 2.6b | 1 | a |
| 0.8b | 3 | b |
| 1.1b | 2 | (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
Compiled 266 to 112 computations (57.9% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 47.0ms | 1.5814842360598363e-229 | 1.2720869879867593e-225 |
| 47.0ms | -1.598754333812799e-67 | -3.586737575193678e-85 |
Compiled 30 to 21 computations (30% saved)
| Inputs |
|---|
x |
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 x (*.f64 b (*.f64 z a))) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (+.f64 (*.f64 y z) (*.f64 a t)) (*.f64 (*.f64 a z) b)) |
(/.f64 (*.f64 b (*.f64 z (*.f64 b (*.f64 a a)))) (-.f64 (*.f64 a b) y)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(fma.f64 z y x) |
(fma.f64 t a (*.f64 y z)) |
| Outputs |
|---|
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
7 calls:
| 62.0ms | b |
| 41.0ms | (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
| 25.0ms | x |
| 25.0ms | a |
| 25.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 2.6b | 1 | x |
| 2.6b | 1 | y |
| 2.6b | 1 | z |
| 2.6b | 1 | t |
| 2.6b | 1 | a |
| 0.8b | 3 | b |
| 1.1b | 2 | (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
Compiled 201 to 92 computations (54.2% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 50.0ms | 1.5814842360598363e-229 | 1.2720869879867593e-225 |
| 50.0ms | -1.598754333812799e-67 | -3.586737575193678e-85 |
Compiled 30 to 21 computations (30% saved)
| Inputs |
|---|
x |
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 x (*.f64 b (*.f64 z a))) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (+.f64 (*.f64 y z) (*.f64 a t)) (*.f64 (*.f64 a z) b)) |
(/.f64 (*.f64 b (*.f64 z (*.f64 b (*.f64 a a)))) (-.f64 (*.f64 a b) y)) |
| Outputs |
|---|
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
6 calls:
| 95.0ms | z |
| 90.0ms | t |
| 68.0ms | x |
| 50.0ms | y |
| 49.0ms | b |
| Error | Segments | Branch |
|---|---|---|
| 7.1b | 3 | x |
| 6.6b | 3 | y |
| 6.1b | 6 | z |
| 7.9b | 5 | t |
| 8.3b | 3 | a |
| 7.0b | 3 | b |
Compiled 155 to 73 computations (52.9% saved)
| 5× | binary-search |
| Time | Left | Right |
|---|---|---|
| 26.0ms | 31080.30376776488 | 3704898.9319669474 |
| 25.0ms | -1.8149598722105035e-278 | -3.287100163621304e-285 |
| 25.0ms | -9.971070094947713e+19 | -18436644706322108000.0 |
| 177.0ms | -3.724062929541388e+70 | -2.4815672684307038e+64 |
| 108.0ms | -1.0305455464253943e+102 | -1.4946979221254972e+100 |
Compiled 510 to 357 computations (30% saved)
| Inputs |
|---|
x |
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 x (*.f64 b (*.f64 z a))) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) |
| Outputs |
|---|
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) |
(+.f64 (*.f64 y z) x) |
6 calls:
| 50.0ms | x |
| 48.0ms | b |
| 42.0ms | y |
| 37.0ms | z |
| 34.0ms | t |
| Error | Segments | Branch |
|---|---|---|
| 10.2b | 7 | x |
| 10.7b | 5 | y |
| 8.5b | 5 | z |
| 13.7b | 5 | t |
| 11.5b | 3 | a |
| 12.0b | 6 | b |
Compiled 118 to 63 computations (46.6% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 24.0ms | 31080.30376776488 | 3704898.9319669474 |
| 25.0ms | -136122.17519292585 | -160.01904838634462 |
| 124.0ms | -3.724062929541388e+70 | -2.4815672684307038e+64 |
| 53.0ms | -1.0305455464253943e+102 | -1.4946979221254972e+100 |
Compiled 510 to 357 computations (30% saved)
| Inputs |
|---|
x |
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 x (*.f64 b (*.f64 z a))) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
| Outputs |
|---|
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 (*.f64 a t) x) |
(+.f64 x (*.f64 b (*.f64 z a))) |
(+.f64 (*.f64 y z) x) |
6 calls:
| 59.0ms | b |
| 57.0ms | a |
| 41.0ms | y |
| 41.0ms | x |
| 27.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 14.3b | 6 | x |
| 15.3b | 6 | y |
| 13.6b | 4 | z |
| 17.2b | 4 | t |
| 13.7b | 9 | a |
| 13.8b | 9 | b |
Compiled 109 to 60 computations (45% saved)
| 3× | binary-search |
| Time | Left | Right |
|---|---|---|
| 35.0ms | 31080.30376776488 | 3704898.9319669474 |
| 41.0ms | 9.884033008853764e-114 | 1.9856477031309846e-106 |
| 25.0ms | -136122.17519292585 | -160.01904838634462 |
Compiled 30 to 21 computations (30% saved)
| Inputs |
|---|
x |
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 x (*.f64 b (*.f64 z a))) |
| Outputs |
|---|
(+.f64 x (*.f64 b (*.f64 z a))) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 x (*.f64 b (*.f64 z a))) |
(+.f64 (*.f64 a t) x) |
(+.f64 x (*.f64 b (*.f64 z a))) |
6 calls:
| 58.0ms | b |
| 44.0ms | a |
| 36.0ms | z |
| 36.0ms | x |
| 24.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 14.3b | 6 | x |
| 17.4b | 3 | y |
| 13.9b | 6 | z |
| 17.2b | 4 | t |
| 16.0b | 7 | a |
| 13.3b | 10 | b |
Compiled 95 to 55 computations (42.1% saved)
| 9× | binary-search |
| Time | Left | Right |
|---|---|---|
| 221.0ms | 3.4415128184473606e+126 | 8.440218251825178e+132 |
| 45.0ms | 5.085013598100387e+38 | 7.73952177407602e+40 |
| 81.0ms | 5081784959440276.0 | 4.404525450520363e+28 |
| 80.0ms | 2.4512454174338468e-48 | 1.7856608981405802e-43 |
| 49.0ms | 2.2240412131145797e-144 | 5.175321671010884e-141 |
| 48.0ms | 2.2080577885491834e-266 | 1.756947065402339e-258 |
| 83.0ms | -9.236275042974385e-243 | -1.1573611478240138e-243 |
| 282.0ms | -9.822855479846294e+114 | -4.2422005822058574e+111 |
| 223.0ms | -1.1946659218858912e+175 | -1.220146280475545e+164 |
Compiled 752 to 544 computations (27.7% saved)
| Inputs |
|---|
x |
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
| Outputs |
|---|
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 (*.f64 y z) x) |
6 calls:
| 56.0ms | b |
| 54.0ms | x |
| 42.0ms | z |
| 24.0ms | y |
| 22.0ms | a |
| Error | Segments | Branch |
|---|---|---|
| 15.9b | 3 | x |
| 17.4b | 3 | y |
| 17.1b | 3 | z |
| 18.9b | 3 | t |
| 18.9b | 3 | a |
| 18.4b | 5 | b |
Compiled 88 to 52 computations (40.9% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 25.0ms | 8.876939943983883e-121 | 8.678402690772755e-116 |
| 26.0ms | -2.1677078980924566e+42 | -1.2391788623462622e+36 |
Compiled 30 to 21 computations (30% saved)
| Inputs |
|---|
x |
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
| Outputs |
|---|
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
6 calls:
| 48.0ms | t |
| 44.0ms | b |
| 21.0ms | y |
| 18.0ms | a |
| 17.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 22.3b | 3 | x |
| 17.4b | 3 | y |
| 17.1b | 3 | z |
| 18.9b | 3 | t |
| 18.9b | 3 | a |
| 19.0b | 5 | b |
Compiled 81 to 51 computations (37% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 37.0ms | 1.0369457006605977e-104 | 4.176352747490032e-104 |
| 24.0ms | -7.599981451806761e-88 | -1.5318097925202378e-89 |
Compiled 30 to 21 computations (30% saved)
| Inputs |
|---|
x |
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 a t) x) |
| Outputs |
|---|
(*.f64 z y) |
(+.f64 (*.f64 a t) x) |
(*.f64 z y) |
(+.f64 (*.f64 a t) x) |
(*.f64 z y) |
(+.f64 (*.f64 a t) x) |
6 calls:
| 78.0ms | x |
| 57.0ms | a |
| 29.0ms | z |
| 27.0ms | y |
| 11.0ms | b |
| Error | Segments | Branch |
|---|---|---|
| 21.7b | 8 | x |
| 23.6b | 5 | y |
| 20.5b | 6 | z |
| 26.1b | 1 | t |
| 23.4b | 5 | a |
| 24.2b | 2 | b |
Compiled 76 to 49 computations (35.5% saved)
| 5× | binary-search |
| Time | Left | Right |
|---|---|---|
| 188.0ms | 3.182779182140992e+90 | 2.558725888469694e+98 |
| 431.0ms | 7.542444663345132e+27 | 1.4196014363006357e+47 |
| 56.0ms | -136122.17519292585 | -160.01904838634462 |
| 210.0ms | -3.724062929541388e+70 | -2.4815672684307038e+64 |
| 120.0ms | -7.219279413637779e+116 | -8.473189878860533e+112 |
Compiled 844 to 650 computations (23% saved)
| Inputs |
|---|
x |
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (*.f64 a b)) |
| Outputs |
|---|
x |
(*.f64 z y) |
(*.f64 a t) |
(*.f64 z y) |
x |
6 calls:
| 139.0ms | a |
| 110.0ms | b |
| 69.0ms | t |
| 65.0ms | y |
| 64.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 27.9b | 5 | x |
| 32.7b | 5 | y |
| 31.0b | 5 | z |
| 35.2b | 2 | t |
| 30.4b | 10 | a |
| 30.5b | 11 | b |
Compiled 71 to 48 computations (32.4% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 48.0ms | 8.678402690772755e-116 | 1.481445470423946e-111 |
| 48.0ms | -1.4613912396342752e-300 | 1.2638193061443339e-306 |
| 49.0ms | -2.3963888539005345e-208 | -3.882142378087259e-209 |
| 50.0ms | -2.1677078980924566e+42 | -1.2391788623462622e+36 |
Compiled 30 to 21 computations (30% saved)
| Inputs |
|---|
x |
x |
(*.f64 a t) |
| Outputs |
|---|
x |
(*.f64 a t) |
x |
6 calls:
| 37.0ms | b |
| 36.0ms | a |
| 30.0ms | x |
| 14.0ms | t |
| 9.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 31.0b | 3 | x |
| 38.3b | 1 | y |
| 38.3b | 1 | z |
| 35.2b | 2 | t |
| 35.1b | 4 | a |
| 35.0b | 5 | b |
Compiled 53 to 43 computations (18.9% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 46.0ms | 8.678402690772755e-116 | 1.481445470423946e-111 |
| 84.0ms | -2.2926148297862894e+48 | -2.4785597992355738e+47 |
Compiled 30 to 21 computations (30% saved)
Total -0.0b remaining (-0%)
Threshold costs -0.0b (-0%)
| Inputs |
|---|
x |
x |
| Outputs |
|---|
x |
6 calls:
| 7.0ms | z |
| 7.0ms | a |
| 7.0ms | x |
| 7.0ms | y |
| 7.0ms | t |
| Error | Segments | Branch |
|---|---|---|
| 38.3b | 1 | x |
| 38.3b | 1 | y |
| 38.3b | 1 | z |
| 38.3b | 1 | t |
| 38.3b | 1 | a |
| 38.3b | 1 | b |
Compiled 50 to 42 computations (16% saved)
| 1× | egg-herbie |
| 10× | +-commutative_binary64 |
| 8× | *-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 139 | 758 |
| 1 | 163 | 758 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(if (<=.f64 a -10000000000000) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) (if (<=.f64 a 1982136438213785/3064991081731777716716694054300618367237478244367204352) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)))) |
(if (<=.f64 b -4852891110326865/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) (if (<=.f64 b 8638758675594411/54624374234151766213262145869588543874209860176411919649966143993970993052202041929903572589539772749766081827581405105732721063150545838738336612780694159737611530891378807262929537318189580490579681412185183043434010607923007170897214483464192) (fma.f64 t a (+.f64 x (*.f64 y z))) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)))) |
(if (<=.f64 b -4852891110326865/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) (if (<=.f64 b 8638758675594411/54624374234151766213262145869588543874209860176411919649966143993970993052202041929903572589539772749766081827581405105732721063150545838738336612780694159737611530891378807262929537318189580490579681412185183043434010607923007170897214483464192) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)))) |
(if (<=.f64 z -1019999999999999989023584440794909414900335777993154008763999664160326257236005131858313945684476166144) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z -24999999999999999802259656570908462705689030423557613841392074752) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 z -99710700949477130240) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z -5795792117033131/319334449525555169865019634085894170570792201669673206640407558789953902699034250525593274478821712174294791495070799239035590078142974985718267487725573027251200907672173708242806035431098077949224537079127027838932929672819339262222216842951687065201139345100120966662777359236855041588461568) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 z 8543288846866927/274877906944) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))))))) |
(if (<=.f64 z -1019999999999999989023584440794909414900335777993154008763999664160326257236005131858313945684476166144) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z -24999999999999999802259656570908462705689030423557613841392074752) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 z -584640290713999/4294967296) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z 8543288846866927/274877906944) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (+.f64 (*.f64 y z) x))))) |
(if (<=.f64 z -584640290713999/4294967296) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z 6851289694834651/693167423530203714894603546035770925859109268843954143792619895153655326951406405759993601526034894524347802740350892957243539456) (+.f64 (*.f64 a t) x) (if (<=.f64 z 8543288846866927/274877906944) (+.f64 x (*.f64 b (*.f64 z a))) (+.f64 (*.f64 y z) x)))) |
(if (<=.f64 b -11799999999999999891070491413212132971054480564019509368294533061780297560962174389344000386834508962761864093667633825838920279010616161920107077117296006883616619826002264064) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 b -4299999999999999934474293129610999895861920224248333058122333109740113522291869839061814178234989923584037617664) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 b -8875710761036679/960962154087001629436308185025184878247905227974336452694771122017616840015261658617268505418282416748614914455642299215255384405286687137505466996049907860485085046091635529899088428785810612776957410293491536147754283397719630991265870577566668501257551872) (+.f64 (*.f64 y z) x) (if (<=.f64 b 3206464127410837/145216494968533502226373290834951226575318379068300240142165220636322329800820739604020343212515268612285031620136032524458455590385244698026448298935780725174118246137447253314715469710380638366234296463120257539655053584656042977359091693393423640919145029829506241486695834845184) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 b 7817007572901381/3514776401986872174070733209129673327241950873673372369609965291102998109899599898686750536018664732148375711432438199315006457855854921632037902485050909261824) (+.f64 (*.f64 y z) x) (if (<=.f64 b 4033535505500117/1645504557321206042154969182557350504982735865633579863348609024) (+.f64 (*.f64 a t) x) (if (<=.f64 b 5081784959440276) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 b 508501359810038666398656753821045227520) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 b 8399999999999999733838736437141222916028121859163526996283626204514276867839228603709296142300338256316180903229376779018097129422848) (+.f64 (*.f64 a t) x) (+.f64 x (*.f64 b (*.f64 z a)))))))))))) |
(if (<=.f64 x -2167707898092456631850481727290989522976768) (+.f64 (*.f64 a t) x) (if (<=.f64 x 5161682963627169/5814709794364855124394590463104036274829130885498544482251921593445114304907183386609528405710108524486100172850129423468276813028917248) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x))) |
(if (<=.f64 z -6808807398933211/8958978968711216842229769122273777112486581988938598139599956403855167484720643781523509973086428463104) (+.f64 (*.f64 y z) x) (if (<=.f64 z 6694132272783931/645562469521727147413979793000752968582426448207305878207664839135161905504210298657411338320034457858975792993186873344) (+.f64 (*.f64 a t) x) (+.f64 (*.f64 y z) x))) |
(if (<=.f64 z -699999999999999993393585492362694722007723160903772080533483959155884155409164141005865779345525827585238980423057408) (*.f64 z y) (if (<=.f64 z -24999999999999999802259656570908462705689030423557613841392074752) (+.f64 (*.f64 a t) x) (if (<=.f64 z -584640290713999/4294967296) (*.f64 z y) (if (<=.f64 z 139999999999999993968972264119665375280415899648) (+.f64 (*.f64 a t) x) (if (<=.f64 z 3199999999999999983211730406137757834105427534421829619902134231421065873225851044378968064) (*.f64 z y) (+.f64 (*.f64 a t) x)))))) |
(if (<=.f64 x -2167707898092456631850481727290989522976768) x (if (<=.f64 x -5543883222145349/23134322349737717735007099635340311456574291245888123082206428617627187858318938111228919160792924135185595314161942499967986047925275778642956722900885062503881081581426410459731001937860227299113020288850612472756100399104) (*.f64 z y) (if (<=.f64 x -8815195556448139/6032057205060440848842124543157735677050252251748505781796615064961622344493727293370973578138265743708225425014400837164813540499979063179105919597766951022193355091707896034850684039059079180396788349106095584290087446076413771468940477241550670753145517602931224392424029547429993824129889235158145614364972941312) (*.f64 a t) (if (<=.f64 x 481246882681643/5545339388241629719156828368286167406872874150751633150340959161229242615611251246079948812208279156194782421922807143657948315648) (*.f64 z y) x)))) |
(if (<=.f64 x -2292614829786289446496565057389166872298826760192) x (if (<=.f64 x 481246882681643/5545339388241629719156828368286167406872874150751633150340959161229242615611251246079948812208279156194782421922807143657948315648) (*.f64 a t) x)) |
x |
| Outputs |
|---|
(if (<=.f64 a -10000000000000) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) (if (<=.f64 a 1982136438213785/3064991081731777716716694054300618367237478244367204352) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)))) |
(if (<=.f64 a -10000000000000) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) (if (<=.f64 a 1982136438213785/3064991081731777716716694054300618367237478244367204352) (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 y z))) (*.f64 b (*.f64 a z))) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)))) |
(if (<=.f64 b -4852891110326865/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) (if (<=.f64 b 8638758675594411/54624374234151766213262145869588543874209860176411919649966143993970993052202041929903572589539772749766081827581405105732721063150545838738336612780694159737611530891378807262929537318189580490579681412185183043434010607923007170897214483464192) (fma.f64 t a (+.f64 x (*.f64 y z))) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)))) |
(if (<=.f64 b -4852891110326865/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 y z))) (*.f64 b (*.f64 a z))) (if (<=.f64 b 8638758675594411/54624374234151766213262145869588543874209860176411919649966143993970993052202041929903572589539772749766081827581405105732721063150545838738336612780694159737611530891378807262929537318189580490579681412185183043434010607923007170897214483464192) (fma.f64 t a (+.f64 x (*.f64 y z))) (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 y z))) (*.f64 b (*.f64 a z))))) |
(if (<=.f64 b -4852891110326865/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) (if (<=.f64 b 8638758675594411/54624374234151766213262145869588543874209860176411919649966143993970993052202041929903572589539772749766081827581405105732721063150545838738336612780694159737611530891378807262929537318189580490579681412185183043434010607923007170897214483464192) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)))) |
(if (<=.f64 b -4852891110326865/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 y z))) (*.f64 b (*.f64 a z))) (if (<=.f64 b 8638758675594411/54624374234151766213262145869588543874209860176411919649966143993970993052202041929903572589539772749766081827581405105732721063150545838738336612780694159737611530891378807262929537318189580490579681412185183043434010607923007170897214483464192) (+.f64 (+.f64 x (*.f64 a t)) (*.f64 y z)) (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 y z))) (*.f64 b (*.f64 a z))))) |
(if (<=.f64 z -1019999999999999989023584440794909414900335777993154008763999664160326257236005131858313945684476166144) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z -24999999999999999802259656570908462705689030423557613841392074752) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 z -99710700949477130240) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z -5795792117033131/319334449525555169865019634085894170570792201669673206640407558789953902699034250525593274478821712174294791495070799239035590078142974985718267487725573027251200907672173708242806035431098077949224537079127027838932929672819339262222216842951687065201139345100120966662777359236855041588461568) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 z 8543288846866927/274877906944) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))))))) |
(if (<=.f64 z -1019999999999999989023584440794909414900335777993154008763999664160326257236005131858313945684476166144) (*.f64 z (+.f64 y (*.f64 a b))) (if (<=.f64 z -24999999999999999802259656570908462705689030423557613841392074752) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (if (<=.f64 z -99710700949477130240) (*.f64 z (+.f64 y (*.f64 a b))) (if (<=.f64 z -5795792117033131/319334449525555169865019634085894170570792201669673206640407558789953902699034250525593274478821712174294791495070799239035590078142974985718267487725573027251200907672173708242806035431098077949224537079127027838932929672819339262222216842951687065201139345100120966662777359236855041588461568) (+.f64 (+.f64 x (*.f64 a t)) (*.f64 y z)) (if (<=.f64 z 8543288846866927/274877906944) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (+.f64 (+.f64 x (*.f64 a t)) (*.f64 y z))))))) |
(if (<=.f64 z -1019999999999999989023584440794909414900335777993154008763999664160326257236005131858313945684476166144) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z -24999999999999999802259656570908462705689030423557613841392074752) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 z -584640290713999/4294967296) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z 8543288846866927/274877906944) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (+.f64 (*.f64 y z) x))))) |
(if (<=.f64 z -1019999999999999989023584440794909414900335777993154008763999664160326257236005131858313945684476166144) (*.f64 z (+.f64 y (*.f64 a b))) (if (<=.f64 z -24999999999999999802259656570908462705689030423557613841392074752) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (if (<=.f64 z -584640290713999/4294967296) (*.f64 z (+.f64 y (*.f64 a b))) (if (<=.f64 z 8543288846866927/274877906944) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (+.f64 x (*.f64 y z)))))) |
(if (<=.f64 z -584640290713999/4294967296) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z 6851289694834651/693167423530203714894603546035770925859109268843954143792619895153655326951406405759993601526034894524347802740350892957243539456) (+.f64 (*.f64 a t) x) (if (<=.f64 z 8543288846866927/274877906944) (+.f64 x (*.f64 b (*.f64 z a))) (+.f64 (*.f64 y z) x)))) |
(if (<=.f64 z -584640290713999/4294967296) (*.f64 z (+.f64 y (*.f64 a b))) (if (<=.f64 z 6851289694834651/693167423530203714894603546035770925859109268843954143792619895153655326951406405759993601526034894524347802740350892957243539456) (+.f64 x (*.f64 a t)) (if (<=.f64 z 8543288846866927/274877906944) (+.f64 x (*.f64 b (*.f64 a z))) (+.f64 x (*.f64 y z))))) |
(if (<=.f64 b -11799999999999999891070491413212132971054480564019509368294533061780297560962174389344000386834508962761864093667633825838920279010616161920107077117296006883616619826002264064) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 b -4299999999999999934474293129610999895861920224248333058122333109740113522291869839061814178234989923584037617664) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 b -8875710761036679/960962154087001629436308185025184878247905227974336452694771122017616840015261658617268505418282416748614914455642299215255384405286687137505466996049907860485085046091635529899088428785810612776957410293491536147754283397719630991265870577566668501257551872) (+.f64 (*.f64 y z) x) (if (<=.f64 b 3206464127410837/145216494968533502226373290834951226575318379068300240142165220636322329800820739604020343212515268612285031620136032524458455590385244698026448298935780725174118246137447253314715469710380638366234296463120257539655053584656042977359091693393423640919145029829506241486695834845184) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 b 7817007572901381/3514776401986872174070733209129673327241950873673372369609965291102998109899599898686750536018664732148375711432438199315006457855854921632037902485050909261824) (+.f64 (*.f64 y z) x) (if (<=.f64 b 4033535505500117/1645504557321206042154969182557350504982735865633579863348609024) (+.f64 (*.f64 a t) x) (if (<=.f64 b 5081784959440276) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 b 508501359810038666398656753821045227520) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 b 8399999999999999733838736437141222916028121859163526996283626204514276867839228603709296142300338256316180903229376779018097129422848) (+.f64 (*.f64 a t) x) (+.f64 x (*.f64 b (*.f64 z a)))))))))))) |
(if (<=.f64 b -11799999999999999891070491413212132971054480564019509368294533061780297560962174389344000386834508962761864093667633825838920279010616161920107077117296006883616619826002264064) (+.f64 x (*.f64 b (*.f64 a z))) (if (<=.f64 b -4299999999999999934474293129610999895861920224248333058122333109740113522291869839061814178234989923584037617664) (+.f64 (*.f64 a t) (*.f64 y z)) (if (<=.f64 b -8875710761036679/960962154087001629436308185025184878247905227974336452694771122017616840015261658617268505418282416748614914455642299215255384405286687137505466996049907860485085046091635529899088428785810612776957410293491536147754283397719630991265870577566668501257551872) (+.f64 x (*.f64 y z)) (if (<=.f64 b 3206464127410837/145216494968533502226373290834951226575318379068300240142165220636322329800820739604020343212515268612285031620136032524458455590385244698026448298935780725174118246137447253314715469710380638366234296463120257539655053584656042977359091693393423640919145029829506241486695834845184) (+.f64 (*.f64 a t) (*.f64 y z)) (if (<=.f64 b 7817007572901381/3514776401986872174070733209129673327241950873673372369609965291102998109899599898686750536018664732148375711432438199315006457855854921632037902485050909261824) (+.f64 x (*.f64 y z)) (if (<=.f64 b 4033535505500117/1645504557321206042154969182557350504982735865633579863348609024) (+.f64 x (*.f64 a t)) (if (<=.f64 b 5081784959440276) (+.f64 (*.f64 a t) (*.f64 y z)) (if (<=.f64 b 508501359810038666398656753821045227520) (+.f64 x (*.f64 b (*.f64 a z))) (if (<=.f64 b 8399999999999999733838736437141222916028121859163526996283626204514276867839228603709296142300338256316180903229376779018097129422848) (+.f64 x (*.f64 a t)) (+.f64 x (*.f64 b (*.f64 a z)))))))))))) |
(if (<=.f64 x -2167707898092456631850481727290989522976768) (+.f64 (*.f64 a t) x) (if (<=.f64 x 5161682963627169/5814709794364855124394590463104036274829130885498544482251921593445114304907183386609528405710108524486100172850129423468276813028917248) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x))) |
(if (<=.f64 x -2167707898092456631850481727290989522976768) (+.f64 x (*.f64 a t)) (if (<=.f64 x 5161682963627169/5814709794364855124394590463104036274829130885498544482251921593445114304907183386609528405710108524486100172850129423468276813028917248) (+.f64 (*.f64 a t) (*.f64 y z)) (+.f64 x (*.f64 y z)))) |
(if (<=.f64 z -6808807398933211/8958978968711216842229769122273777112486581988938598139599956403855167484720643781523509973086428463104) (+.f64 (*.f64 y z) x) (if (<=.f64 z 6694132272783931/645562469521727147413979793000752968582426448207305878207664839135161905504210298657411338320034457858975792993186873344) (+.f64 (*.f64 a t) x) (+.f64 (*.f64 y z) x))) |
(if (<=.f64 z -6808807398933211/8958978968711216842229769122273777112486581988938598139599956403855167484720643781523509973086428463104) (+.f64 x (*.f64 y z)) (if (<=.f64 z 6694132272783931/645562469521727147413979793000752968582426448207305878207664839135161905504210298657411338320034457858975792993186873344) (+.f64 x (*.f64 a t)) (+.f64 x (*.f64 y z)))) |
(if (<=.f64 z -699999999999999993393585492362694722007723160903772080533483959155884155409164141005865779345525827585238980423057408) (*.f64 z y) (if (<=.f64 z -24999999999999999802259656570908462705689030423557613841392074752) (+.f64 (*.f64 a t) x) (if (<=.f64 z -584640290713999/4294967296) (*.f64 z y) (if (<=.f64 z 139999999999999993968972264119665375280415899648) (+.f64 (*.f64 a t) x) (if (<=.f64 z 3199999999999999983211730406137757834105427534421829619902134231421065873225851044378968064) (*.f64 z y) (+.f64 (*.f64 a t) x)))))) |
(if (<=.f64 z -699999999999999993393585492362694722007723160903772080533483959155884155409164141005865779345525827585238980423057408) (*.f64 y z) (if (<=.f64 z -24999999999999999802259656570908462705689030423557613841392074752) (+.f64 x (*.f64 a t)) (if (<=.f64 z -584640290713999/4294967296) (*.f64 y z) (if (<=.f64 z 139999999999999993968972264119665375280415899648) (+.f64 x (*.f64 a t)) (if (<=.f64 z 3199999999999999983211730406137757834105427534421829619902134231421065873225851044378968064) (*.f64 y z) (+.f64 x (*.f64 a t))))))) |
(if (<=.f64 x -2167707898092456631850481727290989522976768) x (if (<=.f64 x -5543883222145349/23134322349737717735007099635340311456574291245888123082206428617627187858318938111228919160792924135185595314161942499967986047925275778642956722900885062503881081581426410459731001937860227299113020288850612472756100399104) (*.f64 z y) (if (<=.f64 x -8815195556448139/6032057205060440848842124543157735677050252251748505781796615064961622344493727293370973578138265743708225425014400837164813540499979063179105919597766951022193355091707896034850684039059079180396788349106095584290087446076413771468940477241550670753145517602931224392424029547429993824129889235158145614364972941312) (*.f64 a t) (if (<=.f64 x 481246882681643/5545339388241629719156828368286167406872874150751633150340959161229242615611251246079948812208279156194782421922807143657948315648) (*.f64 z y) x)))) |
(if (<=.f64 x -2167707898092456631850481727290989522976768) x (if (<=.f64 x -5543883222145349/23134322349737717735007099635340311456574291245888123082206428617627187858318938111228919160792924135185595314161942499967986047925275778642956722900885062503881081581426410459731001937860227299113020288850612472756100399104) (*.f64 y z) (if (<=.f64 x -8815195556448139/6032057205060440848842124543157735677050252251748505781796615064961622344493727293370973578138265743708225425014400837164813540499979063179105919597766951022193355091707896034850684039059079180396788349106095584290087446076413771468940477241550670753145517602931224392424029547429993824129889235158145614364972941312) (*.f64 a t) (if (<=.f64 x 481246882681643/5545339388241629719156828368286167406872874150751633150340959161229242615611251246079948812208279156194782421922807143657948315648) (*.f64 y z) x)))) |
(if (<=.f64 x -2292614829786289446496565057389166872298826760192) x (if (<=.f64 x 481246882681643/5545339388241629719156828368286167406872874150751633150340959161229242615611251246079948812208279156194782421922807143657948315648) (*.f64 a t) x)) |
x |
Compiled 604 to 284 computations (53% saved)
| 1× | egg-herbie |
| 89× | fma-def_binary64 |
| 23× | associate-+l+_binary64 |
| 21× | associate-+r+_binary64 |
| 19× | +-commutative_binary64 |
| 10× | *-commutative_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 22 |
| 1 | 27 | 16 |
| 2 | 69 | 15 |
| 3 | 148 | 13 |
| 4 | 191 | 13 |
| 5 | 203 | 13 |
| 6 | 206 | 13 |
| 1× | saturated |
Compiled 232 to 140 computations (39.7% saved)
Compiled 532 to 154 computations (71.1% saved)
Loading profile data...