# Fibonacci Polynomial

Evaluate a Fibonacci polynomial.

A Fibonacci polynomial is expressed according to the following recurrence relation

Alternatively, if F(n,k) is the coefficient of x^k in F_n(x), then

where

We can extend Fibonacci polynomials to negative n using the identity

## Usage

var fibpoly = require( '@stdlib/math/base/tools/fibpoly' );


#### fibpoly( n, x )

Evaluates a Fibonacci polynomial at a value x.

var v = fibpoly( 5, 2.0 ); // => 2^4 + 3*2^2 + 1
// returns 29.0


#### fibpoly.factory( n )

Uses code generation to generate a function for evaluating a Fibonacci polynomial.

var polyval = fibpoly.factory( 5 );

var v = polyval( 1.0 ); // => 1^4 + 3*1^2 + 1
// returns 5.0

v = polyval( 2.0 ); // => 2^4 + 3*2^2 + 1
// returns 29.0


## Notes

• For hot code paths, a compiled function will be more performant than fibpoly().
• While code generation can boost performance, its use may be problematic in browser contexts enforcing a strict content security policy (CSP). If running in or targeting an environment with a CSP, avoid using code generation.

## Examples

var fibpoly = require( '@stdlib/math/base/tools/fibpoly' );

var i;

// Compute the negaFibonacci and Fibonacci numbers...
for ( i = -77; i < 78; i++ ) {
console.log( 'F_%d = %d', i, fibpoly( i, 1.0 ) );
}