private void printMultivector(String name, Multivector mv) { for (int bladeIndex = 0; bladeIndex < mv.entries.length; bladeIndex++) if (Math.abs(mv.entries[bladeIndex]) > EPSILON) System.out.println(name + "(" + bladeIndex + ") = "+mv.entries[bladeIndex]+" // "+graph.getAlgebraDefinitionFile().getBladeString(bladeIndex)); }
int bladeCount = node.getGraph().getAlgebraDefinitionFile().getBladeCount(); for (int i = 0; i < bladeCount; ++i) { if (!var.contains(i)) { Expression blade = node.getGraph().getAlgebraDefinitionFile().getBladeExpression(i);
/** * Loads an internal algebra with a given dimension * @param dimension The dimension * @param useTable Should the tables be used? * @return The usealgebra */ private static UseAlgebra loadInternalAlgebra(int dimension, boolean useTable) { try { AlgebraDefinitionFile alFile = new AlgebraDefinitionFile(); String baseDirPath = "algebra/"+dimension+"d/"; alFile.loadFromFile(AlStrategy.class.getResourceAsStream(baseDirPath+"definition.csv")); alFile.setProductsFilePath(baseDirPath+"products.csv"); alFile.setUseAsRessource(true); alFile.setUsePrecalculatedTable(useTable); TCBlade[] blades = BladeArrayRoutines.createBlades(Arrays.copyOfRange(alFile.base,1,alFile.base.length)); alFile.blades = new Expression[blades.length]; for (int i = 0; i < blades.length; i++) { alFile.blades[i] = blades[i].toExpression(); } return new UseAlgebra(alFile); } catch (IOException ex) { Logger.getLogger(UseAlgebra.class.getName()).log(Level.SEVERE, null, ex); } return null; }
System.exit(3); AlgebraDefinitionFile alFile = new AlgebraDefinitionFile(); FileInputStream inputStream = new FileInputStream(definitionFile); alFile.loadFromFile(inputStream); inputStream.close(); IMultTable inner = new MultTableAbsDirectComputer(alFile, new InnerProductCalculator());
@Override public void visit(StartNode startNode) { CluCalcFileHeader header = CluCalcFileHeader.get(startNode); if (header != null) { if (header.getNullSpace() != null) { switch (header.getNullSpace()) { case IPNS: code.append(":IPNS;\n"); break; case OPNS: code.append(":OPNS;\n"); break; } } code.append("\n"); } // TODO add "Generated by" header etc. // Generate the local variables for all local variables for (Variable localVariable : startNode.getGraph().getLocalVariables()) { code.append(localVariable.getName() + codeSuffix); code.append(" = List("); code.append(startNode.getGraph().getAlgebraDefinitionFile().getBladeCount()); code.append(");\n"); } code.append("\n"); startNode.getSuccessor().accept(this); }
ProductComputer productComputer = new ProductComputer(); InputStream inputStream = AlStrategy.class.getResourceAsStream("algebra/"+dimension+"d/definition.csv"); AlgebraDefinitionFile alFile = new AlgebraDefinitionFile(); alFile.loadFromFile(inputStream); AlgebraPC algebraPC = new AlgebraPC(alFile); productComputer.initialize(algebraPC);
@Override public void visit(StartNode node) { graph = node.getGraph(); int bladeCount = graph.getAlgebraDefinitionFile().getBladeCount();
alFile.setUsePrecalculatedTable(plugin.usePrecalulatedTables); alFile.setUseAsRessource(graph.asRessource); alFile.setProductsFilePath(baseDir+"products.csv"); alFile.loadFromFile(inputStream);
code.append(component.getName()); code.append(' '); String bladeStr = graph.getAlgebraDefinitionFile().getBladeString(component.getBladeIndex()); bladeStr = bladeStr.replaceAll("\\(", "").replaceAll("\\)", "").replaceAll(" ", ""); code.append(bladeStr);
@Override public void visit(AssignmentNode node) { String variable = node.getVariable().getName(); if (assigned.contains(variable)) { String message = "Variable " + variable + " has been reset for reuse."; log.warn(message); Notifications.addWarning(message); code.append("\n"); appendIndentation(); code.append("memset("); code.append(variable); code.append(", 0, sizeof("); code.append(variable); code.append(")); // Reset variable for reuse.\n"); assigned.remove(variable); } appendIndentation(); node.getVariable().accept(this); code.append(" = "); node.getValue().accept(this); code.append(";"); if (node.getVariable() instanceof MultivectorComponent) { code.append(" // "); MultivectorComponent component = (MultivectorComponent) node.getVariable(); code.append(node.getGraph().getAlgebraDefinitionFile().getBladeString(component.getBladeIndex())); } code.append('\n'); node.getSuccessor().accept(this); }
code.append(assignmentNode.getGraph().getAlgebraDefinitionFile().getBladeString(component.getBladeIndex()));
@Override public void visit(AssignmentNode node) { appendIndentation(); declaredLocal.add(getVarName(node.getVariable())); node.getVariable().accept(this); append(" = "); node.getValue().accept(this); if (node.getVariable() instanceof MultivectorComponent) { append(';'); append(" // "); MultivectorComponent component = (MultivectorComponent) node.getVariable(); append(node.getGraph().getAlgebraDefinitionFile().getBladeString(component.getBladeIndex())); } append(";\n"); node.getSuccessor().accept(this); }