| 
    irlba
    
   A C++ library for IRLBA 
   | 
 
Deferred scaling of a matrix. More...
#include <scaled.hpp>


Public Member Functions | |
| ScaledMatrix (const MatrixPointer_ &matrix, const ScalePointer_ &scale, bool column, bool divide) | |
| 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< ScaledWorkspace< EigenVector_, I< decltype(*my_matrix)>, I< decltype(*my_scale)> > > | new_known_workspace () const | 
| std::unique_ptr< ScaledAdjointWorkspace< EigenVector_, I< decltype(*my_matrix)>, I< decltype(*my_scale)> > > | new_known_adjoint_workspace () const | 
| std::unique_ptr< ScaledRealizeWorkspace< EigenMatrix_, I< decltype(*my_matrix)>, I< decltype(*my_scale)> > > | 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 | 
Deferred scaling of a matrix.
| 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_.  | 
| MatrixPointer_ | Pointer to an instance of a class satisfying the Matrix interface. This can be a smart or raw pointer.  | 
| ScalePointer_ | Pointer to an instance of an Eigen vector class to hold the scaling facrors. This can be a smart or raw pointer. | 
This class computes the matrix-vector product after scaling all rows or columns in the matrix, i.e., multiplying or dividing the values of each row/column by some arbitrary value. For example, we can use this to divide each column by the standard deviation to achieve unit variance in principal components analyses. Naively doing such an operation would involve a copy of the matrix, which we avoid by deferring the scaling into the subspace defined by rhs. 
      
  | 
  inline | 
| matrix | Pointer to a matrix to be column-scaled (if column_ = true) or row-scaled (otherwise).  | 
| scale | Pointer to a vector of length equal to the number of columns (if column_ = true) or rows (otherwise) of matrix, containing the scaling factor to divide (if divide = true) or multiply (otherwise) to each column/row.  | 
| column | Whether to multiply/divide each column of matrix by the corresponding factor in scale. If false, each row of matrix is scaled instead.  | 
| divide | Whether to divide by the supplied scaling factors. If false, multiplication is performed instead.  | 
      
  | 
  inlinevirtual | 
Implements irlba::Matrix< EigenVector_, EigenMatrix_ >.
      
  | 
  inlinevirtual | 
Matrix. Implements irlba::Matrix< EigenVector_, EigenMatrix_ >.
      
  | 
  inline | 
Overrides Matrix::new_known_adjoint_workspace() to enable devirtualization. 
      
  | 
  inline | 
Overrides Matrix::new_known_realize_workspace() to enable devirtualization. 
      
  | 
  inline | 
Overrides Matrix::new_known_workspace() to enable devirtualization. 
      
  | 
  inlinevirtual | 
Matrix. Implements irlba::Matrix< EigenVector_, EigenMatrix_ >.
      
  | 
  inlinevirtual | 
Matrix. Implements irlba::Matrix< EigenVector_, EigenMatrix_ >.
      
  | 
  inlinevirtual | 
Implements irlba::Matrix< EigenVector_, EigenMatrix_ >.