Module Targetint
Target processor-native integers.
This module provides operations on the type of signed 32-bit integers (on 32-bit target platforms) or signed 64-bit integers (on 64-bit target platforms). This integer type has exactly the same width as that of a pointer type in the C compiler. All arithmetic operations over are taken modulo 232 or 264 depending on the word size of the target architecture.
Warning: this module is unstable and part of compiler-libs.
val zero : tThe target integer 0.
val one : tThe target integer 1.
val minus_one : tThe target integer -1.
val div : t -> t -> tInteger division. Raise
Division_by_zeroif the second argument is zero. This division rounds the real quotient of its arguments towards zero, as specified forStdlib.(/).
val unsigned_div : t -> t -> tSame as
div, except that arguments and result are interpreted as unsigned integers.
val rem : t -> t -> tInteger remainder. If
yis not zero, the result ofTargetint.rem x ysatisfies the following properties:Targetint.zero <= Nativeint.rem x y < Targetint.abs yandx = Targetint.add (Targetint.mul (Targetint.div x y) y) (Targetint.rem x y). Ify = 0,Targetint.rem x yraisesDivision_by_zero.
val unsigned_rem : t -> t -> tSame as
rem, except that arguments and result are interpreted as unsigned integers.
val max_int : tThe greatest representable target integer, either 231 - 1 on a 32-bit platform, or 263 - 1 on a 64-bit platform.
val min_int : tThe smallest representable target integer, either -231 on a 32-bit platform, or -263 on a 64-bit platform.
val shift_left : t -> int -> tTargetint.shift_left x yshiftsxto the left byybits. The result is unspecified ify < 0ory >= bitsize, wherebitsizeis32on a 32-bit platform and64on a 64-bit platform.
val shift_right : t -> int -> tTargetint.shift_right x yshiftsxto the right byybits. This is an arithmetic shift: the sign bit ofxis replicated and inserted in the vacated bits. The result is unspecified ify < 0ory >= bitsize.
val shift_right_logical : t -> int -> tTargetint.shift_right_logical x yshiftsxto the right byybits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign ofx. The result is unspecified ify < 0ory >= bitsize.
val of_int : int -> tConvert the given integer (type
int) to a target integer (typet), module the target word size.
val of_int_exn : int -> tConvert the given integer (type
int) to a target integer (typet). Raises a fatal error if the conversion is not exact.
val to_int : t -> intConvert the given target integer (type
t) to an integer (typeint). The high-order bit is lost during the conversion.
val of_float : float -> tConvert the given floating-point number to a target integer, discarding the fractional part (truncate towards 0). The result of the conversion is undefined if, after truncation, the number is outside the range [
Targetint.min_int,Targetint.max_int].
val to_float : t -> floatConvert the given target integer to a floating-point number.
val of_int32 : int32 -> tConvert the given 32-bit integer (type
int32) to a target integer.
val to_int32 : t -> int32Convert the given target integer to a 32-bit integer (type
int32). On 64-bit platforms, the 64-bit native integer is taken modulo 232, i.e. the top 32 bits are lost. On 32-bit platforms, the conversion is exact.
val of_int64 : int64 -> tConvert the given 64-bit integer (type
int64) to a target integer.
val to_int64 : t -> int64Convert the given target integer to a 64-bit integer (type
int64).
val of_string : string -> tConvert the given string to a target integer. The string is read in decimal (by default) or in hexadecimal, octal or binary if the string begins with
0x,0oor0brespectively. RaiseFailure "int_of_string"if the given string is not a valid representation of an integer, or if the integer represented exceeds the range of integers representable in typenativeint.
val to_string : t -> stringReturn the string representation of its argument, in decimal.
val compare : t -> t -> intThe comparison function for target integers, with the same specification as
Stdlib.compare. Along with the typet, this functioncompareallows the moduleTargetintto be passed as argument to the functorsSet.Make andMap.Make.
val unsigned_compare : t -> t -> intSame as
compare, except that arguments are interpreted as unsigned integers.
val print : Stdlib.Format.formatter -> t -> unitPrint a target integer to a formatter.