MCPcopy Create free account
hub / github.com/ARM-software/ComputeLibrary / fill_tensor_uniform_ranged

Method fill_tensor_uniform_ranged

tests/AssetsLibrary.h:836–922  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

834
835template <typename T>
836void AssetsLibrary::fill_tensor_uniform_ranged(T &&tensor,
837 std::random_device::result_type seed_offset,
838 const std::vector<AssetsLibrary::RangePair> &excluded_range_pairs) const
839{
840 using namespace arm_compute::utils::random;
841
842 switch (tensor.data_type())
843 {
844 case DataType::U8:
845 case DataType::QASYMM8:
846 {
847 const auto converted_pairs = detail::convert_range_pair<uint32_t>(excluded_range_pairs);
848 RangedUniformDistribution<uint32_t> distribution_u8(std::numeric_limits<uint8_t>::lowest(),
849 std::numeric_limits<uint8_t>::max(), converted_pairs);
850 fill(tensor, distribution_u8, seed_offset);
851 break;
852 }
853 case DataType::S8:
854 case DataType::QSYMM8:
855 {
856 const auto converted_pairs = detail::convert_range_pair<int32_t>(excluded_range_pairs);
857 RangedUniformDistribution<int32_t> distribution_s8(std::numeric_limits<int8_t>::lowest(),
858 std::numeric_limits<int8_t>::max(), converted_pairs);
859 fill(tensor, distribution_s8, seed_offset);
860 break;
861 }
862 case DataType::U16:
863 {
864 const auto converted_pairs = detail::convert_range_pair<uint16_t>(excluded_range_pairs);
865 RangedUniformDistribution<uint16_t> distribution_u16(std::numeric_limits<uint16_t>::lowest(),
866 std::numeric_limits<uint16_t>::max(), converted_pairs);
867 fill(tensor, distribution_u16, seed_offset);
868 break;
869 }
870 case DataType::S16:
871 case DataType::QSYMM16:
872 {
873 const auto converted_pairs = detail::convert_range_pair<int16_t>(excluded_range_pairs);
874 RangedUniformDistribution<int16_t> distribution_s16(std::numeric_limits<int16_t>::lowest(),
875 std::numeric_limits<int16_t>::max(), converted_pairs);
876 fill(tensor, distribution_s16, seed_offset);
877 break;
878 }
879 case DataType::U32:
880 {
881 const auto converted_pairs = detail::convert_range_pair<uint32_t>(excluded_range_pairs);
882 RangedUniformDistribution<uint32_t> distribution_u32(std::numeric_limits<uint32_t>::lowest(),
883 std::numeric_limits<uint32_t>::max(), converted_pairs);
884 fill(tensor, distribution_u32, seed_offset);
885 break;
886 }
887 case DataType::S32:
888 {
889 const auto converted_pairs = detail::convert_range_pair<int32_t>(excluded_range_pairs);
890 RangedUniformDistribution<int32_t> distribution_s32(std::numeric_limits<int32_t>::lowest(),
891 std::numeric_limits<int32_t>::max(), converted_pairs);
892 fill(tensor, distribution_s32, seed_offset);
893 break;

Callers 2

fillMethod · 0.80
fillMethod · 0.80

Calls 5

lowestFunction · 0.85
fillFunction · 0.85
bfloat16Class · 0.85
halfClass · 0.85
data_typeMethod · 0.45

Tested by

no test coverage detected