12#ifndef ARCANE_UTILS_MATH_H
13#define ARCANE_UTILS_MATH_H
18#include "arcane/utils/Convert.h"
39ARCCORE_HOST_DEVICE
inline double
42#ifdef ARCANE_CHECK_MATH
52ARCCORE_HOST_DEVICE
inline long double
55#ifdef ARCANE_CHECK_MATH
67ARCCORE_HOST_DEVICE
inline double
70#ifdef ARCANE_CHECK_MATH
80ARCCORE_HOST_DEVICE
inline long double
83#ifdef ARCANE_CHECK_MATH
95ARCCORE_HOST_DEVICE
inline double
104ARCCORE_HOST_DEVICE
inline long double
107 return std::floor(v);
115ARCCORE_HOST_DEVICE
inline double
123ARCCORE_HOST_DEVICE
inline long double
134ARCCORE_HOST_DEVICE
inline double
137#ifdef ARCANE_CHECK_MATH
146ARCCORE_HOST_DEVICE
inline long double
149#ifdef ARCANE_CHECK_MATH
165ARCCORE_HOST_DEVICE
inline double
168#ifdef ARCANE_CHECK_MATH
173 return std::pow(x,y);
184ARCCORE_HOST_DEVICE
inline long double
185pow(
long double x,
long double y)
187#ifdef ARCANE_CHECK_MATH
189 if (x<0.0 && ::floorl(y)!=y)
192 return std::pow(x,y);
201ARCCORE_HOST_DEVICE
inline long double
202pow(
double x,
long double y)
204#ifdef ARCANE_CHECK_MATH
206 if (x<0.0 && ::floorl(y)!=y)
209 return std::pow(x,y);
218ARCCORE_HOST_DEVICE
inline long double
219pow(
long double x,
double y)
221#ifdef ARCANE_CHECK_MATH
226 return std::pow(x,y);
238template<
class T> ARCCORE_HOST_DEVICE
inline T
241 return ( (a<
b) ? a :
b );
247ARCCORE_HOST_DEVICE
inline long double
248min(
long double a,
long double b)
250 return ( (a<
b) ? a :
b );
256ARCCORE_HOST_DEVICE
inline long double
259 return ( (a<
b) ? a :
b );
265ARCCORE_HOST_DEVICE
inline long double
268 return ( (a<
b) ? a :
b );
274ARCCORE_HOST_DEVICE
inline double
277 return ( (a<
b) ? a :
b );
283ARCCORE_HOST_DEVICE
inline float
286 return ( (a<
b) ? a :
b );
292ARCCORE_HOST_DEVICE
inline int
295 return ( (a<
b) ? a :
b );
307template<
class T> ARCCORE_HOST_DEVICE
inline T
310 return ( (a<
b) ?
b : a );
316ARCCORE_HOST_DEVICE
inline long double
317max(
long double a,
long double b)
319 return ( (a<
b) ?
b : a );
325ARCCORE_HOST_DEVICE
inline long double
328 return ( (a<
b) ?
b : a );
334ARCCORE_HOST_DEVICE
inline long double
337 return ( (a<
b) ?
b : a );
343ARCCORE_HOST_DEVICE
inline unsigned long
344max(
unsigned long a,
unsigned long b)
346 return ( (a<
b) ?
b : a );
352ARCCORE_HOST_DEVICE
inline double
355 return ( (a<
b) ?
b : a );
361ARCCORE_HOST_DEVICE
inline float
364 return ( (a<
b) ?
b : a );
370ARCCORE_HOST_DEVICE
inline Int16
373 return ( (a<
b) ?
b : a );
379ARCCORE_HOST_DEVICE
inline Int32
382 return ( (a<
b) ?
b : a );
388ARCCORE_HOST_DEVICE
inline Int64
391 return ( (a<
b) ?
b : a );
397ARCCORE_HOST_DEVICE
inline Int64
400 return ( (a<
b) ?
b : a );
406ARCCORE_HOST_DEVICE
inline Int64
409 return ( (a<
b) ?
b : a );
418ARCCORE_HOST_DEVICE
inline long double
427ARCCORE_HOST_DEVICE
inline double
436ARCCORE_HOST_DEVICE
inline float
446ARCCORE_HOST_DEVICE
inline short
449 return (a>0) ? a : (
short)(-a);
456ARCCORE_HOST_DEVICE
inline int
459 return (a>0) ? a : (-a);
466ARCCORE_HOST_DEVICE
inline long
469 return (a>0
L) ? a : (-a);
476ARCCORE_HOST_DEVICE
inline long long
479 return (a>0
LL) ? a : (-a);
497extern ARCANE_UTILS_EXPORT
double
509extern ARCANE_UTILS_EXPORT
void
520#ifdef ARCANE_REAL_USE_APFLOAT
521#include "arcane/utils/MathApfloat.h"
Déclarations des types utilisés dans Arcane.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
T max(const T &a, const T &b, const T &c)
Retourne le maximum de trois éléments.
ARCCORE_HOST_DEVICE Real2 min(Real2 a, Real2 b)
Retourne le minimum de deux Real2.
Espace de nom pour les fonctions mathématiques.
ARCCORE_HOST_DEVICE double log10(double v)
Logarithme décimal de v.
ARCCORE_HOST_DEVICE double floor(double v)
Arondir v à l'entier immédiatement inférieur.
ARCCORE_HOST_DEVICE double exp(double v)
Exponentielle de v.
ARCCORE_HOST_DEVICE double log(double v)
Logarithme népérien de v.
double truncateDouble(double v, Integer nb_digit)
Tronque la précision du réel v à nb_digit chiffres significatifs.
ARCCORE_HOST_DEVICE double pow(double x, double y)
Fonction puissance.
ARCCORE_HOST_DEVICE double sqrt(double v)
Racine carrée de v.
ARCCORE_HOST_DEVICE void arcaneMathError(long double arg_value, const char *func_name)
Signale un argument invalide d'une fonction mathématique.