12#ifndef ARCANE_UTILS_REAL3X3_H
13#define ARCANE_UTILS_REAL3X3_H
17#include "arcane/utils/Real3.h"
87 ARCANE_DEPRECATED_116
Real3x3(Real ax, Real ay, Real az, Real bx, Real by, Real bz, Real cx, Real cy, Real cz)
101 constexpr ARCCORE_HOST_DEVICE
explicit Real3x3(Real v)
133 constexpr ARCCORE_HOST_DEVICE
static Real3x3 fromColumns(Real ax, Real ay, Real az, Real bx, Real by, Real bz, Real cx, Real cy, Real cz)
139 constexpr ARCCORE_HOST_DEVICE
static Real3x3 fromLines(Real ax, Real bx, Real cx, Real ay, Real by, Real cy, Real az, Real bz, Real cz)
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);
304 ARCCORE_HOST_DEVICE Real
operator()(Integer i, Integer j)
const
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));
364 return Real3x3(vec.
x * sca, vec.
y * sca, vec.
z * sca);
370 return Real3x3(vec.
x * sca, vec.
y * sca, vec.
z * sca);
376 return Real3x3(vec.
x / sca, vec.
y / sca, vec.
z / sca);
393 return (v1.
x < v2.
x);
403 constexpr ARCCORE_HOST_DEVICE
static bool _eq(Real a, Real b)
Classe gérant un vecteur de réel de dimension 3.
constexpr __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 __host__ __device__ Real3x3 operator-(Real3x3 b) const
Créé un triplet qui vaut b soustrait de ce triplet.
constexpr __host__ static __device__ Real3x3 null()
Construit le tenseur nul.
Real3x3(const Real3x3 &f)=default
Construit un triplet identique à f.
friend constexpr __host__ __device__ Real3x3 operator*(Real sca, Real3x3 vec)
Multiplication par un scalaire.
constexpr __host__ __device__ Real3x3 & add(Real3x3 b)
Ajoute b au triplet.
constexpr __host__ static __device__ Real3x3 identity()
Construit la matrice identité
constexpr __host__ __device__ Real3x3 & subSame(Real3 b)
Soustrait b à chaque composante du triplet.
std::ostream & printXyz(std::ostream &o) const
Ecrit le triplet sur le flot o sous la forme (x,y,z)
constexpr __host__ __device__ Real3x3 & assign(Real3 ax, Real3 ay, Real3 az)
Affecte à l'instance les lignes (ax,ay,az)
Real3 z
premier élément du triplet
constexpr __host__ __device__ bool operator==(Real3x3 b) const
Compare composant pas composante l'instance courante à b.
friend constexpr __host__ __device__ bool operator<(Real3x3 v1, Real3x3 v2)
Opérateur de comparaison.
constexpr __host__ __device__ Real3x3 & sub(Real3x3 b)
Soustrait b au triplet.
constexpr __host__ static __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 __host__ __device__ Real3x3 & operator=(Real v)
Affecte à l'instance le triplet (v,v,v).
constexpr __host__ __device__ Real3x3 & reset()
Remet à zéro les coefficients de la matrice.
Real3 y
premier élément du triplet
constexpr __host__ __device__ Real3x3 & assign(Real3x3 f)
Copie la matrice f.
constexpr __host__ __device__ Real determinant() const
Déterminant de la matrice.
__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 __host__ __device__ bool isNearlyZero() const
Compare la matrice avec la matrice nulle.
constexpr __host__ static __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 __host__ __device__ Real3x3()
Construit la matrice avec tous les coefficiants nuls.
__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 __host__ __device__ Real3x3 & addSame(Real3 b)
Ajoute b à chaque composante du triplet.
Real3x3 & operator=(const Real3x3 &f)=default
Opérateur de recopie.
constexpr __host__ __device__ Real3x3(const Real3x3POD &f)
Construit un triplet identique à f.
constexpr __host__ __device__ bool operator!=(Real3x3 b) const
Compare deux triplets. Pour la notion d'égalité, voir operator==()
Real3 x
premier élément du triplet
constexpr __host__ __device__ Real3x3(Real v)
Construit l'instance avec le triplet (v,v,v).
friend std::ostream & operator<<(std::ostream &o, Real3x3 t)
Ecrit le triplet t sur le flot o.
__host__ __device__ Real3 & operator[](Integer i)
Accès à la i-ème ligne (entre 0 et 2 inclus) de l'instance.
constexpr __host__ static __device__ Real3x3 zero()
Construit la matrice nulle.
__host__ __device__ Real operator()(Integer i, Integer j) const
Accès en lecture seule à la i-ème ligne et j-ème colonne.
friend std::istream & operator>>(std::istream &i, Real3x3 &t)
Lit le triplet t à partir du flot o.
constexpr __host__ __device__ Real3x3(Real3 ax, Real3 ay, Real3 az)
Construit la matrice avec les lignes (ax,ay,az)
constexpr __host__ __device__ Real3x3 & operator+=(Real3x3 b)
Ajoute b au triplet.
constexpr __host__ __device__ void operator/=(Real b)
Divise chaque composante de la matrice par le réel b.
constexpr __host__ __device__ Real3x3 copy() const
Retourne une copie de la matrice.
constexpr __host__ __device__ Real3x3 operator-() const
Créé un tenseur opposé au tenseur actuel.
constexpr __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 __host__ __device__ void operator*=(Real b)
Multiple chaque composante de la matrice par le réel b.
__host__ __device__ Real & operator()(Integer i, Integer j)
Accès à la i-ème ligne et j-ème colonne.
constexpr __host__ __device__ Real3x3 & operator-=(Real3x3 b)
Soustrait b au triplet.
friend constexpr __host__ __device__ Real3x3 operator/(Real3x3 vec, Real sca)
Division par un scalaire.
friend constexpr __host__ __device__ Real3x3 operator*(Real3x3 vec, Real sca)
Multiplication par un scalaire.
__host__ __device__ Real3 & operator()(Integer i)
Accès à la i-ème ligne (entre 0 et 2 inclus) de l'instance.
-*- 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.