Inherited from CommutativeRing[A]
Inherited from CommutativeRng[A]
Inherited from CommutativeRig[A]
Inherited from MultiplicativeCommutativeMonoid[A]
Inherited from CommutativeSemiring[A]
Inherited from MultiplicativeCommutativeSemigroup[A]
Inherited from algebra.ring.Ring[A]
Inherited from algebra.ring.Rng[A]
Inherited from AdditiveCommutativeGroup[A]
Inherited from algebra.ring.AdditiveGroup[A]
Inherited from algebra.ring.Rig[A]
Inherited from algebra.ring.MultiplicativeMonoid[A]
Inherited from algebra.ring.Semiring[A]
Inherited from algebra.ring.MultiplicativeSemigroup[A]
Inherited from AdditiveCommutativeMonoid[A]
Inherited from AdditiveCommutativeSemigroup[A]
Inherited from algebra.ring.AdditiveMonoid[A]
Inherited from algebra.ring.AdditiveSemigroup[A]
Inherited from Serializable
Inherited from Serializable
Inherited from Any
GCDRing implements a GCD ring.
For two elements x and y in a GCD ring, we can choose two elements d and m such that:
d = gcd(x, y) m = lcm(x, y)
d * m = x * y
Additionally, we require:
gcd(0, 0) = 0 lcm(x, 0) = lcm(0, x) = 0
and commutativity:
gcd(x, y) = gcd(y, x) lcm(x, y) = lcm(y, x)