#ifndef QEXT_H #define QEXT_H #include struct qext_number_internal { int rk; mpq_t *a; }; typedef struct qext_number_internal qext_number[1]; void qext_setup(int rank, const int *coeffs); void qext_init(qext_number x); void qext_clear(qext_number x); void qext_set(qext_number x, qext_number y); void qext_set_int(qext_number x, int y); void qext_set_q(qext_number x, mpq_t y); void qext_add(qext_number result, qext_number x, qext_number y); void qext_sub(qext_number result, qext_number x, qext_number y); void qext_mul(qext_number out, qext_number x, qext_number y); void qext_div(qext_number out, qext_number x, qext_number y); int qext_cmp(qext_number x, qext_number y); void qext_print(qext_number x); void qext_snprint(char *str, size_t len, qext_number x); #endif