forked from wownero/wownero
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
408 B
54 lines
408 B
#include "ge.h"
|
|
|
|
/*
|
|
r = p + q
|
|
*/
|
|
|
|
void ge_add(ge_p1p1 *r,const ge_p3 *p,const ge_cached *q)
|
|
{
|
|
fe t0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fe_add(r->X,p->Y,p->X);
|
|
|
|
fe_sub(r->Y,p->Y,p->X);
|
|
|
|
fe_mul(r->Z,r->X,q->YplusX);
|
|
|
|
fe_mul(r->Y,r->Y,q->YminusX);
|
|
|
|
fe_mul(r->T,q->T2d,p->T);
|
|
|
|
fe_mul(r->X,p->Z,q->Z);
|
|
|
|
fe_add(t0,r->X,r->X);
|
|
|
|
fe_sub(r->X,r->Z,r->Y);
|
|
|
|
fe_add(r->Y,r->Z,r->Y);
|
|
|
|
fe_add(r->Z,t0,r->T);
|
|
|
|
fe_sub(r->T,t0,r->T);
|
|
|
|
}
|