diff options
Diffstat (limited to 'mpz.h')
-rw-r--r-- | mpz.h | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -0,0 +1,22 @@ +#pragma once + +#include <gmp.h> +#include <stddef.h> + +/* This struct contains the instance data used by the iterators. Allocation is + * performed at a single point to reduce run-time overhead. + * + * 'current' contains the iterator's current value. The rest of the members are + * temporary variables. See the appropriate memory management functions for + * this type. */ +struct pszip_mpz_state +{ + mpz_t current, a, b, c, d; +}; + +void pszip_mpz_state_init(struct pszip_mpz_state *mpzs, size_t popcnt, size_t size); +void pszip_mpz_state_clear(struct pszip_mpz_state *mpzs); +void pszip_mpz_init_data(mpz_t n, const void *data, size_t size); + +void pszip_mpz_iterate_bithack01(struct pszip_mpz_state *mpzs); +void pszip_mpz_iterate_bithack02(struct pszip_mpz_state *mpzs); |