OutputPort<Tensor> nextPort() { final int[] tuple = tuplesPort.take(); if (tuple == null) return null; TIntHashSet added = new TIntHashSet(initialForbidden); ProductBuilder builder = new ProductBuilder(); builder.put(base.get(tuple[0])); for (int i = 1; i < tuple.length; ++i) builder.put(ApplyIndexMapping.renameDummy(base.get(tuple[i]), added.toArray(), added)); return createPort(builder.build(), expandSymbolic); }
public Tensor toProduct() { ProductBuilder pb = new ProductBuilder(); for (int i = 0; i < gPositions.size(); i++) pb.put(pc.get(gPositions.get(i))); return pb.build(); }
ProductBuilder pb = new ProductBuilder(baseFactors.size(), baseFactors.size()); for (FactorNode node : baseFactors) { pb.put(node.toTensor()); node.minExponent.value = node.exponent;
return; for (Tensor t : p.indexlessData) put(t); elements.addAll(Arrays.asList(p.data));
@Override public Tensor take() { if (currentBuilder == null) return null; if (sumsAndPowers.length == 0) { currentBuilder = null; return tensor; } Tensor t = sumsAndPowers[sumsAndPowers.length - 1].take(); if (t == null) { currentBuilder = nextCombination(); sumsAndPowers[sumsAndPowers.length - 1].reset(); return take(); } ProductBuilder temp = currentBuilder.clone(); temp.put(t); return temp.build(); } }
if (rule.useDeltaFunction) { ProductBuilder pb = new ProductBuilder(); pb.put(differentiateSimpleTensor((SimpleTensor) tensor, rule, transformations)); for (int i = 0; i < varF.size(); i++) pb.put(createDiracDelta(field.get(i), varF.get(i))); return pb.build(); } else if (anyMappingExists(varF, field) || anyMappingExists(field, varF))
if (denominatorIndicator.is(t)) { exponent = Tensors.negate(t.get(1)); denominators.put(Tensors.pow(t.get(0), exponent)); if (temp instanceof Product) temp = ((Product) temp).remove(i);
calculatedTraces.put(traceOfProduct(product.select(partition))); positionsOfMatrices.addAll(partition);
ProductBuilder builder = new ProductBuilder(0, length); for (i = 0; i < length; ++i) builder.put(createMetricOrKronecker(allFreeArgIndices[i], allFreeVarIndices[i])); derivative = new SubstitutionTransformation(symmetric, builder.build()).transform(derivative); this.derivative = derivative;
++pivot; else dataRemainder.put(currentData[i]);