the pointer stars got lost, sorry.
void transpose(int X, int Y, double (*out)[X][Y], const double (*in)[Y][X]);