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>
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). |
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
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
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
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.
mtl::matrix< T, Shape, Storage, Orientation > Struct Template Reference -- MTL 4 -- Peter Gottschling and Andrew Lumsdaine
-- Gen. with
rev. 7542
on Sat Aug 11 2012 by doxygen 1.7.6.1 -- © 2010 by SimuNova UG.