package de.gaalop.gapp.instructionSet;
import de.gaalop.gapp.variables.GAPPMultivector;
import de.gaalop.gapp.variables.GAPPMultivectorComponent;
import de.gaalop.gapp.visitor.GAPPVisitor;
/**
* Performs calculations on multivectors and results in a mutlivector component
* @author Christian Steinmetz
*/
public class GAPPCalculateMvCoeff extends GAPPBaseInstruction {
private CalculationType type;
private GAPPMultivectorComponent destination;
private GAPPMultivector operand1;
private GAPPMultivector operand2;
public GAPPCalculateMvCoeff(CalculationType type, GAPPMultivectorComponent destination, GAPPMultivector operand1, GAPPMultivector operand2) {
this.type = type;
this.destination = destination;
this.operand1 = operand1;
this.operand2 = operand2;
}
@Override
public Object accept(GAPPVisitor visitor, Object arg) {
return visitor.visitCalculateMvCoeff(this, arg);
}
public GAPPMultivector getOperand1() {
return operand1;
}
public GAPPMultivector getOperand2() {
return operand2;
}
public CalculationType getType() {
return type;
}
public GAPPMultivectorComponent getDestination() {
return destination;
}
public void setOperand1(GAPPMultivector operand1) {
this.operand1 = operand1;
}
public void setOperand2(GAPPMultivector operand2) {
this.operand2 = operand2;
}
public void setType(CalculationType type) {
this.type = type;
}
public void setDestination(GAPPMultivectorComponent destination) {
this.destination = destination;
}
}