aboutsummaryrefslogtreecommitdiff
path: root/arm_compute/core/TensorShape.h
diff options
context:
space:
mode:
authorMoritz Pflanzer <moritz.pflanzer@arm.com>2017-08-09 11:43:18 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:35:24 +0000
commit484e7b3724c0e77751b5bed05180271fd5376e5d (patch)
tree1ff3fa4bd80b1aef91086ace9b0c8f006445a217 /arm_compute/core/TensorShape.h
parent768e9f180f4082a713a2eb9f3b98911c767d570b (diff)
downloadComputeLibrary-484e7b3724c0e77751b5bed05180271fd5376e5d.tar.gz
COMPMID-417: Cleanup NEON FullyConnectedLayer
Change-Id: Ie02a0a1a28ca2771e29a5e6552242caf0f6db1cf Reviewed-on: http://mpd-gerrit.cambridge.arm.com/83555 Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'arm_compute/core/TensorShape.h')
-rw-r--r--arm_compute/core/TensorShape.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/arm_compute/core/TensorShape.h b/arm_compute/core/TensorShape.h
index 6cf08de114..8d15c50220 100644
--- a/arm_compute/core/TensorShape.h
+++ b/arm_compute/core/TensorShape.h
@@ -138,17 +138,28 @@ public:
}
/** Collapses given dimension and above.
*
- * @note Precondition: dimension < TensorShape::num_max_dimensions
- *
* @param[in] dimension Size of the wanted dimension
*
* @return The linear size of the collapsed dimensions
*/
size_t total_size_upper(size_t dimension) const
{
+ ARM_COMPUTE_ERROR_ON(dimension >= TensorShape::num_max_dimensions);
return std::accumulate(_id.begin() + dimension, _id.end(), 1, std::multiplies<size_t>());
}
+ /** Compute size of dimensions lower than the given one.
+ *
+ * @param[in] dimension Upper boundary.
+ *
+ * @return The linear size of the collapsed dimensions.
+ */
+ size_t total_size_lower(size_t dimension) const
+ {
+ ARM_COMPUTE_ERROR_ON(dimension > TensorShape::num_max_dimensions);
+ return std::accumulate(_id.begin(), _id.begin() + dimension, 1, std::multiplies<size_t>());
+ }
+
private:
/** Remove trailing dimensions of size 1 from the reported number of dimensions. */
void apply_dimension_correction()