Classes | Functions

Op_princomp_cov

//! More...

Classes

class  op_princomp_cov

Functions

template<typename eT >
static void op_princomp_cov::direct_princomp_cov (Mat< eT > &coeff_out, Col< eT > &latent_out, Col< eT > &explained_out, const Mat< eT > &in)
 //! principal component analysis of a covariance matrix -- 3 arguments version //! computation is done via singular value decomposition //! coeff_out -> principal component coefficients //! latent_out -> principal component variances //! explained_out -> percentage of the total variance explained by each principal component
template<typename eT >
static void op_princomp_cov::direct_princomp_cov (Mat< eT > &coeff_out, Col< eT > &latent_out, const Mat< eT > &in)
 //! principal component analysis of a covariance matrix -- 2 arguments version //! computation is done via singular value decomposition //! coeff_out -> principal component coefficients //! latent_out -> principal component variances
template<typename eT >
static void op_princomp_cov::direct_princomp_cov (Mat< eT > &coeff_out, const Mat< eT > &in)
 //! principal component analysis of a covariance matrix -- 1 argument version //! computation is done via singular value decomposition //! coeff_out -> principal component coefficients
template<typename T >
static void op_princomp_cov::direct_princomp_cov (Mat< std::complex< T > > &coeff_out, Col< T > &latent_out, Col< T > &explained_out, const Mat< std::complex< T > > &in)
 //! principal component analysis of a covariance matrix -- 3 arguments complex version //! computation is done via singular value decomposition //! coeff_out -> principal component coefficients //! latent_out -> principal component variances //! explained_out -> percentage of the total variance explained by each principal component
template<typename T >
static void op_princomp_cov::direct_princomp_cov (Mat< std::complex< T > > &coeff_out, Col< T > &latent_out, const Mat< std::complex< T > > &in)
 //! principal component analysis of a covariance matrix -- 2 arguments complex version //! computation is done via singular value decomposition //! coeff_out -> principal component coefficients //! latent_out -> principal component variances
template<typename T >
static void op_princomp_cov::direct_princomp_cov (Mat< std::complex< T > > &coeff_out, const Mat< std::complex< T > > &in)
 //! principal component analysis of a covariance matrix -- 1 argument complex version //! computation is done via singular value decomposition //! coeff_out -> principal component coefficients
template<typename T1 >
static void op_princomp_cov::apply (Mat< typename T1::elem_type > &out, const Op< T1, op_princomp_cov > &in)

Detailed Description

//!


Function Documentation

template<typename eT >
void op_princomp_cov::direct_princomp_cov ( Mat< eT > &  coeff_out,
Col< eT > &  latent_out,
Col< eT > &  explained_out,
const Mat< eT > &  in 
) [inline, static, inherited]

//! principal component analysis of a covariance matrix -- 3 arguments version //! computation is done via singular value decomposition //! coeff_out -> principal component coefficients //! latent_out -> principal component variances //! explained_out -> percentage of the total variance explained by each principal component

Definition at line 33 of file op_princomp_cov_meat.hpp.

References arma_print(), cov(), Mat< eT >::reset(), sum(), and svd().

  {
  arma_extra_debug_sigprint();
  
  // computation of the covariance matrix
  const Mat<eT> in_cov = cov(in);
  
  // singular value decomposition
  Mat<eT> U;

  const bool svd_ok = svd(U, latent_out, coeff_out, in_cov);
    
  if(svd_ok == false)
    {
    arma_print("princomp_cov(): singular value decomposition failed");
      
    coeff_out.reset();
    latent_out.reset();
    explained_out.reset();
      
    return;
    }
  
  explained_out =  (eT(100) * latent_out) / sum(latent_out);
  }

template<typename eT >
void op_princomp_cov::direct_princomp_cov ( Mat< eT > &  coeff_out,
Col< eT > &  latent_out,
const Mat< eT > &  in 
) [inline, static, inherited]

//! principal component analysis of a covariance matrix -- 2 arguments version //! computation is done via singular value decomposition //! coeff_out -> principal component coefficients //! latent_out -> principal component variances

Definition at line 75 of file op_princomp_cov_meat.hpp.

References arma_print(), cov(), Mat< eT >::reset(), and svd().

  {
  arma_extra_debug_sigprint();
  
  // computation of the covariance matrix
  const Mat<eT> in_cov = cov(in);
  
  // singular value decomposition
  Mat<eT> U;

  const bool svd_ok = svd(U, latent_out, coeff_out, in_cov);
    
  if(svd_ok == false)
    {
    arma_print("princomp_cov(): singular value decomposition failed");
      
    coeff_out.reset();
    latent_out.reset();
      
    return;
    }

  }

template<typename eT >
void op_princomp_cov::direct_princomp_cov ( Mat< eT > &  coeff_out,
const Mat< eT > &  in 
) [inline, static, inherited]

//! principal component analysis of a covariance matrix -- 1 argument version //! computation is done via singular value decomposition //! coeff_out -> principal component coefficients

Definition at line 113 of file op_princomp_cov_meat.hpp.

References arma_print(), cov(), Mat< eT >::reset(), and svd().

Referenced by apply(), and princomp_cov().

  {
  arma_extra_debug_sigprint();
  
  // computation of the covariance matrix
  const Mat<eT> in_cov = cov(in);
  
  // singular value decomposition
  Mat<eT> U;
  Col<eT> s;

  const bool svd_ok = svd(U, s, coeff_out, in_cov);
    
  if(svd_ok == false)
    {
    arma_print("princomp_cov(): singular value decomposition failed");
      
    coeff_out.reset();
     
    return;
    }
  
  }

template<typename T >
void op_princomp_cov::direct_princomp_cov ( Mat< std::complex< T > > &  coeff_out,
Col< T > &  latent_out,
Col< T > &  explained_out,
const Mat< std::complex< T > > &  in 
) [inline, static, inherited]

//! principal component analysis of a covariance matrix -- 3 arguments complex version //! computation is done via singular value decomposition //! coeff_out -> principal component coefficients //! latent_out -> principal component variances //! explained_out -> percentage of the total variance explained by each principal component

Definition at line 152 of file op_princomp_cov_meat.hpp.

References arma_print(), cov(), Mat< eT >::reset(), sum(), and svd().

  {
  arma_extra_debug_sigprint();
  
  typedef std::complex<T> eT;
  
  // computation of the covariance matrix
  const Mat<eT> in_cov = cov(in);
  
  // singular value decomposition
  Mat<eT> U;

  const bool svd_ok = svd(U, latent_out, coeff_out, in_cov);
    
  if(svd_ok == false)
    {
    arma_print("princomp_cov(): singular value decomposition failed");
      
    coeff_out.reset();
    latent_out.reset();
    explained_out.reset();
      
    return;
    }
  
  explained_out =  (T(100) * latent_out) / sum(latent_out);
  }

template<typename T >
void op_princomp_cov::direct_princomp_cov ( Mat< std::complex< T > > &  coeff_out,
Col< T > &  latent_out,
const Mat< std::complex< T > > &  in 
) [inline, static, inherited]

//! principal component analysis of a covariance matrix -- 2 arguments complex version //! computation is done via singular value decomposition //! coeff_out -> principal component coefficients //! latent_out -> principal component variances

Definition at line 196 of file op_princomp_cov_meat.hpp.

References arma_print(), cov(), Mat< eT >::reset(), and svd().

  {
  arma_extra_debug_sigprint();
  
  typedef std::complex<T> eT;
  
  // computation of the covariance matrix
  const Mat<eT> in_cov = cov(in);
  
  // singular value decomposition
  Mat<eT> U;

  const bool svd_ok = svd(U, latent_out, coeff_out, in_cov);
    
  if(svd_ok == false)
    {
    arma_print("princomp_cov(): singular value decomposition failed");
      
    coeff_out.reset();
    latent_out.reset();
      
    return;
    }

  }

template<typename T >
void op_princomp_cov::direct_princomp_cov ( Mat< std::complex< T > > &  coeff_out,
const Mat< std::complex< T > > &  in 
) [inline, static, inherited]

//! principal component analysis of a covariance matrix -- 1 argument complex version //! computation is done via singular value decomposition //! coeff_out -> principal component coefficients

Definition at line 236 of file op_princomp_cov_meat.hpp.

References arma_print(), cov(), Mat< eT >::reset(), and svd().

  {
  arma_extra_debug_sigprint();
  
  typedef std::complex<T> eT;
  
  // computation of the covariance matrix
  const Mat<eT> in_cov = cov(in);
  
  // singular value decomposition
  Mat<eT> U;
  Col<T> s;

  const bool svd_ok = svd(U, s, coeff_out, in_cov);
    
  if(svd_ok == false)
    {
    arma_print("princomp_cov(): singular value decomposition failed");
      
    coeff_out.reset();
      
    return;
    }
  
  }

template<typename T1 >
void op_princomp_cov::apply ( Mat< typename T1::elem_type > &  out,
const Op< T1, op_princomp_cov > &  in 
) [inline, static, inherited]

Definition at line 271 of file op_princomp_cov_meat.hpp.

References direct_princomp_cov(), unwrap_check< T1 >::M, and Op< T1, op_type >::m.

  {
  arma_extra_debug_sigprint();
  
  typedef typename T1::elem_type eT;
  
  const unwrap_check<T1> tmp(in.m, out);
  const Mat<eT>& A     = tmp.M;
  
  op_princomp_cov::direct_princomp_cov(out, A);  
  }