Espaços nominais
Variantes
Acções

Type-generic math

Da cppreference.com
< c‎ | numeric

O <tgmath.h> cabeçalho inclui os cabeçalhos e <math.h><complex.h> e define vários tipo genérico macros. Estas macros determina a função efectiva de chamar, dependendo dos tipos dos parâmetros.
Original:
The header <tgmath.h> includes the headers <math.h> and <complex.h> and defines several type-generic macros. These macros determines the actual function to call depending on the types of the parameters.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[editar]Trigonométrica, poder, hiperbólica e funções exponenciais NJ

A XXX macro tipo genérico chama um de:
Original:
A type-generic macro XXX calls either of:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • real função:
    Original:
    real function:
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • float variante XXXf
    Original:
    float variant XXXf
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • double variante XXX
    Original:
    double variant XXX
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • longdouble variante XXXl
    Original:
    longdouble variant XXXl
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • função complexa:
    Original:
    complex function:
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • float variante cXXXf
    Original:
    float variant cXXXf
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • double variante cXXX
    Original:
    double variant cXXX
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • longdouble variante cXXXl
    Original:
    longdouble variant cXXXl
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
Uma exceção à regra acima é exp (veja a tabela abaixo).
Original:
An exception to the above rule is exp (see the table below).
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
A função de chamada é determinado como se segue:
Original:
The function to call is determined as follows:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • Se qualquer um dos parâmetros é complexo, em seguida, a função complexa é chamada, caso contrário, a verdadeira função é chamada.
    Original:
    If any of the parameters is complex, then the complex function is called, otherwise the real function is called.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Se qualquer um dos parâmetros é longdouble, em seguida, a variante longdouble é chamado. Caso contrário, se nenhum dos parâmetros é double, em seguida, a variante double é chamado. Caso contrário, é chamada variante float.
    Original:
    If any of the parameters is longdouble, then the longdouble variant is called. Otherwise, if any of the parameters is double, then the double variant is called. Otherwise, float variant is called.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • O comportamento é indefinido é qualquer um dos parâmetros é incompatível com o argumento da função correspondente.
    Original:
    The behavior is undefined is any of the parameters is incompatible with the corresponding argument of the function.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
As macros de tipo genérico são como se segue:
Original:
The type-generic macros are as follows:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Type-generic macro Real function
variants
Complex function
variants
 
float
double
longdouble
float
double
longdouble
asin asinfasinasinlcasinfcasincasinl
acos acosfacosacoslcacosfcacoscacosl
atan atanfatanatanlcatanfcatancatanl
asinh asinhfasinhasinhlcasinhfcasinhcasinhl
acosh acoshfacoshacoshlcacoshfcacoshcacoshl
atanh atanhfatanhatanhlcatanhfcatanhcatanhl
sin sinfsinsinlcsinfcsincsinl
cos cosfcoscoslccosfccosccosl
tan tanftantanlctanfctanctanl
sinh sinhfsinhsinhlcsinhfcsinhcsinhl
cosh coshfcoshcoshlccoshfccoshccoshl
tanh tanhftanhtanhlctanhfctanhctanhl
exp expfexpexplcexpfcexpcexpl
log logflogloglclogfclogclogl
pow powfpowpowlcpowfcpowcpowl
sqrt sqrtfsqrtsqrtlcsqrtfcsqrtcsqrtl
abs fabsffabsfabslcabsfcabscabsl
exp expfexpexplcexpfcexpcexpl

[editar]NJ funções diversas

A XXX macro tipo genérico chama uma das variantes de uma função real:
Original:
A type-generic macro XXX calls either of the variants of a real function:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • float variante XXXf
    Original:
    float variant XXXf
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • double variante XXX
    Original:
    double variant XXX
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • longdouble variante XXXl
    Original:
    longdouble variant XXXl
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
Note, não há modf macro tipo genérico.
Original:
Note, there's no modf type-generic macro.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
A função de chamada é determinado como se segue:
Original:
The function to call is determined as follows:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • Se qualquer um dos parâmetros é longdouble, em seguida, a variante longdouble é chamado. Caso contrário, se nenhum dos parâmetros é double, em seguida, a variante double é chamado. Caso contrário, é chamada variante float.
    Original:
    If any of the parameters is longdouble, then the longdouble variant is called. Otherwise, if any of the parameters is double, then the double variant is called. Otherwise, float variant is called.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • O comportamento é indefinido é qualquer um dos parâmetros é incompatível com o argumento da função correspondente.
    Original:
    The behavior is undefined is any of the parameters is incompatible with the corresponding argument of the function.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
Type-generic macro Real function
variants
 
float
double
longdouble
atan2 atan2fatan2atan2l
cbrt cbrtfcbrtcbrtl
ceil ceilfceilceill
copysign copysignfcopysigncopysignl
erf erfferferfl
erfc erfcferfcerfcl
exp2 exp2fexp2exp2l
expm1 expm1fexpm1expm1l
fdim fdimffdimfdiml
floor floorffloorfloorl
fma fmaffmafmal
fmax fmaxffmaxfmaxl
fmin fminffminfminl
fmod fmodffmodfmodl
frexp frexpffrexpfrexpl
hypot hypotfhypothypotl
ilogb ilogbfilogbilogbl
ldexp ldexpfldexpldexpl
lgamma lgammaflgammalgammal
llrint llrintfllrintllrintl
llround llroundfllroundllroundl
log10 log10flog10log10l
log1p log1pflog1plog1pl
log2 log2flog2log2l
logb logbflogblogbl
lrint lrintflrintlrintl
lround lroundflroundlroundl
nearbyint nearbyintfnearbyintnearbyintl
nextafter nextafterfnextafternextafterl
nexttoward nexttowardfnexttowardnexttowardl
remainder remainderfremainderremainderl
remquo remquofremquoremquol
rint rintfrintrintl
round roundfroundroundl
scalbln scalblnfscalblnscalblnl
scalbn scalbnfscalbnscalbnl
tgamma tgammaftgammatgammal
trunc truncftrunctruncl

[editar]Exemplo

int i;float f;double d;longdouble ld;floatcomplex fc;doublecomplex dc;longdoublecomplex ldc;   // macro -> function callcos(i);// -> cos(i)sin(f);// -> sinf(f)acos(d);// -> acos(d)sqrt(dc);// -> csqrt(dc);


close