diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-03-23 01:52:36 +0200 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-03-23 01:59:11 +0200 |
commit | 57207b88184f005616de1af4af5e9e9632a4503a (patch) | |
tree | dac9b0d716621aababad41e9990788a541d968e8 /py/mpz.h | |
parent | fd232c3ef7d318f47b8d5a32366b96f7375fa407 (diff) | |
download | micropython-57207b88184f005616de1af4af5e9e9632a4503a.tar.gz micropython-57207b88184f005616de1af4af5e9e9632a4503a.zip |
objint_mpz: Quick&dirty implementation of bitwise operations.
Made solely to unbreak int-long.py test which in turn uncovered thinko
with implementation of inplace ops. On mpz level, bitwise ops implemented
only for same-sign numbers, and are not efficient (unconditional calling of
mpn_cmp() is apparently superfluous).
Diffstat (limited to 'py/mpz.h')
-rw-r--r-- | py/mpz.h | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -59,6 +59,9 @@ void mpz_add_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs); void mpz_sub_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs); void mpz_mul_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs); void mpz_pow_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs); +void mpz_and_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs); +void mpz_or_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs); +void mpz_xor_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs); mpz_t *mpz_gcd(const mpz_t *z1, const mpz_t *z2); mpz_t *mpz_lcm(const mpz_t *z1, const mpz_t *z2); |