* JacobiSVD:

- support complex numbers
 - big rewrite of the 2x2 kernel, much more robust
* Jacobi:
 - fix weirdness in initial design, e.g. applyJacobiOnTheRight actually did the inverse transformation
 - fully support complex numbers
 - fix logic to decide whether to vectorize
 - remove several clumsy methods

fix for complex numbers
This commit is contained in:
Benoit Jacob
2009-08-31 22:26:15 -04:00
parent 29c6b2452d
commit 6e4e94ff32
8 changed files with 416 additions and 241 deletions

View File

@@ -803,11 +803,11 @@ template<typename Derived> class MatrixBase
///////// Jacobi module /////////
void applyJacobiOnTheLeft(int p, int q, Scalar c, Scalar s);
void applyJacobiOnTheRight(int p, int q, Scalar c, Scalar s);
template<typename JacobiScalar>
void applyJacobiOnTheLeft(int p, int q, JacobiScalar c, JacobiScalar s);
template<typename JacobiScalar>
void applyJacobiOnTheRight(int p, int q, JacobiScalar c, JacobiScalar s);
bool makeJacobi(int p, int q, Scalar *c, Scalar *s) const;
bool makeJacobiForAtA(int p, int q, Scalar *c, Scalar *s) const;
bool makeJacobiForAAt(int p, int q, Scalar *c, Scalar *s) const;
#ifdef EIGEN_MATRIXBASE_PLUGIN
#include EIGEN_MATRIXBASE_PLUGIN