Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::SimdItemBase Class Reference

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

#include <arcane/core/SimdItem.h>

Inheritance diagram for Arcane::SimdItemBase:
Collaboration diagram for Arcane::SimdItemBase:

Public Types

typedef SimdInfo::SimdInt32IndexType SimdIndexType

Public Member Functions

 SimdItemBase (const ItemInternalPtr *items, const SimdIndexType *ids)
 Constructs an instance.
ItemInternalitem (Integer si) const
 Internal part (for internal use only).
ItemInternaloperator[] (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 ItemInternalItemInternalPtr

Protected Member Functions

 SimdItemBase (ItemSharedInfo *shared_info, const SimdIndexType *ids)

Protected Attributes

SimdIndexType m_simd_local_ids
ItemSharedInfom_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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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[]().

Here is the caller graph for this function:

◆ 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: