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

Real vectorization using emulation. More...

#include <arcane/utils/SimdEMUL.h>

Collaboration diagram for Arcane::EMULSimdReal:

Public Types

enum  : Int32 { Length = 2 }
typedef EMULSimdX2Int32 Int32IndexType

Public Member Functions

 EMULSimdReal (Real a)
 EMULSimdReal (const Real *base)
 EMULSimdReal (const Real *base, const Int32 *idx)
 EMULSimdReal (const Real *base, const Int32IndexType *idx)
 EMULSimdReal (const Real *base, const Int32IndexType &idx)
const Realoperator[] (Integer i) const
Realoperator[] (Integer i)
void set (ARCANE_RESTRICT Real *base) const
void set (ARCANE_RESTRICT Real *base, const Int32 *idx) const
void set (ARCANE_RESTRICT Real *base, const Int32IndexType *idx) const
void set (ARCANE_RESTRICT Real *base, const Int32IndexType &idx) const

Static Public Member Functions

static EMULSimdReal fromScalar (Real a0, Real a1)

Public Attributes

Real v0
Real v1

Static Public Attributes

static const int BLOCK_SIZE = 2

Private Member Functions

 EMULSimdReal (Real a0, Real a1)
void operator= (Real _v)

Detailed Description

Real vectorization using emulation.

This class is used when no vectorization mechanism is available. It is just an encapsulation of 2 reals. Other vector sizes could have been chosen (for example 4 or 8), but tests performed (in 2013) show that performance degrades beyond 2.

Definition at line 201 of file SimdEMUL.h.

Member Typedef Documentation

◆ Int32IndexType

typedef EMULSimdX2Int32 Arcane::EMULSimdReal::Int32IndexType

Definition at line 210 of file SimdEMUL.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum : Int32

Definition at line 206 of file SimdEMUL.h.

Constructor & Destructor Documentation

◆ EMULSimdReal() [1/7]

Arcane::EMULSimdReal::EMULSimdReal ( )
inline

Definition at line 214 of file SimdEMUL.h.

◆ EMULSimdReal() [2/7]

Arcane::EMULSimdReal::EMULSimdReal ( Real a)
inlineexplicit

Definition at line 215 of file SimdEMUL.h.

◆ EMULSimdReal() [3/7]

Arcane::EMULSimdReal::EMULSimdReal ( Real a0,
Real a1 )
inlineprivate

Definition at line 222 of file SimdEMUL.h.

◆ EMULSimdReal() [4/7]

Arcane::EMULSimdReal::EMULSimdReal ( const Real * base)
inline

Definition at line 229 of file SimdEMUL.h.

◆ EMULSimdReal() [5/7]

Arcane::EMULSimdReal::EMULSimdReal ( const Real * base,
const Int32 * idx )
inline

Definition at line 233 of file SimdEMUL.h.

◆ EMULSimdReal() [6/7]

Arcane::EMULSimdReal::EMULSimdReal ( const Real * base,
const Int32IndexType * idx )
inline

Definition at line 237 of file SimdEMUL.h.

◆ EMULSimdReal() [7/7]

Arcane::EMULSimdReal::EMULSimdReal ( const Real * base,
const Int32IndexType & idx )
inline

Definition at line 241 of file SimdEMUL.h.

Member Function Documentation

◆ fromScalar()

EMULSimdReal Arcane::EMULSimdReal::fromScalar ( Real a0,
Real a1 )
inlinestatic

Definition at line 267 of file SimdEMUL.h.

◆ operator[]() [1/2]

Real & Arcane::EMULSimdReal::operator[] ( Integer i)
inline

Definition at line 246 of file SimdEMUL.h.

◆ operator[]() [2/2]

const Real & Arcane::EMULSimdReal::operator[] ( Integer i) const
inline

Definition at line 245 of file SimdEMUL.h.

◆ set() [1/4]

void Arcane::EMULSimdReal::set ( ARCANE_RESTRICT Real * base) const
inline

Definition at line 247 of file SimdEMUL.h.

◆ set() [2/4]

void Arcane::EMULSimdReal::set ( ARCANE_RESTRICT Real * base,
const Int32 * idx ) const
inline

Definition at line 252 of file SimdEMUL.h.

◆ set() [3/4]

void Arcane::EMULSimdReal::set ( ARCANE_RESTRICT Real * base,
const Int32IndexType & idx ) const
inline

Definition at line 262 of file SimdEMUL.h.

◆ set() [4/4]

void Arcane::EMULSimdReal::set ( ARCANE_RESTRICT Real * base,
const Int32IndexType * idx ) const
inline

Definition at line 257 of file SimdEMUL.h.

Member Data Documentation

◆ BLOCK_SIZE

const int Arcane::EMULSimdReal::BLOCK_SIZE = 2
static

Definition at line 205 of file SimdEMUL.h.

◆ v0

Real Arcane::EMULSimdReal::v0

Definition at line 211 of file SimdEMUL.h.

◆ v1

Real Arcane::EMULSimdReal::v1

Definition at line 212 of file SimdEMUL.h.


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