1(* ------------------------------------------------------------------------- 2 BitsN 3 ------------------------------------------------------------------------- *) 4 5signature BitsN = 6sig 7 (* Can/should be an abstract type when not using SMLExport 8 eqtype nbit 9 *) 10 11 datatype nbit = B of (IntInf.int * Nat.nat) 12 13 val BV: IntInf.int * Nat.nat -> nbit 14 15 val allow_resize: bool ref 16 17 val compare: nbit * nbit -> order 18 val signedCompare: nbit * nbit -> order 19 20 val fromBinString: string * Nat.nat -> nbit option 21 val fromBit: bool -> nbit 22 val fromBitstring: Bitstring.bitstring * Nat.nat -> nbit 23 val fromBool: Nat.nat -> bool -> nbit 24 val fromHexString: string * Nat.nat -> nbit option 25 val fromInt: IntInf.int * Nat.nat -> nbit 26 val fromNativeInt: int * int -> nbit 27 val fromLit: string * IntInf.int -> nbit option 28 val fromNat: Nat.nat * Nat.nat -> nbit 29 val fromNatCheck: Nat.nat * Nat.nat -> nbit 30 val fromString: string * Nat.nat -> nbit option 31 32 val toBinString: nbit -> string 33 val toBitstring: nbit -> Bitstring.bitstring 34 val toHexString: nbit -> string 35 val toInt: nbit -> IntInf.int 36 val toNat: nbit -> Nat.nat 37 val toString: nbit -> string 38 val toUInt: nbit -> IntInf.int 39 40 val #<< : nbit * Nat.nat -> nbit 41 val #<<^ : nbit * nbit -> nbit 42 val #>> : nbit * Nat.nat -> nbit 43 val #>>^ : nbit * nbit -> nbit 44 val && : nbit * nbit -> nbit 45 val * : nbit * nbit -> nbit 46 val + : nbit * nbit -> nbit 47 val - : nbit * nbit -> nbit 48 val < : nbit * nbit -> bool 49 val <+ : nbit * nbit -> bool 50 val << : nbit * Nat.nat -> nbit 51 val <<^ : nbit * nbit -> nbit 52 val <= : nbit * nbit -> bool 53 val <=+ : nbit * nbit -> bool 54 val > : nbit * nbit -> bool 55 val >+ : nbit * nbit -> bool 56 val >= : nbit * nbit -> bool 57 val >=+ : nbit * nbit -> bool 58 val >> : nbit * Nat.nat -> nbit 59 val >>+ : nbit * Nat.nat -> nbit 60 val >>+^ : nbit * nbit -> nbit 61 val >>^ : nbit * nbit -> nbit 62 val ?? : nbit * nbit -> nbit 63 val @@ : nbit * nbit -> nbit 64 val || : nbit * nbit -> nbit 65 val ~ : nbit -> nbit 66 val abs: nbit -> nbit 67 val bit: nbit * Nat.nat -> bool 68 val bitFieldInsert: Nat.nat * Nat.nat -> nbit * nbit -> nbit 69 val bits: Nat.nat * Nat.nat -> nbit -> nbit 70 val concat: nbit list -> nbit 71 val div: nbit * nbit -> nbit 72 val fromList: bool list -> nbit 73 val log2: nbit -> nbit 74 val lsb: nbit -> bool 75 val max: nbit * nbit -> nbit 76 val min: nbit * nbit -> nbit 77 val mod: nbit * nbit -> nbit 78 val msb: nbit -> bool 79 val nativeSize: nbit -> int 80 val neg: nbit -> nbit 81 val one: Nat.nat -> nbit 82 val quot: nbit * nbit -> nbit 83 val rem: nbit * nbit -> nbit 84 val replicate: nbit * Nat.nat -> nbit 85 val resize: int -> nbit -> nbit 86 val resize_replicate: int -> nbit * Nat.nat -> nbit 87 val reverse: nbit -> nbit 88 val sdiv: nbit * nbit -> nbit 89 val signExtend: Nat.nat -> nbit -> nbit 90 val size: nbit -> Nat.nat 91 val smax: nbit * nbit -> nbit 92 val smin: nbit * nbit -> nbit 93 val smod: nbit * nbit -> nbit 94 val tabulate: Nat.nat * (Nat.nat -> bool) -> nbit 95 val toList: nbit -> bool list 96 val zero: Nat.nat -> nbit 97 val zeroExtend: Nat.nat -> nbit -> nbit 98end 99