function divide() {
  var set;
  var scale = -1;
  if (divide.arguments.length == 2)
   {
    if (typeof divide.arguments[1] == 'number')
     {
      set=new MathContext(0,MathContext.prototype.PLAIN,false,divide.arguments[1]); // [checks round, too]
     }
    else
     {
      set = divide.arguments[1];
     }
   }
  else if (divide.arguments.length == 3)
   {
    scale = divide.arguments[1];
    if (scale<0)
     throw "divide(): Negative scale: "+scale;
    set=new MathContext(0,MathContext.prototype.PLAIN,false,divide.arguments[2]); // [checks round]
   }
  else if (divide.arguments.length == 1)
   {
    set = this.plainMC;
   }
  else
   {
    throw "divide(): " + divide.arguments.length + " arguments given; expected between 1 and 3";
   }
  var rhs = divide.arguments[0];
  return this.dodivide('D',rhs,set,scale);
  }
Returns a <code>BigDecimal</code> whose value is <code>this/rhs</code>.
<p>
Implements the division (<b><code>/</code></b>) operator
(as defined in the decimal documentation, see {@link BigDecimal
class header}),
and returns the result as a <code>BigDecimal</code> object.

@param  rhs The <code>BigDecimal</code> for the right hand side of
            the division.
@param  set The <code>MathContext</code> arithmetic settings.
@return     A <code>BigDecimal</code> whose value is
            <code>this/rhs</code>.
@throws ArithmeticException if <code>rhs</code> is zero.
@stable ICU 2.0