/** *

* Interface to wrap optimization helpers for proximity graph functions * (see IProxGraph). Examples might include some sort of octree * of the nodes and edges of the communication graph at the last evaluation * point. Interface class contains no functions, other then createClone() * and checkValidity(). * Proximity graph functions will have to cast to the appropriate subclass * and then check for null. Proximity graph functions which use optimization * helpers should be able to function (albeit more slowly) without * the use of optimization helpers, or by creating their own instance in * the event that a valid one is not passed in. *

* @author Michael Schuresko * @version %I%, %G% * @since 1.0 * @see IProxGraph */ public interface IProxGraphOptWrapper { /** * @return copy of myself cast to interface class. */ public IProxGraphOptWrapper createClone(); /** * Test function, check whether a vector of positions matches this * set of optimization hints. Extremely important for ensuring correct * behavior. Intent is that this check is done in O(n) time, * while unoptimized proximity graph calculation would take O(n^2) time * or O(log(n)) time. I.E. if we're given an octree, check whether * the points supplied match the octree. * @param nDim dimensionality of individual points * @param arrPoints position vector we are testing against * @return boolean value indicating whether these optimization hints * correspond to the position vector supplied */ public boolean checkValidity(int nDim, double arrPoints[]); }