The Algebra Library (alglib)
Collection of algebraic operations.
nullary_relation
View sourcenullary_relation(∼)true if ∼ is a relation of 0-arity.
Note:
In case of ∼ is a operator, use space after ∼ as temporary workaround. eg., nullary_relation(= )
unary_relation
View sourceunary_relation(∼)true if ∼ is a unary relation.
Note:
In case of ∼ is a operator, use space after ∼ as temporary workaround. eg., unary_relation(= )
binary_relation
View sourcebinary_relation(∼)true if ∼ is a binary relation.
Note:
In case of ∼ is a operator, use space after ∼ as temporary workaround. eg., binary_relation(= )
ternary_relation
View sourceternary_relation(∼)true if ∼ is a ternary relation.
Note:
In case of ∼ is a operator, use space after ∼ as temporary workaround. eg., ternary_relation(= )
irreflexive
View sourceirreflexive(D, ∼)A binary relation is irreflexive if a ∼ a is never true for all a in D.
reflexive
View sourcereflexive(D, ∼)A binary relation is reflexive if a ∼ a is always true for all a in D.
symmetric
View sourcesymmetric(D, ∼)A binary relation is symmetric if for all a and b in D, whenever a ∼ b is true,
then also b ∼ a is also true.
antisymmetric
View sourceantisymmetric(D, ∼)A binary relation is antisymmetric if for all a and b in D, whenever a ∼ b and
b ∼ a are true, then b = a.
transitive
View sourcetransitive(D, ∼)A binary relation is transitive if for all a, b and c in D, whenever a ∼ b and
b ∼ c are true, then also a ∼ c is true.
equivalence_relation
View sourceequivalence_relation(D, ∼)A binary relation is an equivalence_relation if it is reflexive, symmetric, and transitive
unary_relation_substitution_laws
View sourceunary_relation_substitution_laws(D, R, ≈)A unary relation obeys substitution laws if the relation R produces the same results when
values are substituted according to the binary relation ≈.
For example, unary_relation_substitution_laws({1; 2}, {1; 2}, (1, 2)) is true because
the result of R(1) remains true when 1 is replaced by 2.
binary_relation_substitution_laws
View sourcebinary_relation_substitution_laws(D, R, ≈)A binary relation obeys substitution laws if the relation R produces the same results
when values are substituted according to the binary relation ≈.
preorder
View sourcepreorder(D, ≼)A binary relation ≼ is a preorder if it is reflexive and transitive.
partial_order
View sourcepartial_order(D, ≼)A binary relation ≼ is a partial order if it is reflexive, antisymmetric, and transitive.
strict_partial_order
View sourcestrict_partial_order(D, ≺)A binary relation ≺ is a strict partial order if it is irreflexive, antisymmetric, and
transitive. This is similar to a partial order, but is irreflexive rather than reflexive.
comparable
View sourcecomparable(a, b, ≼)Two elements a and b are comparable if either a ≼ b or b ≼ a.
total_order
View sourcetotal_order(D, ≼)A binary relation ≼ is a total order if it is a partial order, and every element in D
is comparable with every other element in D with respect to the partial order.
strict_total_order
View sourcestrict_total_order(D, ≺)A binary relation ≺ is a strict total order if it is a strict partial order, and every
element in D is either comparable or equal to another element in D.
maximal_element
View sourcemaximal_element[D, ≼]The maximal element of a partial order ≼ is an element which is greater than all other
elements in D.
has_maximal_element
View sourcehas_maximal_element(D, ≼)true if the partial order ≼ contains a maximal element.
minimal_element
View sourceminimal_element[D, ≼]The minimal element of a partial order ≼ is an element which is less than all other
elements in D.
has_minimal_element
View sourcehas_minimal_element(D, ≼)true if the partial order ≼ contains a minimal element.
unary_operator
View sourceunary_operator(D, ⊙)A unary operator takes one argument and returns another argument of the same type, i.e., it can be represented as a binary relation.
binary_operator
View sourcebinary_operator(D, ⊙)A binary operator takes two arguments and returns another argument of the same type, i.e., it can be represented as a relation of arity 3.
approximately_commutative
View sourceapproximately_commutative(D, ⊙, ≈)A binary operator ⊙ is approximately commutative if a ⊙ b is approximately equal to
b ⊙ a for all a and b in D, where approximately equal is defined by the binary
relation ≈.
commutative
View sourcecommutative(D, ⊙)A binary operator ⊙ is commutative if a ⊙ b is equal to b ⊙ a for all a and b in
D.
approximately_associative
View sourceapproximately_associative(D, ⊙, ≈)A binary operator ⊙ is approximately associative if (a ⊙ b) ⊙ c is approximately equal
to a ⊙ (b ⊙ c) for all a, b and c in D, where approximately equal is defined by
the binary relation ≈.
associative
View sourceassociative(D, ⊙)A binary operator ⊙ is associative if (a ⊙ b) ⊙ c is equal to a ⊙ (b ⊙ c) for all
a, b and c in D.
idempotent
View sourceidempotent(D, ⊙, ≈)A binary operator ⊙ is idempotent if a ⊙ a = a for all a in D.
left_identity
View sourceleft_identity[D, ⊙]A left identity of a binary operator ⊙ is an element i such that i ⊙ a = a for all
a in D.
right_identity
View sourceright_identity[D, ⊙]A right identity of a binary operator ⊙ is an element i such that a ⊙ i = a for all
a in D.
identity
View sourceidentity[D, ⊙]An identity of a binary operator ⊙ is both a left and right identity.
approximately_has_inverse
View sourceapproximately_has_inverse(D, ⊙, N, ≈)For a binary relation ⊙, an inverse of an element a is an element b such that a ⊙ b
is approximately equal to the identity element. For approximately_has_inverse, the
inverse operator is given as N, so the inverse of a is N[a], and approximately equal
to is defined by ≈.
left_zero
View sourceleft_zero[D, ⊙]A left zero of a binary operator ⊙ is an element z such that z ⊙ a = z for all a in
D.
right_zero
View sourceright_zero[D, ⊙]A right zero of a binary operator ⊙ is an element z such that z ⊙ a = z for all a
in D.
approximately_left_distributive
View sourceapproximately_left_distributive(D, ⊗, ⊕, ≈)A binary operator ⊗ is approximately left distributive over another binary operator ⊕
if a ⊗ (b ⊕ c) is approximately equal to (a ⊗ b) ⊕ (a ⊗ c) for all a, b and c in
D.
left_distributive
View sourceleft_distributive(D, ⊗, ⊕)A binary operator ⊗ is left distributive over another binary operator ⊕ if
a ⊗ (b ⊕ c) is equal to (a ⊗ b) ⊕ (a ⊗ c) for all a, b and c in D.
approximately_right_distributive
View sourceapproximately_right_distributive(D, ⊗, ⊕, ≈)A binary operator ⊗ is approximately right distributive over another binary operator ⊕
if (a ⊕ b) ⊗ c is approximately equal to (a ⊗ c) ⊕ (b ⊗ c) for all a, b and c in
D.
right_distributive
View sourceright_distributive(D, ⊗, ⊕, ≈)A binary operator ⊗ is right distributive over another binary operator ⊕ if
(a ⊕ b) ⊗ c is equal to (a ⊗ c) ⊕ (b ⊗ c) for all a, b and c in D.
approximately_distributive
View sourceapproximately_distributive(D, ⊗, ⊕, ≈)A binary operator ⊗ is approximately distributive over another binary operator ⊕ if it
is approximately both left and right distributive.
distributive
View sourcedistributive(D, ⊗, ⊕)A binary operator ⊗ is distributive over another binary operator ⊕ if it is both left
and right distributive.
absorption_laws
View sourceabsorption_laws(D, ⊓, ⊔)Binary operator ⊓ and ⊔ obey absorption laws if a ⊔ (a ⊓ b) = a = a ⊓ (a ⊔ b) for all
a and b in D. The absorption laws are one of the defining characteristics of the meet
and join operations of a lattice.
approximately_zero_annihilation
View sourceapproximately_zero_annihilation(D, ⊙, ≈)A binary relation ⊙ obeys approximate zero annihilation if there exists an element that
is approximately both a left and right zero.
zero_of_operator
View sourcezero_of_operator[D, ⊙]A zero of a binary operator ⊙ is an element that is both a left and right zero.
zero_annihilation
View sourcezero_annihilation(D, ⊙)A binary relation ⊙ obeys zero annihilation if there exists an element that is both a
left and right zero.
semilattice
View sourcesemilattice(D, ⊓)A semilattice is a set D, with an operator ⊓, such that ⊓ is commutative,
associative, and idempotent. The classic example of a semilattice is a set of subsets with
the intersection operator.
bounded_semilattice
View sourcebounded_semilattice(D, ⊓)A bounded semilattice is a semilattice with a maximal element. Equivalently, a semilattice is bounded if it is an idempotent commutative monoid.
lattice
View sourcelattice(D, ⊓, ⊔)A lattice is a set D with two operators, ⊓ and ⊔, usually denoted join and meet
respectively, such that (D, ⊓) and (D, ⊔) are semilattices, and the operators ⊓ and
⊔ obey absorption laws.
meet_bounded_lattice
View sourcemeet_bounded_lattice(D, ⊓, ⊔)A lattice is meet bounded if the meet operator ⊓ forms a bounded semilattice.
join_bounded_lattice
View sourcejoin_bounded_lattice(D, ⊓, ⊔)A lattice is join bounded if the join operator ⊔ forms a bounded semilattice.
bounded_lattice
View sourcebounded_lattice(D, ⊓, ⊔)A lattice is bounded if both the meet and join operators form bounded semilattices.
partial_order_and_lattice
View sourcepartial_order_and_lattice(D, ≼, ⊓, ⊔)A lattice is partially ordered if it has an operator ≼ defining a partial order, such
that a ≼ b if and only if (a ⊓ b) = a, and (a ⊔ b) = b.
partial_order_and_meet_bounded_lattice
View sourcepartial_order_and_meet_bounded_lattice(D, ≼, ⊓, ⊔)A partially ordered lattice is meet bounded if the meet operator ⊓ forms a bounded
semilattice, and the identity of ⊓ is the maximal element of ≼.
partial_order_and_join_bounded_lattice
View sourcepartial_order_and_join_bounded_lattice(D, ≼, ⊓, ⊔)A partially ordered lattice is join bounded if the join operator ⊔ forms a bounded
semilattice, and the identity of ⊔ is the minimal element of ≼.
partial_order_and_bounded_lattice
View sourcepartial_order_and_bounded_lattice(D, ≼, ⊓, ⊔)A partially ordered lattice is bounded if is both meet and join bounded.
approximate_monoid
View sourceapproximate_monoid(D, ⊙, ≈)An approximate monoid is a set D with a binary operator ⊙ that is approximately
associative and has an identity element.
monoid
View sourcemonoid(D, ⊙)A monoid is a set D with a binary operator ⊙ that is associative and has an identity
element.
approximate_commutative_monoid
View sourceapproximate_commutative_monoid(D, ⊙, ≈)An approximate commutative monoid is an approximate monoid where the operator ⊙ is
approximately commutative.
commutative_monoid
View sourcecommutative_monoid(D, ⊙)A commutative monoid is a monoid where the operator ⊙ is commutative.
approximate_group
View sourceapproximate_group(D, ⊙, N, ≈)An approximate group is an approximate monoid where the operator ⊙ has approximate
inverses defined by N.
approximate_abelian_group
View sourceapproximate_abelian_group(D, ⊙, N, ≈)An approximate abelian group is an approximate commutative monoid where the operator ⊙
has approximate inverses defined by N.
abelian_group
View sourceabelian_group(D, ⊙, N)An abelian group is a commutative monoid where the operator ⊙ has inverses defined by N.
approximate_semiring
View sourceapproximate_semiring(D, ⊕, ⊙, ≈)An approximate semiring is a set D with two operators, ⊕ and ⊙, where ⊕ forms an
approximate commutative monoid, ⊙ forms an approximate monoid and has an approximate zero,
⊙ distributes over ⊕, and the identity of ⊕ is approximately equal to the zero of ⊙.
semiring
View sourcesemiring(D, ⊕, ⊙)A semiring is an approximate semiring with equality defined as =.
approximate_ring
View sourceapproximate_ring(D, ⊕, N, ⊙, ≈)An approximate ring is an approximate semiring where the ⊕ operator has inverses defined
by N.