Browse Source

Distributions: shortcut static sample functions (discrete)

pull/203/head
Christoph Ruegg 13 years ago
parent
commit
32e3453874
  1. 20
      src/Numerics/Distributions/Bernoulli.cs
  2. 24
      src/Numerics/Distributions/Binomial.cs
  3. 20
      src/Numerics/Distributions/ConwayMaxwellPoisson.cs
  4. 22
      src/Numerics/Distributions/DiscreteUniform.cs
  5. 18
      src/Numerics/Distributions/Geometric.cs
  6. 22
      src/Numerics/Distributions/Hypergeometric.cs
  7. 20
      src/Numerics/Distributions/NegativeBinomial.cs
  8. 20
      src/Numerics/Distributions/Poisson.cs
  9. 20
      src/Numerics/Distributions/Zipf.cs

20
src/Numerics/Distributions/Bernoulli.cs

@ -321,5 +321,25 @@ namespace MathNet.Numerics.Distributions
}
}
/// <summary>
/// Samples a Bernoulli distributed random variable.
/// </summary>
/// <param name="p">The probability (p) of generating one. Range: 0 ≤ p ≤ 1.</param>
/// <returns>A sample from the Bernoulli distribution.</returns>
public static int Sample(double p)
{
return Sample(SystemRandomSource.Default, p);
}
/// <summary>
/// Samples a sequence of Bernoulli distributed random variables.
/// </summary>
/// <param name="p">The probability (p) of generating one. Range: 0 ≤ p ≤ 1.</param>
/// <returns>a sequence of samples from the distribution.</returns>
public static IEnumerable<int> Samples(double p)
{
return Samples(SystemRandomSource.Default, p);
}
}
}

24
src/Numerics/Distributions/Binomial.cs

@ -360,5 +360,29 @@ namespace MathNet.Numerics.Distributions
yield return SampleUnchecked(rnd, p, n);
}
}
/// <summary>
/// Samples a binomially distributed random variable.
/// </summary>
/// <param name="rnd">The random number generator to use.</param>
/// <param name="p">The success probability (p) in each trial. Range: 0 ≤ p ≤ 1.</param>
/// <param name="n">The number of trials (n). Range: n ≥ 0.</param>
/// <returns>The number of successes in <paramref name="n"/> trials.</returns>
public static int Sample(double p, int n)
{
return Sample(SystemRandomSource.Default, p, n);
}
/// <summary>
/// Samples a sequence of binomially distributed random variable.
/// </summary>
/// <param name="rnd">The random number generator to use.</param>
/// <param name="p">The success probability (p) in each trial. Range: 0 ≤ p ≤ 1.</param>
/// <param name="n">The number of trials (n). Range: n ≥ 0.</param>
/// <returns>a sequence of successes in <paramref name="n"/> trials.</returns>
public static IEnumerable<int> Samples(double p, int n)
{
return Samples(SystemRandomSource.Default, p, n);
}
}
}

20
src/Numerics/Distributions/ConwayMaxwellPoisson.cs

@ -521,5 +521,25 @@ namespace MathNet.Numerics.Distributions
yield return SampleUnchecked(rnd, lambda, nu, z);
}
}
/// <summary>
/// Samples a random variable.
/// </summary>
/// <param name="lambda">The lambda (λ) parameter. Range: λ > 0.</param>
/// <param name="nu">The rate of decay (ν) parameter. Range: ν ≥ 0.</param>
public static int Sample(double lambda, double nu)
{
return Sample(SystemRandomSource.Default, lambda, nu);
}
/// <summary>
/// Samples a sequence of this random variable.
/// </summary>
/// <param name="lambda">The lambda (λ) parameter. Range: λ > 0.</param>
/// <param name="nu">The rate of decay (ν) parameter. Range: ν ≥ 0.</param>
public static IEnumerable<int> Samples(double lambda, double nu)
{
return Samples(SystemRandomSource.Default, lambda, nu);
}
}
}

22
src/Numerics/Distributions/DiscreteUniform.cs

@ -328,5 +328,27 @@ namespace MathNet.Numerics.Distributions
yield return SampleUnchecked(rnd, lower, upper);
}
}
/// <summary>
/// Samples a uniformly distributed random variable.
/// </summary>
/// <param name="lower">Lower bound. Range: lower ≤ upper.</param>
/// <param name="upper">Upper bound. Range: lower ≤ upper.</param>
/// <returns>A sample from the discrete uniform distribution.</returns>
public static int Sample(int lower, int upper)
{
return Sample(SystemRandomSource.Default, lower, upper);
}
/// <summary>
/// Samples a sequence of uniformly distributed random variables.
/// </summary>
/// <param name="lower">Lower bound. Range: lower ≤ upper.</param>
/// <param name="upper">Upper bound. Range: lower ≤ upper.</param>
/// <returns>a sequence of samples from the discrete uniform distribution.</returns>
public static IEnumerable<int> Samples(int lower, int upper)
{
return Samples(SystemRandomSource.Default, lower, upper);
}
}
}

