A semigroup/monoid/group action of G
on P
is the combination of compatible
left and right actions, providing:
EuclideanRing implements a Euclidean domain.
A FieldAlgebra
is a vector space that is also a Ring
.
GCDRing implements a GCD ring.
A simple type class for numeric types that are a subset of the reals.
A (left) semigroup/monoid/group action of G
on P
is simply the implementation of
a method actl(g, p)
, or g |+|> p
, such that:
This type class models a metric space V
.
A module generalizes a vector space by requiring its scalar need only form a ring, rather than a field.
This is a type class for types with n-roots.
A normed vector space is a vector space equipped with a function
norm: V => F
.
A (right) semigroup/monoid/group action of G
on P
is simply the implementation of
a method actr(p, g)
, or p <|+| g
, such that:
A RingAlgebra
is a module that is also a Rng
.
A simple ADT representing the Sign
of an object.
A trait for linearly ordered additive commutative monoid.
A Torsor[V, R] requires an AbGroup[R] and provides Action[V, R],
plus a diff
operator, <->
in additive notation, such that:
A vector space is a group V
that can be multiplied by scalars in F
that
lie in a field.
Given any Ring[A]
we can construct a RingAlgebra[A, Int]
.