function cexp( z ) {
	var out;
	var im;
	var re;
	var e;

	re = real( z );
	im = imag( z );

	if ( isnan( re ) ) {
		re = NaN;
		im = ( im === 0.0 ) ? im : re;
	} else if ( isInfinite( im ) ) {
		if ( re === PINF ) {
			re = -re;
			im = NaN;
		} else if ( re === NINF ) {
			re = -0.0;
			im = copysign( 0.0, im );
		} else {
			re = NaN;
			im = NaN;
		}
	} else {
		e = exp( re );
		if ( im === 0.0 ) {
			re = e;
		} else {
			out = sincos( im );
			re = out[ 1 ] * e;
			im = out[ 0 ] * e;
		}
	}
	return new Complex128( re, im );
}
Evaluates the exponential function for a double-precision complex floating-point number.

@param {Complex128} z - complex number
@returns {Complex128} result

@example
var Complex128 = require( '@stdlib/complex/float64/ctor' );
var real = require( '@stdlib/complex/float64/real' );
var imag = require( '@stdlib/complex/float64/imag' );
var cexp = require( '@stdlib/math/base/special/cexp' );

var v = cexp( new Complex128( 0.0, 0.0 ) );
// returns <Complex128>

var re = real( v );
// returns 1.0

var im = imag( v );
// returns 0.0

@example
var Complex128 = require( '@stdlib/complex/float64/ctor' );
var real = require( '@stdlib/complex/float64/real' );
var imag = require( '@stdlib/complex/float64/imag' );
var cexp = require( '@stdlib/math/base/special/cexp' );

var v = cexp( new Complex128( 1.0, 0.0 ) );
// returns <Complex128>

var re = real( v );
// returns ~2.718

var im = imag( v );
// returns 0.0