# iterContinuedFraction

Evaluate the terms of a continued fraction.

A generalized continued fraction has the form

If a_i = 1 for all i, the above expression reduces to a simple continued fraction.

where the values b_i are called the coefficients or terms of the continued fraction.

## Usage

var iterContinuedFraction = require( '@stdlib/math/iter/utils/continued-fraction' );


#### iterContinuedFraction( iterator[, options] )

Evaluates the terms of a continued fraction.

var array2iterator = require( '@stdlib/array/to-iterator' );

var arr = array2iterator( [ 3, 4, 12, 4 ] );

var v = iterContinuedFraction( arr );
// returns ~3.245


The function supports the following options:

• iter: maximum number of iterations. Default: 1e308.
• tol: tolerance at which to terminate further evaluation of the continued fraction. Default: floating-point epsilon.

To explicitly cap the maximum number of iterations, set the iter option.

var array2iterator = require( '@stdlib/array/to-iterator' );

var arr = array2iterator( [ 3, 4, 12, 4 ] );

var opts = {
'iter': 2
};
var v = iterContinuedFraction( arr, opts );
// returns 3.25


The function terminates continued fraction evaluation once the difference between continued fraction approximations is sufficiently small. The default tolerance is floating-point epsilon (~2.22e-16). Once an update to a continued fraction approximation is less than or equal to this tolerance, the function terminates evaluation. To adjust the tolerance (e.g., to return a rough approximation), set the tol option.

var iterContinuedFractionSeq = require( '@stdlib/math/iter/sequences/continued-fraction' );

var opts = {
'tol': 1.0e-7
};
var it = iterContinuedFractionSeq( 3.141592653589793, opts );
// returns <Object>

var v = iterContinuedFraction( it );
// returns ~3.14159292

• If an iterated value is non-numeric (including NaN), the function returns NaN. If non-numeric iterated values are possible, you are advised to provide an iterator which type checks and handles non-numeric values accordingly.