function factory( mu, s ) {
	if ( isnan( mu ) || isnan( s ) || s < 0.0 ) {
		return constantFunction( NaN );
	}
	if ( s === 0.0 ) {
		return degenerate( mu );
	}
	return cdf;

	/**
	* Evaluates the cumulative distribution function (CDF) for a raised cosine distribution.
	*
	* @private
	* @param {number} x - input value
	* @returns {Probability} evaluated CDF
	*
	* @example
	* var y = cdf( 2.0 );
	* // returns <number>
	*/
	function cdf( x ) {
		var z;
		if ( isnan( x ) ) {
			return NaN;
		}
		if ( x < mu - s ) {
			return 0.0;
		}
		if ( x > mu + s ) {
			return 1.0;
		}
		z = ( x - mu ) / s;
		return ( 1.0 + z + ( sinpi( z ) / PI ) ) / 2.0;
	}
}
Returns a function for evaluating the cumulative distribution function (CDF) for a raised cosine distribution with location parameter `mu` and scale parameter `s`.

@param {number} mu - location parameter
@param {NonNegativeNumber} s - scale parameter
@returns {Function} CDF

@example
var cdf = factory( 3.0, 1.5 );

var y = cdf( 1.9 );
// returns ~0.015

y = cdf( 4.0 );
// returns ~0.971