Skip to content

Commit

Permalink
Remove DiscreteDistribution.fs
Browse files Browse the repository at this point in the history
  • Loading branch information
DoganCK committed Jun 16, 2023
1 parent 7268bcd commit 6fa2a2d
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 135 deletions.
110 changes: 0 additions & 110 deletions src/FSharp.Stats/Distributions/Discrete.fs

This file was deleted.

18 changes: 16 additions & 2 deletions src/FSharp.Stats/Distributions/Discrete/NegativeBinomial.fs
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,14 @@ type NegativeBinomial_trials =
static member ToString r p =
sprintf "NegativeBinomial_trials(r = %i, p = %f)" r p

/// Initializes a NegativeBinomial distribution
/// <summary> Initializes a negative binomial distribution.
/// The negative binomial distribution is a discrete probability distribution
/// that models the number of trials needed x to get the rth success in repeated
/// independent Bernoulli trials with probability p.
/// </summary>
/// <param name="r">The number of success states</param>
/// <param name="p">The probability of each independent bernoulli trial</param>
/// <param name="x">The number of trials until the rth success</param>
static member Init r p =
{ new DiscreteDistribution<_,int> with
member d.Mean = NegativeBinomial_trials.Mean r p
Expand Down Expand Up @@ -241,7 +248,14 @@ type NegativeBinomial_failures =
static member ToString r p =
sprintf "NegativeBinomial_failures(r = %i, p = %f)" r p

/// Initializes a NegativeBinomial distribution
/// <summary> Initializes a negative binomial distribution.
/// The negative binomial distribution is a discrete probability distribution
/// that models the number of failures needed k to get the rth success in repeated
/// independent Bernoulli trials with probability p.
/// </summary>
/// <param name="r">The number of success states</param>
/// <param name="p">The probability of each independent bernoulli trial</param>
/// <param name="k">The number of failures before the rth success</param>
static member Init r p =
{ new DiscreteDistribution<_,int> with
member d.Mean = NegativeBinomial_failures.Mean r p
Expand Down
1 change: 0 additions & 1 deletion src/FSharp.Stats/FSharp.Stats.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,6 @@
<Compile Include="Distributions\Bandwidth.fs" />
<Compile Include="Distributions\Frequency.fs" />
<Compile Include="Distributions\Empirical.fs" />
<Compile Include="Distributions\Discrete.fs" />
<Compile Include="Distributions\Distance.fs" />
<Compile Include="Distributions\KernelDensity.fs" />
<!-- Testing -->
Expand Down
8 changes: 4 additions & 4 deletions tests/FSharp.Stats.Tests/Distributions.fs
Original file line number Diff line number Diff line change
Expand Up @@ -509,10 +509,10 @@ let bernoulliTests =

let test_basicNumber = 0.42

let bernoulliDistribution_basicCase = Distributions.DiscreteDistribution.bernoulli test_basicNumber
let bernoulliDistribution_nan = Distributions.DiscreteDistribution.bernoulli nan
let bernoulliDistribution_zero = Distributions.DiscreteDistribution.bernoulli 0.0
let bernoulliDistribution_one = Distributions.DiscreteDistribution.bernoulli 1.0
let bernoulliDistribution_basicCase = Distributions.Discrete.Bernoulli.Init test_basicNumber
let bernoulliDistribution_nan = Distributions.Discrete.Bernoulli.Init nan
let bernoulliDistribution_zero = Distributions.Discrete.Bernoulli.Init 0.0
let bernoulliDistribution_one = Distributions.Discrete.Bernoulli.Init 1.0

// 2022-06-22
// Wikipedia: https://de.wikipedia.org/wiki/Bernoulli-Verteilung#Definition
Expand Down
36 changes: 18 additions & 18 deletions tests/FSharp.Stats.Tests/DistributionsDiscrete.fs
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ let fittingAccuracy : Accuracy = {absolute= 0.1 ;relative= 0.1}
[<Tests>]
let hypergeometricTests =

let hypergeoDistribution_basicCase = Distributions.DiscreteDistribution.hypergeometric 50 40 5
let hypergeoDistribution_K_equal_n = Distributions.DiscreteDistribution.hypergeometric 50 20 20
let hypergeoDistribution_max_K = Distributions.DiscreteDistribution.hypergeometric 50 50 20
let hypergeoDistribution_max_n = Distributions.DiscreteDistribution.hypergeometric 50 20 50
let hypergeoDistribution_max_K_n = Distributions.DiscreteDistribution.hypergeometric 50 50 50
let hypergeoDistribution_basicCase = Distributions.Discrete.Hypergeometric.Init 50 40 5
let hypergeoDistribution_K_equal_n = Distributions.Discrete.Hypergeometric.Init 50 20 20
let hypergeoDistribution_max_K = Distributions.Discrete.Hypergeometric.Init 50 50 20
let hypergeoDistribution_max_n = Distributions.Discrete.Hypergeometric.Init 50 20 50
let hypergeoDistribution_max_K_n = Distributions.Discrete.Hypergeometric.Init 50 50 50
// 2022-06-23
// https://hypergeon.wikipedia.org/wiki/Hypergeometric_distribution
// N is population size,
Expand Down Expand Up @@ -153,7 +153,7 @@ let poissonDistributionTests =

let lambda = 4.2

let d = DiscreteDistribution.poisson lambda
let d = Discrete.Poisson.Init lambda

let mean = d.Mean
let var = d.Variance
Expand Down Expand Up @@ -214,12 +214,12 @@ let poissonDistributionTests =
[<Tests>]
let negBinomDistribution_failuresTests =

let negb01 = Distributions.DiscreteDistribution.negativeBinomial_failures 3 0.09
let negb02 = Distributions.DiscreteDistribution.negativeBinomial_failures 1 0.1
let negb03 = Distributions.DiscreteDistribution.negativeBinomial_failures 10 0.1
let negb04 = Distributions.DiscreteDistribution.negativeBinomial_failures 10 0.0
let negb05 = Distributions.DiscreteDistribution.negativeBinomial_failures 1 0.1
let negb06 = Distributions.DiscreteDistribution.negativeBinomial_failures 6 0.1
let negb01 = Distributions.Discrete.NegativeBinomial_failures.Init 3 0.09
let negb02 = Distributions.Discrete.NegativeBinomial_failures.Init 1 0.1
let negb03 = Distributions.Discrete.NegativeBinomial_failures.Init 10 0.1
let negb04 = Distributions.Discrete.NegativeBinomial_failures.Init 10 0.0
let negb05 = Distributions.Discrete.NegativeBinomial_failures.Init 1 0.1
let negb06 = Distributions.Discrete.NegativeBinomial_failures.Init 6 0.1

testList "Distributions.Discrete.NegBinom_failures" [

Expand Down Expand Up @@ -308,12 +308,12 @@ let negBinomDistribution_failuresTests =
[<Tests>]
let negBinomDistribution_trialsTests =

let negb01 = Distributions.DiscreteDistribution.negativeBinomial_trials 3 0.09
let negb02 = Distributions.DiscreteDistribution.negativeBinomial_trials 1 0.1
let negb03 = Distributions.DiscreteDistribution.negativeBinomial_trials 10 0.1
let negb04 = Distributions.DiscreteDistribution.negativeBinomial_trials 10 0.0
let negb05 = Distributions.DiscreteDistribution.negativeBinomial_trials 1 0.1
let negb06 = Distributions.DiscreteDistribution.negativeBinomial_trials 6 0.1
let negb01 = Distributions.Discrete.NegativeBinomial_trials.Init 3 0.09
let negb02 = Distributions.Discrete.NegativeBinomial_trials.Init 1 0.1
let negb03 = Distributions.Discrete.NegativeBinomial_trials.Init 10 0.1
let negb04 = Distributions.Discrete.NegativeBinomial_trials.Init 10 0.0
let negb05 = Distributions.Discrete.NegativeBinomial_trials.Init 1 0.1
let negb06 = Distributions.Discrete.NegativeBinomial_trials.Init 6 0.1

testList "Distributions.Discrete.NegBinom_trials" [

Expand Down

0 comments on commit 6fa2a2d

Please sign in to comment.