@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 visitCalculateMvCoeff(GAPPCalculateMvCoeff gappCalculateMvCoeff, Object arg) { curLine++; access(new GAPPMultivector(gappCalculateMvCoeff.getDestination().getName())); access(gappCalculateMvCoeff.getOperand1()); if (gappCalculateMvCoeff.getOperand2() != null) { access(gappCalculateMvCoeff.getOperand2()); } return null; }
@Override public Object visitCalculateMvCoeff(GAPPCalculateMvCoeff gappCalculateMvCoeff, Object arg) { multivectors.add(gappCalculateMvCoeff.getDestination().getName()); return null; }
gapp.addInstruction(new GAPPCalculateMvCoeff(extCalculation.getType(), destination, createMultivectorFromParallelObjectTerminal(extCalculation.getOperand1()),
@Override public Object visitCalculateMvCoeff(GAPPCalculateMvCoeff gappCalculateMvCoeff, Object arg) { incrementSize(GAPPOpenCLCodeGenerator.getVarName(gappCalculateMvCoeff.getDestination().getName()),1); return null; }
@Override public Object visitCalculateMvCoeff(GAPPCalculateMvCoeff gappCalculateMvCoeff, Object arg) { result.append("calculateMvCoeff "); result.append(gappCalculateMvCoeff.getDestination().getName()); result.append("["); result.append(Integer.toString(gappCalculateMvCoeff.getDestination().getBladeIndex())); result.append("]"); result.append(" = "); result.append(gappCalculateMvCoeff.getType().toString()); result.append("("); printMultivector(gappCalculateMvCoeff.getOperand1()); if (gappCalculateMvCoeff.getOperand2() != null) { result.append(","); printMultivector(gappCalculateMvCoeff.getOperand2()); } result.append(");\n"); return null; }
@Override public Object visitCalculateMvCoeff(GAPPCalculateMvCoeff gappCalculateMvCoeff, Object arg) { final String destMv = GAPPOpenCLCodeGenerator.getVarName(gappCalculateMvCoeff.getDestination().getName()); final Integer thisMvSetCount = mvBladeMap.get(destMv).size(); final String bladeCoeff = getBladeCoeff(destMv,thisMvSetCount); result.append(bladeCoeff); result.append(" = "); visitCalculateOp(gappCalculateMvCoeff.getType(), GAPPOpenCLCodeGenerator.getVarName(gappCalculateMvCoeff.getOperand1().getName()), GAPPOpenCLCodeGenerator.getVarName(gappCalculateMvCoeff.getOperand2().getName())); result.append(";\n"); mvBladeMap.get(destMv).put(gappCalculateMvCoeff.getDestination().getBladeIndex(),bladeCoeff); return null; }
@Override public Object visitCalculateMvCoeff(GAPPCalculateMvCoeff gappCalculateCoeff, Object arg) { MultivectorWithValues mv1 = getMultivector(gappCalculateCoeff.getOperand1().getName()); double op1 = mv1.getEntry(0); if (gappCalculateCoeff.getOperand2() != null) { mv2 = getMultivector(gappCalculateCoeff.getOperand2().getName()); op2 = mv2.getEntry(0); MultivectorWithValues target = getMultivector(gappCalculateCoeff.getDestination().getName()); switch (gappCalculateCoeff.getType()) { case ABS: result = Math.abs(op1); break; default: throw new UnsupportedOperationException("Executer: " + gappCalculateCoeff.getType() + " is not supported yet."); target.setEntry(gappCalculateCoeff.getDestination().getBladeIndex(), result);