-rw-r--r-- 564 high-ctidh-20210504/proj.h
#ifndef proj_h #define proj_h #include <string.h> #include "fp.h" /* P^1 over fp. */ typedef struct proj { fp x; fp z; } proj; static inline void proj_cswap(proj *P, proj *Q, long long c) { fp_cswap(&P->x,&Q->x,c); fp_cswap(&P->z,&Q->z,c); } static inline void proj_cmov(proj *P, const proj *Q, long long c) { fp_cmov(&P->x,&Q->x,c); fp_cmov(&P->z,&Q->z,c); } static inline int proj_equal(proj *A,proj *B) { fp AxBz; fp AzBx; fp_mul3(&AxBz,&A->x,&B->z); fp_mul3(&AzBx,&A->z,&B->x); return !memcmp(&AxBz,&AzBx,sizeof AzBx); } #endif