kfr

Fast, modern C++ DSP framework, FFT, Sample Rate Conversion, FIR/IIR/Biquad Filters (SSE, AVX, AVX-512, ARM NEON)
Log | Files | Refs | README

commit a7fad187dde8a0be1e2c0d9018870dd5869c1842
parent efdb74f011a82742840b9f3be67eea24b75ed6fa
Author: d.levin256@gmail.com <d.levin256@gmail.com>
Date:   Tue,  8 Nov 2016 06:41:48 +0300

random.hpp: Add KFR_ENABLE_IF

Diffstat:
Minclude/kfr/base/random.hpp | 12++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/include/kfr/base/random.hpp b/include/kfr/base/random.hpp @@ -107,20 +107,20 @@ inline vec<f64, N> randommantissa(random_bit_generator& gen) return bitcast<f64>((random_uniform<u64, N>(gen) & 0x000FFFFFFFFFFFFFull) | 0x3FF0000000000000ull) + 0.0; } -template <typename T, size_t N> -inline enable_if_f<vec<T, N>> random_uniform(random_bit_generator& gen) +template <typename T, size_t N, KFR_ENABLE_IF(is_f_class<T>::value)> +inline vec<T, N> random_uniform(random_bit_generator& gen) { return randommantissa<T, N>(gen) - 1.f; } -template <size_t N, typename T> -inline enable_if_f<vec<T, N>> random_range(random_bit_generator& gen, T min, T max) +template <size_t N, typename T, KFR_ENABLE_IF(is_f_class<T>::value)> +inline vec<T, N> random_range(random_bit_generator& gen, T min, T max) { return mix(random_uniform<T, N>(gen), min, max); } -template <size_t N, typename T> -inline enable_if_not_f<vec<T, N>> random_range(random_bit_generator& gen, T min, T max) +template <size_t N, typename T, KFR_ENABLE_IF(!is_f_class<T>::value)> +inline vec<T, N> random_range(random_bit_generator& gen, T min, T max) { using big_type = findinttype<sqr(std::numeric_limits<T>::min()), sqr(std::numeric_limits<T>::max())>;