package it.enricod.joy.operators;
import org.apache.commons.math.FieldElement;
import it.enricod.joy.IStack;
import it.enricod.joy.IStackNode;
import it.enricod.joy.JoyFactory;
import it.enricod.joy.StackNodeType;
public class DivideOp extends AbstractBaseOperator implements IOperator {
@Override
public IStack execute(IStack stack) throws OperatorException {
IStackNode n0 = stack.getElementAt(0);
IStackNode n1 = stack.getElementAt(1);
if (n0.getType() == StackNodeType.FIELD_ELEMENT && n1.getType() == StackNodeType.FIELD_ELEMENT) {
FieldElement resultElement = (FieldElement) n0.getElement().divide(n1.getElement());
stack.pop();
stack.pop();
stack.push(JoyFactory.createNode(resultElement));
}
return stack;
}
}