Arcane  4.2.1.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Math.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* Math.h (C) 2000-2026 */
9/* */
10/* Fonctions mathématiques diverses. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_UTILS_MATH_H
13#define ARCANE_UTILS_MATH_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#ifndef ARCCORE_COMPILING_FRAMEWORK
19#include "arcane/utils/Convert.h"
20#endif
21#include "arccore/base/MathBase.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane::math
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
32/*!
33 * \brief Tronque la précision du réel \a v à \a nb_digit chiffres significatifs.
34 *
35 * Pour un réel double précision en IEEE 754, le nombre de bits significatif
36 * est de 15 ou 16 suivant la valeur. Il est à noter qu'il n'est possible
37 * de manière simple et rapide de tronquer la précision à une valeur donnée.
38 * C'est pourquoi \a nb_digit représente un nombre de chiffre approximatif.
39 * Notamment, il n'est pas possible de descendre en dessous de 8 chiffres
40 * significatifs.
41 *
42 * Si \a nb_digit est inférieur ou égal à zéro ou supérieur à 15, c'est
43 * la valeur \a v qui est retourné.
44 */
45extern ARCANE_UTILS_EXPORT double
46truncateDouble(double v, Integer nb_digit);
47
48/*---------------------------------------------------------------------------*/
49/*---------------------------------------------------------------------------*/
50
51/*!
52 * \brief Tronque la précision du tableau de réels \a values à
53 * \a nb_digit chiffres significatifs.
54 *
55 * En sortie, chaque élément de \a values est modifié comme après appel
56 * à truncateDouble(double v,Integer nb_digit).
57 */
58extern ARCANE_UTILS_EXPORT void
59truncateDouble(ArrayView<double> values, Integer nb_digit);
60
61/*---------------------------------------------------------------------------*/
62/*---------------------------------------------------------------------------*/
63
64} // End namespace Arcane::math
65
66/*---------------------------------------------------------------------------*/
67/*---------------------------------------------------------------------------*/
68
69#ifdef ARCANE_REAL_USE_APFLOAT
70#include "arcane/utils/MathApfloat.h"
71#endif
72
73/*---------------------------------------------------------------------------*/
74/*---------------------------------------------------------------------------*/
75
76#endif
Déclarations des types utilisés dans Arcane.
Espace de nom pour les fonctions mathématiques.
Definition MathUtils.h:36
double truncateDouble(double v, Integer nb_digit)
Tronque la précision du réel v à nb_digit chiffres significatifs.
Definition Math.cc:78
Int32 Integer
Type représentant un entier.