diff options
author | Benoit Jacob <jacob.benoit.1@gmail.com> | 2009-08-03 16:05:07 +0200 |
---|---|---|
committer | Benoit Jacob <jacob.benoit.1@gmail.com> | 2009-08-03 16:05:07 +0200 |
commit | 66ee2044ce83f508c78dafebaee12d04d9fc9019 (patch) | |
tree | 6aa0d5eb86122ec0c0431a797fd23a1ffa80884d | |
parent | 3cde9c0e35093b9fb8274ed0c88dbf5f4dd78699 (diff) |
small fixes
-rw-r--r-- | Eigen/src/Array/VectorwiseOp.h | 13 | ||||
-rw-r--r-- | Eigen/src/Core/Fuzzy.h | 12 |
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); |