mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-18 16:46:40 -05:00
Remove cross-deps
This commit is contained in:
parent
ffba89de53
commit
a01a81667b
5 changed files with 23 additions and 13 deletions
|
|
@ -7,10 +7,10 @@ type 'a t = 'a -> 'a -> bool
|
||||||
|
|
||||||
let poly = Pervasives.(=)
|
let poly = Pervasives.(=)
|
||||||
|
|
||||||
let int : int t = CCInt.equal
|
let int : int t = Pervasives.(=)
|
||||||
let string : string t = CCString.equal
|
let string : string t = Pervasives.(=)
|
||||||
let bool : bool t = CCBool.equal
|
let bool : bool t = Pervasives.(=)
|
||||||
let float : float t = CCFloat.equal
|
let float : float t = Pervasives.(=)
|
||||||
let unit () () = true
|
let unit () () = true
|
||||||
|
|
||||||
let rec list f l1 l2 = match l1, l2 with
|
let rec list f l1 l2 = match l1, l2 with
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,8 @@ let floor_div a n =
|
||||||
|
|
||||||
let rem a n =
|
let rem a n =
|
||||||
let y = a mod n in
|
let y = a mod n in
|
||||||
if not (CCBool.equal (y < 0) (n < 0)) && y <> 0 then
|
let bool_neq (a : bool) b = Pervasives.(<>) a b in
|
||||||
|
if bool_neq (y < 0) (n < 0) && y <> 0 then
|
||||||
y + n
|
y + n
|
||||||
else
|
else
|
||||||
y
|
y
|
||||||
|
|
|
||||||
|
|
@ -81,13 +81,15 @@ let fail_ ~err st msg =
|
||||||
let b = (st.lnum, st.cnum, None) :: st.branch in
|
let b = (st.lnum, st.cnum, None) :: st.branch in
|
||||||
err (ParseError (b, msg))
|
err (ParseError (b, msg))
|
||||||
|
|
||||||
|
let char_eq (a : char) b = Pervasives.(=) a b
|
||||||
|
|
||||||
let next st ~ok ~err =
|
let next st ~ok ~err =
|
||||||
if st.i = String.length st.str
|
if st.i = String.length st.str
|
||||||
then fail_ st ~err (const_ "unexpected end of input")
|
then fail_ st ~err (const_ "unexpected end of input")
|
||||||
else (
|
else (
|
||||||
let c = st.str.[st.i] in
|
let c = st.str.[st.i] in
|
||||||
st.i <- st.i + 1;
|
st.i <- st.i + 1;
|
||||||
if CCChar.equal c '\n'
|
if char_eq c '\n'
|
||||||
then (st.lnum <- st.lnum + 1; st.cnum <- 1)
|
then (st.lnum <- st.lnum + 1; st.cnum <- 1)
|
||||||
else st.cnum <- st.cnum + 1;
|
else st.cnum <- st.cnum + 1;
|
||||||
ok c
|
ok c
|
||||||
|
|
@ -146,7 +148,7 @@ let char c =
|
||||||
let msg = Printf.sprintf "expected '%c'" c in
|
let msg = Printf.sprintf "expected '%c'" c in
|
||||||
fun st ~ok ~err ->
|
fun st ~ok ~err ->
|
||||||
next st ~err
|
next st ~err
|
||||||
~ok:(fun c' -> if CCChar.equal c c' then ok c else fail_ ~err st (const_ msg))
|
~ok:(fun c' -> if char_eq c c' then ok c else fail_ ~err st (const_ msg))
|
||||||
|
|
||||||
let char_if p st ~ok ~err =
|
let char_if p st ~ok ~err =
|
||||||
next st ~err
|
next st ~err
|
||||||
|
|
@ -161,10 +163,12 @@ let chars_if p st ~ok ~err:_ =
|
||||||
while not (is_done st) && p (cur st) do junk_ st; incr len done;
|
while not (is_done st) && p (cur st) do junk_ st; incr len done;
|
||||||
ok (String.sub st.str i !len)
|
ok (String.sub st.str i !len)
|
||||||
|
|
||||||
|
let string_is_empty (s : string) = Pervasives.(=) s ""
|
||||||
|
|
||||||
let chars1_if p st ~ok ~err =
|
let chars1_if p st ~ok ~err =
|
||||||
chars_if p st ~err
|
chars_if p st ~err
|
||||||
~ok:(fun s ->
|
~ok:(fun s ->
|
||||||
if CCString.is_empty s
|
if string_is_empty s
|
||||||
then fail_ ~err st (const_ "unexpected sequence of chars")
|
then fail_ ~err st (const_ "unexpected sequence of chars")
|
||||||
else ok s)
|
else ok s)
|
||||||
|
|
||||||
|
|
@ -231,7 +235,7 @@ let string s st ~ok ~err =
|
||||||
else
|
else
|
||||||
next st ~err
|
next st ~err
|
||||||
~ok:(fun c ->
|
~ok:(fun c ->
|
||||||
if CCChar.equal c s.[i]
|
if char_eq c s.[i]
|
||||||
then check (i+1)
|
then check (i+1)
|
||||||
else fail_ ~err st (fun () -> Printf.sprintf "expected \"%s\"" s))
|
else fail_ ~err st (fun () -> Printf.sprintf "expected \"%s\"" s))
|
||||||
in
|
in
|
||||||
|
|
@ -386,7 +390,7 @@ module U = struct
|
||||||
skip_white <* string stop
|
skip_white <* string stop
|
||||||
|
|
||||||
let int =
|
let int =
|
||||||
chars1_if (fun c -> is_num c || CCChar.equal c '-')
|
chars1_if (fun c -> is_num c || char_eq c '-')
|
||||||
>>= fun s ->
|
>>= fun s ->
|
||||||
try return (int_of_string s)
|
try return (int_of_string s)
|
||||||
with Failure _ -> fail "expected an int"
|
with Failure _ -> fail "expected an int"
|
||||||
|
|
|
||||||
|
|
@ -108,6 +108,7 @@ let _diff_list ~last l =
|
||||||
in
|
in
|
||||||
diff_list [] l
|
diff_list [] l
|
||||||
|
|
||||||
|
let int_cmp (a : int) b = Pervasives.compare a b
|
||||||
|
|
||||||
(* Partition of an int into [len] integers uniformly.
|
(* Partition of an int into [len] integers uniformly.
|
||||||
We first sample (len-1) points from the set {1,..i-1} without replacement.
|
We first sample (len-1) points from the set {1,..i-1} without replacement.
|
||||||
|
|
@ -118,7 +119,7 @@ let _diff_list ~last l =
|
||||||
let split_list i ~len st =
|
let split_list i ~len st =
|
||||||
if len <= 1 then invalid_arg "Random.split_list";
|
if len <= 1 then invalid_arg "Random.split_list";
|
||||||
if i >= len then
|
if i >= len then
|
||||||
let xs = sample_without_replacement ~compare:CCInt.compare (len-1) (int_range 1 (i-1)) st in
|
let xs = sample_without_replacement ~compare:int_cmp (len-1) (int_range 1 (i-1)) st in
|
||||||
_diff_list ( 0::xs ) ~last:i
|
_diff_list ( 0::xs ) ~last:i
|
||||||
else
|
else
|
||||||
None
|
None
|
||||||
|
|
@ -221,7 +222,8 @@ let uniformity_test ?(size_hint=10) k rng st =
|
||||||
let confidence = 4. in
|
let confidence = 4. in
|
||||||
let std = confidence *. (sqrt (kf *. variance)) in
|
let std = confidence *. (sqrt (kf *. variance)) in
|
||||||
let predicate _key n acc =
|
let predicate _key n acc =
|
||||||
CCFloat.Infix.(acc && abs_float (average -. float_of_int n) < std) in
|
let (<) (a : float) b = Pervasives.(<) a b in
|
||||||
|
acc && abs_float (average -. float_of_int n) < std in
|
||||||
Hashtbl.fold predicate histogram true
|
Hashtbl.fold predicate histogram true
|
||||||
|
|
||||||
(*$T split_list
|
(*$T split_list
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,10 @@
|
||||||
type job =
|
type job =
|
||||||
| Job : float * (unit -> 'a) -> job
|
| Job : float * (unit -> 'a) -> job
|
||||||
|
|
||||||
open CCFloat.Infix
|
let (<=) (a : float) b = Pervasives.(<=) a b
|
||||||
|
let (>=) (a : float) b = Pervasives.(>=) a b
|
||||||
|
let (<) (a : float) b = Pervasives.(<) a b
|
||||||
|
let (>) (a : float) b = Pervasives.(>) a b
|
||||||
|
|
||||||
module TaskHeap = CCHeap.Make(struct
|
module TaskHeap = CCHeap.Make(struct
|
||||||
type t = job
|
type t = job
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue