public static BigInteger operator + (BigInteger bi1, BigInteger bi2) { if (bi1 == 0) return new BigInteger (bi2); else if (bi2 == 0) return new BigInteger (bi1); else return Kernel.AddSameSign (bi1, bi2); }