diff options
author | Sebastian Messmer <messmer@fb.com> | 2018-12-10 15:06:30 -0800 |
---|---|---|
committer | Facebook Github Bot <facebook-github-bot@users.noreply.github.com> | 2018-12-10 15:10:01 -0800 |
commit | 279ec9ef7aa4c93893bc506f888fa1c28b837f7a (patch) | |
tree | 350b92fc8163bdbf8cf6fb516aab9d67be3424f4 /c10 | |
parent | 66315ab3234fe741f040223925385ffd19992ab2 (diff) | |
download | pytorch-279ec9ef7aa4c93893bc506f888fa1c28b837f7a.tar.gz pytorch-279ec9ef7aa4c93893bc506f888fa1c28b837f7a.tar.bz2 pytorch-279ec9ef7aa4c93893bc506f888fa1c28b837f7a.zip |
Move WrapDimMinimal to c10
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/14793
Reviewed By: ezyang
Differential Revision: D13336841
fbshipit-source-id: 4365a799e1856cc68dd94a273e97663fee5f51db
Diffstat (limited to 'c10')
-rw-r--r-- | c10/core/WrapDimMinimal.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/c10/core/WrapDimMinimal.h b/c10/core/WrapDimMinimal.h new file mode 100644 index 0000000000..bebd24a043 --- /dev/null +++ b/c10/core/WrapDimMinimal.h @@ -0,0 +1,23 @@ +#pragma once + +#include <c10/util/Exception.h> + +namespace c10 { + +static inline int64_t maybe_wrap_dim(int64_t dim, int64_t dim_post_expr, bool wrap_scalar=true) { + if (dim_post_expr <= 0) { + AT_CHECK(wrap_scalar, "dimension specified as ", dim, " but tensor has no dimensions"); + dim_post_expr = 1; // this will make range [-1, 0] + } + + int64_t min = -dim_post_expr; + int64_t max = dim_post_expr - 1; + AT_CHECK( + dim >= min && dim <= max, + "Dimension out of range (expected to be in range of [", + min, ", ", max, "], but got ", dim, ")"); + if (dim < 0) dim += dim_post_expr; + return dim; +} + +} |