


The Matrix api defines access to simple two-dimensional arrays.
The Matrix api is implemented by the matrix and rw_matrix and packages.
The Matrix api source code is src/lib/std/src/matrix.api.
The above information is manually maintained and may contain errors.
api { eqtype Array X;
Region X = {base:Array(X ), col:Int, ncols:Null_Or(Int ),
nrows:Null_Or(Int ), row:Int};
Traversal = COLUMN_MAJOR | ROW_MAJOR;
array : (Int , Int , X) -> Array(X );
from_list : List(List(X ) ) -> Array(X );
tabulate : Traversal
-> (Int , Int , ((Int , Int) -> X)) -> Array(X );
get : (Array(X ) , Int , Int) -> X;
set : (Array(X ) , Int , Int , X) -> Void;
dimensions : Array(X ) -> (Int , Int);
columns : Array(X ) -> Int;
rows : Array(X ) -> Int;
row : (Array(X ) , Int) -> vector::Vector(X );
column : (Array(X ) , Int) -> vector::Vector(X );
copy : {dst:Array(X ), dst_col:Int, dst_row:Int,
src:Region(X )}
-> Void;
keyed_apply : Traversal
-> ((Int , Int , X) -> Void) -> Region(X ) -> Void;
apply : Traversal -> (X -> Void) -> Array(X ) -> Void;
modifyi : Traversal
-> ((Int , Int , X) -> X) -> Region(X ) -> Void;
modify : Traversal -> (X -> X) -> Array(X ) -> Void;
foldi : Traversal
-> ((Int , Int , X , Y) -> Y) -> Y -> Region(X ) -> Y;
fold : Traversal -> ((X , Y) -> Y) -> Y -> Array(X ) -> Y;
};


