ref10: batch invert maybe

This commit is contained in:
cathugger 2019-01-19 13:52:13 +00:00
parent f89c2d778c
commit 5bb3d0f821
No known key found for this signature in database
GPG key ID: 9BADDA2DAF6F01A8
3 changed files with 32 additions and 3 deletions

View file

@ -0,0 +1,26 @@
#include "fe.h"
// tmp MUST != out
// in MAY == out
void fe_batchinvert(fe out[],fe tmp[],const fe in[], size_t num)
{
fe acc;
fe tmpacc;
size_t i;
fe_1(acc);
for (i = 0;i < num;++i) {
fe_copy(tmp[i],acc);
fe_mul(acc,acc,in[i]);
}
fe_invert(acc,acc);
i = num;
while (i--) {
fe_mul(tmpacc,acc,in[i]);
fe_mul(out[i],acc,tmp[i]);
fe_copy(acc,tmpacc);
}
}