diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-10-27 09:59:51 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-10-27 09:59:51 +0200 |
commit | bcb6b8dc4b68657c3474f4f878e8f8f7409469c9 (patch) | |
tree | c40ce3d76e995b0101b98987535bf5402d28f8b2 /vespajlib/src/main | |
parent | 69e4b41cd83b8cd3f0a12a41f15691e8acf7ff87 (diff) |
Working translation
Diffstat (limited to 'vespajlib/src/main')
8 files changed, 60 insertions, 2 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/CompositeTensorFunction.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/CompositeTensorFunction.java index fa4a70d264a..23cdc0e6051 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/functions/CompositeTensorFunction.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/CompositeTensorFunction.java @@ -6,6 +6,6 @@ package com.yahoo.tensor.functions; * * @author bratseth */ -public abstract class CompositeTensorFunction { +public abstract class CompositeTensorFunction extends TensorFunction { } diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/Constant.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/Constant.java new file mode 100644 index 00000000000..113247be3bb --- /dev/null +++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/Constant.java @@ -0,0 +1,24 @@ +package com.yahoo.tensor.functions; + +import com.yahoo.tensor.MapTensor; + +/** + * A function which returns a constant tensor. + * + * @author bratseth + */ +public class Constant extends PrimitiveTensorFunction { + + private final MapTensor constant; + + public Constant(String tensorString) { + this.constant = MapTensor.from(tensorString); + } + + @Override + public PrimitiveTensorFunction toPrimitive() { return this; } + + @Override + public String toString() { return constant.toString(); } + +} 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 421ea631ee3..4d945963fdf 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/functions/Join.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/Join.java @@ -26,5 +26,10 @@ public class Join extends PrimitiveTensorFunction { public PrimitiveTensorFunction toPrimitive() { return new Join(argumentA.toPrimitive(), argumentB.toPrimitive(), combinator); } + + @Override + public String toString() { + return "join(" + argumentA.toString() + ", " + argumentB.toString() + ", lambda(a, b) (...))"; + } } diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/Map.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/Map.java index cb0615693ae..22dd08504d7 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/functions/Map.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/Map.java @@ -26,4 +26,9 @@ public class Map extends PrimitiveTensorFunction { return new Map(argument.toPrimitive(), mapper); } + @Override + public String toString() { + return "map(" + argument.toString() + ", lambda(a) (...))"; + } + } diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/PrimitiveTensorFunction.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/PrimitiveTensorFunction.java index 1c41990af23..9c0c9abaeb7 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/functions/PrimitiveTensorFunction.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/PrimitiveTensorFunction.java @@ -3,6 +3,7 @@ package com.yahoo.tensor.functions; /** * A primitive tensor function is a tensor function which cannot be expressed in terms of other tensor functions. * All tensor implementations must implement all primitive tensor functions. + * Primitive tensor functions are fully inspectable. * * @author bratseth */ diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/Product.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/Product.java index a95eea213c7..09038a294ce 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/functions/Product.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/Product.java @@ -6,4 +6,22 @@ package com.yahoo.tensor.functions; * @author bratseth */ public class Product extends CompositeTensorFunction { + + private final TensorFunction argumentA, argumentB; + + public Product(TensorFunction argumentA, TensorFunction argumentB) { + this.argumentA = argumentA; + this.argumentB = argumentB; + } + + @Override + public PrimitiveTensorFunction toPrimitive() { + return new Join(argumentA.toPrimitive(), argumentB.toPrimitive(), (a, b) -> a * b); + } + + @Override + public String toString() { + return "product(" + argumentA.toString() + ", " + argumentB.toString() + ")"; + } + } diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/Reduce.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/Reduce.java index 327234701ad..4b306d376a6 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/functions/Reduce.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/Reduce.java @@ -30,4 +30,9 @@ public class Reduce extends PrimitiveTensorFunction { return new Reduce(argument.toPrimitive(), dimension, reductor, postTransformation); } + @Override + public String toString() { + return "reduce(" + argument.toString() + ", " + dimension + ", lambda(a, b) (...), lambda(a, b) (...))"; + } + } diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/TensorFunction.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/TensorFunction.java index bce2e237e6a..95fca95a042 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/functions/TensorFunction.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/TensorFunction.java @@ -1,7 +1,7 @@ package com.yahoo.tensor.functions; /** - * An inspectable representation of a tensor function which is able to be translated to a set of primitive + * A representation of a tensor function which is able to be translated to a set of primitive * tensor functions if necessary. * All tensor functions are immutable. * |