Petit vecteur de taille fixe de N données numériques. Plus de détails...
#include <arcane/utils/NumVector.h>
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 ARCCORE_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 ARCCORE_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 ARCCORE_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 ARCCORE_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 ARCCORE_HOST_DEVICE | NumVector (const T(&v)[Size]) |
Construit l'instance avec pour chaque composante la valeur v. | |
constexpr ARCCORE_HOST_DEVICE | NumVector (std::array< T, Size > v) |
Construit l'instance avec pour chaque composante la valeur v. | |
constexpr ARCCORE_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 ARCCORE_HOST_DEVICE | NumVector (Real2 v) |
template<int S = Size, typename = std::enable_if_t<S == 3, void>> | |
constexpr ARCCORE_HOST_DEVICE | NumVector (Real3 v) |
constexpr ARCCORE_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 ARCCORE_HOST_DEVICE ThatClass & | operator= (const Real2 &v) |
template<int S = Size, typename = std::enable_if_t<S == 3, void>> | |
constexpr ARCCORE_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 ARCCORE_HOST_DEVICE bool | isNearlyZero () const |
constexpr ARCCORE_HOST_DEVICE Real | squareNormL2 () const |
Retourne la norme L2 au carré du triplet \(x^2+y^2+z^2\). | |
ARCCORE_HOST_DEVICE Real | normL2 () const |
Retourne la norme L2 du triplet \(\sqrt{x^2+y^2+z^2}\). | |
ARCCORE_HOST_DEVICE ThatClass | absolute () const |
Valeur absolue composante par composante. | |
constexpr ARCCORE_HOST_DEVICE ThatClass & | operator+= (T b) |
Ajoute b à chaque composante de l'instance. | |
constexpr ARCCORE_HOST_DEVICE ThatClass & | operator+= (const ThatClass &b) |
Ajoute b à l'instance. | |
constexpr ARCCORE_HOST_DEVICE ThatClass & | operator-= (T b) |
Soustrait b à chaque composante de l'instance. | |
constexpr ARCCORE_HOST_DEVICE ThatClass & | operator-= (const ThatClass &b) |
Soustrait b à l'instance. | |
constexpr ARCCORE_HOST_DEVICE ThatClass & | operator*= (T b) |
Multiple chaque composante par b. | |
constexpr ARCCORE_HOST_DEVICE ThatClass & | operator/= (T b) |
Divise chaque composante par b. | |
constexpr ARCCORE_HOST_DEVICE ThatClass | operator- () const |
Créé un triplet opposé au triplet actuel. | |
constexpr ARCCORE_HOST_DEVICE T & | operator() (Int32 i) |
constexpr ARCCORE_HOST_DEVICE T | operator() (Int32 i) const |
constexpr ARCCORE_HOST_DEVICE T & | operator[] (Int32 i) |
constexpr ARCCORE_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 > | |
T | 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 > | |
T | 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 > | |
T | vz () const |
Valeur de la troisième composante. | |
Fonctions membres publiques statiques | |
constexpr static ARCCORE_HOST_DEVICE ThatClass | zero () |
Fonctions membres privées statiques | |
constexpr static ARCCORE_HOST_DEVICE bool | _eq (T a, T b) |
Compare les valeurs de a et b avec le comparateur TypeEqualT. | |
static ARCCORE_HOST_DEVICE T | _sqrt (T a) |
Retourne la racine carrée de a. | |
Attributs privés | |
T | m_values [Size] = {} |
Valeurs du vecteur. | |
Amis | |
constexpr ARCCORE_HOST_DEVICE ThatClass | operator+ (const ThatClass &a, const ThatClass &b) |
Créé un triplet qui vaut ce triplet ajouté à b. | |
constexpr ARCCORE_HOST_DEVICE ThatClass | operator- (const ThatClass &a, const ThatClass &b) |
Créé un triplet qui vaut b soustrait de ce triplet. | |
constexpr ARCCORE_HOST_DEVICE ThatClass | operator* (T a, const ThatClass &vec) |
Multiplication par un scalaire. | |
constexpr ARCCORE_HOST_DEVICE ThatClass | operator* (const ThatClass &vec, T b) |
Multiplication par un scalaire. | |
constexpr ARCCORE_HOST_DEVICE ThatClass | operator/ (const ThatClass &vec, T b) |
Division par un scalaire. | |
constexpr ARCCORE_HOST_DEVICE bool | operator== (const ThatClass &a, const ThatClass &b) |
Compare composant pas composante l'instance courante à b. | |
constexpr ARCCORE_HOST_DEVICE bool | operator!= (const ThatClass &a, const ThatClass &b) |
Compare deux vecteurs Pour la notion d'égalité, voir operator==() | |
Petit vecteur de taille fixe de N données numériques.
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.
using Arcane::NumVector< T, Size >::DataType = T |
Définition à la ligne 50 du fichier NumVector.h.
using Arcane::NumVector< T, Size >::ThatClass = NumVector<T, Size> |
Définition à la ligne 49 du fichier NumVector.h.
|
inlineconstexpr |
Construit avec le couple (ax,ay)
Définition à la ligne 59 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineconstexpr |
Construit avec le triplet (ax,ay,az)
Définition à la ligne 67 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineconstexpr |
Construit avec le quadruplet (a1,a2,a3,a4)
Définition à la ligne 76 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineconstexpr |
Construit avec le quintuplet (a1,a2,a3,a4,a5)
Définition à la ligne 86 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineexplicitconstexpr |
Construit l'instance avec pour chaque composante la valeur v.
Définition à la ligne 97 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineexplicitconstexpr |
Construit l'instance avec pour chaque composante la valeur v.
Définition à la ligne 104 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineexplicitconstexpr |
Construit l'instance avec pour chaque composante la valeur v.
Définition à la ligne 111 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineexplicitconstexpr |
Définition à la ligne 118 du fichier NumVector.h.
|
inlineexplicitconstexpr |
Définition à la ligne 123 du fichier NumVector.h.
|
inlinestaticconstexprprivate |
Compare les valeurs de a et b avec le comparateur TypeEqualT.
true | si a et b sont égaux, |
false | sinon. |
Définition à la ligne 377 du fichier NumVector.h.
Références Arcane::math::isEqual().
|
inlinestaticprivate |
Retourne la racine carrée de a.
Définition à la ligne 382 du fichier NumVector.h.
Références Arcane::math::sqrt().
Référencé par Arcane::NumVector< T, Size >::normL2().
|
inline |
Valeur absolue composante par composante.
Définition à la ligne 181 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineconstexpr |
Définition à la ligne 161 du fichier NumVector.h.
|
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 >::_sqrt(), et Arcane::NumVector< T, Size >::squareNormL2().
|
inline |
Définition à la ligne 150 du fichier NumVector.h.
|
inline |
Définition à la ligne 153 du fichier NumVector.h.
|
inlineconstexpr |
Définition à la ligne 304 du fichier NumVector.h.
|
inlineconstexpr |
Définition à la ligne 309 du fichier NumVector.h.
|
inlineconstexpr |
Multiple chaque composante par b.
Définition à la ligne 219 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineconstexpr |
Ajoute b à l'instance.
Définition à la ligne 198 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineconstexpr |
Ajoute b à chaque composante de l'instance.
Définition à la ligne 190 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineconstexpr |
Créé un triplet opposé au triplet actuel.
Définition à la ligne 249 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineconstexpr |
Soustrait b à l'instance.
Définition à la ligne 212 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineconstexpr |
Soustrait b à chaque composante de l'instance.
Définition à la ligne 205 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineconstexpr |
Divise chaque composante par b.
Définition à la ligne 226 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineconstexpr |
Définition à la ligne 136 du fichier NumVector.h.
|
inlineconstexpr |
Définition à la ligne 143 du fichier NumVector.h.
|
inlineconstexpr |
Affecte à l'instance le triplet (v,v,v).
Définition à la ligne 128 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlineconstexpr |
Définition à la ligne 314 du fichier NumVector.h.
|
inlineconstexpr |
Définition à la ligne 319 du fichier NumVector.h.
|
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érences Arcane::NumVector< T, Size >::m_values.
Référencé par Arcane::NumVector< T, Size >::normL2().
|
inline |
Valeur de la première composante.
Définition à la ligne 327 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inline |
Valeur de la première composante.
Définition à la ligne 333 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inline |
Valeur de la deuxième composante.
Définition à la ligne 340 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inline |
Valeur de la deuxième composante.
Définition à la ligne 346 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inline |
Valeur de la troisième composante.
Définition à la ligne 353 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inline |
Valeur de la troisième composante.
Définition à la ligne 359 du fichier NumVector.h.
Références Arcane::NumVector< T, Size >::m_values.
|
inlinestaticconstexpr |
Définition à la ligne 157 du fichier NumVector.h.
Compare deux vecteurs Pour la notion d'égalité, voir operator==()
Définition à la ligne 299 du fichier NumVector.h.
Multiplication par un scalaire.
Définition à la ligne 265 du fichier NumVector.h.
Multiplication par un scalaire.
Définition à la ligne 257 du fichier NumVector.h.
|
friend |
Créé un triplet qui vaut ce triplet ajouté à b.
Définition à la ligne 233 du fichier NumVector.h.
|
friend |
Créé un triplet qui vaut b soustrait de ce triplet.
Définition à la ligne 241 du fichier NumVector.h.
Division par un scalaire.
Définition à la ligne 273 du fichier NumVector.h.
Compare composant pas composante l'instance courante à b.
true | si this.x==b.x et this.y==b.y et this.z==b.z. |
false | sinon. |
Définition à la ligne 287 du fichier NumVector.h.
|
private |
Valeurs du vecteur.
Définition à la ligne 367 du fichier NumVector.h.
Référencé par Arcane::NumVector< T, Size >::absolute(), Arcane::NumVector< T, Size >::NumVector(), Arcane::NumVector< T, Size >::NumVector(), Arcane::NumVector< T, Size >::NumVector(), Arcane::NumVector< T, Size >::NumVector(), Arcane::NumVector< T, Size >::NumVector(), Arcane::NumVector< T, Size >::NumVector(), Arcane::NumVector< T, Size >::NumVector(), Arcane::NumVector< T, Size >::operator*=(), Arcane::NumVector< T, Size >::operator+=(), Arcane::NumVector< T, Size >::operator+=(), Arcane::NumVector< T, Size >::operator-(), Arcane::NumVector< T, Size >::operator-=(), Arcane::NumVector< T, Size >::operator-=(), Arcane::NumVector< T, Size >::operator/=(), Arcane::NumVector< T, Size >::operator=(), Arcane::NumVector< T, Size >::squareNormL2(), Arcane::NumVector< T, Size >::vx(), Arcane::NumVector< T, Size >::vx(), Arcane::NumVector< T, Size >::vy(), Arcane::NumVector< T, Size >::vy(), Arcane::NumVector< T, Size >::vz(), et Arcane::NumVector< T, Size >::vz().