xerus
a general purpose tensor library
xerus::SVD Class Reference

Helper class to allow an intuitive syntax for SVD factorisations. More...

#include <indexedTensor_tensor_factorisations.h>

Inheritance diagram for xerus::SVD:
Collaboration diagram for xerus::SVD:

Public Member Functions

 SVD (internal::IndexedTensorReadOnly< Tensor > &&_input)
 
 SVD (internal::IndexedTensorReadOnly< Tensor > &&_input, const double _softTreshold, const bool _preventZero=false)
 
 SVD (internal::IndexedTensorReadOnly< Tensor > &&_input, const size_t _maxRank, const double _epsilon=EPSILON)
 
 SVD (internal::IndexedTensorReadOnly< Tensor > &&_input, const size_t _maxRank, const double _epsilon, const double _softTreshold, const bool _preventZero)
 
virtual void operator() (const std::vector< internal::IndexedTensor< Tensor > *> &_output) const override
 
- Public Member Functions inherited from xerus::TensorFactorisation
virtual ~TensorFactorisation ()=default
 

Public Attributes

const double epsilon
 
internal::IndexedTensorReadOnly< Tensor > * input
 
const size_t maxRank
 
const bool preventZero
 
const double softThreshold
 

Detailed Description

Helper class to allow an intuitive syntax for SVD factorisations.

The simplest example is (U(i,r1), S(r1,r2), Vt(r2,j)) = SVD(A(i,j)) to calculate the SVD of A. However A, U, S and Vt can also be a higher order Tensors. In order to calculate the SVD however a matrification imposed by the index order is used.

Definition at line 55 of file indexedTensor_tensor_factorisations.h.

Constructor & Destructor Documentation

◆ SVD() [1/4]

xerus::SVD::SVD ( internal::IndexedTensorReadOnly< Tensor > &&  _input)
inline

Definition at line 63 of file indexedTensor_tensor_factorisations.h.

◆ SVD() [2/4]

xerus::SVD::SVD ( internal::IndexedTensorReadOnly< Tensor > &&  _input,
const double  _softTreshold,
const bool  _preventZero = false 
)
inline

Definition at line 66 of file indexedTensor_tensor_factorisations.h.

◆ SVD() [3/4]

xerus::SVD::SVD ( internal::IndexedTensorReadOnly< Tensor > &&  _input,
const size_t  _maxRank,
const double  _epsilon = EPSILON 
)
inline

Definition at line 69 of file indexedTensor_tensor_factorisations.h.

◆ SVD() [4/4]

xerus::SVD::SVD ( internal::IndexedTensorReadOnly< Tensor > &&  _input,
const size_t  _maxRank,
const double  _epsilon,
const double  _softTreshold,
const bool  _preventZero 
)
inline

Definition at line 72 of file indexedTensor_tensor_factorisations.h.

Member Function Documentation

◆ operator()()

void xerus::SVD::operator() ( const std::vector< internal::IndexedTensor< Tensor > *> &  _output) const
overridevirtual

Member Data Documentation

◆ epsilon

const double xerus::SVD::epsilon

Definition at line 58 of file indexedTensor_tensor_factorisations.h.

◆ input

Definition at line 57 of file indexedTensor_tensor_factorisations.h.

◆ maxRank

const size_t xerus::SVD::maxRank

Definition at line 60 of file indexedTensor_tensor_factorisations.h.

◆ preventZero

const bool xerus::SVD::preventZero

Definition at line 61 of file indexedTensor_tensor_factorisations.h.

◆ softThreshold

const double xerus::SVD::softThreshold

Definition at line 59 of file indexedTensor_tensor_factorisations.h.


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