AbstractFunction.java
/**
*
*/
package dev.civl.mc.model.IF;
/**
* An abstract function is an uninterpreted mathematical function. It is used in
* assumptions and assertions to relate values in code to the actual
* mathematical functions they represent.
*
* @author zirkel
*
*/
public interface AbstractFunction extends CIVLFunction {
/**
* @return The total number of partial derivatives that may be taken.
*/
int continuity();
/**
* The kind of a special relation represented by this abstract function
*
* @author ziqingluo
*
*/
public static enum SpecialRelationKind {
/**
* this abstract function is not representing a special relation
*/
NONE,
/**
* this abstract function represents a partial order binary relation
*/
PARTIAL_ORDER,
/**
* this abstract function represents a tree order binary relation
*/
TREE_ORDER,
/**
* this abstract function represents a linear order binary relation
*/
LINEAR_ORDER,
/**
* this abstract function represents a piecewise linear order binary
* relation
*/
PIECEWISE_LINEAR_ORDER
}
/**
* @return {@link SpecialRelationKind} of a special relation (or NONE)
* represented by this abstract function
*/
SpecialRelationKind getAttribute();
}