function mgf( t, k, lambda ) {
	var summand;
	var sum;
	var c;
	var n;

	if (
		isnan( t ) ||
		isnan( k ) ||
		isnan( lambda ) ||
		k <= 0.0 ||
		lambda <= 0.0
	) {
		return NaN;
	}
	sum = 1.0;
	c = 1.0;
	n = 0;
	do {
		n += 1;
		c *= ( t * lambda ) / n;
		if ( c === 0.0 ) {
			summand = 0.0;
		} else {
			summand = c * gamma( 1.0 + (n / k) );
		}
		sum += summand;
	} while ( summand / sum > EPS );
	return sum;
}
Evaluates the moment-generating function (MGF) for a Weibull distribution with shape `k` and scale `lambda` at a value `t`.

@param {number} t - input value
@param {PositiveNumber} k - shape parameter
@param {PositiveNumber} lambda - scale parameter
@returns {number} evaluated MGF

@example
var y = mgf( 1.0, 1.0, 0.5 );
// returns ~2.0

@example
var y = mgf( -1.0, 4.0, 4.0 );
// returns ~0.019

@example
var y = mgf( NaN, 1.0, 1.0 );
// returns NaN

@example
var y = mgf( 0.0, NaN, 1.0 );
// returns NaN

@example
var y = mgf( 0.0, 1.0, NaN );
// returns NaN

@example
var y = mgf( 0.2, -1.0, 0.5 );
// returns NaN

@example
var y = mgf( 0.2, 0.0, 0.5 );
// returns NaN

@example
var y = mgf( 0.2, 0.5, -1.0 );
// returns NaN

@example
var y = mgf( 0.2, 0.5, 0.0 );
// returns NaN