@@ -83,8 +83,6 @@ template<typename T NBL_STRUCT_CONSTRAINABLE>
83
83
struct trunc_helper;
84
84
template<typename T NBL_STRUCT_CONSTRAINABLE>
85
85
struct ceil_helper;
86
- template<typename T NBL_STRUCT_CONSTRAINABLE>
87
- struct fma_helper;
88
86
template<typename T, typename U NBL_STRUCT_CONSTRAINABLE>
89
87
struct ldexp_helper;
90
88
template<typename T NBL_STRUCT_CONSTRAINABLE>
@@ -138,7 +136,6 @@ template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER(roundEven_helper, round
138
136
template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER (trunc_helper, trunc, (T), (T), T)
139
137
template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER (ceil_helper, ceil, (T), (T), T)
140
138
template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER (pow_helper, pow, (T), (T)(T), T)
141
- template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER (fma_helper, fma, (T), (T)(T)(T), T)
142
139
template<typename T, typename U> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER (ldexp_helper, ldexp, (T)(U), (T)(U), T)
143
140
template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER (modfStruct_helper, modfStruct, (T), (T), ModfOutput<T>)
144
141
template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER (frexpStruct_helper, frexpStruct, (T), (T), FrexpOutput<T>)
@@ -337,16 +334,6 @@ struct roundEven_helper<FloatingPoint NBL_PARTIAL_REQ_BOT(concepts::FloatingPoin
337
334
}
338
335
};
339
336
340
- template<typename FloatingPoint>
341
- NBL_PARTIAL_REQ_TOP (concepts::FloatingPointScalar<FloatingPoint>)
342
- struct fma_helper<FloatingPoint NBL_PARTIAL_REQ_BOT (concepts::FloatingPointScalar<FloatingPoint>) >
343
- {
344
- static FloatingPoint __call (NBL_CONST_REF_ARG (FloatingPoint) x, NBL_CONST_REF_ARG (FloatingPoint) y, NBL_CONST_REF_ARG (FloatingPoint) z)
345
- {
346
- return std::fma (x, y, z);
347
- }
348
- };
349
-
350
337
template<typename T, typename U>
351
338
NBL_PARTIAL_REQ_TOP (concepts::FloatingPointScalar<T> && concepts::IntegralScalar<U>)
352
339
struct ldexp_helper<T, U NBL_PARTIAL_REQ_BOT (concepts::FloatingPointScalar<T> && concepts::IntegralScalar<U>) >
@@ -510,25 +497,6 @@ struct pow_helper<T NBL_PARTIAL_REQ_BOT(VECTOR_SPECIALIZATION_CONCEPT) >
510
497
}
511
498
};
512
499
513
- template<typename T>
514
- NBL_PARTIAL_REQ_TOP (VECTOR_SPECIALIZATION_CONCEPT)
515
- struct fma_helper<T NBL_PARTIAL_REQ_BOT (VECTOR_SPECIALIZATION_CONCEPT) >
516
- {
517
- using return_t = T;
518
- static return_t __call (NBL_CONST_REF_ARG (T) x, NBL_CONST_REF_ARG (T) y, NBL_CONST_REF_ARG (T) z)
519
- {
520
- using traits = hlsl::vector_traits<T>;
521
- array_get<T, typename traits::scalar_type> getter;
522
- array_set<T, typename traits::scalar_type> setter;
523
-
524
- return_t output;
525
- for (uint32_t i = 0 ; i < traits::Dimension; ++i)
526
- setter (output, i, fma_helper<typename traits::scalar_type>::__call (getter (x, i), getter (y, i), getter (z, i)));
527
-
528
- return output;
529
- }
530
- };
531
-
532
500
template<typename T, typename U>
533
501
NBL_PARTIAL_REQ_TOP (VECTOR_SPECIALIZATION_CONCEPT && (vector_traits<T>::Dimension == vector_traits<U>::Dimension))
534
502
struct ldexp_helper<T, U NBL_PARTIAL_REQ_BOT (VECTOR_SPECIALIZATION_CONCEPT && (vector_traits<T>::Dimension == vector_traits<U>::Dimension)) >
0 commit comments