public void addDestructiveScaleTen(UnsignedInt128 right, short tenScale) {
    if (tenScale == 0) {
      addDestructive(right);
      return;
    }

    // scale up/down
    final int[] r = right.v.clone();
    if (tenScale < 0) {

      // scale down
      scaleDownTenArray4RoundUp(r, (short) -tenScale);
    } else if (tenScale > 0) {

      // scale up
      boolean overflow = scaleUpTenArray(r, tenScale);
      if (overflow) {
        SqlMathUtil.throwOverflowException();
      }
    }

    addDestructive(r);
  }
Adds the given value after scaling to this value. this := this + (right *
10**tenScale). This version is destructive, meaning it modifies this
object.

@param right
         the value to add
@param tenScale
         number of ten-based scaling. could be either positive or negative.
common/src/java/org/apache/hadoop/hive/common/type/UnsignedInt128.java