function negate() {
  var set;
  if (negate.arguments.length == 1)
   {
    set = negate.arguments[0];
   }
  else if (negate.arguments.length == 0)
   {
    set = this.plainMC;
   }
  else
   {
    throw "negate(): " + negate.arguments.length + " arguments given; expected 0 or 1";
   }
  //--com.ibm.icu.math.BigDecimal res;
  var res;
  // Originally called minus(), changed to matched Java precedents
  // This simply clones, flips the sign, and possibly rounds
  if (set.lostDigits)
   this.checkdigits(null,set.digits);
  res=this.clone(this); // safe copy
  res.ind=-res.ind;
  return res.finish(set,false);
  }
Returns a <code>BigDecimal</code> whose value is <code>-this</code>.
<p>
Implements the negation (Prefix <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  set The <code>MathContext</code> arithmetic settings.
@return A <code>BigDecimal</code> whose value is
        <code>-this</code>.
@stable ICU 2.0