Commit 9e284b7c authored by Paul's avatar Paul
Browse files

Formatting

parent 570db377
...@@ -18,7 +18,10 @@ void shape_for_each(const rtg::shape& s, F f) ...@@ -18,7 +18,10 @@ void shape_for_each(const rtg::shape& s, F f)
s.strides().end(), s.strides().end(),
s.lens().begin(), s.lens().begin(),
indices.begin(), indices.begin(),
[&](std::size_t stride, std::size_t len) { assert(len > 0 and stride > 0); return (i / stride) % len; }); [&](std::size_t stride, std::size_t len) {
assert(len > 0 and stride > 0);
return (i / stride) % len;
});
call(indices); call(indices);
} }
} }
......
...@@ -20,7 +20,8 @@ shape::shape(type_t t, std::vector<std::size_t> l, std::vector<std::size_t> s) ...@@ -20,7 +20,8 @@ shape::shape(type_t t, std::vector<std::size_t> l, std::vector<std::size_t> s)
: m_type(t), m_lens(std::move(l)), m_strides(std::move(s)) : m_type(t), m_lens(std::move(l)), m_strides(std::move(s))
{ {
assert(m_lens.size() == m_strides.size()); assert(m_lens.size() == m_strides.size());
assert(std::any_of(m_strides.begin(), m_strides.end(), [](auto x) { return x > 0; }) and "At least one stride must be non-zero"); assert(std::any_of(m_strides.begin(), m_strides.end(), [](auto x) { return x > 0; }) and
"At least one stride must be non-zero");
m_packed = this->elements() == this->element_space(); m_packed = this->elements() == this->element_space();
} }
...@@ -68,13 +69,15 @@ std::size_t shape::index(std::size_t i) const ...@@ -68,13 +69,15 @@ std::size_t shape::index(std::size_t i) const
if(this->packed()) if(this->packed())
return i; return i;
else else
return std::inner_product( return std::inner_product(this->lens().begin(),
this->lens().begin(), this->lens().end(),
this->lens().end(), this->strides().begin(),
this->strides().begin(), std::size_t{0},
std::size_t{0}, std::plus<std::size_t>{},
std::plus<std::size_t>{}, [&](std::size_t len, std::size_t stride) {
[&](std::size_t len, std::size_t stride) { assert(stride > 0 and len > 0); return ((i / stride) % len) * stride; }); assert(stride > 0 and len > 0);
return ((i / stride) % len) * stride;
});
} }
bool shape::packed() const { return this->m_packed; } bool shape::packed() const { return this->m_packed; }
std::size_t shape::element_space() const std::size_t shape::element_space() const
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment