Main name space for Matrix Template Library. More...
Namespaces | |
namespace | ashape |
Namespace for algebraic shapes; used for sophisticated dispatching between operations. | |
namespace | assign |
Namespace for static assignment functors. | |
namespace | complexity_classes |
Namespace for complexity classes. | |
namespace | concept |
Namespace for concepts. | |
namespace | fixed |
Namespace for compile-time parameters, e.g. matrix dimensions. | |
namespace | io |
Namespace for I/O operations. | |
namespace | matrix |
Namespace for matrices and views and operations exclusively on matrices. | |
namespace | non_fixed |
Namespace for run-time parameters, e.g. matrix dimensions. | |
namespace | operations |
Namespace for operations (if not defined in mtl). | |
namespace | recursion |
Namespace for recursive operations and types with recursive memory layout. | |
namespace | sfunctor |
Namespace for functors with static function apply and fully typed paramaters. | |
namespace | tag |
Namespace for tags used for concept-free dispatching. | |
namespace | tfunctor |
Namespace for functors with application operator and fully typed paramaters. | |
namespace | traits |
Namespace for type traits. | |
namespace | utility |
Namespace for utilities. | |
namespace | vector |
Namespace for vectors and views and operations exclusively on vectors. | |
namespace | wrec |
Namespace for implementations using recursators. | |
Classes | |
struct | Collection |
Concept Collection. More... | |
struct | MutableCollection |
Concept MutableCollection. More... | |
struct | ConstantSizeCollection |
Concept ConstantSizeCollection: size parameters of collection are completely given at compile time. More... | |
struct | AlgebraicCollection |
Concept AlgebraicCollection: common requirements of matrices, vectors, and scalars in computations. More... | |
struct | ConstantSizeAlgebraicCollection |
Concept ConstantSizeAlgebraicCollection: extension of AlgebraicCollection with meta-functions. More... | |
struct | TraversableCollection |
Concept TraversableCollection: collections that can be traversed by cursor or iterator. More... | |
struct | TraversableMutableCollection |
Concept TraversableMutableCollection: collections that can be traversed by (mutable) iterator. More... | |
struct | OrientedCollection |
Concept OrientedCollection: collections with concept-awareness in terms of associated type. More... | |
struct | Collection< dense2D< Value, Parameters > > |
struct | Collection< mtl::matrix::morton_dense< Value, Mask, Parameters > > |
struct | Collection< compressed2D< Value, Parameters > > |
struct | Collection< multi_vector< Vector > > |
struct | Collection< matrix::scaled_view< Scaling, Coll > > |
struct | Collection< matrix::rscaled_view< Coll, RScaling > > |
struct | Collection< vector::scaled_view< Scaling, Coll > > |
struct | Collection< vector::rscaled_view< Coll, RScaling > > |
struct | Collection< matrix::conj_view< Coll > > |
struct | Collection< vector::conj_view< Coll > > |
struct | Collection< vector::map_view< Functor, Coll > > |
struct | Collection< transposed_view< Matrix > > |
struct | Collection< matrix::hermitian_view< Matrix > > |
struct | Collection< matrix::banded_view< Coll > > |
struct | Collection< traits::detail::sub_matrix_cursor< Matrix, Tag, level > > |
struct | Collection< mtl::vector::dense_vector< Value, Parameters > > |
struct | Collection< mtl::vector::strided_vector_ref< Value, Parameters > > |
struct | Collection< T const > |
struct | Collection< std::vector< Value > > |
struct | MutableCollection< dense2D< Value, Parameters > > |
struct | MutableCollection< morton_dense< Value, Mask, Parameters > > |
struct | MutableCollection< mtl::vector::strided_vector_ref< Value, Parameters > > |
struct | MutableCollection< std::vector< Value > > |
struct | OrientedCollection< dense2D< Value, Parameters > > |
struct | OrientedCollection< morton_dense< Value, Mask, Parameters > > |
struct | OrientedCollection< compressed2D< Value, Parameters > > |
struct | OrientedCollection< mtl::vector::dense_vector< Value, Parameters > > |
struct | OrientedCollection< mtl::vector::strided_vector_ref< Value, Parameters > > |
struct | OrientedCollection< std::vector< Value > > |
struct | OrientedCollection< matrix::scaled_view< Scaling, Coll > > |
struct | OrientedCollection< matrix::rscaled_view< Coll, RScaling > > |
struct | OrientedCollection< mtl::vector::scaled_view< Scaling, Coll > > |
struct | OrientedCollection< mtl::vector::rscaled_view< Coll, RScaling > > |
struct | OrientedCollection< matrix::conj_view< Coll > > |
struct | OrientedCollection< mtl::vector::conj_view< Coll > > |
struct | OrientedCollection< mtl::vector::map_view< Functor, Coll > > |
struct | OrientedCollection< transposed_view< Coll > > |
struct | OrientedCollection< matrix::hermitian_view< Coll > > |
struct | Magnitude |
Concept/Type-trait for magnitudes of scalar values. More... | |
struct | Magnitude< std::complex< T > > |
Specialization for complex numbers. More... | |
struct | RealMagnitude |
struct | Matrix |
Concept Matrix. More... | |
struct | MatrixInserter |
Concept MatrixInserter: classes that enable efficient insertion into matrices, esp. compressed sparse. More... | |
struct | InsertableMatrix |
Concept InsertableMatrix: matrix that can be filled by means of inserter. More... | |
struct | MutableMatrix |
Concept MutableMatrix. More... | |
struct | ConstantSizeMatrix |
Concept ConstantSizeMatrix. More... | |
struct | ResizeableMatrix |
Concept ResizeableMatrix. More... | |
struct | RowTraversableMatrix |
Concept RowTraversableMatrix: provides begin and end cursor to traverse rows. More... | |
struct | ColumnTraversableMatrix |
Concept ColumnTraversableMatrix: provides begin and end cursor to traverse columns. More... | |
struct | MajorTraversableMatrix |
Concept MajorTraversableMatrix: traversable on major dimension. More... | |
struct | MinorTraversableMatrix |
Concept MinorTraversableMatrix: traversable on minor dimension. More... | |
struct | AllTraversableMatrix |
Concept AllTraversableMatrix: provides traversion over all elements. More... | |
struct | NonZeroTraversableSubMatrix |
Concept NonZeroTraversableSubMatrix: provides traversion of non-zero in rows or columns of matrices. More... | |
struct | IteratableSubMatrix |
Concept IteratableSubMatrix: provides iteration over elements within rows or columns of matrices. More... | |
struct | StaticUnaryFunctor |
Concept/Type-trait for static unary functors. More... | |
struct | StaticBinaryFunctor |
Concept/Type-trait for static binary functors. More... | |
class | Addable |
Concept Addable: Binary operation. More... | |
class | Subtractable |
Concept Subtractable: Binary operation. More... | |
class | Multiplicable |
Concept Multiplicable: Binary operation. More... | |
class | Divisible |
Concept Divisible: Binary operation. More... | |
struct | UnaryFunctor |
Concept UnaryFunctor. More... | |
struct | UnaryStaticFunctor |
Concept UnaryStaticFunctor. More... | |
struct | BinaryFunctor |
Concept BinaryFunctor. More... | |
struct | BinaryStaticFunctor |
Concept BinaryStaticFunctor. More... | |
struct | Vector |
Concept Vector. More... | |
struct | MutableVector |
Concept MutableVector. More... | |
struct | ConstantSizeVector |
Concept ConstantSizeVector. More... | |
struct | is_clonable< detail::contiguous_memory_block< Value, OnStack, Size > > |
struct | is_clonable< mtl::dense2D< Value, Parameters > > |
struct | is_clonable< morton_dense< Value, BitMask, Parameters > > |
struct | bin_op_expr |
Minimalistic expression template for binary operation: keeps only references. More... | |
struct | clone_ctor |
struct | is_clonable |
struct | ColumnInMatrix |
Type of column in matrix as vector if accessible. More... | |
struct | ColumnInMatrix< dense2D< Value, Parameters > > |
struct | ColumnInMatrix< const dense2D< Value, Parameters > > |
struct | gen_cursor_dmat_dmat_mult_ft |
struct | gen_cursor_dmat_dmat_mult_t |
struct | gen_dmat_dmat_mult_ft |
struct | gen_dmat_dmat_mult_t |
struct | gen_tiling_dmat_dmat_mult_block |
struct | gen_tiling_dmat_dmat_mult_block< Max0, Max0, Max1, Max1, Assign > |
struct | gen_tiling_dmat_dmat_mult_ft |
struct | gen_tiling_dmat_dmat_mult_t |
struct | gen_tiling_44_dmat_dmat_mult_ft |
struct | gen_tiling_44_dmat_dmat_mult_t |
struct | gen_tiling_22_dmat_dmat_mult_ft |
struct | gen_tiling_22_dmat_dmat_mult_t |
struct | gen_recursive_dmat_dmat_mult_t |
struct | gen_platform_dmat_dmat_mult_ft |
struct | gen_platform_dmat_dmat_mult_t |
struct | gen_blas_dmat_dmat_mult_ft |
struct | gen_blas_dmat_dmat_mult_t |
struct | size_switch_dmat_dmat_mult_t |
struct | static_switch_dmat_dmat_mult_t |
struct | fully_unroll_dmat_dmat_mult_init_block |
struct | fully_unroll_dmat_dmat_mult_init_block< Max0, Max0, Max1, Max1, Assign > |
struct | fully_unroll_dmat_dmat_mult_block |
struct | fully_unroll_dmat_dmat_mult_block< Max0, Max0, Max1, Max1, Max2, Max2, Assign > |
struct | fully_unroll_fixes_size_dmat_dmat_mult_t |
struct | mat_cvec_times_expr |
struct | multi_action_helper |
struct | multi_action_helper< MultiAction, MaxSteps, 1 > |
struct | multi_action_block |
struct | no_op |
struct | seed |
struct | RowInMatrix |
Type of row in matrix as vector if accessible. More... | |
struct | RowInMatrix< mtl::matrix::dense2D< Value, Parameters > > |
struct | RowInMatrix< const dense2D< Value, Parameters > > |
struct | static_num_cols |
Number of columns given at compile time. More... | |
struct | static_num_cols< Value[Size]> |
static_num_cols implementation for (1D) arrays interpreted as vectors More... | |
struct | static_num_cols< Value[Rows][Cols]> |
static_num_cols implementation for (2D and higher) arrays interpreted as matrices More... | |
struct | static_num_cols< vector::fixed::dimension< Size > > |
struct | static_num_cols< mtl::vector::dense_vector< V, P > > |
struct | static_num_cols< fixed::dimensions< Rows, Cols > > |
struct | static_num_cols< mtl::matrix::dense2D< V, P > > |
struct | static_num_cols< mtl::matrix::morton_dense< V, M, P > > |
struct | static_num_cols< mtl::matrix::compressed2D< V, P > > |
struct | static_num_rows |
Number of rows given at compile time. More... | |
struct | static_num_rows< Value[Size]> |
static_num_rows implementation for (1D) arrays interpreted as vectors More... | |
struct | static_num_rows< Value[Rows][Cols]> |
static_num_rows implementation for (2D and higher) arrays interpreted as matrices More... | |
struct | static_num_rows< vector::fixed::dimension< Size > > |
struct | static_num_rows< mtl::vector::dense_vector< V, P > > |
struct | static_num_rows< fixed::dimensions< Rows, Cols > > |
struct | static_num_rows< mtl::matrix::dense2D< V, P > > |
struct | static_num_rows< mtl::matrix::morton_dense< V, M, P > > |
struct | static_num_rows< mtl::matrix::compressed2D< V, P > > |
struct | static_size |
Number of rows times columns given at compile time. More... | |
struct | lsb_mask |
struct | lsb_mask< 0 > |
struct | lsb_bits |
Last N bits of Value. More... | |
struct | same_mask |
Compares two masks. More... | |
struct | same_mask< Mask, Mask > |
struct | row_major_mask |
Row-major mask for 2^K by 2^K base case. More... | |
struct | col_major_mask |
Column-major mask for 2^K by 2^K base case. More... | |
struct | is_k_power_base_case_row_major |
Checks whether 2^K by 2^K base case of hybric matrix, defined by Mask, is a row-major matrix. More... | |
struct | is_k_power_base_case_col_major |
Checks whether 2^K by 2^K base case of hybric matrix, defined by Mask, is a column-major matrix. More... | |
struct | is_32_base_case_row_major |
Checks whether 32x32 base case of hybric matrix, defined by Mask, is a row-major matrix. More... | |
struct | is_32_base_case_col_major |
Checks whether 32x32 base case of hybric matrix, defined by Mask, is a col-major matrix. More... | |
struct | row_major_shark_mask |
Row-major mask for 2^K by 2^K base case with 2^T shark teeth. More... | |
struct | col_major_shark_mask |
Row-major mask for 2^K by 2^K base case with 2^T shark teeth. More... | |
struct | is_k_power_base_case_row_major_t_shark |
struct | is_k_power_base_case_col_major_t_shark |
struct | i_order_mask |
N-order mask of N bits. More... | |
struct | i_order_mask< 0 > |
struct | z_order_mask |
Z-order mask of N bits. More... | |
struct | z_order_mask< 0 > |
class | generate_mask |
struct | dense_el_cursor |
Cursor over every element of matrix, matrix row/column, or vector. More... | |
struct | index_out_of_range |
Exception for indices out of range. More... | |
struct | range_error |
Exception for invalid range definitions, esp. in constructors. More... | |
struct | domain_error |
Domain errors in MTL4. More... | |
struct | incompatible_size |
Exception for arguments with incompatible sizes. More... | |
struct | change_static_size |
Exception for trying to change a fixed size (to another value). More... | |
struct | argument_result_conflict |
Exception for arguments with incompatible shapes, e.g. adding matrices and vectors. More... | |
struct | incompatible_shape |
Exception for arguments with incompatible shapes, e.g. adding matrices and vectors. More... | |
struct | matrix_not_square |
Exception for arguments with incompatible sizes. More... | |
struct | matrix_too_small |
Exception for matrices too small for certain algorithms. More... | |
struct | matrix_singular |
Exception for singular matrices in solvers. More... | |
struct | missing_diagonal |
Exception for arguments with incompatible sizes. More... | |
struct | access_during_insertion |
Accessing (illegally) matrix or vector during insertion phase (dense non-distributed can be accessed always). More... | |
struct | unexpected_result |
Exception for a result that is not what it should be. More... | |
struct | runtime_error |
Exception for run-time errors that doesn't fit into specific categories. More... | |
struct | logic_error |
Exception for logic errors that doesn't fit into specific categories. More... | |
class | irange |
Class to define a half open index ranges. More... | |
struct | make_in_copy_or_reference |
Helper class to avoid avoidable copies for input parameters. More... | |
struct | make_in_copy_or_reference< Target, Target > |
struct | make_out_copy_or_reference |
Helper class to avoid avoidable copies for output parameters. More... | |
struct | make_out_copy_or_reference< Target, Target > |
struct | make_in_out_copy_or_reference |
Helper class to avoid avoidable copies for input-output parameters. More... | |
struct | make_in_out_copy_or_reference< Target, Target > |
struct | strided_dense_el_cursor |
Cursor going in strides over element of matrix, matrix row/column, or vector. More... | |
struct | strided_dense_el_const_iterator |
Iterator going in strides over element of matrix, matrix row/column, or vector. More... | |
struct | strided_dense_el_iterator |
Iterator going in strides over element of matrix, matrix row/column, or vector. More... | |
Functions | |
template<class Tag , class Collection > | |
traits::range_generator< Tag, Collection >::type | begin (Collection const &c) |
Returns begin cursor over the Collection or a subset of the Collection. | |
template<class Tag , class Collection > | |
traits::range_generator< Tag, Collection >::type | end (Collection const &c) |
Corresponding end cursor. | |
template<typename Collection > | |
void | swap (Collection &c1, Collection &c2) |
Free function defined for all matrix and vector types. | |
template<typename Vector , typename Functor > | |
void | assign_each_nonzero (Vector &v, const Functor &f, tag::vector) |
template<typename Matrix , typename Functor > | |
void | assign_each_nonzero (Matrix &m, const Functor &f, tag::matrix) |
template<typename Collection , typename Functor > | |
void | assign_each_nonzero (Collection &c, const Functor &f) |
Assign f(i) to each non-zero i in collection c . | |
template<typename T > | |
boost::enable_if< is_clonable < T >, T >::type | clone (const T &x) |
Move-semantics-related anti-dot: always copy in constructor. | |
template<typename Value > | |
sfunctor::real< Value > ::result_type | real (const Value &v) |
real part of scalars (including non-complex) | |
template<typename Value > | |
sfunctor::imag< Value > ::result_type | imag (const Value &v) |
imaginary part of scalars (including non-complex) | |
template<typename Value > | |
sfunctor::signum< Value > ::result_type | signum (const Value &v) |
sign of scalars; for complex numbers sign of real part | |
template<typename Updater , typename MatrixSrc , typename MatrixDest > | |
void | gen_matrix_copy (const MatrixSrc &src, MatrixDest &dest, bool with_reset) |
template<typename MatrixSrc , typename MatrixDest > | |
void | matrix_copy (const MatrixSrc &src, MatrixDest &dest) |
Copy matrix src into matrix dest . | |
template<typename MatrixSrc , typename MatrixDest > | |
void | matrix_copy_plus (const MatrixSrc &src, MatrixDest &dest) |
Add matrix src to matrix dest in copy-like style. | |
template<typename MatrixSrc , typename MatrixDest > | |
void | matrix_copy_minus (const MatrixSrc &src, MatrixDest &dest) |
Subtract matrix src from matrix dest in copy-like style. | |
template<typename MatrixSrc , typename MatrixDest > | |
void | matrix_copy_ele_times (const MatrixSrc &src, MatrixDest &dest) |
Multiply matrix src element-wise with matrix dest in copy-like style. | |
template<typename MatrixSrc , typename MatrixDest > | |
void | copy (const MatrixSrc &src, tag::matrix, MatrixDest &dest, tag::matrix) |
template<typename Updater , typename VectorSrc , typename VectorDest > | |
void | gen_vector_copy (const VectorSrc &src, VectorDest &dest, bool with_reset) |
template<typename VectorSrc , typename VectorDest > | |
void | vector_copy (const VectorSrc &src, VectorDest &dest) |
Copy vector src into vector dest . | |
template<typename VectorSrc , typename VectorDest > | |
void | vector_copy_plus (const VectorSrc &src, VectorDest &dest) |
Add vector src to vector dest in copy-like style. | |
template<typename VectorSrc , typename VectorDest > | |
void | vector_copy_minus (const VectorSrc &src, VectorDest &dest) |
Subtract vector src from vector dest in copy-like style. | |
template<typename VectorSrc , typename VectorDest > | |
void | copy (const VectorSrc &src, tag::vector, VectorDest &dest, tag::vector) |
template<typename CollSrc , typename CollDest > | |
void | copy (const CollSrc &src, CollDest &dest) |
template<unsigned MaxDepth, typename Value , typename Cursor1 , typename Prop1 , typename Cursor2 , typename Prop2 > | |
Value | cursor_pseudo_dot (Cursor1 i1, Cursor1 end1, Prop1 prop1, Cursor2 i2, Prop2 prop2, Value) |
template<typename Factor , typename Collection > | |
void | divide_by_inplace (Collection &c, const Factor &alpha, tag::scalar) |
Divide collection c (from right) by scalar factor alpha ; c is altered. | |
template<typename Factor , typename Collection > | |
void | divide_by_inplace (Collection &c, const Factor &alpha) |
Divide collection c (from right) by factor alpha ; c is altered. | |
template<class Matrix > | |
void | fill (Matrix &ma, typename Matrix::value_type value) |
template<typename Collection > | |
traits::num_cols< Collection > ::type | num_cols (const Collection &c) |
num_cols function for non-MTL types (uses implicit enable_if), 1D interpreted as Column vector | |
template<typename Collection > | |
traits::num_rows< Collection > ::type | num_rows (const Collection &c) |
num_rows function for non-MTL types (uses implicit enable_if), 1D interpreted as Column vector | |
template<unsigned long Unroll, typename Value > | |
Collection< Value >::value_type | product (const Value &value) |
Returns product of all collection-entries (vector-entries). | |
template<typename Value > | |
Collection< Value >::value_type | product (const Value &value) |
template<typename Matrix , typename InputIterator > | |
void | raw_copy (InputIterator first, InputIterator last, Matrix &matrix) |
template<typename Factor , typename Collection > | |
void | right_scale_inplace (Collection &c, const Factor &alpha, tag::scalar) |
Scale collection c from right with scalar factor alpha ; c is altered. | |
template<typename Factor , typename Matrix > | |
void | right_scale_inplace (Matrix &m, tag::matrix, const Factor &alpha, tag::matrix) |
template<typename Factor , typename Collection > | |
void | right_scale_inplace (Collection &c, const Factor &alpha, tag::matrix) |
Scale collection c from right with matrix factor alpha ; c is altered. | |
template<typename Factor , typename Collection > | |
void | right_scale_inplace (Collection &c, const Factor &alpha) |
Scale collection c from right with factor alpha ; c is altered. | |
template<typename Collection > | |
traits::size< Collection >::type | size (const Collection &c) |
size function for non-MTL types (uses implicit enable_if) | |
template<typename Vector > | |
traits::size< Vector >::type | size1D (const Vector &v) |
One-dimensional size function. | |
template<typename MatrixA , typename MatrixB , typename MatrixC , typename Assign > | |
void | smat_smat_mult (const MatrixA &a, const MatrixB &b, MatrixC &c, Assign, tag::row_major, tag::row_major) |
template<typename MatrixA , typename MatrixB , typename MatrixC , typename Assign > | |
void | smat_smat_mult (const MatrixA &a, const MatrixB &b, MatrixC &c, Assign, tag::col_major, tag::col_major) |
template<typename MatrixA , typename MatrixB , typename MatrixC , typename Assign > | |
void | smat_smat_mult (const MatrixA &a, const MatrixB &b, MatrixC &c, Assign, tag::col_major, tag::row_major) |
template<typename MatrixA , typename MatrixB , typename MatrixC , typename Assign > | |
void | smat_smat_mult (const MatrixA &a, const MatrixB &b, MatrixC &c, Assign, tag::row_major, tag::col_major) |
template<unsigned long Unroll, typename Value > | |
Collection< Value >::value_type | sum (const Value &value) |
Return sum of all vector-entries. | |
template<typename Value > | |
Collection< Value >::value_type | sum (const Value &value) |
irange | intersection (irange const &r1, irange const &r2) |
template<class Tag , class Collection > | |
traits::range_generator< Tag, Collection >::type | begin (Collection &c) |
template<class Tag , class Collection > | |
traits::range_generator< Tag, Collection >::type | end (Collection &c) |
template<class Tag , class Coll > | |
traits::range_generator< Tag, Coll >::type | lower_bound (Coll const &c, typename Collection< Coll >::size_type position) |
Cursor to an element with index equal or larger than position in a one-dimensional traversion. | |
template<class Tag , class Coll > | |
traits::range_generator< Tag, Coll >::type | lower_bound (Coll &c, typename Collection< Coll >::size_type position) |
template<typename Value , typename Allocator > | |
void | shrink_stl_vector (std::vector< Value, Allocator > &v) |
Shrink memory consumption of an STL vector to its size. | |
template<typename EnumType , typename Array > | |
EnumType | string_to_enum (const std::string &s, const Array &l, EnumType) |
Variables | |
const std::size_t | imax = std::numeric_limits<std::size_t>::max() |
Maximal index. |
Main name space for Matrix Template Library.
traits::range_generator< Tag, Collection >::type mtl::begin | ( | Collection const & | c | ) | [inline] |
Returns begin cursor over the Collection or a subset of the Collection.
Form of traversal depends on Tag, cf utility/glas_tag.hpp On nested traversals, cursors of level > 1 must provide at least one range generator
boost::disable_if< is_clonable< T >, T >::type mtl::clone | ( | const T & | x | ) | [inline] |
Move-semantics-related anti-dot: always copy in constructor.
Some collections have referring semantics in copy constructors, e.g. sub-matrices. That means
Matrix B= sub_matrix(A, ...);
creates a sub-matrix of A in B. As a consequence, changes in B modify A and vice versa (unless it's outside the sub-matrix). In contrast, clone forces the copy semantics
Matrix B= clone(sub_matrix(A, ...));
B now contains the values of A's sub-matrix but is an independent matrix. Modifications to either A or B have no effect to each other. Requires that type T is declared clonable in terms of
is_clonable<T> : boost::mpl::true_ {};
traits::range_generator<Tag, Coll>::type mtl::lower_bound | ( | Coll const & | c, | |
typename Collection< Coll >::size_type | position | |||
) | [inline] |
Cursor to an element with index equal or larger than position
in a one-dimensional traversion.
This function is only defined where Tag represents an obvious one-dimensional traversion of Collection allowing for an interpretation of position. Examples are tag::row for a dense matrix or row-major compressed matrix. tag::all regarding an entire matrix (i.e. going over all entries of a matrix) does not characterize a one-dimensional traversion so that position
has no unique meaning. Traversing all entries of a matrix row is one-dimensional and position
is understood as looking for a column index, i.e. lower_bound<tag::all>(row_cursor, 7) returns a cursor to a matrix element whose row is the one of row_cursor and whose column is 7. Likewise traversing all non-zeros of a row will return a cursor that points to an entry with according row index and column index at least 7. If the searched index could not be found in the one-dimensional collection the returned cursor will be identical to the one returned by the end function.
traits::size<Vector>::type mtl::size1D | ( | const Vector & | v | ) | [inline] |
One-dimensional size function.
Returns size for MTL vectors, STL vector and C arrays. For multi_vector the number of vectors is returned. Not defined for other matrix types. Implementation for standard types uses implicit enable_if to avoid ambiguities.
EnumType mtl::string_to_enum | ( | const std::string & | s, | |
const Array & | l, | |||
EnumType | ||||
) | [inline] |
Searches string s
in list l
of strings and returns enum
List l
is given as array of const char*, which is the easiest to initialize. The search is case sensitive, thus (de)-capitalize your string upfront, e.g., with boost::to_lower(). If the string is not found then a runtime_error is thrown.