10 #ifndef EIGEN_TYPE_CASTING_SSE_H 11 #define EIGEN_TYPE_CASTING_SSE_H 18 struct type_casting_traits<float, int> {
26 template<> EIGEN_STRONG_INLINE Packet4i pcast<Packet4f, Packet4i>(
const Packet4f& a) {
27 return _mm_cvttps_epi32(a);
32 struct type_casting_traits<int, float> {
40 template<> EIGEN_STRONG_INLINE Packet4f pcast<Packet4i, Packet4f>(
const Packet4i& a) {
41 return _mm_cvtepi32_ps(a);
46 struct type_casting_traits<double, float> {
54 template<> EIGEN_STRONG_INLINE Packet4f pcast<Packet2d, Packet4f>(
const Packet2d& a,
const Packet2d& b) {
55 return _mm_shuffle_ps(_mm_cvtpd_ps(a), _mm_cvtpd_ps(b), (1 << 2) | (1 << 6));
59 struct type_casting_traits<float, double> {
67 template<> EIGEN_STRONG_INLINE Packet2d pcast<Packet4f, Packet2d>(
const Packet4f& a) {
69 return _mm_cvtps_pd(a);
77 #endif // EIGEN_TYPE_CASTING_SSE_H Namespace containing all symbols from the Eigen library.
Definition: Core:287
Definition: Eigen_Colamd.h:50