Package de.tilman_neumann.jml.partitions
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<=indexMpi
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<=indexMpi[]
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
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
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
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
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 interfacejava.lang.Comparable<Mpi>
-