mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Pulled latest updates from trunk
This commit is contained in:
@@ -227,7 +227,7 @@ if(NOT MSVC)
|
|||||||
|
|
||||||
option(EIGEN_TEST_NEON "Enable/Disable Neon in tests/examples" OFF)
|
option(EIGEN_TEST_NEON "Enable/Disable Neon in tests/examples" OFF)
|
||||||
if(EIGEN_TEST_NEON)
|
if(EIGEN_TEST_NEON)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -mcpu=cortex-a8")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -mfloat-abi=softfp")
|
||||||
message(STATUS "Enabling NEON in tests/examples")
|
message(STATUS "Enabling NEON in tests/examples")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
@@ -290,7 +290,11 @@ template<typename Packet> EIGEN_DEVICE_FUNC inline Packet preverse(const Packet&
|
|||||||
template<size_t offset, typename Packet>
|
template<size_t offset, typename Packet>
|
||||||
struct protate_impl
|
struct protate_impl
|
||||||
{
|
{
|
||||||
static Packet run(const Packet& a) { return a; }
|
static Packet run(const Packet& a)
|
||||||
|
{
|
||||||
|
eigen_assert(false && "unimplemented");
|
||||||
|
return a;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/** \internal \returns a packet with the coefficients rotated to the right in little-endian convention,
|
/** \internal \returns a packet with the coefficients rotated to the right in little-endian convention,
|
||||||
@@ -299,7 +303,6 @@ struct protate_impl
|
|||||||
*/
|
*/
|
||||||
template<size_t offset, typename Packet> EIGEN_DEVICE_FUNC inline Packet protate(const Packet& a)
|
template<size_t offset, typename Packet> EIGEN_DEVICE_FUNC inline Packet protate(const Packet& a)
|
||||||
{
|
{
|
||||||
EIGEN_STATIC_ASSERT(offset < unpacket_traits<Packet>::size, ROTATION_BY_ILLEGAL_OFFSET);
|
|
||||||
return offset ? protate_impl<offset, Packet>::run(a) : a;
|
return offset ? protate_impl<offset, Packet>::run(a) : a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -76,12 +76,12 @@ typedef uint32x4_t Packet4ui;
|
|||||||
template<> struct packet_traits<float> : default_packet_traits
|
template<> struct packet_traits<float> : default_packet_traits
|
||||||
{
|
{
|
||||||
typedef Packet4f type;
|
typedef Packet4f type;
|
||||||
typedef Packet2f half;
|
typedef Packet4f half; // Packet2f intrinsics not implemented yet
|
||||||
enum {
|
enum {
|
||||||
Vectorizable = 1,
|
Vectorizable = 1,
|
||||||
AlignedOnScalar = 1,
|
AlignedOnScalar = 1,
|
||||||
size = 4,
|
size = 4,
|
||||||
HasHalfPacket=1,
|
HasHalfPacket=0, // Packet2f intrinsics not implemented yet
|
||||||
|
|
||||||
HasDiv = 1,
|
HasDiv = 1,
|
||||||
// FIXME check the Has*
|
// FIXME check the Has*
|
||||||
@@ -95,12 +95,12 @@ template<> struct packet_traits<float> : default_packet_traits
|
|||||||
template<> struct packet_traits<int> : default_packet_traits
|
template<> struct packet_traits<int> : default_packet_traits
|
||||||
{
|
{
|
||||||
typedef Packet4i type;
|
typedef Packet4i type;
|
||||||
typedef Packet2i half;
|
typedef Packet4i half; // Packet2i intrinsics not implemented yet
|
||||||
enum {
|
enum {
|
||||||
Vectorizable = 1,
|
Vectorizable = 1,
|
||||||
AlignedOnScalar = 1,
|
AlignedOnScalar = 1,
|
||||||
size=4,
|
size=4,
|
||||||
HasHalfPacket=1
|
HasHalfPacket=0 // Packet2i intrinsics not implemented yet
|
||||||
// FIXME check the Has*
|
// FIXME check the Has*
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -93,8 +93,7 @@
|
|||||||
THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH,
|
THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH,
|
||||||
OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG,
|
OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG,
|
||||||
IMPLICIT_CONVERSION_TO_SCALAR_IS_FOR_INNER_PRODUCT_ONLY,
|
IMPLICIT_CONVERSION_TO_SCALAR_IS_FOR_INNER_PRODUCT_ONLY,
|
||||||
STORAGE_LAYOUT_DOES_NOT_MATCH,
|
STORAGE_LAYOUT_DOES_NOT_MATCH
|
||||||
ROTATION_BY_ILLEGAL_OFFSET
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user