18
src/Numerics/Distributions/Geometric.cs

@ -297,5 +297,23 @@ namespace MathNet.Numerics.Distributions
yield return SampleUnchecked(rnd, p);
}
}
/// <summary>
/// Samples a random variable.
/// </summary>
/// <param name="p">The probability (p) of generating one. Range: 0 ≤ p ≤ 1.</param>
public static int Sample(double p)
{
return Sample(SystemRandomSource.Default, p);
}
/// <summary>
/// Samples a sequence of this random variable.
/// </summary>
/// <param name="p">The probability (p) of generating one. Range: 0 ≤ p ≤ 1.</param>
public static IEnumerable<int> Samples(double p)
{
return Samples(SystemRandomSource.Default, p);
}
}
}

22
src/Numerics/Distributions/Hypergeometric.cs

@ -387,5 +387,27 @@ namespace MathNet.Numerics.Distributions
yield return SampleUnchecked(rnd, population, success, draws);
}
}
/// <summary>
/// Samples a random variable.
/// </summary>
/// <param name="population">The size of the population (N).</param>
/// <param name="success">The number successes within the population (K, M).</param>
/// <param name="draws">The number of draws without replacement (n).</param>
public static int Sample(int population, int success, int draws)
{
return Sample(SystemRandomSource.Default, population, success, draws);
}
/// <summary>
/// Samples a sequence of this random variable.
/// </summary>
/// <param name="population">The size of the population (N).</param>
/// <param name="success">The number successes within the population (K, M).</param>
/// <param name="draws">The number of draws without replacement (n).</param>
public static IEnumerable<int> Samples(int population, int success, int draws)
{
return Samples(SystemRandomSource.Default, population, success, draws);
}
}
}

20
src/Numerics/Distributions/NegativeBinomial.cs

@ -325,5 +325,25 @@ namespace MathNet.Numerics.Distributions
yield return SampleUnchecked(rnd, r, p);
}
}
/// <summary>
/// Samples a random variable.
/// </summary>
/// <param name="r">The number of failures (r) until the experiment stopped. Range: r ≥ 0.</param>
/// <param name="p">The probability (p) of a trial resulting in success. Range: 0 ≤ p ≤ 1.</param>
public static int Sample(double r, double p)
{
return Sample(SystemRandomSource.Default, r, p);
}
/// <summary>
/// Samples a sequence of this random variable.
/// </summary>
/// <param name="r">The number of failures (r) until the experiment stopped. Range: r ≥ 0.</param>
/// <param name="p">The probability (p) of a trial resulting in success. Range: 0 ≤ p ≤ 1.</param>
public static IEnumerable<int> Samples(double r, double p)
{
return Samples(SystemRandomSource.Default, r, p);
}
}
}

20
src/Numerics/Distributions/Poisson.cs

@ -352,5 +352,25 @@ namespace MathNet.Numerics.Distributions
yield return SampleUnchecked(rnd, lambda);
}
}
/// <summary>
/// Samples a Poisson distributed random variable.
/// </summary>
/// <param name="lambda">The lambda (λ) parameter of the Poisson distribution. Range: λ > 0.</param>
/// <returns>A sample from the Poisson distribution.</returns>
public static int Sample(double lambda)
{
return Sample(SystemRandomSource.Default, lambda);
}
/// <summary>
/// Samples a sequence of Poisson distributed random variables.
/// </summary>
/// <param name="lambda">The lambda (λ) parameter of the Poisson distribution. Range: λ > 0.</param>
/// <returns>a sequence of samples from the distribution.</returns>
public static IEnumerable<int> Samples(double lambda)
{
return Samples(SystemRandomSource.Default, lambda);
}
}
}

20
src/Numerics/Distributions/Zipf.cs

@ -363,5 +363,25 @@ namespace MathNet.Numerics.Distributions
yield return SampleUnchecked(rnd, s, n);
}
}
/// <summary>
/// Samples a random variable.
/// </summary>
/// <param name="s">The s parameter of the distribution.</param>
/// <param name="n">The n parameter of the distribution.</param>
public static int Sample(double s, int n)
{
return Sample(SystemRandomSource.Default, s, n);
}
/// <summary>
/// Samples a sequence of this random variable.
/// </summary>
/// <param name="s">The s parameter of the distribution.</param>
/// <param name="n">The n parameter of the distribution.</param>
public static IEnumerable<int> Samples(double s, int n)
{
return Samples(SystemRandomSource.Default, s, n);
}
}
}

Loading…
Cancel
Save