Text archives Help
- From: abe@sci.utah.edu
- To: manta@sci.utah.edu
- Subject: [MANTA] r1222 - in trunk: Core/Math Interface
- Date: Fri, 13 Oct 2006 19:17:25 -0600 (MDT)
Author: abe
Date: Fri Oct 13 19:17:24 2006
New Revision: 1222
Modified:
trunk/Core/Math/SSEDefs.h
trunk/Interface/CallbackHelpers.h
Log:
Added missing callback class types. Added wrappers for missing cast operators.
M Core/Math/SSEDefs.h
M Interface/CallbackHelpers.h
Modified: trunk/Core/Math/SSEDefs.h
==============================================================================
--- trunk/Core/Math/SSEDefs.h (original)
+++ trunk/Core/Math/SSEDefs.h Fri Oct 13 19:17:24 2006
@@ -89,6 +89,8 @@
// Intel casting intrinsics.
static inline __m128i _mm_castps_si128(__m128 val) { return (__m128i)val;
}
static inline __m128 _mm_castsi128_ps(__m128i val) { return (__m128) val;
}
+ static inline __m128d _mm_castps_pd (__m128 val) { return (__m128d)val;
}
+ static inline __m128 _mm_castpd_ps (__m128d val) { return (__m128) val;
}
#endif
static const MANTA_ALIGN(16) sse_t _mm_eps = _mm_set_ps1(1e-5);
Modified: trunk/Interface/CallbackHelpers.h
==============================================================================
--- trunk/Interface/CallbackHelpers.h (original)
+++ trunk/Interface/CallbackHelpers.h Fri Oct 13 19:17:24 2006
@@ -658,6 +658,47 @@
void (T::*pmf)(Data1, Data2, Data3, Data4);
};
+ template<class T, typename Data1, typename Data2, typename Data3, typename
Data4, typename Arg1>
+ class Callback_4Data_1Arg : public CallbackBase_4Data<Data1, Data2, Data3,
Data4> {
+ public:
+ Callback_4Data_1Arg(T* ptr, void (T::*pmf)(Data1, Data2, Data3, Data4,
Arg1), Arg1 arg1)
+ : ptr(ptr), pmf(pmf), arg1(arg1)
+ {
+ }
+ virtual ~Callback_4Data_1Arg()
+ {
+ }
+ virtual void call(Data1 data1, Data2 data2, Data3 data3, Data4 data4,
Arg1 arg1)
+ {
+ (ptr->*pmf)(data1, data2, data3, data4, arg1);
+ }
+ private:
+ T* ptr;
+ void (T::*pmf)(Data1, Data2, Data3, Data4, Arg1);
+ Arg1 arg1;
+ };
+
+ template<class T, typename Data1, typename Data2, typename Data3, typename
Data4, typename Arg1, typename Arg2>
+ class Callback_4Data_2Arg : public CallbackBase_4Data<Data1, Data2, Data3,
Data4> {
+ public:
+ Callback_4Data_2Arg(T* ptr, void (T::*pmf)(Data1, Data2, Data3, Data4,
Arg1), Arg1 arg1, Arg2 arg2)
+ : ptr(ptr), pmf(pmf), arg1(arg1), arg2(arg2)
+ {
+ }
+ virtual ~Callback_4Data_2Arg()
+ {
+ }
+ virtual void call(Data1 data1, Data2 data2, Data3 data3, Data4 data4,
Arg1 arg1, Arg2 arg2)
+ {
+ (ptr->*pmf)(data1, data2, data3, data4, arg1, arg2);
+ }
+ private:
+ T* ptr;
+ void (T::*pmf)(Data1, Data2, Data3, Data4, Arg1, Arg2);
+ Arg1 arg1;
+ Arg2 arg2;
+ };
+
// 5 Data
template<class T, typename Data1, typename Data2, typename Data3, typename
Data4, typename Data5>
class Callback_5Data_0Arg : public CallbackBase_5Data<Data1, Data2, Data3,
Data4, Data5> {
- [MANTA] r1222 - in trunk: Core/Math Interface, abe, 10/13/2006
Archive powered by MHonArc 2.6.16.