Package

algebra

ring

Permalink

package ring

Visibility
  1. Public
  2. All

Type Members

  1. trait AdditiveCommutativeGroup[A] extends AdditiveGroup[A] with AdditiveCommutativeMonoid[A]

    Permalink
  2. trait AdditiveCommutativeMonoid[A] extends AdditiveMonoid[A] with AdditiveCommutativeSemigroup[A]

    Permalink
  3. trait AdditiveCommutativeSemigroup[A] extends AdditiveSemigroup[A]

    Permalink
  4. trait AdditiveGroup[A] extends AdditiveMonoid[A]

    Permalink
  5. trait AdditiveGroupFunctions[G[T] <: AdditiveGroup[T]] extends AdditiveMonoidFunctions[G]

    Permalink
  6. trait AdditiveMonoid[A] extends AdditiveSemigroup[A]

    Permalink
  7. trait AdditiveMonoidFunctions[M[T] <: AdditiveMonoid[T]] extends AdditiveSemigroupFunctions[M]

    Permalink
  8. trait AdditiveSemigroup[A] extends Serializable

    Permalink
  9. trait AdditiveSemigroupFunctions[S[T] <: AdditiveSemigroup[T]] extends AnyRef

    Permalink
  10. trait BoolRing[A] extends BoolRng[A] with CommutativeRing[A]

    Permalink

    A Boolean ring is a ring whose multiplication is idempotent, that is a⋅a = a for all elements a.

    A Boolean ring is a ring whose multiplication is idempotent, that is a⋅a = a for all elements a. This property also implies a+a = 0 for all a, and a⋅b = b⋅a (commutativity of multiplication).

    Every Boolean ring is equivalent to a Boolean algebra. See algebra.lattice.BoolFromBoolRing for details.

  11. trait BoolRng[A] extends Rng[A]

    Permalink

    A Boolean rng is a rng whose multiplication is idempotent, that is a⋅a = a for all elements a.

    A Boolean rng is a rng whose multiplication is idempotent, that is a⋅a = a for all elements a. This property also implies a+a = 0 for all a, and a⋅b = b⋅a (commutativity of multiplication).

    Every BoolRng is equivalent to algebra.lattice.GenBool. See algebra.lattice.GenBoolFromBoolRng for details.

  12. trait CommutativeRig[A] extends Rig[A] with MultiplicativeCommutativeMonoid[A]

    Permalink

    CommutativeRig is a Rig that is commutative under multiplication.

  13. trait CommutativeRing[A] extends Ring[A] with CommutativeRig[A]

    Permalink

    CommutativeRing is a Ring that is commutative under multiplication.

  14. trait EuclideanRing[A] extends CommutativeRing[A]

    Permalink

    EuclideanRing implements a Euclidean domain.

    EuclideanRing implements a Euclidean domain.

    The formal definition says that every euclidean domain A has (at least one) euclidean function f: A -> N (the natural numbers) where:

    (for every x and non-zero y) x = yq + r, and r = 0 or f(r) < f(y).

    The idea is that f represents a measure of length (or absolute value), and the previous equation represents finding the quotient and remainder of x and y. So:

    quot(x, y) = q mod(x, y) = r

    This type does not provide access to the Euclidean function, but only provides the quot, mod, and quotmod operators.

  15. trait EuclideanRingFunctions[R[T] <: EuclideanRing[T]] extends RingFunctions[R]

    Permalink
  16. trait Field[A] extends EuclideanRing[A] with MultiplicativeCommutativeGroup[A]

    Permalink
  17. trait FieldFunctions[F[T] <: Field[T]] extends EuclideanRingFunctions[F] with MultiplicativeGroupFunctions[F]

    Permalink
  18. trait MultiplicativeCommutativeGroup[A] extends MultiplicativeGroup[A] with MultiplicativeCommutativeMonoid[A]

    Permalink
  19. trait MultiplicativeCommutativeMonoid[A] extends MultiplicativeMonoid[A] with MultiplicativeCommutativeSemigroup[A]

    Permalink
  20. trait MultiplicativeCommutativeSemigroup[A] extends MultiplicativeSemigroup[A]

    Permalink
  21. trait MultiplicativeGroup[A] extends MultiplicativeMonoid[A]

    Permalink
  22. trait MultiplicativeGroupFunctions[G[T] <: MultiplicativeGroup[T]] extends MultiplicativeMonoidFunctions[G]

    Permalink
  23. trait MultiplicativeMonoid[A] extends MultiplicativeSemigroup[A]

    Permalink
  24. trait MultiplicativeMonoidFunctions[M[T] <: MultiplicativeMonoid[T]] extends MultiplicativeSemigroupFunctions[M]

    Permalink
  25. trait MultiplicativeSemigroup[A] extends Serializable

    Permalink
  26. trait MultiplicativeSemigroupFunctions[S[T] <: MultiplicativeSemigroup[T]] extends AnyRef

    Permalink
  27. trait Rig[A] extends Semiring[A] with MultiplicativeMonoid[A]

    Permalink

    Rig consists of:

    Rig consists of:

    • a commutative monoid for addition (+)
    • a monoid for multiplication (*)

    Alternately, a Rig can be thought of as a ring without multiplicative or additive inverses (or as a semiring with a multiplicative identity).

    Mnemonic: "Rig is a Ring without 'N'egation."

  28. trait Ring[A] extends Rig[A] with Rng[A]

    Permalink

    Ring consists of:

    Ring consists of:

    • a commutative group for addition (+)
    • a monoid for multiplication (*)

    Additionally, multiplication must distribute over addition.

    Ring implements some methods (for example fromInt) in terms of other more fundamental methods (zero, one and plus). Where possible, these methods should be overridden by more efficient implementations.

  29. trait RingFunctions[R[T] <: Ring[T]] extends AdditiveGroupFunctions[R] with MultiplicativeMonoidFunctions[R]

    Permalink
  30. trait Rng[A] extends Semiring[A] with AdditiveCommutativeGroup[A]

    Permalink

    Rng (pronounced "Rung") consists of:

    Rng (pronounced "Rung") consists of:

    • a commutative group for addition (+)
    • a semigroup for multiplication (*)

    Alternately, a Rng can be thought of as a ring without a multiplicative identity (or as a semiring with an additive inverse).

    Mnemonic: "Rng is a Ring without multiplicative 'I'dentity."

  31. trait Semiring[A] extends AdditiveCommutativeMonoid[A] with MultiplicativeSemigroup[A]

    Permalink

    Semiring consists of:

    Semiring consists of:

    • a commutative monoid for addition (+)
    • a semigroup for multiplication (*)

    Alternately, a Semiring can be thought of as a ring without a multiplicative identity or an additive inverse.

    A Semiring with an additive inverse (-) is a Rng. A Semiring with a multiplicative identity (1) is a Rig. A Semiring with both of those is a Ring.

