13#define EQUIX_MAX_SOLS 8
18#define EQUIX_NUM_IDX 8
23typedef uint16_t equix_idx;
29 equix_idx idx[EQUIX_NUM_IDX];
35typedef enum equix_solution_flags {
36 EQUIX_SOLVER_DID_USE_COMPILER = (1 << 0),
37} equix_solution_flags;
44 equix_solution_flags flags;
51typedef enum equix_result {
56 EQUIX_FAIL_PARTIAL_SUM,
72typedef enum equix_ctx_flags {
75 EQUIX_CTX_MUST_COMPILE = 2,
76 EQUIX_CTX_TRY_COMPILE = 4,
77 EQUIX_CTX_HUGEPAGES = 8,
80#if defined(_WIN32) || defined(__CYGWIN__)
87 #define EQUIX_API __declspec(dllexport)
88 #elif !defined(EQUIX_STATIC)
89 #define EQUIX_API __declspec(dllimport)
96 #define EQUIX_API __attribute__ ((visibility ("default")))
98 #define EQUIX_API __attribute__ ((visibility ("hidden")))
100 #define EQUIX_PRIVATE __attribute__ ((visibility ("hidden")))
115EQUIX_API
equix_ctx* equix_alloc(equix_ctx_flags flags);
122EQUIX_API
void equix_free(
equix_ctx* ctx);
139EQUIX_API equix_result equix_solve(
141 const void* challenge,
142 size_t challenge_size,
156EQUIX_API equix_result equix_verify(
158 const void* challenge,
159 size_t challenge_size,