Time bar (total: 8.9s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 99.9% | 0.1% | 0 |
| 0% | 99.9% | 0.1% | 1 |
| 0% | 99.9% | 0.1% | 2 |
| 0% | 99.9% | 0.1% | 3 |
| 0% | 99.9% | 0.1% | 4 |
| 0% | 87.4% | 12.6% | 5 |
| 0% | 74.9% | 25.1% | 6 |
| 3.1% | 71.8% | 25.1% | 7 |
| 7.8% | 60.8% | 31.4% | 8 |
| 11.7% | 50.7% | 37.6% | 9 |
| 17.6% | 44.9% | 37.6% | 10 |
| 22.8% | 36.5% | 40.7% | 11 |
| 26.6% | 29.5% | 43.8% | 12 |
Compiled 12 to 8 computations (33.3% saved)
| 1.4s | 8256× | body | 256 | valid |
| 148.0ms | 1068× | body | 256 | invalid |
| 2× | egg-herbie |
| 786× | div-sub_binary64 |
| 747× | sub-neg_binary64 |
| 449× | associate-/r*_binary64 |
| 440× | associate-/r/_binary64 |
| 369× | fma-neg_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 20 | 48 |
| 1 | 42 | 48 |
| 2 | 65 | 48 |
| 3 | 123 | 48 |
| 4 | 354 | 48 |
| 5 | 836 | 48 |
| 6 | 1839 | 48 |
| 7 | 2959 | 48 |
| 8 | 4118 | 48 |
| 9 | 4864 | 48 |
| 10 | 5988 | 48 |
| 11 | 6682 | 48 |
| 12 | 6792 | 48 |
| 13 | 6916 | 48 |
| 14 | 6988 | 48 |
| 15 | 6988 | 48 |
| 16 | 7795 | 48 |
| 0 | 3 | 3 |
| 1× | saturated |
| 1× | node limit |
| Inputs |
|---|
0 |
1 |
2 |
| Outputs |
|---|
0 |
1 |
2 |
| Inputs |
|---|
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 y (log.f64 (/.f64 y x))) z) |
(-.f64 (*.f64 z (log.f64 (/.f64 z y))) x) |
(-.f64 (*.f64 x (log.f64 (/.f64 x z))) y) |
| Outputs |
|---|
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 y (log.f64 (/.f64 y x))) z) |
(fma.f64 y (log.f64 (/.f64 y x)) (neg.f64 z)) |
(neg.f64 (fma.f64 y (log.f64 (/.f64 x y)) z)) |
(-.f64 (*.f64 z (log.f64 (/.f64 z y))) x) |
(fma.f64 z (log.f64 (/.f64 z y)) (neg.f64 x)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x z))) y) |
(fma.f64 x (log.f64 (/.f64 x z)) (neg.f64 y)) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 z x)) y)) |
Compiled 14 to 10 computations (28.6% saved)
| 1× | egg-herbie |
| 2528× | fma-neg_binary64 |
| 1695× | fma-def_binary64 |
| 364× | distribute-rgt-in_binary64 |
| 330× | unsub-neg_binary64 |
| 315× | associate--l+_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 12 |
| 1 | 15 | 12 |
| 2 | 23 | 12 |
| 3 | 39 | 12 |
| 4 | 98 | 12 |
| 5 | 231 | 12 |
| 6 | 474 | 12 |
| 7 | 898 | 12 |
| 8 | 1256 | 12 |
| 9 | 2133 | 12 |
| 10 | 3636 | 12 |
| 11 | 4010 | 12 |
| 12 | 4136 | 12 |
| 13 | 4175 | 12 |
| 14 | 4189 | 12 |
| 15 | 5571 | 12 |
| 16 | 6783 | 12 |
| 17 | 7218 | 12 |
| 18 | 7536 | 12 |
| 19 | 7621 | 12 |
| 20 | 7671 | 12 |
| 21 | 7681 | 12 |
| 22 | 7773 | 12 |
| 23 | 7785 | 12 |
| 24 | 7785 | 12 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| Outputs |
|---|
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
Compiled 19 to 9 computations (52.6% 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 |
|---|---|---|
| ▶ | 12.9b | (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
| ▶ | 12.9b | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
Compiled 22 to 14 computations (36.4% saved)
Found 6 expressions with local error:
| New | Error | Program |
|---|---|---|
| 12.5b | (log.f64 (/.f64 x y)) | |
| 0.2b | (*.f64 x (log.f64 (/.f64 x y))) | |
| 0.0b | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) | |
| ✓ | 0.0b | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| ✓ | 0.2b | (*.f64 x (log.f64 (/.f64 x y))) |
| ✓ | 12.5b | (log.f64 (/.f64 x y)) |
Compiled 27 to 7 computations (74.1% saved)
21 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 30.0ms | x | @ | 0 | (*.f64 x (log.f64 (/.f64 x y))) |
| 25.0ms | x | @ | -inf | (log.f64 (/.f64 x y)) |
| 25.0ms | x | @ | 0 | (log.f64 (/.f64 x y)) |
| 18.0ms | y | @ | -inf | (log.f64 (/.f64 x y)) |
| 13.0ms | y | @ | 0 | (log.f64 (/.f64 x y)) |
| 1× | batch-egg-rewrite |
| 989× | pow1_binary64 |
| 916× | add-log-exp_binary64 |
| 916× | log1p-expm1-u_binary64 |
| 916× | expm1-log1p-u_binary64 |
| 92× | add-sqr-sqrt_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 27 |
| 1 | 174 | 27 |
| 2 | 2433 | 27 |
| 1× | node limit |
| Inputs |
|---|
(log.f64 (/.f64 x y)) |
(*.f64 x (log.f64 (/.f64 x y))) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 x) (neg.f64 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (/.f64 x y))) (log.f64 (sqrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 x) (log.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (log.f64 (/.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (log.f64 (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log.f64 (/.f64 x y))) (pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 2) (cbrt.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (sqrt.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3)) (+.f64 (*.f64 (log.f64 x) (log.f64 x)) (+.f64 (*.f64 (log.f64 y) (log.f64 y)) (*.f64 (log.f64 x) (log.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (log.f64 x) (log.f64 x)) (*.f64 (log.f64 y) (log.f64 y))) (+.f64 (log.f64 x) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (/.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log.f64 (/.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (log.f64 (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (/.f64 x y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log.f64 (/.f64 x y)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (log.f64 (/.f64 x y))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (/.f64 x y) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (pow.f64 (/.f64 x y) x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (log.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (log.f64 (/.f64 x y))))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (log.f64 (/.f64 x y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (log.f64 (/.f64 x y))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (fma.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 z) (*.f64 x (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) 2) (cbrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 z 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (sqrt.f64 z)) (-.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z))) (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 z 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x (log.f64 (/.f64 x y)) z) (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 z 3)) (+.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z)) (fma.f64 x (log.f64 (/.f64 x y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 z 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z))) (neg.f64 (fma.f64 x (log.f64 (/.f64 x y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 (neg.f64 z) 3)) (+.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (-.f64 (*.f64 (neg.f64 z) (neg.f64 z)) (*.f64 (*.f64 x (log.f64 (/.f64 x y))) (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 (neg.f64 z) (neg.f64 z))) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (/.f64 x y) x) (exp.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (/.f64 x y)) x (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (log.f64 (/.f64 x y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z))))))) |
| 1× | egg-herbie |
| 2275× | fma-neg_binary64 |
| 786× | fma-def_binary64 |
| 579× | associate--r-_binary64 |
| 566× | unsub-neg_binary64 |
| 335× | distribute-rgt-in_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 44 | 999 |
| 1 | 96 | 756 |
| 2 | 176 | 756 |
| 3 | 493 | 756 |
| 4 | 1354 | 756 |
| 5 | 3005 | 756 |
| 6 | 4900 | 756 |
| 7 | 5731 | 756 |
| 8 | 5946 | 756 |
| 9 | 6009 | 756 |
| 10 | 6019 | 756 |
| 11 | 6021 | 756 |
| 12 | 6063 | 756 |
| 13 | 6079 | 756 |
| 14 | 6079 | 756 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) |
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) |
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) |
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) |
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) |
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) |
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) |
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) |
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x) |
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) |
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) |
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) |
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) |
(*.f64 -1 z) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(*.f64 (log.f64 (/.f64 x y)) x) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(*.f64 -1 z) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(*.f64 -1 z) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
| Outputs |
|---|
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) |
(fma.f64 -1 (log.f64 y) (log.f64 x)) |
(log.f64 (/.f64 x y)) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 z) |
(neg.f64 z) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(*.f64 (log.f64 (/.f64 x y)) x) |
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(*.f64 -1 z) |
(neg.f64 z) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(*.f64 -1 z) |
(neg.f64 z) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| 12.5b | (log.f64 (/.f64 x y)) | |
| 0.1b | (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) | |
| ✓ | 0.1b | (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
| 12.5b | (log.f64 (/.f64 x y)) |
Compiled 23 to 7 computations (69.6% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | 0 | (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
| 1.0ms | x | @ | -inf | (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
| 1.0ms | x | @ | inf | (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
| 1.0ms | y | @ | -inf | (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
| 1.0ms | y | @ | 0 | (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
| 1× | batch-egg-rewrite |
| 773× | pow1_binary64 |
| 711× | add-log-exp_binary64 |
| 710× | log1p-expm1-u_binary64 |
| 710× | expm1-log1p-u_binary64 |
| 695× | add-exp-log_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 12 |
| 1 | 165 | 10 |
| 2 | 2137 | 10 |
| 1× | node limit |
| Inputs |
|---|
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 z (*.f64 x (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (log.f64 (/.f64 x y))) z)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (log.f64 (/.f64 x y))) 1) z)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (log.f64 (/.f64 x y))) z)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x (log.f64 (/.f64 x y))) 0) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (log.f64 (/.f64 x y)) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (log.f64 (/.f64 x y)) z)) (pow.f64 (cbrt.f64 (fma.f64 x (log.f64 (/.f64 x y)) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (log.f64 (/.f64 x y)) z)) 2) (cbrt.f64 (fma.f64 x (log.f64 (/.f64 x y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (log.f64 (/.f64 x y)) z)) (sqrt.f64 (fma.f64 x (log.f64 (/.f64 x y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 z 3)) (+.f64 (*.f64 (*.f64 x (log.f64 (/.f64 x y))) (*.f64 x (log.f64 (/.f64 x y)))) (-.f64 (*.f64 z z) (*.f64 (*.f64 x (log.f64 (/.f64 x y))) z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x (log.f64 (/.f64 x y))) (*.f64 x (log.f64 (/.f64 x y)))) (*.f64 z z)) (fma.f64 x (log.f64 (/.f64 x y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (log.f64 (/.f64 x y)) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (log.f64 (/.f64 x y)) z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (log.f64 (/.f64 x y)) z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (log.f64 (/.f64 x y)) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (log.f64 (/.f64 x y)) z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (log.f64 (/.f64 x y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (log.f64 (/.f64 x y)) z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (log.f64 (/.f64 x y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x (log.f64 (/.f64 x y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (log.f64 (/.f64 x y)) z))))))) |
| 1× | egg-herbie |
| 2267× | fma-neg_binary64 |
| 784× | fma-def_binary64 |
| 573× | associate--r-_binary64 |
| 567× | unsub-neg_binary64 |
| 335× | distribute-rgt-in_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 42 | 507 |
| 1 | 93 | 396 |
| 2 | 173 | 396 |
| 3 | 485 | 396 |
| 4 | 1346 | 396 |
| 5 | 2990 | 396 |
| 6 | 4866 | 396 |
| 7 | 5687 | 396 |
| 8 | 5902 | 396 |
| 9 | 5963 | 396 |
| 10 | 5973 | 396 |
| 11 | 5975 | 396 |
| 12 | 6017 | 396 |
| 13 | 6033 | 396 |
| 14 | 6033 | 396 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 z) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(*.f64 (log.f64 (/.f64 x y)) x) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(*.f64 -1 z) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(*.f64 -1 z) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
| Outputs |
|---|
(*.f64 -1 z) |
(neg.f64 z) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x) |
(*.f64 x (fma.f64 -1 (neg.f64 (log.f64 x)) (neg.f64 (log.f64 y)))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x) |
(*.f64 x (fma.f64 -1 (neg.f64 (log.f64 x)) (neg.f64 (log.f64 y)))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(*.f64 (log.f64 (/.f64 x y)) x) |
(*.f64 x (fma.f64 -1 (neg.f64 (log.f64 x)) (neg.f64 (log.f64 y)))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(*.f64 -1 z) |
(neg.f64 z) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(*.f64 -1 z) |
(neg.f64 z) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x)) |
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
Compiled 2168 to 729 computations (66.4% saved)
14 alts after pruning (12 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 154 | 12 | 166 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 154 | 14 | 168 |
| Status | Error | Program |
|---|---|---|
| ✓ | 12.9b | (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
| 38.0b | (-.f64 (*.f64 x (exp.f64 (log.f64 (log.f64 (/.f64 x y))))) z) | |
| ▶ | 35.9b | (-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
| ▶ | 35.1b | (neg.f64 z) |
| ▶ | 12.9b | (-.f64 (*.f64 x (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))) z) |
| 36.0b | (*.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z))) | |
| ✓ | 12.9b | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 32.1b | (-.f64 (cbrt.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3)) z) | |
| 36.0b | (*.f64 (log.f64 (/.f64 x y)) x) | |
| 38.4b | (pow.f64 (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) 2) | |
| 28.5b | (-.f64 (*.f64 x (/.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3)) (+.f64 (*.f64 (log.f64 x) (log.f64 x)) (+.f64 (*.f64 (log.f64 y) (log.f64 y)) (*.f64 (log.f64 x) (log.f64 y)))))) z) | |
| 28.4b | (-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z) | |
| ▶ | 13.3b | (-.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) z) |
| ▶ | 13.4b | (-.f64 (*.f64 x (neg.f64 (log.f64 (/.f64 y x)))) z) |
Compiled 394 to 252 computations (36% saved)
Found 8 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.3b | (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y)))) | |
| 0.2b | (*.f64 x (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))) | |
| 0.0b | (-.f64 (*.f64 x (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))) z) | |
| 0.0b | (log.f64 (cbrt.f64 (/.f64 x y))) | |
| ✓ | 0.3b | (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y)))) |
| ✓ | 0.5b | (pow.f64 (cbrt.f64 (/.f64 x y)) 2) |
| ✓ | 2.3b | (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) |
| ✓ | 12.9b | (cbrt.f64 (/.f64 x y)) |
Compiled 77 to 27 computations (64.9% saved)
24 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | inf | (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y)))) |
| 2.0ms | y | @ | -inf | (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y)))) |
| 2.0ms | x | @ | -inf | (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) |
| 1.0ms | x | @ | -inf | (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y)))) |
| 1.0ms | x | @ | 0 | (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) |
| 1× | batch-egg-rewrite |
| 702× | prod-diff_binary64 |
| 469× | log-prod_binary64 |
| 288× | pow-prod-down_binary64 |
| 249× | pow2_binary64 |
| 245× | fma-def_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 32 |
| 1 | 214 | 32 |
| 2 | 2714 | 30 |
| 1× | node limit |
| Inputs |
|---|
(cbrt.f64 (/.f64 x y)) |
(log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) |
(pow.f64 (cbrt.f64 (/.f64 x y)) 2) |
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y)))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cbrt.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (/.f64 x y)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (/.f64 x y))))) (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 (/.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 x y)) (pow.f64 (exp.f64 1) (fma.f64 (neg.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 1 (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 x y)) (pow.f64 (exp.f64 1) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2) (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 x y)) (pow.f64 (exp.f64 1) (fma.f64 (neg.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (pow.f64 (exp.f64 1) (neg.f64 (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (pow.f64 (exp.f64 1) (*.f64 -1 (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (pow.f64 (exp.f64 1) (*.f64 (neg.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2)) (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (pow.f64 (exp.f64 1) (*.f64 (neg.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (/.f64 x y))) (cbrt.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (/.f64 1 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (cbrt.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 x y) 1/6) (pow.f64 (/.f64 x y) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (/.f64 x y) 4)))) (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 1) (*.f64 1/3 (*.f64 2/3 (log.f64 (/.f64 x y))))) (pow.f64 (exp.f64 1) (log.f64 (cbrt.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 1) (log.f64 (pow.f64 (/.f64 x y) 1/6))) (pow.f64 (exp.f64 1) (log.f64 (pow.f64 (/.f64 x y) 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (cbrt.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (cbrt.f64 (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (cbrt.f64 y) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 x) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (neg.f64 x)) (cbrt.f64 (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (cbrt.f64 x)) (neg.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (exp.f64 1) (exp.f64 (log1p.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))) (pow.f64 (exp.f64 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (exp.f64 1) (log.f64 (cbrt.f64 x))) (pow.f64 (exp.f64 1) (log.f64 (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 x y) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 2) (*.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 x y) 2) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 x y) 3) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 x y) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 x y)) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y x) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (*.f64 (log.f64 (/.f64 x y)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (*.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) 2)) (*.f64 (cbrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (*.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2)) (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2)) (*.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 2)) (*.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 x y)))) (*.f64 (sqrt.f64 (log.f64 (/.f64 x y))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y))))) (*.f64 (sqrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 y x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 1) 1) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 1) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2)) (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 1) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 1) (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 1) 1/3) (log.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 1) (+.f64 (sqrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))) (-.f64 (sqrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) 1) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (cbrt.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (sqrt.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))) (sqrt.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (sqrt.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2))) (sqrt.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2)) 1) (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2)) (pow.f64 (cbrt.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) 2)) (cbrt.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2)) (cbrt.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))) (cbrt.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2)) (cbrt.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2))) (cbrt.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2)) (sqrt.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))) (sqrt.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 x y)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (/.f64 x y)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/3 (*.f64 2/3 (log.f64 (/.f64 x y)))) (log.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (/.f64 x y) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 2/3 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (/.f64 x y) 1/6)) (log.f64 (sqrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (/.f64 x y))) (log.f64 (pow.f64 (/.f64 x y) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (/.f64 x y) 4)))) (*.f64 1/3 (*.f64 2/3 (log.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 x y))) 5)) (log.f64 (cbrt.f64 (cbrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 2/3 (log.f64 (/.f64 x y))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (log.f64 (cbrt.f64 x))) (log.f64 (cbrt.f64 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 (/.f64 x y)))) (log.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 (cbrt.f64 (/.f64 x y)) (cbrt.f64 x))) (log.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 2/3 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) (pow.f64 (cbrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) 2) (cbrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2) (*.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) (sqrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (*.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 (*.f64 2 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (*.f64 1/3 (*.f64 2/3 (log.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2/3 (log.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2)) (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 1 (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 (cbrt.f64 (/.f64 x y))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2) (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/3 (log.f64 (/.f64 x y)) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (-.f64 (sqrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 2/3 (log.f64 (/.f64 x y))))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (cbrt.f64 (/.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 x y)) (cbrt.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (pow.f64 (exp.f64 2) (fma.f64 (neg.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 1 (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (pow.f64 (exp.f64 2) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2) (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (pow.f64 (exp.f64 2) (fma.f64 (neg.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 (/.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 x y) 4)) (pow.f64 (exp.f64 2) (neg.f64 (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 x y) 4)) (pow.f64 (exp.f64 2) (*.f64 -1 (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 x y) 4)) (pow.f64 (exp.f64 2) (*.f64 (neg.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2)) (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 x y) 4)) (pow.f64 (exp.f64 2) (*.f64 (neg.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (cbrt.f64 (cbrt.f64 (pow.f64 (/.f64 x y) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (/.f64 x y) 4))) (cbrt.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 x y) 1/6) (sqrt.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 x y)) (pow.f64 (/.f64 x y) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 x y))) 5) (cbrt.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 2) (*.f64 1/3 (*.f64 2/3 (log.f64 (/.f64 x y))))) (pow.f64 (exp.f64 2) (log.f64 (cbrt.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 2) (log.f64 (pow.f64 (/.f64 x y) 1/6))) (pow.f64 (exp.f64 2) (log.f64 (pow.f64 (/.f64 x y) 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 1) (log.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (/.f64 x y) 4))))) (pow.f64 (exp.f64 1) (*.f64 1/3 (*.f64 2/3 (log.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (pow.f64 (/.f64 x y) 4)) (pow.f64 (cbrt.f64 (/.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 (/.f64 x y))) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cbrt.f64 (/.f64 x y)) (cbrt.f64 x)) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (exp.f64 2) (exp.f64 (log1p.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))) (exp.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (exp.f64 2) (log.f64 (cbrt.f64 x))) (pow.f64 (exp.f64 2) (log.f64 (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (exp.f64 1) (exp.f64 (log1p.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))))) (pow.f64 (exp.f64 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (pow.f64 (/.f64 x y) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2/3 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 x) (log.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (log.f64 (/.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (log.f64 (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (log.f64 (/.f64 (/.f64 y x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (sqrt.f64 x)) (log.f64 (/.f64 y (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (log.f64 (cbrt.f64 x))) (log.f64 (/.f64 y (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 2) (log.f64 (cbrt.f64 (/.f64 x y)))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 -1) (log.f64 (neg.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (neg.f64 (neg.f64 x))) (log.f64 (neg.f64 (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (/.f64 x (sqrt.f64 y))) (log.f64 (sqrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (/.f64 x 1)) (log.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (/.f64 x (cbrt.f64 (*.f64 y y)))) (log.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (cbrt.f64 x))) (log.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (log.f64 (sqrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log.f64 (/.f64 x y))) (pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 2) (cbrt.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (sqrt.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 (log.f64 (pow.f64 (/.f64 x y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 3) (pow.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 3)) (/.f64 1 (fma.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (-.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (*.f64 2/3 (log.f64 (/.f64 x y)))) (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (log.f64 (/.f64 x y)) (log.f64 (cbrt.f64 (/.f64 x y)))) (/.f64 1 (log.f64 (cbrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (log.f64 (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (-.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (*.f64 2/3 (log.f64 (/.f64 x y)))) (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 2)) (+.f64 (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 3) (pow.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (*.f64 (log.f64 (/.f64 x y)) (log.f64 (cbrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 3) (pow.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 3)) (fma.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (-.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (*.f64 2/3 (log.f64 (/.f64 x y)))) (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 3) (pow.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 3)) (+.f64 (pow.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 2) (-.f64 (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 2) (*.f64 2 (pow.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (log.f64 (/.f64 x y)) (log.f64 (cbrt.f64 (/.f64 x y)))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 3) (pow.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 3))) (neg.f64 (fma.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (-.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (*.f64 2/3 (log.f64 (/.f64 x y)))) (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (log.f64 (/.f64 x y)) (log.f64 (cbrt.f64 (/.f64 x y))))) (neg.f64 (log.f64 (cbrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 2) (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 2)) (-.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (*.f64 2/3 (log.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (/.f64 x y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (/.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log.f64 (/.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (-.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (*.f64 2/3 (log.f64 (/.f64 x y)))) (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 2)) (+.f64 (pow.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 3) (pow.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (*.f64 (log.f64 (/.f64 x y)) (log.f64 (cbrt.f64 (/.f64 x y))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (log.f64 (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (log.f64 (/.f64 (/.f64 y x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (-.f64 (/.f64 x y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 2/3 (log.f64 (/.f64 x y))))) (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (+.f64 1 (-.f64 (cbrt.f64 (/.f64 x y)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 2/3 (log.f64 (/.f64 x y))))) (+.f64 1 (-.f64 (cbrt.f64 (/.f64 x y)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (-.f64 (cbrt.f64 (/.f64 x y)) 1)) (pow.f64 (cbrt.f64 (/.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (cbrt.f64 (/.f64 x y)) (+.f64 1 (expm1.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (-.f64 (cbrt.f64 (/.f64 x y)) 1)) (+.f64 1 (expm1.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (log.f64 (cbrt.f64 (/.f64 x y))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) 1 (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 2 (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (cbrt.f64 (/.f64 x y))) 1 (*.f64 2/3 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 2/3 (log.f64 (/.f64 x y))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 (cbrt.f64 (/.f64 x y))) (*.f64 2/3 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 x) (neg.f64 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) (pow.f64 (cbrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) 2) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) 2) (cbrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2) (*.f64 2/3 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2) (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (*.f64 2/3 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2) (*.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) (sqrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (*.f64 2/3 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (*.f64 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/3 (log.f64 (/.f64 x y)) (*.f64 2/3 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 x)) 2) (cbrt.f64 (log.f64 x)) (neg.f64 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 x)) (neg.f64 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (-.f64 (sqrt.f64 (*.f64 2/3 (log.f64 (/.f64 x y)))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (*.f64 2/3 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2)) (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (/.f64 x y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (log.f64 (/.f64 x y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log.f64 (/.f64 x y)))))))) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 0 | 0 |
| 1× | saturated |
| Inputs |
|---|
| Outputs |
|---|
Compiled 6 to 4 computations (33.3% saved)
Found 6 expressions with local error:
| New | Error | Program |
|---|---|---|
| 12.9b | (log.f64 (/.f64 y x)) | |
| 0.2b | (*.f64 x (neg.f64 (log.f64 (/.f64 y x)))) | |
| 0.0b | (-.f64 (*.f64 x (neg.f64 (log.f64 (/.f64 y x)))) z) | |
| ✓ | 0.0b | (-.f64 (*.f64 x (neg.f64 (log.f64 (/.f64 y x)))) z) |
| ✓ | 0.2b | (*.f64 x (neg.f64 (log.f64 (/.f64 y x)))) |
| ✓ | 12.9b | (log.f64 (/.f64 y x)) |
Compiled 34 to 8 computations (76.5% saved)
21 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 101.0ms | x | @ | -inf | (log.f64 (/.f64 y x)) |
| 49.0ms | y | @ | -inf | (log.f64 (/.f64 y x)) |
| 30.0ms | y | @ | inf | (log.f64 (/.f64 y x)) |
| 28.0ms | z | @ | -inf | (-.f64 (*.f64 x (neg.f64 (log.f64 (/.f64 y x)))) z) |
| 16.0ms | x | @ | 0 | (log.f64 (/.f64 y x)) |
| 1× | batch-egg-rewrite |
| 681× | prod-diff_binary64 |
| 482× | log-prod_binary64 |
| 294× | pow-prod-down_binary64 |
| 252× | fma-def_binary64 |
| 240× | pow2_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 26 |
| 1 | 201 | 24 |
| 2 | 2886 | 5 |
| 1× | node limit |
| Inputs |
|---|
(log.f64 (/.f64 y x)) |
(*.f64 x (neg.f64 (log.f64 (/.f64 y x)))) |
(-.f64 (*.f64 x (neg.f64 (log.f64 (/.f64 y x)))) z) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x . 0))))) |
((#(struct:change #<rule egg-rr> (2) ((x . 0))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 z) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 z) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 z) (fma.f64 -1 z z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 z) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (neg.f64 z))) 2)) (log.f64 (cbrt.f64 (exp.f64 (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (neg.f64 z)))) (log.f64 (sqrt.f64 (exp.f64 (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 z) 2) (neg.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (neg.f64 z)) (pow.f64 (cbrt.f64 (neg.f64 z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (neg.f64 z)) 2) (cbrt.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (neg.f64 (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (neg.f64 z)) (sqrt.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (pow.f64 z 3)) (/.f64 1 (fma.f64 z z 0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 0 (sqrt.f64 z)) (neg.f64 (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 z z 0) (neg.f64 (pow.f64 z 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 z (neg.f64 (*.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (pow.f64 z 3)) (fma.f64 z z 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 z z)) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (pow.f64 z 3))) (neg.f64 (fma.f64 z z 0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (*.f64 z z))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 0 (pow.f64 (neg.f64 z) 3)) (+.f64 0 (-.f64 (pow.f64 (neg.f64 z) 2) (*.f64 0 (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 0 (pow.f64 (neg.f64 z) 2)) (-.f64 0 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (neg.f64 z) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (neg.f64 z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (neg.f64 z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (neg.f64 z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 z z 0) (neg.f64 (pow.f64 z 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (neg.f64 (*.f64 z z))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 z)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (neg.f64 z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 1 (+.f64 1 (expm1.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (neg.f64 z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 0 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 0 x (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 0 0 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 0 1 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 0 (cbrt.f64 x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 0 (sqrt.f64 x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 z) 1 (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 z) 1 (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 0 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 z) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 z) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (neg.f64 (cbrt.f64 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (neg.f64 z)) (pow.f64 (cbrt.f64 (neg.f64 z)) 2) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (neg.f64 z)) (pow.f64 (cbrt.f64 (neg.f64 z)) 2) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (neg.f64 z)) 2) (cbrt.f64 (neg.f64 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (neg.f64 z)) 2) (cbrt.f64 (neg.f64 z)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (neg.f64 z)) 2) (cbrt.f64 (neg.f64 z)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) 0 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (neg.f64 (sqrt.f64 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 z)) (sqrt.f64 (neg.f64 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 z)) (sqrt.f64 (neg.f64 z)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 z)) (sqrt.f64 (neg.f64 z)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) 0 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 x) 0 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 z 3)) (/.f64 1 (fma.f64 z z 0)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 z 3)) (/.f64 1 (fma.f64 z z 0)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 0 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 z 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 0 (sqrt.f64 z)) (neg.f64 (sqrt.f64 z)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 0 (sqrt.f64 z)) (neg.f64 (sqrt.f64 z)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x -1) 0 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (neg.f64 z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (neg.f64 z))))))) |
| 1× | egg-herbie |
| 609× | fma-neg_binary64 |
| 513× | div-sub_binary64 |
| 484× | unsub-neg_binary64 |
| 412× | distribute-rgt-in_binary64 |
| 330× | sub-neg_binary64 |
Useful iterations: 10 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 50 | 1194 |
| 1 | 142 | 870 |
| 2 | 367 | 810 |
| 3 | 924 | 810 |
| 4 | 2521 | 810 |
| 5 | 4728 | 810 |
| 6 | 5279 | 810 |
| 7 | 5466 | 810 |
| 8 | 5571 | 810 |
| 9 | 5638 | 810 |
| 10 | 5837 | 756 |
| 11 | 6182 | 756 |
| 12 | 6308 | 756 |
| 13 | 7025 | 756 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) |
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) |
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) |
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) |
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) |
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) |
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) |
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) |
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))) |
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))) |
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))) |
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(*.f64 -1 z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z) |
(*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(*.f64 -1 z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(*.f64 -1 z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
| Outputs |
|---|
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))) |
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y)) |
(log.f64 (/.f64 y x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(*.f64 -1 z) |
(neg.f64 z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(*.f64 -1 z) |
(neg.f64 z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(*.f64 -1 z) |
(neg.f64 z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))) |
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z) |
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z) |
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z)) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
Found 6 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.3b | (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) | |
| 0.1b | (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) | |
| 0.0b | (-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) | |
| ✓ | 0.0b | (-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
| ✓ | 0.1b | (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
| ✓ | 0.3b | (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
Compiled 43 to 10 computations (76.7% saved)
21 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 54.0ms | x | @ | 0 | (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
| 43.0ms | x | @ | inf | (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
| 43.0ms | y | @ | inf | (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
| 26.0ms | y | @ | 0 | (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
| 16.0ms | x | @ | -inf | (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
| 1× | batch-egg-rewrite |
| 982× | prod-diff_binary64 |
| 539× | log-prod_binary64 |
| 411× | fma-def_binary64 |
| 227× | fma-neg_binary64 |
| 190× | expm1-udef_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 39 |
| 1 | 241 | 27 |
| 2 | 3496 | 27 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 x) (neg.f64 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 x) (*.f64 (neg.f64 (log.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 x y)) (fma.f64 (neg.f64 (log.f64 y)) 1 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 x y)) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (pow.f64 (cbrt.f64 (log.f64 y)) 2) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 x y)) (+.f64 (neg.f64 (log.f64 y)) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 x y)) (fma.f64 -1 (log.f64 y) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 x y)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (log.f64 y)) 2)) (cbrt.f64 (log.f64 y)) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (log.f64 y)) (log.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 -1) (log.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (/.f64 x y)) (cbrt.f64 (/.f64 x y)))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (/.f64 x y))) (log.f64 (sqrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (cbrt.f64 (*.f64 x x)) 1)) (log.f64 (/.f64 (cbrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (sqrt.f64 x) 1)) (log.f64 (/.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (cbrt.f64 (*.f64 x x)) (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 (cbrt.f64 x) (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 (sqrt.f64 x) (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 -1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 1 (sqrt.f64 y))) (log.f64 (/.f64 x (sqrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (cbrt.f64 (*.f64 x x)) (sqrt.f64 y))) (log.f64 (/.f64 (cbrt.f64 x) (sqrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 y))) (log.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 -1 (sqrt.f64 y))) (log.f64 (/.f64 x (sqrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (cbrt.f64 (*.f64 x x)) -1)) (log.f64 (/.f64 (cbrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (sqrt.f64 x) -1)) (log.f64 (/.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log.f64 (/.f64 x y))) (cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2)) (cbrt.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (sqrt.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3)) (/.f64 1 (fma.f64 (log.f64 y) (log.f64 (*.f64 x y)) (pow.f64 (log.f64 x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (log.f64 x) 2) (pow.f64 (log.f64 y) 2)) (/.f64 1 (log.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 y))) (-.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (log.f64 y) (log.f64 (*.f64 x y)) (pow.f64 (log.f64 x) 2)) (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (log.f64 (*.f64 x y)) (-.f64 (pow.f64 (log.f64 x) 2) (pow.f64 (log.f64 y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3)) (fma.f64 (log.f64 y) (log.f64 (*.f64 x y)) (pow.f64 (log.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 x) 2) (pow.f64 (log.f64 y) 2)) (log.f64 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3))) (neg.f64 (fma.f64 (log.f64 y) (log.f64 (*.f64 x y)) (pow.f64 (log.f64 x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (log.f64 x) 2) (pow.f64 (log.f64 y) 2))) (neg.f64 (log.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (neg.f64 (log.f64 y)) 3)) (+.f64 (pow.f64 (log.f64 x) 2) (-.f64 (*.f64 (neg.f64 (log.f64 y)) (neg.f64 (log.f64 y))) (*.f64 (log.f64 x) (neg.f64 (log.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 (neg.f64 (log.f64 y)) (neg.f64 (log.f64 y)))) (log.f64 (/.f64 x (/.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (/.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log.f64 (/.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (log.f64 y) (log.f64 (*.f64 x y)) (pow.f64 (log.f64 x) 2)) (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (log.f64 (*.f64 x y)) (-.f64 (pow.f64 (log.f64 x) 2) (pow.f64 (log.f64 y) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (log.f64 (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (-.f64 (/.f64 x y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (-.f64 x 1)) y))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 x (+.f64 1 (-.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (-.f64 x 1)) (+.f64 1 (-.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (-.f64 x 1)) (exp.f64 (neg.f64 (log.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (-.f64 x 1)) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 (log.f64 y))) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 (log.f64 y))) (+.f64 1 (-.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 y) (+.f64 1 (-.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 x) 1 (neg.f64 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 x) 1 (*.f64 (neg.f64 (log.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (/.f64 x y)) 1 (fma.f64 (neg.f64 (log.f64 y)) 1 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (/.f64 x y)) 1 (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (pow.f64 (cbrt.f64 (log.f64 y)) 2) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (/.f64 x y)) 1 (+.f64 (neg.f64 (log.f64 y)) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 x) (neg.f64 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 x) (*.f64 (neg.f64 (log.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 (/.f64 x y)) (fma.f64 (neg.f64 (log.f64 y)) 1 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 (/.f64 x y)) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (pow.f64 (cbrt.f64 (log.f64 y)) 2) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 (/.f64 x y)) (+.f64 (neg.f64 (log.f64 y)) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (log.f64 y)) (log.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (log.f64 (/.f64 x y))) (cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2)) (fma.f64 (neg.f64 (log.f64 y)) 1 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (log.f64 (/.f64 x y))) (cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2)) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (pow.f64 (cbrt.f64 (log.f64 y)) 2) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (log.f64 (/.f64 x y))) (cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2)) (+.f64 (neg.f64 (log.f64 y)) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2)) (cbrt.f64 (log.f64 (/.f64 x y))) (fma.f64 (neg.f64 (log.f64 y)) 1 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2)) (cbrt.f64 (log.f64 (/.f64 x y))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (pow.f64 (cbrt.f64 (log.f64 y)) 2) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2)) (cbrt.f64 (log.f64 (/.f64 x y))) (+.f64 (neg.f64 (log.f64 y)) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 y)) 2) (neg.f64 (cbrt.f64 (log.f64 y))) (log.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (log.f64 x)) (pow.f64 (cbrt.f64 (log.f64 x)) 2) (neg.f64 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (log.f64 x)) (pow.f64 (cbrt.f64 (log.f64 x)) 2) (*.f64 (neg.f64 (log.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 x)) 2) (cbrt.f64 (log.f64 x)) (neg.f64 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 x)) 2) (cbrt.f64 (log.f64 x)) (*.f64 (neg.f64 (log.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (sqrt.f64 (log.f64 (/.f64 x y))) (fma.f64 (neg.f64 (log.f64 y)) 1 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (sqrt.f64 (log.f64 (/.f64 x y))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (pow.f64 (cbrt.f64 (log.f64 y)) 2) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (sqrt.f64 (log.f64 (/.f64 x y))) (+.f64 (neg.f64 (log.f64 y)) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 y)) (neg.f64 (sqrt.f64 (log.f64 y))) (log.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 x)) (neg.f64 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 x)) (*.f64 (neg.f64 (log.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3)) (/.f64 1 (fma.f64 (log.f64 y) (log.f64 (*.f64 x y)) (pow.f64 (log.f64 x) 2))) (fma.f64 (neg.f64 (log.f64 y)) 1 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3)) (/.f64 1 (fma.f64 (log.f64 y) (log.f64 (*.f64 x y)) (pow.f64 (log.f64 x) 2))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (pow.f64 (cbrt.f64 (log.f64 y)) 2) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3)) (/.f64 1 (fma.f64 (log.f64 y) (log.f64 (*.f64 x y)) (pow.f64 (log.f64 x) 2))) (+.f64 (neg.f64 (log.f64 y)) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (log.f64 y) (log.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (log.f64 x) 2) (pow.f64 (log.f64 y) 2)) (/.f64 1 (log.f64 (*.f64 x y))) (fma.f64 (neg.f64 (log.f64 y)) 1 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (log.f64 x) 2) (pow.f64 (log.f64 y) 2)) (/.f64 1 (log.f64 (*.f64 x y))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (pow.f64 (cbrt.f64 (log.f64 y)) 2) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (log.f64 x) 2) (pow.f64 (log.f64 y) 2)) (/.f64 1 (log.f64 (*.f64 x y))) (+.f64 (neg.f64 (log.f64 y)) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (neg.f64 (log.f64 y))) (cbrt.f64 (neg.f64 (log.f64 y)))) (cbrt.f64 (neg.f64 (log.f64 y))) (log.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (log.f64 y))) (sqrt.f64 (neg.f64 (log.f64 y))) (log.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 (log.f64 y))) (sqrt.f64 (log.f64 y)) (log.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 y))) (-.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 y))) (fma.f64 (neg.f64 (log.f64 y)) 1 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 y))) (-.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 y))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (pow.f64 (cbrt.f64 (log.f64 y)) 2) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 y))) (-.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 y))) (+.f64 (neg.f64 (log.f64 y)) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (log.f64 y)) 2)) (cbrt.f64 (log.f64 y)) (log.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (/.f64 x y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (log.f64 (/.f64 x y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log.f64 (/.f64 x y)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (log.f64 x) x) (*.f64 (neg.f64 (log.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (log.f64 x)) (*.f64 x (neg.f64 (log.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (/.f64 x y) x)) (cbrt.f64 (pow.f64 (/.f64 x y) x)))) (log.f64 (cbrt.f64 (pow.f64 (/.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (/.f64 x y) x))) (log.f64 (sqrt.f64 (pow.f64 (/.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (log.f64 (/.f64 x y))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3)) x) (fma.f64 (log.f64 y) (log.f64 (*.f64 x y)) (pow.f64 (log.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (log.f64 x) 2) (pow.f64 (log.f64 y) 2)) x) (log.f64 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3))) (fma.f64 (log.f64 y) (log.f64 (*.f64 x y)) (pow.f64 (log.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (pow.f64 (log.f64 x) 2) (pow.f64 (log.f64 y) 2))) (log.f64 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (/.f64 x y) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (log.f64 x) (*.f64 x (neg.f64 (log.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (pow.f64 (/.f64 x y) x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (log.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (log.f64 (/.f64 x y)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (log.f64 (/.f64 x y))))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (log.f64 (/.f64 x y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (log.f64 (/.f64 x y))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (fma.f64 -1 z z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 z) (*.f64 x (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 (/.f64 x y) x) (exp.f64 z))) (cbrt.f64 (/.f64 (pow.f64 (/.f64 x y) x) (exp.f64 z))))) (log.f64 (cbrt.f64 (/.f64 (pow.f64 (/.f64 x y) x) (exp.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (/.f64 (pow.f64 (/.f64 x y) x) (exp.f64 z)))) (log.f64 (sqrt.f64 (/.f64 (pow.f64 (/.f64 x y) x) (exp.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (cbrt.f64 (pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 2)) (cbrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 z 3)) (/.f64 1 (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (sqrt.f64 x) (sqrt.f64 z)) (-.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2)) (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 z 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x (log.f64 (/.f64 x y)) z) (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 z 3)) (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z)) (fma.f64 x (log.f64 (/.f64 x y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 z 3))) (neg.f64 (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z))) (neg.f64 (fma.f64 x (log.f64 (/.f64 x y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 (neg.f64 z) 3)) (+.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (-.f64 (*.f64 (neg.f64 z) (neg.f64 z)) (*.f64 (*.f64 x (log.f64 (/.f64 x y))) (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 (neg.f64 z) (neg.f64 z))) (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2)) (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 z 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x (log.f64 (/.f64 x y)) z) (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (/.f64 x y) x) (exp.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1)) (exp.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (/.f64 x y) x) (+.f64 1 (expm1.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1)) (+.f64 1 (expm1.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1)) (exp.f64 (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (/.f64 x y) x) (/.f64 1 (exp.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1)) (/.f64 1 (exp.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 z)) (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 z)) (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 z)) (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 z)) (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (log.f64 (/.f64 x y)) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (/.f64 x y)) x (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (/.f64 x y)) x (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (log.f64 (/.f64 x y))) 1 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (log.f64 (/.f64 x y))) 1 (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 1 (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 1 (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 1 (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (log.f64 (/.f64 x y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (log.f64 (/.f64 x y))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 z) (*.f64 x (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (cbrt.f64 (pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 2)) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (cbrt.f64 (pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 2)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (cbrt.f64 (pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 2)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 2)) (cbrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 2)) (cbrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) 2)) (cbrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2)) (*.f64 (cbrt.f64 (log.f64 (/.f64 x y))) x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2)) (*.f64 (cbrt.f64 (log.f64 (/.f64 x y))) x) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (log.f64 (/.f64 x y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (log.f64 (/.f64 x y))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (neg.f64 (cbrt.f64 z)) (*.f64 x (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (*.f64 (sqrt.f64 (log.f64 (/.f64 x y))) x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (*.f64 (sqrt.f64 (log.f64 (/.f64 x y))) x) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (log.f64 (/.f64 x y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (log.f64 (/.f64 x y))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (neg.f64 (sqrt.f64 z)) (*.f64 x (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 z 3)) (/.f64 1 (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2))) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 z 3)) (/.f64 1 (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2))) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) (pow.f64 z 3)) (/.f64 1 (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2))) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 z (*.f64 x (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z)) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (neg.f64 z)) (cbrt.f64 (neg.f64 z))) (cbrt.f64 (neg.f64 z)) (*.f64 x (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 z)) (sqrt.f64 (neg.f64 z)) (*.f64 x (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z) (*.f64 x (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (sqrt.f64 x) (sqrt.f64 z)) (-.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (sqrt.f64 z)) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (sqrt.f64 x) (sqrt.f64 z)) (-.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (sqrt.f64 z)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (sqrt.f64 x) (sqrt.f64 z)) (-.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (sqrt.f64 z)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (*.f64 x (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2))) (cbrt.f64 (log.f64 (/.f64 x y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2))) (cbrt.f64 (log.f64 (/.f64 x y))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (log.f64 (/.f64 x y)))) (sqrt.f64 (log.f64 (/.f64 x y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (log.f64 (/.f64 x y)))) (sqrt.f64 (log.f64 (/.f64 x y))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (log.f64 (/.f64 x y)) (cbrt.f64 (*.f64 x x))) (cbrt.f64 x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (log.f64 (/.f64 x y)) (cbrt.f64 (*.f64 x x))) (cbrt.f64 x) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (log.f64 (/.f64 x y)) (sqrt.f64 x)) (sqrt.f64 x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (log.f64 (/.f64 x y)) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z))))))) |
| 1× | egg-herbie |
| 981× | unsub-neg_binary64 |
| 777× | distribute-rgt-in_binary64 |
| 549× | distribute-lft-in_binary64 |
| 463× | distribute-neg-in_binary64 |
| 392× | sub-neg_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 52 | 1515 |
| 1 | 126 | 1242 |
| 2 | 235 | 1242 |
| 3 | 633 | 918 |
| 4 | 2059 | 918 |
| 5 | 4313 | 918 |
| 6 | 5531 | 918 |
| 7 | 6086 | 918 |
| 8 | 6271 | 918 |
| 9 | 6305 | 918 |
| 10 | 6312 | 918 |
| 11 | 6680 | 918 |
| 12 | 7187 | 918 |
| 13 | 7423 | 918 |
| 14 | 7538 | 918 |
| 15 | 7556 | 918 |
| 16 | 7560 | 918 |
| 17 | 7560 | 918 |
| 18 | 7560 | 918 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) |
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) |
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) |
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) |
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) |
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) |
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) |
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) |
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) |
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 -1 z) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(*.f64 -1 z) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(*.f64 -1 z) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
| Outputs |
|---|
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) |
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
(-.f64 (log.f64 x) (log.f64 y)) |
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 z) |
(neg.f64 z) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(*.f64 -1 z) |
(neg.f64 z) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(*.f64 -1 z) |
(neg.f64 z) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)) |
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))) |
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z)) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z)) |
Found 8 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.7b | (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) | |
| 0.6b | (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) | |
| 0.2b | (*.f64 x (log.f64 (/.f64 x y))) | |
| 0.0b | (-.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) z) | |
| 0.2b | (*.f64 x (log.f64 (/.f64 x y))) | |
| ✓ | 0.6b | (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) |
| ✓ | 0.7b | (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) |
| 12.5b | (log.f64 (/.f64 x y)) |
Compiled 47 to 13 computations (72.3% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 5.0ms | y | @ | -inf | (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) |
| 3.0ms | y | @ | 0 | (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) |
| 2.0ms | y | @ | inf | (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) |
| 1.0ms | x | @ | -inf | (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) |
| 1.0ms | x | @ | 0 | (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) |
| 1× | batch-egg-rewrite |
| 815× | pow1_binary64 |
| 763× | add-log-exp_binary64 |
| 763× | log1p-expm1-u_binary64 |
| 763× | expm1-log1p-u_binary64 |
| 745× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 20 |
| 1 | 191 | 20 |
| 2 | 2099 | 20 |
| 1× | node limit |
| Inputs |
|---|
(pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) |
(cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (log.f64 (pow.f64 (/.f64 x y) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (log.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (/.f64 x y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2) (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 2) (*.f64 (cbrt.f64 (log.f64 (/.f64 x y))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (log.f64 (/.f64 x y))) (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2)) (*.f64 (cbrt.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x)))) (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (*.f64 (sqrt.f64 (log.f64 (/.f64 x y))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 1/6) (*.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 1/6) (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2)) 3) (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 1/6) 3) (pow.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 1/6) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 2)) (cbrt.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (sqrt.f64 (log.f64 (/.f64 x y)))) (sqrt.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (log.f64 (/.f64 x y)) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (log.f64 (/.f64 x y)) (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2) 1) (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2) (cbrt.f64 x)) (cbrt.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2))) (cbrt.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2) (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 1/6)) (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (/.f64 x y) x))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (log.f64 (/.f64 x y)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (log.f64 (/.f64 x y)) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (pow.f64 (/.f64 x y) x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log.f64 (pow.f64 (/.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log.f64 (pow.f64 (/.f64 x y) x)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log.f64 (/.f64 x y))) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (cbrt.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x)))) (cbrt.f64 (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x)))) (pow.f64 (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2)) (cbrt.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 1/6) (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2) 1/3) (cbrt.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 1/3) (pow.f64 (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))))))))) |
| 1× | egg-herbie |
| 891× | unsub-neg_binary64 |
| 769× | fma-neg_binary64 |
| 368× | distribute-rgt-neg-out_binary64 |
| 336× | distribute-lft-neg-out_binary64 |
| 320× | distribute-rgt-neg-in_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 34 | 484 |
| 1 | 89 | 368 |
| 2 | 194 | 328 |
| 3 | 590 | 328 |
| 4 | 1998 | 328 |
| 5 | 4797 | 328 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x) |
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x) |
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x) |
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)) |
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3) |
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3) |
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3) |
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3) |
| Outputs |
|---|
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x) |
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2)))) |
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x) |
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2)))) |
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x) |
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2)))) |
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x) |
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2)))) |
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2)))) |
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2)))) |
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2)))) |
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)) |
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2)))) |
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)) |
(*.f64 (*.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))) x) |
(*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)) |
(*.f64 (*.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))) x) |
(*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)) |
(*.f64 (*.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))) x) |
(*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))) |
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)) |
(*.f64 (*.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))) x) |
(*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))) |
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3) |
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))) |
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y)))) |
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3) |
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))) |
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y)))) |
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3) |
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))) |
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y)))) |
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3) |
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))) |
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y)))) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3) |
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))) |
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y)))) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3) |
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))) |
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y)))) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3) |
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))) |
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y)))) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3) |
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))) |
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y)))) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3) |
(cbrt.f64 (*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x))))) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3) |
(cbrt.f64 (*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x))))) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3) |
(cbrt.f64 (*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x))))) |
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3) |
(cbrt.f64 (*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x))))) |
Compiled 14633 to 5611 computations (61.7% saved)
32 alts after pruning (27 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 772 | 23 | 795 |
| Fresh | 3 | 4 | 7 |
| Picked | 0 | 1 | 1 |
| Done | 2 | 4 | 6 |
| Total | 777 | 32 | 809 |
| Status | Error | Program |
|---|---|---|
| 28.4b | (-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z) | |
| 49.9b | (*.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z)) | |
| ✓ | 12.9b | (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
| 49.4b | (pow.f64 (sqrt.f64 (neg.f64 z)) 2) | |
| 48.4b | (*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z)) | |
| 38.0b | (-.f64 (*.f64 x (exp.f64 (log.f64 (log.f64 (/.f64 x y))))) z) | |
| 38.4b | (pow.f64 (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) 2) | |
| 35.7b | (pow.f64 (cbrt.f64 (neg.f64 z)) 3) | |
| ✓ | 35.9b | (-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
| 33.3b | (-.f64 (*.f64 x (-.f64 (log.f64 (/.f64 x (sqrt.f64 y))) (log.f64 (sqrt.f64 y)))) z) | |
| ✓ | 35.1b | (neg.f64 z) |
| ▶ | 50.5b | (exp.f64 (log.f64 (neg.f64 z))) |
| 35.4b | (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)) | |
| 12.9b | (-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z) | |
| 13.3b | (-.f64 (*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (log.f64 (/.f64 x y)))) z) | |
| ▶ | 28.4b | (-.f64 (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) z) |
| 41.3b | (-.f64 (*.f64 x (*.f64 1/3 (log.f64 (pow.f64 (/.f64 x y) 3)))) z) | |
| 31.9b | (-.f64 (*.f64 x (-.f64 (*.f64 2 (log.f64 (cbrt.f64 x))) (log.f64 (/.f64 y (cbrt.f64 x))))) z) | |
| 28.4b | (-.f64 (+.f64 (*.f64 x (log.f64 x)) (*.f64 x (neg.f64 (log.f64 y)))) z) | |
| ✓ | 13.3b | (-.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) z) |
| ▶ | 3.1b | (-.f64 (*.f64 x (+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y))))) z) |
| ▶ | 48.7b | (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
| ▶ | 48.3b | (/.f64 (neg.f64 (*.f64 z z)) z) |
| 48.4b | (/.f64 1 (/.f64 z (neg.f64 (*.f64 z z)))) | |
| 36.0b | (*.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z))) | |
| 36.2b | (-.f64 (*.f64 (*.f64 (log.f64 (/.f64 x y)) (sqrt.f64 x)) (sqrt.f64 x)) z) | |
| ✓ | 12.9b | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 62.9b | (log.f64 (exp.f64 (neg.f64 z))) | |
| 36.0b | (*.f64 (log.f64 (/.f64 x y)) x) | |
| 59.5b | (pow.f64 (pow.f64 (neg.f64 z) 3) 1/3) | |
| 13.5b | (-.f64 (pow.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 (log.f64 (/.f64 x y)))) 3) z) | |
| 55.2b | (sqrt.f64 (pow.f64 (neg.f64 z) 2)) |
Compiled 739 to 518 computations (29.9% saved)
Found 8 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.2b | (/.f64 x (cbrt.f64 y)) | |
| 0.2b | (*.f64 x (+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y))))) | |
| 0.0b | (-.f64 (*.f64 x (+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y))))) z) | |
| 0.0b | (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) | |
| ✓ | 0.5b | (pow.f64 (cbrt.f64 y) 2) |
| ✓ | 0.5b | (+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y)))) |
| ✓ | 0.6b | (cbrt.f64 y) |
| ✓ | 2.8b | (log.f64 (/.f64 x (cbrt.f64 y))) |
Compiled 81 to 40 computations (50.6% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 53.0ms | x | @ | -inf | (log.f64 (/.f64 x (cbrt.f64 y))) |
| 25.0ms | x | @ | 0 | (+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y)))) |
| 24.0ms | x | @ | 0 | (log.f64 (/.f64 x (cbrt.f64 y))) |
| 8.0ms | x | @ | inf | (log.f64 (/.f64 x (cbrt.f64 y))) |
| 3.0ms | y | @ | -inf | (+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y)))) |
| 1× | batch-egg-rewrite |
| 621× | prod-diff_binary64 |
| 531× | log-prod_binary64 |
| 293× | pow2_binary64 |
| 235× | fma-def_binary64 |
| 204× | pow1/3_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 33 |
| 1 | 258 | 23 |
| 2 | 3234 | 23 |
| 1× | node limit |
| Inputs |
|---|
(log.f64 (/.f64 x (cbrt.f64 y))) |
(cbrt.f64 y) |
(+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y)))) |
(pow.f64 (cbrt.f64 y) 2) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 x (cbrt.f64 y))) (fma.f64 (neg.f64 (sqrt.f64 (log.f64 (cbrt.f64 y)))) (sqrt.f64 (log.f64 (cbrt.f64 y))) (log.f64 (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 x) (*.f64 -1/3 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (/.f64 x (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (neg.f64 x)) (log.f64 (/.f64 1 (neg.f64 (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (log.f64 (cbrt.f64 x))) (log.f64 (*.f64 (cbrt.f64 x) (/.f64 1 (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (log.f64 (cbrt.f64 (/.f64 x (cbrt.f64 y))))) (log.f64 (cbrt.f64 (/.f64 x (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (/.f64 x (cbrt.f64 y)))) (log.f64 (sqrt.f64 (/.f64 x (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/3 (*.f64 -2/3 (log.f64 y))) (log.f64 (/.f64 x (cbrt.f64 (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 x)) (log.f64 (*.f64 (sqrt.f64 x) (/.f64 1 (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (/.f64 x (cbrt.f64 y)))) (*.f64 2 (log.f64 (cbrt.f64 (/.f64 x (cbrt.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/3 (log.f64 y)) (log.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (log.f64 x) (neg.f64 (*.f64 (log.f64 (cbrt.f64 y)) 1))) (fma.f64 (*.f64 -1/3 (log.f64 y)) 1 (*.f64 (log.f64 (cbrt.f64 y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (cbrt.f64 (log.f64 x)) 2) (cbrt.f64 (log.f64 x)) (neg.f64 (*.f64 (log.f64 (cbrt.f64 y)) 1))) (fma.f64 (*.f64 -1/3 (log.f64 y)) 1 (*.f64 (log.f64 (cbrt.f64 y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 x)) (neg.f64 (*.f64 (log.f64 (cbrt.f64 y)) 1))) (fma.f64 (*.f64 -1/3 (log.f64 y)) 1 (*.f64 (log.f64 (cbrt.f64 y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (log.f64 x) (neg.f64 (*.f64 (log.f64 y) 1/3))) (fma.f64 (neg.f64 (log.f64 y)) 1/3 (*.f64 (log.f64 y) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (cbrt.f64 (log.f64 x)) 2) (cbrt.f64 (log.f64 x)) (neg.f64 (*.f64 (log.f64 y) 1/3))) (fma.f64 (neg.f64 (log.f64 y)) 1/3 (*.f64 (log.f64 y) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 x)) (neg.f64 (*.f64 (log.f64 y) 1/3))) (fma.f64 (neg.f64 (log.f64 y)) 1/3 (*.f64 (log.f64 y) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (log.f64 x) (neg.f64 (*.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) 2)))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 (cbrt.f64 y)))) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) 2) (*.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (cbrt.f64 (log.f64 x)) 2) (cbrt.f64 (log.f64 x)) (neg.f64 (*.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) 2)))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 (cbrt.f64 y)))) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) 2) (*.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 x)) (neg.f64 (*.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) 2)))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 (cbrt.f64 y)))) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) 2) (*.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 y -1/6)) (log.f64 (/.f64 x (pow.f64 y 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1)) (log.f64 (/.f64 (cbrt.f64 x) (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (sqrt.f64 x) 1)) (log.f64 (/.f64 (sqrt.f64 x) (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (cbrt.f64 y)) 2))) (log.f64 (cbrt.f64 (/.f64 x (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (cbrt.f64 y)) 2))) (log.f64 (/.f64 (sqrt.f64 x) (cbrt.f64 (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 y 1/6))) (log.f64 (/.f64 (cbrt.f64 x) (pow.f64 y 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 x) (log.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (log.f64 (/.f64 (cbrt.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (log.f64 (/.f64 (/.f64 (cbrt.f64 y) x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (log.f64 (/.f64 x (cbrt.f64 y))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (log.f64 (cbrt.f64 x))) (log.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (sqrt.f64 x)) (log.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log1p.f64 -2) (log.f64 (neg.f64 (/.f64 (cbrt.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (/.f64 x (pow.f64 y 1/6))) (log.f64 (pow.f64 y 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (neg.f64 (neg.f64 x))) (log.f64 (neg.f64 (neg.f64 (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (/.f64 x 1)) (log.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (/.f64 x (pow.f64 (cbrt.f64 (cbrt.f64 y)) 2))) (log.f64 (cbrt.f64 (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (/.f64 x (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (log.f64 (sqrt.f64 (/.f64 x (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) (pow.f64 (cbrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) 2) (cbrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) (sqrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (log.f64 (/.f64 (cbrt.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 (*.f64 3 (log.f64 (/.f64 x (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (log.f64 (cbrt.f64 (/.f64 x (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 (cbrt.f64 y)) 3)) (+.f64 (pow.f64 (log.f64 x) 2) (+.f64 (pow.f64 (log.f64 (cbrt.f64 y)) 2) (*.f64 (log.f64 x) (log.f64 (cbrt.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 x) 2) (pow.f64 (log.f64 (cbrt.f64 y)) 2)) (log.f64 (*.f64 x (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (log.f64 (/.f64 (cbrt.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (log.f64 (/.f64 (/.f64 (cbrt.f64 y) x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 (/.f64 x (cbrt.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 x) (*.f64 -1/3 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) (pow.f64 (cbrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) 2) (cbrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) (sqrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 x)) 2) (cbrt.f64 (log.f64 x)) (*.f64 -1/3 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 x)) (*.f64 -1/3 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (/.f64 x (cbrt.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log.f64 (/.f64 x (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log.f64 (/.f64 x (cbrt.f64 y))))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 y))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 y)))) (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 y)) 2) (cbrt.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 y)) (pow.f64 (cbrt.f64 (cbrt.f64 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y 1/6) (pow.f64 y 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 y)) 4)) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 y 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 y) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y y) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 y 3) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 y)) 2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 y) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 y 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 y) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (/.f64 x (cbrt.f64 y))) (*.f64 2/3 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -2/3 (log.f64 y)) (log.f64 (/.f64 (cbrt.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 x) (log.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 x) (fma.f64 1/3 (log.f64 y) (*.f64 2/3 (log.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (log.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) (/.f64 x (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (log.f64 (*.f64 (pow.f64 (cbrt.f64 y) 2) (/.f64 (cbrt.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (log.f64 (/.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (neg.f64 x)) (log.f64 (*.f64 (neg.f64 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (neg.f64 x)) (log.f64 (*.f64 (pow.f64 (cbrt.f64 y) 2) (neg.f64 (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log1p.f64 -2) (log.f64 (*.f64 (neg.f64 (pow.f64 (cbrt.f64 y) 2)) (/.f64 (cbrt.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 2/3 (log.f64 y)) 2) (+.f64 (*.f64 -2/3 (log.f64 y)) (log.f64 (/.f64 (cbrt.f64 y) x)))) (/.f64 (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 2) (+.f64 (*.f64 -2/3 (log.f64 y)) (log.f64 (/.f64 (cbrt.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 -2/3 (log.f64 y)) (log.f64 x)) (log.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 -1 (neg.f64 x))) (log.f64 (*.f64 (neg.f64 (pow.f64 (cbrt.f64 y) 2)) (neg.f64 (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 -1 (/.f64 x (cbrt.f64 y)))) (log.f64 (neg.f64 (pow.f64 (cbrt.f64 y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 (pow.f64 (cbrt.f64 y) -2) (neg.f64 x))) (log.f64 (neg.f64 (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log.f64 (/.f64 x y))) (pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 2) (cbrt.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (sqrt.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 -2/3 (log.f64 y)) 3) (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 3)) (/.f64 1 (fma.f64 (log.f64 (/.f64 x (cbrt.f64 y))) (-.f64 (log.f64 (/.f64 x (cbrt.f64 y))) (*.f64 -2/3 (log.f64 y))) (pow.f64 (*.f64 2/3 (log.f64 y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 2/3 (log.f64 y)) 2) (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 2)) (/.f64 1 (+.f64 (*.f64 -2/3 (log.f64 y)) (log.f64 (/.f64 (cbrt.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (log.f64 (/.f64 x (cbrt.f64 y))) (-.f64 (log.f64 (/.f64 x (cbrt.f64 y))) (*.f64 -2/3 (log.f64 y))) (pow.f64 (*.f64 2/3 (log.f64 y)) 2)) (+.f64 (pow.f64 (*.f64 -2/3 (log.f64 y)) 3) (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (*.f64 -2/3 (log.f64 y)) (log.f64 (/.f64 (cbrt.f64 y) x))) (-.f64 (pow.f64 (*.f64 2/3 (log.f64 y)) 2) (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 -2/3 (log.f64 y)) 3) (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 3)) (fma.f64 (log.f64 (/.f64 x (cbrt.f64 y))) (-.f64 (log.f64 (/.f64 x (cbrt.f64 y))) (*.f64 -2/3 (log.f64 y))) (pow.f64 (*.f64 2/3 (log.f64 y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 -2/3 (log.f64 y)) 3) (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 3)) (+.f64 (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 2) (-.f64 (pow.f64 (*.f64 2/3 (log.f64 y)) 2) (*.f64 (log.f64 (/.f64 x (cbrt.f64 y))) (*.f64 -2/3 (log.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 2/3 (log.f64 y)) 2) (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 2)) (+.f64 (*.f64 -2/3 (log.f64 y)) (log.f64 (/.f64 (cbrt.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 -2/3 (log.f64 y)) 3) (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 3))) (neg.f64 (fma.f64 (log.f64 (/.f64 x (cbrt.f64 y))) (-.f64 (log.f64 (/.f64 x (cbrt.f64 y))) (*.f64 -2/3 (log.f64 y))) (pow.f64 (*.f64 2/3 (log.f64 y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 2/3 (log.f64 y)) 2) (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 2))) (neg.f64 (+.f64 (*.f64 -2/3 (log.f64 y)) (log.f64 (/.f64 (cbrt.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 2) (pow.f64 (*.f64 2/3 (log.f64 y)) 2)) (-.f64 (log.f64 (/.f64 x (cbrt.f64 y))) (*.f64 -2/3 (log.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (/.f64 x y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (/.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log.f64 (/.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (log.f64 (/.f64 x (cbrt.f64 y))) (-.f64 (log.f64 (/.f64 x (cbrt.f64 y))) (*.f64 -2/3 (log.f64 y))) (pow.f64 (*.f64 2/3 (log.f64 y)) 2)) (+.f64 (pow.f64 (*.f64 -2/3 (log.f64 y)) 3) (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (*.f64 -2/3 (log.f64 y)) (log.f64 (/.f64 (cbrt.f64 y) x))) (-.f64 (pow.f64 (*.f64 2/3 (log.f64 y)) 2) (pow.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (log.f64 (*.f64 (pow.f64 (cbrt.f64 y) 2) (/.f64 (cbrt.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (-.f64 (/.f64 x y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (-.f64 (/.f64 x (cbrt.f64 y)) 1)) (pow.f64 (cbrt.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (-.f64 (/.f64 x (cbrt.f64 y)) 1)) (pow.f64 (cbrt.f64 y) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 x (cbrt.f64 y)) (+.f64 1 (expm1.f64 (*.f64 -2/3 (log.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (-.f64 (/.f64 x (cbrt.f64 y)) 1)) (+.f64 1 (expm1.f64 (*.f64 -2/3 (log.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 -2/3 (log.f64 y)))) (/.f64 x (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (cbrt.f64 y) -2) (+.f64 1 (-.f64 (/.f64 x (cbrt.f64 y)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 -2/3 (log.f64 y)))) (+.f64 1 (-.f64 (/.f64 x (cbrt.f64 y)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (/.f64 x (cbrt.f64 y))) 1 (*.f64 -2/3 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 (/.f64 x (cbrt.f64 y))) (*.f64 -2/3 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 -2/3 (log.f64 y)) (log.f64 (/.f64 x (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 x) (neg.f64 (fma.f64 1/3 (log.f64 y) (*.f64 2/3 (log.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -2/3 (log.f64 y)) 1 (log.f64 (/.f64 x (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 -2/3 (log.f64 y))) (cbrt.f64 (pow.f64 (*.f64 2/3 (log.f64 y)) 2)) (log.f64 (/.f64 x (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 2/3 (log.f64 y)) 2)) (cbrt.f64 (*.f64 -2/3 (log.f64 y))) (log.f64 (/.f64 x (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) (pow.f64 (cbrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) 2) (*.f64 -2/3 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) 2) (cbrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) (*.f64 -2/3 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 -2/3 (log.f64 y))) (sqrt.f64 (*.f64 -2/3 (log.f64 y))) (log.f64 (/.f64 x (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) (sqrt.f64 (log.f64 (/.f64 x (cbrt.f64 y)))) (*.f64 -2/3 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 2/3 (log.f64 y)) (log.f64 (/.f64 x (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -2 (log.f64 (cbrt.f64 y)) (log.f64 (/.f64 x (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 x)) 2) (cbrt.f64 (log.f64 x)) (neg.f64 (fma.f64 1/3 (log.f64 y) (*.f64 2/3 (log.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 x)) (neg.f64 (fma.f64 1/3 (log.f64 y) (*.f64 2/3 (log.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (/.f64 x y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (log.f64 (/.f64 x y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log.f64 (/.f64 x y)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (cbrt.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (cbrt.f64 y) 2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (cbrt.f64 y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (cbrt.f64 y) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (cbrt.f64 y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 y) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 y) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 y) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 y)) 2) (pow.f64 (cbrt.f64 (cbrt.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 y)) 2) (*.f64 (cbrt.f64 (cbrt.f64 y)) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 y)) 4) (pow.f64 (cbrt.f64 (cbrt.f64 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (pow.f64 y 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y 1/6) (*.f64 (pow.f64 y 1/6) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 (cbrt.f64 y)) 2)) (cbrt.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 y) (/.f64 1 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (pow.f64 (cbrt.f64 y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 y) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (cbrt.f64 y)) 4) (pow.f64 (cbrt.f64 (cbrt.f64 y)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (pow.f64 (cbrt.f64 y) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 y (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2/3 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2/3 (log.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 y) 2))))))) |
| 1× | egg-herbie |
| 789× | fma-def_binary64 |
| 683× | sub-neg_binary64 |
| 447× | associate--l+_binary64 |
| 419× | unsub-neg_binary64 |
| 362× | distribute-neg-in_binary64 |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 32 | 468 |
| 1 | 78 | 396 |
| 2 | 161 | 360 |
| 3 | 443 | 276 |
| 4 | 1617 | 204 |
| 5 | 5981 | 204 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x))) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x))) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x))) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x))) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))) |
| Outputs |
|---|
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x)) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x)) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x)) |
(fma.f64 (log.f64 y) -1/3 (log.f64 x)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x)) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x)) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x)) |
(fma.f64 (log.f64 y) -1/3 (log.f64 x)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x)) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x)) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x)) |
(fma.f64 (log.f64 y) -1/3 (log.f64 x)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x)) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x)) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x)) |
(fma.f64 (log.f64 y) -1/3 (log.f64 x)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x)) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x)) |
(fma.f64 (log.f64 y) -1/3 (log.f64 x)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x)) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x)) |
(fma.f64 (log.f64 y) -1/3 (log.f64 x)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x)) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x)) |
(fma.f64 (log.f64 y) -1/3 (log.f64 x)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x)) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x)) |
(fma.f64 (log.f64 y) -1/3 (log.f64 x)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x)) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x)) |
(fma.f64 (log.f64 y) -1/3 (log.f64 x)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x)) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x)) |
(fma.f64 (log.f64 y) -1/3 (log.f64 x)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x)) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x)) |
(fma.f64 (log.f64 y) -1/3 (log.f64 x)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x)) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x)) |
(fma.f64 (log.f64 y) -1/3 (log.f64 x)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y)))))) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x))) |
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x)) |
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x)) |
(-.f64 (log.f64 x) (log.f64 y)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y)))))) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x))) |
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x)) |
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x)) |
(-.f64 (log.f64 x) (log.f64 y)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y)))))) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x))) |
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x)) |
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x)) |
(-.f64 (log.f64 x) (log.f64 y)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y)))))) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x))) |
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x)) |
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x)) |
(-.f64 (log.f64 x) (log.f64 y)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y)))))) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x))) |
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x)) |
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x)) |
(-.f64 (log.f64 x) (log.f64 y)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y)))))) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x))) |
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x)) |
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x)) |
(-.f64 (log.f64 x) (log.f64 y)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y)))))) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x))) |
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x)) |
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x)) |
(-.f64 (log.f64 x) (log.f64 y)) |
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y)))))) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x))) |
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x)) |
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x)) |
(-.f64 (log.f64 x) (log.f64 y)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y)))))) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x))) |
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x)) |
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x)) |
(-.f64 (log.f64 x) (log.f64 y)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y)))))) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x))) |
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x)) |
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x)) |
(-.f64 (log.f64 x) (log.f64 y)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y)))))) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x))) |
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x)) |
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x)) |
(-.f64 (log.f64 x) (log.f64 y)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))) |
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y)))))) |
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x))) |
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x)) |
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x)) |
(-.f64 (log.f64 x) (log.f64 y)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| 29.1b | (/.f64 (neg.f64 (*.f64 z z)) z) | |
| ✓ | 29.1b | (/.f64 (neg.f64 (*.f64 z z)) z) |
Compiled 17 to 6 computations (64.7% saved)
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | 0 | (/.f64 (neg.f64 (*.f64 z z)) z) |
| 0.0ms | z | @ | inf | (/.f64 (neg.f64 (*.f64 z z)) z) |
| 0.0ms | z | @ | -inf | (/.f64 (neg.f64 (*.f64 z z)) z) |
| 1× | batch-egg-rewrite |
| 345× | pow1_binary64 |
| 333× | add-sqr-sqrt_binary64 |
| 326× | *-un-lft-identity_binary64 |
| 324× | add-log-exp_binary64 |
| 323× | log1p-expm1-u_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 5 | 9 |
| 1 | 112 | 1 |
| 2 | 1716 | 1 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 (neg.f64 (*.f64 z z)) z) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 z)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 z))) (log.f64 (sqrt.f64 (exp.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 z)) 2)) (log.f64 (cbrt.f64 (exp.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 z)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 0 z) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (sqrt.f64 -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (*.f64 z (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (pow.f64 1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (pow.f64 (*.f64 (/.f64 1 z) z) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z z) (/.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z z) (pow.f64 (pow.f64 z -2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 z (cbrt.f64 z)) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 z (cbrt.f64 z)) (neg.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 z) (/.f64 z (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 z) z) (cbrt.f64 (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 z) z) (*.f64 (/.f64 z (cbrt.f64 z)) (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (neg.f64 (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (*.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (sqrt.f64 z)) (sqrt.f64 (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (cbrt.f64 z) z)) (pow.f64 (*.f64 (/.f64 z (cbrt.f64 z)) z) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 -1) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (sqrt.f64 z)) (pow.f64 (*.f64 z (sqrt.f64 z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 z (cbrt.f64 z))) (sqrt.f64 (*.f64 (cbrt.f64 z) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (cbrt.f64 z) z)) (sqrt.f64 (/.f64 z (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (cbrt.f64 z) z)) (pow.f64 (neg.f64 (/.f64 z (cbrt.f64 z))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (cbrt.f64 z) z) 1) (pow.f64 (cbrt.f64 z) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 z) z) (/.f64 (*.f64 z z) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (/.f64 z (cbrt.f64 z))) (/.f64 (*.f64 z z) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 z -1/2) (pow.f64 z 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (cbrt.f64 z) z) (sqrt.f64 z)) (/.f64 (/.f64 z (cbrt.f64 z)) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (sqrt.f64 z)) (pow.f64 z 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 z (cbrt.f64 z))) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 z) -1) -1) (pow.f64 (/.f64 (cbrt.f64 z) z) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (cbrt.f64 z) z) -1) (pow.f64 (pow.f64 (cbrt.f64 z) -1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 z (sqrt.f64 z)) 1/2) (sqrt.f64 (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (neg.f64 (*.f64 (cbrt.f64 z) z)) 1/2) (sqrt.f64 (/.f64 z (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 z (/.f64 z (cbrt.f64 z))) 1/2) (sqrt.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 -1 (*.f64 (cbrt.f64 z) z)) 1/2) (sqrt.f64 (/.f64 z (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 z (cbrt.f64 z)) 2) 1/3) (cbrt.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (*.f64 z z) (sqrt.f64 z)) 1/3) (cbrt.f64 (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2) 3) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (cbrt.f64 z)) 3) (pow.f64 (sqrt.f64 (cbrt.f64 z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 1 z)) 2) -1) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 z -1/2) -1) (pow.f64 (pow.f64 z -1/2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (/.f64 z (cbrt.f64 z)) 1) -1) (pow.f64 (/.f64 (cbrt.f64 z) (*.f64 z z)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 z) 1) -1) (pow.f64 (pow.f64 z -3/2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 1 (*.f64 (cbrt.f64 z) z)) -1) (pow.f64 (cbrt.f64 z) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 z) (*.f64 (cbrt.f64 z) z)) -1) (pow.f64 (/.f64 (sqrt.f64 z) (/.f64 z (cbrt.f64 z))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (/.f64 z (cbrt.f64 z)) -1) -1) (pow.f64 (/.f64 (cbrt.f64 z) (*.f64 z z)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 z) -1) -1) (pow.f64 (pow.f64 z -3/2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 z 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z z) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 z 6) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 z 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (cbrt.f64 z)) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 z) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 z) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 z) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 1 z) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 z)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 z)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 z 3))))) (#(struct:change #<rule egg-rr> (2) ((x . z)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 z)))))) |
| 1× | egg-herbie |
| 3× | sub-neg_binary64 |
| 2× | +-commutative_binary64 |
| 2× | fma-def_binary64 |
| 1× | *-commutative_binary64 |
| 1× | associate-+l-_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 4 | 36 |
| 1 | 6 | 36 |
| 2 | 8 | 36 |
| 3 | 9 | 36 |
| 4 | 11 | 36 |
| 5 | 15 | 36 |
| 6 | 19 | 36 |
| 7 | 24 | 36 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
| Outputs |
|---|
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| 2.8b | (exp.f64 (log.f64 (neg.f64 z))) | |
| ✓ | 2.8b | (exp.f64 (log.f64 (neg.f64 z))) |
Compiled 13 to 6 computations (53.8% saved)
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 45.0ms | z | @ | -inf | (exp.f64 (log.f64 (neg.f64 z))) |
| 0.0ms | z | @ | 0 | (exp.f64 (log.f64 (neg.f64 z))) |
| 0.0ms | z | @ | inf | (exp.f64 (log.f64 (neg.f64 z))) |
| 1× | egg-rewrite-iter-limit |
| 1× | batch-egg-rewrite |
| 289× | associate-*r*_binary64 |
| 276× | pow1_binary64 |
| 267× | add-sqr-sqrt_binary64 |
| 261× | *-un-lft-identity_binary64 |
| 255× | add-log-exp_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 5 | 3 |
| 1 | 86 | 3 |
| 2 | 962 | 3 |
| 0 | 5 | 3 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(exp.f64 (log.f64 (neg.f64 z))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (neg.f64 z)) (cbrt.f64 (neg.f64 z))) (cbrt.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (neg.f64 z)) (sqrt.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 z)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 z)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (neg.f64 z) (neg.f64 z)) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (neg.f64 z))))))) |
| 1× | egg-herbie |
| 3× | sub-neg_binary64 |
| 2× | +-commutative_binary64 |
| 2× | fma-def_binary64 |
| 1× | *-commutative_binary64 |
| 1× | associate-+l-_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 4 | 36 |
| 1 | 6 | 36 |
| 2 | 8 | 36 |
| 3 | 9 | 36 |
| 4 | 11 | 36 |
| 5 | 15 | 36 |
| 6 | 19 | 36 |
| 7 | 24 | 36 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
(*.f64 -1 z) |
| Outputs |
|---|
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 -1 z) |
(neg.f64 z) |
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.3b | (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) | |
| 0.1b | (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) | |
| ✓ | 0.1b | (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
| 0.3b | (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) |
Compiled 31 to 9 computations (71% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | -inf | (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
| 0.0ms | x | @ | 0 | (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
| 0.0ms | x | @ | inf | (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
| 0.0ms | y | @ | inf | (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
| 0.0ms | x | @ | -inf | (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
| 1× | batch-egg-rewrite |
| 853× | pow1_binary64 |
| 792× | add-log-exp_binary64 |
| 791× | log1p-expm1-u_binary64 |
| 791× | expm1-log1p-u_binary64 |
| 777× | add-exp-log_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 13 |
| 1 | 190 | 9 |
| 2 | 2662 | 9 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (log.f64 x) x) (*.f64 (neg.f64 (log.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (log.f64 x)) (*.f64 x (neg.f64 (log.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (log.f64 (/.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3)) x) (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 (log.f64 y) (log.f64 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (log.f64 x) 2) (pow.f64 (log.f64 y) 2)) x) (log.f64 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3))) (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 (log.f64 y) (log.f64 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (pow.f64 (log.f64 x) 2) (pow.f64 (log.f64 y) 2))) (log.f64 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (/.f64 x y) x))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (log.f64 (/.f64 x y)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (log.f64 (/.f64 x y)) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (pow.f64 (/.f64 x y) x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (log.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (log.f64 (/.f64 x y))))))))) |
| 1× | egg-herbie |
| 2798× | fma-neg_binary64 |
| 809× | fma-def_binary64 |
| 609× | unsub-neg_binary64 |
| 453× | distribute-rgt-in_binary64 |
| 285× | distribute-neg-in_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 40 | 432 |
| 1 | 93 | 360 |
| 2 | 184 | 360 |
| 3 | 506 | 264 |
| 4 | 1637 | 264 |
| 5 | 3882 | 264 |
| 6 | 4637 | 264 |
| 7 | 4873 | 264 |
| 8 | 4942 | 264 |
| 9 | 4962 | 264 |
| 10 | 4968 | 264 |
| 11 | 5332 | 264 |
| 12 | 5926 | 264 |
| 13 | 6007 | 264 |
| 14 | 6037 | 264 |
| 15 | 6063 | 264 |
| 16 | 6071 | 264 |
| 17 | 6111 | 264 |
| 18 | 6135 | 264 |
| 19 | 6135 | 264 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
| Outputs |
|---|
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) |
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.3b | (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) | |
| 0.2b | (*.f64 (neg.f64 (log.f64 y)) x) | |
| ✓ | 0.2b | (*.f64 (neg.f64 (log.f64 y)) x) |
| ✓ | 0.3b | (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) |
Compiled 38 to 9 computations (76.3% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 49.0ms | y | @ | 0 | (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) |
| 25.0ms | x | @ | 0 | (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) |
| 8.0ms | y | @ | -inf | (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) |
| 8.0ms | x | @ | -inf | (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) |
| 1.0ms | x | @ | inf | (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) |
| 1× | batch-egg-rewrite |
| 661× | pow1_binary64 |
| 605× | add-log-exp_binary64 |
| 604× | log1p-expm1-u_binary64 |
| 604× | expm1-log1p-u_binary64 |
| 592× | add-exp-log_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 22 |
| 1 | 160 | 17 |
| 2 | 1971 | 17 |
| 1× | node limit |
| Inputs |
|---|
(fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) |
(*.f64 (neg.f64 (log.f64 y)) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (log.f64 y)) (*.f64 x (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (log.f64 x)) (*.f64 x (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (log.f64 x)) 1) (*.f64 x (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (log.f64 x)) (*.f64 x (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (+.f64 (log.f64 x) (log.f64 y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (log.f64 x) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 (log.f64 x) (log.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y)))) (pow.f64 (cbrt.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y)))) 2) (cbrt.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y)))) (sqrt.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (log.f64 x)) 3) (pow.f64 (*.f64 x (log.f64 y)) 3)) (+.f64 (*.f64 (*.f64 x (log.f64 x)) (*.f64 x (log.f64 x))) (-.f64 (pow.f64 (*.f64 x (log.f64 y)) 2) (*.f64 (*.f64 x (log.f64 x)) (*.f64 x (log.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x (log.f64 x)) (*.f64 x (log.f64 x))) (pow.f64 (*.f64 x (log.f64 y)) 2)) (*.f64 x (+.f64 (log.f64 x) (log.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (+.f64 (log.f64 x) (log.f64 y))))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 x (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (log.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (log.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (log.f64 y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (log.f64 y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (log.f64 y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (log.f64 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (log.f64 y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (log.f64 y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (pow.f64 y x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (log.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (log.f64 y)))))))) |
| 1× | egg-herbie |
| 3070× | fma-neg_binary64 |
| 642× | fma-def_binary64 |
| 390× | unsub-neg_binary64 |
| 353× | associate--r-_binary64 |
| 283× | sub-neg_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 39 | 504 |
| 1 | 99 | 456 |
| 2 | 225 | 456 |
| 3 | 634 | 456 |
| 4 | 1523 | 456 |
| 5 | 3175 | 456 |
| 6 | 3718 | 456 |
| 7 | 3889 | 456 |
| 8 | 3906 | 456 |
| 9 | 3916 | 456 |
| 10 | 3916 | 456 |
| 11 | 6251 | 456 |
| 12 | 6930 | 456 |
| 13 | 7021 | 456 |
| 14 | 7051 | 456 |
| 15 | 7079 | 456 |
| 16 | 7083 | 456 |
| 17 | 7083 | 456 |
| 18 | 7103 | 456 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x)) |
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x))) |
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x))) |
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x))) |
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x))) |
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x))) |
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x))) |
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x))) |
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x))) |
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))) |
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))) |
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))) |
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 (log.f64 (/.f64 1 y)) x) |
(*.f64 (log.f64 (/.f64 1 y)) x) |
(*.f64 (log.f64 (/.f64 1 y)) x) |
(*.f64 (log.f64 (/.f64 1 y)) x) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
| Outputs |
|---|
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x)) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x)) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x)) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x)) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x))) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x))) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x))) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x))) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x))) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x))) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x))) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x))) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))) |
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y)))) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 (log.f64 (/.f64 1 y)) x) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 (log.f64 (/.f64 1 y)) x) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 (log.f64 (/.f64 1 y)) x) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 (log.f64 (/.f64 1 y)) x) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
(*.f64 -1 (*.f64 (log.f64 y) x)) |
(*.f64 x (neg.f64 (log.f64 y))) |
Compiled 8440 to 3974 computations (52.9% saved)
39 alts after pruning (31 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 485 | 19 | 504 |
| Fresh | 10 | 12 | 22 |
| Picked | 0 | 1 | 1 |
| Done | 2 | 7 | 9 |
| Total | 497 | 39 | 536 |
| Status | Error | Program |
|---|---|---|
| ✓ | 12.9b | (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
| 62.4b | (pow.f64 (/.f64 1 z) -1) | |
| 49.4b | (pow.f64 (sqrt.f64 (neg.f64 z)) 2) | |
| 43.8b | (*.f64 (-.f64 (log.f64 x) (log.f64 y)) x) | |
| 47.3b | (*.f64 (exp.f64 (log.f64 (log.f64 (/.f64 x y)))) x) | |
| 48.4b | (*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z)) | |
| ✓ | 35.9b | (-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
| 33.3b | (-.f64 (*.f64 x (-.f64 (log.f64 (/.f64 x (sqrt.f64 y))) (log.f64 (sqrt.f64 y)))) z) | |
| ✓ | 35.1b | (neg.f64 z) |
| ✓ | 50.5b | (exp.f64 (log.f64 (neg.f64 z))) |
| 43.8b | (+.f64 (*.f64 x (log.f64 x)) (*.f64 x (neg.f64 (log.f64 y)))) | |
| 62.5b | (-.f64 (+.f64 1 z) 1) | |
| 29.8b | (*.f64 (+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y)))) x) | |
| ▶ | 12.9b | (-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z) |
| 13.3b | (-.f64 (*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (log.f64 (/.f64 x y)))) z) | |
| ✓ | 28.4b | (-.f64 (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) z) |
| ▶ | 35.4b | (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
| 63.2b | (exp.f64 (log.f64 z)) | |
| 62.4b | (pow.f64 (cbrt.f64 z) 3) | |
| ✓ | 48.7b | (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
| ✓ | 48.3b | (/.f64 (neg.f64 (*.f64 z z)) z) |
| 36.0b | (*.f64 (log.f64 (/.f64 x y)) x) | |
| 13.5b | (-.f64 (pow.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 (log.f64 (/.f64 x y)))) 3) z) | |
| ▶ | 48.7b | (pow.f64 (/.f64 z (cbrt.f64 z)) 3/2) |
| 49.8b | (pow.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) | |
| 62.9b | (pow.f64 (pow.f64 z 3) 1/3) | |
| ▶ | 62.4b | (*.f64 1 z) |
| 48.4b | (/.f64 1 (/.f64 z (neg.f64 (*.f64 z z)))) | |
| 36.0b | (*.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z))) | |
| ▶ | 36.4b | (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) |
| 36.2b | (-.f64 (*.f64 (*.f64 (log.f64 (/.f64 x y)) (sqrt.f64 x)) (sqrt.f64 x)) z) | |
| ✓ | 12.9b | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 62.6b | (*.f64 (*.f64 z z) (/.f64 1 z)) | |
| 28.4b | (-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z) | |
| 49.9b | (*.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z)) | |
| 35.7b | (pow.f64 (cbrt.f64 (neg.f64 z)) 3) | |
| 47.4b | (*.f64 (+.f64 (log.f64 (/.f64 (cbrt.f64 (*.f64 x x)) 1)) (log.f64 (/.f64 (cbrt.f64 x) y))) x) | |
| 54.7b | (*.f64 (/.f64 -1 (sqrt.f64 z)) (pow.f64 z 3/2)) | |
| 41.3b | (-.f64 (*.f64 x (*.f64 1/3 (log.f64 (pow.f64 (/.f64 x y) 3)))) z) |
Compiled 807 to 580 computations (28.1% saved)
Found 8 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.3b | (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y)))) | |
| 0.2b | (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) | |
| 0.0b | (-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z) | |
| 0.0b | (log.f64 (cbrt.f64 (/.f64 x y))) | |
| ✓ | 0.0b | (-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z) |
| ✓ | 0.2b | (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) |
| ✓ | 0.3b | (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y)))) |
| 12.9b | (cbrt.f64 (/.f64 x y)) |
Compiled 46 to 16 computations (65.2% saved)
21 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 8.0ms | z | @ | 0 | (-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z) |
| 1.0ms | x | @ | 0 | (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) |
| 1.0ms | x | @ | 0 | (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y)))) |
| 1.0ms | y | @ | 0 | (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) |
| 1.0ms | y | @ | inf | (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) |
| 1× | batch-egg-rewrite |
| 799× | prod-diff_binary64 |
| 596× | log-prod_binary64 |
| 299× | pow2_binary64 |
| 299× | fma-def_binary64 |
| 207× | expm1-udef_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 42 |
| 1 | 234 | 27 |
| 2 | 3099 | 27 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y)))) |
(*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) |
(-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (*.f64 2/3 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 x y)) (fma.f64 (neg.f64 (sqrt.f64 (log.f64 y))) (sqrt.f64 (log.f64 y)) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 x) (neg.f64 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2/3 (log.f64 (/.f64 x y))) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (log.f64 y)) (log.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (neg.f64 x)) (log.f64 (/.f64 1 (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 x)) (log.f64 (*.f64 (sqrt.f64 x) (/.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (/.f64 x y))) (log.f64 (sqrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (log.f64 (cbrt.f64 x))) (log.f64 (*.f64 (cbrt.f64 x) (/.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (log.f64 x) (neg.f64 (*.f64 (log.f64 y) 1))) (fma.f64 (neg.f64 (log.f64 y)) 1 (*.f64 (log.f64 y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (cbrt.f64 (log.f64 x)) 2) (cbrt.f64 (log.f64 x)) (neg.f64 (*.f64 (log.f64 y) 1))) (fma.f64 (neg.f64 (log.f64 y)) 1 (*.f64 (log.f64 y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 x)) (neg.f64 (*.f64 (log.f64 y) 1))) (fma.f64 (neg.f64 (log.f64 y)) 1 (*.f64 (log.f64 y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (log.f64 x) (neg.f64 (*.f64 (cbrt.f64 (log.f64 y)) (pow.f64 (cbrt.f64 (log.f64 y)) 2)))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (pow.f64 (cbrt.f64 (log.f64 y)) 2) (*.f64 (cbrt.f64 (log.f64 y)) (pow.f64 (cbrt.f64 (log.f64 y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (cbrt.f64 (log.f64 x)) 2) (cbrt.f64 (log.f64 x)) (neg.f64 (*.f64 (cbrt.f64 (log.f64 y)) (pow.f64 (cbrt.f64 (log.f64 y)) 2)))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (pow.f64 (cbrt.f64 (log.f64 y)) 2) (*.f64 (cbrt.f64 (log.f64 y)) (pow.f64 (cbrt.f64 (log.f64 y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 x)) (neg.f64 (*.f64 (cbrt.f64 (log.f64 y)) (pow.f64 (cbrt.f64 (log.f64 y)) 2)))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (pow.f64 (cbrt.f64 (log.f64 y)) 2) (*.f64 (cbrt.f64 (log.f64 y)) (pow.f64 (cbrt.f64 (log.f64 y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 1 (sqrt.f64 y))) (log.f64 (/.f64 x (sqrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1)) (log.f64 (/.f64 (cbrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (sqrt.f64 x) 1)) (log.f64 (/.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 (sqrt.f64 x) (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 y))) (log.f64 (/.f64 (cbrt.f64 x) (sqrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) 1)) (log.f64 (cbrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)))) (log.f64 (cbrt.f64 (cbrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (pow.f64 (/.f64 x y) 1/6))) (log.f64 (pow.f64 (/.f64 x y) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 x) (log.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (log.f64 (/.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (log.f64 (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (log.f64 (/.f64 (/.f64 y x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (sqrt.f64 x)) (log.f64 (/.f64 y (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (log.f64 (cbrt.f64 x))) (log.f64 (/.f64 y (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 -1) (log.f64 (neg.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (neg.f64 (neg.f64 x))) (log.f64 (neg.f64 (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (/.f64 x (sqrt.f64 y))) (log.f64 (sqrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (/.f64 x 1)) (log.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (/.f64 x (pow.f64 (cbrt.f64 y) 2))) (log.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (cbrt.f64 x))) (log.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (/.f64 x y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (/.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log.f64 (/.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (log.f64 (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (log.f64 (/.f64 (/.f64 y x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (-.f64 (/.f64 x y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (+.f64 1 (-.f64 (cbrt.f64 (/.f64 x y)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log.f64 (/.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 x) (neg.f64 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 x)) 2) (cbrt.f64 (log.f64 x)) (neg.f64 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 x)) (neg.f64 (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (/.f64 x y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (log.f64 (/.f64 x y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log.f64 (/.f64 x y)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (/.f64 x y) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (/.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (/.f64 x y) x))) (log.f64 (sqrt.f64 (pow.f64 (/.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (log.f64 (pow.f64 (/.f64 x y) x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (/.f64 x y) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (pow.f64 (/.f64 x y) x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log.f64 (pow.f64 (/.f64 x y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (log.f64 (pow.f64 (/.f64 x y) x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log.f64 (pow.f64 (/.f64 x y) x)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (/.f64 x y) x)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (/.f64 x y) x)) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) (fma.f64 -1 z z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 z) (log.f64 (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 (pow.f64 (/.f64 x y) x) (exp.f64 z))) 2)) (log.f64 (cbrt.f64 (/.f64 (pow.f64 (/.f64 x y) x) (exp.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (/.f64 (pow.f64 (/.f64 x y) x) (exp.f64 z)))) (log.f64 (sqrt.f64 (/.f64 (pow.f64 (/.f64 x y) x) (exp.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) (pow.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) 2) (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) (sqrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 3) (pow.f64 z 3)) (/.f64 1 (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (sqrt.f64 z)) (-.f64 (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2)) (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 3) (pow.f64 z 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x (log.f64 (/.f64 x y)) z) (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2) (*.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 3) (pow.f64 z 3)) (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2) (*.f64 z z)) (fma.f64 x (log.f64 (/.f64 x y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 3) (pow.f64 z 3))) (neg.f64 (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2) (*.f64 z z))) (neg.f64 (fma.f64 x (log.f64 (/.f64 x y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 3) (pow.f64 (neg.f64 z) 3)) (+.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2) (-.f64 (pow.f64 (neg.f64 z) 2) (*.f64 (log.f64 (pow.f64 (/.f64 x y) x)) (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2) (pow.f64 (neg.f64 z) 2)) (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2)) (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 3) (pow.f64 z 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x (log.f64 (/.f64 x y)) z) (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2) (*.f64 z z))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (/.f64 x y) x) (exp.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1)) (exp.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (/.f64 x y) x) (+.f64 1 (expm1.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1)) (+.f64 1 (expm1.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1)) (exp.f64 (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (/.f64 x y) x) (/.f64 1 (exp.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1)) (/.f64 1 (exp.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 z)) (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 z)) (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 z)) (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 z)) (+.f64 1 (-.f64 (pow.f64 (/.f64 x y) x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (log.f64 (cbrt.f64 (/.f64 x y))) x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (log.f64 (cbrt.f64 (/.f64 x y))) x) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (log.f64 (/.f64 x y)) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (*.f64 3 x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (cbrt.f64 (/.f64 x y))) (*.f64 3 x) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (/.f64 x y)) x (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (/.f64 x y)) x (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 1 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 1 (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) 1 (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) 1 (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) 1 (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 (pow.f64 (/.f64 x y) x)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 (pow.f64 (/.f64 x y) x)) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 z) (log.f64 (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) (pow.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) 2) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) (pow.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) 2) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) (pow.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) 2) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) 2) (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) 2) (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) 2) (cbrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 2) (*.f64 (cbrt.f64 (log.f64 (/.f64 x y))) x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 2) (*.f64 (cbrt.f64 (log.f64 (/.f64 x y))) x) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (cbrt.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (cbrt.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2)) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2)) (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2)) (cbrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (log.f64 (/.f64 x y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (log.f64 (/.f64 x y))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (neg.f64 (cbrt.f64 z)) (log.f64 (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) (sqrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) (sqrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) (sqrt.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (*.f64 (sqrt.f64 (log.f64 (/.f64 x y))) x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 (/.f64 x y))) (*.f64 (sqrt.f64 (log.f64 (/.f64 x y))) x) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (log.f64 (/.f64 x y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (log.f64 (/.f64 x y))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (neg.f64 (sqrt.f64 z)) (log.f64 (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 3) (pow.f64 z 3)) (/.f64 1 (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2))) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 3) (pow.f64 z 3)) (/.f64 1 (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2))) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 3) (pow.f64 z 3)) (/.f64 1 (fma.f64 z (fma.f64 x (log.f64 (/.f64 x y)) z) (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2))) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z)) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (/.f64 x y) x)) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 x) (log.f64 (cbrt.f64 (/.f64 x y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 x) (log.f64 (cbrt.f64 (/.f64 x y))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (neg.f64 z)) 2) (cbrt.f64 (neg.f64 z)) (log.f64 (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 z)) (sqrt.f64 (neg.f64 z)) (log.f64 (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z) (log.f64 (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 z (log.f64 (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (sqrt.f64 z)) (-.f64 (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (sqrt.f64 z)) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (sqrt.f64 z)) (-.f64 (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (sqrt.f64 z)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (sqrt.f64 z)) (-.f64 (sqrt.f64 (log.f64 (pow.f64 (/.f64 x y) x))) (sqrt.f64 z)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (log.f64 (pow.f64 (/.f64 x y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) 3 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) 3 (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 2)) (cbrt.f64 (log.f64 (/.f64 x y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 (log.f64 (/.f64 x y))) 2)) (cbrt.f64 (log.f64 (/.f64 x y))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (log.f64 (/.f64 x y)))) (sqrt.f64 (log.f64 (/.f64 x y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (log.f64 (/.f64 x y)))) (sqrt.f64 (log.f64 (/.f64 x y))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (log.f64 (/.f64 x y)) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (log.f64 (/.f64 x y)) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (log.f64 (/.f64 x y)) (sqrt.f64 x)) (sqrt.f64 x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (log.f64 (/.f64 x y)) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) 1) (log.f64 (cbrt.f64 (/.f64 x y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) 1) (log.f64 (cbrt.f64 (/.f64 x y))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2)) (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) 2)) (cbrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y))))) (sqrt.f64 (log.f64 (cbrt.f64 (/.f64 x y)))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (log.f64 (pow.f64 (/.f64 x y) x)) z))))))) |
| 1× | egg-herbie |
| 596× | distribute-rgt-neg-in_binary64 |
| 543× | associate-+l+_binary64 |
| 520× | distribute-lft-neg-in_binary64 |
| 434× | distribute-rgt-out_binary64 |
| 388× | associate-*l*_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 15 | 176 |
| 1 | 31 | 156 |
| 2 | 62 | 126 |
| 3 | 135 | 126 |
| 4 | 603 | 126 |
| 5 | 3510 | 126 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 z) |
(*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) |
(+.f64 (*.f64 -1 z) (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x))) |
(+.f64 (*.f64 -1 z) (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x))) |
(+.f64 (*.f64 -1 z) (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x))) |
(*.f64 -1 z) |
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z)) |
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z)) |
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z)) |
(*.f64 -1 z) |
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z)) |
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z)) |
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z)) |
| Outputs |
|---|
(*.f64 -1 z) |
(neg.f64 z) |
(*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) |
(*.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y))))) |
(*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) |
(*.f64 x (log.f64 (/.f64 x y))) |
(+.f64 (*.f64 -1 z) (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x))) |
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z)) |
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x))) |
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z)) |
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 -1 z) (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x))) |
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z)) |
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(*.f64 -1 z) |
(neg.f64 z) |
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z)) |
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z)) |
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z)) |
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z)) |
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z)) |
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z)) |
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(*.f64 -1 z) |
(neg.f64 z) |
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z)) |
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z)) |
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z)) |
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z)) |
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z)) |
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z)) |
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
Compiled 8 to 6 computations (25% saved)
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| 12.9b | (log.f64 (/.f64 y x)) | |
| 0.2b | (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) | |
| ✓ | 0.2b | (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
| 12.9b | (log.f64 (/.f64 y x)) |
Compiled 24 to 7 computations (70.8% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | y | @ | 0 | (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
| 1.0ms | x | @ | 0 | (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
| 1.0ms | y | @ | inf | (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
| 1.0ms | y | @ | -inf | (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
| 0.0ms | x | @ | -inf | (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
| 1× | batch-egg-rewrite |
| 666× | pow1_binary64 |
| 615× | add-log-exp_binary64 |
| 614× | log1p-expm1-u_binary64 |
| 614× | expm1-log1p-u_binary64 |
| 602× | add-exp-log_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 11 |
| 1 | 149 | 9 |
| 2 | 2020 | 9 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 x (log.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (log.f64 (/.f64 y x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (log.f64 (/.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 y x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 y x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 y x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (log.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 y x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (/.f64 y x) x))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 y x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (log.f64 (/.f64 y x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (log.f64 (/.f64 y x)) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (pow.f64 (/.f64 y x) x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (log.f64 (/.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (log.f64 (/.f64 y x))))))))) |
| 1× | egg-herbie |
| 3152× | fma-neg_binary64 |
| 634× | fma-def_binary64 |
| 303× | unsub-neg_binary64 |
| 290× | associate--r+_binary64 |
| 266× | associate--r-_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 35 | 360 |
| 1 | 92 | 312 |
| 2 | 265 | 264 |
| 3 | 694 | 264 |
| 4 | 1683 | 264 |
| 5 | 3374 | 264 |
| 6 | 3616 | 264 |
| 7 | 3676 | 264 |
| 8 | 3692 | 264 |
| 9 | 3696 | 264 |
| 10 | 3698 | 264 |
| 11 | 5689 | 264 |
| 12 | 5935 | 264 |
| 13 | 6063 | 264 |
| 14 | 6259 | 264 |
| 15 | 6330 | 264 |
| 16 | 6334 | 264 |
| 17 | 6432 | 264 |
| 18 | 6458 | 264 |
| 19 | 6458 | 264 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
| Outputs |
|---|
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))) |
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) |
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x)) |
(*.f64 x (-.f64 (log.f64 x) (log.f64 y))) |
Found 6 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.5b | (cbrt.f64 z) | |
| 0.3b | (pow.f64 (/.f64 z (cbrt.f64 z)) 3/2) | |
| 0.3b | (/.f64 z (cbrt.f64 z)) | |
| ✓ | 0.3b | (/.f64 z (cbrt.f64 z)) |
| ✓ | 0.3b | (pow.f64 (/.f64 z (cbrt.f64 z)) 3/2) |
| ✓ | 0.5b | (cbrt.f64 z) |
Compiled 17 to 8 computations (52.9% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | z | @ | -inf | (pow.f64 (/.f64 z (cbrt.f64 z)) 3/2) |
| 1.0ms | z | @ | 0 | (pow.f64 (/.f64 z (cbrt.f64 z)) 3/2) |
| 1.0ms | z | @ | inf | (/.f64 z (cbrt.f64 z)) |
| 1.0ms | z | @ | inf | (pow.f64 (/.f64 z (cbrt.f64 z)) 3/2) |
| 1.0ms | z | @ | 0 | (cbrt.f64 z) |
| 1× | batch-egg-rewrite |
| 518× | pow1_binary64 |
| 497× | add-log-exp_binary64 |
| 497× | log1p-expm1-u_binary64 |
| 497× | expm1-log1p-u_binary64 |
| 485× | add-exp-log_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 18 |
| 1 | 130 | 10 |
| 2 | 1642 | 10 |
| 1× | node limit |
| Inputs |
|---|
(cbrt.f64 z) |
(pow.f64 (/.f64 z (cbrt.f64 z)) 3/2) |
(/.f64 z (cbrt.f64 z)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2) (cbrt.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 z 1/6) (pow.f64 z 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (sqrt.f64 (/.f64 1 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 z (cbrt.f64 z)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 z) 1/3) (pow.f64 (sqrt.f64 z) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (/.f64 (cbrt.f64 z) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 z) (pow.f64 z 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (neg.f64 z)) (sqrt.f64 (neg.f64 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 z 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (cbrt.f64 z)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 z 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 z (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 z))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 z) (/.f64 z (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 z (cbrt.f64 z)) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 z 3/2) (pow.f64 (/.f64 1 (cbrt.f64 z)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 3/2) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 z (cbrt.f64 z))) 3/2) (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 z) 3/2) (pow.f64 (cbrt.f64 z) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 z (cbrt.f64 z)) (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2)) (cbrt.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 z (cbrt.f64 z)) (pow.f64 z 1/6)) (pow.f64 z 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 z 3))))) (#(struct:change #<rule egg-rr> (2) ((x . z)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 z)))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 z (cbrt.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (/.f64 1 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 z) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 z (cbrt.f64 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 z (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (/.f64 1 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 z (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2) (cbrt.f64 (*.f64 z (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2) (*.f64 (cbrt.f64 (cbrt.f64 z)) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 z (cbrt.f64 z))) (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 z 1/6) (*.f64 (pow.f64 z 1/6) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (pow.f64 z 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (/.f64 1 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 z) (/.f64 1 (neg.f64 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 z)) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 z (cbrt.f64 z)) 1) (/.f64 (cbrt.f64 z) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 z) 1) (/.f64 (sqrt.f64 z) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2)) (/.f64 z (cbrt.f64 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 z (cbrt.f64 z)) (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2)) (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 z) (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2)) (/.f64 (sqrt.f64 z) (cbrt.f64 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 z 1/6)) (/.f64 z (pow.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 z (cbrt.f64 z)) (pow.f64 z 1/6)) (/.f64 (cbrt.f64 z) (pow.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 z) (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2)) (cbrt.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 z 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 z) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (cbrt.f64 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z z) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (cbrt.f64 z) z) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 z (neg.f64 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 z (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 z (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 z (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 z (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 z (cbrt.f64 z)))))))) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 0 | 0 |
| 1× | saturated |
| Inputs |
|---|
| Outputs |
|---|
Found 8 expressions with local error:
| New | Error | Program |
|---|---|---|
| 12.5b | (log.f64 (/.f64 x y)) | |
| 0.7b | (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) | |
| 0.6b | (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) | |
| 0.2b | (*.f64 x (log.f64 (/.f64 x y))) | |
| 0.2b | (*.f64 x (log.f64 (/.f64 x y))) | |
| 0.6b | (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) | |
| 0.7b | (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) | |
| 12.5b | (log.f64 (/.f64 x y)) |
Compiled 35 to 10 computations (71.4% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 0 | 0 |
| 1× | saturated |
| Inputs |
|---|
| Outputs |
|---|
Compiled 7450 to 2964 computations (60.2% saved)
35 alts after pruning (24 fresh and 11 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 494 | 10 | 504 |
| Fresh | 12 | 14 | 26 |
| Picked | 1 | 0 | 1 |
| Done | 1 | 11 | 12 |
| Total | 508 | 35 | 543 |
| Status | Error | Program |
|---|---|---|
| 0.2b | (-.f64 (*.f64 x (*.f64 3 (log.f64 (/.f64 (cbrt.f64 x) (cbrt.f64 y))))) z) | |
| 63.2b | (exp.f64 (log.f64 z)) | |
| ✓ | 12.9b | (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
| 62.4b | (pow.f64 (/.f64 1 z) -1) | |
| 49.4b | (pow.f64 (sqrt.f64 (neg.f64 z)) 2) | |
| 43.8b | (*.f64 (-.f64 (log.f64 x) (log.f64 y)) x) | |
| 48.4b | (*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z)) | |
| ✓ | 35.9b | (-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
| 36.1b | (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) | |
| ✓ | 35.1b | (neg.f64 z) |
| ✓ | 50.5b | (exp.f64 (log.f64 (neg.f64 z))) |
| 55.8b | (pow.f64 (pow.f64 (*.f64 z z) 1/3) 3/2) | |
| 28.4b | (-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z) | |
| 43.8b | (+.f64 (*.f64 x (log.f64 x)) (*.f64 x (neg.f64 (log.f64 y)))) | |
| 62.5b | (-.f64 (+.f64 1 z) 1) | |
| 29.8b | (*.f64 (+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y)))) x) | |
| 12.9b | (fma.f64 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) 3 (neg.f64 z)) | |
| 54.7b | (*.f64 (/.f64 -1 (sqrt.f64 z)) (pow.f64 z 3/2)) | |
| 48.6b | (*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (log.f64 (/.f64 x y)))) | |
| 63.2b | (pow.f64 (pow.f64 z 2/3) 3/2) | |
| ✓ | 12.9b | (-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z) |
| ✓ | 28.4b | (-.f64 (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) z) |
| ✓ | 35.4b | (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
| 62.4b | (pow.f64 (cbrt.f64 z) 3) | |
| ✓ | 48.7b | (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
| ✓ | 48.3b | (/.f64 (neg.f64 (*.f64 z z)) z) |
| 49.8b | (pow.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) | |
| ✓ | 62.4b | (*.f64 1 z) |
| 48.4b | (/.f64 1 (/.f64 z (neg.f64 (*.f64 z z)))) | |
| 4.2b | (-.f64 (*.f64 x (+.f64 (log.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1)) (log.f64 (/.f64 (cbrt.f64 x) y)))) z) | |
| 36.0b | (*.f64 (log.f64 (/.f64 x y)) x) | |
| ✓ | 12.9b | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 49.9b | (*.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z)) | |
| 35.7b | (pow.f64 (cbrt.f64 (neg.f64 z)) 3) | |
| 62.6b | (*.f64 (*.f64 z z) (/.f64 1 z)) |
Compiled 377 to 277 computations (26.5% saved)
| Inputs |
|---|
(neg.f64 z) |
(*.f64 1 z) |
(-.f64 (+.f64 1 z) 1) |
(/.f64 (neg.f64 (*.f64 z z)) z) |
(*.f64 (*.f64 z z) (/.f64 1 z)) |
(/.f64 1 (/.f64 z (neg.f64 (*.f64 z z)))) |
(*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z)) |
(pow.f64 (/.f64 1 z) -1) |
(*.f64 (log.f64 (/.f64 x y)) x) |
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(exp.f64 (log.f64 z)) |
(pow.f64 (cbrt.f64 z) 3) |
(exp.f64 (log.f64 (neg.f64 z))) |
(pow.f64 (cbrt.f64 (neg.f64 z)) 3) |
(pow.f64 (pow.f64 z 2/3) 3/2) |
(pow.f64 (sqrt.f64 (neg.f64 z)) 2) |
(*.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z)) |
(pow.f64 (pow.f64 (*.f64 z z) 1/3) 3/2) |
(*.f64 (-.f64 (log.f64 x) (log.f64 y)) x) |
(*.f64 (/.f64 -1 (sqrt.f64 z)) (pow.f64 z 3/2)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
(-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z) |
(+.f64 (*.f64 x (log.f64 x)) (*.f64 x (neg.f64 (log.f64 y)))) |
(*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) |
(-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(pow.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) |
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (log.f64 (/.f64 x y)))) |
(-.f64 (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) z) |
(fma.f64 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) 3 (neg.f64 z)) |
(-.f64 (*.f64 x (*.f64 3 (log.f64 (/.f64 (cbrt.f64 x) (cbrt.f64 y))))) z) |
(*.f64 (+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y)))) x) |
(-.f64 (*.f64 x (+.f64 (log.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1)) (log.f64 (/.f64 (cbrt.f64 x) y)))) z) |
| Outputs |
|---|
(-.f64 (*.f64 x (*.f64 3 (log.f64 (/.f64 (cbrt.f64 x) (cbrt.f64 y))))) z) |
6 calls:
| 48.0ms | (*.f64 x (log.f64 (/.f64 x y))) |
| 20.0ms | y |
| 19.0ms | x |
| 17.0ms | z |
| 16.0ms | (*.f64 x (log.f64 (/.f64 x y))) |
| Error | Segments | Branch |
|---|---|---|
| 0.2b | 1 | x |
| 0.2b | 1 | y |
| 0.2b | 1 | z |
| 0.2b | 1 | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 0.2b | 1 | (*.f64 x (log.f64 (/.f64 x y))) |
| 0.2b | 1 | (*.f64 x (log.f64 (/.f64 x y))) |
Compiled 316 to 162 computations (48.7% saved)
| Inputs |
|---|
(neg.f64 z) |
(*.f64 1 z) |
(-.f64 (+.f64 1 z) 1) |
(/.f64 (neg.f64 (*.f64 z z)) z) |
(*.f64 (*.f64 z z) (/.f64 1 z)) |
(/.f64 1 (/.f64 z (neg.f64 (*.f64 z z)))) |
(*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z)) |
(pow.f64 (/.f64 1 z) -1) |
(*.f64 (log.f64 (/.f64 x y)) x) |
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(exp.f64 (log.f64 z)) |
(pow.f64 (cbrt.f64 z) 3) |
(exp.f64 (log.f64 (neg.f64 z))) |
(pow.f64 (cbrt.f64 (neg.f64 z)) 3) |
(pow.f64 (pow.f64 z 2/3) 3/2) |
(pow.f64 (sqrt.f64 (neg.f64 z)) 2) |
(*.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z)) |
(pow.f64 (pow.f64 (*.f64 z z) 1/3) 3/2) |
(*.f64 (-.f64 (log.f64 x) (log.f64 y)) x) |
(*.f64 (/.f64 -1 (sqrt.f64 z)) (pow.f64 z 3/2)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
(-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z) |
(+.f64 (*.f64 x (log.f64 x)) (*.f64 x (neg.f64 (log.f64 y)))) |
(*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) |
(-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z) |
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(pow.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) |
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (log.f64 (/.f64 x y)))) |
(-.f64 (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) z) |
(fma.f64 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) 3 (neg.f64 z)) |
| Outputs |
|---|
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) |
(-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z) |
6 calls:
| 42.0ms | (*.f64 x (log.f64 (/.f64 x y))) |
| 41.0ms | z |
| 38.0ms | (*.f64 x (log.f64 (/.f64 x y))) |
| 37.0ms | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 31.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 0.3b | 2 | x |
| 0.3b | 2 | y |
| 11.9b | 3 | z |
| 5.1b | 3 | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 5.1b | 3 | (*.f64 x (log.f64 (/.f64 x y))) |
| 5.1b | 3 | (*.f64 x (log.f64 (/.f64 x y))) |
Compiled 272 to 135 computations (50.4% saved)
| 1× | binary-search |
| Time | Left | Right |
|---|---|---|
| 2.0ms | -1.0517761236800395e-297 | 1.2678281316435087e-308 |
Compiled 45 to 32 computations (28.9% saved)
| Inputs |
|---|
(neg.f64 z) |
(*.f64 1 z) |
(-.f64 (+.f64 1 z) 1) |
(/.f64 (neg.f64 (*.f64 z z)) z) |
(*.f64 (*.f64 z z) (/.f64 1 z)) |
(/.f64 1 (/.f64 z (neg.f64 (*.f64 z z)))) |
(*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z)) |
(pow.f64 (/.f64 1 z) -1) |
(*.f64 (log.f64 (/.f64 x y)) x) |
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(exp.f64 (log.f64 z)) |
(pow.f64 (cbrt.f64 z) 3) |
(exp.f64 (log.f64 (neg.f64 z))) |
(pow.f64 (cbrt.f64 (neg.f64 z)) 3) |
(pow.f64 (pow.f64 z 2/3) 3/2) |
(pow.f64 (sqrt.f64 (neg.f64 z)) 2) |
(*.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z)) |
(pow.f64 (pow.f64 (*.f64 z z) 1/3) 3/2) |
(*.f64 (-.f64 (log.f64 x) (log.f64 y)) x) |
(*.f64 (/.f64 -1 (sqrt.f64 z)) (pow.f64 z 3/2)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
(-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z) |
(+.f64 (*.f64 x (log.f64 x)) (*.f64 x (neg.f64 (log.f64 y)))) |
(*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) |
(-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z) |
| Outputs |
|---|
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(neg.f64 z) |
(-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z) |
6 calls:
| 51.0ms | x |
| 39.0ms | (*.f64 x (log.f64 (/.f64 x y))) |
| 39.0ms | z |
| 34.0ms | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 34.0ms | (*.f64 x (log.f64 (/.f64 x y))) |
| Error | Segments | Branch |
|---|---|---|
| 2.3b | 4 | x |
| 5.2b | 2 | y |
| 11.9b | 3 | z |
| 5.1b | 3 | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 5.1b | 3 | (*.f64 x (log.f64 (/.f64 x y))) |
| 5.1b | 3 | (*.f64 x (log.f64 (/.f64 x y))) |
Compiled 220 to 121 computations (45% saved)
| 3× | binary-search |
| Time | Left | Right |
|---|---|---|
| 30.0ms | -9.112745829018235e-304 | 1.0007386548555715e-307 |
| 18.0ms | -2.2985891511052535e-171 | -7.811587510703646e-177 |
| 4.0ms | -1.8282685123054418e+226 | -5.8227592249393186e+225 |
Compiled 375 to 273 computations (27.2% saved)
| Inputs |
|---|
(neg.f64 z) |
(*.f64 1 z) |
(-.f64 (+.f64 1 z) 1) |
(/.f64 (neg.f64 (*.f64 z z)) z) |
(*.f64 (*.f64 z z) (/.f64 1 z)) |
(/.f64 1 (/.f64 z (neg.f64 (*.f64 z z)))) |
(*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z)) |
(pow.f64 (/.f64 1 z) -1) |
(*.f64 (log.f64 (/.f64 x y)) x) |
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(exp.f64 (log.f64 z)) |
(pow.f64 (cbrt.f64 z) 3) |
(exp.f64 (log.f64 (neg.f64 z))) |
(pow.f64 (cbrt.f64 (neg.f64 z)) 3) |
(pow.f64 (pow.f64 z 2/3) 3/2) |
(pow.f64 (sqrt.f64 (neg.f64 z)) 2) |
(*.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z)) |
(pow.f64 (pow.f64 (*.f64 z z) 1/3) 3/2) |
(*.f64 (-.f64 (log.f64 x) (log.f64 y)) x) |
(*.f64 (/.f64 -1 (sqrt.f64 z)) (pow.f64 z 3/2)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
| Outputs |
|---|
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(neg.f64 z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(*.f64 (-.f64 (log.f64 x) (log.f64 y)) x) |
6 calls:
| 53.0ms | x |
| 31.0ms | (*.f64 x (log.f64 (/.f64 x y))) |
| 29.0ms | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 29.0ms | (*.f64 x (log.f64 (/.f64 x y))) |
| 12.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 5.6b | 5 | x |
| 12.9b | 1 | y |
| 12.9b | 1 | z |
| 6.2b | 3 | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 6.2b | 3 | (*.f64 x (log.f64 (/.f64 x y))) |
| 6.2b | 3 | (*.f64 x (log.f64 (/.f64 x y))) |
Compiled 180 to 103 computations (42.8% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 3.0ms | 2.9652606394705417e+141 | 1.0806300498142108e+149 |
| 20.0ms | 6.703773696062297e-153 | 1.582417663328743e-152 |
| 20.0ms | -2.2985891511052535e-171 | -7.811587510703646e-177 |
| 2.0ms | -1.8282685123054418e+226 | -5.8227592249393186e+225 |
Compiled 317 to 228 computations (28.1% saved)
| Inputs |
|---|
(neg.f64 z) |
(*.f64 1 z) |
(-.f64 (+.f64 1 z) 1) |
(/.f64 (neg.f64 (*.f64 z z)) z) |
(*.f64 (*.f64 z z) (/.f64 1 z)) |
(/.f64 1 (/.f64 z (neg.f64 (*.f64 z z)))) |
(*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z)) |
(pow.f64 (/.f64 1 z) -1) |
(*.f64 (log.f64 (/.f64 x y)) x) |
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(exp.f64 (log.f64 z)) |
(pow.f64 (cbrt.f64 z) 3) |
(exp.f64 (log.f64 (neg.f64 z))) |
(pow.f64 (cbrt.f64 (neg.f64 z)) 3) |
(pow.f64 (pow.f64 z 2/3) 3/2) |
(pow.f64 (sqrt.f64 (neg.f64 z)) 2) |
(*.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z)) |
(pow.f64 (pow.f64 (*.f64 z z) 1/3) 3/2) |
(*.f64 (-.f64 (log.f64 x) (log.f64 y)) x) |
(*.f64 (/.f64 -1 (sqrt.f64 z)) (pow.f64 z 3/2)) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
| Outputs |
|---|
(neg.f64 z) |
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) |
(*.f64 (-.f64 (log.f64 x) (log.f64 y)) x) |
6 calls:
| 40.0ms | x |
| 27.0ms | (*.f64 x (log.f64 (/.f64 x y))) |
| 26.0ms | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 26.0ms | (*.f64 x (log.f64 (/.f64 x y))) |
| 14.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 7.2b | 4 | x |
| 12.9b | 1 | y |
| 12.9b | 1 | z |
| 6.2b | 3 | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 6.2b | 3 | (*.f64 x (log.f64 (/.f64 x y))) |
| 6.2b | 3 | (*.f64 x (log.f64 (/.f64 x y))) |
Compiled 171 to 97 computations (43.3% saved)
| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 1.7496476825299264e+306 | +inf |
| 0.0ms | -inf | -2.799578606154893e+287 |
Compiled 17 to 12 computations (29.4% saved)
| Inputs |
|---|
(neg.f64 z) |
(*.f64 1 z) |
(-.f64 (+.f64 1 z) 1) |
(/.f64 (neg.f64 (*.f64 z z)) z) |
(*.f64 (*.f64 z z) (/.f64 1 z)) |
(/.f64 1 (/.f64 z (neg.f64 (*.f64 z z)))) |
(*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z)) |
(pow.f64 (/.f64 1 z) -1) |
(*.f64 (log.f64 (/.f64 x y)) x) |
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(exp.f64 (log.f64 z)) |
(pow.f64 (cbrt.f64 z) 3) |
(exp.f64 (log.f64 (neg.f64 z))) |
(pow.f64 (cbrt.f64 (neg.f64 z)) 3) |
(pow.f64 (pow.f64 z 2/3) 3/2) |
(pow.f64 (sqrt.f64 (neg.f64 z)) 2) |
(*.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z)) |
(pow.f64 (pow.f64 (*.f64 z z) 1/3) 3/2) |
(*.f64 (-.f64 (log.f64 x) (log.f64 y)) x) |
(*.f64 (/.f64 -1 (sqrt.f64 z)) (pow.f64 z 3/2)) |
| Outputs |
|---|
(neg.f64 z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(*.f64 (-.f64 (log.f64 x) (log.f64 y)) x) |
6 calls:
| 37.0ms | x |
| 25.0ms | (*.f64 x (log.f64 (/.f64 x y))) |
| 25.0ms | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 23.0ms | (*.f64 x (log.f64 (/.f64 x y))) |
| 12.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 7.2b | 4 | x |
| 12.9b | 1 | y |
| 12.9b | 1 | z |
| 6.2b | 3 | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 6.2b | 3 | (*.f64 x (log.f64 (/.f64 x y))) |
| 6.2b | 3 | (*.f64 x (log.f64 (/.f64 x y))) |
Compiled 163 to 96 computations (41.1% saved)
| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 1.7496476825299264e+306 | +inf |
| 0.0ms | -inf | -2.799578606154893e+287 |
Compiled 17 to 12 computations (29.4% saved)
| Inputs |
|---|
(neg.f64 z) |
(*.f64 1 z) |
(-.f64 (+.f64 1 z) 1) |
(/.f64 (neg.f64 (*.f64 z z)) z) |
(*.f64 (*.f64 z z) (/.f64 1 z)) |
(/.f64 1 (/.f64 z (neg.f64 (*.f64 z z)))) |
(*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z)) |
(pow.f64 (/.f64 1 z) -1) |
(*.f64 (log.f64 (/.f64 x y)) x) |
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(exp.f64 (log.f64 z)) |
(pow.f64 (cbrt.f64 z) 3) |
(exp.f64 (log.f64 (neg.f64 z))) |
(pow.f64 (cbrt.f64 (neg.f64 z)) 3) |
(pow.f64 (pow.f64 z 2/3) 3/2) |
(pow.f64 (sqrt.f64 (neg.f64 z)) 2) |
(*.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z)) |
(pow.f64 (pow.f64 (*.f64 z z) 1/3) 3/2) |
| Outputs |
|---|
(neg.f64 z) |
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
(neg.f64 z) |
5 calls:
| 28.0ms | x |
| 23.0ms | (*.f64 x (log.f64 (/.f64 x y))) |
| 23.0ms | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 11.0ms | z |
| 11.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 10.2b | 3 | x |
| 12.9b | 1 | y |
| 12.9b | 1 | z |
| 7.7b | 3 | (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) |
| 7.7b | 3 | (*.f64 x (log.f64 (/.f64 x y))) |
Compiled 139 to 81 computations (41.7% saved)
| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 1.7496476825299264e+306 | +inf |
| 0.0ms | -inf | -2.799578606154893e+287 |
Compiled 17 to 12 computations (29.4% saved)
| Inputs |
|---|
(neg.f64 z) |
(*.f64 1 z) |
(-.f64 (+.f64 1 z) 1) |
(/.f64 (neg.f64 (*.f64 z z)) z) |
(*.f64 (*.f64 z z) (/.f64 1 z)) |
(/.f64 1 (/.f64 z (neg.f64 (*.f64 z z)))) |
(*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z)) |
(pow.f64 (/.f64 1 z) -1) |
(*.f64 (log.f64 (/.f64 x y)) x) |
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
| Outputs |
|---|
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
(neg.f64 z) |
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) |
3 calls:
| 45.0ms | z |
| 33.0ms | y |
| 22.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 17.5b | 3 | x |
| 27.0b | 5 | y |
| 18.0b | 7 | z |
Compiled 72 to 42 computations (41.7% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 16.0ms | 1.7931332241302844e-90 | 3.7312080873712615e-90 |
| 22.0ms | -490416034.5919109 | -0.0005570752841486735 |
Compiled 272 to 207 computations (23.9% saved)
| Inputs |
|---|
(neg.f64 z) |
(*.f64 1 z) |
(-.f64 (+.f64 1 z) 1) |
(/.f64 (neg.f64 (*.f64 z z)) z) |
(*.f64 (*.f64 z z) (/.f64 1 z)) |
(/.f64 1 (/.f64 z (neg.f64 (*.f64 z z)))) |
(*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z)) |
(pow.f64 (/.f64 1 z) -1) |
(*.f64 (log.f64 (/.f64 x y)) x) |
| Outputs |
|---|
(*.f64 (log.f64 (/.f64 x y)) x) |
(neg.f64 z) |
(*.f64 (log.f64 (/.f64 x y)) x) |
3 calls:
| 41.0ms | z |
| 28.0ms | y |
| 19.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 18.2b | 3 | x |
| 27.1b | 5 | y |
| 18.4b | 7 | z |
Compiled 65 to 38 computations (41.5% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 15.0ms | 1.7931332241302844e-90 | 3.7312080873712615e-90 |
| 21.0ms | -490416034.5919109 | -0.0005570752841486735 |
Compiled 257 to 192 computations (25.3% saved)
Total -28.0b remaining (-79.6%)
Threshold costs -28.0b (-79.6%)
| Inputs |
|---|
(neg.f64 z) |
(*.f64 1 z) |
(-.f64 (+.f64 1 z) 1) |
(/.f64 (neg.f64 (*.f64 z z)) z) |
(*.f64 (*.f64 z z) (/.f64 1 z)) |
(/.f64 1 (/.f64 z (neg.f64 (*.f64 z z)))) |
(*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z)) |
(pow.f64 (/.f64 1 z) -1) |
| Outputs |
|---|
(neg.f64 z) |
3 calls:
| 6.0ms | x |
| 5.0ms | y |
| 5.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 35.1b | 1 | x |
| 35.1b | 1 | y |
| 35.1b | 1 | z |
Compiled 59 to 35 computations (40.7% saved)
| 1× | egg-herbie |
| 14× | *-commutative_binary64 |
| 13× | +-commutative_binary64 |
| 13× | sub-neg_binary64 |
| 7× | neg-sub0_binary64 |
| 7× | neg-mul-1_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 76 | 423 |
| 1 | 104 | 423 |
| 2 | 127 | 423 |
| 3 | 139 | 423 |
| 4 | 142 | 423 |
| 1× | saturated |
| Inputs |
|---|
(-.f64 (*.f64 x (*.f64 3 (log.f64 (/.f64 (cbrt.f64 x) (cbrt.f64 y))))) z) |
(if (<=.f64 y 0) (-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) (-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z)) |
(if (<=.f64 x -9999999999999999613300728333138614158656013804472910722260188106898877933626732224819925546638620725877678611585164563028980399740553218842096696042786355031638703687528415058284784747112853848287855356936724432692495112994816) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) (if (<=.f64 x -2447483870899663/1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (if (<=.f64 x 5060056332682765/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (neg.f64 z) (-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z)))) |
(if (<=.f64 x -9999999999999999613300728333138614158656013804472910722260188106898877933626732224819925546638620725877678611585164563028980399740553218842096696042786355031638703687528415058284784747112853848287855356936724432692495112994816) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) (if (<=.f64 x -2447483870899663/1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (if (<=.f64 x 914006524761467/58968162887836583628774290327941701420576894069006881693378223441337877537377325813845730080900918242835443359855685076558915384842574884883772410178635875682021801984) (neg.f64 z) (if (<=.f64 x 9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) (*.f64 (-.f64 (log.f64 x) (log.f64 y)) x))))) |
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) (*.f64 (-.f64 (log.f64 x) (log.f64 y)) x))) |
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (*.f64 (-.f64 (log.f64 x) (log.f64 y)) x))) |
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (neg.f64 z))) |
(if (<=.f64 x -490000000) (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) (if (<=.f64 x 33943779516653060/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (neg.f64 z) (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x))) |
(if (<=.f64 x -490000000) (*.f64 (log.f64 (/.f64 x y)) x) (if (<=.f64 x 33943779516653060/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (neg.f64 z) (*.f64 (log.f64 (/.f64 x y)) x))) |
(neg.f64 z) |
| Outputs |
|---|
(-.f64 (*.f64 x (*.f64 3 (log.f64 (/.f64 (cbrt.f64 x) (cbrt.f64 y))))) z) |
(if (<=.f64 y 0) (-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) (-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z)) |
(if (<=.f64 x -9999999999999999613300728333138614158656013804472910722260188106898877933626732224819925546638620725877678611585164563028980399740553218842096696042786355031638703687528415058284784747112853848287855356936724432692495112994816) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) (if (<=.f64 x -2447483870899663/1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (if (<=.f64 x 5060056332682765/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (neg.f64 z) (-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z)))) |
(if (<=.f64 x -9999999999999999613300728333138614158656013804472910722260188106898877933626732224819925546638620725877678611585164563028980399740553218842096696042786355031638703687528415058284784747112853848287855356936724432692495112994816) (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) (if (<=.f64 x -2447483870899663/1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (if (<=.f64 x 5060056332682765/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (neg.f64 z) (-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z)))) |
(if (<=.f64 x -9999999999999999613300728333138614158656013804472910722260188106898877933626732224819925546638620725877678611585164563028980399740553218842096696042786355031638703687528415058284784747112853848287855356936724432692495112994816) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) (if (<=.f64 x -2447483870899663/1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (if (<=.f64 x 914006524761467/58968162887836583628774290327941701420576894069006881693378223441337877537377325813845730080900918242835443359855685076558915384842574884883772410178635875682021801984) (neg.f64 z) (if (<=.f64 x 9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) (*.f64 (-.f64 (log.f64 x) (log.f64 y)) x))))) |
(if (<=.f64 x -9999999999999999613300728333138614158656013804472910722260188106898877933626732224819925546638620725877678611585164563028980399740553218842096696042786355031638703687528415058284784747112853848287855356936724432692495112994816) (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) (if (<=.f64 x -2447483870899663/1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (if (<=.f64 x 914006524761467/58968162887836583628774290327941701420576894069006881693378223441337877537377325813845730080900918242835443359855685076558915384842574884883772410178635875682021801984) (neg.f64 z) (if (<=.f64 x 9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) (*.f64 x (-.f64 (log.f64 x) (log.f64 y))))))) |
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) (*.f64 (-.f64 (log.f64 x) (log.f64 y)) x))) |
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) (*.f64 x (-.f64 (log.f64 x) (log.f64 y))))) |
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (*.f64 (-.f64 (log.f64 x) (log.f64 y)) x))) |
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (*.f64 x (-.f64 (log.f64 x) (log.f64 y))))) |
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (neg.f64 z))) |
(if (<=.f64 x -490000000) (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) (if (<=.f64 x 33943779516653060/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (neg.f64 z) (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x))) |
(if (<=.f64 x -490000000) (*.f64 x (neg.f64 (log.f64 (/.f64 y x)))) (if (<=.f64 x 8485944879163265/2293498615990071511610820895302086940796564989168281123737588839386922876088484808070018553110125686554624) (neg.f64 z) (*.f64 x (neg.f64 (log.f64 (/.f64 y x)))))) |
(if (<=.f64 x -490000000) (*.f64 (log.f64 (/.f64 x y)) x) (if (<=.f64 x 33943779516653060/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (neg.f64 z) (*.f64 (log.f64 (/.f64 x y)) x))) |
(if (<=.f64 x -490000000) (*.f64 x (log.f64 (/.f64 x y))) (if (<=.f64 x 8485944879163265/2293498615990071511610820895302086940796564989168281123737588839386922876088484808070018553110125686554624) (neg.f64 z) (*.f64 x (log.f64 (/.f64 x y))))) |
(neg.f64 z) |
| 1× | fuel |
Compiled 581 to 256 computations (55.9% saved)
Loading profile data...