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