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