Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::NumVector< T, Size >

Petit vecteur de taille fixe de N données numériques. Plus de détails...

#include <arcane/utils/NumVector.h>

+ Graphe de collaboration de Arcane::NumVector< T, Size >:

Types publics

using ThatClass = NumVector< T, Size >
 
using DataType = T
 

Fonctions membres publiques

 NumVector ()=default
 Construit le vecteur nul.
 
template<int S = Size, typename = std::enable_if_t<S == 2, void>>
constexpr __host__ __device__ NumVector (T ax, T ay)
 Construit avec le couple (ax,ay)
 
template<int S = Size, typename = std::enable_if_t<S == 3, void>>
constexpr __host__ __device__ NumVector (T ax, T ay, T az)
 Construit avec le triplet (ax,ay,az)
 
template<int S = Size, typename = std::enable_if_t<S == 4, void>>
constexpr __host__ __device__ NumVector (T a1, T a2, T a3, T a4)
 Construit avec le quadruplet (a1,a2,a3,a4)
 
template<int S = Size, typename = std::enable_if_t<S == 5, void>>
constexpr __host__ __device__ NumVector (T a1, T a2, T a3, T a4, T a5)
 Construit avec le quintuplet (a1,a2,a3,a4,a5)
 
template<bool = true>
constexpr __host__ __device__ NumVector (const T(&v)[Size])
 Construit l'instance avec pour chaque composante la valeur v.
 
constexpr __host__ __device__ NumVector (std::array< T, Size > v)
 Construit l'instance avec pour chaque composante la valeur v.
 
constexpr __host__ __device__ NumVector (T v)
 Construit l'instance avec pour chaque composante la valeur v.
 
template<int S = Size, typename = std::enable_if_t<S == 2, void>>
constexpr __host__ __device__ NumVector (Real2 v)
 
template<int S = Size, typename = std::enable_if_t<S == 3, void>>
constexpr __host__ __device__ NumVector (Real3 v)
 
constexpr __host__ __device__ ThatClass & operator= (Real v)
 Affecte à l'instance le triplet (v,v,v).
 
template<int S = Size, typename = std::enable_if_t<S == 2, void>>
constexpr __host__ __device__ ThatClass & operator= (const Real2 &v)
 
template<int S = Size, typename = std::enable_if_t<S == 3, void>>
constexpr __host__ __device__ ThatClass & operator= (const Real3 &v)
 
template<int S = Size, typename = std::enable_if_t<S == 2, void>>
 operator Real2 () const
 
template<int S = Size, typename = std::enable_if_t<S == 3, void>>
 operator Real3 () const
 
constexpr __host__ __device__ bool isNearlyZero () const
 
constexpr __host__ __device__ Real squareNormL2 () const
 Retourne la norme L2 au carré du triplet \(x^2+y^2+z^2\).
 
__host__ __device__ Real normL2 () const
 Retourne la norme L2 du triplet \(\sqrt{x^2+y^2+z^2}\).
 
__host__ __device__ ThatClass absolute () const
 Valeur absolue composante par composante.
 
constexpr __host__ __device__ ThatClass & operator+= (T b)
 Ajoute b à chaque composante de l'instance.
 
constexpr __host__ __device__ ThatClass & operator+= (const ThatClass &b)
 Ajoute b à l'instance.
 
constexpr __host__ __device__ ThatClass & operator-= (T b)
 Soustrait b à chaque composante de l'instance.
 
constexpr __host__ __device__ ThatClass & operator-= (const ThatClass &b)
 Soustrait b à l'instance.
 
constexpr __host__ __device__ ThatClass & operator*= (T b)
 Multiple chaque composante par b.
 
constexpr __host__ __device__ ThatClass & operator/= (T b)
 Divise chaque composante par b.
 
constexpr __host__ __device__ ThatClass operator- () const
 Créé un triplet opposé au triplet actuel.
 
constexpr __host__ __device__ T & operator() (Int32 i)
 
constexpr __host__ __device__ T operator() (Int32 i) const
 
constexpr __host__ __device__ T & operator[] (Int32 i)
 
constexpr __host__ __device__ T operator[] (Int32 i) const
 
template<int S = Size, typename = std::enable_if_t<S >= 1, void >
T & vx ()
 Valeur de la première composante.
 
template<int S = Size, typename = std::enable_if_t<S >= 1, void >
vx () const
 Valeur de la première composante.
 
template<int S = Size, typename = std::enable_if_t<S >= 2, void >
T & vy ()
 Valeur de la deuxième composante.
 
template<int S = Size, typename = std::enable_if_t<S >= 2, void >
vy () const
 Valeur de la deuxième composante.
 
template<int S = Size, typename = std::enable_if_t<S >= 3, void >
T & vz ()
 Valeur de la troisième composante.
 
