nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
multivariate.hpp
Go to the documentation of this file.
1
3// toolboxes/stats/include/nk/stats/distributions/multivariate.hpp
4//
5// Multivariate distribution primitives.
6
7#pragma once
8
9#include <cstddef>
10#include <memory_resource>
11#include <nk/value/value.hpp>
12
13namespace nk {
14
17 namespace ops { class RngContext; } }
18
19namespace nk::stats {
20
46Value mvnrnd(::nk::ops::RngContext &rng, const Value &mu, const Value &Sigma, std::size_t n = 0,
47 std::pmr::memory_resource *mr = nullptr);
48
71Value mvncdf(const Value &X, const Value &mu, const Value &Sigma,
72 std::pmr::memory_resource *mr = nullptr);
73
91Value mvtrnd(::nk::ops::RngContext &rng, const Value &C, double df, std::size_t n,
92 std::pmr::memory_resource *mr = nullptr);
93
112Value mnrnd(::nk::ops::RngContext &rng, std::size_t N, const Value &P, std::size_t m = 1,
113 std::pmr::memory_resource *mr = nullptr);
114
134Value wishrnd(::nk::ops::RngContext &rng, const Value &Sigma, double df,
135 std::pmr::memory_resource *mr = nullptr);
136
153Value iwishrnd(::nk::ops::RngContext &rng, const Value &Tau, double df,
154 std::pmr::memory_resource *mr = nullptr);
155
168std::tuple<Value, Value>
169wishrnd_factor(::nk::ops::RngContext &rng, const Value &Sigma, double df,
170 const Value &D, std::pmr::memory_resource *mr = nullptr);
171
183std::tuple<Value, Value>
184iwishrnd_factor(::nk::ops::RngContext &rng, const Value &Tau, double df,
185 const Value &DI, std::pmr::memory_resource *mr = nullptr);
186
206Value mvtcdf(const Value &X, const Value &C, double df,
207 double tol = 0.01,
208 std::pmr::memory_resource *mr = nullptr);
209
224Value mvtcdf_box(const Value &L, const Value &U, const Value &C, double df,
225 double tol = 0.01,
226 std::pmr::memory_resource *mr = nullptr);
227
228
230} // namespace nk::stats
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value mvnrnd(::nk::ops::RngContext &rng, const Value &mu, const Value &Sigma, std::size_t n=0, std::pmr::memory_resource *mr=nullptr)
Multivariate normal random samples (R = mvnrnd(mu, Sigma [, n])).
Value mvtrnd(::nk::ops::RngContext &rng, const Value &C, double df, std::size_t n, std::pmr::memory_resource *mr=nullptr)
Multivariate Student's-t random samples (R = mvtrnd(C, df, n)).
std::tuple< Value, Value > iwishrnd_factor(::nk::ops::RngContext &rng, const Value &Tau, double df, const Value &DI, std::pmr::memory_resource *mr=nullptr)
Inverse-Wishart sample with pre-computed Cholesky factor (W = iwishrnd(Tau, df, DI)).
Value mvncdf(const Value &X, const Value &mu, const Value &Sigma, std::pmr::memory_resource *mr=nullptr)
Multivariate normal CDF (p = mvncdf(X, mu, Sigma)).
Value mvtcdf(const Value &X, const Value &C, double df, double tol=0.01, std::pmr::memory_resource *mr=nullptr)
Multivariate t cdf upper-tail (p = mvtcdf(X, C, df)).
std::tuple< Value, Value > wishrnd_factor(::nk::ops::RngContext &rng, const Value &Sigma, double df, const Value &D, std::pmr::memory_resource *mr=nullptr)
Wishart sample with pre-computed Cholesky factor (W = wishrnd(Sigma, df, D)).
Value iwishrnd(::nk::ops::RngContext &rng, const Value &Tau, double df, std::pmr::memory_resource *mr=nullptr)
Inverse-Wishart random matrix (W = iwishrnd(Tau, df)).
Value mvtcdf_box(const Value &L, const Value &U, const Value &C, double df, double tol=0.01, std::pmr::memory_resource *mr=nullptr)
Multivariate t box cdf (p = mvtcdf(L, U, C, df)).
Value wishrnd(::nk::ops::RngContext &rng, const Value &Sigma, double df, std::pmr::memory_resource *mr=nullptr)
Wishart random matrix (W = wishrnd(Sigma, df)).
Value mnrnd(::nk::ops::RngContext &rng, std::size_t N, const Value &P, std::size_t m=1, std::pmr::memory_resource *mr=nullptr)
Multinomial random samples (R = mnrnd(N, P, m)).