| 1 | signature ARRAY2 = |
| 2 | sig |
| 3 | eqtype 'a array |
| 4 | |
| 5 | type 'a region = {base: 'a array, |
| 6 | row: int, |
| 7 | col: int, |
| 8 | nrows: int option, |
| 9 | ncols: int option} |
| 10 | |
| 11 | datatype traversal = RowMajor | ColMajor |
| 12 | |
| 13 | val array: int * int * 'a -> 'a array |
| 14 | val fromList: 'a list list -> 'a array |
| 15 | val tabulate: traversal -> (int * int * (int * int -> 'a)) -> 'a array |
| 16 | val sub: 'a array * int * int -> 'a |
| 17 | val update: 'a array * int * int * 'a -> unit |
| 18 | val dimensions: 'a array -> int * int |
| 19 | val nRows: 'a array -> int |
| 20 | val nCols: 'a array -> int |
| 21 | val row: 'a array * int -> 'a vector |
| 22 | val column: 'a array * int -> 'a vector |
| 23 | val copy: {src: 'a region, |
| 24 | dst: 'a array, |
| 25 | dst_row: int, |
| 26 | dst_col: int} -> unit |
| 27 | val appi: traversal -> (int * int * 'a -> unit) -> 'a region -> unit |
| 28 | val app: traversal -> ('a -> unit) -> 'a array -> unit |
| 29 | val foldi: traversal -> (int * int * 'a * 'b -> 'b) -> 'b -> 'a region -> 'b |
| 30 | val fold: traversal -> ('a * 'b -> 'b) -> 'b -> 'a array -> 'b |
| 31 | val modifyi: traversal -> (int * int * 'a -> 'a) -> 'a region -> unit |
| 32 | val modify: traversal -> ('a -> 'a) -> 'a array -> unit |
| 33 | end |