private static DecimalImpl safeAdd(final long d1, final long d2, final int factor)
  {
	final long sum = d1 + d2;
	if (DPU.isSameSign(d1, d2) && !DPU.isSameSign(sum, d1))
	{
	  final long shrinkedSum = d1 / 10 + d2 / 10;
	  return safegetInstance(shrinkedSum, factor - 1);
	}
	else
	{
	  return safegetInstance(sum, factor);
	}
  }