/** * Copies a variableset * @param var The variableset to be copied * @return The copy */ private Variableset copyVariableset(Variableset var) { Variableset copy = new Variableset(); for (GAPPValueHolder cur : var) { copy.add(GAPPValueHolderCopier.copyValueHolder(cur)); } return copy; }
@Override public Object visitAssignInputsVector(GAPPAssignInputsVector gappAssignInputsVector, Object arg) { int size = gappAssignInputsVector.getValues().size(); String name = "inputsVector"; createVector(name, size); MultivectorWithValues destination = getMultivector(name); for (int sel = 0; sel < size; sel++) { GAPPValueHolder scalarVar = gappAssignInputsVector.getValues().get(sel); double value = (scalarVar.isVariable()) ? getVariableValue(((GAPPVariable) scalarVar).getName()) : ((GAPPConstant) scalarVar).getValue(); destination.getEntries()[sel] = value; } return null; }
@Override public Object visitAssignInputsVector(GAPPAssignInputsVector gappAssignInputsVector, Object arg) { final String inputsArrayName = GAPPOpenCLCodeGenerator.getVarName(GAPPOpenCLCodeGenerator.inputsVector); // create bladeIndex map Map<Integer,String> bladeMap = new HashMap<Integer,String>(); Iterator<GAPPValueHolder> it = gappAssignInputsVector.getValues().iterator(); while(it.hasNext()) { // instead of explicitly declaring the inputs vector // just put the elements into the bladeIndex map bladeMap.put(bladeMap.size(), it.next().prettyPrint()); } // add bladeIndex map to multivector->bladeIndex map mvBladeMap.put(inputsArrayName,bladeMap); return null; } }
Variableset varSet = new Variableset(); int slotNo = 0; for (Variable var : toDo) { varSet.add(new GAPPScalarVariable(var.getName())); map.put(var, new MultivectorComponent(inputsMv.getName(), slotNo)); slotNo++;