Functions

Fn_qr

//! More...

Functions

template<typename T1 >
void qr (Mat< typename T1::elem_type > &Q, Mat< typename T1::elem_type > &R, const Base< typename T1::elem_type, T1 > &X, const typename arma_blas_type_only< typename T1::elem_type >::result *junk=0)
 QR decomposition.

Detailed Description

//!


Function Documentation

template<typename T1 >
void qr ( Mat< typename T1::elem_type > &  Q,
Mat< typename T1::elem_type > &  R,
const Base< typename T1::elem_type, T1 > &  X,
const typename arma_blas_type_only< typename T1::elem_type >::result *  junk = 0 
) [inline]

QR decomposition.

Definition at line 26 of file fn_qr.hpp.

References arma_print(), Base< elem_type, derived >::get_ref(), unwrap_check< T1 >::M, auxlib::qr(), and Mat< eT >::reset().

  {
  arma_extra_debug_sigprint();
  
  typedef typename T1::elem_type eT;

  arma_debug_check( (&Q == &R), "qr(): Q and R are the same object");
  
  const unwrap_check<T1> tmp1(X.get_ref(), Q);
  const Mat<eT>&     A = tmp1.M;
  
  const unwrap_check< Mat<eT> > tmp2(A, R);
  const Mat<eT>&            B = tmp2.M;
  
  const bool ok = auxlib::qr(Q, R, B);
  
  if(ok == false)
    {
    Q.reset();
    R.reset();
    arma_print("qr(): factorisation failed");
    }
  
  }