Package

algebra

Permalink

package algebra

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. algebra
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Type Members

  1. trait Band[A] extends Semigroup[A]

    Permalink

    Bands are semigroups whose operation (i.e.

    Bands are semigroups whose operation (i.e. combine) is also idempotent.

  2. trait BoundedSemilattice[A] extends Semilattice[A] with CommutativeMonoid[A]

    Permalink
  3. trait CommutativeGroup[A] extends Group[A] with CommutativeMonoid[A]

    Permalink

    An abelian group is a group whose operation is commutative.

  4. trait CommutativeMonoid[A] extends Monoid[A] with CommutativeSemigroup[A]

    Permalink

    CommutativeMonoid represents a commutative monoid.

    CommutativeMonoid represents a commutative monoid.

    A monoid is commutative if for all x and y, x |+| y === y |+| x.

  5. trait CommutativeSemigroup[A] extends Semigroup[A]

    Permalink

    CommutativeSemigroup represents a commutative semigroup.

    CommutativeSemigroup represents a commutative semigroup.

    A semigroup is commutative if for all x and y, x |+| y === y |+| x.

  6. trait Eq[A] extends Serializable

    Permalink

    A type class used to determine equality between 2 instances of the same type.

    A type class used to determine equality between 2 instances of the same type. Any 2 instances x and y are equal if eqv(x, y) is true. Moreover, eqv should form an equivalence relation.

  7. trait EqFunctions extends AnyRef

    Permalink
  8. type Field[A] = algebra.ring.Field[A]

    Permalink
  9. trait Group[A] extends Monoid[A]

    Permalink

    A group is a monoid where each element has an inverse.

  10. trait GroupFunctions extends MonoidFunctions

    Permalink
  11. trait Monoid[A] extends Semigroup[A]

    Permalink

    A monoid is a semigroup with an identity.

    A monoid is a semigroup with an identity. A monoid is a specialization of a semigroup, so its operation must be associative. Additionally, combine(x, empty) == combine(empty, x) == x. For example, if we have Monoid[String], with combine as string concatenation, then empty = "".

  12. trait MonoidFunctions extends SemigroupFunctions

    Permalink
  13. trait Order[A] extends PartialOrder[A]

    Permalink

    The Order type class is used to define a total ordering on some type A.

    The Order type class is used to define a total ordering on some type A. An order is defined by a relation <=, which obeys the following laws:

    - either x <= y or y <= x (totality) - if x <= y and y <= x, then x == y (antisymmetry) - if x <= y and y <= z, then x <= z (transitivity)

    The truth table for compare is defined as follows:

    x <= y x >= y Int true true = 0 (corresponds to x == y) true false < 0 (corresponds to x < y) false true > 0 (corresponds to x > y)

    By the totality law, x <= y and y <= x cannot be both false.

  14. trait OrderFunctions extends AnyRef

    Permalink
  15. trait PartialOrder[A] extends Eq[A]

    Permalink

    The PartialOrder type class is used to define a partial ordering on some type A.

    The PartialOrder type class is used to define a partial ordering on some type A.

    A partial order is defined by a relation <=, which obeys the following laws:

    - x <= x (reflexivity) - if x <= y and y <= x, then x = y (anti-symmetry) - if x <= y and y <= z, then x <= z (transitivity)

    To compute both <= and >= at the same time, we use a Double number to encode the result of the comparisons x <= y and x >= y. The truth table is defined as follows:

    x <= y x >= y Double true true = 0.0 (corresponds to x = y) false false = NaN (x and y cannot be compared) true false = -1.0 (corresponds to x < y) false true = 1.0 (corresponds to x > y)

  16. trait PartialOrderFunctions extends AnyRef

    Permalink
  17. sealed trait Priority[+P, +F] extends AnyRef

    Permalink

    Priority is a type class for prioritized implicit search.

    Priority is a type class for prioritized implicit search.

    This type class will attempt to provide an implicit instance of P (the preferred type). If that type is not available it will fallback to F (the fallback type). If neither type is available then a Priority[P, F] instance will not be available.

    This type can be useful for problems where multiple algorithms can be used, depending on the type classes available.

  18. type Ring[A] = algebra.ring.Ring[A]

    Permalink
  19. trait Semigroup[A] extends Serializable

    Permalink

    A semigroup is any set A with an associative operation (combine).

  20. trait SemigroupFunctions extends AnyRef

    Permalink
  21. trait Semilattice[A] extends Band[A] with CommutativeSemigroup[A]

    Permalink

    Semilattices are commutative semigroups whose operation (i.e.

    Semilattices are commutative semigroups whose operation (i.e. combine) is also idempotent.

Value Members

  1. object Band extends Serializable

    Permalink
  2. object BoundedSemilattice extends Serializable

    Permalink
  3. object CommutativeGroup extends GroupFunctions with Serializable

    Permalink
  4. object CommutativeMonoid extends MonoidFunctions with Serializable

    Permalink
  5. object CommutativeSemigroup extends SemigroupFunctions with Serializable

    Permalink
  6. object Eq extends EqFunctions with Serializable

    Permalink
  7. object Group extends GroupFunctions with Serializable

    Permalink
  8. object Monoid extends MonoidFunctions with Serializable

    Permalink
  9. object Order extends OrderFunctions with Serializable

    Permalink
  10. object PartialOrder extends PartialOrderFunctions with Serializable

    Permalink
  11. object Priority extends FindPreferred

    Permalink
  12. object Semigroup extends SemigroupFunctions with Serializable

    Permalink
  13. object Semilattice extends Serializable

    Permalink
  14. package lattice

    Permalink
  15. package number

    Permalink
  16. package ring

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped