Caml1999I037xy-Stdlib__Int64$zero?%int64O@@@\@)int64.mliee@@@@@#one@@@@]@h##h#2@@A@@)minus_oneA@@@^@kQQkQf@@+B@@#negB@,@@@_0@@@`@@a*%int64_negAA @@@3n4n@@CC@@#addC@D@@@b@J@@@cN@@@d@@e@@f*%int64_addBA@@@@QqRq@@aD@@#subD@b@@@g@h@@@hl@@@i@@j@@k*%int64_subBA<@@@@otptH@@E@@#mulE@@@@l@@@@m@@@n@@o@@p*%int64_mulBAZ@@@@w^^w^@@F@@#divF@@@@q@@@@r@@@s@@t@@u*%int64_divBAx@@@@zz@@G@@,unsigned_divG@@@@v@@@@w@@@x@@y@@z@@  @  @@H@@#remH@@@@{@@@@|@@@}@@~@@*%int64_modBA@@@@F N NF N @@I@@,unsigned_remI@@@@@@@@@@@@@@@@L s sL s @@ J@@$succJ@ @@@@@@@@@R  R  6@@K@@$predK@@@@#@@@@@@!U v v"U v @@1L@@#absL@2@@@6@@@@@@4X  5X  @@DM@@'max_intMC@@@@A\ \ \B\ \ o@@QN@@'min_intNP@@@@N_  O_  @@^O@@&logandO@_@@@@e@@@i@@@@@@@*%int64_andBA9@@@@lb  mb 7@@|P@@%logorP@}@@@@@@@@@@@@@@)%int64_orBAW@@@@eUUeU@@Q@@&logxorQ@@@@@@@@@@@@@@@*%int64_xorBAu@@@@hh@@R@@&lognotR@@@@@@@@@@kk"@@S@@*shift_leftS@@@@@#intA@@@@@@@@@@*%int64_lslBA@@@@nEEnE@@T@@+shift_rightT@@@@@ @@@@@@@@@@*%int64_asrBAƠ@@@@rr4@@ U@@3shift_right_logicalU@ @@@@>@@@@@@@@@@*%int64_lsrBA@@@@xxZ@@'V@@&of_intV@V@@@,@@@@@-%int64_of_intAA@@@.~DD/~Dt@@>W@@&to_intW@?@@@q@@@@@-%int64_to_intAA@@@EF@@UX@@/unsigned_to_intX@V@@@&optionL@@@@@@@@@_NN`Nw@@oY@@(of_floatY@%floatD@@@v@@@@@3caml_int64_of_floatA@;caml_int64_of_float_unboxedA@Bz33{@'unboxed@@@'noalloc@@@@Z@@(to_floatZ@@@@4@@@@@3caml_int64_to_floatA@;caml_int64_to_float_unboxed.@AAZ@'unboxedAFAM@@ACAN@'noallocARAY@@AO@@[@@(of_int32[@%int32N@@@@@@@@Ð/%int64_of_int32AA@@@@@\@@(to_int32\@@@@@@@@@Ɛ/%int64_to_int32AA@@@777m@@]@@,of_nativeint]@)nativeintM@@@@@@@@ɐ3%int64_of_nativeintAAӠ@@@444v@@^@@,to_nativeint^@@@@@@@@@̐3%int64_to_nativeintAA@@@@@,_@@)of_string_@&stringQ@@@3@@@@@ϐ4caml_int64_of_stringAA@@@56 @@E`@@-of_string_opt`@@@@N@@@@@@@@@MN&@@]a@@)to_stringa@^@@@5@@@@@@`zzaz@@pb@@-bits_of_floatb@@@@u@@@@@ِ8caml_int64_bits_of_floatA@ caml_int64_bits_of_float_unboxedA@xyJc@'unboxedJOJV@@JLJW@'noallocJ[Jb@@JX@@c@@-float_of_bitsc@@@@2@@@@@ܐ8caml_int64_float_of_bitsA@ caml_int64_float_of_bits_unboxed,@A ~ ~ !@'unboxed    @@    @'noalloc   !@@  @@d@@!td;@@@A@@@@@@@!!!!@@@@e@A@'comparee@@@@@@@@@@@@@@@@!!!"@@f@@0unsigned_comparef@@@@@@@@(@@@@@@@@# # # #/@@g@@%equalg@/@@@@4@@@$boolE@@@@@@@@####@@!h@@#minh@H@@@@M@@@P@@@@@@@@'##(#$ @@7i@@#maxi@^@@@@c@@@f@@@@@@@@=$O$O>$O$c@@Mj@@+seeded_hashj@|@@@@z@@@@@@@@@@@U$$V$$@@ek@@$hashk@@@@@@@@@@g%%h%%@@wl@@@k:.-Stdlib__Int640l-J ~m-۠&Stdlib0Lku]8_٠8CamlinternalFormatBasics0%FU(Q/Tu@@@Caml1999T037JTLRC-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;@@@A@@@@@:@A@$charB;@@A@@@@@>@A@&stringQ;@@ A@@@@@B@@@%bytesC;@@ A@@@@@F@@@%floatD;@@A@@@@@J@@@$boolE;@@%falsec@@T@$trued@@Z@@@A@@@@@[@A@$unitF;@@"()e@@e@@@A@@@@@f@A@ #exnG;@@@A@@@@@j@@@#effH;@@O@A@A@@@@@@s@@@,continuationI;@@Q@@P@B@A@nY@@@@@@@@@%arrayJ;@@R@A@A@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@A@@@@@@@@%int32N;@@A@@@@@@@@%int64O;@@A@@@@@@@@&lazy_tP;@@X@AJA@Y@@@@@@@@5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@A[A@Y@@@@@@@@*atomic_locU;@@Z@AdA@@@@@@@@@.Assert_failure`#@@@@@J@@@@@@@@[@@A=ocaml.warn_on_literal_pattern @ @0Division_by_zero]#@@@A  @+End_of_file\#$@@@A@'FailureY#,@'@@A!$$@0Invalid_argumentX#5@0@@A*$-#-@-Match_failureV#>@@=@9@;@@a@@A;5>4>@)Not_foundZ#O@@@AC=F<F@-Out_of_memoryW#W@@@AKENDN@.Stack_overflow^#_@@@ASMVLV@.Sys_blocked_io_#g@@@A[U^T^@)Sys_error[#o@j@@Ad^g]g@:Undefined_recursive_modulea#x@@w@s@u@@h@@Auoxnx@:Continuation_already_takenb#@@@A}wv@&Stdlib@Ax$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_onekQUkQ^@г6%int64kQakQf@@ @@@3@8K6@A@@@kQQ @p8 The 64-bit integer -1.  lgglg@@@@@@@&B@@@!@@@@@@!#neg$n%n@б@гo%int64/n0n@@ @@@310011111@:M8@A@@г~%int64>n?n@@ @@@@@@@@@@*%int64_negAA @@@NnOn@1 Unary negation. \o]o@@@@@@@uC@@@q@@@@@@8#addtquq@б@г%int64qq@@ @@@3@Qf?@A@@б@гР%int64qq@@ @@@@@гݠ%int64qq@@ @@@@@@@@!@@@'@@$* @@*%int64_addBAb@@@@qq@!+ Addition. rr@@@@@@@D@@@2Ӑ@@@@@@J#subtt@б@г!%int64t"t'@@ @@@3@cx?@A@@б@г2%int64t+t0@@ @@@@@г?%int64t4t9@@ @@@@@@@@!@@@'@@$* @@*%int64_subBAĠ@@@@ttH@. Subtraction.  uII!uI\@@@@@@@9E@@@5@@@@@@J#mul8w^g9w^j@б@г%int64Cw^mDw^r@@ @@@3EDDEEEEE@cx?@A@@б@г%int64Tw^vUw^{@@ @@@@@г%int64aw^bw^@@ @@@@@@@@!@@@'@@$* @@*%int64_mulBA&@@@@tw^^uw^@吠1 Multiplication. xx@@@@@@@F@@@@@@@@@J#divzz@б@г堐%int64zz@@ @@@3@cx?@A@@б@г%int64zz@@ @@@@@г%int64zz@@ @@@@@@@@!@@@'@@$* @@*%int64_divBA@@@@zz@G 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@@@X@@@@@@J,unsigned_div@  @  @б@гG%int64@  @  @@ @@@3      @cx?@A@@б@гX%int64@  @  @@ @@@@@гe%int64%@  &@  @@ @@@@@@@@!@@@'@@$* @@@3@  @ x Same as {!div}, except that arguments and result are interpreted as {e unsigned} 64-bit integers. @since 4.08 @A  AD : L@@@@@@@YH@@@T@@@@@@C#remWF N WXF N Z@б@г%int64bF N ]cF N b@@ @@@3dccddddd@\q8@A@@б@г%int64sF N ftF N k@@ @@@@@г%int64F N oF N t@@ @@@@@@@@!@@@'@@$* @@*%int64_modBAE@@@@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@@@@@@@@@J,unsigned_remL s wL s @б@г%int64L s L s @@ @@@3@cx?@A@@б@г%int64L s L s @@ @@@@@г"%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 M  P  @@@@@@@J@@@p@@@@@@C$succR  !R  %@б@г_%int64R  ( R  -@@ @@@3!  !!!!!@\q8@A@@гn%int64.R  1/R  6@@ @@@@@@@@@@@9R   @ 8 Successor. [Int64.succ x] is [Int64.add x Int64.one]. FS 7 7GS 7 t@@@@@@@_K@@@Z@@@@@@1$pred]U v z^U v ~@б@г%int64hU v iU v @@ @@@3jiijjjjj@J_8@A@@г%int64wU v xU v @@ @@@@@@@@@@@U v v @򐠠 : Predecessor. [Int64.pred x] is [Int64.sub x Int64.one]. V  V  @@@@@@@L@@@@@@@@@1#absX  X  @б@г%int64X  X  @@ @@@3@J_8@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@@@@@@@M@@@K쐠@@@@@@1'max_int \ \ `\ \ g@г8%int64\ \ j\ \ o@@ @@@3@H]6@A@@@\ \ \ @r 8 The greatest representable 64-bit integer, 2{^63} - 1. ] p p] p @@@@@@@(N@@@#@@@@@@!'min_int!&_  '_  @гo%int64/_  0_  @@ @@@310011111@8K6@A@@@9_   @ 5 The smallest representable 64-bit integer, -2{^63}. F`  G`  @@@@@@@_O@@@Z@@@@@@!&logand"]b ^b @б@г%int64hb ib @@ @@@3jiijjjjj@:M8@A@@б@г%int64yb zb @@ @@@@@гƠ%int64b #b (@@ @@@@@@@@!@@@'@@$* @@*%int64_andBAK@@@@b  b 7@ 6 Bitwise logical and. c88c8S@@@@@@@P@@@@@@@@@J%logor#eU^eUc@б@г %int64eUfeUk@@ @@@3@cx?@A@@б@г%int64eUoeUt@@ @@@@@г(%int64eUxeU}@@ @@@@@@@@!@@@'@@$* @@)%int64_orBA@@@@eUUeU@l5 Bitwise logical or.  f f@@@@@@@"Q@@@}@@@@@@J&logxor$!h"h@б@гl%int64,h-h@@ @@@3.--.....@cx?@A@@б@г}%int64=h>h@@ @@@@@г%int64JhKh@@ @@@@@@@@!@@@'@@$* @@*%int64_xorBA@@@@]h^h@ΐ? Bitwise logical exclusive or. kili@@@@@@@R@@@@@@@@@J&lognot%k k@б@гΠ%int64kk@@ @@@3@cx?@A@@гݠ%int64kk"@@ @@@@@@@@@@@k @; Bitwise logical negation. l##l#C@@@@@@@S@@@(ɐ@@@@@@1*shift_left&nENnEX@б@г%int64nE[nE`@@ @@@3@J_8@A@@б@г#intnEdnEg@@ @@@@@г5%int64nEknEp@@ @@@@@@@@!@@@'@@$* @@*%int64_lslBA@@@@nEE nE@y r [Int64.shift_left x y] shifts [x] to the left by [y] bits. The result is unspecified if [y < 0] or [y >= 64]. op@@@@@@@/T@@@+@@@@@@J+shift_right'.r/r @б@гy%int649r:r@@ @@@3;::;;;;;@cx?@A@@б@г#intJrKr@@ @@@@@г%int64Wr Xr%@@ @@@@@@@@!@@@'@@$* @@*%int64_asrBA@@@@jrkr4@ې [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]. xs55yv@@@@@@@U@@@@@@@@@J3shift_right_logical(x x3@б@г۠%int64x6x;@@ @@@3@cx?@A@@б@г#intx?xB@@ @@@@@г%int64xFxK@@ @@@@@@@@!@@@'@@$* @@*%int64_lsrBA~@@@@xxZ@= [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]. y[[| B@@@@@@@V@@@N@@@@@@J&of_int)~DM~DS@б@гР#int~DV~DY@@ @@@3@cx?@A@@гL%int64 ~D] ~Db@@ @@@@@@@@@@-%int64_of_intAAΠ@@@ ~DD ~Dt@ P Convert the given integer (type [int]) to a 64-bit integer (type [int64]).  )uu *@@@@@@@ BW@@@ >@@@@@@7&to_int* A B@б@г%int64 L M@@ @@@3 N M M N N N N N@Pe>@A@@г .#int [ \@@ @@@@@@@@@@-%int64_to_intAA@@@ j k@ې 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.  x y0L@@@@@@@ X@@@ @@@@@@7/unsigned_to_int+ NR Na@б@г۠%int64 Nd Ni@@ @@@3        @Pe>@A@@г &option Nq Nw@г #int Nm Np@@ @@@@@@@@@ @@@$@@!'@@@ NN@4 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  xx 1@@@@@@@ Y@@*@D 吠@@@@@@@(of_float, 3< 3D@б@г %float 3G 3L@@ @@@3        @Yn8@A@@г B%int64 3P 3U@@ @@@@@@@@@@3caml_int64_of_floatA@;caml_int64_of_float_unboxedA@B 33 @'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.  6 7@@@@@@@ OZ@,,@)(@'&@# @ T@@@@@@W=(to_float- W X@б@г %int64 b c@@ @@@3 d c c d d d d d@p^@A@@г 3%float q r@@ @@@@@@@@@@3caml_int64_to_floatA@;caml_int64_to_float_unboxedo@A  AZ@'unboxed AF AM@@ AC AN@'noalloc AR AY@@ AO@  > Convert the given 64-bit integer to a floating-point number.  [[ [@@@@@@@ [@++@)(@'&@# @ ! @@@@@@V=(of_int32.  @б@г %int32  @@ @@@3        @o]@A@@г %int64  @@ @@@@@@@@@@/%int64_of_int32AA@@@  @ _ X Convert the given 32-bit integer (type [int32]) to a 64-bit integer (type [int64]).    5@@@@@@@ \@@@ p @@@@@@7(to_int32/ 7@ 7H@б@г _%int64 7K 7P@@ @@@3 !   ! ! ! ! !@Pe>@A@@г r%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.  Knn L2@@@@@@@ d]@@@  `@@@@@@7,of_nativeint0 c4= d4I@б@г )nativeint n4L o4U@@ @@@ 3 p o o p p p p p@Pe>@A@@г %int64 }4Y ~4^@@ @@@ @@@@@ @@3%int64_of_nativeintAA ?@@@ 44 4v@ \ Convert the given native integer (type [nativeint]) to a 64-bit integer (type [int64]).  ww @@@@@@@ ^@@@  @@@@@@7,to_nativeint1  @б@г %int64  @@ @@@3        @Pe>@A@@г )nativeint  @@ @@@@@@@@@@3%int64_to_nativeintAA @@@  @ L 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.   @@@@@@@ _@@@ ] @@@@@@7)of_string2  @б@г ֠&string  @@ @@@3        @Pe>@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].  8!! 9@@@@@@@ Q`@@@  M@@@@@@7-of_string_opt3 P Q@б@г %&string [ \@@ @@@3 ] \ \ ] ] ] ] ]@Pe>@A@@г ɠ&option j  k&@г %int64 t u@@ @@@@@@@@@ @@@$@@!'@@@ @ L Same as [of_string], but return [None] instead of raising. @since 4.05  '' fx@@@@@@@ a@@*@  @@@@@@@)to_string4 z~ z@б@г %int64 z z@@ @@@3        @Yn8@A@@г &string z z@@ @@@@@@@@@@@ zz @ = ? Return the string representation of its argument, in decimal.   @@@@@@@ b@@@ M @@@@@@1-bits_of_float5  @б@г %float  @@ @@@3        @J_8@A@@г K%int64  @@ @@@@@@@@@@8caml_int64_bits_of_floatA@ caml_int64_bits_of_float_unboxedA@   Jc@'unboxed "JO #JV@@ &JL 'JW@'noalloc -J[ .Jb@@ 1JX@  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 ? _ |@@@@@@@ Wc@++@)(@'&@# @  \@@@@@@V=-float_of_bits6 _ ~  ` ~ @б@г %int64 j ~  k ~ @@ @@@3 l k k l l l l l@o]@A@@г ;%float y ~  z ~ @@ @@@ @@@@@!@@8caml_int64_float_of_bitsA@ caml_int64_float_of_bits_unboxedw@A  ~ ~  !@'unboxed      @@      @'noalloc     !@@   @  Return the floating-point number whose internal representation, according to the IEEE 754 floating-point 'double format' bit layout, is the given [int64].  !! !!@@@@@@@ d@++@)(@'&@# @ ) ʐ@@@@@@V=A+!t7A !! !!@@;@@@A @@@#@@@@ !! !!@ I + An alias for the type of 64-bit integers.  !! !!@@@@@@@@@ e@@@Aг%int64 !!@@3        @r*;@@@A2@@@(@"@@@@&#@@@A%@@' m%$@$$@@@$@$@@3@@A32@'compare8!!!!@б@гP!t!!!!@@ @@@*3      @2[U@A@@б@гa!t/!!0!!@@ @@@+@@г#int<!"=!"@@ @@@,@@@@@-!@@@'@@.$* @@@J!!@ 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}. W""X"# @@@@@@@pf@@@ k@@@@@@C0unsigned_compare9n# #o# # @б@г!ty# #"z# ##@@ @@@/3{zz{{{{{@\q8@A@@б@г!t# #'# #(@@ @@@0@@гj#int# #,# #/@@ @@@1@@@@@2!@@@'@@3$* @@@# # @  q Same as {!compare}, except that arguments are interpreted as {e unsigned} 64-bit integers. @since 4.08 #0#0##@@@@@@@g@@@ %Ɛ@@@@@@C%equal:####@б@г!t####@@ @@@43@\q8@A@@б@г!t####@@ @@@5@@г$bool####@@ @@@6@@@@@7!@@@'@@8$* @@@##@ p 0 The equal function for int64s. @since 4.03  ####@@@@@@@&h@@@ !@@@@@@C#min;$##%#$@б@гa!t/#$0#$@@ @@@9310011111@\q8@A@@б@гr!t@#$A#$@@ @@@:@@г!tM#$ N#$ @@ @@@;@@@@@<!@@@'@@=$* @@@[##@ ː : Return the smaller of the two arguments. @since 4.13 h$$i$K$M@@@@@@@i@@@ |@@@@@@C#max<$O$S$O$V@б@г!t$O$X$O$Y@@ @@@>3@\q8@A@@б@г͠!t$O$]$O$^@@ @@@?@@гڠ!t$O$b$O$c@@ @@@@@@@@@A!@@@'@@B$* @@@$O$O@& ; Return the greater of the two arguments. @since 4.13 $d$d$$@@@@@@@j@@@6א@@@@@@C+seeded_hash=$$$$@б@г#int$$$$@@ @@@C3@\q8@A@@б@г(!t$$$$@@ @@@D@@г֠#int$$$$@@ @@@E@@@@@F!@@@'@@G$* @@@$$@ 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 $$%%@@@@@@@7k@@@2@@@@@@C$hash>5%%6%%@б@гr!t@%%A%%@@ @@@H3BAABBBBB@\q8@A@@г"#intO%%P%%@@ @@@I@@@@@J@@@Z%% @ʐ 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 g%%h&{&@@@@@@@l@@@{@@@@@@1@@@~@^7@ @  w@ P @  @  W@ 7 @  @ ~ W@ 7 @  @  @ t _@ ? @  @  F@ @@x?@@@kD@@@[4@@{@U.@@@n8@@@e>@A@|@\#@@q@Q@@x@@3@z@A@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml CC@ H DD3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt E44E4@ 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  J J@ 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************************************************************************$N%N5@ * 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. Z9* The 64-bit integer -1. &2* Unary negation. ڠ,* 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   * 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  N 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.  H 6* The smallest representable 64-bit integer, -2{^63}.  7* Bitwise logical and.  6* Bitwise logical or.  W * 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].  S * [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]). I 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. E ?* 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. 9 ]* 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]. U 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. X * 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}. H 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 @ <* 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"-c D/builds/workspace/precheck/flambda/false/label/ocaml-linux-32/stdlib @@0Aɽ+&3@@@8CamlinternalFormatBasics0%FU(Q/Tu&Stdlib0Lku]8_٠0l-J ~m-@0l-J ~m-Amp   ͐ @<@' ?  Y @  ;@@N@@Ґ@B@e@5@9@@6@/x  @X Q  Ȑ4\@r@ 4 ,~@@  P@@@ А @  aL}@@   J h@  ٰE@Ր!EP@@@@@@P@@