я использую шаблон специализации способ переключения с плавающей точкой/двойной SSE-: встроенные функциипереключатель SSE с помощью шаблонов встроенных функций
template<typename Precision>
struct simd
{
typedef Precision simd_vector;
};
template<>
struct simd<float>
{
typedef __m128 simd_vector;
};
template<>
struct simd<double>
{
typedef __m128d simd_vector;
};
int main()
{
simd<float>::simd_vector float_vector;//__m128
simd<double>::simd_vector double_vector;//__m128d
}
Он хорошо работает, но я не могу понять, как использовать SSE-Intrinsics функции таким же образом, ? Предположим, что мы хотим добавить операцию добавления: _mm_add_ps intrinsic - для float и _mm_add_pd для double. Как я могу использовать трюк специализации шаблона?
Это 'Точность', а не' Presision'! :) –
oops))) исправлено)) – gorill