summaryrefslogtreecommitdiffstats
path: root/docs/user-guide
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-03-01 13:19:33 -0800
committerGitHub <noreply@github.com>2023-03-01 13:19:33 -0800
commit6f31eae79d5b4297d0099c5779a9806a786cf9f8 (patch)
treec2d6360994ee5730accab6236ed351ba682153a8 /docs/user-guide
parent6c26aa1f7e3e28e3053dffe686baa8e0499c624d (diff)
Implement derivatives for HLSL intrinsics. (#2684)
* Implement derivatives for HLSL intrinsics. * Vector intrinsics. * Add all intrinsics. --------- Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'docs/user-guide')
-rw-r--r--docs/user-guide/07-autodiff.md13
1 files changed, 9 insertions, 4 deletions
diff --git a/docs/user-guide/07-autodiff.md b/docs/user-guide/07-autodiff.md
index 5ca073983..244ebb47b 100644
--- a/docs/user-guide/07-autodiff.md
+++ b/docs/user-guide/07-autodiff.md
@@ -477,12 +477,17 @@ void back_prop(
The following builtin functions are backward differentiable and both their forward-derivative and backward-propagation functions are already defined in the builtin library:
-- Arithmetic functions: `abs`, `max`, `min`, `sqrt`
-- Trigonometric functions: `sin`, `cos`, `tan`
-- Exponential and logarithmic functions: `exp`, `pow`, `log`, `log2`
-- Vector: `dot`, `cross`
+- Arithmetic functions: `abs`, `max`, `min`, `sqrt`, `rcp`, `rsqrt`, `fma`, `mad`, `fmod`, `frac`, `radians`, `degrees`
+- Interpolation and clamping functions: `lerp`, `smoothstep`, `clamp`, `saturate`
+- Trigonometric functions: `sin`, `cos`, `sincos`, `tan`, `asin`, `acos`, `atan`, `atan2`
+- Hyperbolic functions: `sinh`, `cosh`, `tanh`
+- Exponential and logarithmic functions: `exp`, `exp2`, `pow`, `log`, `log2`, `log10`
+- Vector functions: `dot`, `cross`, `length`, `distance`, `normalize`, `reflect`, `refract`
- Matrix transform: `mul(matrix, vector)`, `mul(vector, matrix)`, `mul(matrix, matrix)`, `transpose`
+Derivatives for the following legacy HLSL intrinsic functions are not implemented:
+- `dst`, `lit`,
+
## Excluding Parameters From Differentiation
Sometimes we do not wish a parameter to be considered differentiable despite it has a differentiable type. We can use the `no_diff` modifier on the parameter to inform the compiler to treat the parameter as non-differentiable and skip generating differentiation code for the parameter. The syntax is: