packages feed

KpqC-0.1.0: cbits/third_party/SMAUG-T/include/hwt.h

// SPDX-License-Identifier: MIT

#ifndef SMAUGT_HWT_H
#define SMAUGT_HWT_H

#include "params.h"

#include <stdint.h>

// https://github.com/dgazzoni/NTRU-sampling/blob/main/jupyter/NTRU-sampling.ipynb
// Use enough seed size 308
#define SMAUGT_HWTSEEDBYTES ((16 * 308) / 8)

// Hamming weight of coefficient vector s
#if SMAUGT_MODE == SMAUGT_MODE1
#define SMAUGT_HS 70
#elif SMAUGT_MODE == SMAUGT_MODE3
#define SMAUGT_HS 88
#elif SMAUGT_MODE == SMAUGT_MODE5
#define SMAUGT_HS 87
#elif SMAUGT_MODE == SMAUGT_MODET
#define SMAUGT_HS 70
#endif

#define hwt SMAUGT_NAMESPACE(hwt)
int hwt(int16_t *res, const uint8_t *seed);

#endif /* !SMAUGT_HWT_H */