Class binned_piecewise_linear_distribution_t

Inheritance Relationships

Base Type

Class Documentation

class binned_piecewise_linear_distribution_t : public wt::distribution1d_t

Continuos piecewise-linear distribution using equal-spaced bins for fast lookup performance. Also bins the iCDF for fast sampling.

Public Functions

inline explicit binned_piecewise_linear_distribution_t(std::vector<f_t> yvalues, const range_t<> xrange)

Construct a binned_piecewise_linear_distribution_t.

Parameters:

values – non negative values, with x in strictly ascending order

inline explicit binned_piecewise_linear_distribution_t(const piecewise_linear_distribution_t &pwld, const range_t<> range = range_t<>::all(), const std::optional<f_t> min_dx = {})

Construct a binned_piecewise_linear_distribution_t.

Parameters:
  • pwld – a piecewise-linear distribution

  • min_dx – (optional) minimal bin size

binned_piecewise_linear_distribution_t(binned_piecewise_linear_distribution_t&&) noexcept = default
binned_piecewise_linear_distribution_t(const binned_piecewise_linear_distribution_t&) noexcept = default
binned_piecewise_linear_distribution_t &operator=(binned_piecewise_linear_distribution_t&&) noexcept = default
binned_piecewise_linear_distribution_t &operator=(const binned_piecewise_linear_distribution_t&) noexcept = default
inline virtual std::unique_ptr<distribution1d_t> clone() const override
inline auto xstep() const noexcept
inline auto total() const noexcept
inline auto range() const noexcept
inline auto &operator[](std::size_t idx)
inline const auto &operator[](std::size_t idx) const
inline auto size() const noexcept
inline auto begin() noexcept
inline auto end() noexcept
inline auto begin() const noexcept
inline auto end() const noexcept
inline auto &front() noexcept
inline auto &back() noexcept
inline const auto &front() const noexcept
inline const auto &back() const noexcept
inline auto cbegin() const noexcept
inline auto cend() const noexcept
inline auto crbegin() const noexcept
inline auto crend() const noexcept
inline auto rbegin() noexcept
inline auto rend() noexcept
inline auto rbegin() const noexcept
inline auto rend() const noexcept
inline auto operator+(const binned_piecewise_linear_distribution_t &d) const noexcept
inline f_t value(f_t x) const noexcept

Value at position.

Parameters:

x – position

Returns:

Piece-wise linearly interpolated value

inline f_t integrate(f_t x0, f_t x1) const noexcept

Integrate the distribution between x0 and x1.

Parameters:
  • x0 – integrate from

  • x1 – integrate to

inline virtual f_t pdf(f_t x, measure_e measure = measure_e::continuos) const noexcept final

PDF.

Parameters:

x – value

Returns:

PDF of the distribution at x

inline vec2_t icdf(f_t v) const noexcept

Inverse CDF, binned version.

Parameters:

v – CDF values in range [0,1]

Returns:

value

inline virtual sample_ret_t sample(sampler::sampler_t &sampler) const noexcept final

Sample from the distribution.