package jscl.math.operator;
import jscl.math.Generic;
import jscl.math.Variable;
/**
* User: serso
* Date: 11/2/11
* Time: 11:07 AM
*/
abstract class PostfixFunction extends Operator {
PostfixFunction(String name, Generic[] parameter) {
super(name, parameter);
}
public String toString() {
return formatParameter(0) + getName();
}
public final Generic numeric() {
final AbstractFunction result = (AbstractFunction) newInstance();
for (int i = 0; i < parameters.length; i++) {
result.parameters[i] = parameters[i].numeric();
}
return result.selfNumeric();
}
public abstract Generic selfNumeric();
public boolean isConstant(Variable variable) {
boolean result = !isIdentity(variable);
if (result) {
for (Generic parameter : parameters) {
if (!parameter.isConstant(variable)) {
result = false;
break;
}
}
}
return result;
}
}