SCIRun  5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | List of all members
EvaluateLinearAlgebraUnaryAlgorithm Class Reference

Computes several unary operations on general matrices. More...

#include <EvaluateLinearAlgebraUnaryAlgo.h>

Inheritance diagram for EvaluateLinearAlgebraUnaryAlgorithm:
AlgorithmBase AlgorithmParameterList AlgorithmLogger AlgorithmStatusReporter AlgorithmInterface LegacyLoggerInterface ProgressReporter HasId< IdType, IdGenerator >

Public Types

enum  Operator { NEGATE, TRANSPOSE, SCALAR_MULTIPLY }
 
typedef
SCIRun::Core::Datatypes::DenseMatrixConstHandle 
Inputs
 
typedef boost::tuple< Operator,
boost::optional< double > > 
Parameters
 
typedef
SCIRun::Core::Datatypes::DenseMatrixHandle 
Outputs
 
- Public Types inherited from HasId< IdType, IdGenerator >
typedef IdType id_type
 
- Public Types inherited from AlgorithmStatusReporter
typedef boost::function< void(double)> UpdaterFunc
 

Public Member Functions

 EvaluateLinearAlgebraUnaryAlgorithm ()
 
Outputs run (const Inputs &matrix, const Parameters &params) const
 
AlgorithmOutput run_generic (const AlgorithmInput &input) const
 
- Public Member Functions inherited from AlgorithmBase
virtual ~AlgorithmBase ()
 
- Public Member Functions inherited from AlgorithmParameterList
 AlgorithmParameterList ()
 
bool set (const AlgorithmParameterName &key, const AlgorithmParameter::Value &value)
 
const AlgorithmParameterget (const AlgorithmParameterName &key) const
 
bool set_option (const AlgorithmParameterName &key, const std::string &value)
 
bool get_option (const AlgorithmParameterName &key, std::string &value) const
 
std::string get_option (const AlgorithmParameterName &key) const
 
bool check_option (const AlgorithmParameterName &key, const std::string &value) const
 
virtual bool keyNotFoundPolicy (const AlgorithmParameterName &key)
 
- Public Member Functions inherited from AlgorithmInterface
virtual ~AlgorithmInterface ()
 
- Public Member Functions inherited from HasId< IdType, IdGenerator >
 HasId ()
 
IdType id () const
 
- Public Member Functions inherited from AlgorithmLogger
 AlgorithmLogger ()
 
 ~AlgorithmLogger ()
 
void setLogger (Core::Logging::LoggerHandle logger)
 
virtual void error (const std::string &error) const
 functions for the algorithm, so it can forward errors if needed More...
 
virtual void warning (const std::string &warning) const
 
virtual void remark (const std::string &remark) const
 
virtual void status (const std::string &status) const
 
- Public Member Functions inherited from LegacyLoggerInterface
virtual ~LegacyLoggerInterface ()
 
- Public Member Functions inherited from AlgorithmStatusReporter
 AlgorithmStatusReporter ()
 
 ~AlgorithmStatusReporter ()
 
virtual void report_start (const std::string &tag) const
 
virtual void report_end () const
 
virtual void update_progress (double percent) const
 
void setUpdaterFunc (UpdaterFunc func)
 
UpdaterFunc getUpdaterFunc () const
 
- Public Member Functions inherited from ProgressReporter
virtual ~ProgressReporter ()
 
template<typename T1 , typename T2 >
void update_progress_max (T1 current, T2 max) const
 

Additional Inherited Members

- Protected Member Functions inherited from AlgorithmParameterList
void dumpAlgoState () const
 
void addParameter (const AlgorithmParameterName &key, const AlgorithmParameter::Value &defaultValue)
 
void add_option (const AlgorithmParameterName &key, const std::string &defval, const std::string &options)
 

Detailed Description

Computes several unary operations on general matrices.

Template Parameters
_MatrixTypethe type of the matrix of which we are computing the eigendecomposition; this is expected to be an instantiation of the Matrix class template. Currently, only real matrices are supported.

The eigenvalues and eigenvectors of a matrix $ A $ are scalars $ \lambda $ and vectors $ v $ such that $ Av = \lambda v $. If $ D $ is a diagonal matrix with the eigenvalues on the diagonal, and $ V $ is a matrix with the eigenvectors as its columns, then $ A V = V D $. The matrix $ V $ is almost always invertible, in which case we have $ A = V D V^{-1} $. This is called the eigendecomposition.

Call the function compute() to compute the eigenvalues and eigenvectors of a given matrix. Alternatively, you can use the EigenSolver(const MatrixType&, bool) constructor which computes the eigenvalues and eigenvectors at construction time. Once the eigenvalue and eigenvectors are computed, they can be retrieved with the eigenvalues() and eigenvectors() functions. The pseudoEigenvalueMatrix() and pseudoEigenvectors() methods allow the construction of the pseudo-eigendecomposition.

The documentation for EigenSolver(const MatrixType&, bool) contains an example of the typical use of this class.

Note
The implementation is adapted from JAMA (public domain). Their code is based on EISPACK.
See Also
MatrixBase::eigenvalues(), class ComplexEigenSolver, class SelfAdjointEigenSolver

Member Typedef Documentation

typedef boost::tuple<Operator, boost::optional<double> > Parameters

Member Enumeration Documentation

enum Operator
Enumerator
NEGATE 
TRANSPOSE 
SCALAR_MULTIPLY 

Constructor & Destructor Documentation

Member Function Documentation

EvaluateLinearAlgebraUnaryAlgorithm::Outputs run ( const Inputs matrix,
const Parameters params 
) const
Todo:
: absolutely need matrix move semantics here!!!!!!!
AlgorithmOutput run_generic ( const AlgorithmInput input) const
virtual

Implements AlgorithmInterface.


The documentation for this class was generated from the following files: