mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 03:39:01 +08:00
fix issue #125 - *norm() return RealScalar and not Scalar
This commit is contained in:
parent
8dc947821b
commit
e2097c55f8
@ -178,14 +178,16 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
typedef typename ExpressionType::Scalar Scalar;
|
typedef typename ExpressionType::Scalar Scalar;
|
||||||
|
typedef typename ExpressionType::RealScalar RealScalar;
|
||||||
typedef typename ExpressionType::Index Index;
|
typedef typename ExpressionType::Index Index;
|
||||||
typedef typename ei_meta_if<ei_must_nest_by_value<ExpressionType>::ret,
|
typedef typename ei_meta_if<ei_must_nest_by_value<ExpressionType>::ret,
|
||||||
ExpressionType, const ExpressionType&>::ret ExpressionTypeNested;
|
ExpressionType, const ExpressionType&>::ret ExpressionTypeNested;
|
||||||
|
|
||||||
template<template<typename _Scalar> class Functor> struct ReturnType
|
template<template<typename _Scalar> class Functor,
|
||||||
|
typename Scalar=typename ei_traits<ExpressionType>::Scalar> struct ReturnType
|
||||||
{
|
{
|
||||||
typedef PartialReduxExpr<ExpressionType,
|
typedef PartialReduxExpr<ExpressionType,
|
||||||
Functor<typename ei_traits<ExpressionType>::Scalar>,
|
Functor<Scalar>,
|
||||||
Direction
|
Direction
|
||||||
> Type;
|
> Type;
|
||||||
};
|
};
|
||||||
@ -285,7 +287,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
* Output: \verbinclude PartialRedux_squaredNorm.out
|
* Output: \verbinclude PartialRedux_squaredNorm.out
|
||||||
*
|
*
|
||||||
* \sa DenseBase::squaredNorm() */
|
* \sa DenseBase::squaredNorm() */
|
||||||
const typename ReturnType<ei_member_squaredNorm>::Type squaredNorm() const
|
const typename ReturnType<ei_member_squaredNorm,RealScalar>::Type squaredNorm() const
|
||||||
{ return _expression(); }
|
{ return _expression(); }
|
||||||
|
|
||||||
/** \returns a row (or column) vector expression of the norm
|
/** \returns a row (or column) vector expression of the norm
|
||||||
@ -295,7 +297,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
* Output: \verbinclude PartialRedux_norm.out
|
* Output: \verbinclude PartialRedux_norm.out
|
||||||
*
|
*
|
||||||
* \sa DenseBase::norm() */
|
* \sa DenseBase::norm() */
|
||||||
const typename ReturnType<ei_member_norm>::Type norm() const
|
const typename ReturnType<ei_member_norm,RealScalar>::Type norm() const
|
||||||
{ return _expression(); }
|
{ return _expression(); }
|
||||||
|
|
||||||
|
|
||||||
@ -304,7 +306,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
* blue's algorithm.
|
* blue's algorithm.
|
||||||
*
|
*
|
||||||
* \sa DenseBase::blueNorm() */
|
* \sa DenseBase::blueNorm() */
|
||||||
const typename ReturnType<ei_member_blueNorm>::Type blueNorm() const
|
const typename ReturnType<ei_member_blueNorm,RealScalar>::Type blueNorm() const
|
||||||
{ return _expression(); }
|
{ return _expression(); }
|
||||||
|
|
||||||
|
|
||||||
@ -313,7 +315,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
* underflow and overflow.
|
* underflow and overflow.
|
||||||
*
|
*
|
||||||
* \sa DenseBase::stableNorm() */
|
* \sa DenseBase::stableNorm() */
|
||||||
const typename ReturnType<ei_member_stableNorm>::Type stableNorm() const
|
const typename ReturnType<ei_member_stableNorm,RealScalar>::Type stableNorm() const
|
||||||
{ return _expression(); }
|
{ return _expression(); }
|
||||||
|
|
||||||
|
|
||||||
@ -322,7 +324,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
* underflow and overflow using a concatenation of hypot() calls.
|
* underflow and overflow using a concatenation of hypot() calls.
|
||||||
*
|
*
|
||||||
* \sa DenseBase::hypotNorm() */
|
* \sa DenseBase::hypotNorm() */
|
||||||
const typename ReturnType<ei_member_hypotNorm>::Type hypotNorm() const
|
const typename ReturnType<ei_member_hypotNorm,RealScalar>::Type hypotNorm() const
|
||||||
{ return _expression(); }
|
{ return _expression(); }
|
||||||
|
|
||||||
/** \returns a row (or column) vector expression of the sum
|
/** \returns a row (or column) vector expression of the sum
|
||||||
|
Loading…
x
Reference in New Issue
Block a user