TYoshimura.DoubleDouble.Statistic
1.8.0
dotnet add package TYoshimura.DoubleDouble.Statistic --version 1.8.0
NuGet\Install-Package TYoshimura.DoubleDouble.Statistic -Version 1.8.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TYoshimura.DoubleDouble.Statistic" Version="1.8.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TYoshimura.DoubleDouble.Statistic --version 1.8.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: TYoshimura.DoubleDouble.Statistic, 1.8.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install TYoshimura.DoubleDouble.Statistic as a Cake Addin #addin nuget:?package=TYoshimura.DoubleDouble.Statistic&version=1.8.0 // Install TYoshimura.DoubleDouble.Statistic as a Cake Tool #tool nuget:?package=TYoshimura.DoubleDouble.Statistic&version=1.8.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
DoubleDoubleStatistic
Double-Double Statistic Implements
Requirement
.NET 8.0
DoubleDouble
DoubleDoubleComplex
Algebra
Install
Implemented Distributions
Continuous
category | distribution | CDF | quantile | statistic | fitting | random generation | note | |
---|---|---|---|---|---|---|---|---|
stable | cauchy | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
delta | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
holtsmark | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
landau | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
levy | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
map-airy | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
normal | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
sas point5 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
linearity | cosine | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
davis | ✔ | ⚠ | ⚠ | ✔ | ⚠ | ✔ | CDF and Quantile take longer to calculate. | |
frechet | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
gumbel | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
johnson sb | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
johnson su | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
laplace | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
logistic | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
skew cauchy | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
skew normal | ✔ | ✔ | ⚠ | ✔ | ⚠ | ✔ | Quantile take longer to calculate. | |
uniform | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
u quadratic | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
weibull | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
scalable | benini | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
birnbaum saunders | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
exponential | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
folded normal | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
gamma | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
gompertz | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
half cauchy | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
half logistic | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
half normal | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
hyperbolic secant | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
inverse gauss | ✔ | ✔ | ⚠ | ✔ | ⚠ | ✔ | Quantile take longer to calculate. | |
log logistic | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
lomax | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
maxwell | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
q-exponential | ⚠ | ⚠ | ✔ | ✔ | ✔ | ✔ | Accuracy decreases when q is nearly 2. | |
q-gaussian | ⚠ | ⚠ | ✔ | ✔ | ✔ | ✔ | Accuracy decreases when q is nearly 3. | |
pareto | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
rayleigh | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
voigt | ✔ | ⚠ | ⚠ | ✔ | ⚠ | ✔ | CDF and Quantile take longer to calculate. | |
wigner semicircle | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
continuous | alpha | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
arcsine | ✔ | ✔ | ✔ | ✔ | - | ✔ | ||
argus | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
benktander | ✔ | ✔ | ⚠ | ✔ | ⚠ | ✔ | Quantile take longer to calculate. | |
bates | ✔ | ✔ | ✔ | ✔ | - | ✔ | n ≤ 128 | |
beta | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
beta prime | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
bradford | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
burr | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
chi | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
chi square | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
dagum | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
fisher z | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
fisk | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
hotelling t sq | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
inverse gamma | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
inverse chi | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
inverse chi sq | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
irwin hall | ✔ | ✔ | ✔ | ✔ | - | ✔ | n ≤ 128 | |
kumaraswamy | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
log normal | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
nakagami | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
noncentral beta | ✔ | ✔ | ⚠ | ✔ | ❌ | ✔ | Accuracy decreases when non-centricity is large. | |
noncentral chi sq | ✔ | ✔ | ⚠ | ✔ | ❌ | ✔ | Accuracy decreases when non-centricity is large. | |
noncentral f | ✔ | ✔ | ⚠ | ✔ | ❌ | ✔ | Accuracy decreases when non-centricity is large. | |
noncentral t | ✔ | ✔ | ⚠ | ✔ | ❌ | ✔ | Accuracy decreases when non-centricity is large. | |
power | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
reciprocal | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
rice | ✔ | ⚠ | ⚠ | ✔ | ⚠ | ✔ | CDF and Quantile take longer to calculate. | |
snedecor f | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
student t | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
trapezoid | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ||
triangular | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
tukey lambda | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Discrete
category | distribution | PMF | statistic | fitting | random generation | note |
---|---|---|---|---|---|---|
discrete | bernoulli | ✔ | ✔ | ✔ | ✔ | |
benford | ✔ | ✔ | - | ✔ | ||
binary | ✔ | ✔ | - | ✔ | ||
binomial | ✔ | ✔ | ✔ | ✔ | ||
categorical | ✔ | ✔ | - | ✔ | ||
discrete uniform | ✔ | ✔ | ✔ | ✔ | ||
gausskuzmin | ✔ | ✔ | - | ✔ | ||
geometric | ✔ | ✔ | ✔ | ✔ | ||
hyper geometric | ✔ | ✔ | - | ✔ | ||
logarithmic | ✔ | ✔ | ✔ | ✔ | ||
negative binomial | ✔ | ✔ | ✔ | ✔ | ||
pascal | ✔ | ✔ | ✔ | ✔ | ||
poisson | ✔ | ✔ | ✔ | ✔ | ||
skellam | ✔ | ✔ | ✔ | ✔ | ||
yule simon | ✔ | ✔ | ✔ | ✔ | ||
zipf | ✔ | ✔ | ✔ | ✔ |
Directional
category | distribution | statistic | fitting | random generation | note | |
---|---|---|---|---|---|---|
directional | circular cauchy | ✔ | ⚠ | ✔ | ✔ | Not implemented: kurtosis |
von mises | ✔ | ⚠ | ✔ | ✔ | Not implemented: kurtosis | |
sphere uniform | ✔ | ⚠ | - | ✔ | Not implemented: kurtosis | |
von mises fisher | ✔ | ⚠ | ✔ | ✔ | Dim=3, Not implemented: kurtosis |
MultiVariate
category | distribution | statistic | fitting | random generation | note | |
---|---|---|---|---|---|---|
multivariate | ball uniform | ✔ | ✔ | - | ✔ | |
dirichlet | ✔ | ✔ | ✔ | ✔ | ||
disk uniform | ✔ | ✔ | - | ✔ | ||
multi normal | ✔ | ✔ | ✔ | ✔ |
Usage
NormalDistribution dist = new(mu: 1, sigma: 3);
// PDF
for (ddouble x = -4; x <= 4; x += 0.125) {
ddouble pdf = dist.PDF(x);
Console.WriteLine($"pdf({x})={pdf}");
}
// CDF
for (ddouble x = -4; x <= 4; x += 0.125) {
ddouble ccdf = dist.CDF(x, Interval.Upper);
Console.WriteLine($"ccdf({x})={ccdf}");
}
// Quantile
for (int i = 0; i <= 10; i++) {
ddouble p = (ddouble)i / 10;
ddouble x = dist.Quantile(p, Interval.Upper);
Console.WriteLine($"cquantile({p})={x}");
}
// Statistic
Console.WriteLine($"Support={dist.Support}");
Console.WriteLine($"Mu={dist.Mu}");
Console.WriteLine($"Sigma={dist.Sigma}");
Console.WriteLine($"Mean={dist.Mean}");
Console.WriteLine($"Median={dist.Median}");
Console.WriteLine($"Mode={dist.Mode}");
Console.WriteLine($"Variance={dist.Variance}");
Console.WriteLine($"Skewness={dist.Skewness}");
Console.WriteLine($"Kurtosis={dist.Kurtosis}");
Console.WriteLine($"Entropy={dist.Entropy}");
// Random Sampling
Random random = new(1234);
double[] xs = dist.Sample(random, 100000).ToArray();
// Fitting
// note: The distribution that minimizes the squared error
// of the quantile function over the specified interval is return.
(NormalDistribution? dist_fit, ddouble error) =
NormalDistribution.Fit(xs, fitting_quantile_range: (0.1, 0.9));
Typical parameter symbols
category | symbol | note |
---|---|---|
support parameter | k | |
a, b | uniform | |
a, b, c | triangular | |
shape parameter | alpha | |
alpha, beta | beta, beta prime | |
gamma, delta | johnson sb, su | |
eta | gompertz | |
nu | chi, chisq, student t | |
n | irwin hall | |
n, m | fisher z, snedecor f | |
c | stable distributions | |
location parameter | mu | |
scale parameter | sigma | error-related distributions |
theta | time-related distributions | |
s, r | otherwise | |
non-centricity parameter | lambda | |
mu | non-central student t |
Licence
Author
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- TYoshimura.Algebra (>= 2.3.2)
- TYoshimura.DoubleDouble (>= 4.2.0)
- TYoshimura.DoubleDouble.Complex (>= 1.6.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
1.8.0 | 67 | 11/13/2024 | |
1.7.0 | 74 | 10/31/2024 | |
1.6.5 | 136 | 8/22/2024 | |
1.6.4 | 104 | 8/14/2024 | |
1.6.3 | 82 | 7/25/2024 | |
1.6.2 | 110 | 7/12/2024 | |
1.6.1 | 70 | 7/10/2024 | |
1.6.0 | 96 | 7/9/2024 | |
1.5.9 | 99 | 7/9/2024 | |
1.5.8 | 89 | 6/7/2024 | |
1.5.7 | 86 | 5/22/2024 | |
1.5.6 | 105 | 5/21/2024 | |
1.5.5 | 99 | 5/21/2024 | |
1.5.4 | 100 | 5/21/2024 | |
1.5.3 | 113 | 5/20/2024 | |
1.5.2 | 92 | 5/20/2024 | |
1.5.1 | 106 | 5/18/2024 | |
1.5.0 | 114 | 5/16/2024 | |
1.4.1 | 114 | 5/15/2024 | |
1.4.0 | 99 | 5/14/2024 | |
1.3.2 | 104 | 5/10/2024 | |
1.3.1 | 102 | 5/9/2024 | |
1.3.0 | 108 | 5/9/2024 | |
1.2.0 | 126 | 5/5/2024 | |
1.1.1 | 127 | 5/4/2024 | |
1.1.0 | 98 | 5/3/2024 | |
1.0.9 | 74 | 5/3/2024 | |
1.0.8 | 84 | 5/3/2024 | |
1.0.7 | 99 | 5/1/2024 | |
1.0.6 | 116 | 4/30/2024 | |
1.0.5 | 99 | 4/29/2024 | |
1.0.4 | 112 | 4/27/2024 | |
1.0.3 | 117 | 4/26/2024 | |
1.0.2 | 117 | 4/25/2024 | |
1.0.1 | 118 | 4/24/2024 | |
1.0.0 | 96 | 4/24/2024 |
fix: thread safe