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 |