- #include <stdint.h>
- #include "params.h"
- #include "reduce.h"
-
-
- int16_t montgomery_reduce(int32_t a)
- {
- int32_t t;
- int16_t u;
-
- u = a * QINV;
- t = (int32_t)u * KYBER_Q;
- t = a - t;
- t >>= 16;
- return t;
- }
-
-
- int16_t barrett_reduce(int16_t a) {
- int32_t t;
- const int32_t v = (1U << 26)/KYBER_Q + 1;
-
- t = v*a;
- t >>= 26;
- t *= KYBER_Q;
- return a - t;
- }
|