Kernel Quantum Probability Library
The KQP library aims at providing tools for working with quantums probabilities
Public Member Functions | Protected Member Functions
kqp::KernelEVD< Scalar > Class Template Referenceabstract

Builds a compact representation of an hermitian operator. More...

#include <kernel_evd.hpp>

Inheritance diagram for kqp::KernelEVD< Scalar >:
kqp::KernelEVDBase kqp::AccumulatorKernelEVD< Scalar, can_linearly_combine > kqp::AccumulatorKernelEVD< Scalar, false > kqp::AccumulatorKernelEVD< Scalar, true > kqp::DenseDirectBuilder< Scalar > kqp::DivideAndConquerBuilder< Scalar > kqp::IncrementalKernelEVD< Scalar >

Public Member Functions

 KQP_SCALAR_TYPEDEFS (Scalar)
 
 KernelEVD (const FSpaceCPtr &featureSpace)
 
virtual void add (Real alpha, const FMatrixCPtr &mX, const ScalarAltMatrix &mA)
 Rank-n update.
 
void add (const FMatrixCPtr &mU)
 Rank-n update.
 
Decomposition< Scalar > getDecomposition () const
 
virtual void reset ()
 Resets the state of the builder.
 
Index getUpdateCount () const
 Return the number of updates.
 
const FSpaceCPtr & getFSpace () const
 

Protected Member Functions

virtual void _add (Real alpha, const FMatrixCPtr &mU, const ScalarAltMatrix &mA)=0
 Rank-n update.
 
virtual Decomposition< Scalar > _getDecomposition () const =0
 

Detailed Description

template<class Scalar>
class kqp::KernelEVD< Scalar >

Builds a compact representation of an hermitian operator.

Computes \( \mathfrak{U} = \sum_{i} \alpha_i \mathcal U A A^\top \mathcal U ^ \top \) as \( {\mathcal X}^\dagger Y^\dagger D Y \mathcal X \) where \(D\) is a diagonal matrix and \( \mathcal X Y \) is an orthonormal matrix, i.e. \( \mathcal Y^\dagger {\mathcal X}^\dagger \mathcal X Y \) is the identity.

Author
B. Piwowarski benja.nosp@m.min@.nosp@m.bpiwo.nosp@m.war..nosp@m.net
Parameters
<FMatrix>The type of the base vectors in the original space

Member Function Documentation

template<class Scalar>
virtual void kqp::KernelEVD< Scalar >::_add ( Real  alpha,
const FMatrixCPtr &  mU,
const ScalarAltMatrix &  mA 
)
protectedpure virtual

Rank-n update.

Updates the current decomposition to \(A^\prime \approx A + \alpha X A A^T X^\top\)

Parameters
alphaThe coefficient for the update
mXThe feature matrix X with n feature vectors.
mAThe mixture matrix (of dimensions n x k).

Implemented in kqp::AccumulatorKernelEVD< Scalar, false >, kqp::DivideAndConquerBuilder< Scalar >, kqp::IncrementalKernelEVD< Scalar >, kqp::DenseDirectBuilder< Scalar >, and kqp::AccumulatorKernelEVD< Scalar, true >.

template<class Scalar>
virtual Decomposition<Scalar> kqp::KernelEVD< Scalar >::_getDecomposition ( ) const
protectedpure virtual
template<class Scalar>
virtual void kqp::KernelEVD< Scalar >::add ( Real  alpha,
const FMatrixCPtr &  mX,
const ScalarAltMatrix &  mA 
)
inlinevirtual

Rank-n update.

Updates the current decomposition to \(A^\prime \approx A + \alpha X A A^T X^\top\)

Parameters
alphaThe coefficient for the update
mXThe feature matrix X with n feature vectors.
mAThe mixture matrix (of dimensions n x k).
template<class Scalar>
void kqp::KernelEVD< Scalar >::add ( const FMatrixCPtr &  mU)
inline

Rank-n update.

Updates the current decomposition to \(A^\prime \approx A + X X^\top\)

template<class Scalar>
Decomposition<Scalar> kqp::KernelEVD< Scalar >::getDecomposition ( ) const
inline

Get the current decomposition


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