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
55#ifdef ARCANE_CHECK_MATH
70#ifdef ARCANE_CHECK_MATH
83#ifdef ARCANE_CHECK_MATH
107 return std::floor(v);
137#ifdef ARCANE_CHECK_MATH
149#ifdef ARCANE_CHECK_MATH
168#ifdef ARCANE_CHECK_MATH
173 return std::pow(x,y);
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);
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);
219pow(
long double x,
double y)
221#ifdef ARCANE_CHECK_MATH
226 return std::pow(x,y);
241 return ( (
a<
b) ?
a :
b );
250 return ( (
a<
b) ?
a :
b );
259 return ( (
a<
b) ?
a :
b );
268 return ( (
a<
b) ?
a :
b );
277 return ( (
a<
b) ?
a :
b );
286 return ( (
a<
b) ?
a :
b );
295 return ( (
a<
b) ?
a :
b );
310 return ( (
a<
b) ?
b :
a );
319 return ( (
a<
b) ?
b :
a );
328 return ( (
a<
b) ?
b :
a );
337 return ( (
a<
b) ?
b :
a );
346 return ( (
a<
b) ?
b :
a );
355 return ( (
a<
b) ?
b :
a );
364 return ( (
a<
b) ?
b :
a );
373 return ( (
a<
b) ?
b :
a );
382 return ( (
a<
b) ?
b :
a );
391 return ( (
a<
b) ?
b :
a );
400 return ( (
a<
b) ?
b :
a );
409 return ( (
a<
b) ?
b :
a );
459 return (
a>0) ?
a : (-
a);
469 return (
a>0
L) ?
a : (-
a);
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.
Référence à une instance.
__host__ __device__ Real2 min(Real2 a, Real2 b)
Retourne le minimum de deux Real2.
T max(const T &a, const T &b, const T &c)
Retourne le maximum de trois éléments.
Espace de nom pour les fonctions mathématiques.
__host__ __device__ double pow(double x, double y)
Fonction puissance.
__host__ __device__ double floor(double v)
Arondir v à l'entier immédiatement inférieur.
__host__ __device__ double sqrt(double v)
Racine carrée de v.
__host__ __device__ double log(double v)
Logarithme népérien de v.
__host__ __device__ double log10(double v)
Logarithme décimal de v.
double truncateDouble(double v, Integer nb_digit)
Tronque la précision du réel v à nb_digit chiffres significatifs.
__host__ __device__ double exp(double v)
Exponentielle de v.
__host__ __device__ void arcaneMathError(long double arg_value, const char *func_name)
Signale un argument invalide d'une fonction mathématique.