5.1 KiB
5.1 KiB
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 ) );
}