function min() {
  var set;
  if (min.arguments.length == 2)
   {
    set = min.arguments[1];
   }
  else if (min.arguments.length == 1)
   {
    set = this.plainMC;
   }
  else
   {
    throw "min(): " + min.arguments.length + " arguments given; expected 1 or 2";
   }
  var rhs = min.arguments[0];
  if ((this.compareTo(rhs,set))<=0)
   return this.plus(set);
  else
   return rhs.plus(set);
  }
Returns a <code>BigDecimal</code> whose value is
the minimum of <code>this</code> and <code>rhs</code>.
<p>
Returns the smaller of the current object and the first parameter.
<p>
If calling the {@link #compareTo(BigDecimal, MathContext)} method
with the same parameters would return <code>-1</code> or
<code>0</code>, then the result of calling the
{@link #plus(MathContext)} method on the current object (using the
same <code>MathContext</code> parameter) is returned.
Otherwise, the result of calling the {@link #plus(MathContext)}
method on the first parameter object (using the same
<code>MathContext</code> parameter) is returned.

@param  rhs The <code>BigDecimal</code> for the right hand side of
            the comparison.
@param  set The <code>MathContext</code> arithmetic settings.
@return     A <code>BigDecimal</code> whose value is
            the minimum of <code>this</code> and <code>rhs</code>.
@stable ICU 2.0