12#ifndef ARCANE_UTILS_REAL2X2_H
13#define ARCANE_UTILS_REAL2X2_H
17#include "arcane/utils/Real2.h"
133 constexpr ARCCORE_HOST_DEVICE
Real2x2 copy()
const {
return (*
this); }
173 std::istream& assign(std::istream& i);
175 std::ostream& print(std::ostream& o)
const;
177 std::ostream& printXy(std::ostream& o)
const;
265 return (
x == b.
x) && (
y == b.
y);
284 ARCCORE_CHECK_AT(i, 2);
294 ARCCORE_CHECK_AT(i, 2);
305 ARCCORE_CHECK_AT(i, 2);
306 ARCCORE_CHECK_AT(j, 2);
316 ARCCORE_CHECK_AT(i, 2);
326 ARCCORE_CHECK_AT(i, 2);
337 ARCCORE_CHECK_AT(i, 2);
338 ARCCORE_CHECK_AT(j, 2);
359 return Real2x2(vec.
x * sca, vec.
y * sca);
365 return Real2x2(vec.
x * sca, vec.
y * sca);
371 return Real2x2(vec.
x / sca, vec.
y / sca);
385 return (v1.
x < v2.
x);
402 inline constexpr ARCCORE_HOST_DEVICE
bool isNearlyZero()
const;
433 constexpr ARCCORE_HOST_DEVICE
bool isNearlyZero(
const Real2x2& v)
435 return math::isNearlyZero(v.
x) && math::isNearlyZero(v.
y);
445 return math::isNearlyZero(*
this);
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
Classe gérant un vecteur de réel de dimension 2.
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.
constexpr __host__ __device__ Real2x2(ConstArrayView< Real > av)
Construit le couple ((av[0], av[1]), (av[2], av[3]))
__host__ __device__ Real2 & operator()(Integer i)
Accès à la i-ème ligne (entre 0 et 1 inclus) de l'instance.
constexpr __host__ __device__ ArrayView< Real > view()
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__ static __device__ bool _eq(Real a, Real b)
Compare les valeurs de a et b avec le comparateur TypeEqualT.
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__ ConstArrayView< Real > constView() const
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.
constexpr __host__ static __device__ bool isEqual(const T &a, const T &b)
Compare a à b.
Espace de nom pour l'utilisation des accélérateurs.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
double Real
Type représentant un réel.
Structure POD pour un Real2x2.