div (sm4 - asm)
Разделение на уровне компонентов.
div[_sat] dest[.mask], [-]src0[_abs][.swizzle], [-]src1[_abs][.swizzle] |
---|
Элемент | Описание |
---|---|
Dest |
[in] Результат операции. |
src0 |
[in] Делимое. |
src1 |
[in] Делитель. |
Комментарии
В следующей таблице показаны результаты, полученные при выполнении инструкции с различными классами чисел, при условии, что ни переполнения, ни недополука не происходит.
Следует отметить две допустимые реализации деления: a/b и a*(1/b).
Одним из результатов этого является то, что в приведенной ниже таблице имеются исключения для больших значений знаменателя (больше 8,5070592e+37), где 1/знаменатель является денормом. Так как реализации могут выполнять деление как a*(1/b), а не a/b напрямую, и 1/[большое значение] является денормом, который может быть удален, в некоторых случаях в таблице будут даваться разные результаты. Например, (+/-)INF / (+/-)[значение > 8.5070592e+37] может создавать NaN в некоторых реализациях, но (+/-)INF в других реализациях
В этой таблице F означает конечное-реальное число.
src0 src1 —> | -Inf | -F | -denorm | -0 | +0 | +денорм | +F | +inf | Nan |
---|---|---|---|---|---|---|---|---|---|
-Inf | -inf | -inf | -inf | -inf | -inf | -inf | -inf | Не число | Не число |
-F | -inf | -F | src0 | src0 | src0 | src0 | +-F или +-0 | +inf | Не число |
-denorm | -inf | src1 | -0 | -0 | +0 | +0 | src1 | +inf | Не число |
-0 | -inf | src1 | -0 | -0 | +0 | +0 | src1 | +inf | Не число |
+0 | -inf | src1 | +0 | +0 | +0 | +0 | src1 | +inf | Не число |
+денорм | -inf | src1 | +0 | +0 | +0 | +0 | src1 | +inf | Не число |
+F | -inf | +-F или +-0 | src0 | src0 | src0 | src0 | +F | +inf | Не число |
+inf | Не число | +inf | +inf | +inf | +inf | +inf | +inf | +inf | Не число |
Не число | Не число | Не число | Не число | Не число | Не число | Не число | Не число | Не число | Не число |
Эта инструкция применяется к следующим этапам шейдера:
Вершинный построитель текстуры | Шейдер геометрии | Построитель текстуры |
---|---|---|
x | x | x |
Минимальная модель шейдера
Эта функция поддерживается в следующих моделях шейдеров.
Модель шейдера | Поддерживается |
---|---|
Модель шейдера 5 | да |
Модель шейдера 4.1 | да |
Модель шейдера 4 | да |
Модель шейдера 3 (DirectX HLSL) | нет |
Модель шейдера 2 (DirectX HLSL) | нет |
Модель шейдера 1 (DirectX HLSL) | нет |