$for (silrdx)

# TXYZ3 -- Generic 3d transpose, x->x, y->y, z->z.  The arrays need not be
# identical.

procedure txyz3$t (a, b, nx, ny, nz)

PIXEL	a[nx, ny, nz], b[nx, ny, nz]
int	nx, ny, nz, x, y, z

begin
	do x = 1, nx
	   do y = 1, ny
	       do z = 1, nz
		   b[x, y, z] = a[x, y, z]
end


# TXZY3 -- Generic 3d transpose, x->x, y->z, z->y.  The arrays need not be
# identical.

procedure txzy3$t (a, b, nx, ny, nz)

PIXEL	a[nx, ny, nz], b[nx, nz, ny]
int	nx, ny, nz, x, y, z

begin
	do x = 1, nx
	   do y = 1, ny
	       do z = 1, nz
		   b[x, z, y] = a[x, y, z]
end


# TYXZ3 -- Generic 3d transpose, x->y, y->x, z->z.  The arrays need not be
# identical.

procedure tyxz3$t (a, b, nx, ny, nz)

PIXEL	a[nx, ny, nz], b[ny, nx, nz]
int	nx, ny, nz, x, y, z

begin
	do x = 1, nx
	   do y = 1, ny
	       do z = 1, nz
		   b[y, x, z] = a[x, y, z]
end


# TYZX3 -- Generic 3d transpose, x->y, y->z, z->x.  The arrays need not be
# identical.

procedure tyzx3$t (a, b, nx, ny, nz)

PIXEL	a[nx, ny, nz], b[ny, nz, nx]
int	nx, ny, nz, x, y, z

begin
	do x = 1, nx
	   do y = 1, ny
	       do z = 1, nz
		   b[y, z, x] = a[x, y, z]
end


# TZXY3 -- Generic 3d transpose, x->z, y->x, z->y.  The arrays need not be
# identical.

procedure tzxy3$t (a, b, nx, ny, nz)

PIXEL	a[nx, ny, nz], b[nz, nx, ny]
int	nx, ny, nz, x, y, z

begin
	do x = 1, nx
	   do y = 1, ny
	       do z = 1, nz
		   b[z, x, y] = a[x, y, z]
end


# TZYX3 -- Generic 3d transpose, x->z, y->y, z->x.  The arrays need not be
# identical.

procedure tzyx3$t (a, b, nx, ny, nz)

PIXEL	a[nx, ny, nz], b[nz, ny, nx]
int	nx, ny, nz, x, y, z

begin
	do x = 1, nx
	   do y = 1, ny
	       do z = 1, nz
		   b[z, y, x] = a[x, y, z]
end

$endfor
