pqc/crypto_kem/mceliece348864f/vec/vec.h
Thom Wiggers ac2c20045c Classic McEliece (#259)
* Add McEliece reference implementations

* Add Vec implementations of McEliece

* Add sse implementations

* Add AVX2 implementations

* Get rid of stuff not supported by Mac ABI

* restrict to two cores

* Ditch .data files

* Remove .hidden from all .S files

* speed up duplicate consistency tests by batching

* make cpuinfo more robust

* Hope to stabilize macos cpuinfo without ccache

* Revert "Hope to stabilize macos cpuinfo without ccache"

This reverts commit 6129c3cabe1abbc8b956bc87e902a698e32bf322.

* Just hardcode what's available at travis

* Fixed-size types in api.h

* namespace all header files in mceliece

* Ditch operations.h

* Get rid of static inline functions

* fixup! Ditch operations.h
2021-03-24 21:02:45 +00:00

26 lines
699 B
C

#ifndef PQCLEAN_MCELIECE348864F_VEC_VEC_H
#define PQCLEAN_MCELIECE348864F_VEC_VEC_H
#include "params.h"
#include <stdint.h>
typedef uint64_t vec;
vec PQCLEAN_MCELIECE348864F_VEC_vec_setbits(vec b);
vec PQCLEAN_MCELIECE348864F_VEC_vec_set1_16b(uint16_t v);
void PQCLEAN_MCELIECE348864F_VEC_vec_copy(vec *out, const vec *in);
vec PQCLEAN_MCELIECE348864F_VEC_vec_or_reduce(const vec *a);
int PQCLEAN_MCELIECE348864F_VEC_vec_testz(vec a);
void PQCLEAN_MCELIECE348864F_VEC_vec_mul(vec * /*h*/, const vec * /*f*/, const vec * /*g*/);
void PQCLEAN_MCELIECE348864F_VEC_vec_sq(vec * /*out*/, const vec * /*in*/);
void PQCLEAN_MCELIECE348864F_VEC_vec_inv(vec * /*out*/, const vec * /*in*/);
#endif