nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
lognormal.hpp
Go to the documentation of this file.
1
3// toolboxes/stats/include/nk/stats/distributions/lognormal.hpp
4//
5// Lognormal distribution: log(X) ~ 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
35Value lognpdf(const Value &x, double mu, double sigma,
36 std::pmr::memory_resource *mr = nullptr);
37
48Value logncdf(const Value &x, double mu, double sigma,
49 std::pmr::memory_resource *mr = nullptr);
50
61Value logninv(const Value &p, double mu, double sigma,
62 std::pmr::memory_resource *mr = nullptr);
63
75Value lognrnd(::nk::ops::RngContext &rng, double mu, double sigma, size_t rows = 1, size_t cols = 1,
76 std::pmr::memory_resource *mr = nullptr);
77
88std::tuple<double, double> lognstat(double mu, double sigma);
89
90
92} // namespace nk::stats
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value lognpdf(const Value &x, double mu, double sigma, std::pmr::memory_resource *mr=nullptr)
Lognormal pdf (y = lognpdf(x, mu, sigma)).
Value logninv(const Value &p, double mu, double sigma, std::pmr::memory_resource *mr=nullptr)
Lognormal inverse cdf (x = logninv(p, mu, sigma)).
Value logncdf(const Value &x, double mu, double sigma, std::pmr::memory_resource *mr=nullptr)
Lognormal cdf (p = logncdf(x, mu, sigma)).
std::tuple< double, double > lognstat(double mu, double sigma)
Lognormal mean and variance ([m, v] = lognstat(mu, sigma)).
Value lognrnd(::nk::ops::RngContext &rng, double mu, double sigma, size_t rows=1, size_t cols=1, std::pmr::memory_resource *mr=nullptr)
Lognormal random samples (r = lognrnd(mu, sigma, rows, cols)).