22 #include <sys/types.h>
71 int i, m1, size, rank, start, end, bs, mod;
92 start +=
min( mod, rank );
101 end = ((n-1) / size) * size + 1;
102 for(i=rank+1; i<end; i+=size) {
103 memcpy( Wl, &(A[i*m]), m1*
sizeof(
double));
105 memcpy( &(A[i*m1]), Wl, m1*
sizeof(
double));
108 if ( rank < (n - end)) {
110 memcpy( Wl, &(A[i*m]), m1*
sizeof(
double));
112 memcpy( &(A[i*m1]), Wl, m1*
sizeof(
double));
172 int i, m1, size, rank, start, end, bs, mod;
193 start +=
min( mod, rank );
202 end = ((n-1) % size) ;
203 for(i=n-1-rank; i>end; i-=size) {
204 memcpy( Wl, &(A[i*m1]), m1*
sizeof(
double));
206 memcpy( &(A[i*m]), Wl, m1*
sizeof(
double));
211 memcpy( Wl, &(A[i*m1]), m1*
sizeof(
double));
213 memcpy( &(A[i*m]), Wl, m1*
sizeof(
double));