diff options
-rw-r--r-- | stdlib/int32.ml | 34 | ||||
-rw-r--r-- | stdlib/int32.mli | 50 | ||||
-rw-r--r-- | stdlib/int64.ml | 44 | ||||
-rw-r--r-- | stdlib/int64.mli | 59 |
4 files changed, 94 insertions, 93 deletions
diff --git a/stdlib/int32.ml b/stdlib/int32.ml index ab407aa8a1..40beb146c4 100644 --- a/stdlib/int32.ml +++ b/stdlib/int32.ml @@ -14,20 +14,20 @@ (* Module [Int32]: 32-bit integers *) -external neg: int32 -> int32 = "%int32_neg" -external add: int32 -> int32 -> int32 = "%int32_add" -external sub: int32 -> int32 -> int32 = "%int32_sub" -external mul: int32 -> int32 -> int32 = "%int32_mul" -external div: int32 -> int32 -> int32 = "%int32_div" -external rem: int32 -> int32 -> int32 = "%int32_mod" -external logand: int32 -> int32 -> int32 = "%int32_and" -external logor: int32 -> int32 -> int32 = "%int32_or" -external logxor: int32 -> int32 -> int32 = "%int32_xor" -external shift_left: int32 -> int -> int32 = "%int32_lsl" -external shift_right: int32 -> int -> int32 = "%int32_asr" -external shift_right_logical: int32 -> int -> int32 = "%int32_lsr" -external of_int: int -> int32 = "%int32_of_int" -external to_int: int32 -> int = "%int32_to_int" +external neg : int32 -> int32 = "%int32_neg" +external add : int32 -> int32 -> int32 = "%int32_add" +external sub : int32 -> int32 -> int32 = "%int32_sub" +external mul : int32 -> int32 -> int32 = "%int32_mul" +external div : int32 -> int32 -> int32 = "%int32_div" +external rem : int32 -> int32 -> int32 = "%int32_mod" +external logand : int32 -> int32 -> int32 = "%int32_and" +external logor : int32 -> int32 -> int32 = "%int32_or" +external logxor : int32 -> int32 -> int32 = "%int32_xor" +external shift_left : int32 -> int -> int32 = "%int32_lsl" +external shift_right : int32 -> int -> int32 = "%int32_asr" +external shift_right_logical : int32 -> int -> int32 = "%int32_lsr" +external of_int : int -> int32 = "%int32_of_int" +external to_int : int32 -> int = "%int32_to_int" let zero = of_int 0 let one = of_int 1 @@ -35,11 +35,11 @@ let minus_one = of_int (-1) let succ n = add n one let pred n = sub n one let abs n = if n >= zero then n else neg n -let min = shift_left one 31 -let max = sub min one +let min_int = shift_left one 31 +let max_int = sub min_int one let lognot n = logxor n minus_one external format : string -> int32 -> string = "int32_format" let to_string n = format "%d" n -external of_string: string -> int32 = "int32_of_string" +external of_string : string -> int32 = "int32_of_string" diff --git a/stdlib/int32.mli b/stdlib/int32.mli index 50345fcd32..d5bb3cd2d0 100644 --- a/stdlib/int32.mli +++ b/stdlib/int32.mli @@ -20,23 +20,23 @@ platforms. All arithmetic operations over [int32] are taken modulo $2^{32}$. *) -val zero: int32 -val one: int32 -val minus_one: int32 +val zero : int32 +val one : int32 +val minus_one : int32 (* The 32-bit integers 0, 1, -1. *) -external neg: int32 -> int32 = "%int32_neg" +external neg : int32 -> int32 = "%int32_neg" (* Unary negation. *) -external add: int32 -> int32 -> int32 = "%int32_add" +external add : int32 -> int32 -> int32 = "%int32_add" (* Addition. *) -external sub: int32 -> int32 -> int32 = "%int32_sub" +external sub : int32 -> int32 -> int32 = "%int32_sub" (* Subtraction. *) -external mul: int32 -> int32 -> int32 = "%int32_mul" +external mul : int32 -> int32 -> int32 = "%int32_mul" (* Multiplication. *) -external div: int32 -> int32 -> int32 = "%int32_div" +external div : int32 -> int32 -> int32 = "%int32_div" (* Integer division. Raise [Division_by_zero] if the second argument is zero. *) -external rem: int32 -> int32 -> int32 = "%int32_mod" +external rem : int32 -> int32 -> int32 = "%int32_mod" (* Integer remainder. If [x >= 0] and [y > 0], the result of [Int32.rem x y] satisfies the following properties: [0 <= Int32.rem x y < y] and @@ -44,54 +44,54 @@ external rem: int32 -> int32 -> int32 = "%int32_mod" If [y = 0], [Int32.rem x y] raises [Division_by_zero]. If [x < 0] or [y < 0], the result of [Int32.rem x y] is not specified and depends on the platform. *) -val succ: int32 -> int32 +val succ : int32 -> int32 (* Successor. [Int32.succ x] is [Int32.add x 1i]. *) -val pred: int32 -> int32 +val pred : int32 -> int32 (* Predecessor. [Int32.pred x] is [Int32.sub x 1i]. *) -val abs: int32 -> int32 +val abs : int32 -> int32 (* Return the absolute value of its argument. *) -val max: int32 +val max_int : int32 (* The greatest representable 32-bit integer, $2^{31} - 1$. *) -val min: int32 +val min_int : int32 (* The smallest representable 32-bit integer, $-2^{31}$. *) -external logand: int32 -> int32 -> int32 = "%int32_and" +external logand : int32 -> int32 -> int32 = "%int32_and" (* Bitwise logical and. *) -external logor: int32 -> int32 -> int32 = "%int32_or" +external logor : int32 -> int32 -> int32 = "%int32_or" (* Bitwise logical or. *) -external logxor: int32 -> int32 -> int32 = "%int32_xor" +external logxor : int32 -> int32 -> int32 = "%int32_xor" (* Bitwise logical exclusive or. *) -val lognot: int32 -> int32 +val lognot : int32 -> int32 (* Bitwise logical negation *) -external shift_left: int32 -> int -> int32 = "%int32_lsl" +external shift_left : int32 -> int -> int32 = "%int32_lsl" (* [Int32.shift_left x y] shifts [x] to the left by [y] bits. *) -external shift_right: int32 -> int -> int32 = "%int32_asr" +external shift_right : int32 -> int -> int32 = "%int32_asr" (* [Int32.shift_right x y] shifts [x] to the right by [y] bits. This is an arithmetic shift: the sign bit of [x] is replicated and inserted in the vacated bits. *) -external shift_right_logical: int32 -> int -> int32 = "%int32_lsr" +external shift_right_logical : int32 -> int -> int32 = "%int32_lsr" (* [Int32.shift_right_logical x y] shifts [x] to the right by [y] bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of [x]. *) -external of_int: int -> int32 = "%int32_of_int" +external of_int : int -> int32 = "%int32_of_int" (* Convert the given integer (type [int]) to a 32-bit integer (type [Int32.int32]). *) -external to_int: int32 -> int = "%int32_to_int" +external to_int : int32 -> int = "%int32_to_int" (* Convert the given 32-bit integer (type [Int32.int32]) to an integer (type [int]). On 32-bit platforms, the 32-bit integer is taken modulo $2^{31}$, i.e. the high-order bit is lost during the conversion. On 64-bit platforms, the conversion is exact. *) -external of_string: string -> int32 = "int32_of_string" +external of_string : string -> int32 = "int32_of_string" (* Convert the given string to a 32-bit integer. The string is read in decimal (by default) or in hexadecimal, octal or binary if the string begins with [0x], [0o] or [0b] respectively. Raise [Failure "int_of_string"] if the given string is not a valid representation of an integer. *) -val to_string: int32 -> string +val to_string : int32 -> string (* Return the string representation of its argument, in signed decimal. *) external format : string -> int32 -> string = "int32_format" diff --git a/stdlib/int64.ml b/stdlib/int64.ml index 7dd5193041..84d4d02a01 100644 --- a/stdlib/int64.ml +++ b/stdlib/int64.ml @@ -14,24 +14,24 @@ (* Module [Int64]: 64-bit integers *) -external neg: int64 -> int64 = "%int64_neg" -external add: int64 -> int64 -> int64 = "%int64_add" -external sub: int64 -> int64 -> int64 = "%int64_sub" -external mul: int64 -> int64 -> int64 = "%int64_mul" -external div: int64 -> int64 -> int64 = "%int64_div" -external rem: int64 -> int64 -> int64 = "%int64_mod" -external logand: int64 -> int64 -> int64 = "%int64_and" -external logor: int64 -> int64 -> int64 = "%int64_or" -external logxor: int64 -> int64 -> int64 = "%int64_xor" -external shift_left: int64 -> int -> int64 = "%int64_lsl" -external shift_right: int64 -> int -> int64 = "%int64_asr" -external shift_right_logical: int64 -> int -> int64 = "%int64_lsr" -external of_int: int -> int64 = "%int64_of_int" -external to_int: int64 -> int = "%int64_to_int" -external of_int32: int32 -> int64 = "%int64_of_int32" -external to_int32: int64 -> int32 = "%int64_to_int32" -external of_nativeint: nativeint -> int64 = "%int64_of_nativeint" -external to_nativeint: int64 -> nativeint = "%int64_to_nativeint" +external neg : int64 -> int64 = "%int64_neg" +external add : int64 -> int64 -> int64 = "%int64_add" +external sub : int64 -> int64 -> int64 = "%int64_sub" +external mul : int64 -> int64 -> int64 = "%int64_mul" +external div : int64 -> int64 -> int64 = "%int64_div" +external rem : int64 -> int64 -> int64 = "%int64_mod" +external logand : int64 -> int64 -> int64 = "%int64_and" +external logor : int64 -> int64 -> int64 = "%int64_or" +external logxor : int64 -> int64 -> int64 = "%int64_xor" +external shift_left : int64 -> int -> int64 = "%int64_lsl" +external shift_right : int64 -> int -> int64 = "%int64_asr" +external shift_right_logical : int64 -> int -> int64 = "%int64_lsr" +external of_int : int -> int64 = "%int64_of_int" +external to_int : int64 -> int = "%int64_to_int" +external of_int32 : int32 -> int64 = "%int64_of_int32" +external to_int32 : int64 -> int32 = "%int64_to_int32" +external of_nativeint : nativeint -> int64 = "%int64_of_nativeint" +external to_nativeint : int64 -> nativeint = "%int64_to_nativeint" let zero = try of_int 0 with Invalid_argument _ -> Obj.magic Int32.zero let one = try of_int 1 with Invalid_argument _ -> Obj.magic Int32.one @@ -39,11 +39,13 @@ let minus_one = try of_int (-1) with Invalid_argument _ -> Obj.magic Int32.minus let succ n = add n one let pred n = sub n one let abs n = if n >= zero then n else neg n -let min = try shift_left one 63 with Invalid_argument _ -> Obj.magic Int32.min -let max = try sub min one with Invalid_argument _ -> Obj.magic Int32.max +let min_int = + try shift_left one 63 with Invalid_argument _ -> Obj.magic Int32.min_int +let max_int = + try sub min_int one with Invalid_argument _ -> Obj.magic Int32.max_int let lognot n = logxor n minus_one external format : string -> int64 -> string = "int64_format" let to_string n = format "%d" n -external of_string: string -> int64 = "int64_of_string" +external of_string : string -> int64 = "int64_of_string" diff --git a/stdlib/int64.mli b/stdlib/int64.mli index fd05d8913f..cf034016ee 100644 --- a/stdlib/int64.mli +++ b/stdlib/int64.mli @@ -26,23 +26,23 @@ all functions in this module raise an [Invalid_argument] exception. *) -val zero: int64 -val one: int64 -val minus_one: int64 +val zero : int64 +val one : int64 +val minus_one : int64 (* The 64-bit integers 0, 1, -1. *) -external neg: int64 -> int64 = "%int64_neg" +external neg : int64 -> int64 = "%int64_neg" (* Unary negation. *) -external add: int64 -> int64 -> int64 = "%int64_add" +external add : int64 -> int64 -> int64 = "%int64_add" (* Addition. *) -external sub: int64 -> int64 -> int64 = "%int64_sub" +external sub : int64 -> int64 -> int64 = "%int64_sub" (* Subtraction. *) -external mul: int64 -> int64 -> int64 = "%int64_mul" +external mul : int64 -> int64 -> int64 = "%int64_mul" (* Multiplication. *) -external div: int64 -> int64 -> int64 = "%int64_div" +external div : int64 -> int64 -> int64 = "%int64_div" (* Integer division. Raise [Division_by_zero] if the second argument is zero. *) -external rem: int64 -> int64 -> int64 = "%int64_mod" +external rem : int64 -> int64 -> int64 = "%int64_mod" (* Integer remainder. If [x >= 0] and [y > 0], the result of [Int64.rem x y] satisfies the following properties: [0 <= Int64.rem x y < y] and @@ -50,40 +50,40 @@ external rem: int64 -> int64 -> int64 = "%int64_mod" If [y = 0], [Int64.rem x y] raises [Division_by_zero]. If [x < 0] or [y < 0], the result of [Int64.rem x y] is not specified and depends on the platform. *) -val succ: int64 -> int64 +val succ : int64 -> int64 (* Successor. [Int64.succ x] is [Int64.add x 1i]. *) -val pred: int64 -> int64 +val pred : int64 -> int64 (* Predecessor. [Int64.pred x] is [Int64.sub x 1i]. *) -val abs: int64 -> int64 +val abs : int64 -> int64 (* Return the absolute value of its argument. *) -val max: int64 +val max_int : int64 (* The greatest representable 64-bit integer, $2^{63} - 1$. *) -val min: int64 +val min_int : int64 (* The smallest representable 64-bit integer, $-2^{63}$. *) -external logand: int64 -> int64 -> int64 = "%int64_and" +external logand : int64 -> int64 -> int64 = "%int64_and" (* Bitwise logical and. *) -external logor: int64 -> int64 -> int64 = "%int64_or" +external logor : int64 -> int64 -> int64 = "%int64_or" (* Bitwise logical or. *) -external logxor: int64 -> int64 -> int64 = "%int64_xor" +external logxor : int64 -> int64 -> int64 = "%int64_xor" (* Bitwise logical exclusive or. *) -val lognot: int64 -> int64 +val lognot : int64 -> int64 (* Bitwise logical negation *) -external shift_left: int64 -> int -> int64 = "%int64_lsl" +external shift_left : int64 -> int -> int64 = "%int64_lsl" (* [Int64.shift_left x y] shifts [x] to the left by [y] bits. *) -external shift_right: int64 -> int -> int64 = "%int64_asr" +external shift_right : int64 -> int -> int64 = "%int64_asr" (* [Int64.shift_right x y] shifts [x] to the right by [y] bits. This is an arithmetic shift: the sign bit of [x] is replicated and inserted in the vacated bits. *) -external shift_right_logical: int64 -> int -> int64 = "%int64_lsr" +external shift_right_logical : int64 -> int -> int64 = "%int64_lsr" (* [Int64.shift_right_logical x y] shifts [x] to the right by [y] bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of [x]. *) -external of_int: int -> int64 = "%int64_of_int" +external of_int : int -> int64 = "%int64_of_int" (* Convert the given integer (type [int]) to a 64-bit integer (type [Int64.int64]). *) -external to_int: int64 -> int = "%int64_to_int" +external to_int : int64 -> int = "%int64_to_int" (* Convert the given 64-bit integer (type [Int64.int64]) to an integer (type [int]). On 64-bit platforms, the 64-bit integer is taken modulo $2^{63}$, i.e. the high-order bit is lost @@ -91,32 +91,32 @@ external to_int: int64 -> int = "%int64_to_int" is taken modulo $2^{31}$, i.e. the top 33 bits are lost during the conversion. *) -external of_int32: int32 -> int64 = "%int64_of_int32" +external of_int32 : int32 -> int64 = "%int64_of_int32" (* Convert the given 32-bit integer (type [int32]) to a 64-bit integer (type [int64]). *) -external to_int32: int64 -> int32 = "%int64_to_int32" +external to_int32 : int64 -> int32 = "%int64_to_int32" (* Convert the given 64-bit integer (type [int64]) to a 32-bit integer (type [int32]). The 64-bit integer is taken modulo $2^{32}$, i.e. the top 32 bits are lost during the conversion. *) -external of_nativeint: nativeint -> int64 = "%int64_of_nativeint" +external of_nativeint : nativeint -> int64 = "%int64_of_nativeint" (* Convert the given native integer (type [nativeint]) to a 64-bit integer (type [int64]). *) -external to_nativeint: int64 -> nativeint = "%int64_to_nativeint" +external to_nativeint : int64 -> nativeint = "%int64_to_nativeint" (* Convert the given 64-bit integer (type [int64]) to a native integer. On 32-bit platforms, the 64-bit integer is taken modulo $2^{32}$. On 64-bit platforms, the conversion is exact. *) -external of_string: string -> int64 = "int64_of_string" +external of_string : string -> int64 = "int64_of_string" (* Convert the given string to a 64-bit integer. The string is read in decimal (by default) or in hexadecimal, octal or binary if the string begins with [0x], [0o] or [0b] respectively. Raise [Failure "int_of_string"] if the given string is not a valid representation of an integer. *) -val to_string: int64 -> string +val to_string : int64 -> string (* Return the string representation of its argument, in decimal. *) external format : string -> int64 -> string = "int64_format" (* [Int64.format fmt n] return the string representation of the @@ -124,4 +124,3 @@ external format : string -> int64 -> string = "int64_format" [fmt] is a [Printf]-style format containing exactly one [%d], [%i], [%u], [%x], [%X] or [%o] conversion specification. See the documentation of the [Printf] module for more information, *) - |