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.

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