Trait/Object

spire.algebra

GCDRing

Related Docs: object GCDRing | package algebra

Permalink

trait GCDRing[A] extends CRing[A]

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)

Linear Supertypes
CommutativeRing[A], CommutativeRng[A], CommutativeRig[A], MultiplicativeCommutativeMonoid[A], CommutativeSemiring[A], MultiplicativeCommutativeSemigroup[A], algebra.ring.Ring[A], algebra.ring.Rng[A], AdditiveCommutativeGroup[A], algebra.ring.AdditiveGroup[A], algebra.ring.Rig[A], algebra.ring.MultiplicativeMonoid[A], algebra.ring.Semiring[A], algebra.ring.MultiplicativeSemigroup[A], AdditiveCommutativeMonoid[A], AdditiveCommutativeSemigroup[A], algebra.ring.AdditiveMonoid[A], algebra.ring.AdditiveSemigroup[A], Serializable, Serializable, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. GCDRing
  2. CommutativeRing
  3. CommutativeRng
  4. CommutativeRig
  5. MultiplicativeCommutativeMonoid
  6. CommutativeSemiring
  7. MultiplicativeCommutativeSemigroup
  8. Ring
  9. Rng
  10. AdditiveCommutativeGroup
  11. AdditiveGroup
  12. Rig
  13. MultiplicativeMonoid
  14. Semiring
  15. MultiplicativeSemigroup
  16. AdditiveCommutativeMonoid
  17. AdditiveCommutativeSemigroup
  18. AdditiveMonoid
  19. AdditiveSemigroup
  20. Serializable
  21. Serializable
  22. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def gcd(a: A, b: A)(implicit ev: Eq[A]): A

    Permalink
  2. abstract def getClass(): Class[_]

    Permalink
    Definition Classes
    Any
  3. abstract def lcm(a: A, b: A)(implicit ev: Eq[A]): A

    Permalink
  4. abstract def negate(x: A): A

    Permalink
    Definition Classes
    AdditiveGroup
  5. abstract def one: A

    Permalink
    Definition Classes
    MultiplicativeMonoid
  6. abstract def plus(x: A, y: A): A

    Permalink
    Definition Classes
    AdditiveSemigroup
  7. abstract def times(x: A, y: A): A

    Permalink
    Definition Classes
    MultiplicativeSemigroup
  8. abstract def zero: A

    Permalink
    Definition Classes
    AdditiveMonoid

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  4. def additive: CommutativeGroup[A]

    Permalink
    Definition Classes
    AdditiveCommutativeGroup → AdditiveCommutativeMonoid → AdditiveCommutativeSemigroup → AdditiveGroup → AdditiveMonoid → AdditiveSemigroup
  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  7. def fromBigInt(n: BigInt): A

    Permalink
    Definition Classes
    Ring
  8. def fromInt(n: Int): A

    Permalink
    Definition Classes
    Ring
  9. def hashCode(): Int

    Permalink
    Definition Classes
    Any
  10. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  11. def isOne(a: A)(implicit ev: algebra.Eq[A]): Boolean

    Permalink
    Definition Classes
    MultiplicativeMonoid
  12. def isZero(a: A)(implicit ev: algebra.Eq[A]): Boolean

    Permalink
    Definition Classes
    AdditiveMonoid
  13. def minus(x: A, y: A): A

    Permalink
    Definition Classes
    AdditiveGroup
  14. def multiplicative: CommutativeMonoid[A]

    Permalink
    Definition Classes
    MultiplicativeCommutativeMonoid → MultiplicativeCommutativeSemigroup → MultiplicativeMonoid → MultiplicativeSemigroup
  15. def positivePow(a: A, n: Int): A

    Permalink
    Attributes
    protected[this]
    Definition Classes
    MultiplicativeSemigroup
  16. def positiveSumN(a: A, n: Int): A

    Permalink
    Attributes
    protected[this]
    Definition Classes
    AdditiveSemigroup
  17. def pow(a: A, n: Int): A

    Permalink
    Definition Classes
    MultiplicativeMonoid → MultiplicativeSemigroup
  18. def product(as: TraversableOnce[A]): A

    Permalink
    Definition Classes
    MultiplicativeMonoid
  19. def sum(as: TraversableOnce[A]): A

    Permalink
    Definition Classes
    AdditiveMonoid
  20. def sumN(a: A, n: Int): A

    Permalink
    Definition Classes
    AdditiveGroup → AdditiveMonoid → AdditiveSemigroup
  21. def toString(): String

    Permalink
    Definition Classes
    Any
  22. def tryProduct(as: TraversableOnce[A]): Option[A]

    Permalink
    Definition Classes
    MultiplicativeMonoid → MultiplicativeSemigroup
  23. def trySum(as: TraversableOnce[A]): Option[A]

    Permalink
    Definition Classes
    AdditiveMonoid → AdditiveSemigroup

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

Ungrouped