[rand.dist.samp.pconst] plus some bug fixes in the tests of the other distributions
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@104224 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -64,10 +64,10 @@ int main()
|
||||
double x_var = x_mean / d.p();
|
||||
double x_skew = (2 - d.p()) / std::sqrt(d.k() * (1 - d.p()));
|
||||
double x_kurtosis = 6. / d.k() + sqr(d.p()) / (d.k() * (1 - d.p()));
|
||||
assert(std::abs(mean - x_mean) / x_mean < 0.01);
|
||||
assert(std::abs(var - x_var) / x_var < 0.01);
|
||||
assert(std::abs(skew - x_skew) / x_skew < 0.01);
|
||||
assert(std::abs(kurtosis - x_kurtosis) / x_kurtosis < 0.01);
|
||||
assert(std::abs((mean - x_mean) / x_mean) < 0.01);
|
||||
assert(std::abs((var - x_var) / x_var) < 0.01);
|
||||
assert(std::abs((skew - x_skew) / x_skew) < 0.01);
|
||||
assert(std::abs((kurtosis - x_kurtosis) / x_kurtosis) < 0.02);
|
||||
}
|
||||
{
|
||||
typedef std::negative_binomial_distribution<> D;
|
||||
@@ -104,10 +104,10 @@ int main()
|
||||
double x_var = x_mean / d.p();
|
||||
double x_skew = (2 - d.p()) / std::sqrt(d.k() * (1 - d.p()));
|
||||
double x_kurtosis = 6. / d.k() + sqr(d.p()) / (d.k() * (1 - d.p()));
|
||||
assert(std::abs(mean - x_mean) / x_mean < 0.01);
|
||||
assert(std::abs(var - x_var) / x_var < 0.01);
|
||||
assert(std::abs(skew - x_skew) / x_skew < 0.01);
|
||||
assert(std::abs(kurtosis - x_kurtosis) / x_kurtosis < 0.01);
|
||||
assert(std::abs((mean - x_mean) / x_mean) < 0.01);
|
||||
assert(std::abs((var - x_var) / x_var) < 0.01);
|
||||
assert(std::abs((skew - x_skew) / x_skew) < 0.01);
|
||||
assert(std::abs((kurtosis - x_kurtosis) / x_kurtosis) < 0.01);
|
||||
}
|
||||
{
|
||||
typedef std::negative_binomial_distribution<> D;
|
||||
@@ -144,10 +144,10 @@ int main()
|
||||
double x_var = x_mean / d.p();
|
||||
double x_skew = (2 - d.p()) / std::sqrt(d.k() * (1 - d.p()));
|
||||
double x_kurtosis = 6. / d.k() + sqr(d.p()) / (d.k() * (1 - d.p()));
|
||||
assert(std::abs(mean - x_mean) / x_mean < 0.01);
|
||||
assert(std::abs(var - x_var) / x_var < 0.01);
|
||||
assert(std::abs(skew - x_skew) / x_skew < 0.01);
|
||||
assert(std::abs(kurtosis - x_kurtosis) / x_kurtosis < 0.03);
|
||||
assert(std::abs((mean - x_mean) / x_mean) < 0.01);
|
||||
assert(std::abs((var - x_var) / x_var) < 0.01);
|
||||
assert(std::abs((skew - x_skew) / x_skew) < 0.01);
|
||||
assert(std::abs((kurtosis - x_kurtosis) / x_kurtosis) < 0.03);
|
||||
}
|
||||
{
|
||||
typedef std::negative_binomial_distribution<> D;
|
||||
@@ -222,10 +222,10 @@ int main()
|
||||
double x_var = x_mean / d.p();
|
||||
double x_skew = (2 - d.p()) / std::sqrt(d.k() * (1 - d.p()));
|
||||
double x_kurtosis = 6. / d.k() + sqr(d.p()) / (d.k() * (1 - d.p()));
|
||||
assert(std::abs(mean - x_mean) / x_mean < 0.01);
|
||||
assert(std::abs(var - x_var) / x_var < 0.01);
|
||||
assert(std::abs(skew - x_skew) / x_skew < 0.04);
|
||||
assert(std::abs(kurtosis - x_kurtosis) / x_kurtosis < 0.05);
|
||||
assert(std::abs((mean - x_mean) / x_mean) < 0.01);
|
||||
assert(std::abs((var - x_var) / x_var) < 0.01);
|
||||
assert(std::abs((skew - x_skew) / x_skew) < 0.04);
|
||||
assert(std::abs((kurtosis - x_kurtosis) / x_kurtosis) < 0.05);
|
||||
}
|
||||
{
|
||||
typedef std::negative_binomial_distribution<> D;
|
||||
@@ -262,9 +262,9 @@ int main()
|
||||
double x_var = x_mean / d.p();
|
||||
double x_skew = (2 - d.p()) / std::sqrt(d.k() * (1 - d.p()));
|
||||
double x_kurtosis = 6. / d.k() + sqr(d.p()) / (d.k() * (1 - d.p()));
|
||||
assert(std::abs(mean - x_mean) / x_mean < 0.01);
|
||||
assert(std::abs(var - x_var) / x_var < 0.01);
|
||||
assert(std::abs(skew - x_skew) / x_skew < 0.01);
|
||||
assert(std::abs(kurtosis - x_kurtosis) / x_kurtosis < 0.02);
|
||||
assert(std::abs((mean - x_mean) / x_mean) < 0.01);
|
||||
assert(std::abs((var - x_var) / x_var) < 0.01);
|
||||
assert(std::abs((skew - x_skew) / x_skew) < 0.01);
|
||||
assert(std::abs((kurtosis - x_kurtosis) / x_kurtosis) < 0.03);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,10 +66,10 @@ int main()
|
||||
double x_var = x_mean / p.p();
|
||||
double x_skew = (2 - p.p()) / std::sqrt(p.k() * (1 - p.p()));
|
||||
double x_kurtosis = 6. / p.k() + sqr(p.p()) / (p.k() * (1 - p.p()));
|
||||
assert(std::abs(mean - x_mean) / x_mean < 0.01);
|
||||
assert(std::abs(var - x_var) / x_var < 0.01);
|
||||
assert(std::abs(skew - x_skew) / x_skew < 0.01);
|
||||
assert(std::abs(kurtosis - x_kurtosis) / x_kurtosis < 0.01);
|
||||
assert(std::abs((mean - x_mean) / x_mean) < 0.01);
|
||||
assert(std::abs((var - x_var) / x_var) < 0.01);
|
||||
assert(std::abs((skew - x_skew) / x_skew) < 0.01);
|
||||
assert(std::abs((kurtosis - x_kurtosis) / x_kurtosis) < 0.01);
|
||||
}
|
||||
{
|
||||
typedef std::negative_binomial_distribution<> D;
|
||||
@@ -108,10 +108,10 @@ int main()
|
||||
double x_var = x_mean / p.p();
|
||||
double x_skew = (2 - p.p()) / std::sqrt(p.k() * (1 - p.p()));
|
||||
double x_kurtosis = 6. / p.k() + sqr(p.p()) / (p.k() * (1 - p.p()));
|
||||
assert(std::abs(mean - x_mean) / x_mean < 0.01);
|
||||
assert(std::abs(var - x_var) / x_var < 0.01);
|
||||
assert(std::abs(skew - x_skew) / x_skew < 0.01);
|
||||
assert(std::abs(kurtosis - x_kurtosis) / x_kurtosis < 0.01);
|
||||
assert(std::abs((mean - x_mean) / x_mean) < 0.01);
|
||||
assert(std::abs((var - x_var) / x_var) < 0.01);
|
||||
assert(std::abs((skew - x_skew) / x_skew) < 0.01);
|
||||
assert(std::abs((kurtosis - x_kurtosis) / x_kurtosis) < 0.01);
|
||||
}
|
||||
{
|
||||
typedef std::negative_binomial_distribution<> D;
|
||||
@@ -150,9 +150,9 @@ int main()
|
||||
double x_var = x_mean / p.p();
|
||||
double x_skew = (2 - p.p()) / std::sqrt(p.k() * (1 - p.p()));
|
||||
double x_kurtosis = 6. / p.k() + sqr(p.p()) / (p.k() * (1 - p.p()));
|
||||
assert(std::abs(mean - x_mean) / x_mean < 0.01);
|
||||
assert(std::abs(var - x_var) / x_var < 0.01);
|
||||
assert(std::abs(skew - x_skew) / x_skew < 0.01);
|
||||
assert(std::abs(kurtosis - x_kurtosis) / x_kurtosis < 0.03);
|
||||
assert(std::abs((mean - x_mean) / x_mean) < 0.01);
|
||||
assert(std::abs((var - x_var) / x_var) < 0.01);
|
||||
assert(std::abs((skew - x_skew) / x_skew) < 0.01);
|
||||
assert(std::abs((kurtosis - x_kurtosis) / x_kurtosis) < 0.03);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user