Share via


Função mad

Executa uma operação aritmética de multiplicação/adição em três valores.

Sintaxe

numeric mad(
  in numeric mvalue,
  in numeric avalue,
  in numeric bvalue
);

Parâmetros

mvalue [in]

Tipo: numérico

O valor de multiplicação.

avalue [in]

Tipo: numérico

O primeiro valor de adição.

bvalue [in]

Tipo: numérico

O segundo valor de adição.

Valor retornado

Tipo: numérico

O resultado de mvalue * avalue + bvalue.

Comentários

Modelo de sombreador mínimo

Essa função tem suporte nos modelos de sombreador a seguir.

Modelo de Sombreador Com suporte
Modelo de sombreador 5 e modelos de sombreador superior sim

 

Essa função tem suporte nos seguintes tipos de sombreadores:

Vértice Casco Domínio Geometry Pixel Computação
x x x x x x

 

Os autores de sombreador podem usar o instrinsic louco para direcionar explicitamente a instrução de hardware louco na saída do sombreador compilado, o que é particularmente útil com sombreadores que marcam resultados com o palavra-chave preciso. A instrução louca pode ser implementada no hardware como "fundida", que oferece maior precisão do que implementar uma instrução mul seguida de uma instrução add , ou como uma mula + adicionar.

Se os autores de sombreador usarem o instrinsic louco para calcular um resultado que o sombreador marcou como preciso, eles indicarão ao hardware para usar qualquer implementação válida da instrução louca (fundida ou não), desde que a implementação seja consistente para todos os usos desse intrínseco louco em qualquer sombreador nesse hardware. Os sombreadores podem aproveitar possíveis melhorias de desempenho usando uma instrução louca nativa (versus mul + add) em algum hardware. O resultado da execução de uma instrução de hardware louco nativo pode ou não ser diferente de executar uma mula seguida por um complemento. No entanto, seja qual for o resultado, o resultado deve ser consistente para que a mesma operação ocorra em vários sombreadores ou em diferentes partes de um sombreador.

Confira também

Funções intrínsecas

Modelo de sombreador 5