package codex
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
The Codex library for building static analysers based on abstract interpretation
Install
dune-project
Dependency
Authors
Maintainers
Sources
1.0-rc4.tar.gz
md5=bc7266a140c6886add673ede90e335d3
sha512=8da42c0ff2c1098c5f9cb2b5b43b306faf7ac93b8f5ae00c176918cee761f249ff45b29309f31a05bbcf6312304f86a0d5a000eb3f1094d3d3c2b9b4c7f5c386
doc/src/codex.units/units.ml.html
Source file units.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78(**************************************************************************) (* This file is part of the Codex semantics library. *) (* *) (* Copyright (C) 2013-2025 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) (* you can redistribute it and/or modify it under the terms of the GNU *) (* Lesser General Public License as published by the Free Software *) (* Foundation, version 2.1. *) (* *) (* It is distributed in the hope that it will be useful, *) (* but WITHOUT ANY WARRANTY; without even the implied warranty of *) (* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) (* GNU Lesser General Public License for more details. *) (* *) (* See the GNU Lesser General Public License version 2.1 *) (* for more details (enclosed in the file LICENSE). *) (* *) (**************************************************************************) module type Unit = sig type t = private int val compare: t -> t -> int val of_int: int -> t val to_int: t -> int val (+): t -> t -> t val (-): t -> t -> t val ( <= ) : t -> t -> bool val ( < ) : t -> t -> bool val ( >= ) : t -> t -> bool val ( > ) : t -> t -> bool val zero: t val one: t end module Common = struct type t = int let compare (a:int) (b:int) = compare a b let of_int x = x let to_int x = x let (+) = (+) let (-) = (-) let (<) = (<) let (<=) = (<=) let (>) = (>) let (>=) = (>=) let double x = 2 * x let zero = 0 let one = 1 end module rec In_bits:sig include Unit val in_bytes: t -> In_bytes.t val double: t -> t val zero:t val s32:t end = struct include Common let in_bytes x = assert(x land 7 = 0); assert(x >= 0); x lsr 3 let s32 = 32 end and In_bytes:sig include Unit val in_bits: t -> In_bits.t val times: int -> t -> t end = struct include Common let in_bits x = assert(x <= Int.max_int lsr 3); x lsl 3 let times a b = a * b end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>