mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
* Block: row and column expressions in the inner direction
now have the Like1D flag. * Big renaming: packetCoeff ---> packet VectorizableBit ---> PacketAccessBit Like1DArrayBit ---> LinearAccessBit
This commit is contained in:
@@ -67,15 +67,15 @@ const unsigned int LargeBit = 0x8;
|
||||
/** \ingroup flags
|
||||
*
|
||||
* means the expression might be vectorized */
|
||||
const unsigned int VectorizableBit = 0x10;
|
||||
const unsigned int PacketAccessBit = 0x10;
|
||||
#else
|
||||
const unsigned int VectorizableBit = 0x0;
|
||||
const unsigned int PacketAccessBit = 0x0;
|
||||
#endif
|
||||
|
||||
/** \ingroup flags
|
||||
*
|
||||
* means the expression can be seen as 1D vector (used for explicit vectorization) */
|
||||
const unsigned int Like1DArrayBit = 0x20;
|
||||
const unsigned int LinearAccessBit = 0x20;
|
||||
|
||||
/** \ingroup flags
|
||||
*
|
||||
|
||||
@@ -81,7 +81,7 @@ template<typename Scalar> struct ei_scalar_sin_op;
|
||||
template<typename Scalar> struct ei_scalar_pow_op;
|
||||
template<typename Scalar> struct ei_scalar_inverse_op;
|
||||
template<typename Scalar, typename NewType> struct ei_scalar_cast_op;
|
||||
template<typename Scalar, bool IsVectorizable> struct ei_scalar_multiple_op;
|
||||
template<typename Scalar, bool PacketAccess> struct ei_scalar_multiple_op;
|
||||
template<typename Scalar> struct ei_scalar_quotient1_op;
|
||||
template<typename Scalar> struct ei_scalar_min_op;
|
||||
template<typename Scalar> struct ei_scalar_max_op;
|
||||
|
||||
@@ -137,7 +137,7 @@ template<typename T> struct ei_functor_traits
|
||||
enum
|
||||
{
|
||||
Cost = 10,
|
||||
IsVectorizable = false
|
||||
PacketAccess = false
|
||||
};
|
||||
};
|
||||
|
||||
@@ -157,18 +157,18 @@ class ei_corrected_matrix_flags
|
||||
: Cols > 1 ? RowMajorBit : 0,
|
||||
is_big = MaxRows == Dynamic || MaxCols == Dynamic,
|
||||
inner_size = row_major_bit ? Cols : Rows,
|
||||
vectorizable_bit
|
||||
packet_access_bit
|
||||
= ei_packet_traits<Scalar>::size > 1
|
||||
&& (is_big || inner_size%ei_packet_traits<Scalar>::size==0)
|
||||
? VectorizableBit : 0,
|
||||
? PacketAccessBit : 0,
|
||||
|
||||
_flags1 = (SuggestedFlags & ~(EvalBeforeNestingBit | EvalBeforeAssigningBit | VectorizableBit | RowMajorBit))
|
||||
| Like1DArrayBit | DirectAccessBit
|
||||
_flags1 = (SuggestedFlags & ~(EvalBeforeNestingBit | EvalBeforeAssigningBit | PacketAccessBit | RowMajorBit))
|
||||
| LinearAccessBit | DirectAccessBit
|
||||
};
|
||||
|
||||
public:
|
||||
enum { ret = (SuggestedFlags & ~(EvalBeforeNestingBit | EvalBeforeAssigningBit | VectorizableBit | RowMajorBit))
|
||||
| Like1DArrayBit | DirectAccessBit | vectorizable_bit | row_major_bit
|
||||
enum { ret = (SuggestedFlags & ~(EvalBeforeNestingBit | EvalBeforeAssigningBit | PacketAccessBit | RowMajorBit))
|
||||
| LinearAccessBit | DirectAccessBit | packet_access_bit | row_major_bit
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user