1#ifndef IRLBA_MATRIX_SIMPLE_HPP 
    2#define IRLBA_MATRIX_SIMPLE_HPP 
   27template<
class EigenVector_, 
class Simple_>
 
   39    const Simple_& my_matrix;
 
   42    void multiply(
const EigenVector_& right, EigenVector_& output) {
 
   43        output.noalias() = my_matrix * right;
 
 
 
   55template<
class EigenVector_, 
class Simple_>
 
   67    const Simple_& my_matrix;
 
   70    void multiply(
const EigenVector_& right, EigenVector_& output) {
 
   71        output.noalias() = my_matrix.adjoint() * right;
 
 
 
   83template<
class EigenMatrix_, 
class Simple_>
 
   95    const Simple_& my_matrix;
 
   96    static constexpr bool is_same = std::is_same<EigenMatrix_, I<Simple_> >::value;
 
   97    typename std::conditional<is_same, bool, EigenMatrix_>::type buffer;
 
  100    const EigenMatrix_& 
realize(EigenMatrix_& buffer) {
 
  101        if constexpr(is_same) {
 
 
 
  124template<
class EigenVector_, 
class EigenMatrix_, 
class SimplePo
inter_>
 
  133    SimplePointer_ my_matrix;
 
  137        return my_matrix->rows();
 
 
  141        return my_matrix->cols();
 
 
  162        return std::make_unique<
SimpleWorkspace<EigenVector_, I<
decltype(*my_matrix)> > >(*my_matrix);
 
 
 
Workspace class for multiplying a transposed Matrix.
Definition interface.hpp:61
 
Interface for a matrix to use in compute().
Definition interface.hpp:142
 
Workspace class for realizing a Matrix.
Definition interface.hpp:99
 
Workspace class for multiplying a transposed SimpleMatrix.
Definition simple.hpp:56
 
void multiply(const EigenVector_ &right, EigenVector_ &output)
Definition simple.hpp:70
 
A Matrix-compatible wrapper around a "simple" matrix.
Definition simple.hpp:125
 
std::unique_ptr< SimpleWorkspace< EigenVector_, I< decltype(*my_matrix)> > > new_known_workspace() const
Definition simple.hpp:161
 
SimpleMatrix(SimplePointer_ matrix)
Definition simple.hpp:130
 
std::unique_ptr< AdjointWorkspace< EigenVector_ > > new_adjoint_workspace() const
Definition simple.hpp:149
 
std::unique_ptr< SimpleRealizeWorkspace< EigenMatrix_, I< decltype(*my_matrix)> > > new_known_realize_workspace() const
Definition simple.hpp:175
 
std::unique_ptr< Workspace< EigenVector_ > > new_workspace() const
Definition simple.hpp:145
 
Eigen::Index rows() const
Definition simple.hpp:136
 
Eigen::Index cols() const
Definition simple.hpp:140
 
std::unique_ptr< RealizeWorkspace< EigenMatrix_ > > new_realize_workspace() const
Definition simple.hpp:153
 
std::unique_ptr< SimpleAdjointWorkspace< EigenVector_, I< decltype(*my_matrix)> > > new_known_adjoint_workspace() const
Definition simple.hpp:168
 
Workspace class for realizing a SimpleMatrix.
Definition simple.hpp:84
 
const EigenMatrix_ & realize(EigenMatrix_ &buffer)
Definition simple.hpp:100
 
Workspace class for multiplying a SimpleMatrix.
Definition simple.hpp:28
 
void multiply(const EigenVector_ &right, EigenVector_ &output)
Definition simple.hpp:42
 
Workspace class for multiplying a Matrix.
Definition interface.hpp:24
 
Interfaces for matrix inputs.
 
Implements IRLBA for approximate SVD.
Definition compute.hpp:22