Arcane  4.2.3.0
User documentation
Loading...
Searching...
No Matches
Arcane::SimdItemBase Class Reference

Class managing a SIMD vector of entities. More...

#include <arcane/core/SimdItem.h>

Public Types

typedef SimdInfo::SimdInt32IndexType SimdIndexType

Public Member Functions

 SimdItemBase (const ItemInternalPtr *items, const SimdIndexType *ids)
 Constructs an instance.
ItemInternal * item (Integer si) const
 Internal part (for internal use only).
ItemInternal * operator[] (Integer si) const
const SimdIndexType &ARCANE_RESTRICT simdLocalIds () const
 List of local IDs of the instance entities.
const Int32 *ARCANE_RESTRICT localIds () const
 List of local IDs of the instance entities.
Int32 localId (Int32 index) const
 Local ID of the entity at index index.

Protected Types

typedef ItemInternal * ItemInternalPtr

Protected Member Functions

 SimdItemBase (ItemSharedInfo *shared_info, const SimdIndexType *ids)

Protected Attributes

SimdIndexType m_simd_local_ids
ItemSharedInfo * m_shared_info = ItemSharedInfo::nullInstance()

Detailed Description

Class managing a SIMD vector of entities.

TODO:

  • Create a version of SimdItem by vector size (2, 4, 8).
  • Use a mask if possible.
  • aligned SimdItemBase
  • create a version of the SimdItemBase constructor without (nb_valid) for the case where the vector is full.

This class stores N mesh entities, where N depends on the size of the SIMD registers and equals SimdInfo::Int32IndexSize.

This class is not used directly. SimdItem or SimdItemT must be used.

Definition at line 70 of file SimdItem.h.

Member Typedef Documentation

◆ ItemInternalPtr

typedef ItemInternal* Arcane::SimdItemBase::ItemInternalPtr
protected

Definition at line 74 of file SimdItem.h.

◆ SimdIndexType

typedef SimdInfo::SimdInt32IndexType Arcane::SimdItemBase::SimdIndexType

Definition at line 78 of file SimdItem.h.

Constructor & Destructor Documentation

◆ SimdItemBase() [1/2]

Arcane::SimdItemBase::SimdItemBase ( const ItemInternalPtr * items,
const SimdIndexType * ids )
inline

Constructs an instance.

Warning
ids must have the required alignment for a SimdIndexType.

Definition at line 87 of file SimdItem.h.

References SimdItemBase().

Referenced by SimdItemBase().

◆ SimdItemBase() [2/2]

Arcane::SimdItemBase::SimdItemBase ( ItemSharedInfo * shared_info,
const SimdIndexType * ids )
inlineprotected

Definition at line 94 of file SimdItem.h.

Member Function Documentation

◆ item()

ItemInternal * Arcane::SimdItemBase::item ( Integer si) const
inline

Internal part (for internal use only).

Definition at line 103 of file SimdItem.h.

References item(), and localId().

Referenced by item().

◆ localId()

Int32 Arcane::SimdItemBase::localId ( Int32 index) const
inline

Local ID of the entity at index index.

Definition at line 115 of file SimdItem.h.

Referenced by Arcane::SimdItem::item(), item(), Arcane::SimdItemT< Node >::item(), Arcane::SimdItem::operator[](), and Arcane::SimdItemT< Node >::operator[]().

◆ localIds()

const Int32 *ARCANE_RESTRICT Arcane::SimdItemBase::localIds ( ) const
inline

List of local IDs of the instance entities.

Definition at line 112 of file SimdItem.h.

◆ operator[]()

ItemInternal * Arcane::SimdItemBase::operator[] ( Integer si) const
inline

Definition at line 106 of file SimdItem.h.

◆ simdLocalIds()

const SimdIndexType &ARCANE_RESTRICT Arcane::SimdItemBase::simdLocalIds ( ) const
inline

List of local IDs of the instance entities.

Definition at line 109 of file SimdItem.h.

Member Data Documentation

◆ m_shared_info

ItemSharedInfo* Arcane::SimdItemBase::m_shared_info = ItemSharedInfo::nullInstance()
protected

Definition at line 120 of file SimdItem.h.

◆ m_simd_local_ids

SimdIndexType Arcane::SimdItemBase::m_simd_local_ids
protected

Definition at line 119 of file SimdItem.h.


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