From 6cb1c29a8076f22415ef448bd114dfec9b37e00e Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Sat, 24 Feb 2018 18:32:38 +0100 Subject: Cleanup and more type inference - Use a type context in TensorTransformer - Correct Join.outputType - Understand tensorFromLabels and tensorFromWeightedSet - Don't wrap simple tensor arguments in constant() --- .../main/java/com/yahoo/tensor/functions/Join.java | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) (limited to 'vespajlib/src/main/java/com/yahoo/tensor/functions/Join.java') diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/Join.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/Join.java index 50b0e706a43..54568401adb 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/functions/Join.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/Join.java @@ -48,28 +48,8 @@ public class Join extends PrimitiveTensorFunction { } /** Returns the type resulting from applying Join to the two given types */ - // TODO: Replace implementation by new TensorType.Builder(a.type(), b.type()).build(); public static TensorType outputType(TensorType a, TensorType b) { - TensorType.Builder typeBuilder = new TensorType.Builder(); - for (int i = 0; i < a.dimensions().size(); ++i) { - TensorType.Dimension aDim = a.dimensions().get(i); - for (int j = 0; j < b.dimensions().size(); ++j) { - TensorType.Dimension bDim = b.dimensions().get(j); - if (aDim.name().equals(bDim.name())) { // include - if (aDim.isIndexed() && bDim.isIndexed()) { - if (aDim.size().isPresent() || bDim.size().isPresent()) - typeBuilder.indexed(aDim.name(), Math.min(aDim.size().orElse(Long.MAX_VALUE), - bDim.size().orElse(Long.MAX_VALUE))); - else - typeBuilder.indexed(aDim.name()); - } - else { - typeBuilder.mapped(aDim.name()); - } - } - } - } - return typeBuilder.build(); + return new TensorType.Builder(a, b).build(); } public DoubleBinaryOperator combinator() { return combinator; } -- cgit v1.2.3