1 module deimos.gmp.rational; 2 3 import deimos.gmp.gmp; 4 5 import core.stdc.stdio : FILE; 6 import core.stdc.config : c_long, c_ulong; 7 8 extern (C) nothrow: 9 10 /**************** Rational (i.e. Q) routines. ****************/ 11 12 alias mpq_abs = __gmpq_abs; 13 extern (C) void __gmpq_abs (mpq_ptr, mpq_srcptr); 14 15 alias mpq_add = __gmpq_add; 16 extern (C) void __gmpq_add (mpq_ptr, mpq_srcptr, mpq_srcptr); 17 18 alias mpq_canonicalize = __gmpq_canonicalize; 19 extern (C) void __gmpq_canonicalize (mpq_ptr); 20 21 alias mpq_clear = __gmpq_clear; 22 extern (C) void __gmpq_clear (mpq_ptr); 23 24 alias mpq_clears = __gmpq_clears; 25 extern (C) void __gmpq_clears (mpq_ptr, ...); 26 27 alias mpq_cmp = __gmpq_cmp; 28 extern (C) int __gmpq_cmp (mpq_srcptr, mpq_srcptr) pure; 29 30 alias _mpq_cmp_si = __gmpq_cmp_si; 31 extern (C) int __gmpq_cmp_si (mpq_srcptr, c_long, c_long) pure; 32 33 alias _mpq_cmp_ui = __gmpq_cmp_ui; 34 extern (C) int __gmpq_cmp_ui (mpq_srcptr, c_ulong, c_ulong) pure; 35 36 alias mpq_cmp_z = __gmpq_cmp_z; 37 extern (C) int __gmpq_cmp_z (mpq_srcptr, mpz_srcptr) pure; 38 39 alias mpq_div = __gmpq_div; 40 extern (C) void __gmpq_div (mpq_ptr, mpq_srcptr, mpq_srcptr); 41 42 alias mpq_div_2exp = __gmpq_div_2exp; 43 extern (C) void __gmpq_div_2exp (mpq_ptr, mpq_srcptr, mp_bitcnt_t); 44 45 alias mpq_equal = __gmpq_equal; 46 extern (C) int __gmpq_equal (mpq_srcptr, mpq_srcptr) nothrow pure; 47 48 alias mpq_get_num = __gmpq_get_num; 49 extern (C) void __gmpq_get_num (mpz_ptr, mpq_srcptr); 50 51 alias mpq_get_den = __gmpq_get_den; 52 extern (C) void __gmpq_get_den (mpz_ptr, mpq_srcptr); 53 54 alias mpq_get_d = __gmpq_get_d; 55 extern (C) double __gmpq_get_d (mpq_srcptr) pure; 56 57 alias mpq_get_str = __gmpq_get_str; 58 extern (C) char * __gmpq_get_str (char *, int, mpq_srcptr); 59 60 alias mpq_init = __gmpq_init; 61 extern (C) void __gmpq_init (mpq_ptr); 62 63 alias mpq_inits = __gmpq_inits; 64 extern (C) void __gmpq_inits (mpq_ptr, ...); 65 66 alias mpq_inp_str = __gmpq_inp_str; 67 extern (C) size_t __gmpq_inp_str (mpq_ptr, FILE *, int); 68 69 alias mpq_inv = __gmpq_inv; 70 extern (C) void __gmpq_inv (mpq_ptr, mpq_srcptr); 71 72 alias mpq_mul = __gmpq_mul; 73 extern (C) void __gmpq_mul (mpq_ptr, mpq_srcptr, mpq_srcptr); 74 75 alias mpq_mul_2exp = __gmpq_mul_2exp; 76 extern (C) void __gmpq_mul_2exp (mpq_ptr, mpq_srcptr, mp_bitcnt_t); 77 78 alias mpq_neg = __gmpq_neg; 79 extern (C) void __gmpq_neg (mpq_ptr, mpq_srcptr); 80 81 alias mpq_out_str = __gmpq_out_str; 82 extern (C) size_t __gmpq_out_str (FILE *, int, mpq_srcptr); 83 84 alias mpq_set = __gmpq_set; 85 extern (C) void __gmpq_set (mpq_ptr, mpq_srcptr); 86 87 alias mpq_set_d = __gmpq_set_d; 88 extern (C) void __gmpq_set_d (mpq_ptr, double); 89 90 alias mpq_set_den = __gmpq_set_den; 91 extern (C) void __gmpq_set_den (mpq_ptr, mpz_srcptr); 92 93 alias mpq_set_f = __gmpq_set_f; 94 extern (C) void __gmpq_set_f (mpq_ptr, mpf_srcptr); 95 96 alias mpq_set_num = __gmpq_set_num; 97 extern (C) void __gmpq_set_num (mpq_ptr, mpz_srcptr); 98 99 alias mpq_set_si = __gmpq_set_si; 100 extern (C) void __gmpq_set_si (mpq_ptr, c_long, c_ulong); 101 102 alias mpq_set_str = __gmpq_set_str; 103 extern (C) int __gmpq_set_str (mpq_ptr, const char *, int); 104 105 alias mpq_set_ui = __gmpq_set_ui; 106 extern (C) void __gmpq_set_ui (mpq_ptr, c_ulong, c_ulong); 107 108 alias mpq_set_z = __gmpq_set_z; 109 extern (C) void __gmpq_set_z (mpq_ptr, mpz_srcptr); 110 111 alias mpq_sub = __gmpq_sub; 112 extern (C) void __gmpq_sub (mpq_ptr, mpq_srcptr, mpq_srcptr); 113 114 alias mpq_swap = __gmpq_swap; 115 extern (C) void __gmpq_swap (mpq_ptr, mpq_ptr) nothrow;