|
@@ -2,10 +2,10 @@
|
|
|
|
|
|
Quadripoint::Quadripoint()
|
|
|
{
|
|
|
- fp12e_setzero(point[0]);
|
|
|
- fp12e_setzero(point[1]);
|
|
|
- fp12e_setzero(point[2]);
|
|
|
- fp12e_setzero(point[3]);
|
|
|
+ fp12e_setone(point[0]);
|
|
|
+ fp12e_setone(point[1]);
|
|
|
+ fp12e_setone(point[2]);
|
|
|
+ fp12e_setone(point[3]);
|
|
|
}
|
|
|
|
|
|
Quadripoint::Quadripoint(const fp12e_t& p1, const fp12e_t& p2, const fp12e_t& p3, const fp12e_t& p4)
|
|
@@ -56,11 +56,19 @@ Quadripoint Quadripoint::operator+(const Quadripoint& b) const
|
|
|
Quadripoint Quadripoint::operator*(const Scalar& exp) const
|
|
|
{
|
|
|
Quadripoint retval;
|
|
|
-
|
|
|
- exp.mult(retval[0], point[0]);
|
|
|
- exp.mult(retval[1], point[1]);
|
|
|
- exp.mult(retval[2], point[2]);
|
|
|
- exp.mult(retval[3], point[3]);
|
|
|
+
|
|
|
+ if (exp == Scalar(0))
|
|
|
+ {
|
|
|
+ fp12e_setone(retval[0]);
|
|
|
+ fp12e_setone(retval[1]);
|
|
|
+ fp12e_setone(retval[2]);
|
|
|
+ fp12e_setone(retval[3]);
|
|
|
+ } else {
|
|
|
+ exp.mult(retval[0], point[0]);
|
|
|
+ exp.mult(retval[1], point[1]);
|
|
|
+ exp.mult(retval[2], point[2]);
|
|
|
+ exp.mult(retval[3], point[3]);
|
|
|
+ }
|
|
|
|
|
|
return retval;
|
|
|
}
|