#ifndef PUREMP_H
#define PUREMP_H
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct PurempInt PurempInt;
const char *puremp_version(void);
PurempInt *puremp_int_from_i64(int64_t v);
PurempInt *puremp_int_from_str(const char *s);
void puremp_int_free(PurempInt *h);
PurempInt *puremp_int_add(const PurempInt *a, const PurempInt *b);
PurempInt *puremp_int_sub(const PurempInt *a, const PurempInt *b);
PurempInt *puremp_int_mul(const PurempInt *a, const PurempInt *b);
PurempInt *puremp_int_pow(const PurempInt *base, uint64_t exp);
PurempInt *puremp_int_neg(const PurempInt *a);
int puremp_int_cmp(const PurempInt *a, const PurempInt *b);
int puremp_int_sign(const PurempInt *a);
char *puremp_int_to_string(const PurempInt *a);
void puremp_string_free(char *s);
#ifdef __cplusplus
}
#endif
#endif