Value Members

  1. object AdditiveCommutativeGroup extends AdditiveGroupFunctions[AdditiveCommutativeGroup] with Serializable

    Permalink
  2. object AdditiveCommutativeMonoid extends AdditiveMonoidFunctions[AdditiveCommutativeMonoid] with Serializable

    Permalink
  3. object AdditiveCommutativeSemigroup extends AdditiveSemigroupFunctions[AdditiveCommutativeSemigroup] with Serializable

    Permalink
  4. object AdditiveGroup extends AdditiveGroupFunctions[AdditiveGroup] with Serializable

    Permalink
  5. object AdditiveMonoid extends AdditiveMonoidFunctions[AdditiveMonoid] with Serializable

    Permalink
  6. object AdditiveSemigroup extends AdditiveSemigroupFunctions[AdditiveSemigroup] with Serializable

    Permalink
  7. object BoolRing extends RingFunctions[BoolRing] with Serializable

    Permalink
  8. object BoolRng extends AdditiveGroupFunctions[BoolRng] with MultiplicativeSemigroupFunctions[BoolRng] with Serializable

    Permalink
  9. object CommutativeRig extends AdditiveMonoidFunctions[CommutativeRig] with MultiplicativeMonoidFunctions[CommutativeRig] with Serializable

    Permalink
  10. object CommutativeRing extends RingFunctions[CommutativeRing] with Serializable

    Permalink
  11. object EuclideanRing extends EuclideanRingFunctions[EuclideanRing] with Serializable

    Permalink
  12. object Field extends FieldFunctions[Field] with Serializable

    Permalink
  13. object MultiplicativeCommutativeGroup extends MultiplicativeGroupFunctions[MultiplicativeCommutativeGroup] with Serializable

    Permalink
  14. object MultiplicativeCommutativeMonoid extends MultiplicativeMonoidFunctions[MultiplicativeCommutativeMonoid] with Serializable

    Permalink
  15. object MultiplicativeCommutativeSemigroup extends MultiplicativeSemigroupFunctions[MultiplicativeCommutativeSemigroup] with Serializable

    Permalink
  16. object MultiplicativeGroup extends MultiplicativeGroupFunctions[MultiplicativeGroup] with Serializable

    Permalink
  17. object MultiplicativeMonoid extends MultiplicativeMonoidFunctions[MultiplicativeMonoid] with Serializable

    Permalink
  18. object MultiplicativeSemigroup extends MultiplicativeSemigroupFunctions[MultiplicativeSemigroup] with Serializable

    Permalink
  19. object Rig extends AdditiveMonoidFunctions[Rig] with MultiplicativeMonoidFunctions[Rig] with Serializable

    Permalink
  20. object Ring extends RingFunctions[Ring] with Serializable

    Permalink
  21. object Rng extends AdditiveGroupFunctions[Rng] with MultiplicativeSemigroupFunctions[Rng] with Serializable

    Permalink
  22. object Semiring extends AdditiveMonoidFunctions[Semiring] with MultiplicativeSemigroupFunctions[Semiring] with Serializable

    Permalink

Ungrouped