Caml1999I0374 J +Stdlib__Int!t1;@@@A#intA@@@e@@@@'int.mliZ))Z)5@@A@@@A@$zero2@@@f@][[][i@@ A@@#one3@@@g@``@@-B@@)minus_one4*@@@h@(c)c@@:C@@#neg5@;@@@i@@j?@@@k@@l'%negintAA @@@BfCf@@TD@@#add6@U@@@m@@n@]@@@o@@pa@@@q@@r@@s'%addintBA"@@@@di::ei:f@@vE@@#sub7@w@@@t@@u@@@@v@@w@@@x@@y@@z'%subintBAD@@@@ll@@F@@#mul8@@@@{@@|@@@@}@@~@@@@@@@'%mulintBAf@@@@oo@@G@@#div9@@@@@@@@@@@@@@@@@@@'%divintBA@@@@rKKrKw@@H@@#rem:@@@@@@@@@@@@@@@@@@@'%modintBA@@@@uu@@I@@$succ;@@@@@@@@@@@(%succintAAĠ@@@xBBxBi@@J@@$pred<@@@@@@@@@@@(%predintAAݠ@@@{{@@0K@@#abs=@1@@@@@5@@@@@@3~4~@@EL@@'max_int>B@@@@@C  AC  @@RM@@'min_int?O@@@@MG  NG  @@_N@@&logand@@`@@@@@@h@@@@@l@@@@@@@'%andintBA-@@@@oK r rpK r @@O@@%logorA@@@@@@@@@@@@@@@@@@@&%orintBAO@@@@N  N  @@P@@&logxorB@@@@@@@@@@@@@@@@@@@'%xorintBAq@@@@Q N NQ N }@@Q@@&lognotC@@@@@@@@@@@@T  T  @@R@@*shift_leftD@@@@@@@@@@@@@@@@@@@'%lslintBA@@@@W  W  M@@S@@+shift_rightE@@@@@@@@@@@@ @@@@@@@Đ'%asrintBAʠ@@@@ [   [  @@T@@3shift_right_logicalF@@@@@@@'@@@@@+@@@@@@@ː'%lsrintBA@@@@.a  /a *@@@U@@%equalG@A@@@@@@I@@@@@$boolE@@@@@@@@MiBBNiB`@@_V@@'compareH@`@@@@@@h@@@@@l@@@@@@@@jlkl@@|W@@#minI@}@@@@@@@@@@@@@@@@@@@oo@@X@@#maxJ@@@@@@@@@@@@@@@@@@@@tYYtYt@@Y@@(to_floatK@@@@@@%floatD@@@@@+%floatofintAA~@@@{{@@Z@@(of_floatL@@@@@@@@@@@+%intoffloatAA@@@~??~?o@@[@@)to_stringM@@@@@@&stringQ@@@@@@@@\@@+seeded_hashN@@@@@@@ @@@@@@@@@@@@@ CC Cf@@]@@$hashO@@@@@@#@@@@@@!>>">S@@3^@@@i9.+Stdlib__Int0D1O YV4/>u4&Stdlib0t0VoS%{<F:8CamlinternalFormatBasics0|.e1R$|o@@@Caml1999T037` ;7WC+Stdlib__Int*ocaml.text&_none_@@A Integer values. Integers are {!Sys.int_size} bits wide and use two's complement representation. All operations are taken modulo 2{^[Sys.int_size]}. They do not fail on overflow. @since 4.08 'int.mliP77V @@@@@@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@A3 {1:ints Integers} XX'@@@@@@A+!tAZ).Z)/@@;@@@A@@@|@@@@Z))Z)5@)ocaml.docɐ> The type for integer values. [66[6Y@@@@@@@A@@@@@Aг#intZ)2@@ 3@+;@@@A3@@@@{@@@@'$@@@A &@@(%퐠$#@##@@@#@#@@32@$zero][_][c@г͠#int][f][i@@ @@@3@YS@A@@@][[ @M< [zero] is the integer [0]. ^jj^j@@@@@@@*A@@@]%@@@@@@!#one(`)`@г#int1`2`@@ @@@332233333@8K6@A@@@;` @; [one] is the integer [1]. HaIa@@@@@@@aB@@@\@@@@@@!)minus_one_c`c@г;#inthcic@@ @@@3jiijjjjj@8K6@A@@@rc @ " [minus_one] is the integer [-1]. dd@@@@@@@C@@@@@@@@@!#negff@б@гt#intf f @@ @@@3@:M8@A@@г#intff@@ @@@@@@@@@@ @@'%negintAA @@@ff@ 3 [neg x] is [~-x]. g  g 8@@@@@@@D@@@吠@@@@@@:#addi:Ci:F@б@гƠ#inti:Ii:L@@ @@@3@Sh?@A@@б@гנ#inti:Pi:S@@ @@@@@г䠐#inti:Wi:Z@@ @@@@@@@@@@# @@@+@@ @@(.@@'%addintBAf@@@@(i::)i:f@r $ [add x y] is the addition [x + y]. 6jgg7jg@@@@@@@OE@@@K@@@@@@N#subNlOl@б@г,#intYlZl@@ @@@3[ZZ[[[[[@g|?@A@@б@г=#intjlkl@@ @@@@@гJ#intwlxl@@ @@@@@@@@@@# @@@+@@ @@(.@@'%subintBA̠@@@@ll@ؐ ' [sub x y] is the subtraction [x - y]. mm@@@@@@@F@@@@@@@@@N#muloo@б@г#intoo@@ @@@3@g|?@A@@б@г#intoo@@ @@@@@г#into o @@ @@@@@@@@@@# @@@+@@ @@(.@@'%mulintBA2@@@@oo@> * [mul x y] is the multiplication [x * y]. ppI@@@@@@@G@@@O@@@@@@N#divrKTrKW@б@г#int%rKZ&rK]@@ @@@3'&&'''''@g|?@A@@б@г #int6rKa7rKd@@ @@@@@г#intCrKhDrKk@@ @@@@@@@@@@# @@@+@@ @@(.@@'%divintBA@@@@ZrKK[rKw@ E [div x y] is the division [x / y]. See {!Stdlib.( / )} for details. hsxxisx@@@@@@@H@@@}@@@@@@N#remuu@б@г^#intuu@@ @@@3@g|?@A@@б@гo#intuu@@ @@@@@г|#intuu@@ @@@@@@@@@@# @@@+@@ @@(.@@'%modintBA@@@@uu@ J [rem x y] is the remainder [x mod y]. See {!Stdlib.( mod )} for details. vv@@@@@@@@I@@@㐠@@@@@@N$succxBKxBO@б@гĠ#intxBRxBU@@ @@@3@g|?@A@@гӠ#intxBYxB\@@ @@@@@@@@@@ @@(%succintAAP@@@xBBxBi@[8 [succ x] is [add x 1]. yjj yj@@@@@@@8J@@@l4@@@@@@9$pred7{8{@б@г#intB{C{@@ @@@3DCCDDDDD@Rg>@A@@г$#intQ{R{@@ @@@@@@@@@@ @@(%predintAA@@@b{c{@8 [pred x] is [sub x 1]. p|q|@@@@@@@K@@@@@@@@@9#abs~~@б@гf#int~~@@ @@@3@Rg>@A@@гu#int~~@@ @@@@@@@@@@ @@@~ @ [abs x] is the absolute value of [x]. That is [x] if [x] is positive and [neg x] if [x] is negative. {b Warning.} This may be negative if the argument is {!min_int}. A w @@@@@@@L@@@А@@@@@@3'max_intC  C  @г#intC  C  @@ @@@3@J_6@A@@@C   @/ T [max_int] is the greatest representable integer, [2]{^[Sys.int_size - 1]}[-1]. D  E  @@@@@@@ M@@@?@@@@@@!'min_int  G   G  @г栐#intG  G  @@ @@@3@8K6@A@@@G   @f Q [min_int] is the smallest representable integer, [-2]{^[Sys.int_size - 1]}. *H  +I O p@@@@@@@CN@@@v>@@@@@@!&logand!AK r {BK r @б@г#intLK r MK r @@ @@@3NMMNNNNN@:M8@A@@б@г0#int]K r ^K r @@ @@@@@г=#intjK r kK r @@ @@@@@@@@@@# @@@+@@ @@(.@@'%andintBA@@@@K r rK r @ː 9 [logand x y] is the bitwise logical and of [x] and [y]. L  L  @@@@@@@O@@@@@@@@@N%logor"N  N  @б@г#intN  N  @@ @@@3@g|?@A@@б@г#intN  N  @@ @@@@@г#intN  N  @@ @@@@@@@@@@# @@@+@@ @@(.@@&%orintBA%@@@@N  N  @1 7 [logor x y] is the bitwise logical or of [x] and [y]. O  O  L@@@@@@@P@@@B @@@@@@N&logxor# Q N WQ N ]@б@г렐#intQ N `Q N c@@ @@@3@g|?@A@@б@г#int)Q N g*Q N j@@ @@@@@г #int6Q N n7Q N q@@ @@@@@@@@@@# @@@+@@ @@(.@@'%xorintBA@@@@MQ N NNQ N }@ B [logxor x y] is the bitwise logical exclusive or of [x] and [y]. [R ~ ~\R ~ @@@@@@@tQ@@@p@@@@@@N&lognot$sT  tT  @б@гQ#int~T  T  @@ @@@3@g|?@A@@г`#intT  T  @@ @@@@@@@@@@ @@@T   @㐠 4 [lognot x] is the bitwise logical negation of [x]. U  U  @@@@@@@R@@@@@@@@@3*shift_left%W  #W  -@б@г#intW  0W  3@@ @@@3@La8@A@@б@г#intW  7W  :@@ @@@@@г#intW  >W  A@@ @@@@@@@@@@# @@@+@@ @@(.@@'%lslintBA<@@@@W  W  M@H y [shift_left x n] shifts [x] to the left by [n] bits. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}.  X N N Y  @@@@@@@%S@@@Y!@@@@@@N+shift_right&$[  %[  @б@г#int/[  0[  @@ @@@310011111@g|?@A@@б@г#int@[  A[  @@ @@@@@г #intM[  N[  @@ @@@@@@@@@@# @@@+@@ @@(.@@'%asrintBA@@@@d[  e[  @ [shift_right x n] shifts [x] to the right by [n] bits. This is an arithmetic shift: the sign bit of [x] is replicated and inserted in the vacated bits. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}. r\  s_  @@@@@@@T@@@@@@@@@N3shift_right_logical'a  a  @б@гh#inta  a @@ @@@3@g|?@A@@б@гy#inta a @@ @@@@@г#inta a @@ @@@@@@@@@@# @@@+@@ @@(.@@'%lsrintBA@@@@a  a *@ [shift_right x n] shifts [x] to the right by [n] bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of [x]. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}. b++e@@@@@@@U@@@%퐠@@@@@@N & {1:preds Predicates and comparisons} gg@@@@@@@3@`u8@A%equal( iBF iBK@б@г᠐#int iBN iBQ@@ @@@@@б@г#int iBU iBX@@ @@@)@@гߠ$bool *iB\ +iB`@@ @@@6@@@@@@@; @@@)@@ @@@,@@@ <iBB@ / [equal x y] is [true] if and only if [x = y].  Ijaa Jja@@@@@@@ bV@@"@ ]@@@@@@_'compare) `l al@б@г >#int kl ll@@ @@@3 m l l m m m m m@xs8@A@@б@г O#int |l }l@@ @@@@@г \#int l l@@ @@@@@@@@@@# @@@+@@ @@(.@@@ l@䐠 > [compare x y] is {!Stdlib.compare}[ x y] but more efficient.  m m@@@@@@@ W@@"@ @@@@@@G#min* o o@б@г #int o o @@ @@@3        @`u8@A@@б@г #int o  o@@ @@@@@г #int o o@@ @@@@@@@@@@# @@@+@@ @@(.@@@ o@C : Return the smaller of the two arguments. @since 4.13  p rUW@@@@@@@ X@@"@S @@@@@@G#max+ tY] tY`@б@г #int )tYc *tYf@@ @@@3 + * * + + + + +@`u8@A@@б@г #int :tYj ;tYm@@ @@@@@г #int GtYq HtYt@@ @@@@@@@@@@# @@@+@@ @@(.@@@ YtYY@ ; Return the greater of the two arguments. @since 4.13  fuuu gw@@@@@@@ Y@@"@ z@@@@@@G  8 {1:convert Converting}  y y@@@@@@3        @Yn1@A(to_float, { {@б@г n#int { {@@ @@@@@г c%float { {@@ @@@'@@@@@@@, @@+%floatofintAA@@@ { {@  1 [to_float x] is [x] as a floating point number.  | |=@@@@@@@ Z@@@  ܐ@@@@@@Q(of_float- ~?H ~?P@б@г %float ~?S ~?X@@ @@@ 3        @je>@A@@г ̠#int ~?\ ~?_@@ @@@ @@@@@ @@  @@+%intoffloatAAI@@@ ~?? ~?o@ T [of_float x] truncates [x] to an integer. The result is unspecified if the argument is [nan] or falls outside the range of representable integers.  pp @@@@@@@ 1[@@@ e -@@@@@@9)to_string. 0 1@б@г #int ; <@@ @@@ 3 = < < = = = = =@Rg>@A@@г &string J K@@ @@@@@@@@@@ @@@ W @ @ [to_string x] is the written representation of [x] in decimal.  d eA@@@@@@@ }\@@@  x@@@@@@3+seeded_hash/ {CG |CR@б@г Y#int CU CX@@ @@@3        @La8@A@@б@г j#int C\ C_@@ @@@@@г w#int Cc Cf@@ @@@@@@@@@@# @@@+@@ @@(.@@@ CC@ A seeded hash function for 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  gg +<@@@@@@@ ]@@"@  א@@@@@@G$hash0 >B >F@б@г #int >I >L@@ @@@3        @`u8@A@@г Ǡ#int >P >S@@ @@@@@@@@@@ @@@ >> @ J An unseeded hash function for 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  TT @@@@@@@ '^@@@ Z "@@@@@@3@ w qA@ 4 @  @  @  l@ E @@}@@@x@Q(@@@jU@5 @@_@8@@N@'@@L@@W@7@@zQ@+@@\@@3 X W W X X X X X@r^@A@ H************************************************************************ aA@@ bA@L@ H  gBMM hBM@ H OCaml  mC nC@ H  sD tD3@ H The OCaml programmers  yE44 zE4@ H  F F@ H Copyright 2018 Institut National de Recherche en Informatique et  G G@ H en Automatique.  H Hg@ H  Ihh Ih@ 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  K KN@ H special exception on linking described in the file LICENSE.  LOO LO@ H  M M@ H************************************************************************ N N5@ * Integer values. Integers are {!Sys.int_size} bits wide and use two's complement representation. All operations are taken modulo 2{^[Sys.int_size]}. They do not fail on overflow. @since 4.08  4* {1:ints Integers}  ?* The type for integer values.  =* [zero] is the integer [0].  <* [one] is the integer [1].  y #* [minus_one] is the integer [-1].  E4* [neg x] is [~-x].  %* [add x y] is the addition [x + y].  (* [sub x y] is the subtraction [x - y].  1 +* [mul x y] is the multiplication [x * y]. Π F* [div x y] is the division [x / y]. See {!Stdlib.( / )} for details. k K* [rem x y] is the remainder [x mod y]. See {!Stdlib.( mod )} for details. 9* [succ x] is [add x 1]. 9* [pred x] is [sub x 1]. l * [abs x] is the absolute value of [x]. That is [x] if [x] is positive and [neg x] if [x] is negative. {b Warning.} This may be negative if the argument is {!min_int}. # U* [max_int] is the greatest representable integer, [2]{^[Sys.int_size - 1]}[-1].  R* [min_int] is the smallest representable integer, [-2]{^[Sys.int_size - 1]}.  :* [logand x y] is the bitwise logical and of [x] and [y]. Y 8* [logor x y] is the bitwise logical or of [x] and [y].  C* [logxor x y] is the bitwise logical exclusive or of [x] and [y].  5* [lognot x] is the bitwise logical negation of [x]. J z* [shift_left x n] shifts [x] to the left by [n] bits. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}. 蠠 * [shift_right x n] shifts [x] to the right by [n] bits. This is an arithmetic shift: the sign bit of [x] is replicated and inserted in the vacated bits. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}.  * [shift_right x n] shifts [x] to the right by [n] bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of [x]. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}. " '* {1:preds Predicates and comparisons}  0* [equal x y] is [true] if and only if [x = y].  ?* [compare x y] is {!Stdlib.compare}[ x y] but more efficient. [ ;* Return the smaller of the two arguments. @since 4.13  <* Return the greater of the two arguments. @since 4.13 9* {1:convert Converting}  2* [to_float x] is [x] as a floating point number. H * [of_float x] truncates [x] to an integer. The result is unspecified if the argument is [nan] or falls outside the range of representable integers.   val of_string : string -> int option (** [of_string s] is [Some s] if [s] can be parsed to an integer in the range representable by the type [int] (note that this depends on {!Sys.int_size}) and [None] otherwise. The string may start with an optional ['-'] or ['+'] sign, and may be followed by an optional prefix that specifies the base in which the number is expressed. If there is not prefix or if the prefix is [0u] or [0U] it is expressed in decimal. If the prefix is [0x] or [0X] it is expressed in hexadecimal. If the prefix is [0o] or [0O] it is expressed in octal. If the prefix is [0b] or [0B] it is expressed in binary. When the [0u] or [0U] prefix is used, the represented number may exceed {!max_int} or {!min_int} in which case it wraps around modulo 2{^[Sys.int_size]} like arithmetic operations do. The ['_'] (underscore) character can appear anywhere between two digits of the number. *)   @ A* [to_string x] is the written representation of [x] in decimal.  * A seeded hash function for 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 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 @?)../ocamlc0-strict-sequence(-absname"-w5+a-4-9-41-42-44-45-48"-g+-warn-error"+A*-bin-annot)-nostdlib*-principal"-o/stdlib__Int.cmi"-c . / Z/home/teraram/ci/builds/workspace/parallel-build/flambda/true/label/ocaml-manycores/stdlib @@0hF:"a93 3 2 2 3 3 3 3 3@ 1@@8CamlinternalFormatBasics0|.e1R$|o&Stdlib0t0VoS%{<F: Y0D1O YV4/>u4@0D1O YV4/>u4A_C:vڐ  l@S@@1rڰ B@.V X   @Fذ S {@א-  H@TĐ@yϰ  @k@ ڐ 0  @@^p@ @@Z)@@P@@