static void decode_b(poly *b, poly *c, const unsigned char *r) { int i; poly_frombytes(b, r); for(i=0;i<1024;i++) c->v[i] = r[2*i+1] >> 6; }
static void decode_a(poly *pk, unsigned char *seed, const unsigned char *r) { int i; poly_frombytes(pk, r); for(i=0;i<NEWHOPE_SEEDBYTES;i++) seed[i] = r[POLY_BYTES+i]; }
inline void decode_a(poly* pk, uint8_t* seed, const uint8_t* r) { poly_frombytes(pk, r); for(size_t i = 0; i < NEWHOPE_SEED_BYTES; i++) { seed[i] = r[NEWHOPE_POLY_BYTES+i]; } }
static void decode_a(poly *pk, unsigned char *seed, const unsigned char *r) { int i,j; poly_frombytes(pk, r); for(i=0;i<32;i++) { seed[i] = 0; for(j=0;j<4;j++) seed[i] |= (r[2*(4*i+j)+1] >> 6) << 2*j; } }
inline void decode_b(poly* b, poly* c, const uint8_t* r) { poly_frombytes(b, r); for(size_t i = 0; i < PARAM_N/4; i++) { c->coeffs[4*i+0] = r[NEWHOPE_POLY_BYTES+i] & 0x03; c->coeffs[4*i+1] = (r[NEWHOPE_POLY_BYTES+i] >> 2) & 0x03; c->coeffs[4*i+2] = (r[NEWHOPE_POLY_BYTES+i] >> 4) & 0x03; c->coeffs[4*i+3] = (r[NEWHOPE_POLY_BYTES+i] >> 6); } }
static void decode_b(poly *b, poly *c, const unsigned char *r) { int i; poly_frombytes(b, r); for(i=0;i<PARAM_N/4;i++) { c->coeffs[4*i+0] = r[POLY_BYTES+i] & 0x03; c->coeffs[4*i+1] = (r[POLY_BYTES+i] >> 2) & 0x03; c->coeffs[4*i+2] = (r[POLY_BYTES+i] >> 4) & 0x03; c->coeffs[4*i+3] = (r[POLY_BYTES+i] >> 6); } }