'use strict';

// MODULES //

var powm1 = require( '@stdlib/math/base/special/powm1' );
var zeta = require( '@stdlib/math/base/special/riemann-zeta' );
var LN2 = require( '@stdlib/math/constants/float64-ln2' );


// ETA //

/**
* FUNCTION: eta( s )
*	Evaluates the Dirichlet eta function.
*
* @param {Number} s - input value
* @returns {Number} function value
*/
function eta( s ) {
	if ( s !== s ) {
		return NaN;
	}
	if ( s === 1 ) {
		// Alternating harmonic series...
		return LN2;
	}
	return -powm1( 2, 1-s ) * zeta( s );
} // end FUNCTION eta()


// EXPORTS //

module.exports = eta;

'use strict';

// MODULES //

var isnan = require( '@stdlib/math/base/utils/is-nan' );
var powm1 = require( '@stdlib/math/base/special/powm1' );
var zeta = require( '@stdlib/math/base/special/riemann-zeta' );
var LN2 = require( '@stdlib/math/constants/float64-ln2' );


// ETA //

/**
* FUNCTION: eta( s )
*	Evaluates the Dirichlet eta function.
*
* @param {Number} s - input value
* @returns {Number} function value
*/
function eta( s ) {
	if ( isnan( s ) ) {
		return NaN;
	}
	if ( s === 1 ) {
		// Alternating harmonic series...
		return LN2;
	}
	return -powm1( 2, 1-s ) * zeta( s );
} // end FUNCTION eta()


// EXPORTS //

module.exports = eta;

Use base util is-nan to check for NaN value
Use base util is-nan to check for NaN value
