irlba
A C++ library for IRLBA
Loading...
Searching...
No Matches
irlba::SimpleMatrix< EigenVector_, EigenMatrix_, SimplePointer_ > Class Template Referencefinal

A Matrix-compatible wrapper around a "simple" matrix. More...

#include <simple.hpp>

Inheritance diagram for irlba::SimpleMatrix< EigenVector_, EigenMatrix_, SimplePointer_ >:
Collaboration diagram for irlba::SimpleMatrix< EigenVector_, EigenMatrix_, SimplePointer_ >:

Public Member Functions

 SimpleMatrix (SimplePointer_ matrix)
 
Eigen::Index rows () const
 
Eigen::Index cols () const
 
std::unique_ptr< Workspace< EigenVector_ > > new_workspace () const
 
std::unique_ptr< AdjointWorkspace< EigenVector_ > > new_adjoint_workspace () const
 
std::unique_ptr< RealizeWorkspace< EigenMatrix_ > > new_realize_workspace () const
 
std::unique_ptr< SimpleWorkspace< EigenVector_, I< decltype(*my_matrix)> > > new_known_workspace () const
 
std::unique_ptr< SimpleAdjointWorkspace< EigenVector_, I< decltype(*my_matrix)> > > new_known_adjoint_workspace () const
 
std::unique_ptr< SimpleRealizeWorkspace< EigenMatrix_, I< decltype(*my_matrix)> > > new_known_realize_workspace () const
 
- Public Member Functions inherited from irlba::Matrix< EigenVector_, EigenMatrix_ >
std::unique_ptr< Workspace< EigenVector_ > > new_known_workspace () const
 
std::unique_ptr< AdjointWorkspace< EigenVector_ > > new_known_adjoint_workspace () const
 
std::unique_ptr< RealizeWorkspace< EigenMatrix_ > > new_known_realize_workspace () const
 

Detailed Description

template<class EigenVector_, class EigenMatrix_, class SimplePointer_>
class irlba::SimpleMatrix< EigenVector_, EigenMatrix_, SimplePointer_ >

A Matrix-compatible wrapper around a "simple" matrix.

Template Parameters
EigenVector_A floating-point Eigen::Vector to be used as input/output of multiplication operations.
EigenMatrix_A dense floating-point Eigen::Matrix in which to store the realized matrix. Typically of the same scalar type as EigenVector_.
SimplePointer_Pointer to an instance of a simple matrix class. This may be a raw or smart pointer.

A simple matrix is one that implements right-side multiplication by an EigenVector_, right-side multiplication on the result of adjoint(), and copy assignment to an EigenMatrix_. This is most typically an instance of an Eigen matrix class, though the exact class need not be the same as EigenMatrix_.

Constructor & Destructor Documentation

◆ SimpleMatrix()

template<class EigenVector_ , class EigenMatrix_ , class SimplePointer_ >
irlba::SimpleMatrix< EigenVector_, EigenMatrix_, SimplePointer_ >::SimpleMatrix ( SimplePointer_ matrix)
inline
Parameters
matrixPointer to a simple matrix.

Member Function Documentation

◆ cols()

template<class EigenVector_ , class EigenMatrix_ , class SimplePointer_ >
Eigen::Index irlba::SimpleMatrix< EigenVector_, EigenMatrix_, SimplePointer_ >::cols ( ) const
inlinevirtual
Returns
Number of columns in the matrix.

Implements irlba::Matrix< EigenVector_, EigenMatrix_ >.

◆ new_adjoint_workspace()

template<class EigenVector_ , class EigenMatrix_ , class SimplePointer_ >
std::unique_ptr< AdjointWorkspace< EigenVector_ > > irlba::SimpleMatrix< EigenVector_, EigenMatrix_, SimplePointer_ >::new_adjoint_workspace ( ) const
inlinevirtual
Returns
Pointer to a new workspace for adjoint matrix multiplication. The lifetime of this object should not exceed that of its parent Matrix.

Implements irlba::Matrix< EigenVector_, EigenMatrix_ >.

◆ new_known_adjoint_workspace()

template<class EigenVector_ , class EigenMatrix_ , class SimplePointer_ >
std::unique_ptr< SimpleAdjointWorkspace< EigenVector_, I< decltype(*my_matrix)> > > irlba::SimpleMatrix< EigenVector_, EigenMatrix_, SimplePointer_ >::new_known_adjoint_workspace ( ) const
inline

Overrides Matrix::new_known_adjoint_workspace() to enable devirtualization.

◆ new_known_realize_workspace()

template<class EigenVector_ , class EigenMatrix_ , class SimplePointer_ >
std::unique_ptr< SimpleRealizeWorkspace< EigenMatrix_, I< decltype(*my_matrix)> > > irlba::SimpleMatrix< EigenVector_, EigenMatrix_, SimplePointer_ >::new_known_realize_workspace ( ) const
inline

Overrides Matrix::new_known_realize_workspace() to enable devirtualization.

◆ new_known_workspace()

template<class EigenVector_ , class EigenMatrix_ , class SimplePointer_ >
std::unique_ptr< SimpleWorkspace< EigenVector_, I< decltype(*my_matrix)> > > irlba::SimpleMatrix< EigenVector_, EigenMatrix_, SimplePointer_ >::new_known_workspace ( ) const
inline

Overrides Matrix::new_known_workspace() to enable devirtualization.

◆ new_realize_workspace()

template<class EigenVector_ , class EigenMatrix_ , class SimplePointer_ >
std::unique_ptr< RealizeWorkspace< EigenMatrix_ > > irlba::SimpleMatrix< EigenVector_, EigenMatrix_, SimplePointer_ >::new_realize_workspace ( ) const
inlinevirtual
Returns
Pointer to a new workspace for matrix realization. The lifetime of this object should not exceed that of its parent Matrix.

Implements irlba::Matrix< EigenVector_, EigenMatrix_ >.

◆ new_workspace()

template<class EigenVector_ , class EigenMatrix_ , class SimplePointer_ >
std::unique_ptr< Workspace< EigenVector_ > > irlba::SimpleMatrix< EigenVector_, EigenMatrix_, SimplePointer_ >::new_workspace ( ) const
inlinevirtual
Returns
Pointer to a new workspace for matrix multiplication. The lifetime of this object should not exceed that of its parent Matrix.

Implements irlba::Matrix< EigenVector_, EigenMatrix_ >.

◆ rows()

template<class EigenVector_ , class EigenMatrix_ , class SimplePointer_ >
Eigen::Index irlba::SimpleMatrix< EigenVector_, EigenMatrix_, SimplePointer_ >::rows ( ) const
inlinevirtual
Returns
Number of rows in the matrix.

Implements irlba::Matrix< EigenVector_, EigenMatrix_ >.


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