sig
module type S =
sig
module Coeff : Scalar.S
type t
exception Dimension_error of string
val of_list_list : Coeff.t list list -> Matrix.S.t
val to_list_list : Matrix.S.t -> Coeff.t list list
val of_array_array : Coeff.t array array -> Matrix.S.t
val to_array_array : Matrix.S.t -> Coeff.t array array
val zeros : int -> int -> Matrix.S.t
val eye : int -> Matrix.S.t
val kron : int -> int -> int -> Matrix.S.t
val kron_sym : int -> int -> int -> Matrix.S.t
val block : Matrix.S.t array array -> Matrix.S.t
val lift_block : Matrix.S.t -> int -> int -> int -> int -> Matrix.S.t
val transpose : Matrix.S.t -> Matrix.S.t
val minus : Matrix.S.t -> Matrix.S.t
val mult_scalar : Coeff.t -> Matrix.S.t -> Matrix.S.t
val add : Matrix.S.t -> Matrix.S.t -> Matrix.S.t
val sub : Matrix.S.t -> Matrix.S.t -> Matrix.S.t
val mult : Matrix.S.t -> Matrix.S.t -> Matrix.S.t
val power : Matrix.S.t -> int -> Matrix.S.t
val nb_lines : Matrix.S.t -> int
val nb_cols : Matrix.S.t -> int
val is_symmetric : Matrix.S.t -> bool
val remove_0_row_cols : Matrix.S.t -> Matrix.S.t
val gauss_split : Matrix.S.t -> int * Matrix.S.t * Matrix.S.t
val ( ~: ) : Matrix.S.t -> Matrix.S.t
val ( ~- ) : Matrix.S.t -> Matrix.S.t
val ( *. ) : Coeff.t -> Matrix.S.t -> Matrix.S.t
val ( + ) : Matrix.S.t -> Matrix.S.t -> Matrix.S.t
val ( - ) : Matrix.S.t -> Matrix.S.t -> Matrix.S.t
val ( * ) : Matrix.S.t -> Matrix.S.t -> Matrix.S.t
val ( ** ) : Matrix.S.t -> int -> Matrix.S.t
val pp : Stdlib.Format.formatter -> Matrix.S.t -> unit
end
module Make :
functor (ET : Scalar.S) ->
sig
module Coeff :
sig
type t = ET.t
val compare : t -> t -> int
val zero : t
val one : t
val of_float : float -> t
val to_float : t -> float
val of_q : Q.t -> t
val to_q : t -> Q.t
val add : t -> t -> t
val sub : t -> t -> t
val mult : t -> t -> t
val div : t -> t -> t
val pp : Format.formatter -> t -> unit
val minus_one : t
val of_int : int -> t
val neg : t -> t
val inv : t -> t
val equal : t -> t -> bool
val leq : t -> t -> bool
val geq : t -> t -> bool
val lt : t -> t -> bool
val gt : t -> t -> bool
val sign : t -> int
val ( ~- ) : t -> t
val ( + ) : t -> t -> t
val ( - ) : t -> t -> t
val ( * ) : t -> t -> t
val ( / ) : t -> t -> t
val ( = ) : t -> t -> bool
val ( <> ) : t -> t -> bool
val ( <= ) : t -> t -> bool
val ( >= ) : t -> t -> bool
val ( < ) : t -> t -> bool
val ( > ) : t -> t -> bool
end
type t
exception Dimension_error of string
val of_list_list : Coeff.t list list -> t
val to_list_list : t -> Coeff.t list list
val of_array_array : Coeff.t array array -> t
val to_array_array : t -> Coeff.t array array
val zeros : int -> int -> t
val eye : int -> t
val kron : int -> int -> int -> t
val kron_sym : int -> int -> int -> t
val block : t array array -> t
val lift_block : t -> int -> int -> int -> int -> t
val transpose : t -> t
val minus : t -> t
val mult_scalar : Coeff.t -> t -> t
val add : t -> t -> t
val sub : t -> t -> t
val mult : t -> t -> t
val power : t -> int -> t
val nb_lines : t -> int
val nb_cols : t -> int
val is_symmetric : t -> bool
val remove_0_row_cols : t -> t
val gauss_split : t -> int * t * t
val ( ~: ) : t -> t
val ( ~- ) : t -> t
val ( *. ) : Coeff.t -> t -> t
val ( + ) : t -> t -> t
val ( - ) : t -> t -> t
val ( * ) : t -> t -> t
val ( ** ) : t -> int -> t
val pp : Format.formatter -> t -> unit
end
module Q :
sig
module Coeff :
sig
type t = Q.t
val compare : t -> t -> int
val zero : t
val one : t
val of_float : float -> t
val to_float : t -> float
val of_q : Q.t -> t
val to_q : t -> Q.t
val add : t -> t -> t
val sub : t -> t -> t
val mult : t -> t -> t
val div : t -> t -> t
val pp : Format.formatter -> t -> unit
val minus_one : t
val of_int : int -> t
val neg : t -> t
val inv : t -> t
val equal : t -> t -> bool
val leq : t -> t -> bool
val geq : t -> t -> bool
val lt : t -> t -> bool
val gt : t -> t -> bool
val sign : t -> int
val ( ~- ) : t -> t
val ( + ) : t -> t -> t
val ( - ) : t -> t -> t
val ( * ) : t -> t -> t
val ( / ) : t -> t -> t
val ( = ) : t -> t -> bool
val ( <> ) : t -> t -> bool
val ( <= ) : t -> t -> bool
val ( >= ) : t -> t -> bool
val ( < ) : t -> t -> bool
val ( > ) : t -> t -> bool
end
type t
exception Dimension_error of string
val of_list_list : Coeff.t list list -> t
val to_list_list : t -> Coeff.t list list
val of_array_array : Coeff.t array array -> t
val to_array_array : t -> Coeff.t array array
val zeros : int -> int -> t
val eye : int -> t
val kron : int -> int -> int -> t
val kron_sym : int -> int -> int -> t
val block : t array array -> t
val lift_block : t -> int -> int -> int -> int -> t
val transpose : t -> t
val minus : t -> t
val mult_scalar : Coeff.t -> t -> t
val add : t -> t -> t
val sub : t -> t -> t
val mult : t -> t -> t
val power : t -> int -> t
val nb_lines : t -> int
val nb_cols : t -> int
val is_symmetric : t -> bool
val remove_0_row_cols : t -> t
val gauss_split : t -> int * t * t
val ( ~: ) : t -> t
val ( ~- ) : t -> t
val ( *. ) : Coeff.t -> t -> t
val ( + ) : t -> t -> t
val ( - ) : t -> t -> t
val ( * ) : t -> t -> t
val ( ** ) : t -> int -> t
val pp : Format.formatter -> t -> unit
end
module Float :
sig
module Coeff :
sig
type t = float
val compare : t -> t -> int
val zero : t
val one : t
val of_float : float -> t
val to_float : t -> float
val of_q : Q.t -> t
val to_q : t -> Q.t
val add : t -> t -> t
val sub : t -> t -> t
val mult : t -> t -> t
val div : t -> t -> t
val pp : Format.formatter -> t -> unit
val minus_one : t
val of_int : int -> t
val neg : t -> t
val inv : t -> t
val equal : t -> t -> bool
val leq : t -> t -> bool
val geq : t -> t -> bool
val lt : t -> t -> bool
val gt : t -> t -> bool
val sign : t -> int
val ( ~- ) : t -> t
val ( + ) : t -> t -> t
val ( - ) : t -> t -> t
val ( * ) : t -> t -> t
val ( / ) : t -> t -> t
val ( = ) : t -> t -> bool
val ( <> ) : t -> t -> bool
val ( <= ) : t -> t -> bool
val ( >= ) : t -> t -> bool
val ( < ) : t -> t -> bool
val ( > ) : t -> t -> bool
end
type t
exception Dimension_error of string
val of_list_list : Coeff.t list list -> t
val to_list_list : t -> Coeff.t list list
val of_array_array : Coeff.t array array -> t
val to_array_array : t -> Coeff.t array array
val zeros : int -> int -> t
val eye : int -> t
val kron : int -> int -> int -> t
val kron_sym : int -> int -> int -> t
val block : t array array -> t
val lift_block : t -> int -> int -> int -> int -> t
val transpose : t -> t
val minus : t -> t
val mult_scalar : Coeff.t -> t -> t
val add : t -> t -> t
val sub : t -> t -> t
val mult : t -> t -> t
val power : t -> int -> t
val nb_lines : t -> int
val nb_cols : t -> int
val is_symmetric : t -> bool
val remove_0_row_cols : t -> t
val gauss_split : t -> int * t * t
val ( ~: ) : t -> t
val ( ~- ) : t -> t
val ( *. ) : Coeff.t -> t -> t
val ( + ) : t -> t -> t
val ( - ) : t -> t -> t
val ( * ) : t -> t -> t
val ( ** ) : t -> int -> t
val pp : Format.formatter -> t -> unit
end
end