Logo MTL4

mtl::matrix< T, Shape, Storage, Orientation > Struct Template Reference

tparam: EltType - Valid choices for this argument include double, complex<float>, and bool. In essence, any builtin or user defined type can be used for the EltType, however, if one uses the matrix with a particular algorithm, the EltType must support the operations required by the algorithm. For MTL algorithms these typically include the usual numerical operators such as addition and multiplication. The std::complex class is a good example of what is required in a numerical type. The documentation for each algorithm will include the requirements on the element type. More...

#include <matrix.h>

List of all members.

Classes

struct  base_matrix
 Base class for other matrices, contains only very simple functionality that is used in all matrices. More...
class  compressed2D
 Compressed 2D matrix type. More...
struct  crtp_assign< io::matrix_file< IFStream, OFStream >, Matrix >
 Assign content of a file to the matrix. More...
struct  crtp_assign< mat_mat_ele_times_expr< E1, E2 >, Matrix >
 Assign element-wise product. More...
struct  crtp_assign< mat_mat_minus_expr< E1, E2 >, Matrix >
 Assign difference by assigning first argument and subtracting second. More...
struct  crtp_assign< mat_mat_plus_expr< E1, E2 >, Matrix >
 Assign sum by assigning first argument and adding second. More...
struct  crtp_assign< mat_mat_times_expr< E1, E2 >, Matrix >
 Assign product by calling mult. More...
struct  crtp_assign< Value[Rows][Cols], Matrix >
 Assign c-style 2D-array, because it's easier to initialize. More...
struct  crtp_matrix_assign
 Base class to provide matrix assignment operators generically. More...
struct  crtp_minus_assign
 Assign-subtract matrix expressions by decrementally copying except for some special expressions. More...
struct  crtp_minus_assign< mat_mat_minus_expr< E1, E2 >, Matrix >
 Assign-subtracting difference by subtracting first argument and adding the second one. More...
struct  crtp_minus_assign< mat_mat_plus_expr< E1, E2 >, Matrix >
 Assign-subtract sum by adding both arguments. More...
struct  crtp_minus_assign< mat_mat_times_expr< E1, E2 >, Matrix >
 Assign-subtract product by calling gen_mult. More...
struct  crtp_plus_assign
 Assign-add matrix expressions by incrementally copying except for some special expressions. More...
struct  crtp_plus_assign< mat_mat_plus_expr< E1, E2 >, Matrix >
 Assign-add sum by adding both arguments. More...
struct  dmat_expr
 Base class for CRTP with dense matrices. More...
class  givens
 Given's transformator. More...
struct  inserter
 Matrix inserter. More...
struct  mat_expr
 Base class for CRTP with matrices. More...
class  multi_vector
 Matrix constituting of set of column vectors (under development). More...
struct  parameters
 Type for bundling template parameters of common matrix types. More...
struct  recursator
class  shifted_inserter
 Inserter with shifted row and column indices. More...
struct  smat_expr
 Base class for CRTP with sparse matrices. More...

Public Attributes

const std::size_t compressed_linear_search_limit = 10
 Maximal number of entries that is searched linearly; above this std::lower_bound is used.
const std::size_t dense_non_recursive_product_limit = 10000
 Maximal matrix size of dense matrices that is multiplied without recursion.
const std::size_t sorted_block_insertion_limit = 5
 Maximal number of columns in block that is inserted separately; above this the block is presorted (only row-major sparse matrices).


Detailed Description

template<class T, class Shape = rectangle<>, class Storage = dense<>, class Orientation = row_major>
struct mtl::matrix< T, Shape, Storage, Orientation >

tparam: EltType - Valid choices for this argument include double, complex<float>, and bool. In essence, any builtin or user defined type can be used for the EltType, however, if one uses the matrix with a particular algorithm, the EltType must support the operations required by the algorithm. For MTL algorithms these typically include the usual numerical operators such as addition and multiplication. The std::complex class is a good example of what is required in a numerical type. The documentation for each algorithm will include the requirements on the element type.

tparam: Shape - This argument specifies the general positioning of the non zero elements in the matrix, but does not specify the actual storage format. In addition it specifies certain properties such as symmetry. The choices for this argument include rectangle, banded, diagonal, triangle, and symmetric. Hermitian is not yet implemented. tparam: Storage - The argument specifies the storage scheme used to lay out the matrix elements (and sometimes the element indices) in memory. The storage formats include dense , banded, packed , banded_view, compressed, envelope, and array. tparam: Orientation - The storage order for an MTL matrix can either be row_major or column_major. category: containers, generators component: type definition: matrix.h


Member Data Documentation

template<class T , class Shape = rectangle<>, class Storage = dense<>, class Orientation = row_major>
const std::size_t mtl::matrix< T, Shape, Storage, Orientation >::compressed_linear_search_limit = 10

Maximal number of entries that is searched linearly; above this std::lower_bound is used.

Can be reset with macro or corresponding compiler flag, e.g. {-D|/D}MTL_MATRIX_COMPRESSED_LINEAR_SEARCH_LIMIT=16

template<class T , class Shape = rectangle<>, class Storage = dense<>, class Orientation = row_major>
const std::size_t mtl::matrix< T, Shape, Storage, Orientation >::dense_non_recursive_product_limit = 10000

Maximal matrix size of dense matrices that is multiplied without recursion.

Can be reset with macro or corresponding compiler flag, e.g. {-D|/D}MTL_MATRIX_DENSE_NON_RECURSIVE_PRODUCT_LIMIT=4000

template<class T , class Shape = rectangle<>, class Storage = dense<>, class Orientation = row_major>
const std::size_t mtl::matrix< T, Shape, Storage, Orientation >::sorted_block_insertion_limit = 5

Maximal number of columns in block that is inserted separately; above this the block is presorted (only row-major sparse matrices).

Can be reset with macro or corresponding compiler flag, e.g. {-D|/D}MTL_SORTED_BLOCK_INSERTION_LIMIT=8 Default is 5.


The documentation for this struct was generated from the following files:


mtl::matrix< T, Shape, Storage, Orientation > Struct Template Reference -- MTL 4 -- Peter Gottschling and Andrew Lumsdaine -- Gen. with rev. 7542 on 7 Apr 2011 by doxygen 1.5.9 -- © 2010 by SimuNova UG.