<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Gg" rel="Chapter" href="Gg.html"><title>Gg</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="constructor">Float</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = float<br> <span class="keyword">val</span> e : float<br> <span class="keyword">val</span> pi : float<br> <span class="keyword">val</span> two_pi : float<br> <span class="keyword">val</span> pi_div_2 : float<br> <span class="keyword">val</span> pi_div_4 : float<br> <span class="keyword">val</span> inv_pi : float<br> <span class="keyword">val</span> max_sub_float : float<br> <span class="keyword">val</span> min_sub_float : float<br> <span class="keyword">val</span> max_frac_float : float<br> <span class="keyword">val</span> max_int_arith : float<br> <span class="keyword">val</span> deg_of_rad : float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> rad_of_deg : float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> wrap_angle : float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> random : ?min:float <span class="keywordsign">-></span> len:float <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> srandom :<br> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> ?min:float <span class="keywordsign">-></span> len:float <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> mix : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> step : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> smooth_step : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> fmax : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> fmin : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> clamp : min:float <span class="keywordsign">-></span> max:float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> remap :<br> x0:float <span class="keywordsign">-></span> x1:float <span class="keywordsign">-></span> y0:float <span class="keywordsign">-></span> y1:float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> round : float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> int_of_round : float <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> round_dfrac : int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> round_dsig : int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> round_zero : eps:float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> chop : eps:float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> sign : float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> sign_bit : float <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> succ : float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> pred : float <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> nan : int <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> nan_payload : float <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> is_zero : eps:float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_nan : float <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_inf : float <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_int : float <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal_tol : eps:float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare_tol : eps:float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> to_string : float <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> pp : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">type</span> m2<br> <span class="keyword">type</span> m3<br> <span class="keyword">type</span> m4<br> <span class="keyword">type</span> v2<br> <span class="keyword">type</span> v3<br> <span class="keyword">type</span> v4<br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">V</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">type</span> m<br> <span class="keyword">val</span> comp : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> infinity : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> neg_infinity : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> basis : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> neg : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> add : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> sub : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> mul : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> div : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> smul : float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> half : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> dot : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> norm : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> norm2 : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> unit : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> homogene : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> mix : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> ltr : <span class="constructor">Gg</span>.<span class="constructor">V</span>.m <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> ( + ) : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> ( - ) : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> ( * ) : float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> ( / ) : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> map : (float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> mapi : (int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> foldi : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> iter : (float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iteri : (int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> for_all : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> to_string : <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> pp : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> pp_f :<br> (<span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">V2</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">type</span> m = <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> v : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> comp : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> x : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> y : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> ox : <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> oy : <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> infinity : <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> neg_infinity : <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> basis : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> of_tuple : float * float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> to_tuple : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> float * float<br> <span class="keyword">val</span> of_polar : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> to_polar : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> of_v3 : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> of_v4 : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> neg : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> add : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> sub : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> mul : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> div : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> smul : float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> half : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> dot : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> norm : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> norm2 : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> unit : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> polar : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> angle : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> ortho : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> homogene : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> mix : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> ltr : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> tr : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> ( + ) : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> ( - ) : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> ( * ) : float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> ( / ) : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> map : (float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> mapi : (int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> foldi : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> iter : (float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iteri : (int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> for_all : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> to_string : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> pp : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> pp_f :<br> (<span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">V3</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">type</span> m = <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> v : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> comp : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> x : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> y : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> z : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> ox : <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> oy : <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> oz : <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> infinity : <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> neg_infinity : <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> basis : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> of_tuple : float * float * float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> to_tuple : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float * float * float<br> <span class="keyword">val</span> of_spherical : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> to_spherical : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> of_v2 : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> z:float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> of_v4 : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> neg : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> add : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> sub : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> mul : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> div : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> smul : float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> half : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> cross : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> dot : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> norm : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> norm2 : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> unit : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> spherical : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> azimuth : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> zenith : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> homogene : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> mix : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> ltr : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> tr : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> ( + ) : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> ( - ) : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> ( * ) : float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> ( / ) : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> map : (float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> mapi : (int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> foldi : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> iter : (float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iteri : (int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> for_all : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> to_string : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> pp : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> pp_f :<br> (<span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">V4</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">type</span> m = <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> v : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> comp : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> x : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> y : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> z : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> w : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> ox : <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> oy : <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> oz : <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> ow : <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> infinity : <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> neg_infinity : <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> basis : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> of_tuple : float * float * float * float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> to_tuple : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> float * float * float * float<br> <span class="keyword">val</span> of_v2 : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> z:float <span class="keywordsign">-></span> w:float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> of_v3 : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> w:float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> neg : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> add : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> sub : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> mul : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> div : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> smul : float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> half : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> dot : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> norm : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> norm2 : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> unit : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> homogene : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> mix : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> ltr : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> ( + ) : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> ( - ) : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> ( * ) : float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> ( / ) : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> map : (float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> mapi : (int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> foldi : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> iter : (float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iteri : (int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> for_all : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> to_string : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> pp : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> pp_f :<br> (<span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">type</span> p2 = <span class="constructor">Gg</span>.v2<br> <span class="keyword">type</span> p3 = <span class="constructor">Gg</span>.v3<br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">P</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">type</span> mh<br> <span class="keyword">val</span> o : <span class="constructor">Gg</span>.<span class="constructor">P</span>.t<br> <span class="keyword">val</span> mid : <span class="constructor">Gg</span>.<span class="constructor">P</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">P</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">P</span>.t<br> <span class="keyword">val</span> tr : <span class="constructor">Gg</span>.<span class="constructor">P</span>.mh <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">P</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">P</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">P2</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.p2<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">type</span> mh = <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> v : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p2<br> <span class="keyword">val</span> x : <span class="constructor">Gg</span>.p2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> y : <span class="constructor">Gg</span>.p2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> o : <span class="constructor">Gg</span>.p2<br> <span class="keyword">val</span> mid : <span class="constructor">Gg</span>.p2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p2<br> <span class="keyword">val</span> tr : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p2<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">P3</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.p3<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">type</span> mh = <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> v : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p3<br> <span class="keyword">val</span> x : <span class="constructor">Gg</span>.p3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> y : <span class="constructor">Gg</span>.p3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> z : <span class="constructor">Gg</span>.p3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> o : <span class="constructor">Gg</span>.p3<br> <span class="keyword">val</span> mid : <span class="constructor">Gg</span>.p3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p3<br> <span class="keyword">val</span> tr : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p3<br> <span class="keyword">end</span><br> <span class="keyword">type</span> quat = <span class="constructor">Gg</span>.v4<br> <span class="keyword">module</span> <span class="constructor">Quat</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> v : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> id : <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> mul : <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> conj : <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> unit : <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> inv : <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> slerp : <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> squad :<br> <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> nlerp : <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> of_m3 : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> of_m4 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> rot_map : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> rot_axis : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> rot_zyx : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.quat<br> <span class="keyword">val</span> to_rot_axis : <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 * float<br> <span class="keyword">val</span> to_rot_zyx : <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> apply3 : <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> apply4 : <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">M</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">type</span> v<br> <span class="keyword">val</span> el : int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> row : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.v<br> <span class="keyword">val</span> col : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.v<br> <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t<br> <span class="keyword">val</span> id : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t<br> <span class="keyword">val</span> neg : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t<br> <span class="keyword">val</span> add : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t<br> <span class="keyword">val</span> sub : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t<br> <span class="keyword">val</span> mul : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t<br> <span class="keyword">val</span> emul : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t<br> <span class="keyword">val</span> ediv : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t<br> <span class="keyword">val</span> smul : float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t<br> <span class="keyword">val</span> transpose : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t<br> <span class="keyword">val</span> trace : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> det : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> inv : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t<br> <span class="keyword">val</span> map : (float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t<br> <span class="keyword">val</span> mapi : (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> foldi : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> iter : (float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iteri : (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> for_all : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> to_string : <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> pp : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> pp_f :<br> (<span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">M2</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">type</span> v = <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> v : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> of_rows : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> of_cols : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> el : int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> row : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> col : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2<br> <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> id : <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> of_m3 : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> of_m4 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> neg : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> add : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> sub : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> mul : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> emul : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> ediv : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> smul : float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> transpose : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> trace : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> det : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> inv : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> rot : float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> scale : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> map : (float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> mapi : (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> foldi : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> iter : (float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iteri : (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> for_all : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> to_string : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> pp : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> pp_f :<br> (<span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> e00 : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e01 : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e10 : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e11 : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> float<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">M3</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">type</span> v = <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> v :<br> float <span class="keywordsign">-></span><br> float <span class="keywordsign">-></span><br> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> of_rows : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> of_cols : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> el : int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> row : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> col : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3<br> <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> id : <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> of_m2_v2 : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> of_m4 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> of_quat : <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> neg : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> add : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> sub : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> mul : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> emul : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> ediv : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> smul : float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> transpose : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> trace : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> det : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> inv : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> move : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> rot : float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> scale2 : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> rigid : move:<span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> rot:float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> srigid : move:<span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> rot:float <span class="keywordsign">-></span> scale:<span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> rot_map : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> rot_axis : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> rot_zyx : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> scale : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> map : (float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> mapi : (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> foldi : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> iter : (float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iteri : (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> for_all : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> to_string : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> pp : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> pp_f :<br> (<span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> e00 : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e01 : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e02 : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e10 : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e11 : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e12 : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e20 : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e21 : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e22 : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> float<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">M4</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">type</span> v = <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> v :<br> float <span class="keywordsign">-></span><br> float <span class="keywordsign">-></span><br> float <span class="keywordsign">-></span><br> float <span class="keywordsign">-></span><br> float <span class="keywordsign">-></span><br> float <span class="keywordsign">-></span><br> float <span class="keywordsign">-></span><br> float <span class="keywordsign">-></span><br> float <span class="keywordsign">-></span><br> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> of_rows : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> of_cols : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> el : int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> row : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M4</span>.v<br> <span class="keyword">val</span> col : int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">M4</span>.v<br> <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> id : <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> of_m3_v3 : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> of_quat : <span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> neg : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> add : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> sub : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> mul : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> emul : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> ediv : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> smul : float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> transpose : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> trace : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> det : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> inv : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> move : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> rot_map : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> rot_axis : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> rot_zyx : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> scale3 : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> rigid : move:<span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> rot:<span class="constructor">Gg</span>.v3 * float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> rigidq : move:<span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> rot:<span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> srigid : move:<span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> rot:<span class="constructor">Gg</span>.v3 * float <span class="keywordsign">-></span> scale:<span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> srigidq : move:<span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> rot:<span class="constructor">Gg</span>.quat <span class="keywordsign">-></span> scale:<span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> ortho :<br> left:float <span class="keywordsign">-></span><br> right:float <span class="keywordsign">-></span><br> bottom:float <span class="keywordsign">-></span> top:float <span class="keywordsign">-></span> near:float <span class="keywordsign">-></span> far:float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> persp :<br> left:float <span class="keywordsign">-></span><br> right:float <span class="keywordsign">-></span><br> bottom:float <span class="keywordsign">-></span> top:float <span class="keywordsign">-></span> near:float <span class="keywordsign">-></span> far:float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> scale : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> map : (float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> mapi : (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> foldi : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> iter : (float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iteri : (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> for_all : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> to_string : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> pp : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> pp_f :<br> (<span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> e00 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e01 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e02 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e03 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e10 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e11 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e12 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e13 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e20 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e21 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e22 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e23 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e30 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e31 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e32 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> e33 : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> float<br> <span class="keyword">end</span><br> <span class="keyword">type</span> size2 = <span class="constructor">Gg</span>.v2<br> <span class="keyword">type</span> size3 = <span class="constructor">Gg</span>.v3<br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Size</span> =<br> <span class="keyword">sig</span> <span class="keyword">type</span> t <span class="keyword">val</span> dim : int <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.<span class="constructor">Size</span>.t <span class="keyword">val</span> unit : <span class="constructor">Gg</span>.<span class="constructor">Size</span>.t <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Size2</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.size2<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">val</span> v : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.size2<br> <span class="keyword">val</span> w : <span class="constructor">Gg</span>.size2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> h : <span class="constructor">Gg</span>.size2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.size2<br> <span class="keyword">val</span> unit : <span class="constructor">Gg</span>.size2<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Size3</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.size3<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">val</span> v : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.size3<br> <span class="keyword">val</span> w : <span class="constructor">Gg</span>.size3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> h : <span class="constructor">Gg</span>.size3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> d : <span class="constructor">Gg</span>.size3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.size3<br> <span class="keyword">val</span> unit : <span class="constructor">Gg</span>.size3<br> <span class="keyword">end</span><br> <span class="keyword">type</span> box2<br> <span class="keyword">type</span> box3<br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Box</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">type</span> v<br> <span class="keyword">type</span> p<br> <span class="keyword">type</span> size<br> <span class="keyword">type</span> m<br> <span class="keyword">val</span> v : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.p <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.size <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t<br> <span class="keyword">val</span> v_mid : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.p <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.size <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t<br> <span class="keyword">val</span> empty : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t<br> <span class="keyword">val</span> o : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.p<br> <span class="keyword">val</span> size : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.size<br> <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t<br> <span class="keyword">val</span> unit : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t<br> <span class="keyword">val</span> of_pts : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.p <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.p <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t<br> <span class="keyword">val</span> min : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.p<br> <span class="keyword">val</span> max : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.p<br> <span class="keyword">val</span> mid : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.p<br> <span class="keyword">val</span> area : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> inter : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t<br> <span class="keyword">val</span> union : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t<br> <span class="keyword">val</span> inset : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.v <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t<br> <span class="keyword">val</span> round : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t<br> <span class="keyword">val</span> move : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.v <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t<br> <span class="keyword">val</span> ltr : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.m <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t<br> <span class="keyword">val</span> map_f : (float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t<br> <span class="keyword">val</span> is_empty : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_pt : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> isects : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> subset : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.p <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> to_string : <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> pp : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> pp_f :<br> (<span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Box2</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.box2<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">type</span> v = <span class="constructor">Gg</span>.v2<br> <span class="keyword">type</span> p = <span class="constructor">Gg</span>.p2<br> <span class="keyword">type</span> size = <span class="constructor">Gg</span>.size2<br> <span class="keyword">type</span> m = <span class="constructor">Gg</span>.m2<br> <span class="keyword">val</span> v : <span class="constructor">Gg</span>.p2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.size2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2<br> <span class="keyword">val</span> v_mid : <span class="constructor">Gg</span>.p2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.size2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box2</span>.t<br> <span class="keyword">val</span> empty : <span class="constructor">Gg</span>.box2<br> <span class="keyword">val</span> o : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p2<br> <span class="keyword">val</span> ox : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> oy : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> size : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box2</span>.size<br> <span class="keyword">val</span> w : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> h : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.box2<br> <span class="keyword">val</span> unit : <span class="constructor">Gg</span>.box2<br> <span class="keyword">val</span> of_pts : <span class="constructor">Gg</span>.p2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2<br> <span class="keyword">val</span> min : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p2<br> <span class="keyword">val</span> minx : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> miny : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> max : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p2<br> <span class="keyword">val</span> maxx : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> maxy : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> mid : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p2<br> <span class="keyword">val</span> midx : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> midy : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> bottom_left : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p2<br> <span class="keyword">val</span> bottom_right : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p2<br> <span class="keyword">val</span> top_left : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p2<br> <span class="keyword">val</span> top_right : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p2<br> <span class="keyword">val</span> area : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> inter : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2<br> <span class="keyword">val</span> union : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2<br> <span class="keyword">val</span> inset : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2<br> <span class="keyword">val</span> round : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2<br> <span class="keyword">val</span> move : <span class="constructor">Gg</span>.v2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2<br> <span class="keyword">val</span> ltr : <span class="constructor">Gg</span>.m2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2<br> <span class="keyword">val</span> tr : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2<br> <span class="keyword">val</span> map_f : (float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2<br> <span class="keyword">val</span> is_empty : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_pt : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_seg : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> isects : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> subset : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : <span class="constructor">Gg</span>.p2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> to_string : <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> pp : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> pp_f :<br> (<span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box2 <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Box3</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.box3<br> <span class="keyword">val</span> dim : int<br> <span class="keyword">type</span> v = <span class="constructor">Gg</span>.v3<br> <span class="keyword">type</span> p = <span class="constructor">Gg</span>.p3<br> <span class="keyword">type</span> size = <span class="constructor">Gg</span>.size3<br> <span class="keyword">type</span> m = <span class="constructor">Gg</span>.m3<br> <span class="keyword">val</span> v : <span class="constructor">Gg</span>.p3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.size3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3<br> <span class="keyword">val</span> v_mid : <span class="constructor">Gg</span>.p3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.size3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Box3</span>.t<br> <span class="keyword">val</span> empty : <span class="constructor">Gg</span>.box3<br> <span class="keyword">val</span> o : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p3<br> <span class="keyword">val</span> ox : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> oy : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> oz : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> size : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.size3<br> <span class="keyword">val</span> w : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> h : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> d : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> zero : <span class="constructor">Gg</span>.box3<br> <span class="keyword">val</span> unit : <span class="constructor">Gg</span>.box3<br> <span class="keyword">val</span> of_pts : <span class="constructor">Gg</span>.p3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3<br> <span class="keyword">val</span> min : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p3<br> <span class="keyword">val</span> minx : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> miny : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> minz : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> max : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p3<br> <span class="keyword">val</span> maxx : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> maxy : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> maxz : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> mid : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.p3<br> <span class="keyword">val</span> midx : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> midy : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> midz : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> area : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> volume : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> inter : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3<br> <span class="keyword">val</span> union : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3<br> <span class="keyword">val</span> inset : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3<br> <span class="keyword">val</span> round : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3<br> <span class="keyword">val</span> move : <span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3<br> <span class="keyword">val</span> ltr : <span class="constructor">Gg</span>.m3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3<br> <span class="keyword">val</span> tr : <span class="constructor">Gg</span>.m4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3<br> <span class="keyword">val</span> map_f : (float <span class="keywordsign">-></span> float) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3<br> <span class="keyword">val</span> is_empty : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_pt : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_plane : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_seg : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> isects : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> subset : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : <span class="constructor">Gg</span>.p3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> equal_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare_f : (float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> to_string : <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> pp : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> pp_f :<br> (<span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.box3 <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">type</span> color = <span class="constructor">Gg</span>.v4<br> <span class="keyword">module</span> <span class="constructor">Color</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.color<br> <span class="keyword">type</span> stops = (float * <span class="constructor">Gg</span>.color) list<br> <span class="keyword">val</span> v : float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> v_srgb : ?a:float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> v_srgbi : ?a:float <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> r : <span class="constructor">Gg</span>.color <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> g : <span class="constructor">Gg</span>.color <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> b : <span class="constructor">Gg</span>.color <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> a : <span class="constructor">Gg</span>.color <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> void : <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> black : <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> gray : ?a:float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> white : <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> red : <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> green : <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> blue : <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> blend : <span class="constructor">Gg</span>.color <span class="keywordsign">-></span> <span class="constructor">Gg</span>.color <span class="keywordsign">-></span> <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> clamp : <span class="constructor">Gg</span>.color <span class="keywordsign">-></span> <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> with_a : <span class="constructor">Gg</span>.color <span class="keywordsign">-></span> float <span class="keywordsign">-></span> <span class="constructor">Gg</span>.color<br> <span class="keyword">type</span> srgb = <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> of_srgb : <span class="constructor">Gg</span>.<span class="constructor">Color</span>.srgb <span class="keywordsign">-></span> <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> to_srgb : <span class="constructor">Gg</span>.color <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Color</span>.srgb<br> <span class="keyword">type</span> luv = <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> of_luv : <span class="constructor">Gg</span>.<span class="constructor">Color</span>.luv <span class="keywordsign">-></span> <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> to_luv : <span class="constructor">Gg</span>.color <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Color</span>.luv<br> <span class="keyword">type</span> lch_uv = <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> of_lch_uv : <span class="constructor">Gg</span>.<span class="constructor">Color</span>.lch_uv <span class="keywordsign">-></span> <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> to_lch_uv : <span class="constructor">Gg</span>.color <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Color</span>.lch_uv<br> <span class="keyword">type</span> lab = <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> of_lab : <span class="constructor">Gg</span>.v4 <span class="keywordsign">-></span> <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> to_lab : <span class="constructor">Gg</span>.color <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v4<br> <span class="keyword">type</span> lch_ab = <span class="constructor">Gg</span>.v4<br> <span class="keyword">val</span> of_lch_ab : <span class="constructor">Gg</span>.<span class="constructor">Color</span>.lch_ab <span class="keywordsign">-></span> <span class="constructor">Gg</span>.color<br> <span class="keyword">val</span> to_lch_ab : <span class="constructor">Gg</span>.color <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Color</span>.lch_ab<br> <span class="keyword">type</span> space =<br> [ <span class="keywordsign">`</span><span class="constructor">CLR2</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CLR3</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CLR4</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CLR5</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CLR6</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CLR7</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CLR8</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CLR9</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CLRA</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CLRB</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CLRC</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CLRD</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CLRE</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CLRF</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CMY</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CMYK</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Gray</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">HLS</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">HSV</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Lab</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Luv</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">RGB</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">XYZ</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">YCbr</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Yxy</span> ]<br> <span class="keyword">val</span> space_dim : <span class="constructor">Gg</span>.<span class="constructor">Color</span>.space <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> pp_space : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Color</span>.space <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> profile<br> <span class="keyword">val</span> profile_of_icc : string <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Color</span>.profile option<br> <span class="keyword">val</span> profile_to_icc : <span class="constructor">Gg</span>.<span class="constructor">Color</span>.profile <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> profile_space : <span class="constructor">Gg</span>.<span class="constructor">Color</span>.profile <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Color</span>.space<br> <span class="keyword">val</span> profile_dim : <span class="constructor">Gg</span>.<span class="constructor">Color</span>.profile <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> p_gray_l : <span class="constructor">Gg</span>.<span class="constructor">Color</span>.profile<br> <span class="keyword">val</span> p_rgb_l : <span class="constructor">Gg</span>.<span class="constructor">Color</span>.profile<br> <span class="keyword">end</span><br> <span class="keyword">type</span> raster<br> <span class="keyword">module</span> <span class="constructor">Raster</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> scalar_type =<br> [ <span class="keywordsign">`</span><span class="constructor">Float16</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Float32</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Float64</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Int16</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Int32</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Int64</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Int8</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UInt16</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UInt32</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UInt64</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UInt8</span> ]<br> <span class="keyword">val</span> scalar_type_byte_count : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.scalar_type <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> pp_scalar_type : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.scalar_type <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) b_array = (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b, <span class="constructor">Bigarray</span>.c_layout) <span class="constructor">Bigarray</span>.<span class="constructor">Array1</span>.t<br> <span class="keyword">type</span> buffer =<br> [ <span class="keywordsign">`</span><span class="constructor">A_Float64</span> <span class="keyword">of</span> float array<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">B_Float16</span> <span class="keyword">of</span><br> (int, <span class="constructor">Bigarray</span>.int16_unsigned_elt) <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.b_array<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">B_Float32</span> <span class="keyword">of</span> (float, <span class="constructor">Bigarray</span>.float32_elt) <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.b_array<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">B_Float64</span> <span class="keyword">of</span> (float, <span class="constructor">Bigarray</span>.float64_elt) <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.b_array<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">B_Int16</span> <span class="keyword">of</span> (int, <span class="constructor">Bigarray</span>.int16_signed_elt) <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.b_array<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">B_Int32</span> <span class="keyword">of</span> (int32, <span class="constructor">Bigarray</span>.int32_elt) <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.b_array<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">B_Int64</span> <span class="keyword">of</span> (int64, <span class="constructor">Bigarray</span>.int64_elt) <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.b_array<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">B_Int8</span> <span class="keyword">of</span> (int, <span class="constructor">Bigarray</span>.int8_signed_elt) <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.b_array<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">B_UInt16</span> <span class="keyword">of</span> (int, <span class="constructor">Bigarray</span>.int16_unsigned_elt) <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.b_array<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">B_UInt32</span> <span class="keyword">of</span> (int32, <span class="constructor">Bigarray</span>.int32_elt) <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.b_array<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">B_UInt64</span> <span class="keyword">of</span> (int64, <span class="constructor">Bigarray</span>.int64_elt) <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.b_array<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">B_UInt8</span> <span class="keyword">of</span> (int, <span class="constructor">Bigarray</span>.int8_unsigned_elt) <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.b_array<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">S_UInt8</span> <span class="keyword">of</span> string ]<br> <span class="keyword">val</span> buffer_scalar_type : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.buffer <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.scalar_type<br> <span class="keyword">val</span> pp_buffer : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.buffer <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> sample_semantics =<br> [ <span class="keywordsign">`</span><span class="constructor">Color</span> <span class="keyword">of</span> <span class="constructor">Gg</span>.<span class="constructor">Color</span>.profile * bool <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Other</span> <span class="keyword">of</span> string * int ]<br> <span class="keyword">val</span> rgb_l : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_semantics<br> <span class="keyword">val</span> rgba_l : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_semantics<br> <span class="keyword">val</span> gray_l : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_semantics<br> <span class="keyword">val</span> graya_l : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_semantics<br> <span class="keyword">val</span> pp_sample_semantics :<br> <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_semantics <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> sample_pack =<br> [ <span class="keywordsign">`</span><span class="constructor">FourCC</span> <span class="keyword">of</span> string * <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.scalar_type option<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Other</span> <span class="keyword">of</span> string * <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.scalar_type option<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">PU8888</span> ]<br> <span class="keyword">val</span> pp_sample_pack : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_pack <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> sample_format<br> <span class="keyword">val</span> sample_format_v :<br> ?pack:<span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_pack <span class="keywordsign">-></span><br> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_semantics <span class="keywordsign">-></span><br> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.scalar_type <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_format<br> <span class="keyword">val</span> sf_semantics :<br> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_format <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_semantics<br> <span class="keyword">val</span> sf_scalar_type : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_format <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.scalar_type<br> <span class="keyword">val</span> sf_pack : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_format <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_pack option<br> <span class="keyword">val</span> sf_dim : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_format <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> sf_scalar_count :<br> ?first:int <span class="keywordsign">-></span><br> ?w_skip:int <span class="keywordsign">-></span><br> ?h_skip:int <span class="keywordsign">-></span><br> w:int <span class="keywordsign">-></span> ?h:int <span class="keywordsign">-></span> ?d:int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_format <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> pp_sample_format :<br> <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_format <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> t = <span class="constructor">Gg</span>.raster<br> <span class="keyword">val</span> v :<br> ?res:<span class="constructor">Gg</span>.v3 <span class="keywordsign">-></span><br> ?first:int <span class="keywordsign">-></span><br> ?w_skip:int <span class="keywordsign">-></span><br> ?h_skip:int <span class="keywordsign">-></span><br> w:int <span class="keywordsign">-></span><br> ?h:int <span class="keywordsign">-></span><br> ?d:int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_format <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.buffer <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t<br> <span class="keyword">val</span> res : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.v3 option<br> <span class="keyword">val</span> first : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> w_skip : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> h_skip : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> w : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> h : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> d : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> sample_format : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.sample_format<br> <span class="keyword">val</span> buffer : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.buffer<br> <span class="keyword">val</span> dim : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> size2 : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.size2<br> <span class="keyword">val</span> size3 : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.size3<br> <span class="keyword">val</span> sub :<br> ?x:int <span class="keywordsign">-></span><br> ?y:int <span class="keywordsign">-></span><br> ?z:int <span class="keywordsign">-></span> ?w:int <span class="keywordsign">-></span> ?h:int <span class="keywordsign">-></span> ?d:int <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t<br> <span class="keyword">val</span> pitches : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> int * int * int<br> <span class="keyword">val</span> equal : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> to_string : <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> pp : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Gg</span>.<span class="constructor">Raster</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span></code></body></html>