#ifndef __BEE2_EC2_H
#define __BEE2_EC2_H
#include "bee2/math/ec.h"
#ifdef __cplusplus
extern "C" {
#endif
bool_t ec2CreateLD(
ec_o* ec,
const qr_o* f,
const octet A[],
const octet B[],
void* stack
);
size_t ec2CreateLD_keep(size_t n);
size_t ec2CreateLD_deep(size_t n, size_t f_deep);
bool_t ec2IsValid(
const ec_o* ec,
void* stack
);
size_t ec2IsValid_deep(size_t n);
bool_t ec2SeemsValidGroup(
const ec_o* ec,
void* stack
);
size_t ec2SeemsValidGroup_deep(size_t n, size_t f_deep);
bool_t ec2IsSafeGroup(
const ec_o* ec,
size_t mov_threshold,
void* stack
);
size_t ec2IsSafeGroup_deep(size_t n);
bool_t ec2IsOnA(
const word a[],
const ec_o* ec,
void* stack
);
size_t ec2IsOnA_deep(size_t n, size_t f_deep);
void ec2NegA(
word b[],
const word a[],
const ec_o* ec
);
bool_t ec2AddAA(
word c[],
const word a[],
const word b[],
const ec_o* ec,
void* stack
);
size_t ec2AddAA_deep(size_t n, size_t f_deep);
bool_t ec2SubAA(
word c[],
const word a[],
const word b[],
const ec_o* ec,
void* stack
);
size_t ec2SubAA_deep(size_t n, size_t f_deep);
#ifdef __cplusplus
}
#endif
#endif