File: gmp.mli

package info (click to toggle)
ocamlcreal 0.7-6
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, jessie, jessie-kfreebsd, squeeze, stretch, wheezy
  • size: 384 kB
  • ctags: 751
  • sloc: ml: 2,699; ansic: 1,067; makefile: 15
file content (201 lines) | stat: -rw-r--r-- 9,737 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
type rounding_mode = GMP_RNDN | GMP_RNDZ | GMP_RNDU | GMP_RNDD
module Z2 :
  sig
    type t
    external from_int : dest:t -> int -> unit = "_mlgmp_z2_from_int"
    external from_string_base : dest:t -> base:int -> string -> unit
      = "_mlgmp_z2_from_string_base"
    external from_float : dest:t -> float -> unit = "_mlgmp_z2_from_float"
    external create : unit -> t = "_mlgmp_z_create"
    external copy : dest:t -> from:t -> unit = "_mlgmp_z_copy"
    external add : dest:t -> t -> t -> unit = "_mlgmp_z2_add"
    external sub : dest:t -> t -> t -> unit = "_mlgmp_z2_sub"
    external mul : dest:t -> t -> t -> unit = "_mlgmp_z2_mul"
    external tdiv_q : dest:t -> t -> t -> unit = "_mlgmp_z2_tdiv_q"
    external tdiv_r : dest:t -> t -> t -> unit = "_mlgmp_z2_tdiv_r"
    external cdiv_q : dest:t -> t -> t -> unit = "_mlgmp_z2_cdiv_q"
    external cdiv_r : dest:t -> t -> t -> unit = "_mlgmp_z2_cdiv_r"
    external fdiv_q : dest:t -> t -> t -> unit = "_mlgmp_z2_fdiv_q"
    external fdiv_r : dest:t -> t -> t -> unit = "_mlgmp_z2_fdiv_r"
    external divexact : dest:t -> t -> t -> unit = "_mlgmp_z2_divexact"
    external neg : dest:t -> t -> unit = "_mlgmp_z2_neg"
    external abs : dest:t -> t -> unit = "_mlgmp_z2_abs"
  end
