diff options
author | Benoit Jacob <jacob.benoit.1@gmail.com> | 2009-11-10 21:22:20 -0500 |
---|---|---|
committer | Benoit Jacob <jacob.benoit.1@gmail.com> | 2009-11-10 21:22:20 -0500 |
commit | a440385b41650a1657d3b7005ba6f040eaea0bd4 (patch) | |
tree | 83b825e1d7968de417ceb9dc9c08860b1e99d413 /Eigen/src/Householder/Householder.h | |
parent | e06aa749a4bb34c79977070b82d7670775c4ad7a (diff) |
*adapt Householder to the convention that we now favor refs over ptrs for output. Keep "workspace" as pointer because it is an array (which is now more obvious).
*rename makeHouseholderSequence to householderSequence, because that's what it returns.
Diffstat (limited to 'Eigen/src/Householder/Householder.h')
-rw-r--r-- | Eigen/src/Householder/Householder.h | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/Eigen/src/Householder/Householder.h b/Eigen/src/Householder/Householder.h index 775b2f872..a54be8c01 100644 --- a/Eigen/src/Householder/Householder.h +++ b/Eigen/src/Householder/Householder.h @@ -35,18 +35,18 @@ template<int n> struct ei_decrement_size template<typename EssentialPart> void makeTrivialHouseholder( - EssentialPart *essential, - typename EssentialPart::RealScalar *beta) + EssentialPart &essential, + typename EssentialPart::RealScalar &beta) { - *beta = typename EssentialPart::RealScalar(0); - essential->setZero(); + beta = typename EssentialPart::RealScalar(0); + essential.setZero(); } template<typename Derived> -void MatrixBase<Derived>::makeHouseholderInPlace(Scalar *tau, RealScalar *beta) +void MatrixBase<Derived>::makeHouseholderInPlace(Scalar& tau, RealScalar& beta) { VectorBlock<Derived, ei_decrement_size<SizeAtCompileTime>::ret> essentialPart(derived(), 1, size()-1); - makeHouseholder(&essentialPart, tau, beta); + makeHouseholder(essentialPart, tau, beta); } /** Computes the elementary reflector H such that: @@ -67,9 +67,9 @@ void MatrixBase<Derived>::makeHouseholderInPlace(Scalar *tau, RealScalar *beta) template<typename Derived> template<typename EssentialPart> void MatrixBase<Derived>::makeHouseholder( - EssentialPart *essential, - Scalar *tau, - RealScalar *beta) const + EssentialPart& essential, + Scalar& tau, + RealScalar& beta) const { EIGEN_STATIC_ASSERT_VECTOR_ONLY(EssentialPart) VectorBlock<Derived, EssentialPart::SizeAtCompileTime> tail(derived(), 1, size()-1); @@ -79,16 +79,16 @@ void MatrixBase<Derived>::makeHouseholder( if(tailSqNorm == RealScalar(0) && ei_imag(c0)==RealScalar(0)) { - *tau = 0; - *beta = ei_real(c0); + tau = 0; + beta = ei_real(c0); } else { - *beta = ei_sqrt(ei_abs2(c0) + tailSqNorm); + beta = ei_sqrt(ei_abs2(c0) + tailSqNorm); if (ei_real(c0)>=0.) - *beta = -*beta; - *essential = tail / (c0 - *beta); - *tau = ei_conj((*beta - c0) / *beta); + beta = -beta; + essential = tail / (c0 - beta); + tau = ei_conj((beta - c0) / beta); } } |