📄 concepts.hpp
字号:
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_requires< Mutable_IndexedRandomAccess2DIteratorConcept<expression_model::reverse_iterator1, expression_model::reverse_iterator2> >(); } { typedef vector_matrix_binary<vector<T>, vector<T>, scalar_multiplies<T, T> > expression_model; function_requires< MatrixExpressionConcept<expression_model> >(); function_requires< IndexedRandomAccess2DIteratorConcept<expression_model::const_iterator1, expression_model::const_iterator2> >(); function_requires< IndexedRandomAccess2DIteratorConcept<expression_model::const_reverse_iterator1, expression_model::const_reverse_iterator2> >(); } { typedef matrix_unary1<matrix<T>, scalar_identity<T> > expression_model; function_requires< MatrixExpressionConcept<expression_model> >(); function_requires< IndexedRandomAccess2DIteratorConcept<expression_model::const_iterator1, expression_model::const_iterator2> >(); function_requires< IndexedRandomAccess2DIteratorConcept<expression_model::const_reverse_iterator1, expression_model::const_reverse_iterator2> >(); } { typedef matrix_unary2<matrix<T>, scalar_identity<T> > expression_model; function_requires< MatrixExpressionConcept<expression_model> >(); function_requires< IndexedRandomAccess2DIteratorConcept<expression_model::const_iterator1, expression_model::const_iterator2> >(); function_requires< IndexedRandomAccess2DIteratorConcept<expression_model::const_reverse_iterator1, expression_model::const_reverse_iterator2> >(); } { typedef matrix_binary<matrix<T>, matrix<T>, scalar_plus<T, T> > ex
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -