code: function config(obj) {
      if (!obj || typeof obj !== 'object') {
        throw Error(decimalError + 'Object expected');
      }
      var i, p, v,
        ps = [
          'precision', 1, MAX_DIGITS,
          'rounding', 0, 8,
          'toExpNeg', -1 / 0, 0,
          'toExpPos', 0, 1 / 0
        ];
  
      for (i = 0; i < ps.length; i += 3) {
        if ((v = obj[p = ps[i]]) !== void 0) {
          if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;
          else throw Error(invalidArgument + p + ': ' + v);
        }
      }
  
      if ((v = obj[p = 'LN10']) !== void 0) {
          if (v == Math.LN10) this[p] = new this(v);
          else throw Error(invalidArgument + p + ': ' + v);
      }
  
      return this;
    }
docs: /*
  Configure global settings for a Decimal constructor.
  
  `obj` is an object with one or more of the following properties,
  
  precision  {number}
  rounding   {number}
  toExpNeg   {number}
  toExpPos   {number}
  
  E.g. Decimal.config({ precision: 20, rounding: 4 })