widelimb
static const widelimb two120 = ((widelimb)1) << 120;
static const widelimb two120m64 = (((widelimb)1) << 120) - (((widelimb)1) << 64);
static const widelimb two120m104m64 = (((widelimb)1) << 120) - (((widelimb)1) << 104) - (((widelimb)1) << 64);
static const widelimb two64p8 = (((widelimb)1) << 64) + (((widelimb)1) << 8);
static const widelimb two64m8 = (((widelimb)1) << 64) - (((widelimb)1) << 8);
static const widelimb two64m48m8 = (((widelimb)1) << 64) - (((widelimb)1) << 48) - (((widelimb)1) << 8);
static void widefelem_scalar(widefelem out, const widelimb scalar)
out[0] = ((widelimb)in[0]) * in[0];
out[1] = ((widelimb)in[0]) * tmp1;
out[2] = ((widelimb)in[0]) * tmp2 + ((widelimb)in[1]) * in[1];
out[3] = ((widelimb)in[3]) * tmp0 + ((widelimb)in[1]) * tmp2;
out[4] = ((widelimb)in[3]) * tmp1 + ((widelimb)in[2]) * in[2];
out[5] = ((widelimb)in[3]) * tmp2;
out[6] = ((widelimb)in[3]) * in[3];
out[0] = ((widelimb)in1[0]) * in2[0];
out[1] = ((widelimb)in1[0]) * in2[1] + ((widelimb)in1[1]) * in2[0];
out[2] = ((widelimb)in1[0]) * in2[2] + ((widelimb)in1[1]) * in2[1] + ((widelimb)in1[2]) * in2[0];
out[3] = ((widelimb)in1[0]) * in2[3] + ((widelimb)in1[1]) * in2[2] + ((widelimb)in1[2]) * in2[1] + ((widelimb)in1[3]) * in2[0];
out[4] = ((widelimb)in1[1]) * in2[3] + ((widelimb)in1[2]) * in2[2] + ((widelimb)in1[3]) * in2[1];
out[5] = ((widelimb)in1[2]) * in2[3] + ((widelimb)in1[3]) * in2[2];
out[6] = ((widelimb)in1[3]) * in2[3];
static const widelimb two127p15 = (((widelimb)1) << 127) + (((widelimb)1) << 15);
static const widelimb two127m71 = (((widelimb)1) << 127) - (((widelimb)1) << 71);
static const widelimb two127m71m55 = (((widelimb)1) << 127) - (((widelimb)1) << 71) - (((widelimb)1) << 55);
widelimb output[5];
typedef widelimb widefelem[7];
typedef widelimb widefelem[2 * NLIMBS - 1];
static const widelimb two64m56m8 = (((widelimb)1) << 64)
- (((widelimb)1) << 56)
- (((widelimb)1) << 8);
static const widelimb two64m32m8 = (((widelimb)1) << 64)
- (((widelimb)1) << 32)
- (((widelimb)1) << 8);
static const widelimb two64m8 = (((widelimb)1) << 64)
- (((widelimb)1) << 8);
static const widelimb two64p48m16 = (((widelimb)1) << 64)
+ (((widelimb)1) << 48)
- (((widelimb)1) << 16);
static const widelimb two127 = ((widelimb)1) << 127;
static const widelimb two127m71 = (((widelimb)1) << 127)
- (((widelimb)1) << 71);
static const widelimb two127p111m79m71 = (((widelimb)1) << 127)
+ (((widelimb)1) << 111)
- (((widelimb)1) << 79)
- (((widelimb)1) << 71);
static const widelimb two127m119m71 = (((widelimb)1) << 127)
- (((widelimb)1) << 119)
- (((widelimb)1) << 71);
static const widelimb two127m95m71 = (((widelimb)1) << 127)
- (((widelimb)1) << 95)
- (((widelimb)1) << 71);
static const widelimb two124m68 = (((widelimb)1) << 124)
- (((widelimb)1) << 68);
static const widelimb two124m116m68 = (((widelimb)1) << 124)
- (((widelimb)1) << 116)
- (((widelimb)1) << 68);
static const widelimb two124p108m76 = (((widelimb)1) << 124)
+ (((widelimb)1) << 108)
- (((widelimb)1) << 76);
static const widelimb two124m92m68 = (((widelimb)1) << 124)
- (((widelimb)1) << 92)
- (((widelimb)1) << 68);
widelimb temp, acc[9];
memcpy(acc, in, sizeof(widelimb) * 9);