#define ROTATE(a,i,j,k,l) g=a[i][j]; h=a[k][l]; a[i][j]=g-s*(h+g*tau); a[k][l]=h+s*(g-h*tau);

I have this line in C++; I have no idea how to represent it in C#. Is taht some kind of inline function? How that define work? I usually use #define to define some constant to use with if... this code... else... this code, but here it seems like performing some operations. Also variable "tau" seems to come out of nowhere, or that is some C++ constant?