MOAB  4.9.3pre
Eigen::SolverBase< Derived > Class Template Reference

A base class for matrix decomposition and solvers. More...

#include <SolverBase.h>

Inheritance diagram for Eigen::SolverBase< Derived >:
Collaboration diagram for Eigen::SolverBase< Derived >:

List of all members.

Public Types

enum  {
  RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime, ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime, SizeAtCompileTime, MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
  MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime, MaxSizeAtCompileTime, IsVectorAtCompileTime
}
typedef EigenBase< Derived > Base
typedef internal::traits
< Derived >::Scalar 
Scalar
typedef Scalar CoeffReturnType
typedef internal::add_const
< Transpose< const Derived >
>::type 
ConstTransposeReturnType
typedef internal::conditional
< NumTraits< Scalar >
::IsComplex, CwiseUnaryOp
< internal::scalar_conjugate_op
< Scalar >
, ConstTransposeReturnType >
, ConstTransposeReturnType >
::type 
AdjointReturnType

Public Member Functions

 SolverBase ()
 ~SolverBase ()
template<typename Rhs >
const Solve< Derived, Rhs > solve (const MatrixBase< Rhs > &b) const
ConstTransposeReturnType transpose () const
AdjointReturnType adjoint () const

Detailed Description

template<typename Derived>
class Eigen::SolverBase< Derived >

A base class for matrix decomposition and solvers.

Template Parameters:
Derivedthe actual type of the decomposition/solver.

Any matrix decomposition inheriting this base class provide the following API:

 MatrixType A, b, x;
 DecompositionType dec(A);
 x = dec.solve(b);             // solve A   * x = b
 x = dec.transpose().solve(b); // solve A^T * x = b
 x = dec.adjoint().solve(b);   // solve A'  * x = b
Warning:
Currently, any other usage of transpose() and adjoint() are not supported and will produce compilation errors.
See also:
class PartialPivLU, class FullPivLU

Definition at line 41 of file SolverBase.h.


Member Typedef Documentation

the return type of adjoint()

Definition at line 99 of file SolverBase.h.

template<typename Derived>
typedef EigenBase<Derived> Eigen::SolverBase< Derived >::Base

Reimplemented in Eigen::PartialPivLU< _MatrixType >, and Eigen::FullPivLU< _MatrixType >.

Definition at line 45 of file SolverBase.h.

template<typename Derived>
typedef Scalar Eigen::SolverBase< Derived >::CoeffReturnType

Definition at line 47 of file SolverBase.h.

template<typename Derived>
typedef internal::add_const<Transpose<const Derived> >::type Eigen::SolverBase< Derived >::ConstTransposeReturnType

the return type of transpose()

Definition at line 82 of file SolverBase.h.

template<typename Derived>
typedef internal::traits<Derived>::Scalar Eigen::SolverBase< Derived >::Scalar

Definition at line 46 of file SolverBase.h.


Member Enumeration Documentation

template<typename Derived>
anonymous enum
Enumerator:
RowsAtCompileTime 
ColsAtCompileTime 
SizeAtCompileTime 
MaxRowsAtCompileTime 
MaxColsAtCompileTime 
MaxSizeAtCompileTime 
IsVectorAtCompileTime 

Definition at line 49 of file SolverBase.h.

         {
      RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
      ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
      SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
                                                          internal::traits<Derived>::ColsAtCompileTime>::ret),
      MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
      MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
      MaxSizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::MaxRowsAtCompileTime,
                                                             internal::traits<Derived>::MaxColsAtCompileTime>::ret),
      IsVectorAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime == 1
                           || internal::traits<Derived>::MaxColsAtCompileTime == 1
    };

Constructor & Destructor Documentation

template<typename Derived>
Eigen::SolverBase< Derived >::SolverBase ( ) [inline]

Default constructor

Definition at line 63 of file SolverBase.h.

    {}
template<typename Derived>
Eigen::SolverBase< Derived >::~SolverBase ( ) [inline]

Definition at line 66 of file SolverBase.h.

    {}

Member Function Documentation

template<typename Derived>
AdjointReturnType Eigen::SolverBase< Derived >::adjoint ( ) const [inline]
Returns:
an expression of the adjoint of the factored matrix

A typical usage is to solve for the adjoint problem A' x = b:

 x = dec.adjoint().solve(b); 

For real scalar types, this function is equivalent to transpose().

See also:
transpose(), solve()

Definition at line 109 of file SolverBase.h.

template<typename Derived>
template<typename Rhs >
const Solve<Derived, Rhs> Eigen::SolverBase< Derived >::solve ( const MatrixBase< Rhs > &  b) const [inline]
Returns:
an expression of the solution x of $ A x = b $ using the current decomposition of A.

Reimplemented in Eigen::FullPivLU< _MatrixType >, and Eigen::PartialPivLU< _MatrixType >.

Definition at line 75 of file SolverBase.h.

    {
      eigen_assert(derived().rows()==b.rows() && "solve(): invalid number of rows of the right hand side matrix b");
      return Solve<Derived, Rhs>(derived(), b.derived());
    }
template<typename Derived>
ConstTransposeReturnType Eigen::SolverBase< Derived >::transpose ( ) const [inline]
Returns:
an expression of the transposed of the factored matrix.

A typical usage is to solve for the transposed problem A^T x = b:

 x = dec.transpose().solve(b); 
See also:
adjoint(), solve()

Definition at line 90 of file SolverBase.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines