BigInteger add(long val){
  if (val == 0)   return this;
  if (signum == 0)   return valueOf(val);
  if (Long.signum(val) == signum)   return new BigInteger(add(mag,Math.abs(val)),signum);
  int cmp=compareMagnitude(val);
  if (cmp == 0)   return ZERO;
  int[] resultMag=(cmp > 0 ? subtract(mag,Math.abs(val)) : subtract(Math.abs(val),mag));
  resultMag=trustedStripLeadingZeroInts(resultMag);
  return new BigInteger(resultMag,cmp == signum ? 1 : -1);
}

BigInteger add ( long val ) { if ( val == 0 ) return this ; if ( signum == 0 ) return valueOf ( val ) ; if ( Long . signum ( val ) == signum ) return new BigInteger ( add ( mag , Math . abs ( val ) ) , signum ) ; int cmp = compareMagnitude ( val ) ; if ( cmp == 0 ) return ZERO ; int [ ] resultMag = ( cmp > 0 ? subtract ( mag , Math . abs ( val ) ) : subtract ( Math . abs ( val ) , mag ) ) ; resultMag = trustedStripLeadingZeroInts ( resultMag ) ; return new BigInteger ( resultMag , cmp == signum ? 1 : - 1 ) ; }
package private methods used by bigdecimal code to add a biginteger with a long . assumes val is not equal to inflated .
