12#ifndef ARCCORE_BASE_MATHREAL2_H
13#define ARCCORE_BASE_MATHREAL2_H
17#include "arccore/base/Real2.h"
18#include "arccore/base/MathBase.h"
31 inline constexpr ARCCORE_HOST_DEVICE
bool isNearlyZero(
const Real2& v)
33 return math::isNearlyZero(v.
x) && math::isNearlyZero(v.
y);
39 return v.
x * v.
x + v.
y * v.
y;
43 inline ARCCORE_HOST_DEVICE
Real normL2(
const Real2& v)
57 Real d = math::normL2(v);
71 Real d = math::normL2(v);
87inline constexpr ARCCORE_HOST_DEVICE
bool Real2::
90 return math::isNearlyZero(*
this);
96 return math::normL2(*
this);
108 return math::normL2(*
this);
Classe gérant un vecteur réel 2-dimensionnel.
__host__ __device__ Real normL2() const
Retourne la norme du couple $ .
constexpr __host__ __device__ Real2()
Construit le vecteur nul.
constexpr __host__ __device__ bool isNearlyZero() const
Indique si l'instance est proche de l'instance nulle.
__host__ __device__ Real abs() const
Retourne la norme du couple $ .
Real2 & normalize()
Normalise le couple.
constexpr __host__ __device__ Real2 & divSame(Real b)
Divise chaque composante du couple par b.
Espace de nom pour les fonctions mathématiques.
Real2 normalizeL2(const Real2 &v)
Retourne le couple v normalisé par la norme L2.
constexpr __host__ __device__ DataType squareNormL2(const NumVector< DataType, Size > &v)
Retourne le carré de la norme L2 du vecteur.
bool isZero(const BuiltInProxy< _Type > &a)
Teste si une valeur est exactement égale à zéro.
Real2 & mutableNormalize(Real2 &v)
Normalise le couple.
apfloat sqrt(apfloat v)
Racine carrée de v.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
double Real
Type représentant un réel.
Real y
deuxième composante du couple
Real x
première composante du couple