Skip to content

Commit 61e1525

Browse files
authored
Merge pull request #5654 from N-Dekker/ImageRegionRange-bypass-OffsetTable-0
PERF: Let ImageRegionRange bypass OffsetTable[0] (which is always 1)
2 parents c3e1e02 + a37bf81 commit 61e1525

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

Modules/Core/Common/include/itkImageRegionRange.h

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,14 @@ class ImageRegionRange final
148148
void
149149
Increment() noexcept
150150
{
151-
m_BufferIterator += m_OffsetTable[VIndex];
151+
if constexpr (VIndex == 0)
152+
{
153+
++m_BufferIterator;
154+
}
155+
else
156+
{
157+
m_BufferIterator += m_OffsetTable[VIndex];
158+
}
152159

153160
if constexpr (VIndex < (ImageDimension - 1))
154161
{
@@ -172,7 +179,14 @@ class ImageRegionRange final
172179
void
173180
Decrement() noexcept
174181
{
175-
m_BufferIterator -= m_OffsetTable[VIndex];
182+
if constexpr (VIndex == 0)
183+
{
184+
--m_BufferIterator;
185+
}
186+
else
187+
{
188+
m_BufferIterator -= m_OffsetTable[VIndex];
189+
}
176190

177191
if constexpr (VIndex < (ImageDimension - 1))
178192
{

0 commit comments

Comments
 (0)