fn_lu.hpp
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 )
00031 {
00032 arma_extra_debug_sigprint();
00033
00034 typedef typename T1::elem_type eT;
00035
00036 arma_debug_check( (&L == &U), "lu(): L and U are the same object");
00037
00038 const unwrap_check<T1> tmp1(X.get_ref(), L);
00039 const Mat<eT>& A = tmp1.M;
00040
00041 const unwrap_check< Mat<eT> > tmp2(A, U);
00042 const Mat<eT>& B = tmp2.M;
00043
00044 auxlib::lu(L, U, B);
00045 }
00046
00047
00048
00049
00050 template<typename T1>
00051 inline
00052 void
00053 lu
00054 (
00055 Mat<typename T1::elem_type>& L,
00056 Mat<typename T1::elem_type>& U,
00057 Mat<typename T1::elem_type>& P,
00058 const Base<typename T1::elem_type,T1>& X
00059 )
00060 {
00061 arma_extra_debug_sigprint();
00062
00063 typedef typename T1::elem_type eT;
00064
00065 arma_debug_check( ( (&L == &U) || (&L == &P) || (&U == &P) ), "lu(): two or more output objects are the same object");
00066
00067 const unwrap_check<T1> tmp1(X.get_ref(), L);
00068 const Mat<eT>& A = tmp1.M;
00069
00070 const unwrap_check< Mat<eT> > tmp2(A, U);
00071 const Mat<eT>& B = tmp2.M;
00072
00073 const unwrap_check< Mat<eT> > tmp3(B, P);
00074 const Mat<eT>& C = tmp3.M;
00075
00076 auxlib::lu(L, U, P, C);
00077 }
00078
00079
00080