BitEvalL3.hpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef __BITEVALL3_HPP
  2. #define __BITEVALL3_HPP
  3. #include "typedef.h"
  4. #include "Bipoint.hpp"
  5. #include "Quadripoint.hpp"
  6. #include "zout.hpp"
  7. #include <vector>
  8. // si le circuit utilise des additions de niveau 3, on utilise BitEvalL3 et on utilise pas BitEvalL3
  9. class BitEvalL3
  10. {
  11. public:
  12. BitEvalL3() = default; //on remet le constructeur par défaut par défaut qui n'existe plus lorsqu'un constructeur est spécifié
  13. Quadripoint get_alpha() const;
  14. //Type get_type() const;
  15. vector<Bipoint<curvepoint_fp_t>> get_vec_bipoints() const;
  16. //Bipoint<twistpoint_fp2_t> get_bipoint_twist() const;
  17. vector<Quadripoint> get_vec_quadripoints() const;
  18. void set_alpha(Quadripoint a);
  19. void set_vec_bipoints(vector<Bipoint<curvepoint_fp_t>> b);
  20. void set_bipoint_curve(Bipoint<curvepoint_fp_t> b);
  21. //void set_bipoint_twist(Bipoint<twistpoint_fp2_t> c);
  22. void set_vec_quadripoints(vector<Quadripoint> d); //utilisé dans additionL3
  23. void set_quadripoint(Quadripoint d); //utilisé dans multiplicationL1L2
  24. void print() const;
  25. private:
  26. //Type type;
  27. //Bipoint<twistpoint_fp2_t> bipoint_twist;
  28. Quadripoint alpha;
  29. vector<Bipoint<curvepoint_fp_t>> vec_bipoints;
  30. vector<Quadripoint> vec_quadripoints;
  31. //int nb_additions;
  32. };
  33. #endif