auxlib_proto.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
00023 class auxlib
00024 {
00025 public:
00026
00027
00028
00029
00030 template<typename eT>
00031 inline static bool inv_noalias(Mat<eT>& out, const Mat<eT>& X);
00032
00033 template<typename eT>
00034 inline static bool inv_inplace(Mat<eT>& X);
00035
00036
00037
00038
00039
00040 template<typename eT>
00041 inline static eT det(const Mat<eT>& X);
00042
00043 template<typename eT>
00044 inline static void log_det(eT& out_val, typename get_pod_type<eT>::result& out_sign, const Mat<eT>& X);
00045
00046
00047
00048
00049
00050 template<typename eT>
00051 inline static void lu(Mat<eT>& L, Mat<eT>& U, podarray<int>& ipiv, const Mat<eT>& X_orig);
00052
00053 template<typename eT>
00054 inline static void lu(Mat<eT>& L, Mat<eT>& U, Mat<eT>& P, const Mat<eT>& X);
00055
00056 template<typename eT>
00057 inline static void lu(Mat<eT>& L, Mat<eT>& U, const Mat<eT>& X);
00058
00059
00060
00061
00062
00063 template<typename eT>
00064 inline static void eig_sym(Col<eT>& eigval, const Mat<eT>& A);
00065
00066 template<typename T>
00067 inline static void eig_sym(Col<T>& eigval, const Mat< std::complex<T> >& A);
00068
00069 template<typename eT>
00070 inline static void eig_sym(Col<eT>& eigval, Mat<eT>& eigvec, const Mat<eT>& A);
00071
00072 template<typename T>
00073 inline static void eig_sym(Col<T>& eigval, Mat< std::complex<T> >& eigvec, const Mat< std::complex<T> >& A);
00074
00075 template<typename eT>
00076 inline static void eig_gen(Col< std::complex<eT> >& eigval, Mat<eT>& l_eigvec, Mat<eT>& r_eigvec, const Mat<eT>& A, const char side);
00077
00078 template<typename T>
00079 inline static void eig_gen(Col< std::complex<T> >& eigval, Mat< std::complex<T> >& l_eigvec, Mat< std::complex<T> >& r_eigvec, const Mat< std::complex<T> >& A, const char side);
00080
00081
00082
00083
00084 template<typename eT>
00085 inline static bool chol(Mat<eT>& out, const Mat<eT>& X);
00086
00087
00088
00089
00090
00091 template<typename eT>
00092 inline static bool qr(Mat<eT>& Q, Mat<eT>& R, const Mat<eT>& X);
00093
00094
00095
00096
00097
00098 template<typename eT>
00099 inline static bool svd(Col<eT>& S, const Mat<eT>& X);
00100
00101 template<typename T>
00102 inline static bool svd(Col<T>& S, const Mat< std::complex<T> >& X);
00103
00104 template<typename eT>
00105 inline static bool svd(Mat<eT>& U, Col<eT>& S, Mat<eT>& V, const Mat<eT>& X);
00106
00107 template<typename T>
00108 inline static bool svd(Mat< std::complex<T> >& U, Col<T>& S, Mat< std::complex<T> >& V, const Mat< std::complex<T> >& X);
00109
00110
00111
00112
00113 template<typename eT>
00114 inline static bool solve(Mat<eT>& out, const Mat<eT>& A, const Mat<eT>& B);
00115
00116 template<typename eT>
00117 inline static bool solve_od(Mat<eT>& out, const Mat<eT>& A, const Mat<eT>& B);
00118
00119 template<typename eT>
00120 inline static bool solve_ud(Mat<eT>& out, const Mat<eT>& A, const Mat<eT>& B);
00121
00122 };
00123
00124
00125