function resolveCallback( table, t1, t2 ) {
	// Signature: ?_z
	if ( t2 === C128 ) {
		// c_z or z_z
		if ( t1 === C64 || t1 === C128 ) {
			// Always perform computation in higher precision:
			return table[ C128 ];
		}
		// d_z (cast the double-precision return value from `d_d` to a complex number)
		return wrap( table.default, 1, CTORS[ t2 ] );
	}
	// Signature: ?_c
	if ( t2 === C64 ) {
		// c_c
		if ( t1 === C64 ) {
			return table[ C64 ];
		}
		// z_c
		if ( t1 === C128 ) {
			// Always perform the computation in higher precision:
			return table[ C128 ];
		}
		// d_c (cast the double-precision return value from `d_d` to a complex number)
		return wrap( table.default, 1, CTORS[ t2 ] );
	}
	// Signature: ?_o
	if ( t2 === 'generic' ) {
		// z_o
		if ( t1 === C128 ) {
			return table[ C128 ]; // Signature: z_o_as_z_z
		}
		// c_o
		if ( t1 === C64 ) {
			return table[ C64 ]; // Signature: c_o_as_c_c
		}
		// d_o
		return table.default; // Signature: d_o_as_d_d
	}
	return table.default;
}
Resolves a callback based on provided dtypes.

@private
@param {Object} table - callback table
@param {Function} table.default - default callback
@param {Function} table.complex64 - callback for single-precision complex floating-point numbers
@param {Function} table.complex128 - callback for double-precision complex floating-point numbers
@param {string} t1 - dtype for input argument
@param {string} t2 - dtype for return value
@returns {Function} callback