nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
unid.hpp
Go to the documentation of this file.
1
3// toolboxes/stats/include/nk/stats/distributions/unid.hpp
4//
5// Discrete uniform on {1, 2, ..., N}.
6
7#pragma once
8
9#include <memory_resource>
10#include <nk/value/value.hpp>
11
12#include <tuple>
13
14namespace nk {
15
18 namespace ops { class RngContext; } }
19
20namespace nk::stats {
21
31Value unidpdf(const Value &k, double N,
32 std::pmr::memory_resource *mr = nullptr);
33
43Value unidcdf(const Value &k, double N,
44 std::pmr::memory_resource *mr = nullptr);
45
55Value unidinv(const Value &p, double N,
56 std::pmr::memory_resource *mr = nullptr);
57
66Value unidrnd(::nk::ops::RngContext &rng, double N, size_t rows = 1, size_t cols = 1,
67 std::pmr::memory_resource *mr = nullptr);
68
76std::tuple<double, double> unidstat(double N);
77
78
80} // namespace nk::stats
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value unidinv(const Value &p, double N, std::pmr::memory_resource *mr=nullptr)
Discrete-uniform inverse cdf (k = unidinv(p, N)).
Value unidrnd(::nk::ops::RngContext &rng, double N, size_t rows=1, size_t cols=1, std::pmr::memory_resource *mr=nullptr)
Discrete-uniform random samples (r = unidrnd(N, rows, cols)).
std::tuple< double, double > unidstat(double N)
Discrete-uniform mean and variance ([m, v] = unidstat(N)).
Value unidcdf(const Value &k, double N, std::pmr::memory_resource *mr=nullptr)
Discrete-uniform cdf (F = unidcdf(k, N)).
Value unidpdf(const Value &k, double N, std::pmr::memory_resource *mr=nullptr)
Discrete-uniform pmf (y = unidpdf(k, N)).