Fn_lu

Functions

template<typename T1 >
void lu (Mat< typename T1::elem_type > &L, Mat< typename T1::elem_type > &U, const Base< typename T1::elem_type, T1 > &X, const typename arma_blas_type_only< typename T1::elem_type >::result *junk=0)
 immediate lower upper decomposition
template<typename T1 >
void lu (Mat< typename T1::elem_type > &L, Mat< typename T1::elem_type > &U, Mat< typename T1::elem_type > &P, const Base< typename T1::elem_type, T1 > &X, const typename arma_blas_type_only< typename T1::elem_type >::result *junk=0)
 immediate lower upper decomposition, also providing the permutation matrix

Function Documentation

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

immediate lower upper decomposition

Definition at line 26 of file fn_lu.hpp.

References Base< elem_type, derived >::get_ref(), auxlib::lu(), and unwrap_check< T1 >::M.

00032   {
00033   arma_extra_debug_sigprint();
00034   
00035   typedef typename T1::elem_type eT;
00036   
00037   arma_debug_check( (&L == &U), "lu(): L and U are the same object");
00038   
00039   const unwrap_check<T1> tmp1(X.get_ref(), L);
00040   const Mat<eT>&     A = tmp1.M;
00041   
00042   const unwrap_check< Mat<eT> > tmp2(A, U);
00043   const Mat<eT>&            B = tmp2.M;
00044   
00045   auxlib::lu(L, U, B);
00046   }

template<typename T1 >
void lu ( Mat< typename T1::elem_type > &  L,
Mat< typename T1::elem_type > &  U,
Mat< typename T1::elem_type > &  P,
const Base< typename T1::elem_type, T1 > &  X,
const typename arma_blas_type_only< typename T1::elem_type >::result *  junk = 0 
) [inline]

immediate lower upper decomposition, also providing the permutation matrix

Definition at line 55 of file fn_lu.hpp.

References Base< elem_type, derived >::get_ref(), auxlib::lu(), and unwrap_check< T1 >::M.

00062   {
00063   arma_extra_debug_sigprint();
00064   
00065   typedef typename T1::elem_type eT;
00066   
00067   arma_debug_check( ( (&L == &U) || (&L == &P) || (&U == &P) ), "lu(): two or more output objects are the same object");
00068 
00069   const unwrap_check<T1> tmp1(X.get_ref(), L);
00070   const Mat<eT>&     A = tmp1.M;
00071   
00072   const unwrap_check< Mat<eT> > tmp2(A, U);
00073   const Mat<eT>&            B = tmp2.M;
00074   
00075   const unwrap_check< Mat<eT> > tmp3(B, P);
00076   const Mat<eT>&            C = tmp3.M;
00077   
00078   auxlib::lu(L, U, P, C);
00079   }