function factory( n ) {
	var coefs;
	var an;
	var f;
	var s;

	an = abs( n );
	coefs = coefficients( an );

	f = evalpoly( coefs );
	s = pow( -1.0, an-1 );
	if ( n >= 0 || s === 1.0 ) {
		return f;
	}
	return polyval;

	/**
	* Evaluates a Fibonacci polynomial.
	*
	* @private
	* @param {number} x - value at which to evaluate a Fibonacci polynomial
	* @returns {number} result
	*/
	function polyval( x ) {
		return -1.0 * f( x );
	}
}
Returns a function for evaluating a Fibonacci polynomial.

@param {integer} n - Fibonacci polynomial to evaluate
@returns {Function} function for evaluating a Fibonacci polynomial

@example
var fibpolyval = factory( 5 );

var v = fibpolyval( 1.0 );
// returns 5.0

v = fibpolyval( 2.0 );
// returns 29.0