58{
59 void BI_ArgCheck(
Int,
Int,
char *,
char,
char,
char,
Int,
Int,
Int,
Int,
76
77
78
81 char ttop, tscope;
82 Int N, length, dest, tlda, trdest, ierr;
85
91
92
93
94
95#ifdef DefCombTop
96 if (ttop == ' ') ttop = DefCombTop;
97#endif
98 if (
Mpval(cdest) == -1) trdest = -1;
99 else trdest =
Mpval(rdest);
100#if (BlacsDebugLvl > 0)
103#endif
105 else tlda =
Mpval(m);
106 switch(tscope)
107 {
108 case 'r':
110 if (trdest == -1) dest = -1;
111 else dest =
Mpval(cdest);
112 break;
113 case 'c':
115 dest = trdest;
116 break;
117 case 'a':
119 if (trdest == -1) dest = -1;
121 break;
122 default:
124 tscope);
125 }
126
127
128
129
130
131
132
133 if (ttop == ' ')
136 length = N * sizeof(double);
137
138
139
141 {
143 bp->
Buff = (
char *) A;
145 }
146
147
148
149 else
150 {
155 }
158
159 switch(ttop)
160 {
161 case ' ':
162 if (dest != -1)
163 {
166 if (ctxt->
scp->
Iam == dest)
168 }
169 else
170 {
171 ierr=MPI_Allreduce(bp->
Buff, bp2->
Buff, bp->
N, bp->
dtype, MPI_SUM,
174 }
176 return;
177 break;
178 case 'i':
180 break;
181 case 'd':
183 break;
184 case 's':
186 break;
187 case 'm':
189 break;
190 case '1':
191 case '2':
192 case '3':
193 case '4':
194 case '5':
195 case '6':
196 case '7':
197 case '8':
198 case '9':
200 break;
201 case 'f':
203 break;
204 case 't':
206 break;
207 case 'h':
208
209
210
213 else
215 break;
216 default :
218 ttop);
219 }
220
221
222
223
225 {
226 if ( (ctxt->
scp->
Iam == dest) || (dest == -1) )
229 }
230 else
231 {
234 }
235}
void BI_ArgCheck(Int ConTxt, Int RoutType, char *routine, char scope, char uplo, char diag, Int m, Int n, Int lda, Int nprocs, Int *prows, Int *pcols)
void BI_BeComb(BLACSCONTEXT *ctxt, BLACBUFF *bp, BLACBUFF *bp2, Int N, VVFUNPTR Xvvop)
Int BI_BuffIsFree(BLACBUFF *bp, Int Wait)
BLACBUFF * BI_GetBuff(Int length)
MPI_Datatype BI_GetMpiGeType(BLACSCONTEXT *ctxt, Int m, Int n, Int lda, MPI_Datatype Dtype, Int *N)
void BI_MringComb(BLACSCONTEXT *ctxt, BLACBUFF *bp, BLACBUFF *bp2, Int N, VVFUNPTR Xvvop, Int dest, Int nrings)
BLACBUFF * BI_Pack(BLACSCONTEXT *ctxt, BVOID *A, BLACBUFF *bp, MPI_Datatype Dtype)
void BI_TreeComb(BLACSCONTEXT *ctxt, BLACBUFF *bp, BLACBUFF *bp2, Int N, VVFUNPTR Xvvop, Int dest, Int nbranches)
void BI_Unpack(BLACSCONTEXT *ctxt, BVOID *A, BLACBUFF *bp, MPI_Datatype Dtype)
void BI_UpdateBuffs(BLACBUFF *Newbp)
void BI_dmvcopy(Int m, Int n, double *A, Int lda, double *buff)
void BI_dvmcopy(Int m, Int n, double *A, Int lda, double *buff)
void BI_dvvsum(Int N, char *vec1, char *vec2)
void BI_BlacsErr(Int ConTxt, Int line, char *file, char *form,...)
#define Mvkpnum(ctxt, prow, pcol)
#define MGetConTxt(Context, ctxtptr)
void(* VVFUNPTR)(Int, char *, char *)