| Description | Hierarchy | Fields | Methods | Properties |
type mtx = record
mtx: abstract matrix data type
TODO a pointer to the relevant discussion in the GSL and elsewhere and explain in detail the data structure
All elements of the matrix are stored in a memory area pointed to by mtx.e; (e[0] is not used as Fortran and Scilab math indexing from 1 to n rather than C style) e[1] is the first element of the matrix i.e. (1,1). The fields e.dl and e.dc are the offset to add to the index of e[i] to access the next element within the same row or column. This enables to use several mtx records pointing to the same memory area but with different indexing schemes. For instance a transposed matrix can be done by swaping dl and dc values. This simple setup enables to handle compact sub matrices in a fairly efficient and simple way. See for instance the documentation of the GNU Scientific Library.
smx: boolean; |
nam: string; |
lgn: longint; |
col: longint; |
max: longint; |
dl: longint; |
dc: longint; |
t: boolean; |
e: ˆdouble; |
dyn: boolean; |
mat: Pmatrix; |
vec: Pvector; |
smx: boolean; |
|
slice flag: |
nam: string; |
|
matrix name; may be an empty string |
lgn: longint; |
|
number of rows (ligne in french) |
col: longint; |
|
number of columns |
max: longint; |
|
maximum number within the current allocated block |
dl: longint; |
|
index offset for adjacent elements of the same row |
dc: longint; |
|
index offset for adjacent elements of the same column |
t: boolean; |
|
transposition flag |
e: ˆdouble; |
|
pointer to the top left (first) element of the matrix |
dyn: boolean; |
|
true if matrix is stored in dynamic memory and can be reallocated |
mat: Pmatrix; |
|
stubb to use GSL matrix of doubles |
vec: Pvector; |
|
stubb to use GSL vectors of doubles |