@Override public Object visitCalculateMv(GAPPCalculateMv gappCalculateMv, Object arg) { return new GAPPCalculateMv(gappCalculateMv.getType(), (GAPPMultivector) GAPPValueHolderCopier.copyValueHolder(gappCalculateMv.getDestination()), (GAPPMultivector) GAPPValueHolderCopier.copyValueHolder(gappCalculateMv.getOperand1()), (GAPPMultivector) GAPPValueHolderCopier.copyValueHolder(gappCalculateMv.getOperand2())); }
@Override public Object visitCalculateMv(GAPPCalculateMv gappCalculateMv, Object arg) { curLine++; access(gappCalculateMv.getDestination()); access(gappCalculateMv.getOperand1()); if (gappCalculateMv.getOperand2() != null) { access(gappCalculateMv.getOperand2()); } return null; }
@Override public Object visitCalculateMvCoeff(GAPPCalculateMvCoeff gappCalculateMvCoeff, Object arg) { return new GAPPCalculateMv(gappCalculateMvCoeff.getType(), (GAPPMultivector) GAPPValueHolderCopier.copyValueHolder(gappCalculateMvCoeff.getDestination()), (GAPPMultivector) GAPPValueHolderCopier.copyValueHolder(gappCalculateMvCoeff.getOperand1()), (GAPPMultivector) GAPPValueHolderCopier.copyValueHolder(gappCalculateMvCoeff.getOperand2())); }
@Override public Object visitCalculateMv(GAPPCalculateMv gappCalculateMv, Object arg) { multivectors.add(gappCalculateMv.getDestination().getName()); return null; }
public GAPPBaseInstruction createBaseInstruction(String cmd) { InstructionType instr = InstructionType.valueOf(cmd); switch (instr) { case assignMv: return new GAPPAssignMv(null); case assignInputsVector: return new GAPPAssignInputsVector(null); case calculateMv: return new GAPPCalculateMv(null, null, null, null); case dotVectors: GAPPMultivector m = null; return new GAPPDotVectors(m, null, null); case resetMv: return new GAPPResetMv(null, 0); case setMv: return new GAPPSetMv(null, null, null, null); case setVector: return new GAPPSetVector(null, null); } return null; }
@Override public Object visitCalculateMv(GAPPCalculateMv gappCalculateMv, Object arg) { result.append("calculateMv "); printMultivector(gappCalculateMv.getDestination()); result.append(" = "); result.append(gappCalculateMv.getType().toString()); result.append("("); printMultivector(gappCalculateMv.getOperand1()); if (gappCalculateMv.getOperand2() != null) { result.append(","); printMultivector(gappCalculateMv.getOperand2()); } result.append(");\n"); return null; }
gapp.addInstruction(new GAPPCalculateMv(extCalculation.getType(), new GAPPMultivector(variable.getName()), new GAPPMultivector(((ParVariable) extCalculation.getOperand1()).getName()),
@Override public Object visitCalculateMv(GAPPCalculateMv gappCalculate, Object arg) { MultivectorWithValues mv1 = getMultivector(gappCalculate.getOperand1().getName()); double op1 = mv1.getEntry(0); if (gappCalculate.getOperand2() != null) { mv2 = getMultivector(gappCalculate.getOperand2().getName()); op2 = mv2.getEntry(0); MultivectorWithValues target = getMultivector(gappCalculate.getDestination().getName()); switch (gappCalculate.getType()) { case ABS: result = Math.abs(op1); break; default: throw new UnsupportedOperationException("Executer: " + gappCalculate.getType() + " is not supported yet.");