Browse Source

Distributions: Triangular distribution parameter exception aligned, fixes tests #202

provider
Christoph Ruegg 13 years ago
parent
commit
0f0da3b5c6
  1. 13
      src/Numerics/Distributions/Triangular.cs

13
src/Numerics/Distributions/Triangular.cs

@ -306,8 +306,7 @@ namespace MathNet.Numerics.Distributions
/// <seealso cref="Density"/>
public static double PDF(double lower, double upper, double mode, double x)
{
if (upper < mode) throw new ArgumentOutOfRangeException("upper", Resources.InvalidDistributionParameters);
if (mode < lower) throw new ArgumentOutOfRangeException("lower", Resources.InvalidDistributionParameters); // TODO: Is "lower" the appropriate argument here?
if (!(upper >= mode && mode >= lower)) throw new ArgumentException(Resources.InvalidDistributionParameters);
var a = lower;
var b = upper;
@ -343,8 +342,7 @@ namespace MathNet.Numerics.Distributions
/// <seealso cref="CumulativeDistribution"/>
public static double CDF(double lower, double upper, double mode, double x)
{
if (upper < mode) throw new ArgumentOutOfRangeException("upper", Resources.InvalidDistributionParameters);
if (lower > mode) throw new ArgumentOutOfRangeException("lower", Resources.InvalidDistributionParameters);
if (!(upper >= mode && mode >= lower)) throw new ArgumentException(Resources.InvalidDistributionParameters);
var a = lower;
var b = upper;
@ -368,8 +366,7 @@ namespace MathNet.Numerics.Distributions
/// <seealso cref="InverseCumulativeDistribution"/>
public static double InvCDF(double lower, double upper, double mode, double p)
{
if (upper < mode) throw new ArgumentOutOfRangeException("upper", Resources.InvalidDistributionParameters);
if (lower > mode) throw new ArgumentOutOfRangeException("lower", Resources.InvalidDistributionParameters);
if (!(upper >= mode && mode >= lower)) throw new ArgumentException(Resources.InvalidDistributionParameters);
var a = lower;
var b = upper;
@ -392,6 +389,8 @@ namespace MathNet.Numerics.Distributions
/// <returns>a sample from the distribution.</returns>
public static double Sample(System.Random rnd, double lower, double upper, double mode)
{
if (!(upper >= mode && mode >= lower)) throw new ArgumentException(Resources.InvalidDistributionParameters);
var a = lower;
var b = upper;
var c = mode;
@ -412,6 +411,8 @@ namespace MathNet.Numerics.Distributions
/// <returns>a sequence of samples from the distribution.</returns>
public static IEnumerable<double> Samples(System.Random rnd, double lower, double upper, double mode)
{
if (!(upper >= mode && mode >= lower)) throw new ArgumentException(Resources.InvalidDistributionParameters);
while (true)
{
yield return Sample(rnd, lower, upper, mode);

Loading…
Cancel
Save