Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00016
00017
00018
00020 template<typename T1>
00021 inline
00022 bool
00023 lu
00024 (
00025 Mat<typename T1::elem_type>& L,
00026 Mat<typename T1::elem_type>& U,
00027 const Base<typename T1::elem_type,T1>& X,
00028 const typename arma_blas_type_only<typename T1::elem_type>::result* junk = 0
00029 )
00030 {
00031 arma_extra_debug_sigprint();
00032 arma_ignore(junk);
00033
00034 arma_debug_check( (&L == &U), "lu(): L and U are the same object");
00035
00036 const bool status = auxlib::lu(L, U, X);
00037
00038 if(status == false)
00039 {
00040 L.reset();
00041 U.reset();
00042 arma_bad("lu(): failed to converge", false);
00043 }
00044
00045 return status;
00046 }
00047
00048
00049
00051 template<typename T1>
00052 inline
00053 bool
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 arma_ignore(junk);
00065
00066 arma_debug_check( ( (&L == &U) || (&L == &P) || (&U == &P) ), "lu(): two or more output objects are the same object");
00067
00068 const bool status = auxlib::lu(L, U, P, X);
00069
00070 if(status == false)
00071 {
00072 L.reset();
00073 U.reset();
00074 P.reset();
00075 arma_bad("lu(): failed to converge", false);
00076 }
00077
00078 return status;
00079 }
00080
00081
00082