fdim
, fdimf
, fdiml
Determina a diferença positiva entre os primeiros e segundos valores.
Sintaxe
double fdim(
double x,
double y
);
float fdim(
float x,
float y
); //C++ only
long double fdim(
long double x,
long double y
); //C++ only
float fdimf(
float x,
float y
);
long double fdiml(
long double x,
long double y
);
#define fdim(X) // Requires C11 or higher
Parâmetros
x
O primeiro valor.
y
O segundo valor.
Valor retornado
Retorna a diferença positiva entre x
e y
:
Valor retornado | Cenário |
---|---|
x-y |
if x >y |
0 | se x <= y |
Caso contrário, pode retornar um dos seguintes erros:
Problema | Return |
---|---|
Erro de intervalo de estouro | +HUGE_VAL, +HUGE_VALF ou +HUGE_VALL |
Erro de intervalo de estouro negativo | valor correto (após o arredondamento) |
x ou y é NaN |
NaN |
Os erros são relatados conforme especificado em _matherr
.
Comentários
Como C++ permite sobrecargas, é possível chamar sobrecargas de fdim
que usam e retornam tipos float
e long double
. Em um programa C, a menos que esteja usando a macro <tgmath.h> para chamar essa função, fdim
sempre recebe e retorna um double
.
Se você usa a macro <tgmath.h>fdim()
, o tipo do argumento determina qual versão da função será selecionada. Confira Matemática do tipo genérico para obter detalhes.
Exceto para o tratamento de NaN, essa função é equivalente a fmax(x - y, 0)
.
Requisitos
Função | Cabeçalho C | Cabeçalho C++ |
---|---|---|
fdim , fdimf , fdiml |
<math.h> | <cmath> |
Macro fdim |
<tgmath.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Confira também
Referência alfabética de função
fmax
, fmaxf
, fmaxl
abs
, labs
, llabs
, _abs64