template<int S = Size, typename = std::enable_if_t<S >= 3, void >
vz () const
 Valeur de la troisième composante.
 

Fonctions membres publiques statiques

constexpr __host__ static __device__ ThatClass zero ()
 

Amis

constexpr __host__ __device__ ThatClass operator+ (const ThatClass &a, const ThatClass &b)
 Créé un triplet qui vaut ce triplet ajouté à b.
 
constexpr __host__ __device__ ThatClass operator- (const ThatClass &a, const ThatClass &b)
 Créé un triplet qui vaut b soustrait de ce triplet.
 
constexpr __host__ __device__ ThatClass operator* (T a, const ThatClass &vec)
 Multiplication par un scalaire.
 
constexpr __host__ __device__ ThatClass operator* (const ThatClass &vec, T b)
 Multiplication par un scalaire.
 
constexpr __host__ __device__ ThatClass operator/ (const ThatClass &vec, T b)
 Division par un scalaire.
 
constexpr __host__ __device__ bool operator== (const ThatClass &a, const ThatClass &b)
 Compare composant pas composante l'instance courante à b.
 
constexpr __host__ __device__ bool operator!= (const ThatClass &a, const ThatClass &b)
 Compare deux vecteurs Pour la notion d'égalité, voir operator==()
 

Description détaillée

template<typename T, int Size>
class Arcane::NumVector< T, Size >

Petit vecteur de taille fixe de N données numériques.

Note
Actuellement uniquement implémenté pour le type Real.
Avertissement
API en cours de définition. Ne pas utiliser en dehors de Arcane.

Il est possible d'accéder à chaque composante du vecteur par 'operator[]' ou 'operator()' ou par les méthodes vx(), vy(), vz() si la dimension est suffisante (par exemple vz() est uniquement accessible si la Size>=3.

Définition à la ligne 42 du fichier NumVector.h.

Documentation des définitions de type membres

◆ DataType

template<typename T , int Size>
using Arcane::NumVector< T, Size >::DataType = T

Définition à la ligne 50 du fichier NumVector.h.

◆ ThatClass

template<typename T , int Size>
using Arcane::NumVector< T, Size >::ThatClass = NumVector<T, Size>

Définition à la ligne 49 du fichier NumVector.h.

Documentation des constructeurs et destructeur

◆ NumVector() [1/9]

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S == 2, void>>
constexpr __host__ __device__ Arcane::NumVector< T, Size >::NumVector ( ax,
ay 
)
inlineconstexpr

Construit avec le couple (ax,ay)

Définition à la ligne 59 du fichier NumVector.h.

◆ NumVector() [2/9]

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S == 3, void>>
constexpr __host__ __device__ Arcane::NumVector< T, Size >::NumVector ( ax,
ay,
az 
)
inlineconstexpr

Construit avec le triplet (ax,ay,az)

Définition à la ligne 67 du fichier NumVector.h.

◆ NumVector() [3/9]

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S == 4, void>>
constexpr __host__ __device__ Arcane::NumVector< T, Size >::NumVector ( a1,
a2,
a3,
a4 
)
inlineconstexpr

Construit avec le quadruplet (a1,a2,a3,a4)

Définition à la ligne 76 du fichier NumVector.h.

◆ NumVector() [4/9]

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S == 5, void>>
constexpr __host__ __device__ Arcane::NumVector< T, Size >::NumVector ( a1,
a2,
a3,
a4,
a5 
)
inlineconstexpr

Construit avec le quintuplet (a1,a2,a3,a4,a5)

Définition à la ligne 86 du fichier NumVector.h.

◆ NumVector() [5/9]

template<typename T , int Size>
template<bool = true>
constexpr __host__ __device__ Arcane::NumVector< T, Size >::NumVector ( const T(&)  v[Size])
inlineexplicitconstexpr

Construit l'instance avec pour chaque composante la valeur v.

Définition à la ligne 97 du fichier NumVector.h.

◆ NumVector() [6/9]

template<typename T , int Size>
constexpr __host__ __device__ Arcane::NumVector< T, Size >::NumVector ( std::array< T, Size >  v)
inlineexplicitconstexpr

Construit l'instance avec pour chaque composante la valeur v.

Définition à la ligne 104 du fichier NumVector.h.

◆ NumVector() [7/9]

template<typename T , int Size>
constexpr __host__ __device__ Arcane::NumVector< T, Size >::NumVector ( v)
inlineexplicitconstexpr

Construit l'instance avec pour chaque composante la valeur v.

Définition à la ligne 111 du fichier NumVector.h.

◆ NumVector() [8/9]

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S == 2, void>>
constexpr __host__ __device__ Arcane::NumVector< T, Size >::NumVector ( Real2  v)
inlineexplicitconstexpr

