mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-13 20:26:03 +08:00
member_redux constructor is explicit too. Renamed some typedefs for more consistency.
This commit is contained in:
parent
7817bc19a4
commit
421feea3b2
@ -128,7 +128,7 @@ struct member_redux {
|
|||||||
>::type result_type;
|
>::type result_type;
|
||||||
template<typename _Scalar, int Size> struct Cost
|
template<typename _Scalar, int Size> struct Cost
|
||||||
{ enum { value = (Size-1) * functor_traits<BinaryOp>::Cost }; };
|
{ enum { value = (Size-1) * functor_traits<BinaryOp>::Cost }; };
|
||||||
member_redux(const BinaryOp func) : m_functor(func) {} // FIXME this should actually be explicit, but lets not exaggerate
|
explicit member_redux(const BinaryOp func) : m_functor(func) {}
|
||||||
template<typename Derived>
|
template<typename Derived>
|
||||||
inline result_type operator()(const DenseBase<Derived>& mat) const
|
inline result_type operator()(const DenseBase<Derived>& mat) const
|
||||||
{ return mat.redux(m_functor); }
|
{ return mat.redux(m_functor); }
|
||||||
@ -165,10 +165,10 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
typedef typename internal::remove_all<ExpressionTypeNested>::type ExpressionTypeNestedCleaned;
|
typedef typename internal::remove_all<ExpressionTypeNested>::type ExpressionTypeNestedCleaned;
|
||||||
|
|
||||||
template<template<typename _Scalar> class Functor,
|
template<template<typename _Scalar> class Functor,
|
||||||
typename Scalar=typename internal::traits<ExpressionType>::Scalar> struct ReturnType
|
typename Scalar_=Scalar> struct ReturnType
|
||||||
{
|
{
|
||||||
typedef PartialReduxExpr<ExpressionType,
|
typedef PartialReduxExpr<ExpressionType,
|
||||||
Functor<Scalar>,
|
Functor<Scalar_>,
|
||||||
Direction
|
Direction
|
||||||
> Type;
|
> Type;
|
||||||
};
|
};
|
||||||
@ -176,7 +176,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
template<typename BinaryOp> struct ReduxReturnType
|
template<typename BinaryOp> struct ReduxReturnType
|
||||||
{
|
{
|
||||||
typedef PartialReduxExpr<ExpressionType,
|
typedef PartialReduxExpr<ExpressionType,
|
||||||
internal::member_redux<BinaryOp,typename internal::traits<ExpressionType>::Scalar>,
|
internal::member_redux<BinaryOp,Scalar>,
|
||||||
Direction
|
Direction
|
||||||
> Type;
|
> Type;
|
||||||
};
|
};
|
||||||
@ -264,11 +264,11 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
template<typename BinaryOp>
|
template<typename BinaryOp>
|
||||||
const typename ReduxReturnType<BinaryOp>::Type
|
const typename ReduxReturnType<BinaryOp>::Type
|
||||||
redux(const BinaryOp& func = BinaryOp()) const
|
redux(const BinaryOp& func = BinaryOp()) const
|
||||||
{ return typename ReduxReturnType<BinaryOp>::Type(_expression(), func); }
|
{ return typename ReduxReturnType<BinaryOp>::Type(_expression(), internal::member_redux<BinaryOp,Scalar>(func)); }
|
||||||
|
|
||||||
typedef typename ReturnType<internal::member_minCoeff>::Type MinCoeffReturnType;
|
typedef typename ReturnType<internal::member_minCoeff>::Type MinCoeffReturnType;
|
||||||
typedef typename ReturnType<internal::member_maxCoeff>::Type MaxCoeffReturnType;
|
typedef typename ReturnType<internal::member_maxCoeff>::Type MaxCoeffReturnType;
|
||||||
typedef typename ReturnType<internal::member_squaredNorm,RealScalar>::Type SquareNormReturnType;
|
typedef typename ReturnType<internal::member_squaredNorm,RealScalar>::Type SquaredNormReturnType;
|
||||||
typedef typename ReturnType<internal::member_norm,RealScalar>::Type NormReturnType;
|
typedef typename ReturnType<internal::member_norm,RealScalar>::Type NormReturnType;
|
||||||
typedef typename ReturnType<internal::member_blueNorm,RealScalar>::Type BlueNormReturnType;
|
typedef typename ReturnType<internal::member_blueNorm,RealScalar>::Type BlueNormReturnType;
|
||||||
typedef typename ReturnType<internal::member_stableNorm,RealScalar>::Type StableNormReturnType;
|
typedef typename ReturnType<internal::member_stableNorm,RealScalar>::Type StableNormReturnType;
|
||||||
@ -313,8 +313,8 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
* Output: \verbinclude PartialRedux_squaredNorm.out
|
* Output: \verbinclude PartialRedux_squaredNorm.out
|
||||||
*
|
*
|
||||||
* \sa DenseBase::squaredNorm() */
|
* \sa DenseBase::squaredNorm() */
|
||||||
const SquareNormReturnType squaredNorm() const
|
const SquaredNormReturnType squaredNorm() const
|
||||||
{ return SquareNormReturnType(_expression()); }
|
{ return SquaredNormReturnType(_expression()); }
|
||||||
|
|
||||||
/** \returns a row (or column) vector expression of the norm
|
/** \returns a row (or column) vector expression of the norm
|
||||||
* of each column (or row) of the referenced expression.
|
* of each column (or row) of the referenced expression.
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
// These are already defined in MatrixCwiseUnaryOps.h
|
typedef CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived> AbsReturnType;
|
||||||
//typedef CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived> AbsReturnType;
|
typedef CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived> Abs2ReturnType;
|
||||||
//typedef CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived> Abs2ReturnType;
|
typedef CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived> SqrtReturnType;
|
||||||
//typedef CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived> SqrtReturnType;
|
|
||||||
typedef CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived> InverseReturnType;
|
typedef CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived> InverseReturnType;
|
||||||
//typedef CwiseUnaryOp<std::binder1st<std::equal_to<Scalar> >, const Derived> CwiseScalarEqualReturnType;
|
|
||||||
|
|
||||||
typedef CwiseUnaryOp<internal::scalar_exp_op<Scalar>, const Derived> ExpReturnType;
|
typedef CwiseUnaryOp<internal::scalar_exp_op<Scalar>, const Derived> ExpReturnType;
|
||||||
typedef CwiseUnaryOp<internal::scalar_log_op<Scalar>, const Derived> LogReturnType;
|
typedef CwiseUnaryOp<internal::scalar_log_op<Scalar>, const Derived> LogReturnType;
|
||||||
|
@ -10,9 +10,9 @@
|
|||||||
|
|
||||||
// This file is a base class plugin containing matrix specifics coefficient wise functions.
|
// This file is a base class plugin containing matrix specifics coefficient wise functions.
|
||||||
|
|
||||||
typedef CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived> AbsReturnType;
|
typedef CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived> CwiseAbsReturnType;
|
||||||
typedef CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived> Abs2ReturnType;
|
typedef CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived> CwiseAbs2ReturnType;
|
||||||
typedef CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived> SqrtReturnType;
|
typedef CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived> CwiseSqrtReturnType;
|
||||||
typedef CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived> CwiseInverseReturnType;
|
typedef CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived> CwiseInverseReturnType;
|
||||||
typedef CwiseUnaryOp<std::binder1st<std::equal_to<Scalar> >, const Derived> CwiseScalarEqualReturnType;
|
typedef CwiseUnaryOp<std::binder1st<std::equal_to<Scalar> >, const Derived> CwiseScalarEqualReturnType;
|
||||||
/** \returns an expression of the coefficient-wise absolute value of \c *this
|
/** \returns an expression of the coefficient-wise absolute value of \c *this
|
||||||
@ -23,8 +23,8 @@ typedef CwiseUnaryOp<std::binder1st<std::equal_to<Scalar> >, const Derived> Cwis
|
|||||||
* \sa cwiseAbs2()
|
* \sa cwiseAbs2()
|
||||||
*/
|
*/
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
EIGEN_STRONG_INLINE const AbsReturnType
|
EIGEN_STRONG_INLINE const CwiseAbsReturnType
|
||||||
cwiseAbs() const { return AbsReturnType(derived()); }
|
cwiseAbs() const { return CwiseAbsReturnType(derived()); }
|
||||||
|
|
||||||
/** \returns an expression of the coefficient-wise squared absolute value of \c *this
|
/** \returns an expression of the coefficient-wise squared absolute value of \c *this
|
||||||
*
|
*
|
||||||
@ -34,8 +34,8 @@ cwiseAbs() const { return AbsReturnType(derived()); }
|
|||||||
* \sa cwiseAbs()
|
* \sa cwiseAbs()
|
||||||
*/
|
*/
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
EIGEN_STRONG_INLINE const Abs2ReturnType
|
EIGEN_STRONG_INLINE const CwiseAbs2ReturnType
|
||||||
cwiseAbs2() const { return Abs2ReturnType(derived()); }
|
cwiseAbs2() const { return CwiseAbs2ReturnType(derived()); }
|
||||||
|
|
||||||
/** \returns an expression of the coefficient-wise square root of *this.
|
/** \returns an expression of the coefficient-wise square root of *this.
|
||||||
*
|
*
|
||||||
@ -45,8 +45,8 @@ cwiseAbs2() const { return Abs2ReturnType(derived()); }
|
|||||||
* \sa cwisePow(), cwiseSquare()
|
* \sa cwisePow(), cwiseSquare()
|
||||||
*/
|
*/
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
inline const SqrtReturnType
|
inline const CwiseSqrtReturnType
|
||||||
cwiseSqrt() const { return SqrtReturnType(derived()); }
|
cwiseSqrt() const { return CwiseSqrtReturnType(derived()); }
|
||||||
|
|
||||||
/** \returns an expression of the coefficient-wise inverse of *this.
|
/** \returns an expression of the coefficient-wise inverse of *this.
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user