mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 03:39:01 +08:00
merge
This commit is contained in:
commit
0c3fe4aca5
@ -284,6 +284,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
typedef typename ReturnType<internal::member_any>::Type AnyReturnType;
|
typedef typename ReturnType<internal::member_any>::Type AnyReturnType;
|
||||||
typedef PartialReduxExpr<ExpressionType, internal::member_count<Index>, Direction> CountReturnType;
|
typedef PartialReduxExpr<ExpressionType, internal::member_count<Index>, Direction> CountReturnType;
|
||||||
typedef typename ReturnType<internal::member_prod>::Type ProdReturnType;
|
typedef typename ReturnType<internal::member_prod>::Type ProdReturnType;
|
||||||
|
typedef Reverse<const ExpressionType, Direction> ConstReverseReturnType;
|
||||||
typedef Reverse<ExpressionType, Direction> ReverseReturnType;
|
typedef Reverse<ExpressionType, Direction> ReverseReturnType;
|
||||||
|
|
||||||
template<int p> struct LpNormReturnType {
|
template<int p> struct LpNormReturnType {
|
||||||
@ -456,7 +457,15 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
*
|
*
|
||||||
* \sa DenseBase::reverse() */
|
* \sa DenseBase::reverse() */
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
const ReverseReturnType reverse() const
|
const ConstReverseReturnType reverse() const
|
||||||
|
{ return ConstReverseReturnType( _expression() ); }
|
||||||
|
|
||||||
|
/** \returns a writable matrix expression
|
||||||
|
* where each column (or row) are reversed.
|
||||||
|
*
|
||||||
|
* \sa reverse() const */
|
||||||
|
EIGEN_DEVICE_FUNC
|
||||||
|
ReverseReturnType reverse()
|
||||||
{ return ReverseReturnType( _expression() ); }
|
{ return ReverseReturnType( _expression() ); }
|
||||||
|
|
||||||
typedef Replicate<ExpressionType,(isVertical?Dynamic:1),(isHorizontal?Dynamic:1)> ReplicateReturnType;
|
typedef Replicate<ExpressionType,(isVertical?Dynamic:1),(isHorizontal?Dynamic:1)> ReplicateReturnType;
|
||||||
|
@ -333,8 +333,9 @@ GeneralizedEigenSolver<MatrixType>::compute(const MatrixType& A, const MatrixTyp
|
|||||||
|
|
||||||
// T = [a 0]
|
// T = [a 0]
|
||||||
// [0 b]
|
// [0 b]
|
||||||
RealScalar a = matT.coeff(i, i),
|
RealScalar a = matT.diagonal().coeff(i),
|
||||||
b = matT(i+1, i+1); // NOTE: using operator() instead of coeff() workarounds a MSVC bug.
|
b = matT.diagonal().coeff(i+1);
|
||||||
|
// ^^ NOTE: using diagonal()(i) instead of coeff(i,i) workarounds a MSVC bug.
|
||||||
Matrix<RealScalar,2,2> S2 = m_matS.template block<2,2>(i,i) * Matrix<Scalar,2,1>(b,a).asDiagonal();
|
Matrix<RealScalar,2,2> S2 = m_matS.template block<2,2>(i,i) * Matrix<Scalar,2,1>(b,a).asDiagonal();
|
||||||
|
|
||||||
Scalar p = Scalar(0.5) * (S2.coeff(0,0) - S2.coeff(1,1));
|
Scalar p = Scalar(0.5) * (S2.coeff(0,0) - S2.coeff(1,1));
|
||||||
|
@ -117,13 +117,11 @@ template<typename MatrixType> void reverse(const MatrixType& m)
|
|||||||
m2.colwise().reverseInPlace();
|
m2.colwise().reverseInPlace();
|
||||||
VERIFY_IS_APPROX(m2,m1.colwise().reverse().eval());
|
VERIFY_IS_APPROX(m2,m1.colwise().reverse().eval());
|
||||||
|
|
||||||
/*
|
|
||||||
m1.colwise().reverse()(r, c) = x;
|
m1.colwise().reverse()(r, c) = x;
|
||||||
VERIFY_IS_APPROX(x, m1(rows - 1 - r, c));
|
VERIFY_IS_APPROX(x, m1(rows - 1 - r, c));
|
||||||
|
|
||||||
m1.rowwise().reverse()(r, c) = x;
|
m1.rowwise().reverse()(r, c) = x;
|
||||||
VERIFY_IS_APPROX(x, m1(r, cols - 1 - c));
|
VERIFY_IS_APPROX(x, m1(r, cols - 1 - c));
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_array_reverse()
|
void test_array_reverse()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user