Définition à la ligne 118 du fichier NumVector.h.

◆ NumVector() [9/9]

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S == 3, void>>
constexpr __host__ __device__ Arcane::NumVector< T, Size >::NumVector ( Real3  v)
inlineexplicitconstexpr

Définition à la ligne 123 du fichier NumVector.h.

Documentation des fonctions membres

◆ absolute()

template<typename T , int Size>
__host__ __device__ ThatClass Arcane::NumVector< T, Size >::absolute ( ) const
inline

Valeur absolue composante par composante.

Définition à la ligne 181 du fichier NumVector.h.

◆ isNearlyZero()

template<typename T , int Size>
constexpr __host__ __device__ bool Arcane::NumVector< T, Size >::isNearlyZero ( ) const
inlineconstexpr

Définition à la ligne 161 du fichier NumVector.h.

◆ normL2()

template<typename T , int Size>
__host__ __device__ Real Arcane::NumVector< T, Size >::normL2 ( ) const
inline

Retourne la norme L2 du triplet \(\sqrt{x^2+y^2+z^2}\).

Définition à la ligne 178 du fichier NumVector.h.

Références Arcane::NumVector< T, Size >::squareNormL2().

◆ operator Real2()

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S == 2, void>>
Arcane::NumVector< T, Size >::operator Real2 ( ) const
inline

Définition à la ligne 150 du fichier NumVector.h.

◆ operator Real3()

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S == 3, void>>
Arcane::NumVector< T, Size >::operator Real3 ( ) const
inline

Définition à la ligne 153 du fichier NumVector.h.

◆ operator()() [1/2]

template<typename T , int Size>
constexpr __host__ __device__ T & Arcane::NumVector< T, Size >::operator() ( Int32  i)
inlineconstexpr

Définition à la ligne 304 du fichier NumVector.h.

◆ operator()() [2/2]

template<typename T , int Size>
constexpr __host__ __device__ T Arcane::NumVector< T, Size >::operator() ( Int32  i) const
inlineconstexpr

Définition à la ligne 309 du fichier NumVector.h.

◆ operator*=()

template<typename T , int Size>
constexpr __host__ __device__ ThatClass & Arcane::NumVector< T, Size >::operator*= ( b)
inlineconstexpr

Multiple chaque composante par b.

Définition à la ligne 219 du fichier NumVector.h.

◆ operator+=() [1/2]

template<typename T , int Size>
constexpr __host__ __device__ ThatClass & Arcane::NumVector< T, Size >::operator+= ( const ThatClass &  b)
inlineconstexpr

Ajoute b à l'instance.

Définition à la ligne 198 du fichier NumVector.h.

◆ operator+=() [2/2]

template<typename T , int Size>
constexpr __host__ __device__ ThatClass & Arcane::NumVector< T, Size >::operator+= ( b)
inlineconstexpr

Ajoute b à chaque composante de l'instance.

Définition à la ligne 190 du fichier NumVector.h.

◆ operator-()

template<typename T , int Size>
constexpr __host__ __device__ ThatClass Arcane::NumVector< T, Size >::operator- ( ) const
inlineconstexpr

Créé un triplet opposé au triplet actuel.

Définition à la ligne 249 du fichier NumVector.h.

◆ operator-=() [1/2]

template<typename T , int Size>
constexpr __host__ __device__ ThatClass & Arcane::NumVector< T, Size >::operator-= ( const ThatClass &  b)
inlineconstexpr

Soustrait b à l'instance.

Définition à la ligne 212 du fichier NumVector.h.

◆ operator-=() [2/2]

template<typename T , int Size>
constexpr __host__ __device__ ThatClass & Arcane::NumVector< T, Size >::operator-= ( b)
inlineconstexpr

Soustrait b à chaque composante de l'instance.

Définition à la ligne 205 du fichier NumVector.h.

◆ operator/=()

template<typename T , int Size>
constexpr __host__ __device__ ThatClass & Arcane::NumVector< T, Size >::operator/= ( b)
inlineconstexpr

Divise chaque composante par b.

Définition à la ligne 226 du fichier NumVector.h.

◆ operator=() [1/3]

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S == 2, void>>
constexpr __host__ __device__ ThatClass & Arcane::NumVector< T, Size >::operator= ( const Real2 v)
inlineconstexpr

Définition à la ligne 136 du fichier NumVector.h.

◆ operator=() [2/3]

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S == 3, void>>
constexpr __host__ __device__ ThatClass & Arcane::NumVector< T, Size >::operator= ( const Real3 v)
inlineconstexpr

Définition à la ligne 143 du fichier NumVector.h.

◆ operator=() [3/3]

template<typename T , int Size>
constexpr __host__ __device__ ThatClass & Arcane::NumVector< T, Size >::operator= ( Real  v)
inlineconstexpr

