In array2.spad
\section{domain IARRAY2 IndexedTwoDimensionalArray}
<>=
)abbrev domain IARRAY2 IndexedTwoDimensionalArray
IndexedTwoDimensionalArray(R,mnRow,mnCol):Exports == Implementation where
++ An IndexedTwoDimensionalArray is a 2-dimensional array where
++ the minimal row and column indices are parameters of the type.
++ Rows and columns are returned as IndexedOneDimensionalArray's with
++ minimal indices matching those of the IndexedTwoDimensionalArray.
++ The index of the first
row may be obtained by calling the
++ function minRowIndex
. The index of the first
column may
++ be obtained by calling the function minColIndex
. The index of
++ the first element of a Row
is the same as the index of the
++ first column in an array and vice versa.
R : Type
mnRow, mnCol : Integer
Row ==> IndexedOneDimensionalArray(R,mnCol)
Col ==> IndexedOneDimensionalArray(R,mnRow)
^^^^^^ Exports ==> TwoDimensionalArrayCategory(R,Row,Col)
Implementation ==>
InnerIndexedTwoDimensionalArray(R,mnRow,mnCol,Row,Col)
In IndexedOneDimensionalArray?(*)
Col => min index of row (mnRow)
Row => min index of column (mnCol)
Is it a bug ?
No, this is correct. A one-dimensional row vector has columns, and the number of columns need to be specified as mnCol. Similarly, a one-dimensional column vector has rows, and the number of rows need to be specified as mnRow.
mnCol is minimal column index used, for example, in row creation after extraction.
Status: open => closed