fn_chol.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 bool
00025 chol(Mat<typename T1::elem_type>& out, const Base<typename T1::elem_type,T1>& X)
00026 {
00027 arma_extra_debug_sigprint();
00028
00029 typedef typename T1::elem_type eT;
00030
00031 const unwrap_check<T1> tmp(X.get_ref(), out);
00032 const Mat<eT>& A = tmp.M;
00033
00034 arma_debug_check( (A.is_square() == false), "chol(): given matrix is not square");
00035
00036 return auxlib::chol(out, A);
00037 }
00038
00039
00040
00041 template<typename T1>
00042 inline
00043 Mat<typename T1::elem_type>
00044 chol(const Base<typename T1::elem_type,T1>& X)
00045 {
00046 arma_extra_debug_sigprint();
00047
00048 typedef typename T1::elem_type eT;
00049
00050 Mat<eT> out;
00051
00052 const bool ok = chol(out, X);
00053
00054 if(ok == false)
00055 {
00056 arma_print("chol(): matrix factorisation failed");
00057 }
00058
00059 return out;
00060 }
00061
00062
00063
00064