diff --git a/Eigen/src/Array/Replicate.h b/Eigen/src/Array/Replicate.h index 661a7b561..46a06a61c 100644 --- a/Eigen/src/Array/Replicate.h +++ b/Eigen/src/Array/Replicate.h @@ -160,10 +160,10 @@ DenseBase::replicate(int rowFactor,int colFactor) const * \sa VectorwiseOp::replicate(), DenseBase::replicate(), class Replicate */ template -const Replicate +const typename VectorwiseOp::ReplicateReturnType VectorwiseOp::replicate(int factor) const { - return Replicate + return typename VectorwiseOp::ReplicateReturnType (_expression(),Direction==Vertical?factor:1,Direction==Horizontal?factor:1); } diff --git a/Eigen/src/Array/VectorwiseOp.h b/Eigen/src/Array/VectorwiseOp.h index 06d999b14..50cfa7a5e 100644 --- a/Eigen/src/Array/VectorwiseOp.h +++ b/Eigen/src/Array/VectorwiseOp.h @@ -384,8 +384,8 @@ template class VectorwiseOp const Reverse reverse() const { return Reverse( _expression() ); } - const Replicate - replicate(int factor) const; + typedef Replicate ReplicateReturnType; + const ReplicateReturnType replicate(int factor) const; /** \nonstableyet * \return an expression of the replication of each column (or row) of \c *this diff --git a/Eigen/src/Core/products/SelfadjointMatrixVector.h b/Eigen/src/Core/products/SelfadjointMatrixVector.h index 627c06801..0f829fd73 100644 --- a/Eigen/src/Core/products/SelfadjointMatrixVector.h +++ b/Eigen/src/Core/products/SelfadjointMatrixVector.h @@ -186,10 +186,11 @@ struct SelfadjointProductMatrix * RhsBlasTraits::extractScalarFactor(m_rhs); ei_assert(dst.innerStride()==1 && "not implemented yet"); + ei_product_selfadjoint_vector::Flags&RowMajorBit) ? RowMajor : ColMajor, int(LhsUpLo), bool(LhsBlasTraits::NeedToConjugate), bool(RhsBlasTraits::NeedToConjugate)> ( lhs.rows(), // size - &lhs.coeff(0,0), lhs.innerStride(), // lhs info + &lhs.coeff(0,0), lhs.outerStride(), // lhs info &rhs.coeff(0), rhs.innerStride(), // rhs info &dst.coeffRef(0), // result info actualAlpha // scale factor diff --git a/Eigen/src/Geometry/Translation.h b/Eigen/src/Geometry/Translation.h index bde72c738..60c12caea 100644 --- a/Eigen/src/Geometry/Translation.h +++ b/Eigen/src/Geometry/Translation.h @@ -81,6 +81,20 @@ public: /** Constructs and initialize the translation transformation from a vector of translation coefficients */ explicit inline Translation(const VectorType& vector) : m_coeffs(vector) {} + /** \brief Retruns the x-translation by value. **/ + inline Scalar x() const { return m_coeffs.x(); } + /** \brief Retruns the y-translation by value. **/ + inline Scalar y() const { return m_coeffs.y(); } + /** \brief Retruns the z-translation by value. **/ + inline Scalar z() const { return m_coeffs.z(); } + + /** \brief Retruns the x-translation as a reference. **/ + inline Scalar& x() { return m_coeffs.x(); } + /** \brief Retruns the y-translation as a reference. **/ + inline Scalar& y() { return m_coeffs.y(); } + /** \brief Retruns the z-translation as a reference. **/ + inline Scalar& z() { return m_coeffs.z(); } + const VectorType& vector() const { return m_coeffs; } VectorType& vector() { return m_coeffs; }