mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-04-22 01:29:35 +08:00
Fix c++20 warnings about using enums in arithmetic expressions.
This commit is contained in:
parent
001a57519a
commit
f64b2954c7
@ -591,7 +591,7 @@ struct dense_assignment_loop<Kernel, SliceVectorizedTraversal, InnerUnrolling>
|
|||||||
|
|
||||||
enum { innerSize = DstXprType::InnerSizeAtCompileTime,
|
enum { innerSize = DstXprType::InnerSizeAtCompileTime,
|
||||||
packetSize =unpacket_traits<PacketType>::size,
|
packetSize =unpacket_traits<PacketType>::size,
|
||||||
vectorizableSize = (innerSize/packetSize)*packetSize,
|
vectorizableSize = (int(innerSize) / int(packetSize)) * int(packetSize),
|
||||||
size = DstXprType::SizeAtCompileTime };
|
size = DstXprType::SizeAtCompileTime };
|
||||||
|
|
||||||
for(Index outer = 0; outer < kernel.outerSize(); ++outer)
|
for(Index outer = 0; outer < kernel.outerSize(); ++outer)
|
||||||
|
@ -81,7 +81,7 @@ EIGEN_DEVICE_FUNC inline bool DenseBase<Derived>::all() const
|
|||||||
typedef internal::evaluator<Derived> Evaluator;
|
typedef internal::evaluator<Derived> Evaluator;
|
||||||
enum {
|
enum {
|
||||||
unroll = SizeAtCompileTime != Dynamic
|
unroll = SizeAtCompileTime != Dynamic
|
||||||
&& SizeAtCompileTime * (Evaluator::CoeffReadCost + NumTraits<Scalar>::AddCost) <= EIGEN_UNROLLING_LIMIT
|
&& SizeAtCompileTime * (int(Evaluator::CoeffReadCost) + int(NumTraits<Scalar>::AddCost)) <= EIGEN_UNROLLING_LIMIT
|
||||||
};
|
};
|
||||||
Evaluator evaluator(derived());
|
Evaluator evaluator(derived());
|
||||||
if(unroll)
|
if(unroll)
|
||||||
@ -105,7 +105,7 @@ EIGEN_DEVICE_FUNC inline bool DenseBase<Derived>::any() const
|
|||||||
typedef internal::evaluator<Derived> Evaluator;
|
typedef internal::evaluator<Derived> Evaluator;
|
||||||
enum {
|
enum {
|
||||||
unroll = SizeAtCompileTime != Dynamic
|
unroll = SizeAtCompileTime != Dynamic
|
||||||
&& SizeAtCompileTime * (Evaluator::CoeffReadCost + NumTraits<Scalar>::AddCost) <= EIGEN_UNROLLING_LIMIT
|
&& SizeAtCompileTime * (int(Evaluator::CoeffReadCost) + int(NumTraits<Scalar>::AddCost)) <= EIGEN_UNROLLING_LIMIT
|
||||||
};
|
};
|
||||||
Evaluator evaluator(derived());
|
Evaluator evaluator(derived());
|
||||||
if(unroll)
|
if(unroll)
|
||||||
|
@ -561,7 +561,7 @@ struct unary_evaluator<CwiseUnaryOp<UnaryOp, ArgType>, IndexBased >
|
|||||||
typedef CwiseUnaryOp<UnaryOp, ArgType> XprType;
|
typedef CwiseUnaryOp<UnaryOp, ArgType> XprType;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
CoeffReadCost = evaluator<ArgType>::CoeffReadCost + functor_traits<UnaryOp>::Cost,
|
CoeffReadCost = int(evaluator<ArgType>::CoeffReadCost) + int(functor_traits<UnaryOp>::Cost),
|
||||||
|
|
||||||
Flags = evaluator<ArgType>::Flags
|
Flags = evaluator<ArgType>::Flags
|
||||||
& (HereditaryBits | LinearAccessBit | (functor_traits<UnaryOp>::PacketAccess ? PacketAccessBit : 0)),
|
& (HereditaryBits | LinearAccessBit | (functor_traits<UnaryOp>::PacketAccess ? PacketAccessBit : 0)),
|
||||||
@ -736,7 +736,7 @@ struct binary_evaluator<CwiseBinaryOp<BinaryOp, Lhs, Rhs>, IndexBased, IndexBase
|
|||||||
typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> XprType;
|
typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> XprType;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
CoeffReadCost = evaluator<Lhs>::CoeffReadCost + evaluator<Rhs>::CoeffReadCost + functor_traits<BinaryOp>::Cost,
|
CoeffReadCost = int(evaluator<Lhs>::CoeffReadCost) + int(evaluator<Rhs>::CoeffReadCost) + int(functor_traits<BinaryOp>::Cost),
|
||||||
|
|
||||||
LhsFlags = evaluator<Lhs>::Flags,
|
LhsFlags = evaluator<Lhs>::Flags,
|
||||||
RhsFlags = evaluator<Rhs>::Flags,
|
RhsFlags = evaluator<Rhs>::Flags,
|
||||||
@ -817,7 +817,7 @@ struct unary_evaluator<CwiseUnaryView<UnaryOp, ArgType>, IndexBased>
|
|||||||
typedef CwiseUnaryView<UnaryOp, ArgType> XprType;
|
typedef CwiseUnaryView<UnaryOp, ArgType> XprType;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
CoeffReadCost = evaluator<ArgType>::CoeffReadCost + functor_traits<UnaryOp>::Cost,
|
CoeffReadCost = int(evaluator<ArgType>::CoeffReadCost) + int(functor_traits<UnaryOp>::Cost),
|
||||||
|
|
||||||
Flags = (evaluator<ArgType>::Flags & (HereditaryBits | LinearAccessBit | DirectAccessBit)),
|
Flags = (evaluator<ArgType>::Flags & (HereditaryBits | LinearAccessBit | DirectAccessBit)),
|
||||||
|
|
||||||
|
@ -289,9 +289,9 @@ struct NumTraits<Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols> >
|
|||||||
IsInteger = NumTraits<Scalar>::IsInteger,
|
IsInteger = NumTraits<Scalar>::IsInteger,
|
||||||
IsSigned = NumTraits<Scalar>::IsSigned,
|
IsSigned = NumTraits<Scalar>::IsSigned,
|
||||||
RequireInitialization = 1,
|
RequireInitialization = 1,
|
||||||
ReadCost = ArrayType::SizeAtCompileTime==Dynamic ? HugeCost : ArrayType::SizeAtCompileTime * NumTraits<Scalar>::ReadCost,
|
ReadCost = ArrayType::SizeAtCompileTime==Dynamic ? HugeCost : ArrayType::SizeAtCompileTime * int(NumTraits<Scalar>::ReadCost),
|
||||||
AddCost = ArrayType::SizeAtCompileTime==Dynamic ? HugeCost : ArrayType::SizeAtCompileTime * NumTraits<Scalar>::AddCost,
|
AddCost = ArrayType::SizeAtCompileTime==Dynamic ? HugeCost : ArrayType::SizeAtCompileTime * int(NumTraits<Scalar>::AddCost),
|
||||||
MulCost = ArrayType::SizeAtCompileTime==Dynamic ? HugeCost : ArrayType::SizeAtCompileTime * NumTraits<Scalar>::MulCost
|
MulCost = ArrayType::SizeAtCompileTime==Dynamic ? HugeCost : ArrayType::SizeAtCompileTime * int(NumTraits<Scalar>::MulCost)
|
||||||
};
|
};
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
||||||
|
@ -145,7 +145,7 @@ struct evaluator<PartialReduxExpr<ArgType, MemberOp, Direction> >
|
|||||||
enum {
|
enum {
|
||||||
CoeffReadCost = TraversalSize==Dynamic ? HugeCost
|
CoeffReadCost = TraversalSize==Dynamic ? HugeCost
|
||||||
: TraversalSize==0 ? 1
|
: TraversalSize==0 ? 1
|
||||||
: TraversalSize * evaluator<ArgType>::CoeffReadCost + int(CostOpType::value),
|
: int(TraversalSize) * int(evaluator<ArgType>::CoeffReadCost) + int(CostOpType::value),
|
||||||
|
|
||||||
_ArgFlags = evaluator<ArgType>::Flags,
|
_ArgFlags = evaluator<ArgType>::Flags,
|
||||||
|
|
||||||
|
@ -831,7 +831,7 @@ struct diagonal_product_evaluator_base
|
|||||||
typedef typename ScalarBinaryOpTraits<typename MatrixType::Scalar, typename DiagonalType::Scalar>::ReturnType Scalar;
|
typedef typename ScalarBinaryOpTraits<typename MatrixType::Scalar, typename DiagonalType::Scalar>::ReturnType Scalar;
|
||||||
public:
|
public:
|
||||||
enum {
|
enum {
|
||||||
CoeffReadCost = NumTraits<Scalar>::MulCost + evaluator<MatrixType>::CoeffReadCost + evaluator<DiagonalType>::CoeffReadCost,
|
CoeffReadCost = int(NumTraits<Scalar>::MulCost) + int(evaluator<MatrixType>::CoeffReadCost) + int(evaluator<DiagonalType>::CoeffReadCost),
|
||||||
|
|
||||||
MatrixFlags = evaluator<MatrixType>::Flags,
|
MatrixFlags = evaluator<MatrixType>::Flags,
|
||||||
DiagFlags = evaluator<DiagonalType>::Flags,
|
DiagFlags = evaluator<DiagonalType>::Flags,
|
||||||
|
@ -58,7 +58,7 @@ public:
|
|||||||
public:
|
public:
|
||||||
enum {
|
enum {
|
||||||
Cost = Evaluator::SizeAtCompileTime == Dynamic ? HugeCost
|
Cost = Evaluator::SizeAtCompileTime == Dynamic ? HugeCost
|
||||||
: Evaluator::SizeAtCompileTime * Evaluator::CoeffReadCost + (Evaluator::SizeAtCompileTime-1) * functor_traits<Func>::Cost,
|
: int(Evaluator::SizeAtCompileTime) * int(Evaluator::CoeffReadCost) + (Evaluator::SizeAtCompileTime-1) * functor_traits<Func>::Cost,
|
||||||
UnrollingLimit = EIGEN_UNROLLING_LIMIT * (int(Traversal) == int(DefaultTraversal) ? 1 : int(PacketSize))
|
UnrollingLimit = EIGEN_UNROLLING_LIMIT * (int(Traversal) == int(DefaultTraversal) ? 1 : int(PacketSize))
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -331,7 +331,7 @@ struct redux_impl<Func, Evaluator, LinearVectorizedTraversal, CompleteUnrolling>
|
|||||||
enum {
|
enum {
|
||||||
PacketSize = redux_traits<Func, Evaluator>::PacketSize,
|
PacketSize = redux_traits<Func, Evaluator>::PacketSize,
|
||||||
Size = Evaluator::SizeAtCompileTime,
|
Size = Evaluator::SizeAtCompileTime,
|
||||||
VectorizedSize = (Size / PacketSize) * PacketSize
|
VectorizedSize = (int(Size) / int(PacketSize)) * int(PacketSize)
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename XprType>
|
template<typename XprType>
|
||||||
|
@ -819,7 +819,7 @@ void call_triangular_assignment_loop(DstXprType& dst, const SrcXprType& src, con
|
|||||||
enum {
|
enum {
|
||||||
unroll = DstXprType::SizeAtCompileTime != Dynamic
|
unroll = DstXprType::SizeAtCompileTime != Dynamic
|
||||||
&& SrcEvaluatorType::CoeffReadCost < HugeCost
|
&& SrcEvaluatorType::CoeffReadCost < HugeCost
|
||||||
&& DstXprType::SizeAtCompileTime * (DstEvaluatorType::CoeffReadCost+SrcEvaluatorType::CoeffReadCost) / 2 <= EIGEN_UNROLLING_LIMIT
|
&& DstXprType::SizeAtCompileTime * (int(DstEvaluatorType::CoeffReadCost) + int(SrcEvaluatorType::CoeffReadCost)) / 2 <= EIGEN_UNROLLING_LIMIT
|
||||||
};
|
};
|
||||||
|
|
||||||
triangular_assignment_loop<Kernel, Mode, unroll ? int(DstXprType::SizeAtCompileTime) : Dynamic, SetOpposite>::run(kernel);
|
triangular_assignment_loop<Kernel, Mode, unroll ? int(DstXprType::SizeAtCompileTime) : Dynamic, SetOpposite>::run(kernel);
|
||||||
|
@ -124,7 +124,7 @@ void DenseBase<Derived>::visit(Visitor& visitor) const
|
|||||||
|
|
||||||
enum {
|
enum {
|
||||||
unroll = SizeAtCompileTime != Dynamic
|
unroll = SizeAtCompileTime != Dynamic
|
||||||
&& SizeAtCompileTime * ThisEvaluator::CoeffReadCost + (SizeAtCompileTime-1) * internal::functor_traits<Visitor>::Cost <= EIGEN_UNROLLING_LIMIT
|
&& SizeAtCompileTime * int(ThisEvaluator::CoeffReadCost) + (SizeAtCompileTime-1) * int(internal::functor_traits<Visitor>::Cost) <= EIGEN_UNROLLING_LIMIT
|
||||||
};
|
};
|
||||||
return internal::visitor_impl<Visitor, ThisEvaluator, unroll ? int(SizeAtCompileTime) : Dynamic>::run(thisEval, visitor);
|
return internal::visitor_impl<Visitor, ThisEvaluator, unroll ? int(SizeAtCompileTime) : Dynamic>::run(thisEval, visitor);
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ struct scalar_sum_op : binary_op_base<LhsScalar,RhsScalar>
|
|||||||
template<typename LhsScalar,typename RhsScalar>
|
template<typename LhsScalar,typename RhsScalar>
|
||||||
struct functor_traits<scalar_sum_op<LhsScalar,RhsScalar> > {
|
struct functor_traits<scalar_sum_op<LhsScalar,RhsScalar> > {
|
||||||
enum {
|
enum {
|
||||||
Cost = (NumTraits<LhsScalar>::AddCost+NumTraits<RhsScalar>::AddCost)/2, // rough estimate!
|
Cost = (int(NumTraits<LhsScalar>::AddCost) + int(NumTraits<RhsScalar>::AddCost)) / 2, // rough estimate!
|
||||||
PacketAccess = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasAdd && packet_traits<RhsScalar>::HasAdd
|
PacketAccess = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasAdd && packet_traits<RhsScalar>::HasAdd
|
||||||
// TODO vectorize mixed sum
|
// TODO vectorize mixed sum
|
||||||
};
|
};
|
||||||
@ -88,7 +88,7 @@ struct scalar_product_op : binary_op_base<LhsScalar,RhsScalar>
|
|||||||
template<typename LhsScalar,typename RhsScalar>
|
template<typename LhsScalar,typename RhsScalar>
|
||||||
struct functor_traits<scalar_product_op<LhsScalar,RhsScalar> > {
|
struct functor_traits<scalar_product_op<LhsScalar,RhsScalar> > {
|
||||||
enum {
|
enum {
|
||||||
Cost = (NumTraits<LhsScalar>::MulCost + NumTraits<RhsScalar>::MulCost)/2, // rough estimate!
|
Cost = (int(NumTraits<LhsScalar>::MulCost) + int(NumTraits<RhsScalar>::MulCost))/2, // rough estimate!
|
||||||
PacketAccess = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasMul && packet_traits<RhsScalar>::HasMul
|
PacketAccess = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasMul && packet_traits<RhsScalar>::HasMul
|
||||||
// TODO vectorize mixed product
|
// TODO vectorize mixed product
|
||||||
};
|
};
|
||||||
@ -364,7 +364,7 @@ struct scalar_difference_op : binary_op_base<LhsScalar,RhsScalar>
|
|||||||
template<typename LhsScalar,typename RhsScalar>
|
template<typename LhsScalar,typename RhsScalar>
|
||||||
struct functor_traits<scalar_difference_op<LhsScalar,RhsScalar> > {
|
struct functor_traits<scalar_difference_op<LhsScalar,RhsScalar> > {
|
||||||
enum {
|
enum {
|
||||||
Cost = (NumTraits<LhsScalar>::AddCost+NumTraits<RhsScalar>::AddCost)/2,
|
Cost = (int(NumTraits<LhsScalar>::AddCost) + int(NumTraits<RhsScalar>::AddCost)) / 2,
|
||||||
PacketAccess = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasSub && packet_traits<RhsScalar>::HasSub
|
PacketAccess = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasSub && packet_traits<RhsScalar>::HasSub
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -1673,8 +1673,8 @@ void gebp_kernel<LhsScalar,RhsScalar,Index,DataMapper,mr,nr,ConjugateLhs,Conjuga
|
|||||||
EIGEN_GEBGP_ONESTEP(6);
|
EIGEN_GEBGP_ONESTEP(6);
|
||||||
EIGEN_GEBGP_ONESTEP(7);
|
EIGEN_GEBGP_ONESTEP(7);
|
||||||
|
|
||||||
blB += pk*RhsProgress;
|
blB += int(pk) * int(RhsProgress);
|
||||||
blA += pk*3*Traits::LhsProgress;
|
blA += int(pk) * 3 * int(Traits::LhsProgress);
|
||||||
|
|
||||||
EIGEN_ASM_COMMENT("end gebp micro kernel 3pX1");
|
EIGEN_ASM_COMMENT("end gebp micro kernel 3pX1");
|
||||||
}
|
}
|
||||||
@ -1885,8 +1885,8 @@ void gebp_kernel<LhsScalar,RhsScalar,Index,DataMapper,mr,nr,ConjugateLhs,Conjuga
|
|||||||
EIGEN_GEBGP_ONESTEP(6);
|
EIGEN_GEBGP_ONESTEP(6);
|
||||||
EIGEN_GEBGP_ONESTEP(7);
|
EIGEN_GEBGP_ONESTEP(7);
|
||||||
|
|
||||||
blB += pk*RhsProgress;
|
blB += int(pk) * int(RhsProgress);
|
||||||
blA += pk*2*Traits::LhsProgress;
|
blA += int(pk) * 2 * int(Traits::LhsProgress);
|
||||||
|
|
||||||
EIGEN_ASM_COMMENT("end gebp micro kernel 2pX1");
|
EIGEN_ASM_COMMENT("end gebp micro kernel 2pX1");
|
||||||
}
|
}
|
||||||
|
@ -126,7 +126,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
CoeffReadCost = evaluator<Lhs>::CoeffReadCost + evaluator<Rhs>::CoeffReadCost + functor_traits<BinaryOp>::Cost,
|
CoeffReadCost = int(evaluator<Lhs>::CoeffReadCost) + int(evaluator<Rhs>::CoeffReadCost) + int(functor_traits<BinaryOp>::Cost),
|
||||||
Flags = XprType::Flags
|
Flags = XprType::Flags
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -530,7 +530,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
CoeffReadCost = evaluator<LhsArg>::CoeffReadCost + evaluator<RhsArg>::CoeffReadCost + functor_traits<BinaryOp>::Cost,
|
CoeffReadCost = int(evaluator<LhsArg>::CoeffReadCost) + int(evaluator<RhsArg>::CoeffReadCost) + int(functor_traits<BinaryOp>::Cost),
|
||||||
Flags = XprType::Flags
|
Flags = XprType::Flags
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -604,7 +604,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
CoeffReadCost = evaluator<LhsArg>::CoeffReadCost + evaluator<RhsArg>::CoeffReadCost + functor_traits<BinaryOp>::Cost,
|
CoeffReadCost = int(evaluator<LhsArg>::CoeffReadCost) + int(evaluator<RhsArg>::CoeffReadCost) + int(functor_traits<BinaryOp>::Cost),
|
||||||
Flags = XprType::Flags
|
Flags = XprType::Flags
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ struct unary_evaluator<CwiseUnaryOp<UnaryOp,ArgType>, IteratorBased>
|
|||||||
class InnerIterator;
|
class InnerIterator;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
CoeffReadCost = evaluator<ArgType>::CoeffReadCost + functor_traits<UnaryOp>::Cost,
|
CoeffReadCost = int(evaluator<ArgType>::CoeffReadCost) + int(functor_traits<UnaryOp>::Cost),
|
||||||
Flags = XprType::Flags
|
Flags = XprType::Flags
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -159,11 +159,11 @@ struct vectorization_logic
|
|||||||
EIGEN_UNALIGNED_VECTORIZE ? InnerUnrolling : NoUnrolling));
|
EIGEN_UNALIGNED_VECTORIZE ? InnerUnrolling : NoUnrolling));
|
||||||
|
|
||||||
VERIFY(test_assign(Matrix1(),Matrix1()+Matrix1(),
|
VERIFY(test_assign(Matrix1(),Matrix1()+Matrix1(),
|
||||||
(Matrix1::InnerSizeAtCompileTime % PacketSize)==0 ? InnerVectorizedTraversal : LinearVectorizedTraversal,
|
(int(Matrix1::InnerSizeAtCompileTime) % int(PacketSize))==0 ? InnerVectorizedTraversal : LinearVectorizedTraversal,
|
||||||
CompleteUnrolling));
|
CompleteUnrolling));
|
||||||
|
|
||||||
VERIFY(test_assign(Matrix1u(),Matrix1()+Matrix1(),
|
VERIFY(test_assign(Matrix1u(),Matrix1()+Matrix1(),
|
||||||
EIGEN_UNALIGNED_VECTORIZE ? ((Matrix1::InnerSizeAtCompileTime % PacketSize)==0 ? InnerVectorizedTraversal : LinearVectorizedTraversal)
|
EIGEN_UNALIGNED_VECTORIZE ? ((int(Matrix1::InnerSizeAtCompileTime) % int(PacketSize))==0 ? InnerVectorizedTraversal : LinearVectorizedTraversal)
|
||||||
: LinearTraversal, CompleteUnrolling));
|
: LinearTraversal, CompleteUnrolling));
|
||||||
|
|
||||||
VERIFY(test_assign(Matrix44c().col(1),Matrix44c().col(2)+Matrix44c().col(3),
|
VERIFY(test_assign(Matrix44c().col(1),Matrix44c().col(2)+Matrix44c().col(3),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user