Skip to content

Commit eb95763

Browse files
authored
Merge pull request Reference-ScaLAPACK#16 from luszczek/master
Use pointer macro to prevent integer oveflow
2 parents 9e4ae1e + b53f68b commit eb95763

File tree

10 files changed

+36
-36
lines changed

10 files changed

+36
-36
lines changed

PBLAS/SRC/pdamax_.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ void pdamax_( N, AMAX, INDX, X, IX, JX, DESCX, INCX )
233233
if( ( ( myrow == Xrow ) || ( Xrow < 0 ) ) &&
234234
( ( mycol == Xcol ) || ( Xcol < 0 ) ) )
235235
{
236-
*INDX = *JX; *AMAX = X[Xii+Xjj*Xd[LLD_]];
236+
*INDX = *JX; *AMAX = *Mptr(X,Xii,Xjj,Xd[LLD_],1);
237237
}
238238
return;
239239
}
@@ -260,9 +260,9 @@ void pdamax_( N, AMAX, INDX, X, IX, JX, DESCX, INCX )
260260
{
261261
Xld = Xd[LLD_];
262262
Xlindx = Xjj - 1 +
263-
idamax_( &Xnq, ((char*)(X+(Xii+Xjj*Xld))), &Xld );
263+
idamax_( &Xnq, ((char*)Mptr(X,Xii,Xjj,Xld,1)), &Xld );
264264
Mindxl2g( Xgindx, Xlindx, Xinb, Xnb, mycol, Xsrc, npcol );
265-
work[0] = X[Xii+Xlindx*Xld];
265+
work[0] = *Mptr(X,Xii,Xlindx,Xld,1);
266266
work[1] = ((double)( Xgindx+1 ));
267267
}
268268
else
@@ -343,8 +343,8 @@ void pdamax_( N, AMAX, INDX, X, IX, JX, DESCX, INCX )
343343
*/
344344
Xld = Xd[LLD_];
345345
Xlindx = Xjj - 1 +
346-
idamax_( &Xnq, ((char*)(X+(Xii+Xjj*Xld))), &Xld );
347-
*AMAX = X[Xii+Xlindx*Xld];
346+
idamax_( &Xnq, ((char*)Mptr(X,Xii,Xjj,Xld,1)), &Xld );
347+
*AMAX = *Mptr(X,Xii,Xlindx,Xld,1);
348348
}
349349
else
350350
{
@@ -419,9 +419,9 @@ void pdamax_( N, AMAX, INDX, X, IX, JX, DESCX, INCX )
419419
{
420420
Xld = Xd[LLD_];
421421
Xlindx = Xii - 1 +
422-
idamax_( &Xnp, ((char*)(X+(Xii+Xjj*Xld))), INCX );
422+
idamax_( &Xnp, ((char*)Mptr(X,Xii,Xjj,Xld,1)), INCX );
423423
Mindxl2g( Xgindx, Xlindx, Ximb, Xmb, myrow, Xsrc, nprow );
424-
work[0] = X[Xlindx+Xjj*Xld];
424+
work[0] = *Mptr(X,Xlindx,Xjj,Xld,1);
425425
work[1] = ((double)( Xgindx+1 ));
426426
}
427427
else
@@ -503,8 +503,8 @@ void pdamax_( N, AMAX, INDX, X, IX, JX, DESCX, INCX )
503503
*/
504504
Xld = Xd[LLD_];
505505
Xlindx = Xii - 1 +
506-
idamax_( &Xnp, ((char*)(X+(Xii+Xjj*Xld))), INCX );
507-
*AMAX = X[Xlindx+Xjj*Xld];
506+
idamax_( &Xnp, ((char*)Mptr(X,Xii,Xjj,Xld,1)), INCX );
507+
*AMAX = *Mptr(X,Xlindx,Xjj,Xld,1);
508508
}
509509
else
510510
{

PBLAS/SRC/pdasum_.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ void pdasum_( N, ASUM, X, IX, JX, DESCX, INCX )
225225
if( ( ( myrow == Xrow ) || ( Xrow < 0 ) ) &&
226226
( ( mycol == Xcol ) || ( Xcol < 0 ) ) )
227227
{
228-
*ASUM = ABS( X[Xii+Xjj*Xd[LLD_]] );
228+
*ASUM = ABS( *Mptr(X,Xii,Xjj,Xd[LLD_],1) );
229229
}
230230
return;
231231
}
@@ -243,7 +243,7 @@ void pdasum_( N, ASUM, X, IX, JX, DESCX, INCX )
243243
if( Xnq > 0 )
244244
{
245245
Xld = Xd[LLD_];
246-
dvasum_( &Xnq, ((char *) ASUM), ((char *)( X+(Xii+Xjj*Xld) )),
246+
dvasum_( &Xnq, ((char *) ASUM), ((char *)Mptr( X,Xii,Xjj,Xld,1 )),
247247
&Xld );
248248
}
249249
/*
@@ -276,7 +276,7 @@ void pdasum_( N, ASUM, X, IX, JX, DESCX, INCX )
276276
if( Xnp > 0 )
277277
{
278278
dvasum_( &Xnp, ((char *) ASUM),
279-
((char *)( X+(Xii+Xjj*Xd[LLD_]) )), INCX );
279+
((char *)Mptr( X,Xii,Xjj,Xd[LLD_],1) ), INCX );
280280
}
281281
/*
282282
* If Xnp <= 0, ASUM is zero (see initialization above)

PBLAS/SRC/pdger_.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ void pdger_( M, N, ALPHA, X, IX, JX, DESCX, INCX, Y, IY, JY, DESCY,
286286
if( ( Amp > 0 ) && ( Anq > 0 ) )
287287
{
288288
dger_( &Amp, &Anq, ((char *) ALPHA), XA, &ione, YA, &YAd[LLD_],
289-
((char *) (A+(Aii+Ajj*Ald))), &Ald );
289+
((char *)Mptr(A,Aii,Ajj,Ald,1)), &Ald );
290290
}
291291
if( XAfr ) free( XA );
292292
if( YAfr ) free( YA );

PBLAS/SRC/pdnrm2_.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ void pdnrm2_( N, NORM2, X, IX, JX, DESCX, INCX )
224224
*/
225225
if( ( ( myrow == Xrow ) || ( Xrow < 0 ) ) &&
226226
( ( mycol == Xcol ) || ( Xcol < 0 ) ) )
227-
*NORM2 = ABS( X[Xii+Xjj*Xd[LLD_]] );
227+
*NORM2 = ABS( *Mptr(X,Xii,Xjj,Xd[LLD_],1) );
228228
return;
229229
}
230230
else if( *INCX == Xd[M_] )
@@ -246,7 +246,7 @@ void pdnrm2_( N, NORM2, X, IX, JX, DESCX, INCX )
246246
if( Xnq > 0 )
247247
{
248248
Xld = Xd[LLD_];
249-
Xptr = X+(Xii+Xjj*Xld);
249+
Xptr = Mptr(X,Xii,Xjj,Xld,1);
250250

251251
for( k = 0; k < Xnq; k++ )
252252
{
@@ -366,7 +366,7 @@ void pdnrm2_( N, NORM2, X, IX, JX, DESCX, INCX )
366366
Xnp = PB_Cnumroc( *N, Xi, Xd[IMB_], Xd[MB_], myrow, Xd[RSRC_], nprow );
367367
if( Xnp > 0 )
368368
{
369-
Xptr = X+(Xii+Xjj*Xd[LLD_]);
369+
Xptr = Mptr(X,Xii,Xjj,Xd[LLD_],1);
370370

371371
for( k = 0; k < Xnp; k++ )
372372
{

PBLAS/SRC/pdscal_.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,12 +210,12 @@ void pdscal_( N, ALPHA, X, IX, JX, DESCX, INCX )
210210
Xld = Xd[LLD_];
211211
if( ALPHA[REAL_PART] == ZERO )
212212
{
213-
dset_( &Xnq, ((char *) ALPHA), ((char *)(X+(Xii+Xjj*Xld))),
213+
dset_( &Xnq, ((char *) ALPHA), ((char *)Mptr(X,Xii,Xjj,Xld,1)),
214214
&Xld );
215215
}
216216
else
217217
{
218-
dscal_( &Xnq, ((char *) ALPHA), ((char *)(X+(Xii+Xjj*Xld))),
218+
dscal_( &Xnq, ((char *) ALPHA), ((char *)Mptr(X,Xii,Xjj,Xld,1)),
219219
&Xld );
220220
}
221221
}
@@ -239,12 +239,12 @@ void pdscal_( N, ALPHA, X, IX, JX, DESCX, INCX )
239239
if( ALPHA[REAL_PART] == ZERO )
240240
{
241241
dset_( &Xnp, ((char *) ALPHA),
242-
((char *)( X+(Xii+Xjj*Xd[LLD_]) )), INCX );
242+
((char *)Mptr( X,Xii,Xjj,Xd[LLD_],1) ), INCX );
243243
}
244244
else
245245
{
246246
dscal_( &Xnp, ((char *) ALPHA),
247-
((char *)( X+(Xii+Xjj*Xd[LLD_]) )), INCX );
247+
((char *)Mptr( X,Xii,Xjj,Xd[LLD_],1) ), INCX );
248248
}
249249
}
250250
}

PBLAS/SRC/psamax_.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ void psamax_( N, AMAX, INDX, X, IX, JX, DESCX, INCX )
260260
{
261261
Xld = Xd[LLD_];
262262
Xlindx = Xjj - 1 +
263-
isamax_( &Xnq, ((char*)(X+(Xii+Xjj*Xld))), &Xld );
263+
isamax_( &Xnq, ((char*)(Mptr(X,Xii,Xjj,Xld,1))), &Xld );
264264
Mindxl2g( Xgindx, Xlindx, Xinb, Xnb, mycol, Xsrc, npcol );
265265
work[0] = X[Xii+Xlindx*Xld];
266266
work[1] = ((float )( Xgindx+1 ));
@@ -343,8 +343,8 @@ void psamax_( N, AMAX, INDX, X, IX, JX, DESCX, INCX )
343343
*/
344344
Xld = Xd[LLD_];
345345
Xlindx = Xjj - 1 +
346-
isamax_( &Xnq, ((char*)(X+(Xii+Xjj*Xld))), &Xld );
347-
*AMAX = X[Xii+Xlindx*Xld];
346+
isamax_( &Xnq, ((char*)(Mptr(X,Xii,Xjj,Xld, 1))), &Xld );
347+
*AMAX = *Mptr(X,Xii,Xlindx,Xld,1);
348348
}
349349
else
350350
{
@@ -419,9 +419,9 @@ void psamax_( N, AMAX, INDX, X, IX, JX, DESCX, INCX )
419419
{
420420
Xld = Xd[LLD_];
421421
Xlindx = Xii - 1 +
422-
isamax_( &Xnp, ((char*)(X+(Xii+Xjj*Xld))), INCX );
422+
isamax_( &Xnp, ((char*)Mptr(X,Xii,Xjj,Xld,1)), INCX );
423423
Mindxl2g( Xgindx, Xlindx, Ximb, Xmb, myrow, Xsrc, nprow );
424-
work[0] = X[Xlindx+Xjj*Xld];
424+
work[0] = *Mptr(X,Xlindx,Xjj,Xld,1);
425425
work[1] = ((float )( Xgindx+1 ));
426426
}
427427
else

PBLAS/SRC/psasum_.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ void psasum_( N, ASUM, X, IX, JX, DESCX, INCX )
225225
if( ( ( myrow == Xrow ) || ( Xrow < 0 ) ) &&
226226
( ( mycol == Xcol ) || ( Xcol < 0 ) ) )
227227
{
228-
*ASUM = ABS( X[Xii+Xjj*Xd[LLD_]] );
228+
*ASUM = ABS( *Mptr(X,Xii,Xjj,Xd[LLD_],1) );
229229
}
230230
return;
231231
}
@@ -243,7 +243,7 @@ void psasum_( N, ASUM, X, IX, JX, DESCX, INCX )
243243
if( Xnq > 0 )
244244
{
245245
Xld = Xd[LLD_];
246-
svasum_( &Xnq, ((char *) ASUM), ((char *)( X+(Xii+Xjj*Xld) )),
246+
svasum_( &Xnq, ((char *) ASUM), ((char *)Mptr( X,Xii,Xjj,Xld,1) ),
247247
&Xld );
248248
}
249249
/*
@@ -276,7 +276,7 @@ void psasum_( N, ASUM, X, IX, JX, DESCX, INCX )
276276
if( Xnp > 0 )
277277
{
278278
svasum_( &Xnp, ((char *) ASUM),
279-
((char *)( X+(Xii+Xjj*Xd[LLD_]) )), INCX );
279+
((char *)Mptr( X,Xii,Xjj,Xd[LLD_],1) ), INCX );
280280
}
281281
/*
282282
* If Xnp <= 0, ASUM is zero (see initialization above)

PBLAS/SRC/psger_.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ void psger_( M, N, ALPHA, X, IX, JX, DESCX, INCX, Y, IY, JY, DESCY,
286286
if( ( Amp > 0 ) && ( Anq > 0 ) )
287287
{
288288
sger_( &Amp, &Anq, ((char *) ALPHA), XA, &ione, YA, &YAd[LLD_],
289-
((char *) (A+(Aii+Ajj*Ald))), &Ald );
289+
((char *)Mptr(A,Aii,Ajj,Ald,1)), &Ald );
290290
}
291291
if( XAfr ) free( XA );
292292
if( YAfr ) free( YA );

PBLAS/SRC/psnrm2_.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ void psnrm2_( N, NORM2, X, IX, JX, DESCX, INCX )
224224
*/
225225
if( ( ( myrow == Xrow ) || ( Xrow < 0 ) ) &&
226226
( ( mycol == Xcol ) || ( Xcol < 0 ) ) )
227-
*NORM2 = ABS( X[Xii+Xjj*Xd[LLD_]] );
227+
*NORM2 = ABS( *Mptr(X,Xii,Xjj,Xd[LLD_],1) );
228228
return;
229229
}
230230
else if( *INCX == Xd[M_] )
@@ -246,7 +246,7 @@ void psnrm2_( N, NORM2, X, IX, JX, DESCX, INCX )
246246
if( Xnq > 0 )
247247
{
248248
Xld = Xd[LLD_];
249-
Xptr = X+(Xii+Xjj*Xld);
249+
Xptr = Mptr(X,Xii,Xjj,Xld,1);
250250

251251
for( k = 0; k < Xnq; k++ )
252252
{
@@ -366,7 +366,7 @@ void psnrm2_( N, NORM2, X, IX, JX, DESCX, INCX )
366366
Xnp = PB_Cnumroc( *N, Xi, Xd[IMB_], Xd[MB_], myrow, Xd[RSRC_], nprow );
367367
if( Xnp > 0 )
368368
{
369-
Xptr = X+(Xii+Xjj*Xd[LLD_]);
369+
Xptr = Mptr(X,Xii,Xjj,Xd[LLD_],1);
370370

371371
for( k = 0; k < Xnp; k++ )
372372
{

PBLAS/SRC/psscal_.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,12 +210,12 @@ void psscal_( N, ALPHA, X, IX, JX, DESCX, INCX )
210210
Xld = Xd[LLD_];
211211
if( ALPHA[REAL_PART] == ZERO )
212212
{
213-
sset_( &Xnq, ((char *) ALPHA), ((char *)(X+(Xii+Xjj*Xld))),
213+
sset_( &Xnq, ((char *) ALPHA), ((char *)Mptr(X,Xii,Xjj,Xld,1)),
214214
&Xld );
215215
}
216216
else
217217
{
218-
sscal_( &Xnq, ((char *) ALPHA), ((char *)(X+(Xii+Xjj*Xld))),
218+
sscal_( &Xnq, ((char *) ALPHA), ((char *)Mptr(X,Xii,Xjj,Xld,1)),
219219
&Xld );
220220
}
221221
}
@@ -239,12 +239,12 @@ void psscal_( N, ALPHA, X, IX, JX, DESCX, INCX )
239239
if( ALPHA[REAL_PART] == ZERO )
240240
{
241241
sset_( &Xnp, ((char *) ALPHA),
242-
((char *)( X+(Xii+Xjj*Xd[LLD_]) )), INCX );
242+
((char *)Mptr( X,Xii,Xjj,Xd[LLD_],1) ), INCX );
243243
}
244244
else
245245
{
246246
sscal_( &Xnp, ((char *) ALPHA),
247-
((char *)( X+(Xii+Xjj*Xd[LLD_]) )), INCX );
247+
((char *)Mptr( X,Xii,Xjj,Xd[LLD_],1 )), INCX );
248248
}
249249
}
250250
}

0 commit comments

Comments
 (0)