/** * This is an interface that specifies the operations (methods) that arithmetic * expressions must be able to perform. * * @author Scot Drysdale */ public interface Expression { /** * Evaluates this expression. * @return the value of this Expression */ abstract public double eval(); /** * Take the derivative of this expression * @param v the variable with respect to which the derivative is taken * @return the derivative of this Expression with respect to the variable v */ abstract public Expression deriv(String v); }