anchor.diff:  
     // Bits per half digit.
     static const int DIGIT2_BITS = DIGIT_BITS >> 1;
  -  static const int DIGIT2_BASE = 1 << DIGIT2_BITS;
     static const int DIGIT2_MASK = (1 << DIGIT2_BITS) - 1;
   
     // Allocate extra digits so the bigint can be reused.
     static const int EXTRA_DIGITS = 4;
  -
  -  // Floating-point unit integer precision.
  -  static const int FP_BITS = 52;
  -  static const int FP_BASE = 1 << FP_BITS;
  -  static const int FP_D1 = FP_BITS - DIGIT_BITS;
  -  static const int FP_D2 = 2 * DIGIT_BITS - FP_BITS;
   
     // Min and max of non bigint values.
     static const int MIN_INT64 = (-1) << 63;
  
positive.code:     var y_used = y._used;
      var y0 = y._digits[y_used - 1];
      if (y0 == 0) return;
      var yt = y0*(1 << FP_D1) + ((y_used > 1) ? y._digits[y_used - 2] >> FP_D2 : 0);
      var d1 = FP_BASE/yt;
      var d2 = (1 << FP_D1)/yt;
      var e = 1 << FP_D2;
      var i = r._used;
      var j = i - y_used;
      _Bigint t = (q == null) ? new _Bigint() : q;
  
negative.code:     r._used = y_used;
      r._clamp();
      if (nsh > 0) {
        r._rShiftTo(nsh, r);  // Denormalize remainder.
      }
      if (_neg) {
        ZERO._subTo(r, r);
  