Module Matrix (.ml)


module Matrix: sig .. end
Operations on matrices.
Author(s): David Baelde, Samuel Mimram

type t = float array array 
val copy : 'a array array -> 'a array array
val mult : float array array -> float array array -> float array array

Internal use


exception Found of int
exception Error of float
val error : float array -> float array -> float
val print_sys : float array array -> float array -> unit
print_sys m b displays the system m * x = b in a very verbose way.
val print_sys_silhouette : float array array -> float array -> unit
print_sys_silhouette m b does as print_sys m b but is more visual. It prints out a '*' for non-zero values and a ' ' for zero.
val nearly_zero : float -> bool
nearly_zero f tells whether f should be neglected or not.

Conversions from and to vectors


val of_vector_v : float array -> float array array
val of_vector_h : 'a -> 'a array
val to_vector_v : 'a array array -> 'a array
val to_vector_h : 'a array -> 'a

Solving linear systems


val gauss : float array array -> float array -> unit
gauss m b transforms m and b such that m is upper triangular, without changing the set of solutions of m*X=b.
exception Unsolvable
val basic_solve : float array array -> float array -> float array
Solves a upper triangular system.
Raises Unsolvable if the system cannot be solved.
val solve : float array array -> float array -> float array
solve a b solves any system -- at least it tries. a and b can be modified since solve uses gauss.