package aima.core.probability.domain;
/**
* Artificial Intelligence A Modern Approach (3rd Edition): page 486.<br>
* <br>
* Every random variable has a <b>domain</b> - the set of possible values it can
* take on. The domain of <i>Total</i> for two dice is the set {2,...,12} and
* the domain of Die<sub>1</sub> is {1,...,6}. A Boolean random variable has the
* domain {true, false}.
*
* @author Ciaran O'Reilly
*/
public interface Domain {
/**
*
* @return true if the Domain is finite, false otherwise (i.e. discrete
* (like the integers) or continuous (like the reals)).
*/
boolean isFinite();
/**
*
* @return !isFinite().
*/
boolean isInfinite();
/**
*
* @return the size of the Domain, only applicable if isFinite() == true.
*/
int size();
/**
*
* @return true if the domain is ordered, false otherwise. i.e. you can
* specify 1 object from the domain is < or = another object in the
* domain.
*/
boolean isOrdered();
}