You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.3 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. #ifndef ZQFIELD_H
  2. #define ZQFIELD_H
  3. #include "circom.h"
  4. class ZqField {
  5. mpz_t tmp;
  6. public:
  7. BigInt p;
  8. BigInt one;
  9. BigInt zero;
  10. size_t nBits;
  11. BigInt mask;
  12. ZqField(PBigInt ap);
  13. ~ZqField();
  14. void copyn(PBigInt a, PBigInt b, int n);
  15. void add(PBigInt r,PBigInt a, PBigInt b);
  16. void sub(PBigInt r,PBigInt a, PBigInt b);
  17. void neg(PBigInt r,PBigInt a);
  18. void mul(PBigInt r,PBigInt a, PBigInt b);
  19. void div(PBigInt r,PBigInt a, PBigInt b);
  20. void idiv(PBigInt r,PBigInt a, PBigInt b);
  21. void mod(PBigInt r,PBigInt a, PBigInt b);
  22. void pow(PBigInt r,PBigInt a, PBigInt b);
  23. void lt(PBigInt r, PBigInt a, PBigInt b);
  24. void eq(PBigInt r, PBigInt a, PBigInt b);
  25. void gt(PBigInt r, PBigInt a, PBigInt b);
  26. void leq(PBigInt r, PBigInt a, PBigInt b);
  27. void geq(PBigInt r, PBigInt a, PBigInt b);
  28. void neq(PBigInt r, PBigInt a, PBigInt b);
  29. void land(PBigInt r, PBigInt a, PBigInt b);
  30. void lor(PBigInt r, PBigInt a, PBigInt b);
  31. void lnot(PBigInt r, PBigInt a);
  32. void band(PBigInt r, PBigInt a, PBigInt b);
  33. void bor(PBigInt r, PBigInt a, PBigInt b);
  34. void bxor(PBigInt r, PBigInt a, PBigInt b);
  35. void bnot(PBigInt r, PBigInt a);
  36. void shl(PBigInt r, PBigInt a, PBigInt b);
  37. void shr(PBigInt r, PBigInt a, PBigInt b);
  38. int isTrue(PBigInt a);
  39. };
  40. #endif // ZQFIELD_H