Interface Mpi

All Superinterfaces:
java.lang.Comparable<Mpi>, java.lang.Iterable<java.lang.Integer>
All Known Subinterfaces:
PrimePowers
All Known Implementing Classes:
Mpi_IntegerArrayImpl, PrimePowers_DefaultImpl

public interface Mpi
extends java.lang.Comparable<Mpi>, java.lang.Iterable<java.lang.Integer>
A multipartite number like [1,3,4,2,0,1].
  • Method Summary

    Modifier and Type Method Description
    int compareTo​(Mpi other)
    Compare this with another multipartite integer.
    Mpi complement​(Mpi other)
    Like subtract() but when we know that other fits piece-wise into this.
    Mpi[] div2()
    Computes a kind of division by 2 of this.
    int firstNonZeroPartIndex()  
    int getCardinality()  
    int getDim()  
    int getElem​(int index)
    Returns the entry of the given index, with 0<=index
    Mpi maxNextPart​(Mpi firstPart, Mpi lastPart)
    Special operation computing the biggest allowed subvalue of this that is not greater than lastPart and not greater than this-firstPart.
    void setElem​(int index, int value)
    Sets the entry of the given index, with 0<=index
    Mpi[] subtract​(Mpi other)
    Returns the pair [lower, upper] of consecutive subvalues of this (according to the ordering relation) such that lower + other <= this and upper + other >= this.

    Methods inherited from interface java.lang.Iterable

    forEach, iterator, spliterator
  • Method Details

    • getDim

      int getDim()
      Returns:
      dimension of the multipartite number, it's "partiteness"
    • getCardinality

      int getCardinality()
      Returns:
      total number of entries = the sum of the elements of this multipartite number
    • getElem

      int getElem​(int index)
      Returns the entry of the given index, with 0<=index
      Parameters:
      index -
      Returns:
      entry at index 'index'
    • setElem

      void setElem​(int index, int value)
      Sets the entry of the given index, with 0<=index
      Parameters:
      index -
      value -
    • firstNonZeroPartIndex

      int firstNonZeroPartIndex()
      Returns:
      the index of the first non-zero entry
    • subtract

      Mpi[] subtract​(Mpi other)
      Returns the pair [lower, upper] of consecutive subvalues of this (according to the ordering relation) such that lower + other <= this and upper + other >= this.
      Parameters:
      other -
      Returns:
      the lower and upper bound of this - other
    • complement

      Mpi complement​(Mpi other)
      Like subtract() but when we know that other fits piece-wise into this. That means faster ;)
      Parameters:
      other - a multipartite integer that has no element greater than the corresponding element of this
      Returns:
      this - other
    • div2

      Mpi[] div2()
      Computes a kind of division by 2 of this. The result is a pair of [lower, upper] values with lower + upper = this (element-wise addition) and lower<=upper.
      Returns:
      [lower, upper]
    • maxNextPart

      Mpi maxNextPart​(Mpi firstPart, Mpi lastPart)
      Special operation computing the biggest allowed subvalue of this that is not greater than lastPart and not greater than this-firstPart.
      Parameters:
      firstPart -
      lastPart -
      Returns:
      min(lastPart, lower(this - firstPart))
    • compareTo

      int compareTo​(Mpi other)
      Compare this with another multipartite integer. The first element that differs decides, i.e. [2,0,0] is bigger than [1,2,3].
      Specified by:
      compareTo in interface java.lang.Comparable<Mpi>