Home | History | Annotate | Download | only in Eigenvalues

Lines Matching full:scalar

33   template<typename Scalar, typename RealScalar> struct arpack_wrapper;
34 template<typename MatrixSolver, typename MatrixType, typename Scalar, bool BisSPD> struct OP;
45 /** \brief Scalar type for matrices of type \p MatrixType. */
46 typedef typename MatrixType::Scalar Scalar;
49 /** \brief Real scalar type for \p MatrixType.
51 * This is just \c Scalar if #Scalar is real (e.g., \c float or
52 * \c Scalar), and the type of the real part of \c Scalar if #Scalar is
55 typedef typename NumTraits<Scalar>::Real RealScalar;
223 const Matrix<Scalar, Dynamic, Dynamic>& eigenvectors() const
245 const Matrix<Scalar, Dynamic, 1>& eigenvalues() const
269 Matrix<Scalar, Dynamic, Dynamic> operatorSqrt() const
294 Matrix<Scalar, Dynamic, Dynamic> operatorInverseSqrt() const
318 Matrix<Scalar, Dynamic, Dynamic> m_eivec;
319 Matrix<Scalar, Dynamic, 1> m_eivalues;
395 // If it's not scalar values, then the user may be explicitly
427 Scalar *resid = new Scalar[n];
437 Scalar *v = new Scalar[n*ncv];
442 Scalar *workd = new Scalar[3*n];
444 Scalar *workl = new Scalar[lworkl];
461 Scalar scale = 1.0;
464 //Scalar scale = B.norm() / std::sqrt(n);
509 internal::arpack_wrapper<Scalar, RealScalar>::saupd(&ido, bmat, &n, whch, &nev, &tol, resid,
515 Scalar *in = workd + ipntr[0] - 1;
516 Scalar *out = workd + ipntr[1] - 1;
520 Scalar *out2 = workd + ipntr[2] - 1;
522 Matrix<Scalar, Dynamic, 1>::Map(out2, n) = Matrix<Scalar, Dynamic, 1>::Map(in, n);
524 Matrix<Scalar, Dynamic, 1>::Map(out2, n) = B * Matrix<Scalar, Dynamic, 1>::Map(in, n);
535 Matrix<Scalar, Dynamic, 1>::Map(out, n) = A * Matrix<Scalar, Dynamic, 1>::Map(in, n);
541 internal::OP<MatrixSolver, MatrixType, Scalar, BisSPD>::applyOP(OP, A, n, in, out);
547 Matrix<Scalar, Dynamic, 1>::Map(in, n) = A * Matrix<Scalar, Dynamic, 1>::Map(in, n);
551 Matrix<Scalar, Dynamic, 1>::Map(out, n) = OP.solve(Matrix<Scalar, Dynamic, 1>::Map(in, n));
559 Matrix<Scalar, Dynamic, 1>::Map(out, n) = OP.solve(Matrix<Scalar, Dynamic, 1>::Map(in, n));
561 Matrix<Scalar, Dynamic, 1>::Map(out, n) = OP.solve(B * Matrix<Scalar, Dynamic, 1>::Map(in, n));
566 Scalar *in = workd + ipntr[0] - 1;
567 Scalar *out = workd + ipntr[1] - 1;
570 Matrix<Scalar, Dynamic, 1>::Map(out, n) = Matrix<Scalar, Dynamic, 1>::Map(in, n);
572 Matrix<Scalar, Dynamic, 1>::Map(out, n) = B * Matrix<Scalar, Dynamic, 1>::Map(in, n);
602 internal::arpack_wrapper<Scalar, RealScalar>::seupd(&rvec, howmny, select, m_eivalues.data(), v, &ldv,
620 internal::OP<MatrixSolver, MatrixType, Scalar, BisSPD>::project(OP, n, nev, m_eivec.data());
680 template<typename Scalar, typename RealScalar> struct arpack_wrapper
683 int *nev, RealScalar *tol, Scalar *resid, int *ncv,
684 Scalar *v, int *ldv, int *iparam, int *ipntr,
685 Scalar *workd, Scalar *workl, int *lworkl, int *info)
687 EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL)
690 static inline void seupd(int *rvec, char *All, int *select, Scalar *d,
691 Scalar *z, int *ldz, RealScalar *sigma,
693 RealScalar *tol, Scalar *resid, int *ncv, Scalar *v,
694 int *ldv, int *iparam, int *ipntr, Scalar *workd,
695 Scalar *workl, int *lworkl, int *ierr)
697 EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL)
746 template<typename MatrixSolver, typename MatrixType, typename Scalar, bool BisSPD>
749 static inline void applyOP(MatrixSolver &OP, const MatrixType &A, int n, Scalar *in, Scalar *out);
750 static inline void project(MatrixSolver &OP, int n, int k, Scalar *vecs);
753 template<typename MatrixSolver, typename MatrixType, typename Scalar>
754 struct OP<MatrixSolver, MatrixType, Scalar, true>
756 static inline void applyOP(MatrixSolver &OP, const MatrixType &A, int n, Scalar *in, Scalar *out)
762 Matrix<Scalar, Dynamic, 1>::Map(out, n) = OP.matrixU().solve(Matrix<Scalar, Dynamic, 1>::Map(in, n));
763 Matrix<Scalar, Dynamic, 1>::Map(out, n) = OP.permutationPinv() * Matrix<Scalar, Dynamic, 1>::Map(out, n);
767 Matrix<Scalar, Dynamic, 1>::Map(out, n) = A * Matrix<Scalar, Dynamic, 1>::Map(out, n);
771 Matrix<Scalar, Dynamic, 1>::Map(out, n) = OP.permutationP() * Matrix<Scalar, Dynamic, 1>::Map(out, n);
772 Matrix<Scalar, Dynamic, 1>::Map(out, n) = OP.matrixL().solve(Matrix<Scalar, Dynamic, 1>::Map(out, n));
775 static inline void project(MatrixSolver &OP, int n, int k, Scalar *vecs)
779 Matrix<Scalar, Dynamic, Dynamic>::Map(vecs, n, k) = OP.matrixU().solve(Matrix<Scalar, Dynamic, Dynamic>::Map(vecs, n, k));
780 Matrix<Scalar, Dynamic, Dynamic>::Map(vecs, n, k) = OP.permutationPinv() * Matrix<Scalar, Dynamic, Dynamic>::Map(vecs, n, k);
785 template<typename MatrixSolver, typename MatrixType, typename Scalar>
786 struct OP<MatrixSolver, MatrixType, Scalar, false>
788 static inline void applyOP(MatrixSolver &OP, const MatrixType &A, int n, Scalar *in, Scalar *out)
793 static inline void project(MatrixSolver &OP, int n, int k, Scalar *vecs)