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;