nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
gev.hpp
Go to the documentation of this file.
1
3// toolboxes/stats/include/nk/stats/distributions/gev.hpp
4//
5// Generalized Extreme Value distribution.
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
39Value gevpdf(const Value &x, double k, double sigma, double mu,
40 std::pmr::memory_resource *mr = nullptr);
41
51Value gevcdf(const Value &x, double k, double sigma, double mu,
52 std::pmr::memory_resource *mr = nullptr);
53
63Value gevinv(const Value &p, double k, double sigma, double mu,
64 std::pmr::memory_resource *mr = nullptr);
65
76Value gevrnd(::nk::ops::RngContext &rng, double k, double sigma, double mu,
77 size_t rows = 1, size_t cols = 1,
78 std::pmr::memory_resource *mr = nullptr);
79
90std::tuple<double, double>
91gevstat(double k, double sigma, double mu);
92
115Value gevfit(const Value &x, std::pmr::memory_resource *mr = nullptr);
116
123Value gevfit_ci(const Value &x, double alpha = 0.05,
124 std::pmr::memory_resource *mr = nullptr);
125
126
128} // namespace nk::stats
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
std::tuple< double, double > gevstat(double k, double sigma, double mu)
GEV mean and variance ([m, v] = gevstat(k, sigma, mu)).
Value gevpdf(const Value &x, double k, double sigma, double mu, std::pmr::memory_resource *mr=nullptr)
GEV pdf (y = gevpdf(x, k, sigma, mu)).
Value gevinv(const Value &p, double k, double sigma, double mu, std::pmr::memory_resource *mr=nullptr)
GEV inverse cdf (x = gevinv(p, k, sigma, mu)).
Value gevcdf(const Value &x, double k, double sigma, double mu, std::pmr::memory_resource *mr=nullptr)
GEV cdf (p = gevcdf(x, k, sigma, mu)).
Value gevfit_ci(const Value &x, double alpha=0.05, std::pmr::memory_resource *mr=nullptr)
95% Wald CI for gevfit (pci = gevfit_ci(x, alpha)).
Value gevrnd(::nk::ops::RngContext &rng, double k, double sigma, double mu, size_t rows=1, size_t cols=1, std::pmr::memory_resource *mr=nullptr)
GEV random samples (r = gevrnd(k, sigma, mu, rows, cols)).
Value gevfit(const Value &x, std::pmr::memory_resource *mr=nullptr)
GEV MLE fit ([parmhat, parmci] = gevfit(x, alpha)).