Skip to content

Commit

Permalink
Changed scaling template parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
jwellbelove committed Oct 19, 2022
1 parent c5257e6 commit c6f892f
Showing 1 changed file with 17 additions and 18 deletions.
35 changes: 17 additions & 18 deletions include/etl/scaled_rounding.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,13 @@ SOFTWARE.

namespace etl
{

template <typename T>
struct scaled_rounding_t
{
typedef typename etl::conditional<etl::is_signed<T>::value, int32_t, uint32_t>::type type;
};

//*****************************************************************************
//*****************************************************************************
/// A set of rounding algorithms for scaled integrals.
/// \tparam T The integral type.
/// \tparam SCALING The scaling factor.
Expand All @@ -64,7 +63,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Unscaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_ceiling_unscaled(T value)
{
ETL_STATIC_ASSERT(etl::is_integral<T>::value, "Type must be an integral");
Expand All @@ -85,7 +84,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Scaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_ceiling_scaled(T value)
{
typedef typename scaled_rounding_t<T>::type scale_t;
Expand All @@ -98,7 +97,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Unscaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_floor_unscaled(T value)
{
ETL_STATIC_ASSERT(etl::is_integral<T>::value, "Type must be an integral");
Expand All @@ -119,7 +118,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Scaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_floor_scaled(T value)
{
typedef typename scaled_rounding_t<T>::type scale_t;
Expand All @@ -133,7 +132,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Unscaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_half_up_unscaled(T value)
{
ETL_STATIC_ASSERT(etl::is_integral<T>::value, "Type must be an integral");
Expand All @@ -156,7 +155,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Scaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_half_up_scaled(T value)
{
typedef typename scaled_rounding_t<T>::type scale_t;
Expand All @@ -170,7 +169,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Unscaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_half_down_unscaled(T value)
{
ETL_STATIC_ASSERT(etl::is_integral<T>::value, "Type must be an integral");
Expand All @@ -193,7 +192,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Scaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_half_down_scaled(T value)
{
typedef typename scaled_rounding_t<T>::type scale_t;
Expand All @@ -206,7 +205,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Unscaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_zero_unscaled(T value)
{
ETL_STATIC_ASSERT(etl::is_integral<T>::value, "Type must be an integral");
Expand All @@ -220,7 +219,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Scaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_zero_scaled(T value)
{
typedef typename scaled_rounding_t<T>::type scale_t;
Expand All @@ -233,7 +232,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Unscaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_infinity_unscaled(T value)
{
ETL_STATIC_ASSERT(etl::is_integral<T>::value, "Type must be an integral");
Expand All @@ -254,7 +253,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Scaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_infinity_scaled(T value)
{
typedef typename scaled_rounding_t<T>::type scale_t;
Expand All @@ -268,7 +267,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Unscaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_half_even_unscaled(T value)
{
ETL_STATIC_ASSERT(etl::is_integral<T>::value, "Type must be an integral");
Expand Down Expand Up @@ -299,7 +298,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Scaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_half_even_scaled(T value)
{
typedef typename scaled_rounding_t<T>::type scale_t;
Expand All @@ -313,7 +312,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Unscaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_half_odd_unscaled(T value)
{
ETL_STATIC_ASSERT(etl::is_integral<T>::value, "Type must be an integral");
Expand Down Expand Up @@ -344,7 +343,7 @@ namespace etl
/// \param value Scaled integral.
/// \return Scaled, rounded integral.
//***************************************************************************
template <const size_t SCALING, typename T>
template <uint32_t SCALING, typename T>
T round_half_odd_scaled(T value)
{
typedef typename scaled_rounding_t<T>::type scale_t;
Expand Down

0 comments on commit c6f892f

Please sign in to comment.