(**************************************************************************) (* *) (* Copyright (C) Jean-Christophe Filliatre *) (* *) (* This software is free software; you can redistribute it and/or *) (* modify it under the terms of the GNU Library General Public *) (* License version 2.1, with the special exception on linking *) (* described in file LICENSE. *) (* *) (* This software 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. *) (* *) (**************************************************************************) (* This module provides a highly efficient implementation of sets of integers when the elements can be represented as bits of machine integers, i.e. when elements belong to the closed interval [0..word_size-2]. For greater efficiency, the functions [add], [remove], [singleton] and [mem] assume the element to be in the interval [0..word_size-2]; If needed, write your own wrappers around these functions to perform the checks. *) include Set.S with type elt = int val max_value : int (* the maximal possible value for an element (30 on a 32-bit architecture and 62 on a 64-bits architecture) *) val full : t (* The set [{0,1,2,...,30}] on a 32-bit architecture (resp. [{0,1,2,...,62}] on a 64-bit architecture). *) val print : Format.formatter -> t -> unit (* Prints a set as [{x1,x2,...,xn}]. *)