aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2009-08-03 16:05:07 +0200
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2009-08-03 16:05:07 +0200
commit66ee2044ce83f508c78dafebaee12d04d9fc9019 (patch)
tree6aa0d5eb86122ec0c0431a797fd23a1ffa80884d /Eigen
parent3cde9c0e35093b9fb8274ed0c88dbf5f4dd78699 (diff)
small fixes
Diffstat (limited to 'Eigen')
-rw-r--r--Eigen/src/Array/VectorwiseOp.h13
-rw-r--r--Eigen/src/Core/Fuzzy.h12
2 files changed, 19 insertions, 6 deletions
diff --git a/Eigen/src/Array/VectorwiseOp.h b/Eigen/src/Array/VectorwiseOp.h
index 3684d7cd1..fa0958987 100644
--- a/Eigen/src/Array/VectorwiseOp.h
+++ b/Eigen/src/Array/VectorwiseOp.h
@@ -355,10 +355,22 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
/////////// Artithmetic operators ///////////
+ /** Copies the vector \a other to each subvector of \c *this */
+ template<typename OtherDerived>
+ ExpressionType& operator=(const MatrixBase<OtherDerived>& other)
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+ //ei_assert((m_matrix.isNull()) == (other.isNull())); FIXME
+ for(int j=0; j<subVectors(); ++j)
+ subVector(j) = other;
+ return const_cast<ExpressionType&>(m_matrix);
+ }
+
/** Adds the vector \a other to each subvector of \c *this */
template<typename OtherDerived>
ExpressionType& operator+=(const MatrixBase<OtherDerived>& other)
{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
for(int j=0; j<subVectors(); ++j)
subVector(j) += other;
return const_cast<ExpressionType&>(m_matrix);
@@ -368,6 +380,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
template<typename OtherDerived>
ExpressionType& operator-=(const MatrixBase<OtherDerived>& other)
{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
for(int j=0; j<subVectors(); ++j)
subVector(j) -= other;
return const_cast<ExpressionType&>(m_matrix);
diff --git a/Eigen/src/Core/Fuzzy.h b/Eigen/src/Core/Fuzzy.h
index a882981e4..e10446398 100644
--- a/Eigen/src/Core/Fuzzy.h
+++ b/Eigen/src/Core/Fuzzy.h
@@ -49,7 +49,7 @@ template<typename Derived>
template<typename OtherDerived>
bool MatrixBase<Derived>::isApprox(
const MatrixBase<OtherDerived>& other,
- typename NumTraits<Scalar>::Real prec
+ RealScalar prec
) const
{
const typename ei_nested<Derived,2>::type nested(derived());
@@ -73,7 +73,7 @@ bool MatrixBase<Derived>::isApprox(
template<typename Derived>
bool MatrixBase<Derived>::isMuchSmallerThan(
const typename NumTraits<Scalar>::Real& other,
- typename NumTraits<Scalar>::Real prec
+ RealScalar prec
) const
{
return cwise().abs2().sum() <= prec * prec * other * other;
@@ -93,7 +93,7 @@ template<typename Derived>
template<typename OtherDerived>
bool MatrixBase<Derived>::isMuchSmallerThan(
const MatrixBase<OtherDerived>& other,
- typename NumTraits<Scalar>::Real prec
+ RealScalar prec
) const
{
return this->cwise().abs2().sum() <= prec * prec * other.cwise().abs2().sum();
@@ -124,7 +124,7 @@ template<typename Derived>
template<typename OtherDerived>
bool MatrixBase<Derived>::isApprox(
const MatrixBase<OtherDerived>& other,
- typename NumTraits<Scalar>::Real prec
+ RealScalar prec
) const
{
return ei_fuzzy_selector<Derived,OtherDerived>::isApprox(derived(), other.derived(), prec);
@@ -143,7 +143,7 @@ bool MatrixBase<Derived>::isApprox(
template<typename Derived>
bool MatrixBase<Derived>::isMuchSmallerThan(
const typename NumTraits<Scalar>::Real& other,
- typename NumTraits<Scalar>::Real prec
+ RealScalar prec
) const
{
return ei_fuzzy_selector<Derived>::isMuchSmallerThan(derived(), other, prec);
@@ -163,7 +163,7 @@ template<typename Derived>
template<typename OtherDerived>
bool MatrixBase<Derived>::isMuchSmallerThan(
const MatrixBase<OtherDerived>& other,
- typename NumTraits<Scalar>::Real prec
+ RealScalar prec
) const
{
return ei_fuzzy_selector<Derived,OtherDerived>::isMuchSmallerThan(derived(), other.derived(), prec);