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

#include <evd_update.hpp>

Public Types

typedef Eigen::NumTraits
< Scalar >::Real 
Real
 
typedef Eigen::Matrix< Real,
Dynamic, 1 > 
RealVector
 
typedef Eigen::Matrix< Real,
Dynamic, 1 > 
ScalarVector
 
typedef Eigen::Matrix< Scalar,
Dynamic, Dynamic > 
ScalarMatrix
 

Public Member Functions

 FastRankOneUpdate ()
 
void update (const RealVector &D, double rho, const Eigen::Matrix< Scalar, Dynamic, 1 > &z, bool computeEigenvectors, const Selector< Real > *selector, bool keep, EvdUpdateResult< Scalar > &result, ScalarMatrix *Z=0)
 Rank one update.
 

Detailed Description

template<typename Scalar>
class kqp::FastRankOneUpdate< Scalar >

Maximum rank Fast rank one update of an EVD

Constructor & Destructor Documentation

template<typename Scalar >
kqp::FastRankOneUpdate< Scalar >::FastRankOneUpdate ( )

Default constructor

Member Function Documentation

template<typename Scalar>
void kqp::FastRankOneUpdate< Scalar >::update ( const RealVector &  D,
double  rho,
const Eigen::Matrix< Scalar, Dynamic, 1 > &  z,
bool  computeEigenvectors,
const Selector< Real > *  selector,
bool  keep,
EvdUpdateResult< Scalar > &  result,
ScalarMatrix *  Z = 0 
)

Rank one update.

Computes the EVD of a rank-one perturbed eigenvalue decomposition \( Z(D + \rho z z^\dagger) \) where \(D\) is a diagonal matrix with real values and \(z\) is a vector (complex or real field).

Parameters
ZIf given, instead of returning the eigenvectors matrix Q, update \(Z\) as \( Z Q \) This allows to compute the eigenvalue decomposition of \( Z (D + \alpha z * z^\dagger) Z^\dagger \)
Dthe diagonal matrix (all the values must be real)
rhothe coefficient
keepKeep all the eigenvectors (even those of the not selected eigenvalues)

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