jburkardt

CYCLE_FLOYD\ Cycle Detection by Floyd’s Method {#cycle_floyd-cycle-detection-by-floyds-method align=”center”} =================================


CYCLE_FLOYD is a C++ library which analyzes a cycle in an iterated function sequence using Floyd’s method.

Suppose we a repeatedly apply a function f(), starting with the argument x0, then f(x0), f(f(x0)) and so on. Suppose that the range of f is finite. Then eventually the iteration must reach a cycle. Once the cycle is reached, succeeding values stay within that cycle.

Starting at x0, there is a “nearest element” of the cycle, which is reached after MU applications of f.

Once the cycle is entered, the cycle has a length LAM, which is the number of steps required to first return to a given value.

This function uses Floyd’s method to determine the values of MU and LAM, given F and X0.

Licensing: {#licensing align=”center”}

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages: {#languages align=”center”}

CYCLE_FLOYD is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version and a PYTHON version.

CYCLE_BRENT, a C++ library which carries out an iterated function evaluation, and seeks to determine the nearest element of a cycle, and the cycle’s length, using Brent’s method.

Reference: {#reference align=”center”}

  1. Donald Knuth,\ The Art of Computer Programming,\ Volume 2, Seminumerical Algorithms,\ Third Edition,\ Addison Wesley, 1997,\ ISBN: 0201896842,\ LC: QA76.6.K64.

Source Code: {#source-code align=”center”}

Examples and Tests: {#examples-and-tests align=”center”}

List of Routines: {#list-of-routines align=”center”}

You can go up one level to the C++ source codes.


Last revised on 18 June 2012.