Namespaces
Variants

std:: cbrt, std:: cbrtf, std:: cbrtl

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
(C++11)
(C++11)
(C++11) (C++11) (C++11)
Floating point manipulation functions
(C++11) (C++11)
(C++11)
(C++11)
Classification and comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
Défini dans l'en-tête <cmath>
(1)
float cbrt ( float num ) ;

double cbrt ( double num ) ;

long double cbrt ( long double num ) ;
(jusqu'à C++23)
/*floating-point-type*/
cbrt ( /*floating-point-type*/ num ) ;
(depuis C++23)
(constexpr depuis C++26)
float cbrtf ( float num ) ;
(2) (depuis C++11)
(constexpr depuis C++26)
long double cbrtl ( long double num ) ;
(3) (depuis C++11)
(constexpr depuis C++26)
Surcharge SIMD (depuis C++26)
Défini dans l'en-tête <simd>
template < /*math-floating-point*/ V >

constexpr /*deduced-simd-t*/ < V >

cbrt ( const V & v_num ) ;
(S) (depuis C++26)
Défini dans l'en-tête <cmath>
template < class Integer >
double cbrt ( Integer num ) ;
(A) (constexpr depuis C++26)
1-3) Calcule la racine cubique de num . La bibliothèque fournit des surcharges de std::cbrt pour tous les types à virgule flottante non qualifiés cv comme type du paramètre. (depuis C++23)
S) La surcharge SIMD effectue un calcul std::cbrt élément par élément sur v_num .
(Voir math-floating-point et deduced-simd-t pour leurs définitions.)
(depuis C++26)
A) Des surcharges supplémentaires sont fournies pour tous les types entiers, qui sont traités comme double .
(depuis C++11)

Table des matières

Paramètres

num - valeur à virgule flottante ou entière

Valeur de retour

Si aucune erreur ne se produit, la racine cubique de num ( 3 num ), est retournée.

Si une erreur de plage se produit en raison d'un dépassement inférieur, le résultat correct (après arrondi) est retourné.

Gestion des erreurs

Les erreurs sont signalées comme spécifié dans math_errhandling .

Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),

  • si l'argument est ±0 ou ±∞, il est retourné, inchangé.
  • si l'argument est NaN, NaN est retourné.

Notes

std :: cbrt ( num ) is not equivalent to std:: pow ( num, 1.0 / 3 ) because the rational number
1
3
is typically not equal to 1.0 / 3 and std::pow cannot raise a negative base to a fractional exponent. Moreover, std :: cbrt ( num ) usually gives more accurate results than std:: pow ( num, 1.0 / 3 ) (see example).

Les surcharges supplémentaires ne sont pas requises d'être fournies exactement comme (A) . Elles doivent seulement être suffisantes pour garantir que pour leur argument num de type entier, std :: cbrt ( num ) ait le même effet que std :: cbrt ( static_cast < double > ( num ) ) .

Exemple

#include <cmath>
#include <iomanip>
#include <iostream>
#include <limits>
int main()
{
    std::cout
        << "Utilisation normale :\n"
        << "cbrt(729)       = " << std::cbrt(729) << '\n'
        << "cbrt(-0.125)    = " << std::cbrt(-0.125) << '\n'
        << "Valeurs spéciales :\n"
        << "cbrt(-0)        = " << std::cbrt(-0.0) << '\n'
        << "cbrt(+inf)      = " << std::cbrt(INFINITY) << '\n'
        << "Précision et comparaison avec `pow` :\n"
        << std::setprecision(std::numeric_limits<double>::max_digits10)
        << "cbrt(343)       = " << std::cbrt(343) << '\n'
        << "pow(343,1.0/3)  = " << std::pow(343, 1.0 / 3) << '\n'
        << "cbrt(-343)      = " << std::cbrt(-343) << '\n'
        << "pow(-343,1.0/3) = " << std::pow(-343, 1.0 / 3) << '\n';
}

Sortie possible :

Utilisation normale :
cbrt(729)       = 9
cbrt(-0.125)    = -0.5
Valeurs spéciales :
cbrt(-0)        = -0
cbrt(+inf)      = inf
Précision et comparaison avec `pow` :
cbrt(343)       = 7
pow(343,1.0/3)  = 6.9999999999999991
cbrt(-343)      = -7
pow(-343,1.0/3) = -nan

Voir aussi

(C++11) (C++11)
élève un nombre à la puissance donnée ( x y )
(fonction)
(C++11) (C++11)
calcule la racine carrée ( x )
(fonction)
(C++11) (C++11) (C++11)
calcule l'hypoténuse x 2
+y 2
et x 2
+y 2
+z 2
(depuis C++17)

(fonction)