yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
b8663a5d9
master
1//TEST:SIMPLE(filecheck=CHECK): -target spirv 2[Differentiable] 3float square(float x, float y) 4{ 5 return x * x + y * y; 6} 7 8void main() 9{ 10 // Forward mode differentiation 11 let x = diffPair(3.0, 1.0); // x = 3, 𝜕x/𝜕𝛉 = 1 12 let y = diffPair(4.0, 1.0); // y = 4, 𝜕y/𝜕𝛄 = 1 13 let result = fwd_diff(square)(x, y); 14 printf("dResult: %f\n", result.d); 15 16 // Backward mode differentiation 17 let dLdSquare = 1.0f; 18 // CHECK-NOT: error 30049 19 // CHECK: error 30047 20 // CHECK-NOT: error 30049 21 bwd_diff(square)(x, y, dLdSquare); 22 printf("dL/dx: %f, dL/dy: %f\n", x.d, y.d); 23}