b3f9d4f8d6
* 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
27 lines
698 B
C
27 lines
698 B
C
#ifndef PQCLEAN_MCELIECE348864F_VEC_GF_H
|
|
#define PQCLEAN_MCELIECE348864F_VEC_GF_H
|
|
/*
|
|
This file is for functions for field arithmetic
|
|
*/
|
|
|
|
|
|
#include "params.h"
|
|
|
|
#include <stdint.h>
|
|
|
|
typedef uint16_t gf;
|
|
|
|
gf PQCLEAN_MCELIECE348864F_VEC_gf_iszero(gf /*a*/);
|
|
gf PQCLEAN_MCELIECE348864F_VEC_gf_add(gf /*in0*/, gf /*in1*/);
|
|
gf PQCLEAN_MCELIECE348864F_VEC_gf_mul(gf /*in0*/, gf /*in1*/);
|
|
gf PQCLEAN_MCELIECE348864F_VEC_gf_frac(gf /*den*/, gf /*num*/);
|
|
gf PQCLEAN_MCELIECE348864F_VEC_gf_inv(gf /*in*/);
|
|
|
|
void PQCLEAN_MCELIECE348864F_VEC_GF_mul(gf * /*out*/, const gf * /*in0*/, const gf * /*in1*/);
|
|
|
|
/* 2 field multiplications */
|
|
uint64_t PQCLEAN_MCELIECE348864F_VEC_gf_mul2(gf a, gf b0, gf b1);
|
|
|
|
#endif
|
|
|