function Complex64( real, imag ) {
	if ( !( this instanceof Complex64 ) ) {
		throw new TypeError( 'invalid invocation. Constructor must be called with the `new` keyword.' );
	}
	if ( !isNumber( real ) ) {
		throw new TypeError( format( 'invalid argument. Real component must be a number. Value: `%s`.', real ) );
	}
	if ( !isNumber( imag ) ) {
		throw new TypeError( format( 'invalid argument. Imaginary component must be a number. Value: `%s`.', imag ) );
	}
	defineProperty( this, 're', {
		'configurable': false,
		'enumerable': true,
		'writable': false,
		'value': float64ToFloat32( real )
	});
	defineProperty( this, 'im', {
		'configurable': false,
		'enumerable': true,
		'writable': false,
		'value': float64ToFloat32( imag )
	});
	return this;
}
64-bit complex number constructor.

@constructor
@param {number} real - real component
@param {number} imag - imaginary component
@throws {TypeError} must invoke using the `new` keyword
@throws {TypeError} real component must be a number
@throws {TypeError} imaginary component must be a number
@returns {Complex64} 64-bit complex number

@example
var z = new Complex64( 5.0, 3.0 );
// returns <Complex64>