Time bar (total: 12.7s)
| 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)
| 1.3s | 8256× | body | 256 | valid |
| 579.0ms | 3884× | 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 |
|---|---|---|
| ▶ | 4.0b | (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) |
| ▶ | 2.3b | (+.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 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
| ✓ | 0.0b | (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) |
| ✓ | 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)) |
| 2.0ms | b | @ | 0 | (*.f64 (*.f64 a z) b) |
| 2.0ms | t | @ | 0 | (+.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 | z | @ | 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 x (*.f64 y z)) (*.f64 t a)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(+.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 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 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 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 |
| 185× | 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 | 188 | 1693 |
| 2 | 394 | 1693 |
| 3 | 791 | 1693 |
| 4 | 2008 | 1693 |
| 5 | 3361 | 1693 |
| 6 | 3851 | 1693 |
| 7 | 4155 | 1693 |
| 8 | 4181 | 1693 |
| 9 | 4181 | 1693 |
| 10 | 4317 | 1693 |
| 11 | 4317 | 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 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 (*.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 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 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 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 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 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a t (fma.f64 z y 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a t (fma.f64 z y 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a t (fma.f64 z y 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a t (fma.f64 z y 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a t (fma.f64 z y 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a t (fma.f64 z y 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a t (fma.f64 z y 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a t (fma.f64 z y 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a t (fma.f64 z y 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a t (fma.f64 z y 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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 a t) x)) |
(fma.f64 y z (fma.f64 a t x)) |
(fma.f64 z y (fma.f64 a t x)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a t (fma.f64 z y 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a t (fma.f64 z y 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)) |
(fma.f64 a 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)) |
(fma.f64 a 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)) |
(fma.f64 a t (fma.f64 z y x)) |
(+.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))) |
(+.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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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)) |
(fma.f64 a 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(*.f64 a (*.f64 b z)) |
(+.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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x)) |
(*.f64 a (*.f64 b z)) |
(+.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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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 z (fma.f64 a b y) (fma.f64 a t x)) |
(fma.f64 a t (fma.f64 z (fma.f64 a b 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) |
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.9b | (fma.f64 a (fma.f64 z b t) x) |
Compiled 33 to 9 computations (72.7% saved)
33 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 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 | b | @ | inf | (fma.f64 a (fma.f64 z b t) x) |
| 1.0ms | z | @ | -inf | (fma.f64 a (fma.f64 z b t) x) |
| 1.0ms | a | @ | 0 | (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 5208 to 1166 computations (77.6% saved)
13 alts after pruning (13 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 276 | 13 | 289 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 1 | 0 | 1 |
| Total | 278 | 13 | 291 |
| Status | Error | Program |
|---|---|---|
| ▶ | 12.0b | (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
| 34.2b | (fma.f64 y z (*.f64 t a)) | |
| ▶ | 40.0b | (*.f64 (+.f64 t (*.f64 b z)) a) |
| 26.1b | (+.f64 (*.f64 y z) x) | |
| 25.8b | (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (pow.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) 2)) | |
| ▶ | 37.8b | (+.f64 (*.f64 z y) (*.f64 (*.f64 a z) b)) |
| ▶ | 37.8b | (fma.f64 y z (*.f64 b (*.f64 z a))) |
| 38.6b | (*.f64 z (+.f64 (*.f64 a b) y)) | |
| 30.2b | (+.f64 x (*.f64 (*.f64 a z) b)) | |
| ▶ | 47.9b | (*.f64 z y) |
| 39.1b | (+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b)) | |
| 26.1b | (fma.f64 z y x) | |
| 17.0b | (+.f64 (fma.f64 a t x) (*.f64 (*.f64 a z) b)) |
Compiled 360 to 244 computations (32.2% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 a t) x) |
| ✓ | 0.0b | (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
Compiled 31 to 10 computations (67.7% saved)
24 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
| 0.0ms | t | @ | -inf | (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
| 0.0ms | x | @ | -inf | (+.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)) |
| 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 | 14 |
| 1 | 220 | 14 |
| 2 | 3163 | 14 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.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)))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a t x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 a t) 2) (-.f64 (*.f64 a t) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 a t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a t x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a t x)) (pow.f64 (cbrt.f64 (fma.f64 a t x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a t x)) 2) (cbrt.f64 (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a t x)) (sqrt.f64 (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.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))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x x)) (/.f64 1 (-.f64 (*.f64 a t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x (-.f64 x (*.f64 a t)) (pow.f64 (*.f64 a t) 2)) (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 a t) x) (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3)) (fma.f64 x (-.f64 x (*.f64 a t)) (pow.f64 (*.f64 a t) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3)) (fma.f64 x x (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 a (*.f64 t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x x)) (-.f64 (*.f64 a t) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3))) (neg.f64 (fma.f64 x (-.f64 x (*.f64 a t)) (pow.f64 (*.f64 a t) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x x))) (neg.f64 (-.f64 (*.f64 a t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a t) 2)) (-.f64 x (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a t x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a t x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a t x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a t x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a t x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x (-.f64 x (*.f64 a t)) (pow.f64 (*.f64 a t) 2)) (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 a t) x) (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a t x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a t))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 a) t) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a 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) t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (+.f64 1 (expm1.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (+.f64 1 (expm1.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a t x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a t x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a t x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t a x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a t) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a t) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 x x)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) t) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 t) 2) (*.f64 (cbrt.f64 t) a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a t)) (pow.f64 (cbrt.f64 (*.f64 a t)) 2) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (cbrt.f64 (*.f64 a t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) t) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (*.f64 (sqrt.f64 t) a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (pow.f64 (cbrt.f64 t) 2)) (cbrt.f64 t) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 t)) (sqrt.f64 t) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (cbrt.f64 (*.f64 a a))) (cbrt.f64 a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (sqrt.f64 a)) (sqrt.f64 a) x))))) |
| 1× | egg-herbie |
| 8× | fma-def_binary64 |
| 3× | +-commutative_binary64 |
| 2× | *-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 86 |
| 1 | 19 | 86 |
| 2 | 24 | 86 |
| 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 |
x |
(*.f64 a t) |
(*.f64 a t) |
x |
(*.f64 a t) |
(*.f64 a t) |
(*.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 |
x |
(*.f64 a t) |
(*.f64 a t) |
x |
(*.f64 a t) |
(*.f64 a t) |
(*.f64 a t) |
x |
x |
Compiled 11 to 7 computations (36.4% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 3.9b | (*.f64 (+.f64 t (*.f64 b z)) a) |
Compiled 25 to 9 computations (64% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | t | @ | inf | (*.f64 (+.f64 t (*.f64 b z)) a) |
| 1.0ms | a | @ | 0 | (*.f64 (+.f64 t (*.f64 b z)) a) |
| 1.0ms | b | @ | inf | (*.f64 (+.f64 t (*.f64 b z)) a) |
| 1.0ms | a | @ | inf | (*.f64 (+.f64 t (*.f64 b z)) a) |
| 0.0ms | z | @ | 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 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 z y) (*.f64 (*.f64 a z) b)) |
| 5.6b | (*.f64 (*.f64 a z) b) |
Compiled 30 to 10 computations (66.7% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | b | @ | 0 | (+.f64 (*.f64 z y) (*.f64 (*.f64 a z) b)) |
| 0.0ms | z | @ | 0 | (+.f64 (*.f64 z y) (*.f64 (*.f64 a z) b)) |
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 z y) (*.f64 (*.f64 a z) b)) |
| 0.0ms | z | @ | inf | (+.f64 (*.f64 z y) (*.f64 (*.f64 a z) b)) |
| 0.0ms | a | @ | 0 | (+.f64 (*.f64 z y) (*.f64 (*.f64 a z) b)) |
| 1× | batch-egg-rewrite |
| 529× | log-prod_binary64 |
| 405× | pow-prod-down_binary64 |
| 378× | exp-prod_binary64 |
| 368× | fma-def_binary64 |
| 260× | pow2_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 11 |
| 1 | 190 | 11 |
| 2 | 2609 | 11 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 z y) (*.f64 (*.f64 a z) b)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 z (*.f64 a b) (*.f64 z y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 z y) 2) (-.f64 (*.f64 z y) (*.f64 z (*.f64 a b)))) (/.f64 (pow.f64 (*.f64 z (*.f64 a b)) 2) (-.f64 (*.f64 z y) (*.f64 z (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 z (*.f64 a b) (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 z (*.f64 a b) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))) (pow.f64 (cbrt.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))) 2) (cbrt.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))) (sqrt.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (*.f64 z (*.f64 a b)) 3)) (/.f64 1 (fma.f64 (*.f64 z (*.f64 a b)) (-.f64 (*.f64 z (*.f64 a b)) (*.f64 z y)) (pow.f64 (*.f64 z y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (*.f64 z (*.f64 a b)) 2)) (/.f64 1 (-.f64 (*.f64 z y) (*.f64 z (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 z (*.f64 a b)) (-.f64 (*.f64 z (*.f64 a b)) (*.f64 z y)) (pow.f64 (*.f64 z y) 2)) (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (*.f64 z (*.f64 a b)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 z y) (*.f64 z (*.f64 a b))) (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (*.f64 z (*.f64 a b)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (*.f64 z (*.f64 a b)) 3)) (fma.f64 (*.f64 z (*.f64 a b)) (-.f64 (*.f64 z (*.f64 a b)) (*.f64 z y)) (pow.f64 (*.f64 z y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (*.f64 z (*.f64 a b)) 3)) (+.f64 (pow.f64 (*.f64 z (*.f64 a b)) 2) (-.f64 (pow.f64 (*.f64 z y) 2) (*.f64 (*.f64 z y) (*.f64 z (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (*.f64 z (*.f64 a b)) 2)) (-.f64 (*.f64 z y) (*.f64 z (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (*.f64 z (*.f64 a b)) 3))) (neg.f64 (fma.f64 (*.f64 z (*.f64 a b)) (-.f64 (*.f64 z (*.f64 a b)) (*.f64 z y)) (pow.f64 (*.f64 z y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (*.f64 z (*.f64 a b)) 2))) (neg.f64 (-.f64 (*.f64 z y) (*.f64 z (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 a b)) 2) (pow.f64 (*.f64 z y) 2)) (-.f64 (*.f64 z (*.f64 a b)) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 z (*.f64 a b) (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z (*.f64 a b) (*.f64 z y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z (*.f64 a b) (*.f64 z y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 z (*.f64 a b)) (-.f64 (*.f64 z (*.f64 a b)) (*.f64 z y)) (pow.f64 (*.f64 z y) 2)) (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (*.f64 z (*.f64 a b)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 z y) (*.f64 z (*.f64 a b))) (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (*.f64 z (*.f64 a b)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (fma.f64 z (*.f64 a b) (*.f64 z y)))) 2)) (cbrt.f64 (log.f64 (fma.f64 z (*.f64 a b) (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))))) (sqrt.f64 (log.f64 (fma.f64 z (*.f64 a b) (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 z (*.f64 a b) (*.f64 z y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 z (*.f64 a b) (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z y))) (pow.f64 (exp.f64 a) (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 z) y) (+.f64 1 (expm1.f64 (*.f64 z (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z y))) (+.f64 1 (expm1.f64 (*.f64 z (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z (*.f64 a b)))) (pow.f64 (exp.f64 z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 a) (*.f64 z b)) (+.f64 1 (expm1.f64 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z (*.f64 a b)))) (+.f64 1 (expm1.f64 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 z (*.f64 a b) (*.f64 z y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 z (*.f64 a b) (*.f64 z y)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 z (*.f64 a b) (*.f64 z y)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 z (*.f64 a b) (*.f64 z y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 z (*.f64 a b) (*.f64 z y))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z y (*.f64 z (*.f64 a b)))))) (#(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 y z (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z y) 1 (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 z b) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z a) b (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 z a) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (*.f64 a b)) 1 (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z y) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z (*.f64 a b)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z (*.f64 a b))) (pow.f64 (cbrt.f64 (*.f64 z (*.f64 a b))) 2) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z (*.f64 a b))) 2) (cbrt.f64 (*.f64 z (*.f64 a b))) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 z b)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) y) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z a)) 2) (*.f64 (cbrt.f64 (*.f64 z a)) b) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) z) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 b b)) (*.f64 (cbrt.f64 b) (*.f64 z a)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z y)) (cbrt.f64 (pow.f64 (*.f64 z y) 2)) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 z y) 2)) (cbrt.f64 (*.f64 z y)) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z (*.f64 a b))) (sqrt.f64 (*.f64 z (*.f64 a b))) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 z b)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) y) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z a)) (*.f64 (sqrt.f64 (*.f64 z a)) b) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) z) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) (*.f64 z a)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z y)) (sqrt.f64 (*.f64 z y)) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z b) a (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 y)) (sqrt.f64 y) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 z)) (sqrt.f64 z) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z a) (cbrt.f64 (*.f64 b b))) (cbrt.f64 b) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z a) (sqrt.f64 b)) (sqrt.f64 b) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b a) z (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (pow.f64 (cbrt.f64 (*.f64 z a)) 2)) (cbrt.f64 (*.f64 z a)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (sqrt.f64 (*.f64 z a))) (sqrt.f64 (*.f64 z a)) (*.f64 z y)))))) |
| 1× | egg-herbie |
| 181× | fma-neg_binary64 |
| 175× | fma-def_binary64 |
| 78× | associate-*l*_binary64 |
| 78× | cancel-sign-sub-inv_binary64 |
| 61× | associate-*r*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 21 | 363 |
| 1 | 53 | 363 |
| 2 | 120 | 363 |
| 3 | 287 | 363 |
| 4 | 643 | 363 |
| 5 | 928 | 363 |
| 6 | 1142 | 363 |
| 7 | 1197 | 363 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a 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 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))) |
(*.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))) |
| Outputs |
|---|
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.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))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z 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))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.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))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.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))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.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))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (fma.f64 y z (*.f64 b (*.f64 z a))) |
| ✓ | 5.6b | (*.f64 b (*.f64 z a)) |
Compiled 26 to 9 computations (65.4% saved)
21 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | z | @ | -inf | (fma.f64 y z (*.f64 b (*.f64 z a))) |
| 1.0ms | b | @ | 0 | (*.f64 b (*.f64 z a)) |
| 1.0ms | a | @ | 0 | (*.f64 b (*.f64 z a)) |
| 0.0ms | z | @ | 0 | (*.f64 b (*.f64 z a)) |
| 0.0ms | z | @ | inf | (fma.f64 y z (*.f64 b (*.f64 z a))) |
| 1× | batch-egg-rewrite |
| 789× | pow1_binary64 |
| 720× | add-log-exp_binary64 |
| 720× | log1p-expm1-u_binary64 |
| 720× | expm1-log1p-u_binary64 |
| 702× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 18 |
| 1 | 159 | 18 |
| 2 | 1944 | 18 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 b (*.f64 z a)) |
(fma.f64 y z (*.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 (pow.f64 (*.f64 b (*.f64 z a)) 3) 1/3)))) (#(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 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 cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 z a) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 z a) 3) (pow.f64 b 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 b (*.f64 z a)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z y) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 z y) 1) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 y z (*.f64 b (*.f64 z a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y z (*.f64 b (*.f64 z a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y z (*.f64 b (*.f64 z a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y z (*.f64 b (*.f64 z a)))) (pow.f64 (cbrt.f64 (fma.f64 y z (*.f64 b (*.f64 z a)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 y z (*.f64 b (*.f64 z a)))) 2) (cbrt.f64 (fma.f64 y z (*.f64 b (*.f64 z a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 y z (*.f64 b (*.f64 z a)))) (sqrt.f64 (fma.f64 y z (*.f64 b (*.f64 z a)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (*.f64 b (*.f64 z a)) 3)) (+.f64 (*.f64 (*.f64 z y) (*.f64 z y)) (-.f64 (pow.f64 (*.f64 b (*.f64 z a)) 2) (*.f64 (*.f64 z y) (*.f64 b (*.f64 z a))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 z y) (*.f64 z y)) (pow.f64 (*.f64 b (*.f64 z a)) 2)) (-.f64 (*.f64 z y) (*.f64 b (*.f64 z a))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y z (*.f64 b (*.f64 z a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y z (*.f64 b (*.f64 z a))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y z (*.f64 b (*.f64 z a)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 y z (*.f64 b (*.f64 z a)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 y z (*.f64 b (*.f64 z a))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y z (*.f64 b (*.f64 z a)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 y z (*.f64 b (*.f64 z a))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 y z (*.f64 b (*.f64 z a)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y z (*.f64 b (*.f64 z a)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y z (*.f64 b (*.f64 z a))))))))) |
| 1× | egg-herbie |
| 181× | fma-neg_binary64 |
| 175× | fma-def_binary64 |
| 80× | associate-*l*_binary64 |
| 78× | cancel-sign-sub-inv_binary64 |
| 59× | associate-*r*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 21 | 615 |
| 1 | 53 | 615 |
| 2 | 120 | 615 |
| 3 | 287 | 615 |
| 4 | 638 | 615 |
| 5 | 931 | 615 |
| 6 | 1145 | 615 |
| 7 | 1200 | 615 |
| 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 (*.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 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 y z) (*.f64 a (*.f64 z b))) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a 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 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 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))) |
| Outputs |
|---|
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 b (*.f64 a z)) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
Compiled 4638 to 1281 computations (72.4% saved)
20 alts after pruning (16 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 326 | 13 | 339 |
| Fresh | 5 | 3 | 8 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 4 | 4 |
| Total | 332 | 20 | 352 |
| Status | Error | Program |
|---|---|---|
| 34.2b | (+.f64 (*.f64 y z) (*.f64 a t)) | |
| ✓ | 47.9b | (*.f64 z y) |
| 53.7b | (*.f64 a (*.f64 z b)) | |
| ✓ | 12.0b | (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
| ▶ | 27.0b | (fma.f64 a t x) |
| 34.2b | (fma.f64 y z (*.f64 t a)) | |
| 38.6b | (fma.f64 z y (*.f64 z (*.f64 a b))) | |
| ✓ | 40.0b | (*.f64 (+.f64 t (*.f64 b z)) a) |
| 40.0b | (+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a)) | |
| ▶ | 30.2b | (+.f64 x (*.f64 (*.f64 a z) b)) |
| ▶ | 48.9b | (*.f64 a t) |
| 51.6b | (fma.f64 (*.f64 b (sqrt.f64 (*.f64 z a))) (sqrt.f64 (*.f64 z a)) (*.f64 z y)) | |
| 26.1b | (+.f64 (*.f64 y z) x) | |
| ▶ | 27.0b | (+.f64 (*.f64 a t) x) |
| 53.1b | (*.f64 z (*.f64 a b)) | |
| ▶ | 26.1b | (fma.f64 z y x) |
| ✓ | 37.8b | (+.f64 (*.f64 z y) (*.f64 (*.f64 a z) b)) |
| 52.4b | (/.f64 (*.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2)) a) (-.f64 t (*.f64 b z))) | |
| 38.6b | (*.f64 z (+.f64 (*.f64 a b) y)) | |
| 40.7b | x |
Compiled 451 to 306 computations (32.2% saved)
Compiled 13 to 7 computations (46.2% saved)
Compiled 11 to 7 computations (36.4% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (+.f64 (*.f64 a t) x) |
Compiled 17 to 8 computations (52.9% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 x (*.f64 (*.f64 a z) b)) |
| 5.6b | (*.f64 (*.f64 a z) b) |
Compiled 25 to 9 computations (64% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | 0 | (+.f64 x (*.f64 (*.f64 a z) b)) |
| 0.0ms | b | @ | -inf | (+.f64 x (*.f64 (*.f64 a z) b)) |
| 0.0ms | z | @ | -inf | (+.f64 x (*.f64 (*.f64 a z) b)) |
| 0.0ms | x | @ | -inf | (+.f64 x (*.f64 (*.f64 a z) b)) |
| 0.0ms | b | @ | inf | (+.f64 x (*.f64 (*.f64 a z) b)) |
| 1× | batch-egg-rewrite |
| 933× | pow1_binary64 |
| 862× | add-log-exp_binary64 |
| 862× | log1p-expm1-u_binary64 |
| 862× | expm1-log1p-u_binary64 |
| 842× | add-exp-log_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 10 |
| 1 | 169 | 8 |
| 2 | 2328 | 8 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 x (*.f64 (*.f64 a z) b)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 a (*.f64 z b) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (-.f64 x (*.f64 a (*.f64 z b)))) (/.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (-.f64 x (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (*.f64 z b) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) 2) (cbrt.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) x)) (sqrt.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (*.f64 z b)) 3)) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (*.f64 z b)) 2)) (/.f64 1 (-.f64 x (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) x))) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (*.f64 z b)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (*.f64 a (*.f64 z b))) (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (*.f64 z b)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (*.f64 z b)) 3)) (fma.f64 x x (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (*.f64 z b)) 3)) (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (-.f64 (*.f64 x x) (*.f64 (*.f64 x a) (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (*.f64 z b)) 2)) (-.f64 x (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (*.f64 z b)) 3))) (neg.f64 (fma.f64 x x (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (*.f64 z b)) 2))) (neg.f64 (-.f64 x (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (*.f64 x x)) (-.f64 (*.f64 a (*.f64 z b)) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (*.f64 z b) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 z b) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 z b) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a z) b x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 a z) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (*.f64 z b)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 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))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.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))) x))))) |
| 1× | egg-herbie |
| 7× | fma-def_binary64 |
| 6× | *-commutative_binary64 |
| 2× | +-commutative_binary64 |
| 2× | associate-*r*_binary64 |
| 2× | associate-*l*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 342 |
| 1 | 20 | 342 |
| 2 | 29 | 342 |
| 3 | 31 | 342 |
| 1× | saturated |
| Inputs |
|---|
(*.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 b z)) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
(+.f64 (*.f64 a (*.f64 b z)) x) |
x |
(+.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 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 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) |
| Outputs |
|---|
(*.f64 a (*.f64 b z)) |
(+.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 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 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 b z)) |
(+.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 (*.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 a (*.f64 b z)) |
(+.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 a (*.f64 b z)) |
(+.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 b z)) |
(+.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 (*.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) |
Compiled 13 to 7 computations (46.2% saved)
Compiled 1400 to 452 computations (67.7% saved)
20 alts after pruning (11 fresh and 9 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 118 | 0 | 118 |
| Fresh | 0 | 11 | 11 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 8 | 8 |
| Total | 118 | 20 | 138 |
| Status | Error | Program |
|---|---|---|
| 34.2b | (+.f64 (*.f64 y z) (*.f64 a t)) | |
| ✓ | 47.9b | (*.f64 z y) |
| ▶ | 53.7b | (*.f64 a (*.f64 z b)) |
| ✓ | 12.0b | (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
| ✓ | 27.0b | (fma.f64 a t x) |
| 34.2b | (fma.f64 y z (*.f64 t a)) | |
| ▶ | 38.6b | (fma.f64 z y (*.f64 z (*.f64 a b))) |
| ✓ | 40.0b | (*.f64 (+.f64 t (*.f64 b z)) a) |
| ▶ | 40.0b | (+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a)) |
| ✓ | 30.2b | (+.f64 x (*.f64 (*.f64 a z) b)) |
| ✓ | 48.9b | (*.f64 a t) |
| 51.6b | (fma.f64 (*.f64 b (sqrt.f64 (*.f64 z a))) (sqrt.f64 (*.f64 z a)) (*.f64 z y)) | |
| ▶ | 26.1b | (+.f64 (*.f64 y z) x) |
| ✓ | 27.0b | (+.f64 (*.f64 a t) x) |
| 53.1b | (*.f64 z (*.f64 a b)) | |
| ✓ | 26.1b | (fma.f64 z y x) |
| ✓ | 37.8b | (+.f64 (*.f64 z y) (*.f64 (*.f64 a z) b)) |
| 52.4b | (/.f64 (*.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2)) a) (-.f64 t (*.f64 b z))) | |
| ▶ | 38.6b | (*.f64 z (+.f64 (*.f64 a b) y)) |
| 40.7b | x |
Compiled 398 to 268 computations (32.7% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 y z) x) |
Compiled 17 to 8 computations (52.9% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 y z) x) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 y z) x) |
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 y z) x) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 y z) x) |
| 0.0ms | x | @ | inf | (+.f64 (*.f64 y z) x) |
| 1× | batch-egg-rewrite |
| 707× | pow1_binary64 |
| 655× | add-log-exp_binary64 |
| 655× | log1p-expm1-u_binary64 |
| 655× | expm1-log1p-u_binary64 |
| 640× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 5 |
| 1 | 129 | 5 |
| 2 | 1775 | 5 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 y z) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 y z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 y z) 2) (-.f64 (*.f64 y z) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y z x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y z x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y z x)) (pow.f64 (cbrt.f64 (fma.f64 y z x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 y z x)) 2) (cbrt.f64 (fma.f64 y z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 y z x)) (sqrt.f64 (fma.f64 y z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x (-.f64 x (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x x)) (/.f64 1 (-.f64 (*.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x (-.f64 x (*.f64 y z)))) (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 y z) x) (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x (-.f64 x (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 x 3)) (+.f64 (*.f64 x x) (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x x)) (-.f64 (*.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 x 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x (-.f64 x (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x x))) (neg.f64 (-.f64 (*.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 y z) 2)) (-.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y z x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y z x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y z x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 y z x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 y z x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y z x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 y z x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 y z x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y z x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y z x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y z x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z y x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y z) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.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)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y z)) (sqrt.f64 (*.f64 y z)) x))))) |
| 1× | egg-herbie |
| 1× | *-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 5 | 24 |
| 1 | 6 | 24 |
| 1× | saturated |
| Inputs |
|---|
x |
(*.f64 y z) |
(*.f64 y z) |
x |
(*.f64 y z) |
(*.f64 y z) |
(*.f64 y z) |
x |
x |
| Outputs |
|---|
x |
(*.f64 y z) |
(*.f64 y z) |
x |
(*.f64 y z) |
(*.f64 y z) |
(*.f64 y z) |
x |
x |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 6.0b | (*.f64 a (*.f64 z b)) |
Compiled 17 to 8 computations (52.9% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | b | @ | -inf | (*.f64 a (*.f64 z b)) |
| 0.0ms | a | @ | 0 | (*.f64 a (*.f64 z b)) |
| 0.0ms | a | @ | inf | (*.f64 a (*.f64 z b)) |
| 0.0ms | z | @ | 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 (*.f64 a b) y) |
| ✓ | 3.6b | (*.f64 z (+.f64 (*.f64 a b) y)) |
Compiled 25 to 9 computations (64% saved)
21 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | 0 | (*.f64 z (+.f64 (*.f64 a b) y)) |
| 1.0ms | z | @ | inf | (*.f64 z (+.f64 (*.f64 a b) y)) |
| 0.0ms | a | @ | inf | (*.f64 z (+.f64 (*.f64 a b) y)) |
| 0.0ms | b | @ | -inf | (*.f64 z (+.f64 (*.f64 a b) y)) |
| 0.0ms | a | @ | 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 | 13 |
| 1 | 174 | 13 |
| 2 | 2478 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.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)))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a b y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 a b) 2) (-.f64 (*.f64 a b) y)) (/.f64 (*.f64 y y) (-.f64 (*.f64 a b) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a b y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a b y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a b y)) (pow.f64 (cbrt.f64 (fma.f64 a b y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a b y)) 2) (cbrt.f64 (fma.f64 a b y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a b y)) (sqrt.f64 (fma.f64 a b y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y (-.f64 y (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.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 1 (/.f64 (+.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y (-.f64 y (*.f64 a b)))) (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 y 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 a b) y) (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.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 (pow.f64 (*.f64 a b) 3) (pow.f64 y 3)) (+.f64 (*.f64 y y) (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 b (*.f64 a y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (-.f64 (*.f64 a b) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 y 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y (-.f64 y (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) (neg.f64 (-.f64 (*.f64 a b) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y y) (pow.f64 (*.f64 a b) 2)) (-.f64 y (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a b y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a b y) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a b y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a b y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a b y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a b y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a b y))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a b y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a b y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a b y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a b y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a b y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b a y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a b) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 y (*.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (*.f64 a b)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 y) (*.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a b)) (sqrt.f64 (*.f64 a b)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (sqrt.f64 y) (*.f64 a b)))))) |
| 1× | egg-herbie |
| 11× | fma-def_binary64 |
| 8× | *-commutative_binary64 |
| 3× | +-commutative_binary64 |
| 3× | associate-*l*_binary64 |
| 2× | associate-*r*_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 372 |
| 1 | 24 | 345 |
| 2 | 37 | 291 |
| 3 | 43 | 291 |
| 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))) |
y |
(*.f64 a b) |
(*.f64 a b) |
y |
(*.f64 a b) |
(*.f64 a b) |
(*.f64 a b) |
y |
y |
| 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)) |
y |
(*.f64 a b) |
(*.f64 a b) |
y |
(*.f64 a b) |
(*.f64 a b) |
(*.f64 a b) |
y |
y |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a)) |
| ✓ | 6.0b | (*.f64 (*.f64 b z) a) |
Compiled 30 to 10 computations (66.7% saved)
21 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | a | @ | 0 | (+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a)) |
| 0.0ms | a | @ | inf | (+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a)) |
| 0.0ms | a | @ | -inf | (+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a)) |
| 0.0ms | b | @ | 0 | (*.f64 (*.f64 b z) a) |
| 0.0ms | b | @ | inf | (*.f64 (*.f64 b z) a) |
| 1× | batch-egg-rewrite |
| 543× | log-prod_binary64 |
| 434× | fma-def_binary64 |
| 412× | pow-prod-down_binary64 |
| 381× | exp-prod_binary64 |
| 263× | pow2_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 17 |
| 1 | 192 | 15 |
| 2 | 2651 | 15 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (*.f64 b z) a) |
(+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (*.f64 b z))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (*.f64 b z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a) (*.f64 b z)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a) (*.f64 b z)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.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 (pow.f64 (*.f64 b (*.f64 z a)) 2) 1/2)))) (#(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 pow.f64 (exp.f64 1) (log.f64 (*.f64 b (*.f64 z a))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 b (*.f64 z a)))) 2)) (cbrt.f64 (log.f64 (*.f64 b (*.f64 z a)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 b (*.f64 z a))))) (sqrt.f64 (log.f64 (*.f64 b (*.f64 z a)))))))) (#(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 (exp.f64 a) (*.f64 b z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 b (*.f64 z a)))))))) (#(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 exp.f64 (*.f64 (log.f64 (*.f64 b (*.f64 z a))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 b (*.f64 z a)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 b (*.f64 z a)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 b (*.f64 z a)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 b (*.f64 z a))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 b (*.f64 z a))) 3) 1/3)))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 a (fma.f64 b z t)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 b (*.f64 z a)) 2) (*.f64 a (-.f64 (*.f64 b z) t))) (/.f64 (pow.f64 (*.f64 a t) 2) (*.f64 a (-.f64 (*.f64 b z) t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a (fma.f64 b z t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a (fma.f64 b z t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 a (fma.f64 b z t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (fma.f64 b z t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 a (fma.f64 b z t))) (pow.f64 (cbrt.f64 (*.f64 a (fma.f64 b z t))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a (fma.f64 b z t))) 2) (cbrt.f64 (*.f64 a (fma.f64 b z t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (fma.f64 b z t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 a (fma.f64 b z t))) (sqrt.f64 (*.f64 a (fma.f64 b z t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 b (*.f64 z a)) 3) (pow.f64 (*.f64 a t) 3)) (/.f64 1 (fma.f64 (*.f64 a t) (-.f64 (*.f64 a t) (*.f64 b (*.f64 z a))) (pow.f64 (*.f64 b (*.f64 z a)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 b (*.f64 z a)) 2) (pow.f64 (*.f64 a t) 2)) (/.f64 1 (*.f64 a (-.f64 (*.f64 b z) t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 b z t) a)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 a t) (-.f64 (*.f64 a t) (*.f64 b (*.f64 z a))) (pow.f64 (*.f64 b (*.f64 z a)) 2)) (+.f64 (pow.f64 (*.f64 b (*.f64 z a)) 3) (pow.f64 (*.f64 a t) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 a (-.f64 (*.f64 b z) t)) (-.f64 (pow.f64 (*.f64 b (*.f64 z a)) 2) (pow.f64 (*.f64 a t) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 b (*.f64 z a)) 3) (pow.f64 (*.f64 a t) 3)) (fma.f64 (*.f64 a t) (-.f64 (*.f64 a t) (*.f64 b (*.f64 z a))) (pow.f64 (*.f64 b (*.f64 z a)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 b (*.f64 z a)) 3) (pow.f64 (*.f64 a t) 3)) (+.f64 (pow.f64 (*.f64 a t) 2) (-.f64 (pow.f64 (*.f64 b (*.f64 z a)) 2) (*.f64 b (*.f64 (*.f64 z a) (*.f64 a t))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 b (*.f64 z a)) 2) (pow.f64 (*.f64 a t) 2)) (*.f64 a (-.f64 (*.f64 b z) t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 b (*.f64 z a)) 3) (pow.f64 (*.f64 a t) 3))) (neg.f64 (fma.f64 (*.f64 a t) (-.f64 (*.f64 a t) (*.f64 b (*.f64 z a))) (pow.f64 (*.f64 b (*.f64 z a)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 b (*.f64 z a)) 2) (pow.f64 (*.f64 a t) 2))) (neg.f64 (*.f64 a (-.f64 (*.f64 b z) t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (pow.f64 (*.f64 b (*.f64 z a)) 2)) (-.f64 (*.f64 a t) (*.f64 b (*.f64 z a))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (fma.f64 b z t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (fma.f64 b z t)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (fma.f64 b z t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (fma.f64 b z t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a (fma.f64 b z t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 a (fma.f64 b z t))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 a t) (-.f64 (*.f64 a t) (*.f64 b (*.f64 z a))) (pow.f64 (*.f64 b (*.f64 z a)) 2)) (+.f64 (pow.f64 (*.f64 b (*.f64 z a)) 3) (pow.f64 (*.f64 a t) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 a (-.f64 (*.f64 b z) t)) (-.f64 (pow.f64 (*.f64 b (*.f64 z a)) 2) (pow.f64 (*.f64 a t) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 a (fma.f64 b z t)))) 2)) (cbrt.f64 (log.f64 (*.f64 a (fma.f64 b z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 a (fma.f64 b z t))))) (sqrt.f64 (log.f64 (*.f64 a (fma.f64 b z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (fma.f64 b z t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a) (fma.f64 b z t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 a (fma.f64 b z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 b (*.f64 z a)))) (pow.f64 (exp.f64 a) t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 a) (*.f64 b z)) (+.f64 1 (expm1.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 b (*.f64 z a)))) (+.f64 1 (expm1.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a t))) (pow.f64 (exp.f64 a) (*.f64 b z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 a) t) (+.f64 1 (expm1.f64 (*.f64 b (*.f64 z a))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a t))) (+.f64 1 (expm1.f64 (*.f64 b (*.f64 z a))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (fma.f64 b z t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (fma.f64 b z t))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (fma.f64 b z t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (fma.f64 b z t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 a (fma.f64 b z t))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 a (fma.f64 b z t)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 a (fma.f64 b z t)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 a (fma.f64 b z t)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 a (fma.f64 b z t))) 1) 1))))) (#(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 z (*.f64 b a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b z) a (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 b z) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a t (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (*.f64 z a)) 1 (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t a (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a t) 1 (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 b (*.f64 z a)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a t) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a t)) (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (cbrt.f64 (*.f64 a t)) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) t) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 b z)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 b) 2) (*.f64 (cbrt.f64 b) (*.f64 z a)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 b (*.f64 z a))) (pow.f64 (cbrt.f64 (*.f64 b (*.f64 z a))) 2) (*.f64 a t))))) (#(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))) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 t t)) (*.f64 (cbrt.f64 t) a) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 b z) 2)) (*.f64 (cbrt.f64 (*.f64 b z)) a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) t) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 b z)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) (*.f64 z a)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 b (*.f64 z a))) (sqrt.f64 (*.f64 b (*.f64 z a))) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (*.f64 (sqrt.f64 t) a) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 b z)) (*.f64 (sqrt.f64 (*.f64 b z)) a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z a) b (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (cbrt.f64 (*.f64 t t))) (cbrt.f64 t) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 t)) (sqrt.f64 t) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (sqrt.f64 a)) (sqrt.f64 a) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 b z) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 b z) (sqrt.f64 a)) (sqrt.f64 a) (*.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 b z) 2))) (cbrt.f64 (*.f64 b z)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 (*.f64 b z))) (sqrt.f64 (*.f64 b z)) (*.f64 a t)))))) |
| 1× | egg-herbie |
| 230× | fma-neg_binary64 |
| 153× | fma-def_binary64 |
| 65× | associate-*l*_binary64 |
| 57× | cancel-sign-sub-inv_binary64 |
| 55× | unsub-neg_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 615 |
| 1 | 63 | 615 |
| 2 | 154 | 615 |
| 3 | 323 | 615 |
| 4 | 664 | 615 |
| 5 | 934 | 615 |
| 6 | 1054 | 615 |
| 7 | 1105 | 615 |
| 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 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 (+.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 -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 (*.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)) |
| 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 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 b z)) |
(*.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 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 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 (*.f64 z b)) |
(*.f64 (*.f64 a b) z) |
(*.f64 z (*.f64 a 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 (+.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 (+.f64 t (*.f64 b z)) a) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 a (fma.f64 z b t)) |
(*.f64 a (fma.f64 b z t)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.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 (*.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)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (fma.f64 z y (*.f64 z (*.f64 a b))) |
| ✓ | 6.5b | (*.f64 z (*.f64 a b)) |
Compiled 26 to 9 computations (65.4% saved)
21 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | inf | (*.f64 z (*.f64 a b)) |
| 1.0ms | z | @ | 0 | (fma.f64 z y (*.f64 z (*.f64 a b))) |
| 0.0ms | b | @ | -inf | (fma.f64 z y (*.f64 z (*.f64 a b))) |
| 0.0ms | z | @ | -inf | (fma.f64 z y (*.f64 z (*.f64 a b))) |
| 0.0ms | y | @ | inf | (fma.f64 z y (*.f64 z (*.f64 a b))) |
| 1× | batch-egg-rewrite |
| 790× | pow1_binary64 |
| 721× | add-log-exp_binary64 |
| 721× | log1p-expm1-u_binary64 |
| 721× | expm1-log1p-u_binary64 |
| 703× | add-exp-log_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 18 |
| 1 | 159 | 17 |
| 2 | 1946 | 17 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (*.f64 a b)) |
(fma.f64 z y (*.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 (pow.f64 (exp.f64 a) b) z))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (*.f64 a b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 z 3) (pow.f64 (*.f64 a b) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 z 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)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 a b)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z y) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 z y) 1) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 z (+.f64 y (*.f64 a b)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (+.f64 y (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 y (*.f64 a b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 z (+.f64 y (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 z (+.f64 y (*.f64 a b)))) (pow.f64 (cbrt.f64 (*.f64 z (+.f64 y (*.f64 a b)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 z (+.f64 y (*.f64 a b)))) 2) (cbrt.f64 (*.f64 z (+.f64 y (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 z (+.f64 y (*.f64 a b)))) (sqrt.f64 (*.f64 z (+.f64 y (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (*.f64 z (*.f64 a b)) 3)) (+.f64 (*.f64 (*.f64 z y) (*.f64 z y)) (-.f64 (pow.f64 (*.f64 z (*.f64 a b)) 2) (*.f64 (*.f64 z y) (*.f64 z (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 z y) (*.f64 z y)) (pow.f64 (*.f64 z (*.f64 a b)) 2)) (-.f64 (*.f64 z y) (*.f64 z (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (+.f64 y (*.f64 a b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (+.f64 y (*.f64 a b))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 z (+.f64 y (*.f64 a b)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 z (+.f64 y (*.f64 a b)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 z (+.f64 y (*.f64 a b))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 z (+.f64 y (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (+.f64 y (*.f64 a b))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z (+.f64 y (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 z (+.f64 y (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 z (+.f64 y (*.f64 a b))))))))) |
| 1× | egg-herbie |
| 181× | fma-neg_binary64 |
| 175× | fma-def_binary64 |
| 78× | associate-*l*_binary64 |
| 78× | cancel-sign-sub-inv_binary64 |
| 59× | distribute-rgt-in_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 21 | 615 |
| 1 | 53 | 615 |
| 2 | 120 | 615 |
| 3 | 287 | 615 |
| 4 | 637 | 615 |
| 5 | 923 | 615 |
| 6 | 1137 | 615 |
| 7 | 1192 | 615 |
| 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)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a 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 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))) |
(*.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 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))) |
| Outputs |
|---|
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 z b)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(*.f64 a (*.f64 b z)) |
(*.f64 (*.f64 a z) b) |
(*.f64 b (*.f64 a z)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z))) |
(*.f64 z (fma.f64 a b y)) |
Compiled 3541 to 1080 computations (69.5% saved)
21 alts after pruning (8 fresh and 13 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 281 | 3 | 284 |
| Fresh | 1 | 5 | 6 |
| Picked | 0 | 1 | 1 |
| Done | 1 | 12 | 13 |
| Total | 283 | 21 | 304 |
| Status | Error | Program |
|---|---|---|
| 34.2b | (+.f64 (*.f64 y z) (*.f64 a t)) | |
| ✓ | 47.9b | (*.f64 z y) |
| ✓ | 53.7b | (*.f64 a (*.f64 z b)) |
| ✓ | 12.0b | (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
| ✓ | 27.0b | (fma.f64 a t x) |
| 34.2b | (fma.f64 y z (*.f64 t a)) | |
| ✓ | 38.6b | (fma.f64 z y (*.f64 z (*.f64 a b))) |
| ✓ | 40.0b | (*.f64 (+.f64 t (*.f64 b z)) a) |
| ✓ | 26.1b | (fma.f64 z y x) |
| 53.1b | (*.f64 z (*.f64 a b)) | |
| ✓ | 40.0b | (+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a)) |
| ✓ | 30.2b | (+.f64 x (*.f64 (*.f64 a z) b)) |
| 40.7b | x | |
| 38.8b | (*.f64 z (fma.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (*.f64 a b)) y)) | |
| ✓ | 48.9b | (*.f64 a t) |
| 51.6b | (fma.f64 (*.f64 b (sqrt.f64 (*.f64 z a))) (sqrt.f64 (*.f64 z a)) (*.f64 z y)) | |
| ✓ | 26.1b | (+.f64 (*.f64 y z) x) |
| ✓ | 27.0b | (+.f64 (*.f64 a t) x) |
| 38.6b | (+.f64 (*.f64 z (*.f64 a b)) (*.f64 z y)) | |
| 52.4b | (/.f64 (*.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2)) a) (-.f64 t (*.f64 b z))) | |
| ✓ | 38.6b | (*.f64 z (+.f64 (*.f64 a b) y)) |
Compiled 275 to 186 computations (32.4% saved)
| Inputs |
|---|
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 x (*.f64 (*.f64 a z) b)) |
(+.f64 (*.f64 z (*.f64 a b)) (*.f64 z y)) |
(+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 z y) (*.f64 (*.f64 a z) b)) |
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(fma.f64 a t x) |
(fma.f64 z y x) |
(fma.f64 y z (*.f64 t a)) |
(fma.f64 z y (*.f64 z (*.f64 a b))) |
(fma.f64 y z (*.f64 b (*.f64 z a))) |
(+.f64 (fma.f64 a t x) (*.f64 (*.f64 a z) b)) |
(/.f64 (*.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2)) a) (-.f64 t (*.f64 b z))) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (pow.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) 2)) |
(fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) |
(fma.f64 (*.f64 b (sqrt.f64 (*.f64 z a))) (sqrt.f64 (*.f64 z a)) (*.f64 z y)) |
(*.f64 z (fma.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (*.f64 a b)) y)) |
| 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:
| 44.0ms | b |
| 42.0ms | a |
| 29.0ms | (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
| 17.0ms | t |
| 17.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 2.3b | 1 | x |
| 2.3b | 1 | y |
| 2.3b | 1 | z |
| 2.3b | 1 | t |
| 0.3b | 3 | a |
| 0.3b | 3 | b |
| 0.8b | 2 | (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
Compiled 314 to 113 computations (64% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 15.0ms | 5.321294804605996e+49 | 2.291514482049055e+59 |
| 25.0ms | -1.339609433722267e-28 | -8.793049879799823e-32 |
Compiled 69 to 45 computations (34.8% saved)
| Inputs |
|---|
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 x (*.f64 (*.f64 a z) b)) |
(+.f64 (*.f64 z (*.f64 a b)) (*.f64 z y)) |
(+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 z y) (*.f64 (*.f64 a z) b)) |
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b)) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
(fma.f64 a t x) |
(fma.f64 z y x) |
(fma.f64 y z (*.f64 t a)) |
(fma.f64 z y (*.f64 z (*.f64 a b))) |
(fma.f64 y z (*.f64 b (*.f64 z a))) |
(+.f64 (fma.f64 a t x) (*.f64 (*.f64 a z) b)) |
(/.f64 (*.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2)) a) (-.f64 t (*.f64 b z))) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (pow.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) 2)) |
| Outputs |
|---|
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
7 calls:
| 49.0ms | (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
| 27.0ms | t |
| 27.0ms | y |
| 27.0ms | x |
| 26.0ms | a |
| Error | Segments | Branch |
|---|---|---|
| 2.3b | 1 | x |
| 2.3b | 1 | y |
| 2.3b | 1 | z |
| 2.3b | 1 | t |
| 2.3b | 1 | a |
| 2.3b | 1 | b |
| 1.1b | 2 | (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) |
Compiled 276 to 102 computations (63% saved)
| 1× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | -inf | -2.621390280975625e+307 |
Compiled 30 to 21 computations (30% saved)
| Inputs |
|---|
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 x (*.f64 (*.f64 a z) b)) |
(+.f64 (*.f64 z (*.f64 a b)) (*.f64 z y)) |
(+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 (*.f64 z y) (*.f64 (*.f64 a z) b)) |
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b)) |
| Outputs |
|---|
(+.f64 x (*.f64 (*.f64 a z) b)) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) |
(+.f64 x (*.f64 (*.f64 a z) b)) |
6 calls:
| 84.0ms | t |
| 63.0ms | b |
| 59.0ms | z |
| 53.0ms | y |
| 30.0ms | a |
| Error | Segments | Branch |
|---|---|---|
| 10.6b | 2 | x |
| 8.5b | 5 | y |
| 10.8b | 2 | z |
| 9.4b | 5 | t |
| 10.8b | 2 | a |
| 8.2b | 3 | b |
Compiled 165 to 67 computations (59.4% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 346.0ms | 1.2263106806411766e+137 | 4.2478615573110285e+139 |
| 104.0ms | -7.356018476664899e+201 | -6.020971362577502e+200 |
Compiled 450 to 315 computations (30% saved)
| Inputs |
|---|
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 x (*.f64 (*.f64 a z) b)) |
(+.f64 (*.f64 z (*.f64 a b)) (*.f64 z y)) |
(+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a)) |
| Outputs |
|---|
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 z (*.f64 a b)) (*.f64 z y)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 (*.f64 a t) x) |
(+.f64 x (*.f64 (*.f64 a z) b)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 (*.f64 y z) x) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 (*.f64 y z) x) |
6 calls:
| 206.0ms | a |
| 109.0ms | y |
| 86.0ms | b |
| 53.0ms | x |
| 53.0ms | t |
| Error | Segments | Branch |
|---|---|---|
| 14.3b | 6 | x |
| 12.4b | 14 | y |
| 16.8b | 5 | z |
| 16.5b | 6 | t |
| 15.0b | 9 | a |
| 15.6b | 9 | b |
Compiled 138 to 64 computations (53.6% saved)
| 13× | binary-search |
| Time | Left | Right |
|---|---|---|
| 11.0ms | 1.0342931846376538e+175 | 2.148556980670452e+177 |
| 26.0ms | 3.4607709077389954e+50 | 1.5862650389194637e+63 |
| 28.0ms | 3.197448662331151e-48 | 5.5400541625674543e-42 |
| 25.0ms | 1.3632084438261095e-95 | 4.6411319112509385e-93 |
| 26.0ms | 2.0914738914617344e-154 | 5.365184045845183e-147 |
| 26.0ms | 1.642258752354168e-210 | 3.8185094695865536e-209 |
| 24.0ms | -3.026579384155218e-295 | -1.4243734026989194e-301 |
| 30.0ms | -2.4614057795450198e-30 | -8.003539096446326e-40 |
| 58.0ms | -6.532658349780051e-7 | -3.5977333230965354e-10 |
| 26.0ms | -9.649161352589814e+29 | -13126074009456126000.0 |
| 24.0ms | -2.850096598764501e+48 | -6.169503293607193e+46 |
| 143.0ms | -1.6278885841478657e+106 | -1.3676638541087003e+103 |
| 107.0ms | -1.1781739723675273e+157 | -1.2867408458862507e+151 |
Compiled 496 to 362 computations (27% saved)
| Inputs |
|---|
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 x (*.f64 (*.f64 a z) b)) |
| Outputs |
|---|
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 (*.f64 a t) x) |
(+.f64 x (*.f64 (*.f64 a z) b)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 (*.f64 y z) x) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 (*.f64 y z) x) |
6 calls:
| 105.0ms | y |
| 75.0ms | b |
| 68.0ms | a |
| 57.0ms | t |
| 48.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 14.3b | 6 | x |
| 12.4b | 14 | y |
| 16.8b | 5 | z |
| 16.5b | 6 | t |
| 15.0b | 9 | a |
| 15.6b | 9 | b |
Compiled 120 to 60 computations (50% saved)
| 13× | binary-search |
| Time | Left | Right |
|---|---|---|
| 10.0ms | 1.0342931846376538e+175 | 2.148556980670452e+177 |
| 26.0ms | 3.4607709077389954e+50 | 1.5862650389194637e+63 |
| 24.0ms | 3.197448662331151e-48 | 5.5400541625674543e-42 |
| 25.0ms | 1.3632084438261095e-95 | 4.6411319112509385e-93 |
| 24.0ms | 2.0914738914617344e-154 | 5.365184045845183e-147 |
| 24.0ms | 1.642258752354168e-210 | 3.8185094695865536e-209 |
| 24.0ms | -3.026579384155218e-295 | -1.4243734026989194e-301 |
| 25.0ms | -2.4614057795450198e-30 | -8.003539096446326e-40 |
| 24.0ms | -6.532658349780051e-7 | -3.5977333230965354e-10 |
| 27.0ms | -9.649161352589814e+29 | -13126074009456126000.0 |
| 26.0ms | -2.850096598764501e+48 | -6.169503293607193e+46 |
| 143.0ms | -1.6278885841478657e+106 | -1.3676638541087003e+103 |
| 109.0ms | -1.1781739723675273e+157 | -1.2867408458862507e+151 |
Compiled 480 to 354 computations (26.3% saved)
| Inputs |
|---|
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
| Outputs |
|---|
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 (*.f64 a t) x) |
(*.f64 (+.f64 t (*.f64 b z)) a) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 (*.f64 y z) x) |
6 calls:
| 85.0ms | y |
| 58.0ms | b |
| 42.0ms | z |
| 41.0ms | a |
| 28.0ms | t |
| Error | Segments | Branch |
|---|---|---|
| 17.2b | 3 | x |
| 14.7b | 12 | y |
| 17.0b | 5 | z |
| 17.5b | 3 | t |
| 16.1b | 6 | a |
| 20.6b | 7 | b |
Compiled 113 to 57 computations (49.6% saved)
| 11× | binary-search |
| Time | Left | Right |
|---|---|---|
| 12.0ms | 3.414514374726003e+168 | 7.693729197748967e+171 |
| 26.0ms | 4.789254785309711e+63 | 2.316151892410529e+88 |
| 25.0ms | 3.197448662331151e-48 | 5.5400541625674543e-42 |
| 25.0ms | 2.0914738914617344e-154 | 5.365184045845183e-147 |
| 25.0ms | 5.34070225723436e-199 | 1.4946016869069533e-197 |
| 25.0ms | -2.4614057795450198e-30 | -8.003539096446326e-40 |
| 26.0ms | -6.532658349780051e-7 | -3.5977333230965354e-10 |
| 26.0ms | -9.649161352589814e+29 | -13126074009456126000.0 |
| 25.0ms | -2.850096598764501e+48 | -6.169503293607193e+46 |
| 143.0ms | -1.6278885841478657e+106 | -1.3676638541087003e+103 |
| 107.0ms | -1.1781739723675273e+157 | -1.2867408458862507e+151 |
Compiled 480 to 354 computations (26.3% saved)
| Inputs |
|---|
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
| Outputs |
|---|
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(*.f64 z (+.f64 (*.f64 a b) y)) |
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 a t)) |
(+.f64 (*.f64 y z) x) |
6 calls:
| 168.0ms | x |
| 133.0ms | y |
| 36.0ms | b |
| 36.0ms | z |
| 31.0ms | a |
| Error | Segments | Branch |
|---|---|---|
| 17.2b | 3 | x |
| 16.1b | 10 | y |
| 17.0b | 5 | z |
| 17.5b | 3 | t |
| 18.7b | 5 | a |
| 21.9b | 5 | b |
Compiled 99 to 54 computations (45.5% saved)
| 9× | binary-search |
| Time | Left | Right |
|---|---|---|
| 22.0ms | 3.414514374726003e+168 | 7.693729197748967e+171 |
| 185.0ms | 4.789254785309711e+63 | 2.316151892410529e+88 |
| 67.0ms | 3.197448662331151e-48 | 5.5400541625674543e-42 |
| 169.0ms | -2.4614057795450198e-30 | -8.003539096446326e-40 |
| 202.0ms | -6.532658349780051e-7 | -3.5977333230965354e-10 |
| 81.0ms | -9.649161352589814e+29 | -13126074009456126000.0 |
| 52.0ms | -2.850096598764501e+48 | -6.169503293607193e+46 |
| 703.0ms | -1.6278885841478657e+106 | -1.3676638541087003e+103 |
| 482.0ms | -1.1781739723675273e+157 | -1.2867408458862507e+151 |
Compiled 480 to 354 computations (26.3% saved)
| Inputs |
|---|
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(*.f64 z (*.f64 a b)) |
(+.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:
| 46.0ms | y |
| 34.0ms | b |
| 29.0ms | z |
| 24.0ms | t |
| 19.0ms | a |
| Error | Segments | Branch |
|---|---|---|
| 17.2b | 3 | x |
| 18.1b | 7 | y |
| 18.8b | 5 | z |
| 17.5b | 3 | t |
| 19.9b | 3 | a |
| 22.4b | 5 | b |
Compiled 92 to 52 computations (43.5% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 25.0ms | 2.1315027984822803e-48 | 3.4992314394990585e-47 |
| 24.0ms | -8.415196606629423e-60 | -7.032403783349487e-65 |
Compiled 30 to 21 computations (30% saved)
| Inputs |
|---|
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) x) |
| Outputs |
|---|
(+.f64 (*.f64 a t) x) |
(+.f64 (*.f64 y z) x) |
(+.f64 (*.f64 a t) x) |
6 calls:
| 97.0ms | y |
| 39.0ms | x |
| 22.0ms | t |
| 22.0ms | a |
| 22.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 22.1b | 6 | x |
| 18.1b | 7 | y |
| 19.8b | 3 | z |
| 17.5b | 3 | t |
| 19.9b | 3 | a |
| 24.5b | 3 | b |
Compiled 85 to 51 computations (40% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 25.0ms | 9.49112444472604e+81 | 1.996277162726662e+82 |
| 26.0ms | -1.2975718225526102e-61 | -1.9289392763300545e-64 |
Compiled 30 to 21 computations (30% saved)
| Inputs |
|---|
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
(+.f64 (*.f64 y z) x) |
| Outputs |
|---|
(+.f64 (*.f64 y z) x) |
(*.f64 a t) |
(+.f64 (*.f64 y z) x) |
(*.f64 z (*.f64 a b)) |
(+.f64 (*.f64 y z) x) |
6 calls:
| 106.0ms | x |
| 45.0ms | y |
| 28.0ms | t |
| 28.0ms | z |
| 21.0ms | a |
| Error | Segments | Branch |
|---|---|---|
| 23.6b | 5 | x |
| 22.9b | 5 | y |
| 24.4b | 3 | z |
| 23.2b | 3 | t |
| 23.6b | 3 | a |
| 25.0b | 3 | b |
Compiled 70 to 50 computations (28.6% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 26.0ms | 2.0914738914617344e-154 | 5.365184045845183e-147 |
| 31.0ms | 5.575580087571275e-236 | 1.8639483652505727e-231 |
| 30.0ms | -1.4243734026989194e-301 | -6.517684206717604e-304 |
| 52.0ms | -1.398725624691463e-261 | -4.355546725045903e-273 |
Compiled 30 to 21 computations (30% saved)
| Inputs |
|---|
x |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 z (*.f64 a b)) |
(*.f64 a (*.f64 z b)) |
| Outputs |
|---|
x |
(*.f64 z y) |
(*.f64 a t) |
(*.f64 z y) |
(*.f64 a t) |
x |
(*.f64 z y) |
x |
6 calls:
| 51.0ms | y |
| 33.0ms | z |
| 32.0ms | x |
| 29.0ms | a |
| 26.0ms | t |
| Error | Segments | Branch |
|---|---|---|
| 29.0b | 8 | x |
| 29.8b | 11 | y |
| 33.6b | 7 | z |
| 33.7b | 6 | t |
| 32.8b | 7 | a |
| 37.3b | 5 | b |
Compiled 65 to 48 computations (26.2% saved)
| 7× | binary-search |
| Time | Left | Right |
|---|---|---|
| 26.0ms | 1.097639541366319e+37 | 6.36172811179313e+37 |
| 26.0ms | 275213.3053473427 | 4704260344744.212 |
| 31.0ms | 2.1315027984822803e-48 | 3.4992314394990585e-47 |
| 25.0ms | 1.4310916772473616e-123 | 8.893309057421735e-111 |
| 30.0ms | 4.882101094167321e-173 | 9.222504869016193e-164 |
| 27.0ms | 3.603995361769476e-243 | 1.6078641395559955e-242 |
| 25.0ms | -2.382997805081848e-88 | -7.171897816436305e-90 |
Compiled 30 to 21 computations (30% saved)
Total -30.0b remaining (-92.6%)
Threshold costs -30.0b (-92.6%)
| Inputs |
|---|
x |
(*.f64 a t) |
| Outputs |
|---|
x |
(*.f64 a t) |
x |
6 calls:
| 19.0ms | b |
| 18.0ms | t |
| 15.0ms | y |
| 10.0ms | a |
| 9.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 32.4b | 3 | x |
| 37.9b | 5 | y |
| 38.0b | 3 | z |
| 35.7b | 5 | t |
| 36.1b | 3 | a |
| 38.8b | 3 | b |
Compiled 52 to 43 computations (17.3% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 26.0ms | 3.4992314394990585e-47 | 1.5046792613224258e-35 |
| 25.0ms | -4.293963523140166e+28 | -2.79449221711304e+25 |
Compiled 30 to 21 computations (30% saved)
| 1× | egg-herbie |
| 10× | +-commutative_binary64 |
| 9× | *-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 160 | 1059 |
| 1 | 183 | 1059 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(if (<=.f64 a -5974857729397635/44601490397061246283071436545296723011960832) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) (if (<=.f64 a 10000000000000000102350670204085511496304388135324745728) (+.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 (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) -inf.0) (*.f64 (+.f64 t (*.f64 b z)) a) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))) |
(if (<=.f64 b -7199999999999999510135827607889849419147261828412232917921729792184628409244494679855513716382501852046779734152725270917777075916307531036587102077215164629039469428316154495163479890322705133307166720) (+.f64 x (*.f64 (*.f64 a z) b)) (if (<=.f64 b 41999999999999997413009811805115301605962679590477452241089066117180058581856324166413307838496476381590616562649833208755964456496732831744) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 x (*.f64 (*.f64 a z) b)))) |
(if (<=.f64 y -11600000000000000416683004322616204580618527334180452313380363066993611545190839309395561110808362084061639459382887635937097769888440089575382670156775817216) (+.f64 (*.f64 y z) x) (if (<=.f64 y -14000000000000000424678040328114676031329170299169360236504169842269484491227024097984903641541224955904) (+.f64 (*.f64 a t) x) (if (<=.f64 y -2850096598764501081606054064123176211553923891200) (+.f64 (*.f64 z (*.f64 a b)) (*.f64 z y)) (if (<=.f64 y -964916135258981384475912437760) (+.f64 (*.f64 a t) x) (if (<=.f64 y -192810042718999/295147905179352825856) (+.f64 (*.f64 y z) x) (if (<=.f64 y -3597348576940793856/1461501637330902918203684832716283019655932542976) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 y -3482151027847457/11505236063118821809467553221049758295155052665230762065499525194094891251552061640493342548634082305351687288311769174890162545204122663839542235560926343960177145179191391057683342054479750023644997308933440369205641643669917624414330439074612943178454432683813523087356623740062701843509462805095950344781824) (+.f64 (*.f64 a t) x) (if (<=.f64 y 1215761387476461/740298315191606967520227188330889966610377319868419938630605715764070011466206019559325413145373572325939050053182159998975553533608824916574615132828322000124194610605645134711392062011527273571616649243219599128195212771328) (+.f64 x (*.f64 (*.f64 a z) b)) (if (<=.f64 y 3157257551548749/15095849699286165408966218323953075563667684881665761713504825200982496649568595408344506900710635070165873500123055379599082338519699170530245737005730784174597581307904) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 y 8195975883577521/601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353856) (+.f64 (*.f64 y z) x) (if (<=.f64 y 5261416345666503/1645504557321206042154969182557350504982735865633579863348609024) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 y 346077090773899542490854951373010071330286691418112) (+.f64 (*.f64 y z) x) (if (<=.f64 y 1000000000000000007448980502074319891441994938583153872359642541312639852467816160263719876373907058408465602602784646283725433832809773183090569241116238837096538897360439214080) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x)))))))))))))) |
(if (<=.f64 y -11600000000000000416683004322616204580618527334180452313380363066993611545190839309395561110808362084061639459382887635937097769888440089575382670156775817216) (+.f64 (*.f64 y z) x) (if (<=.f64 y -14000000000000000424678040328114676031329170299169360236504169842269484491227024097984903641541224955904) (+.f64 (*.f64 a t) x) (if (<=.f64 y -2850096598764501081606054064123176211553923891200) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 y -964916135258981384475912437760) (+.f64 (*.f64 a t) x) (if (<=.f64 y -192810042718999/295147905179352825856) (+.f64 (*.f64 y z) x) (if (<=.f64 y -3597348576940793856/1461501637330902918203684832716283019655932542976) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 y -3482151027847457/11505236063118821809467553221049758295155052665230762065499525194094891251552061640493342548634082305351687288311769174890162545204122663839542235560926343960177145179191391057683342054479750023644997308933440369205641643669917624414330439074612943178454432683813523087356623740062701843509462805095950344781824) (+.f64 (*.f64 a t) x) (if (<=.f64 y 1215761387476461/740298315191606967520227188330889966610377319868419938630605715764070011466206019559325413145373572325939050053182159998975553533608824916574615132828322000124194610605645134711392062011527273571616649243219599128195212771328) (+.f64 x (*.f64 (*.f64 a z) b)) (if (<=.f64 y 3157257551548749/15095849699286165408966218323953075563667684881665761713504825200982496649568595408344506900710635070165873500123055379599082338519699170530245737005730784174597581307904) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 y 8195975883577521/601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353856) (+.f64 (*.f64 y z) x) (if (<=.f64 y 5261416345666503/1645504557321206042154969182557350504982735865633579863348609024) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 y 346077090773899542490854951373010071330286691418112) (+.f64 (*.f64 y z) x) (if (<=.f64 y 1000000000000000007448980502074319891441994938583153872359642541312639852467816160263719876373907058408465602602784646283725433832809773183090569241116238837096538897360439214080) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x)))))))))))))) |
(if (<=.f64 y -11600000000000000416683004322616204580618527334180452313380363066993611545190839309395561110808362084061639459382887635937097769888440089575382670156775817216) (+.f64 (*.f64 y z) x) (if (<=.f64 y -14000000000000000424678040328114676031329170299169360236504169842269484491227024097984903641541224955904) (+.f64 (*.f64 a t) x) (if (<=.f64 y -2850096598764501081606054064123176211553923891200) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 y -964916135258981384475912437760) (+.f64 (*.f64 a t) x) (if (<=.f64 y -192810042718999/295147905179352825856) (+.f64 (*.f64 y z) x) (if (<=.f64 y -3597348576940793856/1461501637330902918203684832716283019655932542976) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 y 5753409471029021/10772758326371068942829547280138503507047095916181860064252479289484763452000421523688789066296501148112861120217452989876263797248376430311685764650295051980708298078471054537096527376147092924971608579554880258048) (+.f64 (*.f64 a t) x) (if (<=.f64 y 3157257551548749/15095849699286165408966218323953075563667684881665761713504825200982496649568595408344506900710635070165873500123055379599082338519699170530245737005730784174597581307904) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 y 5261416345666503/1645504557321206042154969182557350504982735865633579863348609024) (+.f64 (*.f64 a t) x) (if (<=.f64 y 4789254785309711105719333942687037386045251816245552474987954176) (+.f64 (*.f64 y z) x) (if (<=.f64 y 100000000000000003441905430931245280917713770297417747470693647675065097962631447553892265814744827318497179085147422915077831721209019419643357959500300321574675254607872) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x)))))))))))) |
(if (<=.f64 y -11600000000000000416683004322616204580618527334180452313380363066993611545190839309395561110808362084061639459382887635937097769888440089575382670156775817216) (+.f64 (*.f64 y z) x) (if (<=.f64 y -14000000000000000424678040328114676031329170299169360236504169842269484491227024097984903641541224955904) (+.f64 (*.f64 a t) x) (if (<=.f64 y -2850096598764501081606054064123176211553923891200) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 y -964916135258981384475912437760) (+.f64 (*.f64 a t) x) (if (<=.f64 y -192810042718999/295147905179352825856) (+.f64 (*.f64 y z) x) (if (<=.f64 y -3597348576940793856/1461501637330902918203684832716283019655932542976) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 y 5261416345666503/1645504557321206042154969182557350504982735865633579863348609024) (+.f64 (*.f64 a t) x) (if (<=.f64 y 4789254785309711105719333942687037386045251816245552474987954176) (+.f64 (*.f64 y z) x) (if (<=.f64 y 100000000000000003441905430931245280917713770297417747470693647675065097962631447553892265814744827318497179085147422915077831721209019419643357959500300321574675254607872) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x)))))))))) |
(if (<=.f64 x -974413196424394624/115792089237316195423570985008687907853269984665640564039457584007913129639936) (+.f64 (*.f64 a t) x) (if (<=.f64 x 7014795137690993/3291009114642412084309938365114701009965471731267159726697218048) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x))) |
(if (<=.f64 t -15024855226883886/115792089237316195423570985008687907853269984665640564039457584007913129639936) (+.f64 (*.f64 a t) x) (if (<=.f64 t 9491124444726039447026712060697262712872437693608732321521524927449372698408386560) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 a t) x))) |
(if (<=.f64 y -3173719260005729792/2269007733883335972287082669296112915239349672942191252221331572442536403137824056312817862695551072066953619064625508194663368599769448406663254670871573830845597595897613333042429214224697474472410882236254024057110212260250671521235807709272244389361641091086035023229622419456) (+.f64 (*.f64 y z) x) (if (<=.f64 y -109976343634514864/772103322247736428651791941524190166662432288223808740069966728315087660095197093551484618001698015194652854401843307157096133183997320086925557708514169730840749451738610692460887556999562135090788908685580234789131193097780962748024381086918485856402626253175196722230275782071039209488625822100242638638716536487936) (*.f64 a t) (if (<=.f64 y 3193570048354319/57277807836949922408837567867349676981443478344341305058882899404622128010705808318690568531649256750858719018437999440148793721514146753400890052083129159241025748615958424204533602522957957552490080016463490494951861107213475167230717574212948590592) (+.f64 (*.f64 y z) x) (if (<=.f64 y 3157257551548749/15095849699286165408966218323953075563667684881665761713504825200982496649568595408344506900710635070165873500123055379599082338519699170530245737005730784174597581307904) (*.f64 z (*.f64 a b)) (+.f64 (*.f64 y z) x))))) |
(if (<=.f64 x -2186160867145038592/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) x (if (<=.f64 x 443302802709191488/123003155723136208567847447683223664415731869180715065944930703618254955521953492303010368693540149343822709050322214299552689203876695953600699775494388206142090885899729347827083318884583758435450548517566916626912548274908112766882031433928533568160966639616) (*.f64 z y) (if (<=.f64 x 849696973089857/17404329748619824289860426352311291980336107281679382059399385520550823849520406290076876874227033232798165548605325345270876711736203910820971150664223534348495463082734165001231667298304) (*.f64 a t) (if (<=.f64 x 2130273994835011/1488565707357402911845015158554633286356257506687627387456491927921949262056238946972039271861787782268441644249633132407878864135402815488) (*.f64 z y) (if (<=.f64 x 7014795137690993/3291009114642412084309938365114701009965471731267159726697218048) (*.f64 a t) (if (<=.f64 x 4728128583563595/17179869184) x (if (<=.f64 x 10976395413663188858883279139146563584) (*.f64 z y) x))))))) |
(if (<=.f64 x -42939635231401660913996005376) x (if (<=.f64 x 7197501601021681/205688069665150755269371147819668813122841983204197482918576128) (*.f64 a t) x)) |
x |
| Outputs |
|---|
(if (<=.f64 a -5974857729397635/44601490397061246283071436545296723011960832) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) (if (<=.f64 a 10000000000000000102350670204085511496304388135324745728) (+.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 -5974857729397635/44601490397061246283071436545296723011960832) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) (if (<=.f64 a 10000000000000000102350670204085511496304388135324745728) (+.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 (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) -inf.0) (*.f64 (+.f64 t (*.f64 b z)) a) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))) |
(if (<=.f64 (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 y z))) (*.f64 b (*.f64 a z))) -inf.0) (*.f64 a (+.f64 t (*.f64 z b))) (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 y z))) (*.f64 b (*.f64 a z)))) |
(if (<=.f64 b -7199999999999999510135827607889849419147261828412232917921729792184628409244494679855513716382501852046779734152725270917777075916307531036587102077215164629039469428316154495163479890322705133307166720) (+.f64 x (*.f64 (*.f64 a z) b)) (if (<=.f64 b 41999999999999997413009811805115301605962679590477452241089066117180058581856324166413307838496476381590616562649833208755964456496732831744) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 x (*.f64 (*.f64 a z) b)))) |
(if (<=.f64 b -7199999999999999510135827607889849419147261828412232917921729792184628409244494679855513716382501852046779734152725270917777075916307531036587102077215164629039469428316154495163479890322705133307166720) (+.f64 x (*.f64 b (*.f64 a z))) (if (<=.f64 b 41999999999999997413009811805115301605962679590477452241089066117180058581856324166413307838496476381590616562649833208755964456496732831744) (+.f64 (+.f64 x (*.f64 a t)) (*.f64 y z)) (+.f64 x (*.f64 b (*.f64 a z))))) |
(if (<=.f64 y -11600000000000000416683004322616204580618527334180452313380363066993611545190839309395561110808362084061639459382887635937097769888440089575382670156775817216) (+.f64 (*.f64 y z) x) (if (<=.f64 y -14000000000000000424678040328114676031329170299169360236504169842269484491227024097984903641541224955904) (+.f64 (*.f64 a t) x) (if (<=.f64 y -2850096598764501081606054064123176211553923891200) (+.f64 (*.f64 z (*.f64 a b)) (*.f64 z y)) (if (<=.f64 y -964916135258981384475912437760) (+.f64 (*.f64 a t) x) (if (<=.f64 y -192810042718999/295147905179352825856) (+.f64 (*.f64 y z) x) (if (<=.f64 y -3597348576940793856/1461501637330902918203684832716283019655932542976) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 y -3482151027847457/11505236063118821809467553221049758295155052665230762065499525194094891251552061640493342548634082305351687288311769174890162545204122663839542235560926343960177145179191391057683342054479750023644997308933440369205641643669917624414330439074612943178454432683813523087356623740062701843509462805095950344781824) (+.f64 (*.f64 a t) x) (if (<=.f64 y 1215761387476461/740298315191606967520227188330889966610377319868419938630605715764070011466206019559325413145373572325939050053182159998975553533608824916574615132828322000124194610605645134711392062011527273571616649243219599128195212771328) (+.f64 x (*.f64 (*.f64 a z) b)) (if (<=.f64 y 3157257551548749/15095849699286165408966218323953075563667684881665761713504825200982496649568595408344506900710635070165873500123055379599082338519699170530245737005730784174597581307904) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 y 8195975883577521/601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353856) (+.f64 (*.f64 y z) x) (if (<=.f64 y 5261416345666503/1645504557321206042154969182557350504982735865633579863348609024) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 y 346077090773899542490854951373010071330286691418112) (+.f64 (*.f64 y z) x) (if (<=.f64 y 1000000000000000007448980502074319891441994938583153872359642541312639852467816160263719876373907058408465602602784646283725433832809773183090569241116238837096538897360439214080) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x)))))))))))))) |
(if (<=.f64 y -11600000000000000416683004322616204580618527334180452313380363066993611545190839309395561110808362084061639459382887635937097769888440089575382670156775817216) (+.f64 x (*.f64 y z)) (if (<=.f64 y -14000000000000000424678040328114676031329170299169360236504169842269484491227024097984903641541224955904) (+.f64 x (*.f64 a t)) (if (<=.f64 y -2850096598764501081606054064123176211553923891200) (+.f64 (*.f64 z (*.f64 a b)) (*.f64 y z)) (if (<=.f64 y -964916135258981384475912437760) (+.f64 x (*.f64 a t)) (if (<=.f64 y -192810042718999/295147905179352825856) (+.f64 x (*.f64 y z)) (if (<=.f64 y -439129464958593/178405961588244985132285746181186892047843328) (*.f64 z (+.f64 y (*.f64 a b))) (if (<=.f64 y -3482151027847457/11505236063118821809467553221049758295155052665230762065499525194094891251552061640493342548634082305351687288311769174890162545204122663839542235560926343960177145179191391057683342054479750023644997308933440369205641643669917624414330439074612943178454432683813523087356623740062701843509462805095950344781824) (+.f64 x (*.f64 a t)) (if (<=.f64 y 1215761387476461/740298315191606967520227188330889966610377319868419938630605715764070011466206019559325413145373572325939050053182159998975553533608824916574615132828322000124194610605645134711392062011527273571616649243219599128195212771328) (+.f64 x (*.f64 b (*.f64 a z))) (if (<=.f64 y 3157257551548749/15095849699286165408966218323953075563667684881665761713504825200982496649568595408344506900710635070165873500123055379599082338519699170530245737005730784174597581307904) (*.f64 a (+.f64 t (*.f64 z b))) (if (<=.f64 y 8195975883577521/601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353856) (+.f64 x (*.f64 y z)) (if (<=.f64 y 5261416345666503/1645504557321206042154969182557350504982735865633579863348609024) (*.f64 a (+.f64 t (*.f64 z b))) (if (<=.f64 y 346077090773899542490854951373010071330286691418112) (+.f64 x (*.f64 y z)) (if (<=.f64 y 1000000000000000007448980502074319891441994938583153872359642541312639852467816160263719876373907058408465602602784646283725433832809773183090569241116238837096538897360439214080) (+.f64 (*.f64 a t) (*.f64 y z)) (+.f64 x (*.f64 y z))))))))))))))) |
(if (<=.f64 y -11600000000000000416683004322616204580618527334180452313380363066993611545190839309395561110808362084061639459382887635937097769888440089575382670156775817216) (+.f64 (*.f64 y z) x) (if (<=.f64 y -14000000000000000424678040328114676031329170299169360236504169842269484491227024097984903641541224955904) (+.f64 (*.f64 a t) x) (if (<=.f64 y -2850096598764501081606054064123176211553923891200) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 y -964916135258981384475912437760) (+.f64 (*.f64 a t) x) (if (<=.f64 y -192810042718999/295147905179352825856) (+.f64 (*.f64 y z) x) (if (<=.f64 y -3597348576940793856/1461501637330902918203684832716283019655932542976) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 y -3482151027847457/11505236063118821809467553221049758295155052665230762065499525194094891251552061640493342548634082305351687288311769174890162545204122663839542235560926343960177145179191391057683342054479750023644997308933440369205641643669917624414330439074612943178454432683813523087356623740062701843509462805095950344781824) (+.f64 (*.f64 a t) x) (if (<=.f64 y 1215761387476461/740298315191606967520227188330889966610377319868419938630605715764070011466206019559325413145373572325939050053182159998975553533608824916574615132828322000124194610605645134711392062011527273571616649243219599128195212771328) (+.f64 x (*.f64 (*.f64 a z) b)) (if (<=.f64 y 3157257551548749/15095849699286165408966218323953075563667684881665761713504825200982496649568595408344506900710635070165873500123055379599082338519699170530245737005730784174597581307904) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 y 8195975883577521/601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353856) (+.f64 (*.f64 y z) x) (if (<=.f64 y 5261416345666503/1645504557321206042154969182557350504982735865633579863348609024) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 y 346077090773899542490854951373010071330286691418112) (+.f64 (*.f64 y z) x) (if (<=.f64 y 1000000000000000007448980502074319891441994938583153872359642541312639852467816160263719876373907058408465602602784646283725433832809773183090569241116238837096538897360439214080) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x)))))))))))))) |
(if (<=.f64 y -11600000000000000416683004322616204580618527334180452313380363066993611545190839309395561110808362084061639459382887635937097769888440089575382670156775817216) (+.f64 x (*.f64 y z)) (if (<=.f64 y -14000000000000000424678040328114676031329170299169360236504169842269484491227024097984903641541224955904) (+.f64 x (*.f64 a t)) (if (<=.f64 y -2850096598764501081606054064123176211553923891200) (*.f64 z (+.f64 y (*.f64 a b))) (if (<=.f64 y -964916135258981384475912437760) (+.f64 x (*.f64 a t)) (if (<=.f64 y -192810042718999/295147905179352825856) (+.f64 x (*.f64 y z)) (if (<=.f64 y -439129464958593/178405961588244985132285746181186892047843328) (*.f64 z (+.f64 y (*.f64 a b))) (if (<=.f64 y -3482151027847457/11505236063118821809467553221049758295155052665230762065499525194094891251552061640493342548634082305351687288311769174890162545204122663839542235560926343960177145179191391057683342054479750023644997308933440369205641643669917624414330439074612943178454432683813523087356623740062701843509462805095950344781824) (+.f64 x (*.f64 a t)) (if (<=.f64 y 1215761387476461/740298315191606967520227188330889966610377319868419938630605715764070011466206019559325413145373572325939050053182159998975553533608824916574615132828322000124194610605645134711392062011527273571616649243219599128195212771328) (+.f64 x (*.f64 b (*.f64 a z))) (if (<=.f64 y 3157257551548749/15095849699286165408966218323953075563667684881665761713504825200982496649568595408344506900710635070165873500123055379599082338519699170530245737005730784174597581307904) (*.f64 a (+.f64 t (*.f64 z b))) (if (<=.f64 y 8195975883577521/601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353856) (+.f64 x (*.f64 y z)) (if (<=.f64 y 5261416345666503/1645504557321206042154969182557350504982735865633579863348609024) (*.f64 a (+.f64 t (*.f64 z b))) (if (<=.f64 y 346077090773899542490854951373010071330286691418112) (+.f64 x (*.f64 y z)) (if (<=.f64 y 1000000000000000007448980502074319891441994938583153872359642541312639852467816160263719876373907058408465602602784646283725433832809773183090569241116238837096538897360439214080) (+.f64 (*.f64 a t) (*.f64 y z)) (+.f64 x (*.f64 y z))))))))))))))) |
(if (<=.f64 y -11600000000000000416683004322616204580618527334180452313380363066993611545190839309395561110808362084061639459382887635937097769888440089575382670156775817216) (+.f64 (*.f64 y z) x) (if (<=.f64 y -14000000000000000424678040328114676031329170299169360236504169842269484491227024097984903641541224955904) (+.f64 (*.f64 a t) x) (if (<=.f64 y -2850096598764501081606054064123176211553923891200) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 y -964916135258981384475912437760) (+.f64 (*.f64 a t) x) (if (<=.f64 y -192810042718999/295147905179352825856) (+.f64 (*.f64 y z) x) (if (<=.f64 y -3597348576940793856/1461501637330902918203684832716283019655932542976) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 y 5753409471029021/10772758326371068942829547280138503507047095916181860064252479289484763452000421523688789066296501148112861120217452989876263797248376430311685764650295051980708298078471054537096527376147092924971608579554880258048) (+.f64 (*.f64 a t) x) (if (<=.f64 y 3157257551548749/15095849699286165408966218323953075563667684881665761713504825200982496649568595408344506900710635070165873500123055379599082338519699170530245737005730784174597581307904) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 y 5261416345666503/1645504557321206042154969182557350504982735865633579863348609024) (+.f64 (*.f64 a t) x) (if (<=.f64 y 4789254785309711105719333942687037386045251816245552474987954176) (+.f64 (*.f64 y z) x) (if (<=.f64 y 100000000000000003441905430931245280917713770297417747470693647675065097962631447553892265814744827318497179085147422915077831721209019419643357959500300321574675254607872) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x)))))))))))) |
(if (<=.f64 y -11600000000000000416683004322616204580618527334180452313380363066993611545190839309395561110808362084061639459382887635937097769888440089575382670156775817216) (+.f64 x (*.f64 y z)) (if (<=.f64 y -14000000000000000424678040328114676031329170299169360236504169842269484491227024097984903641541224955904) (+.f64 x (*.f64 a t)) (if (<=.f64 y -2850096598764501081606054064123176211553923891200) (*.f64 z (+.f64 y (*.f64 a b))) (if (<=.f64 y -964916135258981384475912437760) (+.f64 x (*.f64 a t)) (if (<=.f64 y -192810042718999/295147905179352825856) (+.f64 x (*.f64 y z)) (if (<=.f64 y -439129464958593/178405961588244985132285746181186892047843328) (*.f64 z (+.f64 y (*.f64 a b))) (if (<=.f64 y 5753409471029021/10772758326371068942829547280138503507047095916181860064252479289484763452000421523688789066296501148112861120217452989876263797248376430311685764650295051980708298078471054537096527376147092924971608579554880258048) (+.f64 x (*.f64 a t)) (if (<=.f64 y 3157257551548749/15095849699286165408966218323953075563667684881665761713504825200982496649568595408344506900710635070165873500123055379599082338519699170530245737005730784174597581307904) (*.f64 a (+.f64 t (*.f64 z b))) (if (<=.f64 y 5261416345666503/1645504557321206042154969182557350504982735865633579863348609024) (+.f64 x (*.f64 a t)) (if (<=.f64 y 4789254785309711105719333942687037386045251816245552474987954176) (+.f64 x (*.f64 y z)) (if (<=.f64 y 100000000000000003441905430931245280917713770297417747470693647675065097962631447553892265814744827318497179085147422915077831721209019419643357959500300321574675254607872) (+.f64 (*.f64 a t) (*.f64 y z)) (+.f64 x (*.f64 y z))))))))))))) |
(if (<=.f64 y -11600000000000000416683004322616204580618527334180452313380363066993611545190839309395561110808362084061639459382887635937097769888440089575382670156775817216) (+.f64 (*.f64 y z) x) (if (<=.f64 y -14000000000000000424678040328114676031329170299169360236504169842269484491227024097984903641541224955904) (+.f64 (*.f64 a t) x) (if (<=.f64 y -2850096598764501081606054064123176211553923891200) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 y -964916135258981384475912437760) (+.f64 (*.f64 a t) x) (if (<=.f64 y -192810042718999/295147905179352825856) (+.f64 (*.f64 y z) x) (if (<=.f64 y -3597348576940793856/1461501637330902918203684832716283019655932542976) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 y 5261416345666503/1645504557321206042154969182557350504982735865633579863348609024) (+.f64 (*.f64 a t) x) (if (<=.f64 y 4789254785309711105719333942687037386045251816245552474987954176) (+.f64 (*.f64 y z) x) (if (<=.f64 y 100000000000000003441905430931245280917713770297417747470693647675065097962631447553892265814744827318497179085147422915077831721209019419643357959500300321574675254607872) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x)))))))))) |
(if (<=.f64 y -11600000000000000416683004322616204580618527334180452313380363066993611545190839309395561110808362084061639459382887635937097769888440089575382670156775817216) (+.f64 x (*.f64 y z)) (if (<=.f64 y -14000000000000000424678040328114676031329170299169360236504169842269484491227024097984903641541224955904) (+.f64 x (*.f64 a t)) (if (<=.f64 y -2850096598764501081606054064123176211553923891200) (*.f64 z (+.f64 y (*.f64 a b))) (if (<=.f64 y -964916135258981384475912437760) (+.f64 x (*.f64 a t)) (if (<=.f64 y -192810042718999/295147905179352825856) (+.f64 x (*.f64 y z)) (if (<=.f64 y -439129464958593/178405961588244985132285746181186892047843328) (*.f64 z (+.f64 y (*.f64 a b))) (if (<=.f64 y 5261416345666503/1645504557321206042154969182557350504982735865633579863348609024) (+.f64 x (*.f64 a t)) (if (<=.f64 y 4789254785309711105719333942687037386045251816245552474987954176) (+.f64 x (*.f64 y z)) (if (<=.f64 y 100000000000000003441905430931245280917713770297417747470693647675065097962631447553892265814744827318497179085147422915077831721209019419643357959500300321574675254607872) (+.f64 (*.f64 a t) (*.f64 y z)) (+.f64 x (*.f64 y z))))))))))) |
(if (<=.f64 x -974413196424394624/115792089237316195423570985008687907853269984665640564039457584007913129639936) (+.f64 (*.f64 a t) x) (if (<=.f64 x 7014795137690993/3291009114642412084309938365114701009965471731267159726697218048) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x))) |
(if (<=.f64 x -7612603097065583/904625697166532776746648320380374280103671755200316906558262375061821325312) (+.f64 x (*.f64 a t)) (if (<=.f64 x 7014795137690993/3291009114642412084309938365114701009965471731267159726697218048) (+.f64 (*.f64 a t) (*.f64 y z)) (+.f64 x (*.f64 y z)))) |
(if (<=.f64 t -15024855226883886/115792089237316195423570985008687907853269984665640564039457584007913129639936) (+.f64 (*.f64 a t) x) (if (<=.f64 t 9491124444726039447026712060697262712872437693608732321521524927449372698408386560) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 a t) x))) |
(if (<=.f64 t -7512427613441943/57896044618658097711785492504343953926634992332820282019728792003956564819968) (+.f64 x (*.f64 a t)) (if (<=.f64 t 9491124444726039447026712060697262712872437693608732321521524927449372698408386560) (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 a t)))) |
(if (<=.f64 y -3173719260005729792/2269007733883335972287082669296112915239349672942191252221331572442536403137824056312817862695551072066953619064625508194663368599769448406663254670871573830845597595897613333042429214224697474472410882236254024057110212260250671521235807709272244389361641091086035023229622419456) (+.f64 (*.f64 y z) x) (if (<=.f64 y -109976343634514864/772103322247736428651791941524190166662432288223808740069966728315087660095197093551484618001698015194652854401843307157096133183997320086925557708514169730840749451738610692460887556999562135090788908685580234789131193097780962748024381086918485856402626253175196722230275782071039209488625822100242638638716536487936) (*.f64 a t) (if (<=.f64 y 3193570048354319/57277807836949922408837567867349676981443478344341305058882899404622128010705808318690568531649256750858719018437999440148793721514146753400890052083129159241025748615958424204533602522957957552490080016463490494951861107213475167230717574212948590592) (+.f64 (*.f64 y z) x) (if (<=.f64 y 3157257551548749/15095849699286165408966218323953075563667684881665761713504825200982496649568595408344506900710635070165873500123055379599082338519699170530245737005730784174597581307904) (*.f64 z (*.f64 a b)) (+.f64 (*.f64 y z) x))))) |
(if (<=.f64 y -6198670429698691/4431655730240890570873208338468970537576854829965217289494788227426828912378562609985972388077248187630768787235596695692701891796424703919264169279046042638370307804487526041098494559032612254828927504367683640736543383320802092814913686932172352322971955256027412154745356288) (+.f64 x (*.f64 y z)) (if (<=.f64 y -6873521477157179/48256457640483526790736996345261885416402018013988046254372920519692978755949818346967788625106125949665803400115206697318508323999832505432847356782135608177546840733663168278805472312472633443174306792848764674320699568611310171751523817932405366025164140823449795139392236379439950593039113881265164914919783530496) (*.f64 a t) (if (<=.f64 y 3193570048354319/57277807836949922408837567867349676981443478344341305058882899404622128010705808318690568531649256750858719018437999440148793721514146753400890052083129159241025748615958424204533602522957957552490080016463490494951861107213475167230717574212948590592) (+.f64 x (*.f64 y z)) (if (<=.f64 y 3157257551548749/15095849699286165408966218323953075563667684881665761713504825200982496649568595408344506900710635070165873500123055379599082338519699170530245737005730784174597581307904) (*.f64 z (*.f64 a b)) (+.f64 x (*.f64 y z)))))) |
(if (<=.f64 x -2186160867145038592/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) x (if (<=.f64 x 443302802709191488/123003155723136208567847447683223664415731869180715065944930703618254955521953492303010368693540149343822709050322214299552689203876695953600699775494388206142090885899729347827083318884583758435450548517566916626912548274908112766882031433928533568160966639616) (*.f64 z y) (if (<=.f64 x 849696973089857/17404329748619824289860426352311291980336107281679382059399385520550823849520406290076876874227033232798165548605325345270876711736203910820971150664223534348495463082734165001231667298304) (*.f64 a t) (if (<=.f64 x 2130273994835011/1488565707357402911845015158554633286356257506687627387456491927921949262056238946972039271861787782268441644249633132407878864135402815488) (*.f64 z y) (if (<=.f64 x 7014795137690993/3291009114642412084309938365114701009965471731267159726697218048) (*.f64 a t) (if (<=.f64 x 4728128583563595/17179869184) x (if (<=.f64 x 10976395413663188858883279139146563584) (*.f64 z y) x))))))) |
(if (<=.f64 x -8539690887285307/35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852416) x (if (<=.f64 x 6926606292331117/1921924308174003258872616370050369756495810455948672905389542244035233680030523317234537010836564833497229828911284598430510768810573374275010933992099815720970170092183271059798176857571621225553914820586983072295508566795439261982531741155133337002515103744) (*.f64 y z) (if (<=.f64 x 849696973089857/17404329748619824289860426352311291980336107281679382059399385520550823849520406290076876874227033232798165548605325345270876711736203910820971150664223534348495463082734165001231667298304) (*.f64 a t) (if (<=.f64 x 2130273994835011/1488565707357402911845015158554633286356257506687627387456491927921949262056238946972039271861787782268441644249633132407878864135402815488) (*.f64 y z) (if (<=.f64 x 7014795137690993/3291009114642412084309938365114701009965471731267159726697218048) (*.f64 a t) (if (<=.f64 x 4728128583563595/17179869184) x (if (<=.f64 x 10976395413663188858883279139146563584) (*.f64 y z) x))))))) |
(if (<=.f64 x -42939635231401660913996005376) x (if (<=.f64 x 7197501601021681/205688069665150755269371147819668813122841983204197482918576128) (*.f64 a t) x)) |
x |
Compiled 813 to 375 computations (53.9% 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 741 to 232 computations (68.7% saved)
Loading profile data...