HART  0.1.0
High level Audio Regression and Testing
Loading...
Searching...
No Matches
Utilities

Handy functions and constants. More...

Macros

#define HART_DEFINE_GENERIC_REPRESENT(ClassName)
 Defines a basic string representation of your class.
 

Functions

template<typename NumericType >
NumericType clamp (const NumericType &value, const NumericType &low, const NumericType &high)
 std::clamp() replacement for C++11
 
template<typename SampleType >
static SampleType decibelsToRatio (SampleType valueDb)
 Converts dB to linear value (ratio)
 
template<typename SampleType >
static SampleType ratioToDecibels (SampleType valueLinear)
 Converts linear value (ratio) to dB.
 
template<typename SampleType >
static SampleType floatsEqual (SampleType a, SampleType b, SampleType epsilon=(SampleType) 1e-8)
 Compares two floating point numbers within a given tolerance.
 
template<typename SampleType >
static SampleType floatsNotEqual (SampleType a, SampleType b, SampleType epsilon=(SampleType) 1e-8)
 Compares two floating point numbers within a given tolerance.
 
template<typename SampleType >
static size_t roundToSizeT (SampleType x)
 Rounds a floating point value to a size_t value.
 
template<typename SampleType >
SampleType wrapPhase (const SampleType phaseRadians)
 Keeps phase in 0..twoPi range.
 
static bool isAbsolutePath (const std::string &path)
 Checks if the provided file path is absolute.
 
static std::string toAbsolutePath (const std::string &path)
 Converts path to absolute, if it's relative @deials Relative paths are resolved based on a provided --data-root-path CLI argument

 
template<typename KeyType , typename ValueType >
static bool contains (const std::unordered_map< KeyType, ValueType > &map, const KeyType &key)
 std::unordered_map::contains() replacement for C++11
 
template<typename ObjectType , typename... Args>
std::unique_ptr< ObjectTypemake_unique (Args &&... args)
 std::make_unique() replacement for C++11
 

Variables

constexpr double inf = std::numeric_limits<double>::infinity()
 Infinity.
 
constexpr double oo = inf
 Infinity.
 
constexpr double pi = 3.14159265358979323846
 pi
 
constexpr double twoPi = 2.0 * pi
 2 * pi
 
constexpr double halfPi = pi / 2.0
 pi / 2
 

Detailed Description

Handy functions and constants.

Macro Definition Documentation

◆ HART_DEFINE_GENERIC_REPRESENT

#define HART_DEFINE_GENERIC_REPRESENT (   ClassName)
Value:
virtual void represent(std::ostream& stream) const override \
{ \
stream << #ClassName "()"; \
}

Defines a basic string representation of your class.

If your class takes ctor arguments, it's strongly encouraged to make a proper implementation of represent(), so that you get more detailed test failure reports. See DSP::represent(), Macthers::represent(), Signal::represent() for the description.

Definition at line 145 of file hart_utils.hpp.

Function Documentation

◆ clamp()

template<typename NumericType >
NumericType clamp ( const NumericType value,
const NumericType low,
const NumericType high 
)

std::clamp() replacement for C++11

Definition at line 37 of file hart_utils.hpp.

◆ decibelsToRatio()

template<typename SampleType >
static SampleType decibelsToRatio ( SampleType  valueDb)
inlinestatic

Converts dB to linear value (ratio)

Parameters
valueDbValue in decibels
Returns
Value in linear domain

Definition at line 46 of file hart_utils.hpp.

◆ ratioToDecibels()

template<typename SampleType >
static SampleType ratioToDecibels ( SampleType  valueLinear)
inlinestatic

Converts linear value (ratio) to dB.

Parameters
valueLinearValue in linear domain
Returns
Value in decibels

Definition at line 58 of file hart_utils.hpp.

◆ floatsEqual()

template<typename SampleType >
static SampleType floatsEqual ( SampleType  a,
SampleType  b,
SampleType  epsilon = (SampleType) 1e-8 
)
inlinestatic

Compares two floating point numbers within a given tolerance.

Definition at line 68 of file hart_utils.hpp.

◆ floatsNotEqual()

template<typename SampleType >
static SampleType floatsNotEqual ( SampleType  a,
SampleType  b,
SampleType  epsilon = (SampleType) 1e-8 
)
inlinestatic

Compares two floating point numbers within a given tolerance.

Definition at line 75 of file hart_utils.hpp.

◆ roundToSizeT()

template<typename SampleType >
static size_t roundToSizeT ( SampleType  x)
inlinestatic

Rounds a floating point value to a size_t value.

Definition at line 82 of file hart_utils.hpp.

◆ wrapPhase()

template<typename SampleType >
SampleType wrapPhase ( const SampleType  phaseRadians)

Keeps phase in 0..twoPi range.

Definition at line 89 of file hart_utils.hpp.

◆ isAbsolutePath()

static bool isAbsolutePath ( const std::string &  path)
inlinestatic

Checks if the provided file path is absolute.

Definition at line 100 of file hart_utils.hpp.

◆ toAbsolutePath()

static std::string toAbsolutePath ( const std::string &  path)
inlinestatic

Converts path to absolute, if it's relative @deials Relative paths are resolved based on a provided --data-root-path CLI argument

Definition at line 118 of file hart_utils.hpp.

◆ contains()

static bool contains ( const std::unordered_map< KeyType, ValueType > &  map,
const KeyType key 
)
inlinestatic

std::unordered_map::contains() replacement for C++11

Definition at line 128 of file hart_utils.hpp.

◆ make_unique()

template<typename ObjectType , typename... Args>
std::unique_ptr< ObjectType > make_unique ( Args &&...  args)

std::make_unique() replacement for C++11

For C++11 compatibility only. If you're one C++14 or later, just use STL version.

Definition at line 136 of file hart_utils.hpp.

Variable Documentation

◆ inf

constexpr double inf = std::numeric_limits<double>::infinity()
constexpr

Infinity.

Definition at line 21 of file hart_utils.hpp.

◆ oo

constexpr double oo = inf
constexpr

Infinity.

Definition at line 24 of file hart_utils.hpp.

◆ pi

constexpr double pi = 3.14159265358979323846
constexpr

pi

Definition at line 27 of file hart_utils.hpp.

◆ twoPi

constexpr double twoPi = 2.0 * pi
constexpr

2 * pi

Definition at line 30 of file hart_utils.hpp.

◆ halfPi

constexpr double halfPi = pi / 2.0
constexpr

pi / 2

Definition at line 33 of file hart_utils.hpp.