12#ifndef ARCANE_UTILS_REAL3X3_H
13#define ARCANE_UTILS_REAL3X3_H
17#include "arcane/utils/Real3.h"
178 std::istream& assign(std::istream& i);
180 std::ostream& print(std::ostream&
o)
const;
182 std::ostream& printXyz(std::ostream&
o)
const;
249 return x ==
b.x && y ==
b.y && z ==
b.z;
260 return !operator==(
b);
269 ARCCORE_CHECK_AT(i, 3);
279 ARCCORE_CHECK_AT(i, 3);
290 ARCCORE_CHECK_AT(i, 3);
291 ARCCORE_CHECK_AT(
j, 3);
301 ARCCORE_CHECK_AT(i, 3);
311 ARCCORE_CHECK_AT(i, 3);
322 ARCCORE_CHECK_AT(i, 3);
323 ARCCORE_CHECK_AT(
j, 3);
330 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));
336 return t.printXyz(
o);
377 return (v1.
x < v2.
x);
414 inline constexpr ARCCORE_HOST_DEVICE
bool isNearlyZero(
const Real3x3& v)
416 return isNearlyZero(v.x) && isNearlyZero(v.y) && isNearlyZero(v.z);
423inline constexpr ARCCORE_HOST_DEVICE
bool Real3x3::
426 return math::isNearlyZero(*
this);
Classe gérant un vecteur de réel de dimension 3.
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.
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__ 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.
Référence à une 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.