de.flexiprovider.common.math.linearalgebra
Class Permutation

java.lang.Object
  |
  +--de.flexiprovider.common.math.linearalgebra.Permutation

public class Permutation
extends java.lang.Object

This class implements permutations of the set {0,1,...,n-1} for some given n > 0, i.e., ordered sequences containing each number m (0 <= m < n) once and only once.

Author:
Elena Klintsevich, Andrei Pyshkin

Constructor Summary
Permutation(byte[] enc)
          Create a permutation from an encoded permutation.
Permutation(int n)
          Create the identity permutation of the given size.
Permutation(int[] perm)
          Create a permutation using the given permutation vector.
Permutation(int n, SecureRandom sr)
          Create a random permutation of the given size.
 
Method Summary
 Permutation computeInverse()
          Compute the inverse permutation P-1.
 boolean equals(java.lang.Object other)
          checks if given object is equal to this permutation.
 byte[] getEncoded()
          Encode this permutation as byte array.
 int[] getVector()
           
 int hashCode()
           
 Permutation rightMultiply(Permutation p)
          Compute the product of this permutation and another permutation.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
, clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Permutation

public Permutation(int n)
Create the identity permutation of the given size.
Parameters:
n - the size of the permutation

Permutation

public Permutation(int[] perm)
Create a permutation using the given permutation vector.
Parameters:
perm - the permutation vector

Permutation

public Permutation(byte[] enc)
Create a permutation from an encoded permutation.
Parameters:
enc - the encoded permutation

Permutation

public Permutation(int n,
                   SecureRandom sr)
Create a random permutation of the given size.
Parameters:
n - the size of the permutation
sr - the source of randomness
Method Detail

getEncoded

public byte[] getEncoded()
Encode this permutation as byte array.
Returns:
the encoded permutation

getVector

public int[] getVector()
Returns:
the permutation vector (perm(0),perm(1),...,perm(n-1))

computeInverse

public Permutation computeInverse()
Compute the inverse permutation P-1.
Returns:
this-1

rightMultiply

public Permutation rightMultiply(Permutation p)
Compute the product of this permutation and another permutation.
Parameters:
p - the other permutation
Returns:
this * p

equals

public boolean equals(java.lang.Object other)
checks if given object is equal to this permutation.

The method returns false whenever the given object is not permutation.

Overrides:
equals in class java.lang.Object
Parameters:
other - - permutation
Returns:
true or false

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
Returns:
a human readable form of the permutation

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object
Returns:
the hash code of this permutation