(****************************************************************************** ** MATRIX.sml ** sml ** ** Guy Blelloch ** Signature for the matrix library ******************************************************************************) signature MATRIX = sig type matrix type colVec = matrix type rowVec = matrix type scalar type index type subscript = (index * index) type size = (index * index) exception badDimension exception notInvertable val size : matrix -> size val nRows : matrix -> index val nCols : matrix -> index val identity : int -> matrix val matrix : (size * scalar) -> matrix val sub : (matrix * subscript) -> scalar val row : (matrix * index) -> rowVec val column : (matrix * index) -> colVec val rows : (matrix * index vector) -> matrix val columns : (matrix * index vector) -> matrix val subRegion : matrix * (index vector * index vector) -> matrix val insertElt : (matrix * subscript * scalar) -> matrix val insertElts : (matrix * (subscript * scalar) vector) -> matrix val insertRegion : matrix * (index vector * index vector) * matrix -> matrix val updateElt : (scalar->scalar) -> (matrix * subscript) -> matrix val appendCols : (matrix * matrix) -> matrix val appendRows : (matrix * matrix) -> matrix val * : (matrix * matrix) -> matrix val + : (matrix * matrix) -> matrix val - : (matrix * matrix) -> matrix val scale : (matrix * scalar) -> matrix val trans : matrix -> matrix val toDiag : colVec -> matrix val fromDiag : matrix -> colVec val inv : matrix -> matrix val det : matrix -> scalar val invDet : matrix -> (matrix * scalar) val solve : matrix * colVec -> colVec val crossProduct : matrix -> colVec val norm : matrix -> scalar val tabulate : (size * (subscript -> scalar)) -> matrix val map : (scalar -> scalar) -> matrix -> matrix val mapi : (subscript * scalar -> scalar) -> matrix -> matrix val map2 : (scalar * scalar -> scalar) -> matrix * matrix -> matrix val fold : (scalar * 'b -> 'b) -> 'b -> matrix -> 'b val foldi : (subscript * scalar * 'b -> 'b) -> 'b -> matrix -> 'b val fromArray2 : scalar Array2.array -> matrix val fromList : scalar list list -> matrix val toList : matrix -> scalar list list val toString : matrix -> string val toStringF : (scalar -> string) -> matrix -> string end