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

Definition of various matrix expression types and operations. More...

#include <type_traits>
#include "CDPL/Math/Check.hpp"
#include "CDPL/Math/Expression.hpp"
#include "CDPL/Math/CommonType.hpp"
#include "CDPL/Math/Functional.hpp"
#include "CDPL/Math/TypeTraits.hpp"
#include "CDPL/Base/Exceptions.hpp"

Go to the source code of this file.

Classes

class  CDPL::Math::MatrixUnary< E, F >
 
struct  CDPL::Math::MatrixUnaryTraits< E, F >
 
class  CDPL::Math::VectorMatrixUnary< E, F >
 
struct  CDPL::Math::VectorMatrixUnaryTraits< E, F >
 
class  CDPL::Math::MatrixBinary1< E1, E2, F >
 
struct  CDPL::Math::MatrixBinary1Traits< E1, E2, F >
 
class  CDPL::Math::MatrixBinary2< E1, E2, F >
 
struct  CDPL::Math::MatrixBinary2Traits< E1, E2, F >
 
class  CDPL::Math::VectorMatrixBinary< E1, E2, F >
 
struct  CDPL::Math::VectorMatrixBinaryTraits< E1, E2, F >
 
class  CDPL::Math::Matrix1VectorBinary< E1, E2, F >
 
struct  CDPL::Math::Matrix1VectorBinaryTraits< E1, E2, F >
 
class  CDPL::Math::Matrix2VectorBinary< E1, E2, F >
 
struct  CDPL::Math::Matrix2VectorBinaryTraits< E1, E2, F >
 
class  CDPL::Math::Scalar1MatrixBinary< E1, E2, F >
 
struct  CDPL::Math::Scalar1MatrixBinaryTraits< E1, E2, F >
 
class  CDPL::Math::Scalar2MatrixBinary< E1, E2, F >
 
struct  CDPL::Math::Scalar2MatrixBinaryTraits< E1, E2, F >
 
class  CDPL::Math::MatrixTranspose< M >
 
struct  CDPL::Math::VectorTemporaryTraits< MatrixTranspose< M > >
 
struct  CDPL::Math::VectorTemporaryTraits< const MatrixTranspose< M > >
 
struct  CDPL::Math::MatrixTemporaryTraits< MatrixTranspose< M > >
 
struct  CDPL::Math::MatrixTemporaryTraits< const MatrixTranspose< M > >
 

Namespaces

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

Functions

template<typename E >
MatrixUnaryTraits< E, ScalarNegation< typename E::ValueType > >::ResultType CDPL::Math::operator- (const MatrixExpression< E > &e)
 
template<typename E >
const E & CDPL::Math::operator+ (const MatrixExpression< E > &e)
 
template<typename E1 , typename E2 >
MatrixBinary1Traits< E1, E2, ScalarAddition< typename E1::ValueType, typename E2::ValueType > >::ResultType CDPL::Math::operator+ (const MatrixExpression< E1 > &e1, const MatrixExpression< E2 > &e2)
 
template<typename E1 , typename E2 >
MatrixBinary1Traits< E1, E2, ScalarSubtraction< typename E1::ValueType, typename E2::ValueType > >::ResultType CDPL::Math::operator- (const MatrixExpression< E1 > &e1, const MatrixExpression< E2 > &e2)
 
template<typename E , typename T >
std::enable_if< IsScalar< T >::value, typename Scalar2MatrixBinaryTraits< E, T, ScalarMultiplication< typename E::ValueType, T > >::ResultType >::type CDPL::Math::operator* (const MatrixExpression< E > &e, const T &t)
 
template<typename T , typename E >
std::enable_if< IsScalar< T >::value, typename Scalar1MatrixBinaryTraits< T, E, ScalarMultiplication< T, typename E::ValueType > >::ResultType >::type CDPL::Math::operator* (const T &t, const MatrixExpression< E > &e)
 
template<typename E , typename T >
std::enable_if< IsScalar< T >::value, typename Scalar2MatrixBinaryTraits< E, T, ScalarDivision< typename E::ValueType, T > >::ResultType >::type CDPL::Math::operator/ (const MatrixExpression< E > &e, const T &t)
 
template<typename E1 , typename E2 >
MatrixEquality< E1, E2 >::ResultType CDPL::Math::operator== (const MatrixExpression< E1 > &e1, const MatrixExpression< E2 > &e2)
 
template<typename E1 , typename E2 >
MatrixEquality< E1, E2 >::ResultType CDPL::Math::operator!= (const MatrixExpression< E1 > &e1, const MatrixExpression< E2 > &e2)
 
template<typename E1 , typename E2 , typename T >
std::enable_if< std::is_arithmetic< T >::value, typename MatrixToleranceEquality< E1, E2, T >::ResultType >::type CDPL::Math::equals (const MatrixExpression< E1 > &e1, const MatrixExpression< E2 > &e2, const T &eps)
 
template<typename E >
MatrixUnaryTraits< E, ScalarConjugation< typename E::ValueType > >::ResultType CDPL::Math::conj (const MatrixExpression< E > &e)
 
