aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Householder/Householder.h
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2009-11-10 21:22:20 -0500
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2009-11-10 21:22:20 -0500
commita440385b41650a1657d3b7005ba6f040eaea0bd4 (patch)
tree83b825e1d7968de417ceb9dc9c08860b1e99d413 /Eigen/src/Householder/Householder.h
parente06aa749a4bb34c79977070b82d7670775c4ad7a (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.h30
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);
}
}