diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/diff.meta.slang | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/source/slang/diff.meta.slang b/source/slang/diff.meta.slang index 033c173ab..a97ab9eaf 100644 --- a/source/slang/diff.meta.slang +++ b/source/slang/diff.meta.slang @@ -92,6 +92,24 @@ struct DifferentialPair : IDifferentiable } }; +[ForceInline] +void updatePrimal<T : IDifferentiable>(inout DifferentialPair<T> p, T newPrimal) +{ + p = DifferentialPair<T>(newPrimal, p.d); +} + +[ForceInline] +void updateDiff<T : IDifferentiable>(inout DifferentialPair<T> p, T.Differential newDiff) +{ + p = DifferentialPair<T>(p.p, newDiff); +} + +[ForceInline] +void updatePair<T : IDifferentiable>(inout DifferentialPair<T> p, T newPrimal, T.Differential newDiff) +{ + p = DifferentialPair<T>(newPrimal, newDiff); +} + #define VECTOR_MAP_D_UNARY(TYPE, COUNT, D_FUNC, VALUE) \ vector<TYPE, COUNT> result; \ |
