function remainder() {
  var set;
  if (remainder.arguments.length == 2)
   {
    set = remainder.arguments[1];
   }
  else if (remainder.arguments.length == 1)
   {
    set = this.plainMC;
   }
  else
   {
    throw "remainder(): " + remainder.arguments.length + " arguments given; expected 1 or 2";
   }
  var rhs = remainder.arguments[0];
  return this.dodivide('R',rhs,set,-1);
  }
Returns a <code>BigDecimal</code> whose value is the remainder of
<code>this/rhs</code>.
<p>
Implements the remainder operator
(as defined in the decimal documentation, see {@link BigDecimal
class header}),
and returns the result as a <code>BigDecimal</code> object.
<p>
This is not the modulo operator -- the result may be negative.

@param  rhs The <code>BigDecimal</code> for the right hand side of
            the remainder operation.
@param  set The <code>MathContext</code> arithmetic settings.
@return     A <code>BigDecimal</code> whose value is the remainder
            of <code>this+rhs</code>.
@throws ArithmeticException if <code>rhs</code> is zero.
@throws ArithmeticException if the integer part of the result will
            not fit in the number of digits specified for the
            context.
@stable ICU 2.0