expand unit-tests and fix const-qualifaction bugs thus discovered

This commit is contained in:
Benoit Jacob
2007-12-12 17:48:20 +00:00
parent e9a458a7a5
commit fc7b2b5c20
11 changed files with 58 additions and 26 deletions

View File

@@ -58,42 +58,42 @@ template<typename MatrixType> class ScalarMultiple : NoDefaultOperatorEquals,
const Scalar m_scalar;
};
#define EIGEN_MAKE_SCALAR_OPS(OtherScalar) \
#define EIGEN_MAKE_SCALAR_OPS(OtherScalar) \
template<typename Scalar, typename Derived> \
ScalarMultiple<Derived> \
operator*(const MatrixBase<Scalar, Derived>& matrix, \
const ScalarMultiple<Derived> \
operator*(const MatrixBase<Scalar, Derived>& matrix, \
OtherScalar scalar) \
{ \
return ScalarMultiple<Derived>(matrix.ref(), scalar); \
return ScalarMultiple<Derived>(matrix.ref(), scalar); \
} \
\
template<typename Scalar, typename Derived> \
ScalarMultiple<Derived> \
const ScalarMultiple<Derived> \
operator*(OtherScalar scalar, \
const MatrixBase<Scalar, Derived>& matrix) \
const MatrixBase<Scalar, Derived>& matrix) \
{ \
return ScalarMultiple<Derived>(matrix.ref(), scalar); \
return ScalarMultiple<Derived>(matrix.ref(), scalar); \
} \
\
template<typename Scalar, typename Derived> \
ScalarMultiple<Derived> \
operator/(const MatrixBase<Scalar, Derived>& matrix, \
const ScalarMultiple<Derived> \
operator/(const MatrixBase<Scalar, Derived>& matrix, \
OtherScalar scalar) \
{ \
assert(NumTraits<Scalar>::HasFloatingPoint); \
assert(NumTraits<Scalar>::HasFloatingPoint); \
return matrix * (static_cast<Scalar>(1) / scalar); \
} \
\
template<typename Scalar, typename Derived> \
Derived & \
MatrixBase<Scalar, Derived>::operator*=(const OtherScalar &other) \
MatrixBase<Scalar, Derived>::operator*=(const OtherScalar &other) \
{ \
return *this = *this * other; \
} \
\
template<typename Scalar, typename Derived> \
Derived & \
MatrixBase<Scalar, Derived>::operator/=(const OtherScalar &other) \
MatrixBase<Scalar, Derived>::operator/=(const OtherScalar &other) \
{ \
return *this = *this / other; \
}