4.3 KiB
4.3 KiB
Lucas Polynomial
Evaluate a Lucas polynomial.
A Lucas polynomial is expressed according to the following recurrence relation
Alternatively, if L(n,k)
is the coefficient of x^k
in L_n(x)
, then
We can extend Lucas polynomials to negative n
using the identity
Usage
var lucaspoly = require( '@stdlib/math/base/tools/lucaspoly' );
lucaspoly( n, x )
Evaluates a Lucas polynomial at a value x
.
var v = lucaspoly( 5, 2.0 ); // => 2^5 + 5*2^3 + 5*2
// returns 82.0
lucaspoly.factory( n )
Uses code generation to generate a function
for evaluating a Lucas polynomial.
var polyval = lucaspoly.factory( 5 );
var v = polyval( 1.0 ); // => 1^5 + 5*1^3 + 5
// returns 11.0
v = polyval( 2.0 ); // => 2^5 + 5*2^3 + 5*2
// returns 82.0
Notes
- For hot code paths, a compiled function will be more performant than
lucaspoly()
. - 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 lucaspoly = require( '@stdlib/math/base/tools/lucaspoly' );
var i;
// Compute the negaLucas and Lucas numbers...
for ( i = -76; i < 77; i++ ) {
console.log( 'L_%d = %d', i, lucaspoly( i, 1.0 ) );
}