Mono.Math.BigInteger.ModulusRing.Difference C# (CSharp) Méthode

Difference() public méthode

public Difference ( BigInteger a, BigInteger b ) : BigInteger
a BigInteger
b BigInteger
Résultat BigInteger
			public BigInteger Difference (BigInteger a, BigInteger b)
			{
				Sign cmp = Kernel.Compare (a, b);
				BigInteger diff;

				switch (cmp) {
					case Sign.Zero:
						return 0;
					case Sign.Positive:
						diff = a - b; break;
					case Sign.Negative:
						diff = b - a; break;
					default:
						throw new Exception ();
				}

				if (diff >= mod) {
					if (diff.length >= mod.length << 1)
						diff %= mod;
					else
						BarrettReduction (diff);
				}
				if (cmp == Sign.Negative)
					diff = mod - diff;
				return diff;
			}