triangularCdf function
Triangular cumulative probability density function
with non-zero support over the interval (xMin, xMax)
.
The maximum of the probability density occurs at (xMax - xMin) / 2
.
Throws an error of type ErrorOfType<InvalidFunctionParameter>
if xMin >= xMax
.
Implementation
double triangularCdf(num x, num xMin, num xMax) {
if (xMin >= xMax) {
throw ErrorOfType<InvalidFunctionParameter>(
message: 'Error in triangularCdf($x, $xMin, $xMax)',
invalidState: 'min: $xMin >= max: $xMax',
expectedState: 'min < max',
);
}
if (x <= xMin) return 0.0;
if (x >= xMax) return 1.0;
final range = xMax - xMin;
final factor = 2.0 / (range * range);
if (x > xMin && x < xMin + 0.5 * range) {
return factor * (x - xMin) * (x - xMin);
} else {
return 1.0 - factor * (x - xMax) * (x - xMax);
}
}