diff options
author | Giorgio Arena <giorgio.arena@arm.com> | 2021-01-06 11:34:57 +0000 |
---|---|---|
committer | Giorgio Arena <giorgio.arena@arm.com> | 2021-01-07 09:56:45 +0000 |
commit | a8e2aeb7d2d46a7ab0e9523de145af9920fc1fa3 (patch) | |
tree | 21547ff0230f1cd842bae21817d4f54c6888664a /support/Random.h | |
parent | c5a613982c12977cef2e2e16aaf9c50fa1629a88 (diff) | |
download | ComputeLibrary-a8e2aeb7d2d46a7ab0e9523de145af9920fc1fa3.tar.gz |
Generalize custom uniform generator for floating point data types with 16 bits
- Change name of uniform_real_distribution_fp16 to uniform_real_distribution_16bit, and make it also accept bfloat16 data type
Resolves: COMPMID-4057
Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Change-Id: Id2f1a84b9c9f09cb260a0785add4fc5954d5853a
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4768
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'support/Random.h')
-rw-r--r-- | support/Random.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/support/Random.h b/support/Random.h index d5d372dc82..7658e6d529 100644 --- a/support/Random.h +++ b/support/Random.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2020 Arm Limited. + * Copyright (c) 2019-2021 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -44,10 +44,10 @@ template <typename T> class RangedUniformDistribution { public: - static constexpr bool is_half = std::is_same<T, half>::value; - static constexpr bool is_integral = std::is_integral<T>::value && !is_half; + static constexpr bool is_fp_16bit = std::is_same<T, half>::value || std::is_same<T, bfloat16>::value; + static constexpr bool is_integral = std::is_integral<T>::value && !is_fp_16bit; - using fp_dist = typename std::conditional<is_half, arm_compute::utils::uniform_real_distribution_fp16, std::uniform_real_distribution<T>>::type; + using fp_dist = typename std::conditional<is_fp_16bit, arm_compute::utils::uniform_real_distribution_16bit<T>, std::uniform_real_distribution<T>>::type; using DT = typename std::conditional<is_integral, std::uniform_int_distribution<T>, fp_dist>::type; using result_type = T; using range_pair = std::pair<result_type, result_type>; |