module Z :
  sig
    type t = Z2.t
    external from_int : int -> t = "_mlgmp_z_from_int"
    external of_int : int -> t = "_mlgmp_z_from_int"
    external from_string_base : base:int -> string -> t
      = "_mlgmp_z_from_string_base"
    external from_float : float -> t = "_mlgmp_z_from_float"
    external of_float : float -> t = "_mlgmp_z_from_float"
    external to_string_base : base:int -> t -> string
      = "_mlgmp_z_to_string_base"
    external to_int : t -> int = "_mlgmp_z_to_int"
    external to_float : t -> float = "_mlgmp_z_to_float"
    external int_from : t -> int = "_mlgmp_z_to_int"
    external float_from : t -> float = "_mlgmp_z_to_float"
    external add : t -> t -> t = "_mlgmp_z_add"
    external sub : t -> t -> t = "_mlgmp_z_sub"
    external mul : t -> t -> t = "_mlgmp_z_mul"
    external add_ui : t -> int -> t = "_mlgmp_z_add_ui"
    external sub_ui : t -> int -> t = "_mlgmp_z_sub_ui"
    external mul_ui : t -> int -> t = "_mlgmp_z_mul_ui"
    external neg : t -> t = "_mlgmp_z_neg"
    external abs : t -> t = "_mlgmp_z_abs"
    external tdiv_qr : t -> t -> t * t = "_mlgmp_z_tdiv_qr"
    external tdiv_q : t -> t -> t = "_mlgmp_z_tdiv_q"
    external tdiv_r : t -> t -> t = "_mlgmp_z_tdiv_r"
    external cdiv_qr : t -> t -> t * t = "_mlgmp_z_cdiv_qr"
    external cdiv_q : t -> t -> t = "_mlgmp_z_cdiv_q"
    external cdiv_r : t -> t -> t = "_mlgmp_z_cdiv_r"
    external fdiv_qr : t -> t -> t * t = "_mlgmp_z_fdiv_qr"
    external fdiv_q : t -> t -> t = "_mlgmp_z_fdiv_q"
    external fdiv_r : t -> t -> t = "_mlgmp_z_fdiv_r"
    external dmod : t -> t -> t = "_mlgmp_z_mod"
    external dmod_ui : t -> int -> t = "_mlgmp_z_mod_ui"
    external euclidean_division : t -> t -> t * t = "_mlgmp_z_fdiv_qr"
    external modulo : t -> t -> t = "_mlgmp_z_mod"
    external tdiv_qr_ui : t -> int -> t * t = "_mlgmp_z_tdiv_qr_ui"
    external tdiv_q_ui : t -> int -> t = "_mlgmp_z_tdiv_q_ui"
    external tdiv_r_ui : t -> int -> t = "_mlgmp_z_tdiv_r_ui"
    external tdiv_ui : t -> int -> int = "_mlgmp_z_tdiv_ui"
    external cdiv_qr_ui : t -> int -> t * t = "_mlgmp_z_cdiv_qr_ui"
    external cdiv_q_ui : t -> int -> t = "_mlgmp_z_cdiv_q_ui"
    external cdiv_r_ui : t -> int -> t = "_mlgmp_z_cdiv_r_ui"
    external cdiv_ui : t -> int -> int = "_mlgmp_z_cdiv_ui"
    external fdiv_qr_ui : t -> int -> t * t = "_mlgmp_z_fdiv_qr_ui"
    external fdiv_q_ui : t -> int -> t = "_mlgmp_z_fdiv_q_ui"
    external fdiv_r_ui : t -> int -> t = "_mlgmp_z_fdiv_r_ui"
    external fdiv_ui : t -> int -> int = "_mlgmp_z_fdiv_ui"
    external divexact : t -> t -> t = "_mlgmp_z_divexact"
    external mul_2exp : t -> int -> t = "_mlgmp_z_mul_2exp"
    external mul2exp : t -> int -> t = "_mlgmp_z_mul_2exp"
    external tdiv_q_2exp : t -> int -> t = "_mlgmp_z_tdiv_q_2exp"
    external tdiv_r_2exp : t -> int -> t = "_mlgmp_z_tdiv_r_2exp"
    external fdiv_q_2exp : t -> int -> t = "_mlgmp_z_fdiv_q_2exp"
    external fdiv_r_2exp : t -> int -> t = "_mlgmp_z_fdiv_r_2exp"
    external cdiv_q_2exp : t -> int -> t = "_mlgmp_z_cdiv_q_2exp"
    external cdiv_r_2exp : t -> int -> t = "_mlgmp_z_cdiv_r_2exp"
    external powm : t -> t -> t -> t = "_mlgmp_z_powm"
    external powm_ui : t -> int -> t -> t = "_mlgmp_z_powm_ui"
    external pow_ui : t -> int -> t = "_mlgmp_z_pow_ui"
    external ui_pow_ui : int -> int -> t = "_mlgmp_z_ui_pow_ui"
    external pow_ui_ui : int -> int -> t = "_mlgmp_z_ui_pow_ui"
    external sqrt : t -> t = "_mlgmp_z_sqrt"
    external sqrtrem : t -> t * t = "_mlgmp_z_sqrtrem"
    external root : t -> int -> t = "_mlgmp_z_root"
    external perfect_power_p : t -> bool = "_mlgmp_z_perfect_power_p"
    external perfect_square_p : t -> bool = "_mlgmp_z_perfect_square_p"
    external is_perfect_power : t -> bool = "_mlgmp_z_perfect_power_p"
    external is_perfect_square : t -> bool = "_mlgmp_z_perfect_square_p"
    external probab_prime_p : t -> int -> bool = "_mlgmp_z_probab_prime_p"
    external is_probab_prime : t -> int -> bool = "_mlgmp_z_probab_prime_p"
    external nextprime : t -> t = "_mlgmp_z_nextprime"
    external gcd : t -> t -> t = "_mlgmp_z_gcd"
    external gcd_ui : t -> t -> t = "_mlgmp_z_gcd_ui"
    external lcm : t -> t -> t = "_mlgmp_z_lcm"
    external gcdext : t -> t -> t * t * t = "_mlgmp_z_gcdext"
    external inverse : t -> t -> t option = "_mlgmp_z_invert"
    external legendre : t -> t -> int = "_mlgmp_z_legendre"
    external jacobi : t -> t -> int = "_mlgmp_z_jacobi"
    external kronecker_si : t -> int -> int = "_mlgmp_z_kronecker_si"
    external si_kronecker : int -> t -> int = "_mlgmp_z_si_kronecker"
    external remove : t -> t -> t * int = "_mlgmp_z_remove"
    external fac_ui : int -> t = "_mlgmp_z_fac_ui"
    external fib_ui : int -> t = "_mlgmp_z_fib_ui"
    external bin_ui : n:t -> k:int -> t = "_mlgmp_z_bin_ui"
    external bin_uiui : n:int -> k:int -> t = "_mlgmp_z_bin_uiui"
    external cmp : t -> t -> int = "_mlgmp_z_compare"
    external cmp_si : t -> int -> int = "_mlgmp_z_compare_si"
    external compare : t -> t -> int = "_mlgmp_z_compare"
    external compare_si : t -> int -> int = "_mlgmp_z_compare_si"
    external compare_int : t -> int -> int = "_mlgmp_z_compare_si"
    external sgn : t -> int = "_mlgmp_z_sgn"
    external band : t -> t -> t = "_mlgmp_z_and"
    external bior : t -> t -> t = "_mlgmp_z_ior"
    external bxor : t -> t -> t = "_mlgmp_z_xor"
    external bcom : t -> t = "_mlgmp_z_com"
    external popcount : t -> int = "_mlgmp_z_popcount"
    external hamdist : t -> t -> int = "_mlgmp_z_hamdist"
    external scan0 : t -> int -> int = "_mlgmp_z_scan0"
    external scan1 : t -> int -> int = "_mlgmp_z_scan1"
    val zero : t
    val one : t
    val is_prime : ?prec:int -> t -> bool
    val equal : t -> t -> bool
    val equal_int : t -> int -> bool
    val is_zero : t -> bool
    val to_string : t -> string
    val from_string : string -> t
    val string_from : t -> string
    val output : out_channel -> t -> unit
    val sprintf : unit -> t -> string

    val print : Format.formatter -> t -> unit
    val succ : t -> t
    val pred : t -> t
    val min : t -> t -> t
    val max : t -> t -> t

    module Infixes :
      sig
        external ( +! ) : t -> t -> t = "_mlgmp_z_add"
        external ( -! ) : t -> t -> t = "_mlgmp_z_sub"
        external ( *! ) : t -> t -> t = "_mlgmp_z_mul"
        external ( /! ) : t -> t -> t = "_mlgmp_z_fdiv_q"
        external ( %! ) : t -> t -> t = "_mlgmp_z_fdiv_r"
        val ( <! ) : t -> t -> bool
        val ( <=! ) : t -> t -> bool
        val ( =! ) : t -> t -> bool
        val ( >=! ) : t -> t -> bool
        val ( >! ) : t -> t -> bool
        val ( <>! ) : t -> t -> bool
      end
  end
