Chemical Data Processing Library C++ API - Version 1.4.0
Classes | Namespaces | Functions
MatrixProxy.hpp File Reference

Definition of matrix proxy types. More...

#include <type_traits>
#include "CDPL/Math/Expression.hpp"
#include "CDPL/Math/TypeTraits.hpp"
#include "CDPL/Math/Functional.hpp"
#include "CDPL/Math/VectorAssignment.hpp"
#include "CDPL/Math/MatrixAssignment.hpp"
#include "CDPL/Math/Range.hpp"
#include "CDPL/Math/Slice.hpp"

Go to the source code of this file.

Classes

class  CDPL::Math::MatrixRow< M >
 Vector-expression proxy that views a single row of an underlying matrix. More...
 
class  CDPL::Math::MatrixColumn< M >
 Vector-expression proxy that views a single column of an underlying matrix. More...
 
class  CDPL::Math::MatrixRange< M >
 Matrix-expression proxy that views a contiguous rectangular subrange of an underlying matrix. More...
 
class  CDPL::Math::MatrixSlice< M >
 Matrix-expression proxy that views a strided rectangular slice of an underlying matrix. More...
 
struct  CDPL::Math::VectorTemporaryTraits< MatrixRow< M > >
 Vector-temporary trait specialization for Math::MatrixRow — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::VectorTemporaryTraits< const MatrixRow< M > >
 Vector-temporary trait specialization for const Math::MatrixRow — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::MatrixTemporaryTraits< MatrixRow< M > >
 Matrix-temporary trait specialization for Math::MatrixRow — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::MatrixTemporaryTraits< const MatrixRow< M > >
 Matrix-temporary trait specialization for const Math::MatrixRow — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::VectorTemporaryTraits< MatrixColumn< M > >
 Vector-temporary trait specialization for Math::MatrixColumn — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::VectorTemporaryTraits< const MatrixColumn< M > >
 Vector-temporary trait specialization for const Math::MatrixColumn — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::MatrixTemporaryTraits< MatrixColumn< M > >
 Matrix-temporary trait specialization for Math::MatrixColumn — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::MatrixTemporaryTraits< const MatrixColumn< M > >
 Matrix-temporary trait specialization for const Math::MatrixColumn — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::VectorTemporaryTraits< MatrixRange< M > >
 Vector-temporary trait specialization for Math::MatrixRange — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::VectorTemporaryTraits< const MatrixRange< M > >
 Vector-temporary trait specialization for const Math::MatrixRange — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::MatrixTemporaryTraits< MatrixRange< M > >
 Matrix-temporary trait specialization for Math::MatrixRange — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::MatrixTemporaryTraits< const MatrixRange< M > >
 Matrix-temporary trait specialization for const Math::MatrixRange — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::VectorTemporaryTraits< MatrixSlice< M > >
 Vector-temporary trait specialization for Math::MatrixSlice — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::VectorTemporaryTraits< const MatrixSlice< M > >
 Vector-temporary trait specialization for const Math::MatrixSlice — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::MatrixTemporaryTraits< MatrixSlice< M > >
 Matrix-temporary trait specialization for Math::MatrixSlice — inherits the temporary type from the wrapped matrix. More...
 
struct  CDPL::Math::MatrixTemporaryTraits< const MatrixSlice< M > >
 Matrix-temporary trait specialization for const Math::MatrixSlice — inherits the temporary type from the wrapped matrix. More...
 

Namespaces

 CDPL
 The namespace of the Chemical Data Processing Library.
 
 CDPL::Math
 Contains classes and functions related to mathematics.
 

Functions

template<typename M >
MatrixRow< M > CDPL::Math::row (MatrixExpression< M > &e, typename MatrixRow< M >::SizeType i)
 Returns a mutable row proxy for row i of the matrix expression e. More...
 
template<typename M >
MatrixRow< const M > CDPL::Math::row (const MatrixExpression< M > &e, typename MatrixRow< const M >::SizeType i)
 Returns a const row proxy for row i of the matrix expression e. More...
 
template<typename M >
MatrixColumn< M > CDPL::Math::column (MatrixExpression< M > &e, typename MatrixColumn< M >::SizeType j)
 Returns a mutable column proxy for column j of the matrix expression e. More...
 
template<typename M >
MatrixColumn< const M > CDPL::Math::column (const MatrixExpression< M > &e, typename MatrixColumn< const M >::SizeType j)
 Returns a const column proxy for column j of the matrix expression e. More...
 
template<typename E >
MatrixRange< E > CDPL::Math::range (MatrixExpression< E > &e, const typename MatrixRange< E >::RangeType &r1, const typename MatrixRange< E >::RangeType &r2)
 Returns a mutable matrix range proxy viewing rows in r1 and columns in r2 of e. More...
 
template<typename E >
MatrixRange< const E > CDPL::Math::range (const MatrixExpression< E > &e, const typename MatrixRange< const E >::RangeType &r1, const typename MatrixRange< const E >::RangeType &r2)
 Returns a const matrix range proxy viewing rows in r1 and columns in r2 of e. More...
 
template<typename E >
MatrixRange< E > CDPL::Math::range (MatrixExpression< E > &e, typename MatrixRange< E >::RangeType::SizeType start1, typename MatrixRange< E >::RangeType::SizeType stop1, typename MatrixRange< E >::RangeType::SizeType start2, typename MatrixRange< E >::RangeType::SizeType stop2)
 Returns a mutable matrix range proxy viewing rows [start1, stop1) and columns [start2, stop2) of e. More...
 
template<typename E >
MatrixRange< const E > CDPL::Math::range (const MatrixExpression< E > &e, typename MatrixRange< const E >::RangeType::SizeType start1, typename MatrixRange< const E >::RangeType::SizeType stop1, typename MatrixRange< const E >::RangeType::SizeType start2, typename MatrixRange< const E >::RangeType::SizeType stop2)
 Returns a const matrix range proxy viewing rows [start1, stop1) and columns [start2, stop2) of e. More...
 
template<typename E >
MatrixSlice< E > CDPL::Math::slice (MatrixExpression< E > &e, const typename MatrixSlice< E >::SliceType &s1, const typename MatrixSlice< E >::SliceType &s2)
 Returns a mutable matrix slice proxy viewing the strided rectangular slice (s1, s2) of e. More...
 
template<typename E >
MatrixSlice< const E > CDPL::Math::slice (const MatrixExpression< E > &e, const typename MatrixSlice< const E >::SliceType &s1, const typename MatrixSlice< const E >::SliceType &s2)
 Returns a const matrix slice proxy viewing the strided rectangular slice (s1, s2) of e. More...
 
template<typename E >
MatrixSlice< E > CDPL::Math::slice (MatrixExpression< E > &e, typename MatrixSlice< E >::SliceType::SizeType start1, typename MatrixSlice< E >::SliceType::DifferenceType stride1, typename MatrixSlice< E >::SliceType::SizeType size1, typename MatrixSlice< E >::SliceType::SizeType start2, typename MatrixSlice< E >::SliceType::DifferenceType stride2, typename MatrixSlice< E >::SliceType::SizeType size2)
 Returns a mutable matrix slice proxy specified by row (start1, stride1, size1) and column (start2, stride2, size2). More...
 
template<typename E >
MatrixSlice< const E > CDPL::Math::slice (const MatrixExpression< E > &e, typename MatrixSlice< const E >::SliceType::SizeType start1, typename MatrixSlice< const E >::SliceType::DifferenceType stride1, typename MatrixSlice< const E >::SliceType::SizeType size1, typename MatrixSlice< const E >::SliceType::SizeType start2, typename MatrixSlice< const E >::SliceType::DifferenceType stride2, typename MatrixSlice< const E >::SliceType::SizeType size2)
 Returns a const matrix slice proxy specified by row (start1, stride1, size1) and column (start2, stride2, size2). More...
 

Detailed Description

Definition of matrix proxy types.