nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
weibull.hpp
Go to the documentation of this file.
1
3// toolboxes/stats/include/nk/stats/distributions/weibull.hpp
4//
5// Weibull distribution. Convention: a = scale, b = shape, so
6// f(x) = (b/a)·(x/a)^(b-1)·exp(-(x/a)^b). Note std::weibull_distribution
7// takes (shape, scale) — opposite order.
8
9#pragma once
10
11#include <memory_resource>
12#include <nk/value/value.hpp>
13
14#include <tuple>
15
16namespace nk {
17
20 namespace ops { class RngContext; } }
21
22namespace nk::stats {
23
36Value wblpdf(const Value &x, double a, double b,
37 std::pmr::memory_resource *mr = nullptr);
38
49Value wblcdf(const Value &x, double a, double b,
50 std::pmr::memory_resource *mr = nullptr);
51
62Value wblinv(const Value &p, double a, double b,
63 std::pmr::memory_resource *mr = nullptr);
64
74Value wblrnd(::nk::ops::RngContext &rng, double a, double b, size_t rows = 1, size_t cols = 1,
75 std::pmr::memory_resource *mr = nullptr);
76
87std::tuple<double, double> wblstat(double a, double b);
88
102Value wblfit(const Value &x, std::pmr::memory_resource *mr = nullptr);
103
112Value wblfit(const Value &x, const Value &censoring, const Value &freq,
113 std::pmr::memory_resource *mr = nullptr);
114
120Value wblfit_ci(const Value &x, double alpha = 0.05,
121 std::pmr::memory_resource *mr = nullptr);
122
125Value wblfit_ci(const Value &x, double alpha,
126 const Value &censoring, const Value &freq,
127 std::pmr::memory_resource *mr = nullptr);
128
129
131} // namespace nk::stats
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value wblfit(const Value &x, std::pmr::memory_resource *mr=nullptr)
Weibull MLE fit ([ahat, bhat] = wblfit(x)).
Value wblcdf(const Value &x, double a, double b, std::pmr::memory_resource *mr=nullptr)
Weibull cdf (p = wblcdf(x, a, b)).
Value wblpdf(const Value &x, double a, double b, std::pmr::memory_resource *mr=nullptr)
Weibull pdf (y = wblpdf(x, a, b)).
std::tuple< double, double > wblstat(double a, double b)
Weibull mean and variance ([m, v] = wblstat(a, b)).
Value wblfit_ci(const Value &x, double alpha=0.05, std::pmr::memory_resource *mr=nullptr)
95% Wald CI for wblfit (pci = wblfit_ci(x, alpha)).
Value wblinv(const Value &p, double a, double b, std::pmr::memory_resource *mr=nullptr)
Weibull inverse cdf (x = wblinv(p, a, b)).
Value wblrnd(::nk::ops::RngContext &rng, double a, double b, size_t rows=1, size_t cols=1, std::pmr::memory_resource *mr=nullptr)
Weibull random samples (r = wblrnd(a, b, rows, cols)).