12#ifndef ARCANE_UTILS_REAL3X3_H
13#define ARCANE_UTILS_REAL3X3_H
17#include "arcane/utils/Real3.h"
101 constexpr ARCCORE_HOST_DEVICE
explicit Real3x3(Real v)
147 constexpr ARCCORE_HOST_DEVICE
Real3x3 copy()
const {
return (*
this); }
194 std::istream& assign(std::istream& i);
196 std::ostream& print(std::ostream& o)
const;
198 std::ostream& printXyz(std::ostream& o)
const;
265 return x ==
b.x && y ==
b.y && z ==
b.z;
276 return !operator==(
b);
285 ARCCORE_CHECK_AT(i, 3);
295 ARCCORE_CHECK_AT(i, 3);
306 ARCCORE_CHECK_AT(i, 3);
307 ARCCORE_CHECK_AT(
j, 3);
317 ARCCORE_CHECK_AT(i, 3);
327 ARCCORE_CHECK_AT(i, 3);
338 ARCCORE_CHECK_AT(i, 3);
339 ARCCORE_CHECK_AT(
j, 3);
346 return (x.
x * (y.
y * z.
z - y.
z * z.
y) + x.
y * (y.
z * z.
x - y.
x * z.
z) + x.
z * (y.
x * z.
y - y.
y * z.
x));
352 return t.printXyz(o);
393 return (v1.
x < v2.
x);
403 constexpr ARCCORE_HOST_DEVICE
static bool _eq(Real a, Real
b)
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Classe gérant un vecteur de réel de dimension 3.
constexpr ARCCORE_HOST_DEVICE bool isNearlyZero() const
Indique si l'instance est proche de l'instance nulle.
Classe gérant une matrice de réel de dimension 3x3.
constexpr ARCCORE_HOST_DEVICE bool isNearlyZero() const
Compare la matrice avec la matrice nulle.
friend constexpr ARCCORE_HOST_DEVICE Real3x3 operator*(Real sca, Real3x3 vec)
Multiplication par un scalaire.
Real3x3(const Real3x3 &f)=default
Construit un triplet identique à f.
constexpr static ARCCORE_HOST_DEVICE Real3x3 identity()
Construit la matrice identité
ARCCORE_HOST_DEVICE Real & operator()(Integer i, Integer j)
Accès à la i-ème ligne et j-ème colonne.
constexpr ARCCORE_HOST_DEVICE Real3x3(const Real3x3POD &f)
Construit un triplet identique à f.
constexpr ARCCORE_HOST_DEVICE Real3x3 & reset()
Remet à zéro les coefficients de la matrice.
friend constexpr ARCCORE_HOST_DEVICE bool operator<(Real3x3 v1, Real3x3 v2)
Opérateur de comparaison.
constexpr ARCCORE_HOST_DEVICE Real3x3 operator-() const
Créé un tenseur opposé au tenseur actuel.
constexpr ARCCORE_HOST_DEVICE Real3x3 & subSame(Real3 b)
Soustrait b à chaque composante du triplet.
constexpr ARCCORE_HOST_DEVICE bool operator==(Real3x3 b) const
Compare composant pas composante l'instance courante à b.
constexpr ARCCORE_HOST_DEVICE void operator*=(Real b)
Multiple chaque composante de la matrice par le réel b.
constexpr ARCCORE_HOST_DEVICE Real3x3 & operator+=(Real3x3 b)
Ajoute b au triplet.
Real3 z
premier élément du triplet
constexpr ARCCORE_HOST_DEVICE Real determinant() const
Déterminant de la matrice.
constexpr ARCCORE_HOST_DEVICE bool operator!=(Real3x3 b) const
Compare deux triplets. Pour la notion d'égalité, voir operator==()
constexpr ARCCORE_HOST_DEVICE Real3x3()
Construit la matrice avec tous les coefficiants nuls.
ARCCORE_HOST_DEVICE Real3 & operator[](Integer i)
Accès à la i-ème ligne (entre 0 et 2 inclus) de l'instance.
Real3 y
premier élément du triplet
constexpr static ARCCORE_HOST_DEVICE Real3x3 fromColumns(Real ax, Real ay, Real az, Real bx, Real by, Real bz, Real cx, Real cy, Real cz)
Construit la matrice ((ax,bx,cx),(ay,by,cy),(az,bz,cz)).
constexpr ARCCORE_HOST_DEVICE Real3x3 & addSame(Real3 b)
Ajoute b à chaque composante du triplet.
friend constexpr ARCCORE_HOST_DEVICE Real3x3 operator/(Real3x3 vec, Real sca)
Division par un scalaire.
Real3x3 & operator=(const Real3x3 &f)=default
Opérateur de recopie.
ARCCORE_HOST_DEVICE Real3 operator()(Integer i) const
Accès en lecture seule à la i-ème (entre 0 et 2 inclus) ligne de l'instance.
constexpr ARCCORE_HOST_DEVICE Real3x3 & operator-=(Real3x3 b)
Soustrait b au triplet.
ARCCORE_HOST_DEVICE Real operator()(Integer i, Integer j) const
Accès en lecture seule à la i-ème ligne et j-ème colonne.
Real3 x
premier élément du triplet
constexpr ARCCORE_HOST_DEVICE Real3x3 & assign(Real3 ax, Real3 ay, Real3 az)
Affecte à l'instance les lignes (ax,ay,az)
constexpr ARCCORE_HOST_DEVICE void operator/=(Real b)
Divise chaque composante de la matrice par le réel b.
friend std::ostream & operator<<(std::ostream &o, Real3x3 t)
Ecrit le triplet t sur le flot o.
friend constexpr ARCCORE_HOST_DEVICE Real3x3 operator*(Real3x3 vec, Real sca)
Multiplication par un scalaire.
constexpr ARCCORE_HOST_DEVICE Real3x3 & sub(Real3x3 b)
Soustrait b au triplet.
constexpr static ARCCORE_HOST_DEVICE Real3x3 null()
Construit le tenseur nul.
ARCCORE_HOST_DEVICE Real3 & operator()(Integer i)
Accès à la i-ème ligne (entre 0 et 2 inclus) de l'instance.
constexpr ARCCORE_HOST_DEVICE Real3x3 & assign(Real3x3 f)
Copie la matrice f.
ARCCORE_HOST_DEVICE Real3 operator[](Integer i) const
Accès en lecture seule à la i-ème (entre 0 et 2 inclus) ligne de l'instance.
constexpr ARCCORE_HOST_DEVICE Real3x3 & operator=(Real v)
Affecte à l'instance le triplet (v,v,v).
friend std::istream & operator>>(std::istream &i, Real3x3 &t)
Lit le triplet t à partir du flot o.
constexpr ARCCORE_HOST_DEVICE Real3x3 operator-(Real3x3 b) const
Créé un triplet qui vaut b soustrait de ce triplet.
constexpr static ARCCORE_HOST_DEVICE Real3x3 fromLines(Real ax, Real bx, Real cx, Real ay, Real by, Real cy, Real az, Real bz, Real cz)
Construit la matrice ((ax,bx,cx),(ay,by,cy),(az,bz,cz)).
constexpr ARCCORE_HOST_DEVICE Real3x3(Real v)
Construit l'instance avec le triplet (v,v,v).
constexpr ARCCORE_HOST_DEVICE Real3x3 operator+(Real3x3 b) const
Créé un triplet qui vaut ce triplet ajouté à b.
ARCANE_DEPRECATED_116 Real3x3(Real ax, Real ay, Real az, Real bx, Real by, Real bz, Real cx, Real cy, Real cz)
Construit le tenseur ((ax,bx,cx),(ay,by,cy),(az,bz,cz)).
constexpr ARCCORE_HOST_DEVICE Real3x3 & add(Real3x3 b)
Ajoute b au triplet.
constexpr static ARCCORE_HOST_DEVICE Real3x3 zero()
Construit la matrice nulle.
constexpr ARCCORE_HOST_DEVICE Real3x3 copy() const
Retourne une copie de la matrice.
constexpr static ARCCORE_HOST_DEVICE bool _eq(Real a, Real b)
Compare les valeurs de a et b avec le comparateur TypeEqualT.
constexpr ARCCORE_HOST_DEVICE Real3x3(Real3 ax, Real3 ay, Real3 az)
Construit la matrice avec les lignes (ax,ay,az)
Opérations de comparaisons pour un type numérique T.
Espace de nom pour l'utilisation des accélérateurs.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Real y
deuxième composante du triplet
Real z
troisième composante du triplet
Real x
première composante du triplet
Structure POD pour un Real3x3.