FLINT3.7.0-dev

fmpz_lucas_chain_double, fmpz_lucas_chain_add, fmpz_lucas_chain_mul

Synopsis#include <flint/fmpz.h>
void fmpz_lucas_chain_double(fmpz_t U2m, fmpz_t U2m1, const fmpz_t Um, const fmpz_t Um1, const fmpz_t A, const fmpz_t B, const fmpz_t n)source
void fmpz_lucas_chain_add(fmpz_t Umn, fmpz_t Umn1, const fmpz_t Um, const fmpz_t Um1, const fmpz_t Un, const fmpz_t Un1, const fmpz_t A, const fmpz_t B, const fmpz_t n)source
void fmpz_lucas_chain_mul(fmpz_t Ukm, fmpz_t Ukm1, const fmpz_t Um, const fmpz_t Um1, const fmpz_t A, const fmpz_t B, const fmpz_t k, const fmpz_t n)source

For the Lucas sequence U_0 = 0, U_1 = 1, U_j = A U_{j-1} - B U_{j-2} modulo n: given U_m, U_{m+1} (and U_n, U_{n+1}), compute U_{2m}, U_{2m+1}, respectively U_{m+n}, U_{m+n+1}, respectively U_{km}, U_{km+1}. Each output may alias the corresponding input (U_{2m} with U_m, and so on); no other aliasing is allowed.

Cite this page

The FLINT team, “fmpz_lucas_chain_double, fmpz_lucas_chain_add, fmpz_lucas_chain_mul (fmpz.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fmpz/fmpz_lucas_chain_double.html (generated 2026-10-20).