From 57207b88184f005616de1af4af5e9e9632a4503a Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 23 Mar 2014 01:52:36 +0200 Subject: 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). --- py/mpz.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'py/mpz.h') diff --git a/py/mpz.h b/py/mpz.h index afd46cfde..777889322 100644 --- a/py/mpz.h +++ b/py/mpz.h @@ -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); -- cgit v1.2.3