module Q :
  sig
    type t
    external create : unit -> t = "_mlgmp_q_create"
    external from_z : Z.t -> t = "_mlgmp_q_from_z"
    external from_si : int -> int -> t = "_mlgmp_q_from_si"
    external from_ints : int -> int -> t = "_mlgmp_q_from_si"
    val from_int : int -> t
    external from_float : float -> t = "_mlgmp_q_from_float"
    external float_from : t -> float = "_mlgmp_q_to_float"
    external to_float : t -> float = "_mlgmp_q_to_float"
    external add : t -> t -> t = "_mlgmp_q_add"
    external sub : t -> t -> t = "_mlgmp_q_sub"
    external mul : t -> t -> t = "_mlgmp_q_mul"
    external div : t -> t -> t = "_mlgmp_q_div"
    external neg : t -> t = "_mlgmp_q_neg"
    external inv : t -> t = "_mlgmp_q_inv"
    external get_num : t -> Z.t = "_mlgmp_q_get_num"
    external get_den : t -> Z.t = "_mlgmp_q_get_den"
    external cmp : t -> t -> int = "_mlgmp_q_cmp"
    external compare : t -> t -> int = "_mlgmp_q_cmp"
    external cmp_ui : t -> int -> int -> int = "_mlgmp_q_cmp_ui"
    external sgn : t -> int = "_mlgmp_q_sgn"
    val zero : t
    val is_zero : t -> bool
    val from_zs : Z.t -> Z.t -> t
    val equal : t -> t -> bool
    val output : out_channel -> t -> unit
    val to_string : t -> string
    val sprintf : unit -> t -> string
    module Infixes :
      sig
        external ( +/ ) : t -> t -> t = "_mlgmp_q_add"
        external ( -/ ) : t -> t -> t = "_mlgmp_q_sub"
        external ( */ ) : t -> t -> t = "_mlgmp_q_mul"
        external ( // ) : t -> t -> t = "_mlgmp_q_div"
        val ( </ ) : t -> t -> bool
        val ( <=/ ) : t -> t -> bool
        val ( =/ ) : t -> t -> bool
        val ( >=/ ) : t -> t -> bool
        val ( >/ ) : t -> t -> bool
        val ( <>/ ) : t -> t -> bool
      end
  end
exception Unimplemented of string