summaryrefslogtreecommitdiffstats
path: root/source/slang/diff.meta.slang
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-02-27 21:21:39 -0800
committerGitHub <noreply@github.com>2023-02-27 21:21:39 -0800
commitf23e36243e9c59c02f66ec2e18b80ba4ea540f45 (patch)
tree6bf0e2a3676fe84067f70fcbda4549fa4eb6504d /source/slang/diff.meta.slang
parent10e2d9c7c532c204f26bb2c9f383f21b121b2ff2 (diff)
Diagnose on storing differentiable value into non-differentiable location. (#2681)
Diffstat (limited to 'source/slang/diff.meta.slang')
-rw-r--r--source/slang/diff.meta.slang23
1 files changed, 2 insertions, 21 deletions
diff --git a/source/slang/diff.meta.slang b/source/slang/diff.meta.slang
index 859b8a488..8931cccdd 100644
--- a/source/slang/diff.meta.slang
+++ b/source/slang/diff.meta.slang
@@ -320,27 +320,8 @@ void mul(inout DifferentialPair<matrix<T, R, N>> left, inout DifferentialPair<ma
// Detach and set derivatives to zero
__generic<T : IDifferentiable>
-T detach(T x)
-{
- return x;
-}
-
-__generic<T : IDifferentiable>
-[ForwardDerivativeOf(detach)]
-DifferentialPair<T> __d_detach(DifferentialPair<T> dpx)
-{
- return DifferentialPair<T>(
- dpx.p,
- T.dzero()
- );
-}
-
-__generic<T : IDifferentiable>
-[BackwardDerivativeOf(detach)]
-void __d_detach(inout DifferentialPair<T> dpx, T.Differential dOut)
-{
- dpx = diffPair(dpx.p, T.dzero());
-}
+__intrinsic_op($(kIROp_DetachDerivative))
+T detach(T x);
// Natural Exponent