function promotionRules( dtype1, dtype2 ) {
	var o;
	if ( arguments.length === 0 ) {
		return generateFullTable();
	}
	dtype1 = resolve( dtype1 );
	if ( hasOwnProp( PROMOTION_RULES, dtype1 ) ) {
		o = PROMOTION_RULES[ dtype1 ];
		dtype2 = resolve( dtype2 );
		if ( hasOwnProp( o, dtype2 ) ) {
			return o[ dtype2 ];
		}
	}
	return null;
}
Returns the array data type with the smallest size and closest "kind" to which array data types can be safely cast.

@param {*} [dtype1] - array data type value
@param {*} [dtype2] - array data type value
@returns {(Object|integer|string|null)} promotion rule(s) or null

@example
var table = promotionRules();
// returns {...}

@example
var dt = promotionRules( 'float32', 'uint32' );
// returns 'float64'

@example
var dt = promotionRules( 'float32', 'foo' );
// returns null