24 #ifndef SVD_EIGEN_HH_HPP 25 #define SVD_EIGEN_HH_HPP 31 using namespace Eigen;
35 inline double PYTHAG(
double a,
double b) {
41 return at*
sqrt(1.0+ct*ct);
47 return bt*
sqrt(1.0+ct*ct);
53 inline double SIGN(
double a,
double b) {
54 return ((b) >= 0.0 ? fabs(a) : -fabs(a));
69 int svd_eigen_HH(
const MatrixXd& A,MatrixXd& U,VectorXd& S,MatrixXd& V,VectorXd& tmp,
int maxiter=150,
double epsilon=1e-300);
double SIGN(double a, double b)
int svd_eigen_HH(const MatrixXd &A, MatrixXd &U, VectorXd &S, MatrixXd &V, VectorXd &tmp, int maxiter, double epsilon)
double epsilon
default precision while comparing with Equal(..,..) functions. Initialized at 0.0000001.
INLINE Rall1d< T, V, S > sqrt(const Rall1d< T, V, S > &arg)
double PYTHAG(double a, double b)