mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-09-14 02:13:13 +08:00
Decoupled the packet type definition from the definition of the tensor ops. All the vectorization is now defined in the tensor evaluators. This will make it possible to relialably support devices with different packet types in the same compilation unit.
This commit is contained in:
parent
3b614a2358
commit
e09eb835db
@ -69,14 +69,11 @@ class Tensor : public TensorBase<Tensor<Scalar_, NumIndices_, Options_, IndexTyp
|
|||||||
typedef typename internal::traits<Self>::StorageKind StorageKind;
|
typedef typename internal::traits<Self>::StorageKind StorageKind;
|
||||||
typedef typename internal::traits<Self>::Index Index;
|
typedef typename internal::traits<Self>::Index Index;
|
||||||
typedef Scalar_ Scalar;
|
typedef Scalar_ Scalar;
|
||||||
typedef typename internal::packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename NumTraits<Scalar>::Real RealScalar;
|
typedef typename NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename Base::CoeffReturnType CoeffReturnType;
|
typedef typename Base::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename Base::PacketReturnType PacketReturnType;
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
IsAligned = bool(EIGEN_MAX_ALIGN_BYTES>0) & !(Options_&DontAlign),
|
IsAligned = bool(EIGEN_MAX_ALIGN_BYTES>0) & !(Options_&DontAlign),
|
||||||
PacketAccess = (internal::packet_traits<Scalar>::size > 1),
|
|
||||||
Layout = Options_ & RowMajor ? RowMajor : ColMajor,
|
Layout = Options_ & RowMajor ? RowMajor : ColMajor,
|
||||||
CoordAccess = true,
|
CoordAccess = true,
|
||||||
RawAccess = true
|
RawAccess = true
|
||||||
|
@ -25,7 +25,6 @@ template<typename LhsXprType, typename RhsXprType>
|
|||||||
struct traits<TensorAssignOp<LhsXprType, RhsXprType> >
|
struct traits<TensorAssignOp<LhsXprType, RhsXprType> >
|
||||||
{
|
{
|
||||||
typedef typename LhsXprType::Scalar Scalar;
|
typedef typename LhsXprType::Scalar Scalar;
|
||||||
typedef typename internal::packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename traits<LhsXprType>::StorageKind StorageKind;
|
typedef typename traits<LhsXprType>::StorageKind StorageKind;
|
||||||
typedef typename promote_index_type<typename traits<LhsXprType>::Index,
|
typedef typename promote_index_type<typename traits<LhsXprType>::Index,
|
||||||
typename traits<RhsXprType>::Index>::type Index;
|
typename traits<RhsXprType>::Index>::type Index;
|
||||||
@ -62,10 +61,8 @@ class TensorAssignOp : public TensorBase<TensorAssignOp<LhsXprType, RhsXprType>
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorAssignOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorAssignOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorAssignOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename LhsXprType::CoeffReturnType CoeffReturnType;
|
typedef typename LhsXprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename LhsXprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorAssignOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorAssignOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorAssignOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorAssignOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorAssignOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorAssignOp>::Index Index;
|
||||||
@ -110,7 +107,7 @@ struct TensorEvaluator<const TensorAssignOp<LeftArgType, RightArgType>, Device>
|
|||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
typedef typename TensorEvaluator<RightArgType, Device>::Dimensions Dimensions;
|
typedef typename TensorEvaluator<RightArgType, Device>::Dimensions Dimensions;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const
|
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const
|
||||||
|
@ -25,7 +25,6 @@ struct traits<TensorBroadcastingOp<Broadcast, XprType> > : public traits<XprType
|
|||||||
{
|
{
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -70,10 +69,8 @@ class TensorBroadcastingOp : public TensorBase<TensorBroadcastingOp<Broadcast, X
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorBroadcastingOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorBroadcastingOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorBroadcastingOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorBroadcastingOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorBroadcastingOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorBroadcastingOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorBroadcastingOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorBroadcastingOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorBroadcastingOp>::Index Index;
|
||||||
@ -144,7 +141,7 @@ struct TensorEvaluator<const TensorBroadcastingOp<Broadcast, ArgType>, Device>
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
|
@ -26,7 +26,6 @@ struct traits<TensorChippingOp<DimId, XprType> > : public traits<XprType>
|
|||||||
{
|
{
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -80,10 +79,8 @@ class TensorChippingOp : public TensorBase<TensorChippingOp<DimId, XprType> >
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorChippingOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorChippingOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorChippingOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorChippingOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorChippingOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorChippingOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorChippingOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorChippingOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorChippingOp>::Index Index;
|
||||||
@ -184,7 +181,7 @@ struct TensorEvaluator<const TensorChippingOp<DimId, ArgType>, Device>
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
|
@ -26,7 +26,6 @@ struct traits<TensorConcatenationOp<Axis, LhsXprType, RhsXprType> >
|
|||||||
// Type promotion to handle the case where the types of the lhs and the rhs are different.
|
// Type promotion to handle the case where the types of the lhs and the rhs are different.
|
||||||
typedef typename promote_storage_type<typename LhsXprType::Scalar,
|
typedef typename promote_storage_type<typename LhsXprType::Scalar,
|
||||||
typename RhsXprType::Scalar>::ret Scalar;
|
typename RhsXprType::Scalar>::ret Scalar;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename promote_storage_type<typename traits<LhsXprType>::StorageKind,
|
typedef typename promote_storage_type<typename traits<LhsXprType>::StorageKind,
|
||||||
typename traits<RhsXprType>::StorageKind>::ret StorageKind;
|
typename traits<RhsXprType>::StorageKind>::ret StorageKind;
|
||||||
typedef typename promote_index_type<typename traits<LhsXprType>::Index,
|
typedef typename promote_index_type<typename traits<LhsXprType>::Index,
|
||||||
@ -60,14 +59,11 @@ class TensorConcatenationOp : public TensorBase<TensorConcatenationOp<Axis, LhsX
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename internal::traits<TensorConcatenationOp>::Scalar Scalar;
|
typedef typename internal::traits<TensorConcatenationOp>::Scalar Scalar;
|
||||||
typedef typename internal::traits<TensorConcatenationOp>::Packet Packet;
|
|
||||||
typedef typename internal::traits<TensorConcatenationOp>::StorageKind StorageKind;
|
typedef typename internal::traits<TensorConcatenationOp>::StorageKind StorageKind;
|
||||||
typedef typename internal::traits<TensorConcatenationOp>::Index Index;
|
typedef typename internal::traits<TensorConcatenationOp>::Index Index;
|
||||||
typedef typename internal::nested<TensorConcatenationOp>::type Nested;
|
typedef typename internal::nested<TensorConcatenationOp>::type Nested;
|
||||||
typedef typename internal::promote_storage_type<typename LhsXprType::CoeffReturnType,
|
typedef typename internal::promote_storage_type<typename LhsXprType::CoeffReturnType,
|
||||||
typename RhsXprType::CoeffReturnType>::ret CoeffReturnType;
|
typename RhsXprType::CoeffReturnType>::ret CoeffReturnType;
|
||||||
typedef typename internal::promote_storage_type<typename LhsXprType::PacketReturnType,
|
|
||||||
typename RhsXprType::PacketReturnType>::ret PacketReturnType;
|
|
||||||
typedef typename NumTraits<Scalar>::Real RealScalar;
|
typedef typename NumTraits<Scalar>::Real RealScalar;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorConcatenationOp(const LhsXprType& lhs, const RhsXprType& rhs, Axis axis)
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorConcatenationOp(const LhsXprType& lhs, const RhsXprType& rhs, Axis axis)
|
||||||
@ -120,7 +116,7 @@ struct TensorEvaluator<const TensorConcatenationOp<Axis, LeftArgType, RightArgTy
|
|||||||
typedef DSizes<Index, NumDims> Dimensions;
|
typedef DSizes<Index, NumDims> Dimensions;
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
enum {
|
enum {
|
||||||
IsAligned = false,
|
IsAligned = false,
|
||||||
PacketAccess = TensorEvaluator<LeftArgType, Device>::PacketAccess & TensorEvaluator<RightArgType, Device>::PacketAccess,
|
PacketAccess = TensorEvaluator<LeftArgType, Device>::PacketAccess & TensorEvaluator<RightArgType, Device>::PacketAccess,
|
||||||
|
@ -27,7 +27,6 @@ struct traits<TensorContractionOp<Dimensions, LhsXprType, RhsXprType> >
|
|||||||
// Type promotion to handle the case where the types of the lhs and the rhs are different.
|
// Type promotion to handle the case where the types of the lhs and the rhs are different.
|
||||||
typedef typename internal::promote_storage_type<typename LhsXprType::Scalar,
|
typedef typename internal::promote_storage_type<typename LhsXprType::Scalar,
|
||||||
typename RhsXprType::Scalar>::ret Scalar;
|
typename RhsXprType::Scalar>::ret Scalar;
|
||||||
typedef typename internal::packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename promote_storage_type<typename traits<LhsXprType>::StorageKind,
|
typedef typename promote_storage_type<typename traits<LhsXprType>::StorageKind,
|
||||||
typename traits<RhsXprType>::StorageKind>::ret StorageKind;
|
typename traits<RhsXprType>::StorageKind>::ret StorageKind;
|
||||||
typedef typename promote_index_type<typename traits<LhsXprType>::Index,
|
typedef typename promote_index_type<typename traits<LhsXprType>::Index,
|
||||||
@ -76,11 +75,8 @@ class TensorContractionOp : public TensorBase<TensorContractionOp<Indices, LhsXp
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorContractionOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorContractionOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorContractionOp>::Packet Packet;
|
|
||||||
typedef typename internal::promote_storage_type<typename LhsXprType::CoeffReturnType,
|
typedef typename internal::promote_storage_type<typename LhsXprType::CoeffReturnType,
|
||||||
typename RhsXprType::CoeffReturnType>::ret CoeffReturnType;
|
typename RhsXprType::CoeffReturnType>::ret CoeffReturnType;
|
||||||
typedef typename internal::promote_storage_type<typename LhsXprType::PacketReturnType,
|
|
||||||
typename RhsXprType::PacketReturnType>::ret PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorContractionOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorContractionOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorContractionOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorContractionOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorContractionOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorContractionOp>::Index Index;
|
||||||
@ -118,10 +114,9 @@ struct TensorContractionEvaluatorBase
|
|||||||
|
|
||||||
typedef TensorContractionOp<Indices, LeftArgType, RightArgType> XprType;
|
typedef TensorContractionOp<Indices, LeftArgType, RightArgType> XprType;
|
||||||
typedef typename internal::remove_const<typename XprType::Scalar>::type Scalar;
|
typedef typename internal::remove_const<typename XprType::Scalar>::type Scalar;
|
||||||
typedef typename XprType::Packet Packet;
|
|
||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
IsAligned = true,
|
IsAligned = true,
|
||||||
@ -434,7 +429,7 @@ struct TensorContractionEvaluatorBase
|
|||||||
|
|
||||||
template<int LoadMode>
|
template<int LoadMode>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketReturnType packet(Index index) const {
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketReturnType packet(Index index) const {
|
||||||
return internal::ploadt<Packet, LoadMode>(m_result + index);
|
return internal::ploadt<PacketReturnType, LoadMode>(m_result + index);
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar* data() const { return m_result; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar* data() const { return m_result; }
|
||||||
@ -478,10 +473,9 @@ struct TensorEvaluator<const TensorContractionOp<Indices, LeftArgType, RightArgT
|
|||||||
|
|
||||||
typedef TensorContractionOp<Indices, LeftArgType, RightArgType> XprType;
|
typedef TensorContractionOp<Indices, LeftArgType, RightArgType> XprType;
|
||||||
typedef typename internal::remove_const<typename XprType::Scalar>::type Scalar;
|
typedef typename internal::remove_const<typename XprType::Scalar>::type Scalar;
|
||||||
typedef typename XprType::Packet Packet;
|
|
||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
Layout = TensorEvaluator<LeftArgType, Device>::Layout,
|
Layout = TensorEvaluator<LeftArgType, Device>::Layout,
|
||||||
|
@ -1213,10 +1213,9 @@ struct TensorEvaluator<const TensorContractionOp<Indices, LeftArgType, RightArgT
|
|||||||
|
|
||||||
typedef TensorContractionOp<Indices, LeftArgType, RightArgType> XprType;
|
typedef TensorContractionOp<Indices, LeftArgType, RightArgType> XprType;
|
||||||
typedef typename internal::remove_const<typename XprType::Scalar>::type Scalar;
|
typedef typename internal::remove_const<typename XprType::Scalar>::type Scalar;
|
||||||
typedef typename XprType::Packet Packet;
|
|
||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, GpuDevice>::type PacketReturnType;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
Layout = TensorEvaluator<LeftArgType, Device>::Layout,
|
Layout = TensorEvaluator<LeftArgType, Device>::Layout,
|
||||||
|
@ -230,8 +230,8 @@ class BaseTensorContractionMapper : public SimpleTensorContractionMapper<Scalar,
|
|||||||
const contract_t& k_strides) :
|
const contract_t& k_strides) :
|
||||||
ParentMapper(tensor, nocontract_strides, ij_strides, contract_strides, k_strides) { }
|
ParentMapper(tensor, nocontract_strides, ij_strides, contract_strides, k_strides) { }
|
||||||
|
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
typedef typename Tensor::PacketReturnType Packet;
|
||||||
typedef typename packet_traits<Scalar>::half HalfPacket;
|
typedef typename unpacket_traits<Packet>::half HalfPacket;
|
||||||
|
|
||||||
template <int AlignmentType = Alignment>
|
template <int AlignmentType = Alignment>
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
|
@ -65,10 +65,9 @@ struct TensorEvaluator<const TensorContractionOp<Indices, LeftArgType, RightArgT
|
|||||||
|
|
||||||
typedef TensorContractionOp<Indices, LeftArgType, RightArgType> XprType;
|
typedef TensorContractionOp<Indices, LeftArgType, RightArgType> XprType;
|
||||||
typedef typename internal::remove_const<typename XprType::Scalar>::type Scalar;
|
typedef typename internal::remove_const<typename XprType::Scalar>::type Scalar;
|
||||||
typedef typename XprType::Packet Packet;
|
|
||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
Layout = TensorEvaluator<LeftArgType, Device>::Layout,
|
Layout = TensorEvaluator<LeftArgType, Device>::Layout,
|
||||||
|
@ -25,7 +25,6 @@ struct traits<TensorConversionOp<TargetType, XprType> >
|
|||||||
{
|
{
|
||||||
// Type promotion to handle the case where the types of the lhs and the rhs are different.
|
// Type promotion to handle the case where the types of the lhs and the rhs are different.
|
||||||
typedef TargetType Scalar;
|
typedef TargetType Scalar;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename traits<XprType>::StorageKind StorageKind;
|
typedef typename traits<XprType>::StorageKind StorageKind;
|
||||||
typedef typename traits<XprType>::Index Index;
|
typedef typename traits<XprType>::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -146,12 +145,10 @@ class TensorConversionOp : public TensorBase<TensorConversionOp<TargetType, XprT
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename internal::traits<TensorConversionOp>::Scalar Scalar;
|
typedef typename internal::traits<TensorConversionOp>::Scalar Scalar;
|
||||||
typedef typename internal::traits<TensorConversionOp>::Packet Packet;
|
|
||||||
typedef typename internal::traits<TensorConversionOp>::StorageKind StorageKind;
|
typedef typename internal::traits<TensorConversionOp>::StorageKind StorageKind;
|
||||||
typedef typename internal::traits<TensorConversionOp>::Index Index;
|
typedef typename internal::traits<TensorConversionOp>::Index Index;
|
||||||
typedef typename internal::nested<TensorConversionOp>::type Nested;
|
typedef typename internal::nested<TensorConversionOp>::type Nested;
|
||||||
typedef Scalar CoeffReturnType;
|
typedef Scalar CoeffReturnType;
|
||||||
typedef Packet PacketReturnType;
|
|
||||||
typedef typename NumTraits<Scalar>::Real RealScalar;
|
typedef typename NumTraits<Scalar>::Real RealScalar;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorConversionOp(const XprType& xpr)
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorConversionOp(const XprType& xpr)
|
||||||
@ -190,8 +187,8 @@ struct TensorEvaluator<const TensorConversionOp<TargetType, ArgType>, Device>
|
|||||||
typedef TargetType Scalar;
|
typedef TargetType Scalar;
|
||||||
typedef TargetType CoeffReturnType;
|
typedef TargetType CoeffReturnType;
|
||||||
typedef typename internal::remove_all<typename internal::traits<ArgType>::Scalar>::type SrcType;
|
typedef typename internal::remove_all<typename internal::traits<ArgType>::Scalar>::type SrcType;
|
||||||
typedef typename internal::traits<XprType>::Packet PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
typedef typename internal::packet_traits<SrcType>::type PacketSourceType;
|
typedef typename PacketType<SrcType, Device>::type PacketSourceType;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
IsAligned = false,
|
IsAligned = false,
|
||||||
|
@ -221,7 +221,6 @@ struct traits<TensorConvolutionOp<Dimensions, InputXprType, KernelXprType> >
|
|||||||
// Type promotion to handle the case where the types of the lhs and the rhs are different.
|
// Type promotion to handle the case where the types of the lhs and the rhs are different.
|
||||||
typedef typename promote_storage_type<typename InputXprType::Scalar,
|
typedef typename promote_storage_type<typename InputXprType::Scalar,
|
||||||
typename KernelXprType::Scalar>::ret Scalar;
|
typename KernelXprType::Scalar>::ret Scalar;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename promote_storage_type<typename traits<InputXprType>::StorageKind,
|
typedef typename promote_storage_type<typename traits<InputXprType>::StorageKind,
|
||||||
typename traits<KernelXprType>::StorageKind>::ret StorageKind;
|
typename traits<KernelXprType>::StorageKind>::ret StorageKind;
|
||||||
typedef typename promote_index_type<typename traits<InputXprType>::Index,
|
typedef typename promote_index_type<typename traits<InputXprType>::Index,
|
||||||
@ -259,12 +258,9 @@ class TensorConvolutionOp : public TensorBase<TensorConvolutionOp<Indices, Input
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorConvolutionOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorConvolutionOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorConvolutionOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename internal::promote_storage_type<typename InputXprType::CoeffReturnType,
|
typedef typename internal::promote_storage_type<typename InputXprType::CoeffReturnType,
|
||||||
typename KernelXprType::CoeffReturnType>::ret CoeffReturnType;
|
typename KernelXprType::CoeffReturnType>::ret CoeffReturnType;
|
||||||
typedef typename internal::promote_storage_type<typename InputXprType::PacketReturnType,
|
|
||||||
typename KernelXprType::PacketReturnType>::ret PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorConvolutionOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorConvolutionOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorConvolutionOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorConvolutionOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorConvolutionOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorConvolutionOp>::Index Index;
|
||||||
@ -373,7 +369,7 @@ struct TensorEvaluator<const TensorConvolutionOp<Indices, InputArgType, KernelAr
|
|||||||
|
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
@ -775,7 +771,7 @@ struct TensorEvaluator<const TensorConvolutionOp<Indices, InputArgType, KernelAr
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, GpuDevice>::type PacketReturnType;
|
||||||
typedef typename InputArgType::Scalar Scalar;
|
typedef typename InputArgType::Scalar Scalar;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
@ -24,7 +24,6 @@ template<typename CustomUnaryFunc, typename XprType>
|
|||||||
struct traits<TensorCustomUnaryOp<CustomUnaryFunc, XprType> >
|
struct traits<TensorCustomUnaryOp<CustomUnaryFunc, XprType> >
|
||||||
{
|
{
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprType::StorageKind StorageKind;
|
typedef typename XprType::StorageKind StorageKind;
|
||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -54,10 +53,8 @@ class TensorCustomUnaryOp : public TensorBase<TensorCustomUnaryOp<CustomUnaryFun
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename internal::traits<TensorCustomUnaryOp>::Scalar Scalar;
|
typedef typename internal::traits<TensorCustomUnaryOp>::Scalar Scalar;
|
||||||
typedef typename internal::traits<TensorCustomUnaryOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename internal::nested<TensorCustomUnaryOp>::type Nested;
|
typedef typename internal::nested<TensorCustomUnaryOp>::type Nested;
|
||||||
typedef typename internal::traits<TensorCustomUnaryOp>::StorageKind StorageKind;
|
typedef typename internal::traits<TensorCustomUnaryOp>::StorageKind StorageKind;
|
||||||
typedef typename internal::traits<TensorCustomUnaryOp>::Index Index;
|
typedef typename internal::traits<TensorCustomUnaryOp>::Index Index;
|
||||||
@ -105,7 +102,7 @@ struct TensorEvaluator<const TensorCustomUnaryOp<CustomUnaryFunc, XprType>, Devi
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
@ -167,11 +164,8 @@ struct traits<TensorCustomBinaryOp<CustomBinaryFunc, LhsXprType, RhsXprType> >
|
|||||||
{
|
{
|
||||||
typedef typename internal::promote_storage_type<typename LhsXprType::Scalar,
|
typedef typename internal::promote_storage_type<typename LhsXprType::Scalar,
|
||||||
typename RhsXprType::Scalar>::ret Scalar;
|
typename RhsXprType::Scalar>::ret Scalar;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename internal::promote_storage_type<typename LhsXprType::CoeffReturnType,
|
typedef typename internal::promote_storage_type<typename LhsXprType::CoeffReturnType,
|
||||||
typename RhsXprType::CoeffReturnType>::ret CoeffReturnType;
|
typename RhsXprType::CoeffReturnType>::ret CoeffReturnType;
|
||||||
typedef typename internal::promote_storage_type<typename LhsXprType::PacketReturnType,
|
|
||||||
typename RhsXprType::PacketReturnType>::ret PacketReturnType;
|
|
||||||
typedef typename promote_storage_type<typename traits<LhsXprType>::StorageKind,
|
typedef typename promote_storage_type<typename traits<LhsXprType>::StorageKind,
|
||||||
typename traits<RhsXprType>::StorageKind>::ret StorageKind;
|
typename traits<RhsXprType>::StorageKind>::ret StorageKind;
|
||||||
typedef typename promote_index_type<typename traits<LhsXprType>::Index,
|
typedef typename promote_index_type<typename traits<LhsXprType>::Index,
|
||||||
@ -205,10 +199,8 @@ class TensorCustomBinaryOp : public TensorBase<TensorCustomBinaryOp<CustomBinary
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename internal::traits<TensorCustomBinaryOp>::Scalar Scalar;
|
typedef typename internal::traits<TensorCustomBinaryOp>::Scalar Scalar;
|
||||||
typedef typename internal::traits<TensorCustomBinaryOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename internal::traits<TensorCustomBinaryOp>::CoeffReturnType CoeffReturnType;
|
typedef typename internal::traits<TensorCustomBinaryOp>::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename internal::traits<TensorCustomBinaryOp>::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename internal::nested<TensorCustomBinaryOp>::type Nested;
|
typedef typename internal::nested<TensorCustomBinaryOp>::type Nested;
|
||||||
typedef typename internal::traits<TensorCustomBinaryOp>::StorageKind StorageKind;
|
typedef typename internal::traits<TensorCustomBinaryOp>::StorageKind StorageKind;
|
||||||
typedef typename internal::traits<TensorCustomBinaryOp>::Index Index;
|
typedef typename internal::traits<TensorCustomBinaryOp>::Index Index;
|
||||||
@ -261,7 +253,7 @@ struct TensorEvaluator<const TensorCustomBinaryOp<CustomBinaryFunc, LhsXprType,
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
|
@ -26,7 +26,6 @@ struct traits<TensorEvalToOp<XprType> >
|
|||||||
// Type promotion to handle the case where the types of the lhs and the rhs are different.
|
// Type promotion to handle the case where the types of the lhs and the rhs are different.
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -61,10 +60,8 @@ class TensorEvalToOp : public TensorBase<TensorEvalToOp<XprType> >
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorEvalToOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorEvalToOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorEvalToOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
||||||
typedef typename internal::remove_const<typename XprType::PacketReturnType>::type PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorEvalToOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorEvalToOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorEvalToOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorEvalToOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorEvalToOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorEvalToOp>::Index Index;
|
||||||
@ -90,7 +87,6 @@ struct TensorEvaluator<const TensorEvalToOp<ArgType>, Device>
|
|||||||
{
|
{
|
||||||
typedef TensorEvalToOp<ArgType> XprType;
|
typedef TensorEvalToOp<ArgType> XprType;
|
||||||
typedef typename ArgType::Scalar Scalar;
|
typedef typename ArgType::Scalar Scalar;
|
||||||
typedef typename ArgType::Packet Packet;
|
|
||||||
typedef typename TensorEvaluator<ArgType, Device>::Dimensions Dimensions;
|
typedef typename TensorEvaluator<ArgType, Device>::Dimensions Dimensions;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@ -110,7 +106,7 @@ struct TensorEvaluator<const TensorEvalToOp<ArgType>, Device>
|
|||||||
|
|
||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
||||||
typedef typename internal::remove_const<typename XprType::PacketReturnType>::type PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const { return m_impl.dimensions(); }
|
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const { return m_impl.dimensions(); }
|
||||||
|
|
||||||
@ -138,7 +134,7 @@ struct TensorEvaluator<const TensorEvalToOp<ArgType>, Device>
|
|||||||
template<int LoadMode>
|
template<int LoadMode>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketReturnType packet(Index index) const
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketReturnType packet(Index index) const
|
||||||
{
|
{
|
||||||
return internal::ploadt<Packet, LoadMode>(m_buffer + index);
|
return internal::ploadt<PacketReturnType, LoadMode>(m_buffer + index);
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC CoeffReturnType* data() const { return m_buffer; }
|
EIGEN_DEVICE_FUNC CoeffReturnType* data() const { return m_buffer; }
|
||||||
|
@ -29,9 +29,8 @@ struct TensorEvaluator
|
|||||||
{
|
{
|
||||||
typedef typename Derived::Index Index;
|
typedef typename Derived::Index Index;
|
||||||
typedef typename Derived::Scalar Scalar;
|
typedef typename Derived::Scalar Scalar;
|
||||||
typedef typename Derived::Packet Packet;
|
|
||||||
typedef typename Derived::Scalar CoeffReturnType;
|
typedef typename Derived::Scalar CoeffReturnType;
|
||||||
typedef typename Derived::Packet PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
typedef typename Derived::Dimensions Dimensions;
|
typedef typename Derived::Dimensions Dimensions;
|
||||||
|
|
||||||
// NumDimensions is -1 for variable dim tensors
|
// NumDimensions is -1 for variable dim tensors
|
||||||
@ -40,7 +39,7 @@ struct TensorEvaluator
|
|||||||
|
|
||||||
enum {
|
enum {
|
||||||
IsAligned = Derived::IsAligned,
|
IsAligned = Derived::IsAligned,
|
||||||
PacketAccess = Derived::PacketAccess,
|
PacketAccess = (internal::unpacket_traits<PacketReturnType>::size > 1),
|
||||||
Layout = Derived::Layout,
|
Layout = Derived::Layout,
|
||||||
CoordAccess = NumCoords > 0,
|
CoordAccess = NumCoords > 0,
|
||||||
RawAccess = true
|
RawAccess = true
|
||||||
@ -75,13 +74,13 @@ struct TensorEvaluator
|
|||||||
template<int LoadMode> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
template<int LoadMode> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
PacketReturnType packet(Index index) const
|
PacketReturnType packet(Index index) const
|
||||||
{
|
{
|
||||||
return internal::ploadt<Packet, LoadMode>(m_data + index);
|
return internal::ploadt<PacketReturnType, LoadMode>(m_data + index);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <int StoreMode> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
template <int StoreMode> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
void writePacket(Index index, const Packet& x)
|
void writePacket(Index index, const PacketReturnType& x)
|
||||||
{
|
{
|
||||||
return internal::pstoret<Scalar, Packet, StoreMode>(m_data + index, x);
|
return internal::pstoret<Scalar, PacketReturnType, StoreMode>(m_data + index, x);
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(const array<DenseIndex, NumCoords>& coords) const {
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(const array<DenseIndex, NumCoords>& coords) const {
|
||||||
@ -135,9 +134,8 @@ struct TensorEvaluator<const Derived, Device>
|
|||||||
{
|
{
|
||||||
typedef typename Derived::Index Index;
|
typedef typename Derived::Index Index;
|
||||||
typedef typename Derived::Scalar Scalar;
|
typedef typename Derived::Scalar Scalar;
|
||||||
typedef typename Derived::Packet Packet;
|
|
||||||
typedef typename Derived::Scalar CoeffReturnType;
|
typedef typename Derived::Scalar CoeffReturnType;
|
||||||
typedef typename Derived::Packet PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
typedef typename Derived::Dimensions Dimensions;
|
typedef typename Derived::Dimensions Dimensions;
|
||||||
|
|
||||||
// NumDimensions is -1 for variable dim tensors
|
// NumDimensions is -1 for variable dim tensors
|
||||||
@ -146,7 +144,7 @@ struct TensorEvaluator<const Derived, Device>
|
|||||||
|
|
||||||
enum {
|
enum {
|
||||||
IsAligned = Derived::IsAligned,
|
IsAligned = Derived::IsAligned,
|
||||||
PacketAccess = Derived::PacketAccess,
|
PacketAccess = (internal::unpacket_traits<PacketReturnType>::size > 1),
|
||||||
Layout = Derived::Layout,
|
Layout = Derived::Layout,
|
||||||
CoordAccess = NumCoords > 0,
|
CoordAccess = NumCoords > 0,
|
||||||
RawAccess = true
|
RawAccess = true
|
||||||
@ -176,7 +174,7 @@ struct TensorEvaluator<const Derived, Device>
|
|||||||
template<int LoadMode> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
template<int LoadMode> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
PacketReturnType packet(Index index) const
|
PacketReturnType packet(Index index) const
|
||||||
{
|
{
|
||||||
return internal::ploadt_ro<Packet, LoadMode>(m_data + index);
|
return internal::ploadt_ro<PacketReturnType, LoadMode>(m_data + index);
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(const array<DenseIndex, NumCoords>& coords) const {
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(const array<DenseIndex, NumCoords>& coords) const {
|
||||||
@ -220,7 +218,7 @@ struct TensorEvaluator<const TensorCwiseNullaryOp<NullaryOp, ArgType>, Device>
|
|||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename internal::traits<XprType>::Scalar CoeffReturnType;
|
typedef typename internal::traits<XprType>::Scalar CoeffReturnType;
|
||||||
typedef typename internal::traits<XprType>::Packet PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
typedef typename TensorEvaluator<ArgType, Device>::Dimensions Dimensions;
|
typedef typename TensorEvaluator<ArgType, Device>::Dimensions Dimensions;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const { return m_argImpl.dimensions(); }
|
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const { return m_argImpl.dimensions(); }
|
||||||
@ -271,7 +269,7 @@ struct TensorEvaluator<const TensorCwiseUnaryOp<UnaryOp, ArgType>, Device>
|
|||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename internal::traits<XprType>::Scalar CoeffReturnType;
|
typedef typename internal::traits<XprType>::Scalar CoeffReturnType;
|
||||||
typedef typename internal::traits<XprType>::Packet PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
typedef typename TensorEvaluator<ArgType, Device>::Dimensions Dimensions;
|
typedef typename TensorEvaluator<ArgType, Device>::Dimensions Dimensions;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const { return m_argImpl.dimensions(); }
|
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const { return m_argImpl.dimensions(); }
|
||||||
@ -331,7 +329,7 @@ struct TensorEvaluator<const TensorCwiseBinaryOp<BinaryOp, LeftArgType, RightArg
|
|||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename internal::traits<XprType>::Scalar CoeffReturnType;
|
typedef typename internal::traits<XprType>::Scalar CoeffReturnType;
|
||||||
typedef typename internal::traits<XprType>::Packet PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
typedef typename TensorEvaluator<LeftArgType, Device>::Dimensions Dimensions;
|
typedef typename TensorEvaluator<LeftArgType, Device>::Dimensions Dimensions;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const
|
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const
|
||||||
@ -399,7 +397,7 @@ struct TensorEvaluator<const TensorSelectOp<IfArgType, ThenArgType, ElseArgType>
|
|||||||
|
|
||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename internal::traits<XprType>::Scalar CoeffReturnType;
|
typedef typename internal::traits<XprType>::Scalar CoeffReturnType;
|
||||||
typedef typename internal::traits<XprType>::Packet PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
typedef typename TensorEvaluator<IfArgType, Device>::Dimensions Dimensions;
|
typedef typename TensorEvaluator<IfArgType, Device>::Dimensions Dimensions;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const
|
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const
|
||||||
|
@ -32,7 +32,6 @@ template<typename NullaryOp, typename XprType>
|
|||||||
struct traits<TensorCwiseNullaryOp<NullaryOp, XprType> >
|
struct traits<TensorCwiseNullaryOp<NullaryOp, XprType> >
|
||||||
: traits<XprType>
|
: traits<XprType>
|
||||||
{
|
{
|
||||||
typedef typename XprType::Packet Packet;
|
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::Nested XprTypeNested;
|
typedef typename XprType::Nested XprTypeNested;
|
||||||
@ -54,10 +53,8 @@ class TensorCwiseNullaryOp : public TensorBase<TensorCwiseNullaryOp<NullaryOp, X
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorCwiseNullaryOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorCwiseNullaryOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorCwiseNullaryOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef TensorCwiseNullaryOp<NullaryOp, XprType> Nested;
|
typedef TensorCwiseNullaryOp<NullaryOp, XprType> Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorCwiseNullaryOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorCwiseNullaryOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorCwiseNullaryOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorCwiseNullaryOp>::Index Index;
|
||||||
@ -88,7 +85,6 @@ struct traits<TensorCwiseUnaryOp<UnaryOp, XprType> >
|
|||||||
// current Scalar/Packet to see if the intent is Input or Output.
|
// current Scalar/Packet to see if the intent is Input or Output.
|
||||||
typedef typename result_of<UnaryOp(typename XprType::Scalar)>::type Scalar;
|
typedef typename result_of<UnaryOp(typename XprType::Scalar)>::type Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename internal::packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprType::Nested XprTypeNested;
|
typedef typename XprType::Nested XprTypeNested;
|
||||||
typedef typename remove_reference<XprTypeNested>::type _XprTypeNested;
|
typedef typename remove_reference<XprTypeNested>::type _XprTypeNested;
|
||||||
static const int NumDimensions = XprTraits::NumDimensions;
|
static const int NumDimensions = XprTraits::NumDimensions;
|
||||||
@ -118,10 +114,8 @@ class TensorCwiseUnaryOp : public TensorBase<TensorCwiseUnaryOp<UnaryOp, XprType
|
|||||||
// TODO(phli): Add InputScalar, InputPacket. Check references to
|
// TODO(phli): Add InputScalar, InputPacket. Check references to
|
||||||
// current Scalar/Packet to see if the intent is Input or Output.
|
// current Scalar/Packet to see if the intent is Input or Output.
|
||||||
typedef typename Eigen::internal::traits<TensorCwiseUnaryOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorCwiseUnaryOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorCwiseUnaryOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef Scalar CoeffReturnType;
|
typedef Scalar CoeffReturnType;
|
||||||
typedef typename internal::packet_traits<CoeffReturnType>::type PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorCwiseUnaryOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorCwiseUnaryOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorCwiseUnaryOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorCwiseUnaryOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorCwiseUnaryOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorCwiseUnaryOp>::Index Index;
|
||||||
@ -155,7 +149,6 @@ struct traits<TensorCwiseBinaryOp<BinaryOp, LhsXprType, RhsXprType> >
|
|||||||
BinaryOp(typename LhsXprType::Scalar,
|
BinaryOp(typename LhsXprType::Scalar,
|
||||||
typename RhsXprType::Scalar)>::type Scalar;
|
typename RhsXprType::Scalar)>::type Scalar;
|
||||||
typedef traits<LhsXprType> XprTraits;
|
typedef traits<LhsXprType> XprTraits;
|
||||||
typedef typename internal::packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename promote_storage_type<
|
typedef typename promote_storage_type<
|
||||||
typename traits<LhsXprType>::StorageKind,
|
typename traits<LhsXprType>::StorageKind,
|
||||||
typename traits<RhsXprType>::StorageKind>::ret StorageKind;
|
typename traits<RhsXprType>::StorageKind>::ret StorageKind;
|
||||||
@ -197,10 +190,8 @@ class TensorCwiseBinaryOp : public TensorBase<TensorCwiseBinaryOp<BinaryOp, LhsX
|
|||||||
// TODO(phli): Add Lhs/RhsScalar, Lhs/RhsPacket. Check references to
|
// TODO(phli): Add Lhs/RhsScalar, Lhs/RhsPacket. Check references to
|
||||||
// current Scalar/Packet to see if the intent is Inputs or Output.
|
// current Scalar/Packet to see if the intent is Inputs or Output.
|
||||||
typedef typename Eigen::internal::traits<TensorCwiseBinaryOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorCwiseBinaryOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorCwiseBinaryOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef Scalar CoeffReturnType;
|
typedef Scalar CoeffReturnType;
|
||||||
typedef typename internal::packet_traits<CoeffReturnType>::type PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorCwiseBinaryOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorCwiseBinaryOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorCwiseBinaryOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorCwiseBinaryOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorCwiseBinaryOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorCwiseBinaryOp>::Index Index;
|
||||||
@ -234,7 +225,6 @@ struct traits<TensorSelectOp<IfXprType, ThenXprType, ElseXprType> >
|
|||||||
{
|
{
|
||||||
typedef typename traits<ThenXprType>::Scalar Scalar;
|
typedef typename traits<ThenXprType>::Scalar Scalar;
|
||||||
typedef traits<ThenXprType> XprTraits;
|
typedef traits<ThenXprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename promote_storage_type<typename traits<ThenXprType>::StorageKind,
|
typedef typename promote_storage_type<typename traits<ThenXprType>::StorageKind,
|
||||||
typename traits<ElseXprType>::StorageKind>::ret StorageKind;
|
typename traits<ElseXprType>::StorageKind>::ret StorageKind;
|
||||||
typedef typename promote_index_type<typename traits<ElseXprType>::Index,
|
typedef typename promote_index_type<typename traits<ElseXprType>::Index,
|
||||||
@ -266,12 +256,9 @@ class TensorSelectOp : public TensorBase<TensorSelectOp<IfXprType, ThenXprType,
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorSelectOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorSelectOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorSelectOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename internal::promote_storage_type<typename ThenXprType::CoeffReturnType,
|
typedef typename internal::promote_storage_type<typename ThenXprType::CoeffReturnType,
|
||||||
typename ElseXprType::CoeffReturnType>::ret CoeffReturnType;
|
typename ElseXprType::CoeffReturnType>::ret CoeffReturnType;
|
||||||
typedef typename internal::promote_storage_type<typename ThenXprType::PacketReturnType,
|
|
||||||
typename ElseXprType::PacketReturnType>::ret PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorSelectOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorSelectOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorSelectOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorSelectOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorSelectOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorSelectOp>::Index Index;
|
||||||
|
@ -33,7 +33,6 @@ class TensorFixedSize : public TensorBase<TensorFixedSize<Scalar_, Dimensions_,
|
|||||||
typedef typename internal::traits<Self>::StorageKind StorageKind;
|
typedef typename internal::traits<Self>::StorageKind StorageKind;
|
||||||
typedef typename internal::traits<Self>::Index Index;
|
typedef typename internal::traits<Self>::Index Index;
|
||||||
typedef Scalar_ Scalar;
|
typedef Scalar_ Scalar;
|
||||||
typedef typename internal::packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename NumTraits<Scalar>::Real RealScalar;
|
typedef typename NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename Base::CoeffReturnType CoeffReturnType;
|
typedef typename Base::CoeffReturnType CoeffReturnType;
|
||||||
|
|
||||||
@ -41,7 +40,6 @@ class TensorFixedSize : public TensorBase<TensorFixedSize<Scalar_, Dimensions_,
|
|||||||
|
|
||||||
enum {
|
enum {
|
||||||
IsAligned = bool(EIGEN_MAX_ALIGN_BYTES>0),
|
IsAligned = bool(EIGEN_MAX_ALIGN_BYTES>0),
|
||||||
PacketAccess = (internal::packet_traits<Scalar>::size > 1),
|
|
||||||
Layout = Options_ & RowMajor ? RowMajor : ColMajor,
|
Layout = Options_ & RowMajor ? RowMajor : ColMajor,
|
||||||
CoordAccess = true,
|
CoordAccess = true,
|
||||||
RawAccess = true
|
RawAccess = true
|
||||||
|
@ -26,7 +26,6 @@ struct traits<TensorForcedEvalOp<XprType> >
|
|||||||
// Type promotion to handle the case where the types of the lhs and the rhs are different.
|
// Type promotion to handle the case where the types of the lhs and the rhs are different.
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename traits<XprType>::StorageKind StorageKind;
|
typedef typename traits<XprType>::StorageKind StorageKind;
|
||||||
typedef typename traits<XprType>::Index Index;
|
typedef typename traits<XprType>::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -60,10 +59,8 @@ class TensorForcedEvalOp : public TensorBase<TensorForcedEvalOp<XprType> >
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorForcedEvalOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorForcedEvalOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorForcedEvalOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
||||||
typedef typename internal::remove_const<typename XprType::PacketReturnType>::type PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorForcedEvalOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorForcedEvalOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorForcedEvalOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorForcedEvalOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorForcedEvalOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorForcedEvalOp>::Index Index;
|
||||||
@ -85,7 +82,6 @@ struct TensorEvaluator<const TensorForcedEvalOp<ArgType>, Device>
|
|||||||
{
|
{
|
||||||
typedef TensorForcedEvalOp<ArgType> XprType;
|
typedef TensorForcedEvalOp<ArgType> XprType;
|
||||||
typedef typename ArgType::Scalar Scalar;
|
typedef typename ArgType::Scalar Scalar;
|
||||||
typedef typename ArgType::Packet Packet;
|
|
||||||
typedef typename TensorEvaluator<ArgType, Device>::Dimensions Dimensions;
|
typedef typename TensorEvaluator<ArgType, Device>::Dimensions Dimensions;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@ -101,7 +97,7 @@ struct TensorEvaluator<const TensorForcedEvalOp<ArgType>, Device>
|
|||||||
|
|
||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const { return m_impl.dimensions(); }
|
EIGEN_DEVICE_FUNC const Dimensions& dimensions() const { return m_impl.dimensions(); }
|
||||||
|
|
||||||
@ -133,7 +129,7 @@ struct TensorEvaluator<const TensorForcedEvalOp<ArgType>, Device>
|
|||||||
template<int LoadMode>
|
template<int LoadMode>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketReturnType packet(Index index) const
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketReturnType packet(Index index) const
|
||||||
{
|
{
|
||||||
return internal::ploadt<Packet, LoadMode>(m_buffer + index);
|
return internal::ploadt<PacketReturnType, LoadMode>(m_buffer + index);
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC Scalar* data() const { return m_buffer; }
|
EIGEN_DEVICE_FUNC Scalar* data() const { return m_buffer; }
|
||||||
|
@ -25,7 +25,6 @@ struct traits<TensorGeneratorOp<Generator, XprType> > : public traits<XprType>
|
|||||||
{
|
{
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -55,10 +54,8 @@ class TensorGeneratorOp : public TensorBase<TensorGeneratorOp<Generator, XprType
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorGeneratorOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorGeneratorOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorGeneratorOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorGeneratorOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorGeneratorOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorGeneratorOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorGeneratorOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorGeneratorOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorGeneratorOp>::Index Index;
|
||||||
@ -118,7 +115,7 @@ struct TensorEvaluator<const TensorGeneratorOp<Generator, ArgType>, Device>
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
|
@ -32,7 +32,6 @@ struct traits<TensorImagePatchOp<Rows, Cols, XprType> > : public traits<XprType>
|
|||||||
{
|
{
|
||||||
typedef typename internal::remove_const<typename XprType::Scalar>::type Scalar;
|
typedef typename internal::remove_const<typename XprType::Scalar>::type Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -60,10 +59,8 @@ class TensorImagePatchOp : public TensorBase<TensorImagePatchOp<Rows, Cols, XprT
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorImagePatchOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorImagePatchOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorImagePatchOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorImagePatchOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorImagePatchOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorImagePatchOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorImagePatchOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorImagePatchOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorImagePatchOp>::Index Index;
|
||||||
@ -311,7 +308,7 @@ struct TensorEvaluator<const TensorImagePatchOp<Rows, Cols, ArgType>, Device>
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
|
@ -25,7 +25,6 @@ struct traits<TensorInflationOp<Strides, XprType> > : public traits<XprType>
|
|||||||
{
|
{
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -53,10 +52,8 @@ class TensorInflationOp : public TensorBase<TensorInflationOp<Strides, XprType>,
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorInflationOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorInflationOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorInflationOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorInflationOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorInflationOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorInflationOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorInflationOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorInflationOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorInflationOp>::Index Index;
|
||||||
@ -128,7 +125,8 @@ struct TensorEvaluator<const TensorInflationOp<Strides, ArgType>, Device>
|
|||||||
|
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
|
@ -40,7 +40,6 @@ struct traits<TensorLayoutSwapOp<XprType> > : public traits<XprType>
|
|||||||
{
|
{
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -70,10 +69,8 @@ class TensorLayoutSwapOp : public TensorBase<TensorLayoutSwapOp<XprType>, WriteA
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorLayoutSwapOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorLayoutSwapOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorLayoutSwapOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
||||||
typedef typename internal::remove_const<typename XprType::PacketReturnType>::type PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorLayoutSwapOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorLayoutSwapOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorLayoutSwapOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorLayoutSwapOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorLayoutSwapOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorLayoutSwapOp>::Index Index;
|
||||||
@ -136,7 +133,7 @@ struct TensorEvaluator<const TensorLayoutSwapOp<ArgType>, Device>
|
|||||||
|
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
|
@ -28,7 +28,6 @@ template<typename PlainObjectType, int Options_> class TensorMap : public Tensor
|
|||||||
typedef typename internal::traits<PlainObjectType>::StorageKind StorageKind;
|
typedef typename internal::traits<PlainObjectType>::StorageKind StorageKind;
|
||||||
typedef typename internal::traits<PlainObjectType>::Index Index;
|
typedef typename internal::traits<PlainObjectType>::Index Index;
|
||||||
typedef typename internal::traits<PlainObjectType>::Scalar Scalar;
|
typedef typename internal::traits<PlainObjectType>::Scalar Scalar;
|
||||||
typedef typename internal::packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename NumTraits<Scalar>::Real RealScalar;
|
typedef typename NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename Base::CoeffReturnType CoeffReturnType;
|
typedef typename Base::CoeffReturnType CoeffReturnType;
|
||||||
|
|
||||||
@ -47,7 +46,6 @@ template<typename PlainObjectType, int Options_> class TensorMap : public Tensor
|
|||||||
|
|
||||||
enum {
|
enum {
|
||||||
IsAligned = ((int(Options_)&Aligned)==Aligned),
|
IsAligned = ((int(Options_)&Aligned)==Aligned),
|
||||||
PacketAccess = (internal::packet_traits<Scalar>::size > 1),
|
|
||||||
Layout = PlainObjectType::Layout,
|
Layout = PlainObjectType::Layout,
|
||||||
CoordAccess = true,
|
CoordAccess = true,
|
||||||
RawAccess = true
|
RawAccess = true
|
||||||
|
@ -25,7 +25,6 @@ struct traits<TensorReshapingOp<NewDimensions, XprType> > : public traits<XprTyp
|
|||||||
{
|
{
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -55,10 +54,8 @@ class TensorReshapingOp : public TensorBase<TensorReshapingOp<NewDimensions, Xpr
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorReshapingOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorReshapingOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorReshapingOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
||||||
typedef typename internal::remove_const<typename XprType::PacketReturnType>::type PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorReshapingOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorReshapingOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorReshapingOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorReshapingOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorReshapingOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorReshapingOp>::Index Index;
|
||||||
@ -124,7 +121,7 @@ struct TensorEvaluator<const TensorReshapingOp<NewDimensions, ArgType>, Device>
|
|||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
@ -181,7 +178,7 @@ template<typename NewDimensions, typename ArgType, typename Device>
|
|||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType& coeffRef(Index index)
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType& coeffRef(Index index)
|
||||||
{
|
{
|
||||||
@ -208,7 +205,6 @@ struct traits<TensorSlicingOp<StartIndices, Sizes, XprType> > : public traits<Xp
|
|||||||
{
|
{
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -238,10 +234,8 @@ class TensorSlicingOp : public TensorBase<TensorSlicingOp<StartIndices, Sizes, X
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorSlicingOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorSlicingOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorSlicingOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorSlicingOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorSlicingOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorSlicingOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorSlicingOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorSlicingOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorSlicingOp>::Index Index;
|
||||||
@ -361,7 +355,7 @@ struct TensorEvaluator<const TensorSlicingOp<StartIndices, Sizes, ArgType>, Devi
|
|||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
typedef Sizes Dimensions;
|
typedef Sizes Dimensions;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
@ -549,7 +543,7 @@ struct TensorEvaluator<TensorSlicingOp<StartIndices, Sizes, ArgType>, Device>
|
|||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
typedef Sizes Dimensions;
|
typedef Sizes Dimensions;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType& coeffRef(Index index)
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType& coeffRef(Index index)
|
||||||
|
@ -25,7 +25,6 @@ struct traits<TensorPaddingOp<PaddingDimensions, XprType> > : public traits<XprT
|
|||||||
{
|
{
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -55,10 +54,8 @@ class TensorPaddingOp : public TensorBase<TensorPaddingOp<PaddingDimensions, Xpr
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorPaddingOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorPaddingOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorPaddingOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorPaddingOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorPaddingOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorPaddingOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorPaddingOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorPaddingOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorPaddingOp>::Index Index;
|
||||||
@ -134,7 +131,7 @@ struct TensorEvaluator<const TensorPaddingOp<PaddingDimensions, ArgType>, Device
|
|||||||
|
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
|
@ -25,7 +25,6 @@ struct traits<TensorPatchOp<PatchDim, XprType> > : public traits<XprType>
|
|||||||
{
|
{
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -55,10 +54,8 @@ class TensorPatchOp : public TensorBase<TensorPatchOp<PatchDim, XprType>, ReadOn
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorPatchOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorPatchOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorPatchOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorPatchOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorPatchOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorPatchOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorPatchOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorPatchOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorPatchOp>::Index Index;
|
||||||
@ -141,7 +138,7 @@ struct TensorEvaluator<const TensorPatchOp<PatchDim, ArgType>, Device>
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
|
@ -26,7 +26,6 @@ struct traits<TensorReductionOp<Op, Dims, XprType> >
|
|||||||
{
|
{
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename XprTraits::Scalar Scalar;
|
typedef typename XprTraits::Scalar Scalar;
|
||||||
typedef typename internal::packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -381,10 +380,8 @@ template <typename Op, typename Dims, typename XprType>
|
|||||||
class TensorReductionOp : public TensorBase<TensorReductionOp<Op, Dims, XprType>, ReadOnlyAccessors> {
|
class TensorReductionOp : public TensorBase<TensorReductionOp<Op, Dims, XprType>, ReadOnlyAccessors> {
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorReductionOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorReductionOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorReductionOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
||||||
typedef typename internal::remove_const<typename XprType::PacketReturnType>::type PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorReductionOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorReductionOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorReductionOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorReductionOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorReductionOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorReductionOp>::Index Index;
|
||||||
@ -509,7 +506,7 @@ struct TensorEvaluator<const TensorReductionOp<Op, Dims, ArgType>, Device>
|
|||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
typedef typename internal::remove_const<typename XprType::CoeffReturnType>::type CoeffReturnType;
|
||||||
typedef typename internal::remove_const<typename XprType::PacketReturnType>::type PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool evalSubExprsIfNeeded(CoeffReturnType* data) {
|
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool evalSubExprsIfNeeded(CoeffReturnType* data) {
|
||||||
m_impl.evalSubExprsIfNeeded(NULL);
|
m_impl.evalSubExprsIfNeeded(NULL);
|
||||||
|
@ -125,7 +125,6 @@ template<typename PlainObjectType> class TensorRef : public TensorBase<TensorRef
|
|||||||
typedef typename internal::traits<PlainObjectType>::StorageKind StorageKind;
|
typedef typename internal::traits<PlainObjectType>::StorageKind StorageKind;
|
||||||
typedef typename internal::traits<PlainObjectType>::Index Index;
|
typedef typename internal::traits<PlainObjectType>::Index Index;
|
||||||
typedef typename internal::traits<PlainObjectType>::Scalar Scalar;
|
typedef typename internal::traits<PlainObjectType>::Scalar Scalar;
|
||||||
typedef typename internal::packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename NumTraits<Scalar>::Real RealScalar;
|
typedef typename NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename Base::CoeffReturnType CoeffReturnType;
|
typedef typename Base::CoeffReturnType CoeffReturnType;
|
||||||
typedef Scalar* PointerType;
|
typedef Scalar* PointerType;
|
||||||
@ -358,9 +357,8 @@ struct TensorEvaluator<const TensorRef<Derived>, Device>
|
|||||||
{
|
{
|
||||||
typedef typename Derived::Index Index;
|
typedef typename Derived::Index Index;
|
||||||
typedef typename Derived::Scalar Scalar;
|
typedef typename Derived::Scalar Scalar;
|
||||||
typedef typename Derived::Packet Packet;
|
|
||||||
typedef typename Derived::Scalar CoeffReturnType;
|
typedef typename Derived::Scalar CoeffReturnType;
|
||||||
typedef typename Derived::Packet PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
typedef typename Derived::Dimensions Dimensions;
|
typedef typename Derived::Dimensions Dimensions;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@ -404,9 +402,8 @@ struct TensorEvaluator<TensorRef<Derived>, Device> : public TensorEvaluator<cons
|
|||||||
{
|
{
|
||||||
typedef typename Derived::Index Index;
|
typedef typename Derived::Index Index;
|
||||||
typedef typename Derived::Scalar Scalar;
|
typedef typename Derived::Scalar Scalar;
|
||||||
typedef typename Derived::Packet Packet;
|
|
||||||
typedef typename Derived::Scalar CoeffReturnType;
|
typedef typename Derived::Scalar CoeffReturnType;
|
||||||
typedef typename Derived::Packet PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
typedef typename Derived::Dimensions Dimensions;
|
typedef typename Derived::Dimensions Dimensions;
|
||||||
|
|
||||||
typedef TensorEvaluator<const TensorRef<Derived>, Device> Base;
|
typedef TensorEvaluator<const TensorRef<Derived>, Device> Base;
|
||||||
|
@ -25,7 +25,6 @@ struct traits<TensorReverseOp<ReverseDimensions,
|
|||||||
{
|
{
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -55,10 +54,8 @@ class TensorReverseOp : public TensorBase<TensorReverseOp<ReverseDimensions,
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorReverseOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorReverseOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorReverseOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorReverseOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorReverseOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorReverseOp>::StorageKind
|
typedef typename Eigen::internal::traits<TensorReverseOp>::StorageKind
|
||||||
StorageKind;
|
StorageKind;
|
||||||
@ -140,7 +137,7 @@ struct TensorEvaluator<const TensorReverseOp<ReverseDimensions, ArgType>, Device
|
|||||||
|
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
const Dimensions& dimensions() const { return m_dimensions; }
|
const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
@ -248,7 +245,7 @@ struct TensorEvaluator<TensorReverseOp<ReverseDimensions, ArgType>, Device>
|
|||||||
|
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
const Dimensions& dimensions() const { return this->m_dimensions; }
|
const Dimensions& dimensions() const { return this->m_dimensions; }
|
||||||
|
@ -25,7 +25,6 @@ struct traits<TensorShufflingOp<Shuffle, XprType> > : public traits<XprType>
|
|||||||
{
|
{
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -55,10 +54,8 @@ class TensorShufflingOp : public TensorBase<TensorShufflingOp<Shuffle, XprType>
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorShufflingOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorShufflingOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorShufflingOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorShufflingOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorShufflingOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorShufflingOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorShufflingOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorShufflingOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorShufflingOp>::Index Index;
|
||||||
@ -149,7 +146,7 @@ struct TensorEvaluator<const TensorShufflingOp<Shuffle, ArgType>, Device>
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
@ -234,7 +231,7 @@ struct TensorEvaluator<TensorShufflingOp<Shuffle, ArgType>, Device>
|
|||||||
{ }
|
{ }
|
||||||
|
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType& coeffRef(Index index)
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType& coeffRef(Index index)
|
||||||
{
|
{
|
||||||
|
@ -25,7 +25,6 @@ struct traits<TensorStridingOp<Strides, XprType> > : public traits<XprType>
|
|||||||
{
|
{
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -55,10 +54,8 @@ class TensorStridingOp : public TensorBase<TensorStridingOp<Strides, XprType> >
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorStridingOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorStridingOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorStridingOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorStridingOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorStridingOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorStridingOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorStridingOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorStridingOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorStridingOp>::Index Index;
|
||||||
@ -147,7 +144,7 @@ struct TensorEvaluator<const TensorStridingOp<Strides, ArgType>, Device>
|
|||||||
|
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
@ -267,7 +264,8 @@ struct TensorEvaluator<TensorStridingOp<Strides, ArgType>, Device>
|
|||||||
|
|
||||||
typedef typename XprType::Index Index;
|
typedef typename XprType::Index Index;
|
||||||
typedef typename XprType::Scalar Scalar;
|
typedef typename XprType::Scalar Scalar;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar& coeffRef(Index index)
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar& coeffRef(Index index)
|
||||||
{
|
{
|
||||||
|
@ -27,7 +27,6 @@ struct traits<TensorVolumePatchOp<Planes, Rows, Cols, XprType> > : public traits
|
|||||||
{
|
{
|
||||||
typedef typename internal::remove_const<typename XprType::Scalar>::type Scalar;
|
typedef typename internal::remove_const<typename XprType::Scalar>::type Scalar;
|
||||||
typedef traits<XprType> XprTraits;
|
typedef traits<XprType> XprTraits;
|
||||||
typedef typename packet_traits<Scalar>::type Packet;
|
|
||||||
typedef typename XprTraits::StorageKind StorageKind;
|
typedef typename XprTraits::StorageKind StorageKind;
|
||||||
typedef typename XprTraits::Index Index;
|
typedef typename XprTraits::Index Index;
|
||||||
typedef typename XprType::Nested Nested;
|
typedef typename XprType::Nested Nested;
|
||||||
@ -55,10 +54,8 @@ class TensorVolumePatchOp : public TensorBase<TensorVolumePatchOp<Planes, Rows,
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Eigen::internal::traits<TensorVolumePatchOp>::Scalar Scalar;
|
typedef typename Eigen::internal::traits<TensorVolumePatchOp>::Scalar Scalar;
|
||||||
typedef typename Eigen::internal::traits<TensorVolumePatchOp>::Packet Packet;
|
|
||||||
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
|
||||||
typedef typename Eigen::internal::nested<TensorVolumePatchOp>::type Nested;
|
typedef typename Eigen::internal::nested<TensorVolumePatchOp>::type Nested;
|
||||||
typedef typename Eigen::internal::traits<TensorVolumePatchOp>::StorageKind StorageKind;
|
typedef typename Eigen::internal::traits<TensorVolumePatchOp>::StorageKind StorageKind;
|
||||||
typedef typename Eigen::internal::traits<TensorVolumePatchOp>::Index Index;
|
typedef typename Eigen::internal::traits<TensorVolumePatchOp>::Index Index;
|
||||||
@ -340,7 +337,7 @@ struct TensorEvaluator<const TensorVolumePatchOp<Planes, Rows, Cols, ArgType>, D
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
||||||
typedef typename XprType::PacketReturnType PacketReturnType;
|
typedef typename PacketType<CoeffReturnType, Device>::type PacketReturnType;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& dimensions() const { return m_dimensions; }
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user