JaCoP.constraints.geost
Class PredefinedOrder

java.lang.Object
  extended by JaCoP.constraints.geost.PredefinedOrder
All Implemented Interfaces:
LexicographicalOrder

public class PredefinedOrder
extends java.lang.Object
implements LexicographicalOrder

Author:
Marc-Olivier Fleury and Radoslaw Szymanek It provides a very simple lexicographical order based on the dimension ordering, with the possibility to choose the most significant dimension

Constructor Summary
PredefinedOrder(int[] ordering, int mostSignificantDimension)
          It specifies the comparison of k-dimensional point comparator based on the dimension ordering and the most significant dimension.
 
Method Summary
 java.lang.String checkInvariants()
          It checks the invariants for this order.
 int compare(int[] p1, int[] p2)
          It compares two k-dimensional points.
 int dimensionAt(int precedenceLevel)
          It provides the dimension corresponding to the given precedence level
 int getMostSignificantDimension()
          This is equivalent to the call precedenceOf(0).
 int[] masterOrdering()
          It returns the ordering of dimensions used when no shift is applied (i.e.
 int precedenceOf(int dimension)
          It provides the precedence level of the given dimension.
 void setMostSignificantDimension(int d)
          It shifts the lexicographical order so that the most significant dimension is set to d.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PredefinedOrder

public PredefinedOrder(int[] ordering,
                       int mostSignificantDimension)
It specifies the comparison of k-dimensional point comparator based on the dimension ordering and the most significant dimension.

Parameters:
ordering - how dimensions are stored within each compared point.
mostSignificantDimension -
Method Detail

checkInvariants

public java.lang.String checkInvariants()
It checks the invariants for this order.

Returns:
it returns string describing the violated invariant, or null if everything is in order.

compare

public int compare(int[] p1,
                   int[] p2)
Description copied from interface: LexicographicalOrder
It compares two k-dimensional points.

Specified by:
compare in interface LexicographicalOrder
Returns:
comparison result: a negative value if p1 is smaller than p2, 0 if p1 is equal to p2, and a positive value if p1 is larger than p2.

dimensionAt

public int dimensionAt(int precedenceLevel)
Description copied from interface: LexicographicalOrder
It provides the dimension corresponding to the given precedence level

Specified by:
dimensionAt in interface LexicographicalOrder
Returns:
an integer value of the dimension.

precedenceOf

public int precedenceOf(int dimension)
Description copied from interface: LexicographicalOrder
It provides the precedence level of the given dimension. 0 is the most significant.

Specified by:
precedenceOf in interface LexicographicalOrder
Returns:
integer value of the precedence level.

setMostSignificantDimension

public void setMostSignificantDimension(int d)
Description copied from interface: LexicographicalOrder
It shifts the lexicographical order so that the most significant dimension is set to d.

Specified by:
setMostSignificantDimension in interface LexicographicalOrder
Parameters:
d - the dimension to be considered most significant

getMostSignificantDimension

public int getMostSignificantDimension()
Description copied from interface: LexicographicalOrder
This is equivalent to the call precedenceOf(0).

Specified by:
getMostSignificantDimension in interface LexicographicalOrder
Returns:
the most significant dimension

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

masterOrdering

public int[] masterOrdering()
Description copied from interface: LexicographicalOrder
It returns the ordering of dimensions used when no shift is applied (i.e. when the most significant dimension is not changed)

Specified by:
masterOrdering in interface LexicographicalOrder
Returns:
the ordering of dimensions without a shift.