A trait for linearly ordered additive commutative monoid. The following laws holds:
(1) if a <= b then a + c <= b + c (linear order),
(2) signum(x) = -1 if x < 0, signum(x) = 1 if x > 0, signum(x) = 0 otherwise,
Negative elements only appear when scalar is a additive abelian group, and then
(3) abs(x) = -x if x < 0, or x otherwise,
Laws (1) and (2) lead to the triange inequality:
(4) abs(a + b) <= abs(a) + abs(b)
Signed should never be extended in implementations, rather the AdditiveCMonoid and AdditiveAbGroup subtraits.
We cannot use self-types to express the constraint self: AdditiveCMonoid => (interaction with specialization?).
Linear Supertypes
cats.kernel.Order[A], cats.kernel.PartialOrder[A], cats.kernel.Eq[A], Serializable, Serializable, Any
A trait for linearly ordered additive commutative monoid. The following laws holds:
(1) if
a <= b
thena + c <= b + c
(linear order), (2)signum(x) = -1
ifx < 0
,signum(x) = 1
ifx > 0
,signum(x) = 0
otherwise,Negative elements only appear when
scalar
is a additive abelian group, and then (3)abs(x) = -x
ifx < 0
, orx
otherwise,Laws (1) and (2) lead to the triange inequality:
(4)
abs(a + b) <= abs(a) + abs(b)
Signed should never be extended in implementations, rather the AdditiveCMonoid and AdditiveAbGroup subtraits. We cannot use self-types to express the constraint
self: AdditiveCMonoid =>
(interaction with specialization?).