template<typename E >
MatrixUnaryTraits< E, ScalarConjugation< typename E::ValueType > >::ResultType CDPL::Math::herm (const MatrixExpression< E > &e)
 
template<typename E >
MatrixUnaryTraits< E, ScalarReal< typename E::ValueType > >::ResultType CDPL::Math::real (const MatrixExpression< E > &e)
 
template<typename E >
MatrixUnaryTraits< E, ScalarImaginary< typename E::ValueType > >::ResultType CDPL::Math::imag (const MatrixExpression< E > &e)
 
template<typename E1 , typename E2 >
VectorMatrixBinaryTraits< E1, E2, ScalarMultiplication< typename E1::ValueType, typename E2::ValueType > >::ResultType CDPL::Math::outerProd (const VectorExpression< E1 > &e1, const VectorExpression< E2 > &e2)
 
template<typename E1 , typename E2 >
MatrixBinary1Traits< E1, E2, ScalarDivision< typename E1::ValueType, typename E2::ValueType > >::ResultType CDPL::Math::elemDiv (const MatrixExpression< E1 > &e1, const MatrixExpression< E2 > &e2)
 
template<typename E1 , typename E2 >
MatrixBinary1Traits< E1, E2, ScalarMultiplication< typename E1::ValueType, typename E2::ValueType > >::ResultType CDPL::Math::elemProd (const MatrixExpression< E1 > &e1, const MatrixExpression< E2 > &e2)
 
template<typename E1 , typename E2 >
Matrix1VectorBinaryTraits< E1, E2, MatrixVectorProduct< E1, E2 > >::ResultType CDPL::Math::operator* (const MatrixExpression< E1 > &e1, const VectorExpression< E2 > &e2)
 
template<typename E1 , typename E2 >
Matrix1VectorBinaryTraits< E1, E2, MatrixVectorProduct< E1, E2 > >::ResultType CDPL::Math::prod (const MatrixExpression< E1 > &e1, const VectorExpression< E2 > &e2)
 
template<typename C , typename E1 , typename E2 >
C & CDPL::Math::prod (const MatrixExpression< E1 > &e1, const VectorExpression< E2 > &e2, VectorContainer< C > &c)
 
template<typename E1 , typename E2 >
Matrix2VectorBinaryTraits< E1, E2, VectorMatrixProduct< E1, E2 > >::ResultType CDPL::Math::operator* (const VectorExpression< E1 > &e1, const MatrixExpression< E2 > &e2)
 
template<typename E1 , typename E2 >
Matrix2VectorBinaryTraits< E1, E2, VectorMatrixProduct< E1, E2 > >::ResultType CDPL::Math::prod (const VectorExpression< E1 > &e1, const MatrixExpression< E2 > &e2)
 
template<typename C , typename E1 , typename E2 >
C & CDPL::Math::prod (const VectorExpression< E1 > &e1, const MatrixExpression< E2 > &e2, VectorContainer< C > &c)
 
template<typename E1 , typename E2 >
MatrixBinary2Traits< E1, E2, MatrixProduct< E1, E2 > >::ResultType CDPL::Math::operator* (const MatrixExpression< E1 > &e1, const MatrixExpression< E2 > &e2)
 
template<typename E1 , typename E2 >
MatrixBinary2Traits< E1, E2, MatrixProduct< E1, E2 > >::ResultType CDPL::Math::prod (const MatrixExpression< E1 > &e1, const MatrixExpression< E2 > &e2)
 
template<typename C , typename E1 , typename E2 >
C & CDPL::Math::prod (const MatrixExpression< E1 > &e1, const MatrixExpression< E2 > &e2, MatrixContainer< C > &c)
 
template<typename E >
MatrixTrace< E >::ResultType CDPL::Math::trace (const MatrixExpression< E > &e)
 
template<typename E >
MatrixNorm1< E >::ResultType CDPL::Math::norm1 (const MatrixExpression< E > &e)
 
template<typename E >
MatrixNormFrobenius< E >::ResultType CDPL::Math::normFrob (const MatrixExpression< E > &e)
 
template<typename E >
MatrixNormInfinity< E >::ResultType CDPL::Math::normInf (const MatrixExpression< E > &e)
 
template<typename E >
VectorMatrixUnaryTraits< E, DiagonalMatrixFromVector< E > >::ResultType CDPL::Math::diag (const VectorExpression< E > &e)
 
template<typename E >
VectorMatrixUnaryTraits< E, CrossProductMatrixFromVector< E > >::ResultType CDPL::Math::cross (const VectorExpression< E > &e)
 
template<typename E >
MatrixTranspose< E > CDPL::Math::trans (MatrixExpression< E > &e)
 
template<typename E >
MatrixTranspose< const E > CDPL::Math::trans (const MatrixExpression< E > &e)
 
template<typename E >
MatrixElementSum< E >::ResultType CDPL::Math::sum (const MatrixExpression< E > &e)
 

Detailed Description

Definition of various matrix expression types and operations.