Fishnet 2.0.1
Framework for Graph-Based Analysis of GIS Vector Data
Loading...
Searching...
No Matches
fishnet::math Namespace Reference

Classes

class  Degrees
 Degrees implementation of Angle. More...
 
class  Radians
 Radians implementation of Angle. More...
 

Concepts

concept  Number
 
concept  convertible_without_loss
 

Typedefs

using DEFAULT_FLOATING_POINT = double
 
using DEFAULT_NUMERIC = double
 
using DEFAULT_INTEGRAL = int
 

Functions

constexpr size_t CantorPairing (size_t x, size_t y) noexcept
 
template<std::floating_point F>
static constexpr DEFAULT_FLOATING_POINT getDefaultEpsilon ()
 
template<Number T>
constexpr bool isZero (T number) noexcept
 
template<Number T, Number U>
constexpr bool areEqual (T lhs, U rhs) noexcept
 
template<Number ValueType, Number BoundType>
static auto normalize (const ValueType value, BoundType upperBound)
 Normalizes any value into the range: [0,upperBound)
 
static auto normalize (Number auto value, Number auto lowerBound, Number auto upperBound)
 Normalizes value in the range [lowerBound,upperBound)
 
static Option< double > mean (std::ranges::input_range auto &&values, fishnet::util::UnaryFunction< std::ranges::range_value_t< decltype(values)>, double > auto const &valueMapper)
 
static Option< double > mean (std::ranges::input_range auto &&values)
 
static Option< double > avg (std::ranges::input_range auto &&values, fishnet::util::UnaryFunction< std::ranges::range_value_t< decltype(values)>, double > auto const &valueMapper)
 
static Option< double > avg (std::ranges::input_range auto &&values)
 
static Option< double > var (std::ranges::input_range auto &&values, fishnet::util::UnaryFunction< std::ranges::range_value_t< decltype(values)>, double > auto const &valueMapper, double meanValue)
 
static Option< double > var (std::ranges::input_range auto &&values, fishnet::util::UnaryFunction< std::ranges::range_value_t< decltype(values)>, double > auto const &valueMapper)
 
static Option< double > var (std::ranges::input_range auto &&values)
 
static Option< double > var (std::ranges::input_range auto &&values, double mean)
 
static Option< double > std (std::ranges::input_range auto &&values, fishnet::util::UnaryFunction< std::ranges::range_value_t< decltype(values)>, double > auto const &valueMapper, double meanValue)
 
static Option< double > std (std::ranges::input_range auto &&values, fishnet::util::UnaryFunction< std::ranges::range_value_t< decltype(values)>, double > auto const &valueMapper)
 
static Option< double > std (std::ranges::input_range auto &&values)
 
static Option< double > std (std::ranges::input_range auto &&values, double mean)
 

Variables

static constexpr double PI = 3.14159265358979323846
 
static constexpr double TWO_PI = 2*PI
 
static constexpr double DEG_TO_RAD = PI / 180.0
 
static constexpr double RAD_TO_DEG = 180.0 / PI
 
static constexpr double DOUBLE_EPSILON = 1e-12
 
static constexpr float FLOAT_EPSILON =1e-6f
 
static constexpr DEFAULT_FLOATING_POINT EPSILON = getDefaultEpsilon<DEFAULT_FLOATING_POINT>()
 

Typedef Documentation

◆ DEFAULT_FLOATING_POINT

using fishnet::math::DEFAULT_FLOATING_POINT = typedef double

◆ DEFAULT_INTEGRAL

using fishnet::math::DEFAULT_INTEGRAL = typedef int

◆ DEFAULT_NUMERIC

using fishnet::math::DEFAULT_NUMERIC = typedef double

Function Documentation

◆ areEqual()

template<Number T, Number U>
constexpr bool fishnet::math::areEqual ( T  lhs,
U  rhs 
)
inlineconstexprnoexcept

◆ avg() [1/2]

static Option< double > fishnet::math::avg ( std::ranges::input_range auto &&  values)
static

◆ avg() [2/2]

static Option< double > fishnet::math::avg ( std::ranges::input_range auto &&  values,
fishnet::util::UnaryFunction< std::ranges::range_value_t< decltype(values)>, double > auto const &  valueMapper 
)
static

