📄 concepts.hpp
字号:
{
typedef matrix_column<matrix<T> > container_model;
function_requires< Mutable_VectorExpressionConcept<container_model> >();
function_requires< IndexedRandomAccess1DIteratorConcept<container_model::const_iterator> >();
function_requires< Mutable_IndexedRandomAccess1DIteratorConcept<container_model::iterator> >();
function_requires< IndexedRandomAccess1DIteratorConcept<container_model::const_reverse_iterator> >();
function_requires< Mutable_IndexedRandomAccess1DIteratorConcept<container_model::reverse_iterator> >();
}
{
typedef matrix_vector_range<matrix<T> > container_model;
function_requires< Mutable_VectorExpressionConcept<container_model> >();
function_requires< IndexedRandomAccess1DIteratorConcept<container_model::const_iterator> >();
function_requires< Mutable_IndexedRandomAccess1DIteratorConcept<container_model::iterator> >();
function_requires< IndexedRandomAccess1DIteratorConcept<container_model::const_reverse_iterator> >();
function_requires< Mutable_IndexedRandomAccess1DIteratorConcept<container_model::reverse_iterator> >();
}
{
typedef matrix_vector_slice<matrix<T> > container_model;
function_requires< Mutable_VectorExpressionConcept<container_model> >();
function_requires< IndexedRandomAccess1DIteratorConcept<container_model::const_iterator> >();
function_requires< Mutable_IndexedRandomAccess1DIteratorConcept<container_model::iterator> >();
function_requires< IndexedRandomAccess1DIteratorConcept<container_model::const_reverse_iterator> >();
function_requires< Mutable_IndexedRandomAccess1DIteratorConcept<container_model::reverse_iterator> >();
}
{
typedef matrix_vector_indirect<matrix<T> > container_model;
function_requires< Mutable_VectorExpressionConcept<container_model> >();
function_requires< IndexedRandomAccess1DIteratorConcept<container_model::const_iterator> >();
function_requires< Mutable_IndexedRandomAccess1DIteratorConcept<container_model::iterator> >();
function_requires< IndexedRandomAccess1DIteratorConcept<container_model::const_reverse_iterator> >();
function_requires< Mutable_IndexedRandomAccess1DIteratorConcept<container_model::reverse_iterator> >();
}
{
typedef matrix_range<matrix<T> > container_model;
function_requires< Mutable_MatrixExpressionConcept<container_model> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
{
typedef matrix_slice<matrix<T> > container_model;
function_requires< Mutable_MatrixExpressionConcept<container_model> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
{
typedef matrix_indirect<matrix<T> > container_model;
function_requires< Mutable_MatrixExpressionConcept<container_model> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
#endif
// Banded Matrix
#if defined (INTERNAL_SPECIAL) || defined (INTERNAL_BANDED)
{
typedef banded_matrix<T> container_model;
function_requires< Mutable_MatrixConcept<container_model> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
{
typedef banded_adaptor<matrix<T> > container_model;
function_requires< Mutable_MatrixExpressionConcept<container_model> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
#endif
// Triangular Matrix
#if defined (INTERNAL_SPECIAL) || defined (INTERNAL_TRIANGULAR)
{
typedef triangular_matrix<T> container_model;
function_requires< Mutable_MatrixConcept<container_model> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
{
typedef triangular_adaptor<matrix<T> > container_model;
function_requires< Mutable_MatrixExpressionConcept<container_model> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
#endif
// Symmetric Matrix
#if defined (INTERNA_SPECIAL) || defined (INTERNAL_SYMMETRIC)
{
typedef symmetric_matrix<T> container_model;
function_requires< Mutable_MatrixConcept<container_model> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
{
typedef banded_adaptor<matrix<T> > container_model;
#ifndef SKIP_BAD
// const_iterator (iterator) constructor is bad
function_requires< Mutable_MatrixExpressionConcept<container_model> >();
#endif
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
#endif
// Hermitian Matrix
#if defined (INTERNAL_SPECIAL) || defined (INTERNAL_HERMITIAN)
{
typedef hermitian_matrix<T> container_model;
function_requires< Mutable_MatrixConcept<container_model> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
{
typedef hermitian_adaptor<matrix<T> > container_model;
#ifndef SKIP_BAD
// const_iterator (iterator) constructor is bad
function_requires< Mutable_MatrixExpressionConcept<container_model> >();
#endif
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedRandomAccess2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
#endif
// Sparse Matrix
#if defined (INTERNAL_SPARSE) || defined (INTERNAL_MATRIX_SPARSE)
{
typedef mapped_matrix<T> container_model;
function_requires< Mutable_SparseMatrixConcept<container_model> >();
function_requires< IndexedBidirectional2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedBidirectional2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedBidirectional2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedBidirectional2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
{
typedef mapped_vector_of_mapped_vector<T> container_model;
function_requires< Mutable_SparseMatrixConcept<container_model> >();
function_requires< IndexedBidirectional2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedBidirectional2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedBidirectional2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedBidirectional2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
{
typedef compressed_matrix<T> container_model;
function_requires< Mutable_SparseMatrixConcept<container_model> >();
function_requires< IndexedBidirectional2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedBidirectional2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedBidirectional2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedBidirectional2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
{
typedef coordinate_matrix<T> container_model;
function_requires< Mutable_SparseMatrixConcept<container_model> >();
function_requires< IndexedBidirectional2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedBidirectional2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedBidirectional2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedBidirectional2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
{
typedef generalized_vector_of_vector<T, row_major, vector< coordinate_vector<T> > > container_model;
function_requires< Mutable_SparseMatrixConcept<container_model> >();
function_requires< IndexedBidirectional2DIteratorConcept<container_model::const_iterator1, container_model::const_iterator2> >();
function_requires< Mutable_IndexedBidirectional2DIteratorConcept<container_model::iterator1, container_model::iterator2> >();
function_requires< IndexedBidirectional2DIteratorConcept<container_model::const_reverse_iterator1, container_model::const_reverse_iterator2> >();
function_requires< Mutable_IndexedBidirectional2DIteratorConcept<container_model::reverse_iterator1, container_model::reverse_iterator2> >();
}
#endif
// Scalar Expressions
#if defined (INTERNAL_EXPRESSION) || defined (INTERNAL_VECTOR_EXPRESSION)
function_requires< ScalarExpressionConcept<scalar_value<T> > >();
function_requires< ScalarExpressionConcept<scalar_reference<T> > >();
// Vector Expressions
{
typedef vector_reference<vector<T> > expression_model;
function_requires< VectorExpressionConcept<expression_model> >();
function_requires< Mutable_VectorExpressionConcept<expression_model> >();
function_requires< IndexedRandomAccess1DIteratorConcept<expression_model::const_iterator> >();
function_requires< Mutable_IndexedRandomAccess1DIteratorConcept<expression_model::iterator> >();
function_requires< IndexedRandomAccess1DIteratorConcept<expression_model::const_reverse_iterator> >();
function_requires< Mutable_IndexedRandomAccess1DIteratorConcept<expression_model::reverse_iterator> >();
}
{
typedef vector_unary<vector<T>, scalar_identity<T> > expression_model;
function_requires< VectorExpressionConcept<expression_model> >();
function_requires< IndexedRandomAccess1DIteratorConcept<expression_model::const_iterator> >();
function_requires< IndexedRandomAccess1DIteratorConcept<expression_model::const_reverse_iterator> >();
}
{
typedef vector_binary<vector<T>, vector<T>, scalar_plus<T, T> > expression_model;
function_requires< VectorExpressionConcept<expression_model> >();
function_requires< IndexedRandomAccess1DIteratorConcept<expression_model::const_iterator> >();
function_requires< IndexedRandomAccess1DIteratorConcept<expression_model::const_reverse_iterator> >();
}
{
typedef vector_binary_scalar1<T, vector<T>, scalar_multiplies<T, T> > expression_model;
function_requires< VectorExpressionConcept<expression_model> >();
function_requires< IndexedRandomAccess1DIteratorConcept<expression_model::const_iterator> >();
function_requires< IndexedRandomAccess1DIteratorConcept<expression_model::const_reverse_iterator> >();
}
{
typedef vector_binary_scalar2<vector<T>, scalar_value<T>, scalar_multiplies<T, T> > expression_model;
function_requires< VectorExpressionConcept<expression_model> >();
function_requires< IndexedRandomAccess1DIteratorConcept<expression_model::const_iterator> >();
function_requires< IndexedRandomAccess1DIteratorConcept<expression_model::const_reverse_iterator> >();
}
{
typedef vector_binary_scalar1<scalar_value<T>, vector<T>, scalar_multiplies<T, T> > expression_model;
function_requires< VectorExpressionConcept<expression_model> >();
function_requires< IndexedRandomAccess1DIteratorConcept<expression_model::const_iterator> >();
function_requires< IndexedRandomAccess1DIteratorConcept<expression_model::const_reverse_iterator> >();
}
{
typedef vector_binary_scalar2<vector<T>, scalar_value<T>, scalar_multiplies<T, T> > expression_model;
function_requires< VectorExpressionConcept<expression_model> >();
function_requires< IndexedRandomAccess1DIteratorConcept<expression_model::const_iterator> >();
function_requires< IndexedRandomAccess1DIteratorConcept<expression_model::const_reverse_iterator> >();
}
function_requires< ScalarExpressionConcept<vector_scalar_unary<vector<T>, vector_sum<T> > > >();
function_requires< ScalarExpressionConcept<vector_scalar_unary<vector<T>, vector_norm_1<T> > > >();
function_requires< ScalarExpressionConcept<vector_scalar_unary<vector<T>, vector_norm_2<T> > > >();
function_requires< ScalarExpressionConcept<vector_scalar_unary<vector<T>, vector_norm_inf<T> > > >();
function_requires< ScalarExpressionConcept<vector_scalar_binary<vector<T>, vector<T>, vector_inner_prod<T, T, T> > > >();
#endif
// Matrix Expressions
#if defined (INTERNAL_EXPRESSION) || defined (INTERNAL_MATRIX_EXPRESSION)
{
typedef matrix_reference<matrix<T> > expression_model;
function_requires< MatrixExpressionConcept<expression_model> >();
function_requires< Mutable_MatrixExpressionConcept<expression_model> >();
function_requires< IndexedRandomAccess2DIteratorConcept<expression_model::const_iterator1, expression_model::const_iterator2> >();
function_requires< Mutable_IndexedRandomAccess2DIteratorConcept<expression_model::iterator1, expression_model::iterator2> >();
function_requires< IndexedRandomAccess2DIteratorConcept<expression_model::const_reverse_iterator1, expression_model::const_reverse_iterator2> >();
function_requi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -