diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2019-06-25 09:12:27 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2019-06-25 09:12:27 +0000 |
commit | 3e0cb8d91a98cf8065de5a47af924d38f45e9750 (patch) | |
tree | d15d4471b62b6b52848b911cff42406a2b4cefb4 /eval/src | |
parent | 74b2ac25810ce2eda7975469b87942d72089c82a (diff) |
use common SideDim struct for both left and right dimensions
Diffstat (limited to 'eval/src')
-rw-r--r-- | eval/src/vespa/eval/tensor/dense/dense_dimension_combiner.cpp | 16 | ||||
-rw-r--r-- | eval/src/vespa/eval/tensor/dense/dense_dimension_combiner.h | 34 |
2 files changed, 22 insertions, 28 deletions
diff --git a/eval/src/vespa/eval/tensor/dense/dense_dimension_combiner.cpp b/eval/src/vespa/eval/tensor/dense/dense_dimension_combiner.cpp index 80aef3c79b6..52bda0d42ec 100644 --- a/eval/src/vespa/eval/tensor/dense/dense_dimension_combiner.cpp +++ b/eval/src/vespa/eval/tensor/dense/dense_dimension_combiner.cpp @@ -53,9 +53,9 @@ DenseDimensionCombiner::DenseDimensionCombiner(const eval::ValueType &lhs, _outputSize *= cd.size; _commonDims.push_back(cd); } else { - LeftDim ld; + SideDim ld; ld.idx = 0; - ld.leftMultiplier = lMul; + ld.sideMultiplier = lMul; ld.outputMultiplier = oMul; assert(lDims[i].size == oDims[k].size); ld.size = oDims[k].size; @@ -70,9 +70,9 @@ DenseDimensionCombiner::DenseDimensionCombiner(const eval::ValueType &lhs, assert(j > 0); assert(rDims[j-1].name == oDims[k].name); --j; - RightDim rd; + SideDim rd; rd.idx = 0; - rd.rightMultiplier = rMul; + rd.sideMultiplier = rMul; rd.outputMultiplier = oMul; assert(rDims[j].size == oDims[k].size); rd.size = oDims[k].size; @@ -89,13 +89,13 @@ void DenseDimensionCombiner::dump() const { fprintf(stderr, "DenseDimensionCombiner: %u * %u -> %u\n", _leftOnlySize, _rightOnlySize, _outputSize); - for (const LeftDim& ld : _leftDims) { + for (const SideDim& ld : _leftDims) { fprintf(stderr, "ld curidx=%u (of %u) leftmul=%u outmul=%u\n", - ld.idx, ld.size, ld.leftMultiplier, ld.outputMultiplier); + ld.idx, ld.size, ld.sideMultiplier, ld.outputMultiplier); } - for (const RightDim& rd : _rightDims) { + for (const SideDim& rd : _rightDims) { fprintf(stderr, "rd curidx=%u (of %u) rightmul=%u outmul=%u\n", - rd.idx, rd.size, rd.rightMultiplier, rd.outputMultiplier); + rd.idx, rd.size, rd.sideMultiplier, rd.outputMultiplier); } for (const CommonDim& cd : _commonDims) { fprintf(stderr, "cd curidx=%u (of %u) leftmul=%u rightmul=%u outmul=%u\n", diff --git a/eval/src/vespa/eval/tensor/dense/dense_dimension_combiner.h b/eval/src/vespa/eval/tensor/dense/dense_dimension_combiner.h index dee6bf0460a..5a52d7945ab 100644 --- a/eval/src/vespa/eval/tensor/dense/dense_dimension_combiner.h +++ b/eval/src/vespa/eval/tensor/dense/dense_dimension_combiner.h @@ -10,16 +10,10 @@ namespace vespalib::tensor { class DenseDimensionCombiner { - struct LeftDim { + struct SideDim { uint32_t idx; uint32_t size; - uint32_t leftMultiplier; - uint32_t outputMultiplier; - }; - struct RightDim { - uint32_t idx; - uint32_t size; - uint32_t rightMultiplier; + uint32_t sideMultiplier; uint32_t outputMultiplier; }; struct CommonDim { @@ -30,8 +24,8 @@ class DenseDimensionCombiner { uint32_t outputMultiplier; }; - std::vector<LeftDim> _leftDims; - std::vector<RightDim> _rightDims; + std::vector<SideDim> _leftDims; + std::vector<SideDim> _rightDims; std::vector<CommonDim> _commonDims; uint32_t _leftIndex; @@ -52,8 +46,8 @@ public: bool commonInRange() const { return _outputIndex < _outputSize; } void leftReset() { - for (LeftDim& ld : _leftDims) { - _leftIndex -= ld.idx * ld.leftMultiplier; + for (SideDim& ld : _leftDims) { + _leftIndex -= ld.idx * ld.sideMultiplier; _outputIndex -= ld.idx * ld.outputMultiplier; ld.idx = 0; } @@ -65,12 +59,12 @@ public: void stepLeft() { size_t lim = _leftDims.size(); for (size_t i = 0; i < lim; ++i) { - LeftDim& ld = _leftDims[i]; + SideDim& ld = _leftDims[i]; ld.idx++; - _leftIndex += ld.leftMultiplier; + _leftIndex += ld.sideMultiplier; _outputIndex += ld.outputMultiplier; if (ld.idx < ld.size) return; - _leftIndex -= ld.idx * ld.leftMultiplier; + _leftIndex -= ld.idx * ld.sideMultiplier; _outputIndex -= ld.idx * ld.outputMultiplier; ld.idx = 0; } @@ -79,8 +73,8 @@ public: void rightReset() { - for (RightDim& rd : _rightDims) { - _rightIndex -= rd.idx * rd.rightMultiplier; + for (SideDim& rd : _rightDims) { + _rightIndex -= rd.idx * rd.sideMultiplier; _outputIndex -= rd.idx * rd.outputMultiplier; rd.idx = 0; } @@ -92,12 +86,12 @@ public: void stepRight() { size_t lim = _rightDims.size(); for (size_t i = 0; i < lim; ++i) { - RightDim& rd = _rightDims[i]; + SideDim& rd = _rightDims[i]; rd.idx++; - _rightIndex += rd.rightMultiplier; + _rightIndex += rd.sideMultiplier; _outputIndex += rd.outputMultiplier; if (rd.idx < rd.size) return; - _rightIndex -= rd.idx * rd.rightMultiplier; + _rightIndex -= rd.idx * rd.sideMultiplier; _outputIndex -= rd.idx * rd.outputMultiplier; rd.idx = 0; } |