Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 template<typename T1>
00023 inline
00024 void
00025 lu
00026 (
00027 Mat<typename T1::elem_type>& L,
00028 Mat<typename T1::elem_type>& U,
00029 const Base<typename T1::elem_type,T1>& X,
00030 const typename arma_blas_type_only<typename T1::elem_type>::result* junk = 0
00031 )
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 }
00047
00048
00049
00050
00051 template<typename T1>
00052 inline
00053 void
00054 lu
00055 (
00056 Mat<typename T1::elem_type>& L,
00057 Mat<typename T1::elem_type>& U,
00058 Mat<typename T1::elem_type>& P,
00059 const Base<typename T1::elem_type,T1>& X,
00060 const typename arma_blas_type_only<typename T1::elem_type>::result* junk = 0
00061 )
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 }
00080
00081
00082