function continuedFractionA( gen, factor, maxIter ) {
	var delta;
	var a0;
	var C;
	var D;
	var f;
	var v;

	v = gen();
	f = v[ 1 ];
	a0 = v[ 0 ];
	if ( f === 0 ) {
		f = FLOAT32_SMALLEST_NORMAL;
	}
	C = f;
	D = 0.0;

	do {
		v = gen();
		if ( v ) {
			D = v[ 1 ] + ( v[ 0 ] * D );
			if ( D === 0.0 ) {
				D = FLOAT32_SMALLEST_NORMAL;
			}
			C = v[ 1 ] + ( v[ 0 ] / C );
			if ( C === 0.0 ) {
				C = FLOAT32_SMALLEST_NORMAL;
			}
			D = 1.0 / D;
			delta = C * D;
			f *= delta;
		}
	} while ( v && ( abs( delta - 1.0 ) > factor ) && --maxIter ); // eslint-disable-line no-plusplus

	return a0 / f;
}
Evaluates a continued fraction expansion.

```text
          a1
     ---------------
     b1 +     a2
          ----------
           b2 +   a3
               -----
               b3 + ...
```

@private
@param {Function} gen - function giving terms of continued fraction expansion
@param {PositiveNumber} factor - further terms are only added as long as factor*result is smaller than the next term
@param {PositiveInteger} maxIter - maximum number of iterations
@returns {number} evaluated expansion