Quadripoint.hpp 738 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef __QUADRIPOINT_HPP
  2. #define __QUADRIPOINT_HPP
  3. #include <functional>
  4. #include "Scalar.hpp"
  5. extern "C" {
  6. #include "fp12e.h"
  7. }
  8. class Quadripoint
  9. {
  10. public:
  11. Quadripoint();
  12. Quadripoint(const fp12e_t& p1, const fp12e_t& p2, const fp12e_t& p3, const fp12e_t& p4);
  13. fp12e_t& operator[](int n);
  14. const fp12e_t& operator[](int n) const;
  15. Quadripoint operator+(const Quadripoint& b) const;
  16. Quadripoint operator*(const Scalar& exp) const;
  17. bool operator==(const Quadripoint& b) const;
  18. bool operator!=(const Quadripoint& b) const;
  19. Quadripoint square() const;
  20. friend class QuadripointHash;
  21. private:
  22. fp12e_t point[4];
  23. };
  24. class QuadripointHash
  25. {
  26. public:
  27. size_t operator()(const Quadripoint& x) const;
  28. };
  29. #endif