Interface Monoid<E>

Type Parameters:
E - Element type.
All Superinterfaces:
Semigroup<E>, Set<E>
All Known Subinterfaces:
EuclideanDomain<E>, Field<E>, Group<E>, Ring<E>, SemiRing<E>
All Known Implementing Classes:
AlgebraicFieldExtension, BigElements, BigFiniteField, BigIntegers, BigIntegersModuloN, BigPrimeField, BigRationals, ClassGroup, ComplexNumbers, ConstructiveReals, FieldOfFractions, FiniteField, GaussianRationals, GeneralLinearGroup, Integers, IntegersModuloN, MatrixRing, MultivariatePolynomialRing, MultivariatePolynomialRingOverRing, NullSafeRing, PerformanceLoggingField, PerformanceLoggingRing, PolynomialRing, PolynomialRingFFT, PolynomialRingKaratsuba, PolynomialRingOverRing, PrimeField, QuadraticField, QuotientRing, Rationals, RealNumbers, SymmetricGroup, TestUtils.TestBigIntegers, TestUtils.TestField, TestUtils.TestIntegers

public interface Monoid<E> extends Semigroup<E>
A monoid is a set with an associative operation.
  • Method Summary

    Modifier and Type
    Method
    Description
    Return the identity element of this monoid.
    default boolean
     
    default E
    power(E x, int e)
    Return xe

    Methods inherited from interface dk.jonaslindstrom.ruffini.common.abstractions.Semigroup

    multiply, multiply, multiply

    Methods inherited from interface dk.jonaslindstrom.ruffini.common.abstractions.Set

    equals, toString
  • Method Details

    • identity

      E identity()
      Return the identity element of this monoid.
    • isIdentity

      default boolean isIdentity(E a)
    • power

      default E power(E x, int e)
      Return xe