summaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-01-02 12:49:07 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2018-01-09 17:44:06 +0100
commitc331285d503f5dd908cdbb250bc6b6a64a95e607 (patch)
tree995577e51787d9203692b40eca808926da2e155a /eval
parent450cb5bfb064f6320f57f48e899208f5d13cccbf (diff)
Specialize add and mul
Diffstat (limited to 'eval')
-rw-r--r--eval/src/vespa/eval/tensor/dense/dense_tensor_apply.hpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/eval/src/vespa/eval/tensor/dense/dense_tensor_apply.hpp b/eval/src/vespa/eval/tensor/dense/dense_tensor_apply.hpp
index 062980a7296..c34264c4ef2 100644
--- a/eval/src/vespa/eval/tensor/dense/dense_tensor_apply.hpp
+++ b/eval/src/vespa/eval/tensor/dense/dense_tensor_apply.hpp
@@ -11,6 +11,11 @@ namespace vespalib::tensor::dense {
template <typename Function>
std::unique_ptr<Tensor>
apply(DenseTensorAddressCombiner & combiner, DirectDenseTensorBuilder & builder,
+ CommonDenseTensorCellsIterator & rhsIter, const DenseTensorView &lhs, Function &&func) __attribute__((noinline));
+
+template <typename Function>
+std::unique_ptr<Tensor>
+apply(DenseTensorAddressCombiner & combiner, DirectDenseTensorBuilder & builder,
CommonDenseTensorCellsIterator & rhsIter, const DenseTensorView &lhs, Function &&func)
{
for (DenseTensorCellsIterator lhsItr = lhs.cellsIterator(); lhsItr.valid(); lhsItr.next()) {
@@ -24,6 +29,13 @@ apply(DenseTensorAddressCombiner & combiner, DirectDenseTensorBuilder & builder,
return builder.build();
}
+
+template <typename Function>
+std::unique_ptr<Tensor>
+apply_no_rightonly_dimensions(DenseTensorAddressCombiner & combiner, DirectDenseTensorBuilder & builder,
+ CommonDenseTensorCellsIterator & rhsIter,
+ const DenseTensorView &lhs, Function &&func) __attribute__((noinline));
+
template <typename Function>
std::unique_ptr<Tensor>
apply_no_rightonly_dimensions(DenseTensorAddressCombiner & combiner, DirectDenseTensorBuilder & builder,