Quadripoint.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #include "Quadripoint.hpp"
  2. void Quadripoint::print() const
  3. {
  4. fp12e_print(stdout,point[0]);
  5. jump;
  6. fp12e_print(stdout,point[1]);
  7. jump;
  8. fp12e_print(stdout,point[2]);
  9. jump;
  10. fp12e_print(stdout,point[3]);
  11. JUMP;
  12. }
  13. bool Quadripoint::operator==(Quadripoint b)
  14. {
  15. bool rop;
  16. if(fp12e_iseq(point[0],b[0]) && fp12e_iseq(point[1],b[1]) && fp12e_iseq(point[2],b[2]) && fp12e_iseq(point[3],b[3]))
  17. {
  18. rop=true;
  19. }
  20. else
  21. {
  22. rop=false;
  23. }
  24. return rop;
  25. }
  26. Quadripoint Quadripoint::square()
  27. {
  28. Quadripoint rop;
  29. fp12e_square(rop[0],point[0]);
  30. fp12e_square(rop[1],point[1]);
  31. fp12e_square(rop[2],point[2]);
  32. fp12e_square(rop[3],point[3]);
  33. return rop;
  34. }
  35. Quadripoint Quadripoint::pow_vartime(const scalar_t exp)
  36. {
  37. Quadripoint rop;
  38. fp12e_pow_vartime(rop[0],point[0],exp);
  39. fp12e_pow_vartime(rop[1],point[1],exp);
  40. fp12e_pow_vartime(rop[2],point[2],exp);
  41. fp12e_pow_vartime(rop[3],point[3],exp);
  42. return rop;
  43. }
  44. Quadripoint Quadripoint::operator*(Quadripoint b)
  45. {
  46. Quadripoint rop;
  47. fp12e_mul(rop[0],point[0],b.point[0]);
  48. fp12e_mul(rop[1],point[1],b.point[1]);
  49. fp12e_mul(rop[2],point[2],b.point[2]);
  50. fp12e_mul(rop[3],point[3],b.point[3]);
  51. return rop;
  52. }
  53. fp12e_t& Quadripoint::operator[](int n)
  54. {
  55. return point[n];
  56. }
  57. Quadripoint::Quadripoint()
  58. {
  59. fp12e_setone(point[0]);
  60. fp12e_setone(point[1]);
  61. fp12e_setone(point[2]);
  62. fp12e_setone(point[3]);
  63. }
  64. Quadripoint::Quadripoint(fp12e_t p1,fp12e_t p2, fp12e_t p3,fp12e_t p4)
  65. {
  66. fp12e_set(point[0],p1);
  67. fp12e_set(point[1],p2);
  68. fp12e_set(point[2],p3);
  69. fp12e_set(point[3],p4);
  70. }
  71. void Quadripoint::set(fp12e_t element,int numpoint)
  72. {
  73. fp12e_set(point[numpoint],element);
  74. }
  75. void Quadripoint::print(int numpoint) const
  76. {
  77. fp12e_print(stdout,point[numpoint]);
  78. JUMP;
  79. }