aboutsummaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@oath.com>2019-12-04 09:55:46 +0000
committerHåvard Pettersen <havardpe@oath.com>2019-12-04 09:56:58 +0000
commitcc0b53724c8fdc5b9bcad6f45183b2c754418a7d (patch)
tree6df72e5436419db3169a36687fbb8c6e88ec8578 /eval
parent500c3d014b5a0a60008df8760592cbe19e566f09 (diff)
remove TensorLambda class
Diffstat (limited to 'eval')
-rw-r--r--eval/src/vespa/eval/eval/interpreted_function.cpp3
-rw-r--r--eval/src/vespa/eval/eval/key_gen.cpp7
-rw-r--r--eval/src/vespa/eval/eval/llvm/compiled_function.cpp1
-rw-r--r--eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp3
-rw-r--r--eval/src/vespa/eval/eval/make_tensor_function.cpp28
-rw-r--r--eval/src/vespa/eval/eval/node_types.cpp3
-rw-r--r--eval/src/vespa/eval/eval/node_visitor.h2
-rw-r--r--eval/src/vespa/eval/eval/tensor_nodes.cpp1
-rw-r--r--eval/src/vespa/eval/eval/tensor_nodes.h24
9 files changed, 3 insertions, 69 deletions
diff --git a/eval/src/vespa/eval/eval/interpreted_function.cpp b/eval/src/vespa/eval/eval/interpreted_function.cpp
index 5575f4ecb1c..b93ad1eb10c 100644
--- a/eval/src/vespa/eval/eval/interpreted_function.cpp
+++ b/eval/src/vespa/eval/eval/interpreted_function.cpp
@@ -28,9 +28,6 @@ const Function *get_lambda(const nodes::Node &node) {
if (auto ptr = nodes::as<nodes::TensorJoin>(node)) {
return &ptr->lambda();
}
- if (auto ptr = nodes::as<nodes::TensorLambda>(node)) {
- return &ptr->lambda();
- }
return nullptr;
}
diff --git a/eval/src/vespa/eval/eval/key_gen.cpp b/eval/src/vespa/eval/eval/key_gen.cpp
index f107ba9e59b..0f8382b5afc 100644
--- a/eval/src/vespa/eval/eval/key_gen.cpp
+++ b/eval/src/vespa/eval/eval/key_gen.cpp
@@ -39,10 +39,9 @@ struct KeyGen : public NodeVisitor, public NodeTraverser {
void visit(const TensorJoin &) override { add_byte(12); } // lambda should be part of key
void visit(const TensorReduce &) override { add_byte(13); } // aggr/dimensions should be part of key
void visit(const TensorRename &) override { add_byte(14); } // dimensions should be part of key
- void visit(const TensorLambda &) override { add_byte(15); } // type/lambda should be part of key
- void visit(const TensorConcat &) override { add_byte(16); } // dimension should be part of key
- void visit(const TensorCreate &) override { add_byte(17); } // type should be part of key
- void visit(const TensorPeek &) override { add_byte(18); } // addr should be part of key
+ void visit(const TensorConcat &) override { add_byte(15); } // dimension should be part of key
+ void visit(const TensorCreate &) override { add_byte(16); } // type/addr should be part of key
+ void visit(const TensorPeek &) override { add_byte(17); } // addr should be part of key
void visit(const Add &) override { add_byte(20); }
void visit(const Sub &) override { add_byte(21); }
void visit(const Mul &) override { add_byte(22); }
diff --git a/eval/src/vespa/eval/eval/llvm/compiled_function.cpp b/eval/src/vespa/eval/eval/llvm/compiled_function.cpp
index ba5b8e99254..ca34c31e976 100644
--- a/eval/src/vespa/eval/eval/llvm/compiled_function.cpp
+++ b/eval/src/vespa/eval/eval/llvm/compiled_function.cpp
@@ -130,7 +130,6 @@ CompiledFunction::detect_issues(const Function &function)
nodes::TensorJoin,
nodes::TensorReduce,
nodes::TensorRename,
- nodes::TensorLambda,
nodes::TensorConcat,
nodes::TensorCreate,
nodes::TensorPeek>(node))
diff --git a/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp b/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp
index f62a7aeb7b1..e5b7d45b0e2 100644
--- a/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp
+++ b/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp
@@ -473,9 +473,6 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser {
void visit(const TensorRename &node) override {
make_error(node.num_children());
}
- void visit(const TensorLambda &node) override {
- make_error(node.num_children());
- }
void visit(const TensorConcat &node) override {
make_error(node.num_children());
}
diff --git a/eval/src/vespa/eval/eval/make_tensor_function.cpp b/eval/src/vespa/eval/eval/make_tensor_function.cpp
index 0087bf5efe7..a7215eabcb9 100644
--- a/eval/src/vespa/eval/eval/make_tensor_function.cpp
+++ b/eval/src/vespa/eval/eval/make_tensor_function.cpp
@@ -20,18 +20,6 @@ using join_fun_t = double (*)(double, double);
//-----------------------------------------------------------------------------
-bool step_labels(std::vector<double> &labels, const ValueType &type) {
- for (size_t idx = labels.size(); idx-- > 0; ) {
- labels[idx] += 1.0;
- if (size_t(labels[idx]) < type.dimensions()[idx].size) {
- return true;
- } else {
- labels[idx] = 0.0;
- }
- }
- return false;
-}
-
// TODO(havardpe): generic function pointer resolving for all single
// operation lambdas.
@@ -215,22 +203,6 @@ struct TensorFunctionBuilder : public NodeVisitor, public NodeTraverser {
void visit(const TensorRename &node) override {
make_rename(node, node.from(), node.to());
}
- void visit(const TensorLambda &node) override {
- const auto &type = node.type();
- TensorSpec spec(type.to_spec());
- const auto &token = stash.create<CompileCache::Token::UP>(CompileCache::compile(node.lambda(), PassParams::ARRAY));
- auto fun = token.get()->get().get_function();
- std::vector<double> params(type.dimensions().size(), 0.0);
- assert(token.get()->get().num_params() == params.size());
- do {
- TensorSpec::Address addr;
- for (size_t i = 0; i < params.size(); ++i) {
- addr.emplace(type.dimensions()[i].name, size_t(params[i]));
- }
- spec.add(addr, fun(&params[0]));
- } while (step_labels(params, type));
- make_const(node, *stash.create<Value::UP>(tensor_engine.from_spec(spec)));
- }
void visit(const TensorConcat &node) override {
make_concat(node, node.dimension());
}
diff --git a/eval/src/vespa/eval/eval/node_types.cpp b/eval/src/vespa/eval/eval/node_types.cpp
index 3e8f06c0941..972afb7663f 100644
--- a/eval/src/vespa/eval/eval/node_types.cpp
+++ b/eval/src/vespa/eval/eval/node_types.cpp
@@ -105,9 +105,6 @@ struct TypeResolver : public NodeVisitor, public NodeTraverser {
const ValueType &child = type(node.get_child(0));
bind(child.rename(node.from(), node.to()), node);
}
- void visit(const TensorLambda &node) override {
- bind(node.type(), node);
- }
void visit(const TensorConcat &node) override {
bind(ValueType::concat(type(node.get_child(0)),
type(node.get_child(1)), node.dimension()), node);
diff --git a/eval/src/vespa/eval/eval/node_visitor.h b/eval/src/vespa/eval/eval/node_visitor.h
index bca4e00d72e..f32161a24c4 100644
--- a/eval/src/vespa/eval/eval/node_visitor.h
+++ b/eval/src/vespa/eval/eval/node_visitor.h
@@ -33,7 +33,6 @@ struct NodeVisitor {
virtual void visit(const nodes::TensorJoin &) = 0;
virtual void visit(const nodes::TensorReduce &) = 0;
virtual void visit(const nodes::TensorRename &) = 0;
- virtual void visit(const nodes::TensorLambda &) = 0;
virtual void visit(const nodes::TensorConcat &) = 0;
virtual void visit(const nodes::TensorCreate &) = 0;
virtual void visit(const nodes::TensorPeek &) = 0;
@@ -103,7 +102,6 @@ struct EmptyNodeVisitor : NodeVisitor {
void visit(const nodes::TensorJoin &) override {}
void visit(const nodes::TensorReduce &) override {}
void visit(const nodes::TensorRename &) override {}
- void visit(const nodes::TensorLambda &) override {}
void visit(const nodes::TensorConcat &) override {}
void visit(const nodes::TensorCreate &) override {}
void visit(const nodes::TensorPeek &) override {}
diff --git a/eval/src/vespa/eval/eval/tensor_nodes.cpp b/eval/src/vespa/eval/eval/tensor_nodes.cpp
index cee7a1aeb11..e392248a08a 100644
--- a/eval/src/vespa/eval/eval/tensor_nodes.cpp
+++ b/eval/src/vespa/eval/eval/tensor_nodes.cpp
@@ -11,7 +11,6 @@ void TensorMap ::accept(NodeVisitor &visitor) const { visitor.visit(*this); }
void TensorJoin ::accept(NodeVisitor &visitor) const { visitor.visit(*this); }
void TensorReduce::accept(NodeVisitor &visitor) const { visitor.visit(*this); }
void TensorRename::accept(NodeVisitor &visitor) const { visitor.visit(*this); }
-void TensorLambda::accept(NodeVisitor &visitor) const { visitor.visit(*this); }
void TensorConcat::accept(NodeVisitor &visitor) const { visitor.visit(*this); }
void TensorCreate::accept(NodeVisitor &visitor) const { visitor.visit(*this); }
void TensorPeek ::accept(NodeVisitor &visitor) const { visitor.visit(*this); }
diff --git a/eval/src/vespa/eval/eval/tensor_nodes.h b/eval/src/vespa/eval/eval/tensor_nodes.h
index a471f027675..ca3369ad9ba 100644
--- a/eval/src/vespa/eval/eval/tensor_nodes.h
+++ b/eval/src/vespa/eval/eval/tensor_nodes.h
@@ -156,30 +156,6 @@ public:
}
};
-class TensorLambda : public Leaf {
-private:
- ValueType _type;
- Function _lambda;
-public:
- TensorLambda(ValueType type_in, Function lambda)
- : _type(std::move(type_in)), _lambda(std::move(lambda)) {}
- const ValueType &type() const { return _type; }
- const Function &lambda() const { return _lambda; }
- vespalib::string dump(DumpContext &) const override {
- vespalib::string str = _type.to_spec();
- vespalib::string expr = _lambda.dump();
- if (starts_with(expr, "(")) {
- str += expr;
- } else {
- str += "(";
- str += expr;
- str += ")";
- }
- return str;
- }
- void accept(NodeVisitor &visitor) const override;
-};
-
class TensorConcat : public Node {
private:
Node_UP _lhs;