nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
chi2.hpp
Go to the documentation of this file.
1
3// toolboxes/stats/include/nk/stats/distributions/chi2.hpp
4//
5// Chi-squared distribution. χ²(k) is the sum of k independent
6// standard normals squared.
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
34Value chi2pdf(const Value &x, double k, std::pmr::memory_resource *mr = nullptr);
35
46Value chi2cdf(const Value &x, double k, std::pmr::memory_resource *mr = nullptr);
47
57Value chi2inv(const Value &p, double k, std::pmr::memory_resource *mr = nullptr);
58
69Value chi2rnd(::nk::ops::RngContext &rng, double k, size_t rows = 1, size_t cols = 1, std::pmr::memory_resource *mr = nullptr);
70
78std::tuple<double, double> chi2stat(double k);
79
80
82} // namespace nk::stats
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value chi2rnd(::nk::ops::RngContext &rng, double k, size_t rows=1, size_t cols=1, std::pmr::memory_resource *mr=nullptr)
Chi-squared random samples (r = chi2rnd(k, rows, cols)).
Value chi2cdf(const Value &x, double k, std::pmr::memory_resource *mr=nullptr)
Chi-squared cdf (F = chi2cdf(x, k)).
Value chi2pdf(const Value &x, double k, std::pmr::memory_resource *mr=nullptr)
Chi-squared pdf (y = chi2pdf(x, k)).
std::tuple< double, double > chi2stat(double k)
Chi-squared mean and variance ([m, v] = chi2stat(k)).
Value chi2inv(const Value &p, double k, std::pmr::memory_resource *mr=nullptr)
Chi-squared inverse cdf (x = chi2inv(p, k)).