diff --git a/src/Numerics/Distributions/Triangular.cs b/src/Numerics/Distributions/Triangular.cs
index 6e730693..ac0f690d 100644
--- a/src/Numerics/Distributions/Triangular.cs
+++ b/src/Numerics/Distributions/Triangular.cs
@@ -306,8 +306,7 @@ namespace MathNet.Numerics.Distributions
///
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
///
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
///
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
/// a sample from the distribution.
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
/// a sequence of samples from the distribution.
public static IEnumerable 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);