Affecte à l'instance le triplet (v,v,v).

Définition à la ligne 128 du fichier NumVector.h.

◆ operator[]() [1/2]

template<typename T , int Size>
constexpr __host__ __device__ T & Arcane::NumVector< T, Size >::operator[] ( Int32  i)
inlineconstexpr

Définition à la ligne 314 du fichier NumVector.h.

◆ operator[]() [2/2]

template<typename T , int Size>
constexpr __host__ __device__ T Arcane::NumVector< T, Size >::operator[] ( Int32  i) const
inlineconstexpr

Définition à la ligne 319 du fichier NumVector.h.

◆ squareNormL2()

template<typename T , int Size>
constexpr __host__ __device__ Real Arcane::NumVector< T, Size >::squareNormL2 ( ) const
inlineconstexpr

Retourne la norme L2 au carré du triplet \(x^2+y^2+z^2\).

Définition à la ligne 170 du fichier NumVector.h.

Référencé par Arcane::NumVector< T, Size >::normL2().

◆ vx() [1/2]

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S >= 1, void >
T & Arcane::NumVector< T, Size >::vx ( )
inline

Valeur de la première composante.

Définition à la ligne 327 du fichier NumVector.h.

◆ vx() [2/2]

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S >= 1, void >
T Arcane::NumVector< T, Size >::vx ( ) const
inline

Valeur de la première composante.

Définition à la ligne 333 du fichier NumVector.h.

◆ vy() [1/2]

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S >= 2, void >
T & Arcane::NumVector< T, Size >::vy ( )
inline

Valeur de la deuxième composante.

Définition à la ligne 340 du fichier NumVector.h.

◆ vy() [2/2]

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S >= 2, void >
T Arcane::NumVector< T, Size >::vy ( ) const
inline

Valeur de la deuxième composante.

Définition à la ligne 346 du fichier NumVector.h.

◆ vz() [1/2]

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S >= 3, void >
T & Arcane::NumVector< T, Size >::vz ( )
inline

Valeur de la troisième composante.

Définition à la ligne 353 du fichier NumVector.h.

◆ vz() [2/2]

template<typename T , int Size>
template<int S = Size, typename = std::enable_if_t<S >= 3, void >
T Arcane::NumVector< T, Size >::vz ( ) const
inline

Valeur de la troisième composante.

Définition à la ligne 359 du fichier NumVector.h.

◆ zero()

template<typename T , int Size>
constexpr __host__ static __device__ ThatClass Arcane::NumVector< T, Size >::zero ( )
inlinestaticconstexpr

Définition à la ligne 157 du fichier NumVector.h.

Documentation des fonctions amies et associées

◆ operator!=

template<typename T , int Size>
constexpr __host__ __device__ bool operator!= ( const ThatClass &  a,
const ThatClass &  b 
)
friend

Compare deux vecteurs Pour la notion d'égalité, voir operator==()

Définition à la ligne 299 du fichier NumVector.h.

◆ operator* [1/2]

template<typename T , int Size>
constexpr __host__ __device__ ThatClass operator* ( const ThatClass &  vec,
b 
)
friend

Multiplication par un scalaire.

Définition à la ligne 265 du fichier NumVector.h.

◆ operator* [2/2]

template<typename T , int Size>
constexpr __host__ __device__ ThatClass operator* ( a,
const ThatClass &  vec 
)
friend

Multiplication par un scalaire.

Définition à la ligne 257 du fichier NumVector.h.

◆ operator+

template<typename T , int Size>
constexpr __host__ __device__ ThatClass operator+ ( const ThatClass &  a,
const ThatClass &  b 
)
friend

Créé un triplet qui vaut ce triplet ajouté à b.

Définition à la ligne 233 du fichier NumVector.h.

◆ operator-

template<typename T , int Size>
constexpr __host__ __device__ ThatClass operator- ( const ThatClass &  a,
const ThatClass &  b 
)
friend

Créé un triplet qui vaut b soustrait de ce triplet.

Définition à la ligne 241 du fichier NumVector.h.

◆ operator/

template<typename T , int Size>
constexpr __host__ __device__ ThatClass operator/ ( const ThatClass &  vec,
b 
)
friend

Division par un scalaire.

Définition à la ligne 273 du fichier NumVector.h.

◆ operator==

template<typename T , int Size>
constexpr __host__ __device__ bool operator== ( const ThatClass &  a,
const ThatClass &  b 
)
friend

Compare composant pas composante l'instance courante à b.

Valeurs retournées
truesi this.x==b.x et this.y==b.y et this.z==b.z.
falsesinon.

Définition à la ligne 287 du fichier NumVector.h.


La documentation de cette classe a été générée à partir du fichier suivant :