@Override public String newName(String oldName, NameAndStructureOfIndices old) { switch (oldName) { case unitaryMatrixName: return unitaryMatrix.getStringName(); case structureConstantName: return structureConstant.getStringName(); case symmetricConstantName: return symmetricConstant.getStringName(); case dimensionName: if (!(dimension instanceof Complex)) return dimension.toString(OutputFormat.Redberry); default: return oldName; } } });
@Override public String newName(String oldName, NameAndStructureOfIndices old) { switch (oldName) { case unitaryMatrixName: return unitaryMatrix.getStringName(); case structureConstantName: return structureConstant.getStringName(); case symmetricConstantName: return symmetricConstant.getStringName(); case dimensionName: if (!(dimension instanceof Complex)) return dimension.toString(OutputFormat.Redberry); default: return oldName; } } });
@Override public String newName(String oldName, NameAndStructureOfIndices oldDescriptor) { switch (oldName) { case gammaMatrixStringName: return gammaMatrix.getStringName(); case gamma5StringName: if (gamma5 == null) throw new IllegalArgumentException("Gamma5 is not specified."); return gamma5.getStringName(); case leviCivitaStringName: if (leviCivita == null) throw new IllegalArgumentException("Levi-Civita is not specified."); return leviCivita.getStringName(); default: return oldDescriptor.getName(); } } });
@Override public int compareTo(Gamma o) { if (contracted() && o.contracted()) return ((SimpleTensor) contraction).getStringName().compareTo((((SimpleTensor) o.contraction)).getStringName()); else if (contracted() && !o.contracted()) return -1; else if (o.contracted() && !contracted()) return 1; else return Integer.compare(getNameWithoutType(index), getNameWithoutType(o.index)); } }
public static ParseToken tensor2AST(Tensor tensor) { if (tensor instanceof TensorField) { TensorField tf = (TensorField) tensor; ParseToken[] content = new ParseToken[tf.size()]; int i = 0; for (Tensor t : tf) content[i++] = tensor2AST(t); return new ParseTokenTensorField(tf.getIndices(), tf.getStringName(), content, tf.getArgIndices()); } if (tensor instanceof SimpleTensor) { SimpleTensor st = (SimpleTensor) tensor; return new ParseTokenSimpleTensor(st.getIndices(), st.getStringName()); } if (tensor instanceof Complex) return new ParseTokenNumber((Complex) tensor); if (tensor instanceof Expression) return new ParseTokenExpression(false, tensor2AST(tensor.get(0)), tensor2AST(tensor.get(1))); ParseToken[] content = new ParseToken[tensor.size()]; int i = 0; for (Tensor t : tensor) content[i++] = tensor2AST(t); if (tensor instanceof ScalarFunction) return new ParseTokenScalarFunction(tensor.getClass().getSimpleName(), content); return new ParseToken(TokenType.valueOf(tensor.getClass().getSimpleName()), content); }
public SchoutenIdentities4(SimpleTensor leviCivita) { this.leviCivita = leviCivita; ChangeIndicesTypesAndTensorNames tokenTransformer = new ChangeIndicesTypesAndTensorNames(TypesAndNamesTransformer.Utils.and( TypesAndNamesTransformer.Utils.changeName(new String[]{"e"}, new String[]{leviCivita.getStringName()}), TypesAndNamesTransformer.Utils.changeType(IndexType.LatinLower, IndicesUtils.getTypeEnum(leviCivita.getIndices().get(0))))); this.schouten1 = new Tensor[schoutenCombinations1.length]; for (int i = 0; i < schouten1.length; i++) schouten1[i] = tokenTransformer.transform(CC.current().getParseManager().getParser().parse(schoutenCombinations1[i])).toTensor(); this.schouten2 = new Tensor[schoutenCombinations2.length]; for (int i = 0; i < schouten2.length; i++) schouten2[i] = tokenTransformer.transform(CC.current().getParseManager().getParser().parse(schoutenCombinations2[i])).toTensor(); this.schouten3 = new Tensor[schoutenCombinations3.length]; for (int i = 0; i < schouten3.length; i++) schouten3[i] = tokenTransformer.transform(CC.current().getParseManager().getParser().parse(schoutenCombinations3[i])).toTensor(); allSchouten = new Tensor[][]{schouten1, schouten2, schouten3}; }