function Laplace() {
	var mu;
	var b;
	if ( !(this instanceof Laplace) ) {
		if ( arguments.length === 0 ) {
			return new Laplace();
		}
		return new Laplace( arguments[ 0 ], arguments[ 1 ] );
	}
	if ( arguments.length ) {
		mu = arguments[ 0 ];
		b = arguments[ 1 ];
		if ( !isNumber( mu ) || isnan( mu ) ) {
			throw new TypeError( format( 'invalid argument. Location parameter must be a number. Value: `%s`.', mu ) );
		}
		if ( !isPositive( b ) ) {
			throw new TypeError( format( 'invalid argument. Scale parameter must be a positive number. Value: `%s`.', b ) );
		}
	} else {
		mu = 0.0;
		b = 1.0;
	}
	defineProperty( this, 'mu', {
		'configurable': false,
		'enumerable': true,
		'get': function get() {
			return mu;
		},
		'set': function set( value ) {
			if ( !isNumber( value ) || isnan( value ) ) {
				throw new TypeError( format( 'invalid assignment. Must be a number. Value: `%s`.', value ) );
			}
			mu = value;
		}
	});
	defineProperty( this, 'b', {
		'configurable': false,
		'enumerable': true,
		'get': function get() {
			return b;
		},
		'set': function set( value ) {
			if ( !isPositive( value ) ) {
				throw new TypeError( format( 'invalid assignment. Must be a positive number. Value: `%s`.', value ) );
			}
			b = value;
		}
	});
	return this;
}
Laplace distribution constructor.

@constructor
@param {number} [mu=0.0] - location parameter
@param {PositiveNumber} [b=1.0] - scale parameter
@throws {TypeError} `b` must be a positive number
@returns {Laplace} distribution instance

@example
var laplace = new Laplace( 1.0, 1.0 );

var y = laplace.cdf( 1.5 );
// returns ~0.697

var mu = laplace.mean;
// returns 1.0