package fr.unistra.pelican.util.qfz;
public abstract class MultivariateAlphaLogicalPredicate {
protected int decreaseStep=1;
protected boolean finalAlpha;
protected MultivariateAlphaLogicalPredicate()
{
finalAlpha=false;
}
protected abstract boolean _check(int[] values1, int[] values2);
public abstract double getDistance(int[] values1, int[] values2);
public abstract void decreaseCurrentAlpha();
public abstract boolean isCurrentAlphaZero();
public abstract void resetCurrentAlpha();
public abstract void predicateViolationUpdate();
public abstract void predicateValidationUpdate();
/**
* Method which checks the predicate
*/
public final boolean check(int[] values1, int[] values2)
{
return _check(values1, values2);
}
/**
* Method which checks if the dichotomic alpha search is complete
*/
public final boolean isFinalAlpha()
{
return finalAlpha;
}
// public final int getCurrentAlpha()
// {
// return currentAlpha[0];
// }
//
// public final int[] getCurrentAlphaVector()
// {
// return currentAlpha;
// }
public final void setDecreaseStep(int decreaseStep)
{
this.decreaseStep=decreaseStep;
}
}