fbase.h 715 B

12345678910111213141516171819202122232425262728
  1. #pragma once
  2. #include "config.h"
  3. #include <gmp.h>
  4. #include <stdint.h>
  5. #include "group.h"
  6. #define FB_FRAMES (64/(FB_BASE) + (64 % (FB_BASE) != 0))
  7. #define FB_MASK ((1 << (FB_BASE)) - 1)
  8. typedef mpz_t fbase_unit[1 << FB_BASE];
  9. typedef fbase_unit fbase_t[FB_FRAMES];
  10. typedef fbase_unit *fbase_ptr;
  11. void fb_powmp_ui(mpz_t rop, fbase_t pb, const uint64_t exp);
  12. fbase_ptr fb_init();
  13. void fb_set(fbase_t pb, const mpz_t n);
  14. void fb_set_small(fbase_t pb, const mpz_t n);
  15. void fb_clear(fbase_t pb);
  16. void fb_copy(fbase_t source, fbase_t dst);
  17. #define fb_init_set(pb, base) \
  18. do { \
  19. fb_init(pb); fb_set(pb, base); \
  20. } while(0)