Caml1999I037@Iؠ-Stdlib__Int64$zero?%int64O@@@"@)int64.mliee@@@@@#one@@@@#@h##h#2@@A@@)minus_oneA@@@$@kQQkQf@@+B@@#negB@.@@@%@@&2@@@'@@(*%int64_negAA @@@5n6n@@EC@@#addC@H@@@)@@*@P@@@+@@,T@@@-@@.@@/*%int64_addBA"@@@@WqXq@@gD@@#subD@j@@@0@@1@r@@@2@@3v@@@4@@5@@6*%int64_subBAD@@@@ytztH@@E@@#mulE@@@@7@@8@@@@9@@:@@@;@@<@@=*%int64_mulBAf@@@@w^^w^@@F@@#divF@@@@>@@?@@@@@@@A@@@B@@C@@D*%int64_divBA@@@@zz@@G@@,unsigned_divG@@@@E@@F@@@@G@@H@@@I@@J@@K@@  @  @@H@@#remH@@@@L@@M@@@@N@@O@@@P@@Q@@R*%int64_modBAǠ@@@@F N NF N @@ I@@,unsigned_remI@@@@S@@T@@@@U@@V@@@W@@X@@Y@L s sL s @@)J@@$succJ@,@@@Z@@[0@@@\@@]@.R  /R  6@@>K@@$predK@A@@@^@@_E@@@`@@a@CU v vDU v @@SL@@#absL@V@@@b@@cZ@@@d@@e@XX  YX  @@hM@@'max_intMg@@@f@e\ \ \f\ \ o@@uN@@'min_intNt@@@g@r_  s_  @@O@@&logandO@@@@h@@i@@@@j@@k@@@l@@m@@n*%int64_andBA_@@@@b  b 7@@P@@%logorP@@@@o@@p@@@@q@@r@@@s@@t@@u)%int64_orBA@@@@eUUeU@@Q@@&logxorQ@@@@v@@w@@@@x@@y@@@z@@{@@|*%int64_xorBA@@@@hh@@R@@&lognotR@@@@}@@~@@@@@@kk"@@S@@*shift_leftS@@@@@@@#intA@@@@@@@@@@@@*%int64_lslBAܠ@@@@nEEnE@@!T@@+shift_rightT@$@@@@@@$@@@@@0@@@@@@@*%int64_asrBA@@@@3r4r4@@CU@@3shift_right_logicalU@F@@@@@@F@@@@@R@@@@@@@*%int64_lsrBA @@@@UxVxZ@@eV@@&of_intV@`@@@@@l@@@@@-%int64_of_intAA:@@@n~DDo~Dt@@~W@@&to_intW@@@@@@}@@@@@-%int64_to_intAAS@@@@@X@@/unsigned_to_intX@@@@@@&optionL@@@@@@@@@NNNw@@Y@@(of_floatY@%floatD@@@@@@@@@@3caml_int64_of_floatA@;caml_int64_of_float_unboxedA@B33@'unboxed@@@'noalloc@@@@Z@@(to_floatZ@@@@@@6@@@@@3caml_int64_to_floatA@;caml_int64_to_float_unboxed0@AAZ@'unboxedAFAM@@ACAN@'noallocARAY@@AO@@[@@(of_int32[@%int32N@@@@@@@@@@/%int64_of_int32AA@@@ @@/\@@(to_int32\@2@@@@@@@@@@/%int64_to_int32AA@@@87797m@@H]@@,of_nativeint]@)nativeintM@@@@@Q@@@@@3%int64_of_nativeintAA@@@S44T4v@@c^@@,to_nativeint^@f@@@@@@@@@@3%int64_to_nativeintAA8@@@lm@@|_@@)of_string_@&stringQ@@@@@@@@@@4caml_int64_of_stringAAS@@@ @@`@@-of_string_opt`@@@@@@@@@@@@@@@&@@a@@)to_stringa@@@@@@9@@@@@@zzz@@b@@-bits_of_floatb@@@@@@@@@@@ː8caml_int64_bits_of_floatA@ caml_int64_bits_of_float_unboxedA@Jc@'unboxedJOJV@@JLJW@'noallocJ[Jb@@JX@@c@@-float_of_bitsc@@@@@@F@@@@@ϐ8caml_int64_float_of_bitsA@ caml_int64_float_of_bits_unboxed@@A ~ ~ !@'unboxed    @@      @'noalloc   !@@  @@$d@@!td;@@@A%@@@@@@@#!!$!!@@@@3e@A@'comparee@@@@@@@@@@@@9@@@@@@@@?!!@!"@@Of@@0unsigned_comparef@@@@@@@#@@@@@T@@@@@@@@Z# # [# #/@@jg@@%equalg@7@@@@@@>@@@@@$boolE@@@@@@@@w##x##@@h@@#minh@T@@@@@@[@@@@@^@@@@@@@@###$ @@i@@#maxi@n@@@@@@u@@@@@x@@@@@@@@$O$O$O$c@@j@@+seeded_hashj@@@@@@@@@@@@@@@@@@@@$$$$@@k@@$hashk@@@@@@@@@@@@%%%%@@l@@@k:.-Stdlib__Int640q=cT?Q1ˠ&Stdlib0t0VoS%{<F:8CamlinternalFormatBasics0|.e1R$|o@@@Caml1999T037V7NaC-Stdlib__Int64*ocaml.text&_none_@@A  64-bit integers. This module provides operations on the type [int64] of signed 64-bit integers. Unlike the built-in [int] type, the type [int64] is guaranteed to be exactly 64-bit wide on all platforms. All arithmetic operations over [int64] are taken modulo 2{^64} Performance notice: values of type [int64] occupy more memory space than values of type [int], and arithmetic operations on [int64] are generally slower than those on [int]. Use [int64] only when the application requires exact 64-bit arithmetic. Literals for 64-bit integers are suffixed by L: {[ let zero: int64 = 0L let one: int64 = 1L let m_one: int64 = -1L ]} )int64.mliP77c@@@@@@3@@@@@@#intA;@@#intA@@@@@;@A@$charB;@@$charA@@@@@A@A@&stringQ;@@&stringA@@@@@G@@@%bytesC;@@%bytesA@@@@@M@@@%floatD;@@%floatA@@@@@S@@@$boolE;@@%falsec@@]@$trued@@c@@@A@@@@@d@A@$unitF;@@"()e@@n@@@A@@@@@o@A@ #exnG;@@@A@@@@@s@@@#effH;@@O@A@A@@@@@@|@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@@@@%arrayJ;@@R@A%arrayA@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@ @@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A!=ocaml.warn_on_literal_pattern%@&@0Division_by_zero]#@@@A+ . .@+End_of_file\#$@@@A366@'FailureY#,@'@@A<??@0Invalid_argumentX#5@0@@AE$H#H@-Match_failureV#>@@=@9@;@@a@@AV5Y4Y@)Not_foundZ#O@@@A^=a<a@-Out_of_memoryW#W@@@AfEiDi@.Stack_overflow^#_@@@AnMqLq@.Sys_blocked_io_#g@@@AvUyTy@)Sys_error[#o@j@@A^]@:Undefined_recursive_modulea#x@@w@s@u@@h@@Aon@:Continuation_already_takenb#@@@Awv@&Stdlib@A$zeroee@гԠ%int64ee@@ @@@{@@@e@)ocaml.doc7 The 64-bit integer 0. ff!@@@@@@@@@@@ΐ@@@@@@#oneh#'h#*@г %int64h#-h#2@@ @@@|3@K8@A@@@h## @97 The 64-bit integer 1. i33i3O@@@@@@@ A@@@I@@@@@@!)minus_onekQU kQ^@гB%int64kQakQf@@ @@@}3@8K6@A@@@kQQ @p8 The 64-bit integer -1. (lgg)lg@@@@@@@AB@@@<@@@@@@!#neg?n@n@б@г{%int64JnKn@@ @@@~3LKKLLLLL@:M8@A@@г%int64YnZn@@ @@@@@@@@@@ @@*%int64_negAA @@@knln@1 Unary negation. yozo@@@@@@@C@@@@@@@@@:#addqq@б@г͠%int64qq@@ @@@3@Sh?@A@@б@гޠ%int64qq@@ @@@@@г렐%int64qq@@ @@@@@@@@@@# @@@+@@ @@(.@@*%int64_addBAf@@@@qq@'+ Addition. rr@@@@@@@D@@@8@@@@@@N#subtt@б@г3%int64t"t'@@ @@@3@g|?@A@@б@гD%int64t+t0@@ @@@@@гQ%int64 t4!t9@@ @@@@@@@@@@# @@@+@@ @@(.@@*%int64_subBA̠@@@@7t8tH@. Subtraction. EuIIFuI\@@@@@@@^E@@@Z@@@@@@N#mul]w^g^w^j@б@г%int64hw^miw^r@@ @@@3jiijjjjj@g|?@A@@б@г%int64yw^vzw^{@@ @@@@@г%int64w^w^@@ @@@@@@@@@@# @@@+@@ @@(.@@*%int64_mulBA2@@@@w^^w^@󐠠1 Multiplication. xx@@@@@@@F@@@@@@@@@N#divzz@б@г%int64zz@@ @@@3@g|?@A@@б@г%int64zz@@ @@@@@г%int64zz@@ @@@@@@@@@@# @@@+@@ @@(.@@*%int64_divBA@@@@zz@Y Integer division. @raise Division_by_zero if the second argument is zero. This division rounds the real quotient of its arguments towards zero, as specified for {!Stdlib.(/)}. {~ a @@@@@@@*G@@@j&@@@@@@N,unsigned_div)@  *@  @б@гe%int644@  5@  @@ @@@365566666@g|?@A@@б@гv%int64E@  F@  @@ @@@@@г%int64R@  S@  @@ @@@@@@@@@@# @@@+@@ @@(.@@@d@  @ x Same as {!div}, except that arguments and result are interpreted as {e unsigned} 64-bit integers. @since 4.08 qA  rD : L@@@@@@@H@@"@@@@@@@G#remF N WF N Z@б@гĠ%int64F N ]F N b@@ @@@3@`u8@A@@б@гՠ%int64F N fF N k@@ @@@@@г⠐%int64F N oF N t@@ @@@@@@@@@@# @@@+@@ @@(.@@*%int64_modBA]@@@@F N NF N @ Integer remainder. If [y] is not zero, the result of [Int64.rem x y] satisfies the following property: [x = Int64.add (Int64.mul (Int64.div x y) y) (Int64.rem x y)]. If [y = 0], [Int64.rem x y] raises [Division_by_zero]. G  J 5 q@@@@@@@I@@@/될@@@@@@N,unsigned_remL s wL s @б@г*%int64L s L s @@ @@@3@g|?@A@@б@г;%int64 L s  L s @@ @@@@@гH%int64L s L s @@ @@@@@@@@@@# @@@+@@ @@(.@@@)L s s@~ x Same as {!rem}, except that arguments and result are interpreted as {e unsigned} 64-bit integers. @since 4.08 6M  7P  @@@@@@@OJ@@"@J@@@@@@G$succMR  !NR  %@б@г%int64XR  (YR  -@@ @@@3ZYYZZZZZ@`u8@A@@г%int64gR  1hR  6@@ @@@@@@@@@@ @@@tR   @ɐ 8 Successor. [Int64.succ x] is [Int64.add x Int64.one]. S 7 7S 7 t@@@@@@@K@@@@@@@@@3$predU v zU v ~@б@гԠ%int64U v U v @@ @@@3@La8@A@@г㠐%int64U v U v @@ @@@@@@@@@@ @@@U v v @ : Predecessor. [Int64.pred x] is [Int64.sub x Int64.one]. V  V  @@@@@@@L@@@$@@@@@@3#absX  X  @б@г%int64X  X  @@ @@@3@La8@A@@г.%int64X  X  @@ @@@@@@@@@@ @@@ X   @_ k [abs x] is the absolute value of [x]. On [min_int] this is [min_int] itself and thus remains negative. Y  Z & Z@@@@@@@0M@@@o+@@@@@@3'max_int .\ \ `/\ \ g@гh%int647\ \ j8\ \ o@@ @@@398899999@J_6@A@@@A\ \ \ @ 8 The greatest representable 64-bit integer, 2{^63} - 1. N] p pO] p @@@@@@@gN@@@b@@@@@@!'min_int!e_  f_  @г%int64n_  o_  @@ @@@3pooppppp@8K6@A@@@x_   @͐ 5 The smallest representable 64-bit integer, -2{^63}. `  `  @@@@@@@O@@@@@@@@@!&logand"b b @б@гؠ%int64b b @@ @@@3@:M8@A@@б@г預%int64b b @@ @@@@@г%int64b #b (@@ @@@@@@@@@@# @@@+@@ @@(.@@*%int64_andBAq@@@@b  b 7@26 Bitwise logical and. c88c8S@@@@@@@P@@@C@@@@@@N%logor#eU^eUc@б@г>%int64 eUfeUk@@ @@@3@g|?@A@@б@гO%int64eUoeUt@@ @@@@@г\%int64+eUx,eU}@@ @@@@@@@@@@# @@@+@@ @@(.@@)%int64_orBAנ@@@@BeUUCeU@5 Bitwise logical or. PfQf@@@@@@@iQ@@@e@@@@@@N&logxor$hhih@б@г%int64shth@@ @@@3uttuuuuu@g|?@A@@б@г%int64hh@@ @@@@@г %int64hh@@ @@@@@@@@@@# @@@+@@ @@(.@@*%int64_xorBA=@@@@hh@? Bitwise logical exclusive or. ii@@@@@@@R@@@ː@@@@@@N&lognot%k k@б@г %int64kk@@ @@@3@g|?@A@@г%int64kk"@@ @@@@@@@@@@ @@@k @J; Bitwise logical negation. l##l#C@@@@@@@S@@@Z@@@@@@3*shift_left&nENnEX@б@гU%int64$nE[%nE`@@ @@@3&%%&&&&&@La8@A@@б@г#int5nEd6nEg@@ @@@@@гs%int64BnEkCnEp@@ @@@@@@@@@@# @@@+@@ @@(.@@*%int64_lslBA@@@@YnEEZnE@ r [Int64.shift_left x y] shifts [x] to the left by [y] bits. The result is unspecified if [y < 0] or [y >= 64]. gohp@@@@@@@T@@@|@@@@@@N+shift_right'rr @б@г%int64rr@@ @@@3@g|?@A@@б@гn#intrr@@ @@@@@г٠%int64r r%@@ @@@@@@@@@@# @@@+@@ @@(.@@*%int64_asrBAT@@@@rr4@ [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. The result is unspecified if [y < 0] or [y >= 64]. s55v@@@@@@@U@@@&␠@@@@@@N3shift_right_logical(x x3@б@г!%int64x6x;@@ @@@3@g|?@A@@б@гԠ#int x? xB@@ @@@@@г?%int64 xF xK@@ @@@@@@@@@@# @@@+@@ @@(.@@*%int64_lsrBA@@@@ %x &xZ@{ [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]. The result is unspecified if [y < 0] or [y >= 64].  3y[[ 4| B@@@@@@@ LV@@@ H@@@@@@N&of_int) K~DM L~DS@б@г )#int V~DV W~DY@@ @@@3 X W W X X X X X@g|?@A@@г%int64 e~D] f~Db@@ @@@@@@@@@@ @@-%int64_of_intAA @@@ v~DD w~Dt@̐ P Convert the given integer (type [int]) to a 64-bit integer (type [int64]).  uu @@@@@@@ W@@@ @@@@@@9&to_int*  @б@гؠ%int64  @@ @@@3        @Rg>@A@@г #int  @@ @@@@@@@@@@ @@-%int64_to_intAA]@@@  @ J Convert the given 64-bit integer (type [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 during the conversion. On 32-bit platforms, the 64-bit integer is taken modulo 2{^31}, i.e. the top 33 bits are lost during the conversion.   0L@@@@@@@ X@@@. ꐠ@@@@@@9/unsigned_to_int+ NR Na@б@г )%int64 Nd Ni@@ @@@3        @Rg>@A@@г [&option Nq Nw@г 䠐#int Nm Np@@ @@@@@@@@@ @@@&@@ @@#)@@@ #NN@x Same as {!to_int}, but interprets the argument as an {e unsigned} integer. Returns [None] if the unsigned value of the argument cannot fit into an [int]. @since 4.08  0xx 11@@@@@@@ IY@@,@ D@@@@@@B(of_float, G3< H3D@б@г %float R3G S3L@@ @@@3 T S S T T T T T@[p8@A@@г %int64 a3P b3U@@ @@@@@@@@@@ @@3caml_int64_of_floatA@;caml_int64_of_float_unboxedA@B t33 u@'unboxed { |@@  @'noalloc  @@ @ߐ 7 Convert the given floating-point number to a 64-bit integer, discarding the fractional part (truncate towards 0). If the truncated floating-point number is outside the range \[{!Int64.min_int}, {!Int64.max_int}\], no exception is raised, and an unspecified, platform-dependent integer is returned.   @@@@@@@ Z@,,@)(@'&@# @ @@@@@@Y=(to_float-  @б@г %int64  @@ @@@3        @r^@A@@г %float  @@ @@@@@@@@@@ @@3caml_int64_to_floatA@;caml_int64_to_float_unboxedq@A  AZ@'unboxed AF AM@@ AC AN@'noalloc AR AY@@ AO@ O > Convert the given 64-bit integer to a floating-point number.  [[ [@@@@@@@ [@++@)(@'&@# @ i %@@@@@@X=(of_int32. ( )@б@г j%int32 3 4@@ @@@3 5 4 4 5 5 5 5 5@q]@A@@г s%int64 B C@@ @@@@@@@@@@ @@/%int64_of_int32AA@@@ S T@ X Convert the given 32-bit integer (type [int32]) to a 64-bit integer (type [int64]).  a b 5@@@@@@@ z\@@@  v@@@@@@9(to_int32/ y7@ z7H@б@г %int64 7K 7P@@ @@@ 3        @Rg>@A@@г ʠ%int32 7T 7Y@@ @@@ @@@@@ @@  @@/%int64_to_int32AA :@@@ 77 7m@ 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.  nn 2@@@@@@@ ]@@@  ǐ@@@@@@9,of_nativeint0 4= 4I@б@г )nativeint 4L 4U@@ @@@ 3        @Rg>@A@@г %int64 4Y 4^@@ @@@@@@@@@@ @@3%int64_of_nativeintAA @@@ 44 4v@ K \ Convert the given native integer (type [nativeint]) to a 64-bit integer (type [int64]).  ww @@@@@@@ ^@@@ \ @@@@@@9,to_nativeint1  @б@г W%int64 & '@@ @@@3 ( ' ' ( ( ( ( (@Rg>@A@@г r)nativeint 5 6@@ @@@@@@@@@@ @@3%int64_to_nativeintAA ܠ@@@ F G@ 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.  T U@@@@@@@ m_@@@  i@@@@@@9)of_string2 l m@б@г >&string w x@@ @@@3 y x x y y y y y@Rg>@A@@г %int64  @@ @@@@@@@@@@ @@4caml_int64_of_stringAA -@@@   @ 퐠  Convert the given string to a 64-bit integer. The string is read in decimal (by default, or if the string begins with [0u]) or in hexadecimal, octal or binary if the string begins with [0x], [0o] or [0b] respectively. The [0u] prefix reads the input as an unsigned integer in the range [[0, 2*Int64.max_int+1]]. If the input exceeds {!Int64.max_int} it is converted to the signed integer [Int64.min_int + input - Int64.max_int - 1]. The [_] (underscore) character can appear anywhere in the string and is ignored. @raise Failure if the given string is not a valid representation of an integer, or if the integer represented exceeds the range of integers representable in type [int64].  !! @@@@@@@ `@@@  @@@@@@9-of_string_opt3  @б@г &string  @@ @@@3        @Rg>@A@@г +&option   &@г %int64  @@ @@@@@@@@@ @@@&@@ @@#)@@@ @ H L Same as [of_string], but return [None] instead of raising. @since 4.05  '' fx@@@@@@@ a@@,@ X @@@@@@B)to_string4 z~ z@б@г S%int64 "z #z@@ @@@3 $ # # $ $ $ $ $@[p8@A@@г &string 1z 2z@@ @@@ @@@@@!@@" @@@ >zz @ ? Return the string representation of its argument, in decimal.  K L@@@@@@@ db@@@  _@@@@@@3-bits_of_float5 b c@б@г (%float m n@@ @@@#3 o n n o o o o o@La8@A@@г %int64 | }@@ @@@$@@@@@%@@& @@8caml_int64_bits_of_floatA@ caml_int64_bits_of_float_unboxedA@  Jc@'unboxed JO JV@@ JL JW@'noalloc J[ Jb@@ JX@  Return the internal representation of the given float according to the IEEE 754 floating-point 'double format' bit layout. Bit 63 of the result represents the sign of the float; bits 62 to 52 represent the (biased) exponent; bits 51 to 0 represent the mantissa.  dd  _ |@@@@@@@ c@++@)(@'&@# @  ϐ@@@@@@X=-float_of_bits6  ~   ~ @б@г %int64  ~   ~ @@ @@@'3        @q]@A@@г %float  ~   ~ @@ @@@(@@@@@)@@* @@8caml_int64_float_of_bitsA@ caml_int64_float_of_bits_unboxed@A  ~ ~  !@'unboxed    @@      @'noalloc   !@@  @ i Return the floating-point number whose internal representation, according to the IEEE 754 floating-point 'double format' bit layout, is the given [int64]. !!!"!!@@@@@@@:d@++@)(@'&@# @ ?@@@@@@X=A+!t7AC!!D!!@@;@@@A @@@,@@@@M!!N!!@ + An alias for the type of 64-bit integers. [!!\!!@@@@@@@@@te@@@Aг%int64e!!@@3cbbccccc@r*;@@@A2@@@1@+@@@@&#@@@A%@@' %$@$$@@@$@$@@3{zz{{{{{@@A32@'compare8!!!!@б@гP!t!!!!@@ @@@33@2[U@A@@б@гa!t!!!!@@ @@@4@@г#int!"!"@@ @@@5@@@@@6@@7# @@@+@@8 @@9(.@@@!!@  The comparison function for 64-bit integers, with the same specification as {!Stdlib.compare}. Along with the type [t], this function [compare] allows the module [Int64] to be passed as argument to the functors {!Set.Make} and {!Map.Make}. """# @@@@@@@f@@"@ (䐠@@@@@@G0unsigned_compare9# ## # @б@г!t# #"# ##@@ @@@:3@`u8@A@@б@г!t# #'# #(@@ @@@;@@г㠐#int# #,# #/@@ @@@<@@@@@=@@># @@@+@@? @@@(.@@@"# # @ w q Same as {!compare}, except that arguments are interpreted as {e unsigned} 64-bit integers. @since 4.08 /#0#00##@@@@@@@Hg@@"@ C@@@@@@G%equal:F##G##@б@г!tQ##R##@@ @@@A3SRRSSSSS@`u8@A@@б@г!tb##c##@@ @@@B@@г$$boolo##p##@@ @@@C@@@@@D@@E# @@@+@@F @@G(.@@@##@ ֐ 0 The equal function for int64s. @since 4.03 ####@@@@@@@h@@"@ @@@@@@G#min;###$@б@гm!t#$#$@@ @@@H3@`u8@A@@б@г~!t#$#$@@ @@@I@@г!t#$ #$ @@ @@@J@@@@@K@@L# @@@+@@M @@N(.@@@##@5 : Return the smaller of the two arguments. @since 4.13 $$$K$M@@@@@@@i@@"@E@@@@@@G#max<$O$S$O$V@б@г̠!t$O$X$O$Y@@ @@@O3@`u8@A@@б@гݠ!t $O$]!$O$^@@ @@@P@@гꠐ!t-$O$b.$O$c@@ @@@Q@@@@@R@@S# @@@+@@T @@U(.@@@?$O$O@ ; Return the greater of the two arguments. @since 4.13 L$d$dM$$@@@@@@@ej@@"@`@@@@@@G+seeded_hash=c$$d$$@б@гA#intn$$o$$@@ @@@V3pooppppp@`u8@A@@б@г%%%%@б@г!t%%%%@@ @@@]3@`u8@A@@г#int%%%%@@ @@@^@@@@@_@@` @@@%% @> An unseeded hash function for 64-bit ints, with the same output value as {!Hashtbl.hash}. This function allows this module to be passed as argument to the functor {!Hashtbl.Make}. @since 5.1 %%&{&@@@@@@@l@@@N @@@@@@3@q^@<'@@@E@ @  }@ V @  @  X@ 1 @  @  b@ B @  @  @  R@ + @  @ c :@ @y@R@@v@P@@`@@@}T@.@@X@8@@X@ A@@r5@@{@[@@x@@3\[[\\\\\@z@A@ H************************************************************************eA@@fA@L@ H kBMMlBM@ H OCaml qCrC@ H wDxD3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt }E44~E4@ H FF@ H Copyright 1996 Institut National de Recherche en Informatique et GG@ H en Automatique. HHg@ H IhhIh@ H All rights reserved. This file is distributed under the terms of JJ@ H the GNU Lesser General Public License version 2.1, with the KKN@ H special exception on linking described in the file LICENSE. LOOLO@ H MM@ H************************************************************************NN5@ * 64-bit integers. This module provides operations on the type [int64] of signed 64-bit integers. Unlike the built-in [int] type, the type [int64] is guaranteed to be exactly 64-bit wide on all platforms. All arithmetic operations over [int64] are taken modulo 2{^64} Performance notice: values of type [int64] occupy more memory space than values of type [int], and arithmetic operations on [int64] are generally slower than those on [int]. Use [int64] only when the application requires exact 64-bit arithmetic. Literals for 64-bit integers are suffixed by L: {[ let zero: int64 = 0L let one: int64 = 1L let m_one: int64 = -1L ]} 8* The 64-bit integer 0. 8* The 64-bit integer 1. Π9* The 64-bit integer -1. 2* Unary negation. L,* Addition. 頠/* Subtraction. 2* Multiplication. # * Integer division. @raise Division_by_zero if the second argument is zero. This division rounds the real quotient of its arguments towards zero, as specified for {!Stdlib.(/)}.  y* Same as {!div}, except that arguments and result are interpreted as {e unsigned} 64-bit integers. @since 4.08  c * Integer remainder. If [y] is not zero, the result of [Int64.rem x y] satisfies the following property: [x = Int64.add (Int64.mul (Int64.div x y) y) (Int64.rem x y)]. If [y = 0], [Int64.rem x y] raises [Division_by_zero].   y* Same as {!rem}, except that arguments and result are interpreted as {e unsigned} 64-bit integers. @since 4.08  9* Successor. [Int64.succ x] is [Int64.add x Int64.one].  \ ;* Predecessor. [Int64.pred x] is [Int64.sub x Int64.one].   l* [abs x] is the absolute value of [x]. On [min_int] this is [min_int] itself and thus remains negative.  ̠ 9* The greatest representable 64-bit integer, 2{^63} - 1.  6* The smallest representable 64-bit integer, -2{^63}.  d7* Bitwise logical and.  6* Bitwise logical or.  * Bitwise logical exclusive or.  <<* Bitwise logical negation.  s* [Int64.shift_left x y] shifts [x] to the left by [y] bits. The result is unspecified if [y < 0] or [y >= 64].  * [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. The result is unspecified if [y < 0] or [y >= 64].  . * [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]. The result is unspecified if [y < 0] or [y >= 64]. ˠ Q* Convert the given integer (type [int]) to a 64-bit integer (type [int64]). } K* Convert the given 64-bit integer (type [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 during the conversion. On 32-bit platforms, the 64-bit integer is taken modulo 2{^31}, i.e. the top 33 bits are lost during the conversion. / * Same as {!to_int}, but interprets the argument as an {e unsigned} integer. Returns [None] if the unsigned value of the argument cannot fit into an [int]. @since 4.08 נ 8* Convert the given floating-point number to a 64-bit integer, discarding the fractional part (truncate towards 0). If the truncated floating-point number is outside the range \[{!Int64.min_int}, {!Int64.max_int}\], no exception is raised, and an unspecified, platform-dependent integer is returned. s ?* Convert the given 64-bit integer to a floating-point number.  Y* Convert the given 32-bit integer (type [int32]) to a 64-bit integer (type [int64]).  * 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. a ]* Convert the given native integer (type [nativeint]) to a 64-bit integer (type [int64]).  * 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. Š * Convert the given string to a 64-bit integer. The string is read in decimal (by default, or if the string begins with [0u]) or in hexadecimal, octal or binary if the string begins with [0x], [0o] or [0b] respectively. The [0u] prefix reads the input as an unsigned integer in the range [[0, 2*Int64.max_int+1]]. If the input exceeds {!Int64.max_int} it is converted to the signed integer [Int64.min_int + input - Int64.max_int - 1]. The [_] (underscore) character can appear anywhere in the string and is ignored. @raise Failure if the given string is not a valid representation of an integer, or if the integer represented exceeds the range of integers representable in type [int64]. w M* Same as [of_string], but return [None] instead of raising. @since 4.05  @* Return the string representation of its argument, in decimal. נ * Return the internal representation of the given float according to the IEEE 754 floating-point 'double format' bit layout. Bit 63 of the result represents the sign of the float; bits 62 to 52 represent the (biased) exponent; bits 51 to 0 represent the mantissa. t * Return the floating-point number whose internal representation, according to the IEEE 754 floating-point 'double format' bit layout, is the given [int64].  ,* An alias for the type of 64-bit integers. Р * The comparison function for 64-bit integers, with the same specification as {!Stdlib.compare}. Along with the type [t], this function [compare] allows the module [Int64] to be passed as argument to the functors {!Set.Make} and {!Map.Make}. ^ r* Same as {!compare}, except that arguments are interpreted as {e unsigned} 64-bit integers. @since 4.08  1* The equal function for int64s. @since 4.03  ;* Return the smaller of the two arguments. @since 4.13 J <* Return the greater of the two arguments. @since 4.13  * A seeded hash function for 64-bit ints, with the same output value as {!Hashtbl.seeded_hash}. This function allows this module to be passed as argument to the functor {!Hashtbl.MakeSeeded}. @since 5.1  * An unseeded hash function for 64-bit ints, with the same output value as {!Hashtbl.hash}. This function allows this module to be passed as argument to the functor {!Hashtbl.Make}. @since 5.1 J@?)../ocamlc0-strict-sequence(-absname"-w5+a-4-9-41-42-44-45-48"-g+-warn-error"+A*-bin-annot)-nostdlib*-principal"-o1stdlib__Int64.cmi"-cMN Z/home/teraram/ci/builds/workspace/parallel-build/flambda/true/label/ocaml-manycores/stdlib @@0Aɽ+&3RQQRRRRR@P@@8CamlinternalFormatBasics0|.e1R$|o&Stdlib0t0VoS%{<F:x0q=cT?Q1@0q=cT?Q1Amzʰ    E@Ȑ h .@S    @Ȑ E @@2n@@Ԑ$ϐ@T@@;@K@@0P@_ Đ @rɰ  ϰ&v@@ j (j@@ < @@@ $ `@ W d@@  O  ְ^֐,@ 7@;i(@@@@@@P@@