/*-------------------------------------------------
  scalapackmr.h

  This is header file to indicate
  Cp*gemr2d, Cp*trmr2d

  These functions distributs matrix from
  matirx with respect to one description array
  to another matrix with respect to
  different description.

   modified by Makoto Yamshita 2002.07.11 
-------------------------------------------------*/

void Cpcgemr2d(int m, int n, complex* ptrmyblock,
	       int ia, int ja, int* desca,
	       complex* ptrmynewblock,
	       int  ib, int jb, int* descb,
	       int globcontext);
void Cpdgemr2d(int m, int n, double* ptrmyblock,
	       int ia, int ja, int* desca,
	       double* ptrmynewblock,
	       int  ib, int jb, int* descb,
	       int globcontext);
void Cpigemr2d(int m, int n, int* ptrmyblock,
	       int ia, int ja, int* desca,
	       int* ptrmynewblock,
	       int  ib, int jb, int* descb,
	       int globcontext);
void Cpsgemr2d(int m, int n, float* ptrmyblock,
	       int ia, int ja, int* desca,
	       float* ptrmynewblock,
	       int ib, int jb, int* descb,
	       int globcontext);
void Cpzgemr2d(int m, int n, doublecomplex* ptrmyblock,
	       int ia, int ja, int* desca,
	       doublecomplex* ptrmynewblock,
	       int ib, int jb, int* descb,
	       int globcontext);
void Cpctrmr2d(char* uplo, char* diag,
	       int m, int n, complex* ptrmyblock,
	       int ia, int ja, int* desca,
	       complex* ptrmynewblock,
	       int  ib, int jb, int* descb,
	       int globcontext);
void Cpdtrmr2d(char* uplo, char* diag,
	       int m, int n, double* ptrmyblock,
	       int ia, int ja, int* desca,
	       double* ptrmynewblock,
	       int  ib, int jb, int* descb,
	       int globcontext);
void Cpitrmr2d(char* uplo, char* diag,
	       int m, int n, int* ptrmyblock,
	       int ia, int ja, int* desca,
	       int* ptrmynewblock,
	       int  ib, int jb, int* descb,
	       int globcontext);
void Cpstrmr2d(char* uplo, char* diag,
	       int m, int n, float* ptrmyblock,
	       int ia, int ja, int* desca,
	       float* ptrmynewblock,
	       int ib, int jb, int* descb,
	       int globcontext);
void Czstrmr2d(char* uplo, char* diag,
	       int m, int n, doublecomplex* ptrmyblock,
	       int ia, int ja, int* desca,
	       doublecomplex* ptrmynewblock,
	       int ib, int jb, int* descb,
	       int globcontext);
