Commit | Line | Data |
---|---|---|
7f918cf1 CE |
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 |