Arcane  4.1.12.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>::DimType>
using ArrayIndexType = ArrayBoundsType::MDIndexType
using LoopIndexType = ArrayIndexType

Public Member Functions

 ComplexForLoopRanges (ArrayBoundsType lower, ArrayBoundsType extents)
 explicit (false) ComplexForLoopRanges(const SimpleForLoopRanges< N > &bounds)
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 ArrayIndexType getIndices (Int32 i) const
constexpr ArrayBoundsType extents () const

Private Attributes

ArrayIndexType 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 112 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>::DimType>

◆ ArrayIndexType

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

◆ LoopIndexType

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

Constructor & Destructor Documentation

◆ ComplexForLoopRanges()

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

Member Function Documentation

◆ explicit()

template<int N, typename IndexType_>
Arcane::ComplexForLoopRanges< N, IndexType_ >::explicit ( false ) const &
inline

◆ 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_>
ArrayIndexType 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

Member Data Documentation

◆ m_extents

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

◆ m_lower_bounds

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

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