mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 03:39:01 +08:00
Fix shadowing wrt Eigen::Index
This commit is contained in:
parent
dabc81751f
commit
19a95b3309
@ -343,29 +343,29 @@ template<typename Scalar,typename NullaryOp,
|
|||||||
bool has_binary = has_binary_operator<NullaryOp>::value>
|
bool has_binary = has_binary_operator<NullaryOp>::value>
|
||||||
struct nullary_wrapper
|
struct nullary_wrapper
|
||||||
{
|
{
|
||||||
template <typename Index>
|
template <typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, Index i, Index j) const { return op(i,j); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i, IndexType j) const { return op(i,j); }
|
||||||
template <typename Index>
|
template <typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, Index i) const { return op(i); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i) const { return op(i); }
|
||||||
|
|
||||||
template <typename T, typename Index> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, Index i, Index j) const { return op.template packetOp<T>(i,j); }
|
template <typename T, typename IndexType> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i, IndexType j) const { return op.template packetOp<T>(i,j); }
|
||||||
template <typename T, typename Index> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, Index i) const { return op.template packetOp<T>(i); }
|
template <typename T, typename IndexType> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i) const { return op.template packetOp<T>(i); }
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename Scalar,typename NullaryOp>
|
template<typename Scalar,typename NullaryOp>
|
||||||
struct nullary_wrapper<Scalar,NullaryOp,true,false,false>
|
struct nullary_wrapper<Scalar,NullaryOp,true,false,false>
|
||||||
{
|
{
|
||||||
template <typename Index>
|
template <typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, Index=0, Index=0) const { return op(); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType=0, IndexType=0) const { return op(); }
|
||||||
template <typename T, typename Index> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, Index=0, Index=0) const { return op.template packetOp<T>(); }
|
template <typename T, typename IndexType> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType=0, IndexType=0) const { return op.template packetOp<T>(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename Scalar,typename NullaryOp>
|
template<typename Scalar,typename NullaryOp>
|
||||||
struct nullary_wrapper<Scalar,NullaryOp,false,false,true>
|
struct nullary_wrapper<Scalar,NullaryOp,false,false,true>
|
||||||
{
|
{
|
||||||
template <typename Index>
|
template <typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, Index i, Index j=0) const { return op(i,j); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i, IndexType j=0) const { return op(i,j); }
|
||||||
template <typename T, typename Index> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, Index i, Index j=0) const { return op.template packetOp<T>(i,j); }
|
template <typename T, typename IndexType> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i, IndexType j=0) const { return op.template packetOp<T>(i,j); }
|
||||||
};
|
};
|
||||||
|
|
||||||
// We need the following specialization for vector-only functors assigned to a runtime vector,
|
// We need the following specialization for vector-only functors assigned to a runtime vector,
|
||||||
@ -374,20 +374,20 @@ struct nullary_wrapper<Scalar,NullaryOp,false,false,true>
|
|||||||
template<typename Scalar,typename NullaryOp>
|
template<typename Scalar,typename NullaryOp>
|
||||||
struct nullary_wrapper<Scalar,NullaryOp,false,true,false>
|
struct nullary_wrapper<Scalar,NullaryOp,false,true,false>
|
||||||
{
|
{
|
||||||
template <typename Index>
|
template <typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, Index i, Index j) const {
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i, IndexType j) const {
|
||||||
eigen_assert(i==0 || j==0);
|
eigen_assert(i==0 || j==0);
|
||||||
return op(i+j);
|
return op(i+j);
|
||||||
}
|
}
|
||||||
template <typename T, typename Index> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, Index i, Index j) const {
|
template <typename T, typename IndexType> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i, IndexType j) const {
|
||||||
eigen_assert(i==0 || j==0);
|
eigen_assert(i==0 || j==0);
|
||||||
return op.template packetOp<T>(i+j);
|
return op.template packetOp<T>(i+j);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Index>
|
template <typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, Index i) const { return op(i); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i) const { return op(i); }
|
||||||
template <typename T, typename Index>
|
template <typename T, typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, Index i) const { return op.template packetOp<T>(i); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i) const { return op.template packetOp<T>(i); }
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename Scalar,typename NullaryOp>
|
template<typename Scalar,typename NullaryOp>
|
||||||
@ -474,30 +474,30 @@ struct evaluator<CwiseNullaryOp<NullaryOp,PlainObjectType> >
|
|||||||
|
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
|
|
||||||
template <typename Index>
|
template <typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
CoeffReturnType coeff(Index row, Index col) const
|
CoeffReturnType coeff(IndexType row, IndexType col) const
|
||||||
{
|
{
|
||||||
return m_wrapper(m_functor, row, col);
|
return m_wrapper(m_functor, row, col);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Index>
|
template <typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
CoeffReturnType coeff(Index index) const
|
CoeffReturnType coeff(IndexType index) const
|
||||||
{
|
{
|
||||||
return m_wrapper(m_functor,index);
|
return m_wrapper(m_functor,index);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<int LoadMode, typename PacketType, typename Index>
|
template<int LoadMode, typename PacketType, typename IndexType>
|
||||||
EIGEN_STRONG_INLINE
|
EIGEN_STRONG_INLINE
|
||||||
PacketType packet(Index row, Index col) const
|
PacketType packet(IndexType row, IndexType col) const
|
||||||
{
|
{
|
||||||
return m_wrapper.template packetOp<PacketType>(m_functor, row, col);
|
return m_wrapper.template packetOp<PacketType>(m_functor, row, col);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<int LoadMode, typename PacketType, typename Index>
|
template<int LoadMode, typename PacketType, typename IndexType>
|
||||||
EIGEN_STRONG_INLINE
|
EIGEN_STRONG_INLINE
|
||||||
PacketType packet(Index index) const
|
PacketType packet(IndexType index) const
|
||||||
{
|
{
|
||||||
return m_wrapper.template packetOp<PacketType>(m_functor, index);
|
return m_wrapper.template packetOp<PacketType>(m_functor, index);
|
||||||
}
|
}
|
||||||
|
@ -30,8 +30,8 @@ struct functor_traits<scalar_constant_op<Scalar> >
|
|||||||
|
|
||||||
template<typename Scalar> struct scalar_identity_op {
|
template<typename Scalar> struct scalar_identity_op {
|
||||||
EIGEN_EMPTY_STRUCT_CTOR(scalar_identity_op)
|
EIGEN_EMPTY_STRUCT_CTOR(scalar_identity_op)
|
||||||
template<typename Index>
|
template<typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (Index row, Index col) const { return row==col ? Scalar(1) : Scalar(0); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (IndexType row, IndexType col) const { return row==col ? Scalar(1) : Scalar(0); }
|
||||||
};
|
};
|
||||||
template<typename Scalar>
|
template<typename Scalar>
|
||||||
struct functor_traits<scalar_identity_op<Scalar> >
|
struct functor_traits<scalar_identity_op<Scalar> >
|
||||||
@ -55,15 +55,15 @@ struct linspaced_op_impl<Scalar,Packet,/*RandomAccess*/false,/*IsInteger*/false>
|
|||||||
m_packetStep(pset1<Packet>(unpacket_traits<Packet>::size*m_step)),
|
m_packetStep(pset1<Packet>(unpacket_traits<Packet>::size*m_step)),
|
||||||
m_base(padd(pset1<Packet>(low), pmul(pset1<Packet>(m_step),plset<Packet>(-unpacket_traits<Packet>::size)))) {}
|
m_base(padd(pset1<Packet>(low), pmul(pset1<Packet>(m_step),plset<Packet>(-unpacket_traits<Packet>::size)))) {}
|
||||||
|
|
||||||
template<typename Index>
|
template<typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (Index i) const
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (IndexType i) const
|
||||||
{
|
{
|
||||||
m_base = padd(m_base, pset1<Packet>(m_step));
|
m_base = padd(m_base, pset1<Packet>(m_step));
|
||||||
return m_low+Scalar(i)*m_step;
|
return m_low+Scalar(i)*m_step;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename Index>
|
template<typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(Index) const { return m_base = padd(m_base,m_packetStep); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(IndexType) const { return m_base = padd(m_base,m_packetStep); }
|
||||||
|
|
||||||
const Scalar m_low;
|
const Scalar m_low;
|
||||||
const Scalar m_step;
|
const Scalar m_step;
|
||||||
@ -81,11 +81,11 @@ struct linspaced_op_impl<Scalar,Packet,/*RandomAccess*/true,/*IsInteger*/false>
|
|||||||
m_low(low), m_step(num_steps==1 ? Scalar() : (high-low)/Scalar(num_steps-1)),
|
m_low(low), m_step(num_steps==1 ? Scalar() : (high-low)/Scalar(num_steps-1)),
|
||||||
m_lowPacket(pset1<Packet>(m_low)), m_stepPacket(pset1<Packet>(m_step)), m_interPacket(plset<Packet>(0)) {}
|
m_lowPacket(pset1<Packet>(m_low)), m_stepPacket(pset1<Packet>(m_step)), m_interPacket(plset<Packet>(0)) {}
|
||||||
|
|
||||||
template<typename Index>
|
template<typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (Index i) const { return m_low+i*m_step; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (IndexType i) const { return m_low+i*m_step; }
|
||||||
|
|
||||||
template<typename Index>
|
template<typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(Index i) const
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(IndexType i) const
|
||||||
{ return internal::padd(m_lowPacket, pmul(m_stepPacket, padd(pset1<Packet>(Scalar(i)),m_interPacket))); }
|
{ return internal::padd(m_lowPacket, pmul(m_stepPacket, padd(pset1<Packet>(Scalar(i)),m_interPacket))); }
|
||||||
|
|
||||||
const Scalar m_low;
|
const Scalar m_low;
|
||||||
@ -102,15 +102,15 @@ struct linspaced_op_impl<Scalar,Packet,/*RandomAccess*/true,/*IsInteger*/true>
|
|||||||
m_low(low), m_length(high-low), m_divisor(convert_index<Scalar>(num_steps==1?1:num_steps-1)), m_interPacket(plset<Packet>(0))
|
m_low(low), m_length(high-low), m_divisor(convert_index<Scalar>(num_steps==1?1:num_steps-1)), m_interPacket(plset<Packet>(0))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
template<typename Index>
|
template<typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
const Scalar operator() (Index i) const {
|
const Scalar operator() (IndexType i) const {
|
||||||
return m_low + (m_length*Scalar(i))/m_divisor;
|
return m_low + (m_length*Scalar(i))/m_divisor;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename Index>
|
template<typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
const Packet packetOp(Index i) const {
|
const Packet packetOp(IndexType i) const {
|
||||||
return internal::padd(pset1<Packet>(m_low), pdiv(pmul(pset1<Packet>(m_length), padd(pset1<Packet>(Scalar(i)),m_interPacket)),
|
return internal::padd(pset1<Packet>(m_low), pdiv(pmul(pset1<Packet>(m_length), padd(pset1<Packet>(Scalar(i)),m_interPacket)),
|
||||||
pset1<Packet>(m_divisor))); }
|
pset1<Packet>(m_divisor))); }
|
||||||
|
|
||||||
@ -142,11 +142,11 @@ template <typename Scalar, typename PacketType, bool RandomAccess> struct linspa
|
|||||||
: impl((num_steps==1 ? high : low),high,num_steps)
|
: impl((num_steps==1 ? high : low),high,num_steps)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
template<typename Index>
|
template<typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (Index i) const { return impl(i); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (IndexType i) const { return impl(i); }
|
||||||
|
|
||||||
template<typename Packet,typename Index>
|
template<typename Packet,typename IndexType>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(Index i) const { return impl.packetOp(i); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(IndexType i) const { return impl.packetOp(i); }
|
||||||
|
|
||||||
// This proxy object handles the actual required temporaries, the different
|
// This proxy object handles the actual required temporaries, the different
|
||||||
// implementations (random vs. sequential access) as well as the
|
// implementations (random vs. sequential access) as well as the
|
||||||
|
Loading…
x
Reference in New Issue
Block a user