reverted and generalized original ocl::transpose