#ifndef __BEE2_GFP_H
#define __BEE2_GFP_H
#include "bee2/math/qr.h"
#ifdef __cplusplus
extern "C" {
#endif
bool_t gfpCreate(
qr_o* f,
const octet p[],
size_t no,
void* stack
);
size_t gfpCreate_keep(size_t no);
size_t gfpCreate_deep(size_t no);
bool_t gfpIsOperable(
const qr_o* f
);
bool_t gfpIsValid(
const qr_o* f,
void* stack
);
size_t gfpIsValid_deep(size_t n);
#define gfpDouble(b, a, f)\
zzDoubleMod(b, a, (f)->mod, (f)->n)
#define gfpHalf(b, a, f)\
zzHalfMod(b, a, (f)->mod, (f)->n)
#ifdef __cplusplus
}
#endif
#endif