sig
type t = Gg.m2
val dim : int
type v = Gg.v2
val v : float -> float -> float -> float -> Gg.m2
val of_rows : Gg.v2 -> Gg.v2 -> Gg.m2
val of_cols : Gg.v2 -> Gg.v2 -> Gg.m2
val el : int -> int -> Gg.m2 -> float
val row : int -> Gg.m2 -> Gg.v2
val col : int -> Gg.m2 -> Gg.v2
val zero : Gg.m2
val id : Gg.m2
val of_m3 : Gg.m3 -> Gg.m2
val of_m4 : Gg.m4 -> Gg.m2
val neg : Gg.m2 -> Gg.m2
val add : Gg.m2 -> Gg.m2 -> Gg.m2
val sub : Gg.m2 -> Gg.m2 -> Gg.m2
val mul : Gg.m2 -> Gg.m2 -> Gg.m2
val emul : Gg.m2 -> Gg.m2 -> Gg.m2
val ediv : Gg.m2 -> Gg.m2 -> Gg.m2
val smul : float -> Gg.m2 -> Gg.m2
val transpose : Gg.m2 -> Gg.m2
val trace : Gg.m2 -> float
val det : Gg.m2 -> float
val inv : Gg.m2 -> Gg.m2
val rot : float -> Gg.m2
val scale : Gg.v2 -> Gg.m2
val map : (float -> float) -> Gg.m2 -> Gg.m2
val mapi : (int -> int -> float -> float) -> Gg.m2 -> Gg.m2
val fold : ('a -> float -> 'a) -> 'a -> Gg.m2 -> 'a
val foldi : ('a -> int -> int -> float -> 'a) -> 'a -> Gg.m2 -> 'a
val iter : (float -> unit) -> Gg.m2 -> unit
val iteri : (int -> int -> float -> unit) -> Gg.m2 -> unit
val for_all : (float -> bool) -> Gg.m2 -> bool
val exists : (float -> bool) -> Gg.m2 -> bool
val equal : Gg.m2 -> Gg.m2 -> bool
val equal_f : (float -> float -> bool) -> Gg.m2 -> Gg.m2 -> bool
val compare : Gg.m2 -> Gg.m2 -> int
val compare_f : (float -> float -> int) -> Gg.m2 -> Gg.m2 -> int
val to_string : Gg.m2 -> string
val pp : Format.formatter -> Gg.m2 -> unit
val pp_f :
(Format.formatter -> float -> unit) -> Format.formatter -> Gg.m2 -> unit
val e00 : Gg.m2 -> float
val e01 : Gg.m2 -> float
val e10 : Gg.m2 -> float
val e11 : Gg.m2 -> float
end