Matrix Programmers Guide Contents | Index |  Search

Category:containers Component type:concept
Description

#### Matrix

An ITL Matrix is a linear operator to transform one vector space to another. If A is the object whose type conforming to the Matrix concept, and x, y and z are objects whose types modelling the Vector concept. The operation y = A*x and z = y + A*x should be provided by functions:
mult(A, x, y)
mult(A, x, y, z)

#### TransposableMatrix

This is a Matrix for which the transpose can be also applied.
trans_mult(A, x, y)

#### Dimension

The following two functions return the number of rows(dimension of resulting vector space) and the number of columns(dimension of input vector space). Those two functions are not used in any of iterative solvers. However, it may help to define interface to the basic linear algebra package.
nrows(A)
ncols(A)

#### GCRMatrix

GCRMatrix is a Matrix with two extra requirements:
Matrix matrix_type(n, m); //constructor. n is the number of rows. m is the number of column.
A[i]; //for ith column

This concept is used for the internal matrix in the Generalized Conjugate Residual algorithm.

#### GMRESMatrix

This is a GCRMatrix with two extra requirements:
A(i, j) //The element at row i, column j
upper_tri_solve(A, s, i) //to solve upper triangular part of A up to ith row/column with vector s
Invariants
Models
• MTL matrices
• Matrix free operator
Notes