123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- #include "Bipoint.hpp"
- Bipoint<curvepoint_fp_t>::Bipoint()
- {
- curvepoint_fp_setneutral(point[0]);
- curvepoint_fp_setneutral(point[1]);
- }
- Bipoint<twistpoint_fp2_t>::Bipoint()
- {
- twistpoint_fp2_setneutral(point[0]);
- twistpoint_fp2_setneutral(point[1]);
- }
- Bipoint<curvepoint_fp_t>::Bipoint(curvepoint_fp_t p1, curvepoint_fp_t p2)
- {
- curvepoint_fp_set(point[0], p1);
- curvepoint_fp_set(point[1], p2);
- }
- Bipoint<twistpoint_fp2_t>::Bipoint(twistpoint_fp2_t p1, twistpoint_fp2_t p2)
- {
- twistpoint_fp2_set(point[0], p1);
- twistpoint_fp2_set(point[1], p2);
- }
- curvepoint_fp_t& Bipoint<curvepoint_fp_t>::operator[](int n)
- {
- return point[n];
- }
- twistpoint_fp2_t& Bipoint<twistpoint_fp2_t>::operator[](int n)
- {
- return point[n];
- }
- const curvepoint_fp_t& Bipoint<curvepoint_fp_t>::operator[](int n) const
- {
- return point[n];
- }
- const twistpoint_fp2_t& Bipoint<twistpoint_fp2_t>::operator[](int n) const
- {
- return point[n];
- }
- Bipoint<curvepoint_fp_t> Bipoint<curvepoint_fp_t>::operator+(const Bipoint<curvepoint_fp_t>& b) const
- {
- Bipoint<curvepoint_fp_t> retval;
- curvepoint_fp_add_vartime(retval[0], point[0], b.point[0]);
- curvepoint_fp_add_vartime(retval[1], point[1], b.point[1]);
- return retval;
- }
- Bipoint<twistpoint_fp2_t> Bipoint<twistpoint_fp2_t>::operator+(const Bipoint<twistpoint_fp2_t>& b) const
- {
- Bipoint<twistpoint_fp2_t> retval;
- twistpoint_fp2_add_vartime(retval[0], point[0], b.point[0]);
- twistpoint_fp2_add_vartime(retval[1], point[1], b.point[1]);
- return retval;
- }
- Bipoint<curvepoint_fp_t> Bipoint<curvepoint_fp_t>::operator*(const Scalar& mult) const
- {
- Bipoint<curvepoint_fp_t> retval;
- retval[0] = mult * point[0];
- retval[1] = mult * point[1];
- return retval;
- }
- Bipoint<twistpoint_fp2_t> Bipoint<twistpoint_fp2_t>::operator*(const Scalar& mult) const
- {
- Bipoint<twistpoint_fp2_t> retval;
- retval[0] = mult * point[0];
- retval[1] = mult * point[1];
- return retval;
- }
- bool Bipoint<curvepoint_fp_t>::operator==(const Bipoint<curvepoint_fp_t>& b) const
- {
- bool retval;
- fpe_t point0_x1z2, point0_y1z2, point0_x2z1, point0_y2z1, point1_x1z2, point1_y1z2, point1_x2z1, point1_y2z1;
- fpe_mul(point0_x1z2, point[0]->m_x, b[0]->m_z);
- fpe_mul(point0_y1z2, point[0]->m_y, b[0]->m_z);
- fpe_mul(point0_x2z1, point[0]->m_z, b[0]->m_x);
- fpe_mul(point0_y2z1, point[0]->m_z, b[0]->m_y);
- fpe_mul(point1_x1z2, point[1]->m_x, b[1]->m_z);
- fpe_mul(point1_y1z2, point[1]->m_y, b[1]->m_z);
- fpe_mul(point1_x2z1, point[1]->m_z, b[1]->m_x);
- fpe_mul(point1_y2z1, point[1]->m_z, b[1]->m_y);
- retval = fpe_iseq(point0_x1z2, point0_x2z1);
- retval &&= fpe_iseq(point0_y1z2, point0_y2z1);
- retval &&= fpe_iseq(point1_x1z2, point1_x2z1);
- retval &&= fpe_iseq(point1_y1z2, point1_y2z1);
- return retval;
- }
- bool Bipoint<twistpoint_fp2_t>::operator==(const Bipoint<twistpoint_fp2_t>& b) const
- {
- bool retval;
- fp2e_t point0_x1z2, point0_y1z2, point0_x2z1, point0_y2z1, point1_x1z2, point1_y1z2, point1_x2z1, point1_y2z1;
- fp2e_mul(point0_x1z2, point[0]->m_x, b[0]->m_z);
- fp2e_mul(point0_y1z2, point[0]->m_y, b[0]->m_z);
- fp2e_mul(point0_x2z1, point[0]->m_z, b[0]->m_x);
- fp2e_mul(point0_y2z1, point[0]->m_z, b[0]->m_y);
- fp2e_mul(point1_x1z2, point[1]->m_x, b[1]->m_z);
- fp2e_mul(point1_y1z2, point[1]->m_y, b[1]->m_z);
- fp2e_mul(point1_x2z1, point[1]->m_z, b[1]->m_x);
- fp2e_mul(point1_y2z1, point[1]->m_z, b[1]->m_y);
- retval = fp2e_iseq(point0_x1z2, point0_x2z1);
- retval &&= fp2e_iseq(point0_y1z2, point0_y2z1);
- retval &&= fp2e_iseq(point1_x1z2, point1_x2z1);
- retval &&= fp2e_iseq(point1_y1z2, point1_y2z1);
- return retval;
- }
- bool Bipoint<curvepoint_fp_t>::operator!=(const Bipoint<curvepoint_fp_t>& b) const
- {
- return !(*this == b);
- }
- bool Bipoint<twistpoint_fp2_t>::operator!=(const Bipoint<twistpoint_fp2_t>& b) const
- {
- return !(*this == b);
- }
- Bipoint<curvepoint_fp_t> Bipoint<curvepoint_fp_t>::mult_by_2() const
- {
- Bipoint<curvepoint_fp_t> retval;
- curvepoint_fp_double(retval[0], point[0]);
- curvepoint_fp_double(retval[1], point[1]);
- return retval;
- }
- Bipoint<twistpoint_fp2_t> Bipoint<twistpoint_fp2_t>::mult_by_2() const
- {
- Bipoint<twistpoint_fp2_t> retval;
- twistpoint_fp2_double(retval[0], point[0]);
- twistpoint_fp2_double(retval[1], point[1]);
- return retval;
- }
- void Bipoint<curvepoint_fp_t>::make_affine()
- {
- curvepoint_fp_makeaffine(point[0]);
- curvepoint_fp_makeaffine(point[1]);
- }
- void Bipoint<twistpoint_fp2_t>::make_affine()
- {
- twistpoint_fp2_makeaffine(point[0]);
- twistpoint_fp2_makeaffine(point[1]);
- }
|