fe_add.c (1255B)
1 #include "fe.h" 2 3 /* 4 h = f + g 5 Can overlap h with f or g. 6 7 Preconditions: 8 |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. 9 |g| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. 10 11 Postconditions: 12 |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. 13 */ 14 15 void fe_add(fe h,const fe f,const fe g) 16 { 17 crypto_int32 f0 = f[0]; 18 crypto_int32 f1 = f[1]; 19 crypto_int32 f2 = f[2]; 20 crypto_int32 f3 = f[3]; 21 crypto_int32 f4 = f[4]; 22 crypto_int32 f5 = f[5]; 23 crypto_int32 f6 = f[6]; 24 crypto_int32 f7 = f[7]; 25 crypto_int32 f8 = f[8]; 26 crypto_int32 f9 = f[9]; 27 crypto_int32 g0 = g[0]; 28 crypto_int32 g1 = g[1]; 29 crypto_int32 g2 = g[2]; 30 crypto_int32 g3 = g[3]; 31 crypto_int32 g4 = g[4]; 32 crypto_int32 g5 = g[5]; 33 crypto_int32 g6 = g[6]; 34 crypto_int32 g7 = g[7]; 35 crypto_int32 g8 = g[8]; 36 crypto_int32 g9 = g[9]; 37 crypto_int32 h0 = f0 + g0; 38 crypto_int32 h1 = f1 + g1; 39 crypto_int32 h2 = f2 + g2; 40 crypto_int32 h3 = f3 + g3; 41 crypto_int32 h4 = f4 + g4; 42 crypto_int32 h5 = f5 + g5; 43 crypto_int32 h6 = f6 + g6; 44 crypto_int32 h7 = f7 + g7; 45 crypto_int32 h8 = f8 + g8; 46 crypto_int32 h9 = f9 + g9; 47 h[0] = h0; 48 h[1] = h1; 49 h[2] = h2; 50 h[3] = h3; 51 h[4] = h4; 52 h[5] = h5; 53 h[6] = h6; 54 h[7] = h7; 55 h[8] = h8; 56 h[9] = h9; 57 }