docs: function hypot( a, b ) {
  	var tmp;
  	var r;
  	if ( isInfinite( a ) || isInfinite( b ) ) {
  		return Number.POSITIVE_INFINITY;
  	}
  	if ( isnan( a ) || isnan( b ) ) {
  		return NaN;
  	}
  	if ( a === 0 && b === 0 ) {
  		return 0;
  	}
  	a = abs( a );
  	b = abs( b );
  	if ( a > b ) {
  		tmp = a;
  		a = b;
  		b = tmp;
  	}
  	r = a / b;
  	return b * sqrt( 1 + r*r );
  }