◆ CantorPairing()

constexpr size_t fishnet::math::CantorPairing ( size_t  x,
size_t  y 
)
inlineconstexprnoexcept

◆ getDefaultEpsilon()

template<std::floating_point F>
static constexpr DEFAULT_FLOATING_POINT fishnet::math::getDefaultEpsilon ( )
staticconstexpr

◆ isZero()

template<Number T>
constexpr bool fishnet::math::isZero ( T  number)
inlineconstexprnoexcept

◆ mean() [1/2]

static Option< double > fishnet::math::mean ( std::ranges::input_range auto &&  values)
static

◆ mean() [2/2]

static Option< double > fishnet::math::mean ( std::ranges::input_range auto &&  values,
fishnet::util::UnaryFunction< std::ranges::range_value_t< decltype(values)>, double > auto const &  valueMapper 
)
static

◆ normalize() [1/2]

template<Number ValueType, Number BoundType>
static auto fishnet::math::normalize ( const ValueType  value,
BoundType  upperBound 
)
static

Normalizes any value into the range: [0,upperBound)

Template Parameters
ValueTypenumeric type of the value to normalize
BoundTypenumeric type of the bound
Parameters
valuevalue to normalize
upperBoundupper bound
Returns
normalized value in the range [0,upperBound)

◆ normalize() [2/2]

static auto fishnet::math::normalize ( Number auto  value,
Number auto  lowerBound,
Number auto  upperBound 
)
static

Normalizes value in the range [lowerBound,upperBound)

Parameters
valuevalue to normalize
lowerBound
upperBound
Returns
normalized value in the range [lowerBound,upperBound)

◆ std() [1/4]

static Option< double > fishnet::math::std ( std::ranges::input_range auto &&  values)
static

◆ std() [2/4]

static Option< double > fishnet::math::std ( std::ranges::input_range auto &&  values,
double  mean 
)
static

◆ std() [3/4]

static Option< double > fishnet::math::std ( std::ranges::input_range auto &&  values,
fishnet::util::UnaryFunction< std::ranges::range_value_t< decltype(values)>, double > auto const &  valueMapper 
)
static

◆ std() [4/4]

static Option< double > fishnet::math::std ( std::ranges::input_range auto &&  values,
fishnet::util::UnaryFunction< std::ranges::range_value_t< decltype(values)>, double > auto const &  valueMapper,
double  meanValue 
)
static

◆ var() [1/4]

static Option< double > fishnet::math::var ( std::ranges::input_range auto &&  values)
static

◆ var() [2/4]

static Option< double > fishnet::math::var ( std::ranges::input_range auto &&  values,
double  mean 
)
static

◆ var() [3/4]

static Option< double > fishnet::math::var ( std::ranges::input_range auto &&  values,
fishnet::util::UnaryFunction< std::ranges::range_value_t< decltype(values)>, double > auto const &  valueMapper 
)
static

◆ var() [4/4]

static Option< double > fishnet::math::var ( std::ranges::input_range auto &&  values,
fishnet::util::UnaryFunction< std::ranges::range_value_t< decltype(values)>, double > auto const &  valueMapper,
double  meanValue 
)
static

Variable Documentation

◆ DEG_TO_RAD

constexpr double fishnet::math::DEG_TO_RAD = PI / 180.0
staticconstexpr

◆ DOUBLE_EPSILON

constexpr double fishnet::math::DOUBLE_EPSILON = 1e-12
staticconstexpr

◆ EPSILON

constexpr DEFAULT_FLOATING_POINT fishnet::math::EPSILON = getDefaultEpsilon<DEFAULT_FLOATING_POINT>()
staticconstexpr

◆ FLOAT_EPSILON

constexpr float fishnet::math::FLOAT_EPSILON =1e-6f
staticconstexpr

◆ PI

constexpr double fishnet::math::PI = 3.14159265358979323846
staticconstexpr

◆ RAD_TO_DEG

constexpr double fishnet::math::RAD_TO_DEG = 180.0 / PI
staticconstexpr

◆ TWO_PI

constexpr double fishnet::math::TWO_PI = 2*PI
staticconstexpr