Arcane  4.1.15.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::ComplexForLoopRanges< N, IndexType_ > Class Template Reference

Complex iteration range. More...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/base/arccore/base/ForLoopRanges.h>

Collaboration diagram for Arcane::ComplexForLoopRanges< N, IndexType_ >:

Public Types

using ArrayBoundsType = ArrayBounds<typename MDDimType<N, IndexType_>::DimType>
using MDIndexType = ArrayBoundsType::MDIndexType
using ArrayIndexType = MDIndexType
using LoopIndexType = ArrayIndexType
using ExtentIndexType = IndexType_

Public Member Functions

 ComplexForLoopRanges (ArrayBoundsType lower, ArrayBoundsType extents)
 explicit (false) ComplexForLoopRanges(const SimpleForLoopRanges< N
return ComplexForLoopRanges (a, b)
template<Int32 I>
constexpr Int32 lowerBound () const
template<Int32 I>
constexpr Int32 upperBound () const
template<Int32 I>
constexpr Int32 extent () const
constexpr Int64 nbElement () const
constexpr MDIndexType getIndices (Int32 i) const
constexpr ArrayBoundsType extents () const

Public Attributes

IndexType_ & bounds: m_extents(bounds.m_bounds) {} public: template <typename OtherIndexType> static ComplexForLoopRanges fromOther(const ComplexForLoopRanges<N
IndexType_ OtherIndexType & other_loop
auto b = ArrayBoundsType::fromOther(other_loop.m_extents)

Private Member Functions

 ComplexForLoopRanges (MDIndexType lower, ArrayBoundsType extents)

Private Attributes

MDIndexType m_lower_bounds
ArrayBoundsType m_extents

Detailed Description

template<int N, typename IndexType_>
class Arcane::ComplexForLoopRanges< N, IndexType_ >

Complex iteration range.

The starting indices for each dimension are specified by lower and the number of elements in each dimension by extents.

Definition at line 115 of file arccore/src/base/arccore/base/ForLoopRanges.h.

Member Typedef Documentation

◆ ArrayBoundsType

template<int N, typename IndexType_>
using Arcane::ComplexForLoopRanges< N, IndexType_ >::ArrayBoundsType = ArrayBounds<typename MDDimType<N, IndexType_>::DimType>

◆ ArrayIndexType

template<int N, typename IndexType_>
using Arcane::ComplexForLoopRanges< N, IndexType_ >::ArrayIndexType = MDIndexType

◆ ExtentIndexType

template<int N, typename IndexType_>
using Arcane::ComplexForLoopRanges< N, IndexType_ >::ExtentIndexType = IndexType_

◆ LoopIndexType

template<int N, typename IndexType_>
using Arcane::ComplexForLoopRanges< N, IndexType_ >::LoopIndexType = ArrayIndexType

◆ MDIndexType

template<int N, typename IndexType_>
using Arcane::ComplexForLoopRanges< N, IndexType_ >::MDIndexType = ArrayBoundsType::MDIndexType

Constructor & Destructor Documentation

◆ ComplexForLoopRanges() [1/2]

template<int N, typename IndexType_>
Arcane::ComplexForLoopRanges< N, IndexType_ >::ComplexForLoopRanges ( ArrayBoundsType lower,
ArrayBoundsType extents )
inline

◆ ComplexForLoopRanges() [2/2]

template<int N, typename IndexType_>
Arcane::ComplexForLoopRanges< N, IndexType_ >::ComplexForLoopRanges ( MDIndexType lower,
ArrayBoundsType extents )
inlineprivate

Member Function Documentation

◆ extent()

template<int N, typename IndexType_>
template<Int32 I>
Int32 Arcane::ComplexForLoopRanges< N, IndexType_ >::extent ( ) const
inlineconstexpr

◆ extents()

template<int N, typename IndexType_>
ArrayBoundsType Arcane::ComplexForLoopRanges< N, IndexType_ >::extents ( ) const
inlineconstexpr

◆ getIndices()

template<int N, typename IndexType_>
MDIndexType Arcane::ComplexForLoopRanges< N, IndexType_ >::getIndices ( Int32 i) const
inlineconstexpr

◆ lowerBound()

template<int N, typename IndexType_>
template<Int32 I>
Int32 Arcane::ComplexForLoopRanges< N, IndexType_ >::lowerBound ( ) const
inlineconstexpr

◆ nbElement()

template<int N, typename IndexType_>
Int64 Arcane::ComplexForLoopRanges< N, IndexType_ >::nbElement ( ) const
inlineconstexpr

◆ upperBound()

template<int N, typename IndexType_>
template<Int32 I>
Int32 Arcane::ComplexForLoopRanges< N, IndexType_ >::upperBound ( ) const
inlineconstexpr

◆ ComplexForLoopRanges

template<int N, typename IndexType_>
template<int OtherN, typename OtherIndexType>
friend class ComplexForLoopRanges
friend

Member Data Documentation

◆ b

template<int N, typename IndexType_>
auto Arcane::ComplexForLoopRanges< N, IndexType_ >::b = ArrayBoundsType::fromOther(other_loop.m_extents)

◆ bounds

template<int N, typename IndexType_>
IndexType_& Arcane::ComplexForLoopRanges< N, IndexType_ >::bounds

◆ m_extents

template<int N, typename IndexType_>
ArrayBoundsType Arcane::ComplexForLoopRanges< N, IndexType_ >::m_extents
private

◆ m_lower_bounds

template<int N, typename IndexType_>
MDIndexType Arcane::ComplexForLoopRanges< N, IndexType_ >::m_lower_bounds
private

◆ other_loop

template<int N, typename IndexType_>
IndexType_ OtherIndexType& Arcane::ComplexForLoopRanges< N, IndexType_ >::other_loop
Initial value:
{
auto a = MDIndexType::fromOther(other_loop.m_lower_bounds)

Definition at line 143 of file arccore/src/base/arccore/base/ForLoopRanges.h.


The documentation for this class was generated from the following files: