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. |
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().
00032 { 00033 arma_extra_debug_sigprint(); 00034 00035 typedef typename T1::elem_type eT; 00036 00037 arma_debug_check( (&Q == &R), "qr(): Q and R are the same object"); 00038 00039 const unwrap_check<T1> tmp1(X.get_ref(), Q); 00040 const Mat<eT>& A = tmp1.M; 00041 00042 const unwrap_check< Mat<eT> > tmp2(A, R); 00043 const Mat<eT>& B = tmp2.M; 00044 00045 const bool ok = auxlib::qr(Q, R, B); 00046 00047 if(ok == false) 00048 { 00049 Q.reset(); 00050 R.reset(); 00051 arma_print("qr(): factorisation failed"); 00052 } 00053 00054 }