12#ifndef ARCANE_UTILS_REAL2X2_H
13#define ARCANE_UTILS_REAL2X2_H
17#include "arcane/utils/Real2.h"
70 ARCANE_DEPRECATED_116
Real2x2(Real ax, Real ay, Real bx, Real by)
82 constexpr ARCCORE_HOST_DEVICE
explicit Real2x2(Real v)
121 constexpr ARCCORE_HOST_DEVICE
Real2x2 copy()
const {
return (*
this); }
161 std::istream& assign(std::istream& i);
163 std::ostream& print(std::ostream& o)
const;
165 std::ostream& printXy(std::ostream& o)
const;
253 return (x == b.
x) && (y == b.
y);
263 return !operator==(b);
272 ARCCORE_CHECK_AT(i, 2);
282 ARCCORE_CHECK_AT(i, 2);
291 ARCCORE_HOST_DEVICE Real
operator()(Integer i, Integer j)
const
293 ARCCORE_CHECK_AT(i, 2);
294 ARCCORE_CHECK_AT(j, 2);
304 ARCCORE_CHECK_AT(i, 2);
314 ARCCORE_CHECK_AT(i, 2);
325 ARCCORE_CHECK_AT(i, 2);
326 ARCCORE_CHECK_AT(j, 2);
347 return Real2x2(vec.
x * sca, vec.
y * sca);
353 return Real2x2(vec.
x * sca, vec.
y * sca);
359 return Real2x2(vec.
x / sca, vec.
y / sca);
373 return (v1.
x < v2.
x);
383 constexpr ARCCORE_HOST_DEVICE
static bool _eq(Real a, Real b)
Classe gérant un vecteur de réel de dimension 2.
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 2x2.
friend constexpr __host__ __device__ Real2x2 operator/(Real2x2 vec, Real sca)
Division par un scalaire.
constexpr __host__ __device__ Real2x2 & sub(Real2x2 b)
Soustrait b au couple.
constexpr __host__ __device__ Real2x2 operator+(Real2x2 b) const
Créé un couple qui vaut ce couple ajouté à b.
constexpr __host__ __device__ Real2x2 & addSame(Real2 b)
Ajoute b à chaque composante du couple.
friend constexpr __host__ __device__ Real2x2 operator*(Real sca, Real2x2 vec)
Multiplication par un scalaire.
constexpr __host__ __device__ Real2x2 & div(Real2x2 b)
Multiple chaque composante du couple par la composant correspondant de b.
__host__ __device__ Real & operator()(Integer i, Integer j)
Accès à la i-ème ligne et j-ème colonne.
Real2 x
Première composante.
std::ostream & printXy(std::ostream &o) const
Ecrit le couple sur le flot o sous la forme (x,y,z)
ARCANE_DEPRECATED_116 Real2x2(Real ax, Real ay, Real bx, Real by)
Construit le couple ((ax,bx),(ay,by)).
Real2 y
Deuxième composante.
constexpr __host__ __device__ Real2x2 & operator-=(Real2x2 b)
Soustrait b au couple.
constexpr __host__ __device__ Real2x2 & assign(Real2 ax, Real2 ay)
Affecte à l'instance le couple (ax,ay,az)
constexpr __host__ static __device__ Real2x2 null()
Construit la matrice nulle.
constexpr __host__ __device__ bool operator!=(Real2x2 b) const
Compare deux couples. Pour la notion d'égalité, voir operator==()
constexpr __host__ static __device__ Real2x2 fromColumns(Real ax, Real ay, Real bx, Real by)
Construit le couple ((ax,bx),(ay,by)).
constexpr __host__ __device__ void operator/=(Real b)
Divise chaque composante du couple par la composant correspondant de b.
__host__ __device__ Real2 & operator()(Integer i)
Accès à la i-ème ligne (entre 0 et 1 inclus) de l'instance.
constexpr __host__ __device__ Real2x2(Real2 ax, Real2 ay)
Construit le couple (ax,ay)
friend std::istream & operator>>(std::istream &i, Real2x2 &t)
Lit le couple t à partir du flot o.
constexpr __host__ static __device__ Real2x2 fromLines(Real ax, Real bx, Real ay, Real by)
Construit le couple ((ax,bx),(ay,by)).
constexpr __host__ __device__ Real2x2 & assign(Real2x2 f)
Copie le couple f.
constexpr __host__ __device__ Real2x2 operator-(Real2x2 b) const
Créé un couple qui vaut b soustrait de ce couple.
Real2x2(const Real2x2 &f)=default
Construit un couple identique à f.
__host__ __device__ Real2 & operator[](Integer i)
Accès à la i-ème ligne (entre 0 et 1 inclus) de l'instance.
constexpr __host__ __device__ bool operator==(Real2x2 b) const
Compare composant pas composante l'instance courante à b.
constexpr __host__ __device__ Real2x2 & mulSame(Real2 b)
Multiplie chaque composante du couple par b.
Real2x2 & operator=(const Real2x2 &f)=default
Opérateur de recopie.
__host__ __device__ Real operator()(Integer i, Integer j) const
Accès en lecture seule à la i-ème ligne et j-ème colonne.
friend constexpr __host__ __device__ bool operator<(Real2x2 v1, Real2x2 v2)
Opérateur de comparaison.
friend constexpr __host__ __device__ Real2x2 operator*(Real2x2 vec, Real sca)
Multiplication par un scalaire.
__host__ __device__ Real2 operator[](Integer i) const
Accès en lecture seule à la i-ème (entre 0 et 1 inclus) ligne de l'instance.
constexpr __host__ __device__ Real2x2()
Construit la matrice nulle.
__host__ __device__ Real2 operator()(Integer i) const
Accès en lecture seule à la i-ème (entre 0 et 1 inclus) ligne de l'instance.
constexpr __host__ __device__ bool isNearlyZero() const
Compare la matrice avec la matrice nulle.
constexpr __host__ __device__ Real2x2 copy() const
Retourne une copie du couple.
constexpr __host__ __device__ Real2x2 & reset()
Réinitialise le couple avec les constructeurs par défaut.
friend std::ostream & operator<<(std::ostream &o, Real2x2 t)
Ecrit le couple t sur le flot o.
constexpr __host__ __device__ Real2x2 & operator+=(Real2x2 b)
Ajoute b au couple.
constexpr __host__ __device__ Real2x2 & divSame(Real2 b)
Divise chaque composante du couple par b.
constexpr __host__ __device__ Real2x2 & subSame(Real2 b)
Soustrait b à chaque composante du couple.
constexpr __host__ __device__ void operator*=(Real b)
Multiple chaque composante du couple par la composant correspondant de b.
constexpr __host__ __device__ Real2x2 & add(Real2x2 b)
Ajoute b au couple.
constexpr __host__ __device__ Real2x2 & operator=(Real v)
Affecte à l'instance le couple (v,v,v).
constexpr __host__ __device__ Real2x2(Real v)
Construit l'instance avec le triplet (v,v,v).
constexpr __host__ __device__ Real2x2(const Real2x2POD &f)
Construit un couple identique à f.
constexpr __host__ __device__ Real2x2 operator-() const
Créé un tenseur opposé au tenseur actuel.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Structure POD pour un Real2x2.