# record mtx

Description | Hierarchy | Fields | Methods | Properties

## Unit

mtx09

## Declaration

`type mtx = record`

## Description

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.

## Overview

### Fields

`smx: boolean;`
`nam: string;`
`lgn: longint;`
`col: longint;`
`max: longint;`
`dl: longint;`
`dc: longint;`
`t: boolean;`
`e: ˆdouble;`
`dyn: boolean;`
`mat: Pmatrix;`
`vec: Pvector;`

## Description

### Fields

`smx: boolean;`
slice flag: `True` if the record is a slice; `False` plain matrix.

`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

Generated by PasDoc 0.11.0 on 2010-10-04 16:33:27