123456789101112131415161718192021222324252627282930313233343536373839# 1 "uint63/uint63_63.ml"(************************************************************************)(* * The Coq Proof Assistant / The Coq Development Team *)(* v * Copyright INRIA, CNRS and contributors *)(* <O___,, * (see version control and CREDITS file for authors & dates) *)(* \VV/ **************************************************************)(* // * This file is distributed under the terms of the *)(* * GNU Lesser General Public License Version 2.1 *)(* * (see CIL/LICENSE.coq file for the text of the license) *)(************************************************************************)typet=intlet_=assert(Sys.word_size=64)letmaxuint63=Int64.of_string"0x7FFFFFFFFFFFFFFF"letof_inti=i[@@ocaml.inlinealways]letequal(x:int)(y:int)=x=y[@@ocaml.inlinealways]letcompares(x:int)(y:int)=Stdlib.Int.comparexylethashi=i[@@ocaml.inlinealways]letto_uint64i=Int64.logand(Int64.of_inti)maxuint63letto_stringi=Int64.to_string(to_uint64i)letaddxy=x+y[@@ocaml.inlinealways]letle(x:int)(y:int)=(xlxor0x4000000000000000)<=(ylxor0x4000000000000000)[@@ocaml.inlinealways]