type calculator = | If of calculator list| IfElse of calculator list * calculator list| Bool of bool| Float of float| Int of int32| Abs| Add| Atan| Ceiling| Cos| Cvi| Cvr| Div| Exp| Floor| Idiv| Ln| Log| Mod| Mul| Neg| Round| Sin| Sqrt| Sub| Truncate| And| Bitshift| Eq| Ge| Gt| Le| Lt| Ne| Not| Or| Xor| Copy| Exch| Pop| Dup| Index| Roll
type sampled = {size : int list;order : int;encode : float list;decode : float list;bps : int;samples : int32 array;
}and interpolation = {c0 : float list;c1 : float list;n : float;
}and stitching = {functions : t list;bounds : float list;stitch_encode : float list;
}and t = {func : pdf_fun_kind;domain : float list;range : float list option;
}val string_of_calculator_inner : calculator -> stringval string_of_calculator : calculator list -> stringval print_function : t -> unitexception BadFunctionEvaluation of stringval interpolate : float -> float -> float -> float -> float -> floatval eval_function_sampled : t -> sampled -> float list -> float listval eval_function_calculator : float list -> calculator list -> float listval eval_function : t -> float list -> float listval funtype_of_function : t -> int