Skylark (Sketching Library)  0.1
Public Member Functions
skylark::nla::randsvd_t< SketchTransform > Struct Template Reference

#include <RandSVD.hpp>

List of all members.

Public Member Functions

template<typename InputMatrixType , typename UMatrixType , typename SingularValuesMatrixType , typename VMatrixType >
void operator() (InputMatrixType &A, int target_rank, UMatrixType &U, SingularValuesMatrixType &SV, VMatrixType &V, rand_svd_params_t params, skylark::base::context_t &context)

Detailed Description

template<template< typename, typename > class SketchTransform>
struct skylark::nla::randsvd_t< SketchTransform >

Definition at line 36 of file RandSVD.hpp.


Member Function Documentation

template<template< typename, typename > class SketchTransform>
template<typename InputMatrixType , typename UMatrixType , typename SingularValuesMatrixType , typename VMatrixType >
void skylark::nla::randsvd_t< SketchTransform >::operator() ( InputMatrixType &  A,
int  target_rank,
UMatrixType &  U,
SingularValuesMatrixType &  SV,
VMatrixType &  V,
rand_svd_params_t  params,
skylark::base::context_t context 
) [inline]

Sanity checks, raise an exception if: i) the target rank is too large for the given input matrix or ii) the number of columns of the sketched matrix either:

  • exceeds its width or
  • is less than the target rank

Apply sketch transformation on the input matrix

The three steps of the sketched svd approach follow:

  • apply sketching
  • approximate range of A (find Q)
  • SVD

Q = QR(Q)

q steps of subspace iteration

Q = QR(A^T * Q)

SVD of projected A and then project-back left singular vectors

Definition at line 42 of file RandSVD.hpp.

References skylark::sketch::c::CWT, skylark::sketch::c::FJLT, skylark::base::Gemm(), skylark::sketch::c::JLT, min(), skylark::nla::rand_svd_params_t::num_iterations, skylark::nla::rand_svd_params_t::oversampling, skylark::nla::rand_svd_params_t::skip_qr, SKYLARK_THROW_EXCEPTION, and skylark::nla::rand_svd_params_t::transform.

Here is the call graph for this function:


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