nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
uniform.hpp
Go to the documentation of this file.
1
3// toolboxes/stats/include/nk/stats/distributions/uniform.hpp
4//
5// Continuous uniform distribution on [a, b]. Closed-form throughout.
6// Defaults: a = 0, b = 1.
7
8#pragma once
9
10#include <memory_resource>
11#include <nk/value/value.hpp>
12
13#include <tuple>
14
15namespace nk {
16
19 namespace ops { class RngContext; } }
20
21namespace nk::stats {
22
33Value unifpdf(const Value &x, double a, double b,
34 std::pmr::memory_resource *mr = nullptr);
35
46Value unifcdf(const Value &x, double a, double b,
47 std::pmr::memory_resource *mr = nullptr);
48
59Value unifinv(const Value &p, double a, double b,
60 std::pmr::memory_resource *mr = nullptr);
61
71Value unifrnd(::nk::ops::RngContext &rng, double a, double b, size_t rows = 1, size_t cols = 1,
72 std::pmr::memory_resource *mr = nullptr);
73
82std::tuple<double, double> unifstat(double a, double b);
83
84
86} // namespace nk::stats
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
std::tuple< double, double > unifstat(double a, double b)
Continuous-uniform mean and variance ([m, v] = unifstat(a, b)).
Value unifpdf(const Value &x, double a, double b, std::pmr::memory_resource *mr=nullptr)
Continuous-uniform pdf (y = unifpdf(x, a, b)).
Value unifrnd(::nk::ops::RngContext &rng, double a, double b, size_t rows=1, size_t cols=1, std::pmr::memory_resource *mr=nullptr)
Continuous-uniform random samples (r = unifrnd(a, b, rows, cols)).
Value unifinv(const Value &p, double a, double b, std::pmr::memory_resource *mr=nullptr)
Continuous-uniform inverse cdf (x = unifinv(p, a, b)).
Value unifcdf(const Value &x, double a, double b, std::pmr::memory_resource *mr=nullptr)
Continuous-uniform cdf (p = unifcdf(x, a, b)).