stdcompat__random.ml1 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 79 80include Random (* module State = struct include Random.State let bits32 state = let bits30 = Int32.of_int (bits state) in let add_bit bits i = if bool state then Int32.add bits (Int32.shift_left 1l i) else bits in let bits31 = add_bit bits30 30 in let bits32 = add_bit bits31 31 in bits32 let bits64 state = let bits30 = Int64.of_int (bits state) in let bits60 = Int64.add bits30 (Int64.shift_left (Int64.of_int (bits state)) 30) in let add_bit bits i = if bool state then Int64.add bits (Int64.shift_left 1L i) else bits in let bits61 = add_bit bits60 60 in let bits62 = add_bit bits61 61 in let bits63 = add_bit bits62 62 in let bits64 = add_bit bits63 63 in bits64 let nativebits state = Int64.to_nativeint (bits64 state) (* let full_int state n = Int64.to_int (bits64 state) mod n *) end let init = Random.init let full_init = Random.full_init let self_init = Random.self_init let bits = Random.bits let int = Random.int let int32 = Random.int32 let nativeint = Random.nativeint let int64 = Random.int64 let float = Random.float let bool = Random.bool let get_state = Random.get_state let set_state = Random.set_state let bits32 () = State.bits32 (get_state ()) let bits64 () = State.bits64 (get_state ()) let nativebits () = State.nativebits (get_state ()) let full_int = Random.full_int (* let full_int n = State.full_int (get_state ()) n *) *)