mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Modify pselect and various masks to use Scalar(1) for true.
This commit is contained in:
@@ -115,6 +115,30 @@ bool areApprox(const Scalar* a, const Scalar* b, int size, const typename NumTra
|
||||
VERIFY(test::areApprox(ref, data2, PacketSize) && #POP); \
|
||||
}
|
||||
|
||||
#define CHECK_CWISE1_MASK(REFOP, POP) \
|
||||
{ \
|
||||
bool ref_mask[PacketSize] = {}; \
|
||||
bool data_mask[PacketSize] = {}; \
|
||||
internal::pstore(data2, POP(internal::pload<Packet>(data1))); \
|
||||
for (int i = 0; i < PacketSize; ++i) { \
|
||||
ref_mask[i] = numext::is_exactly_zero(REFOP(data1[i])); \
|
||||
data_mask[i] = numext::is_exactly_zero(data2[i]); \
|
||||
} \
|
||||
VERIFY(test::areEqual(ref_mask, data_mask, PacketSize) && #POP); \
|
||||
}
|
||||
|
||||
#define CHECK_CWISE2_MASK(REFOP, POP) \
|
||||
{ \
|
||||
bool ref_mask[PacketSize] = {}; \
|
||||
bool data_mask[PacketSize] = {}; \
|
||||
internal::pstore(data2, POP(internal::pload<Packet>(data1), internal::pload<Packet>(data1 + PacketSize))); \
|
||||
for (int i = 0; i < PacketSize; ++i) { \
|
||||
ref_mask[i] = numext::is_exactly_zero(REFOP(data1[i], data1[i + PacketSize])); \
|
||||
data_mask[i] = numext::is_exactly_zero(data2[i]); \
|
||||
} \
|
||||
VERIFY(test::areEqual(ref_mask, data_mask, PacketSize) && #POP); \
|
||||
}
|
||||
|
||||
// Checks component-wise for input of size N. All of data1, data2, and ref
|
||||
// should have size at least ceil(N/PacketSize)*PacketSize to avoid memory
|
||||
// access errors.
|
||||
|
||||
Reference in New Issue
Block a user