@@ -180,7 +180,7 @@ static void qrXw(double *qr, int rank, double *qraux, int *pivot, double *X,
180
180
double * w , int nr , int nc , int discard )
181
181
{
182
182
int i , j , ij , len = nr * nc , info = 0 , qrkind ;
183
- double dummy = 0 , wsqrt ;
183
+ double dummy [ 1 ] = { 0.0 } , wsqrt ;
184
184
double * xwork = (double * ) R_alloc (len , sizeof (double ));
185
185
/* Extract R from qr into upper triangle of X */
186
186
for (i = 0 ; i < len ; i ++ )
@@ -201,7 +201,7 @@ static void qrXw(double *qr, int rank, double *qraux, int *pivot, double *X,
201
201
for (j = 0 ; j < nc ; j ++ ) {
202
202
if (pivot [j ] >= 0 )
203
203
F77_CALL (dqrsl )(qr , & nr , & nr , & rank , qraux , xwork + j * nr ,
204
- X + pivot [j ]* nr , & dummy , & dummy , & dummy , & dummy ,
204
+ X + pivot [j ]* nr , dummy , dummy , dummy , dummy ,
205
205
& qrkind , & info );
206
206
}
207
207
@@ -331,13 +331,10 @@ SEXP do_getF(SEXP perms, SEXP E, SEXP QR, SEXP QZ, SEXP effects,
331
331
}
332
332
333
333
double * fitted = (double * ) R_alloc (nr * nc , sizeof (double ));
334
- /* separate resid needed only in some cases */
335
- double * resid ;
336
- if (PARTIAL || FIRST )
337
- resid = (double * ) R_alloc (nr * nc , sizeof (double ));
334
+ double * resid = (double * ) R_alloc (nr * nc , sizeof (double ));
338
335
/* work array and variables for QR decomposition */
339
336
double * qty = (double * ) R_alloc (nr , sizeof (double ));
340
- double dummy = 0.0 ;
337
+ double dummy [ 1 ] = { 0.0 } ;
341
338
int info , qrkind ;
342
339
/* Weighted methods currently need re-evaluation of QR
343
340
decomposition (probably changed in the future, but now for the
@@ -414,16 +411,16 @@ SEXP do_getF(SEXP perms, SEXP E, SEXP QR, SEXP QZ, SEXP effects,
414
411
qrkind = RESID ;
415
412
for (i = 0 ; i < nc ; i ++ )
416
413
F77_CALL (dqrsl )(Zqr , & nr , & nr , & Zqrank , Zqraux , rY + i * nr ,
417
- & dummy , qty , & dummy , rY + i * nr , & dummy ,
414
+ dummy , qty , dummy , rY + i * nr , dummy ,
418
415
& qrkind , & info );
419
416
/* distances need symmetric residuals */
420
417
if (DISTBASED ) {
421
418
transpose (rY , transY , nr , nr );
422
419
qrkind = RESID ;
423
420
for (i = 0 ; i < nc ; i ++ )
424
421
F77_CALL (dqrsl )(Zqr , & nr , & nr , & Zqrank , Zqraux ,
425
- transY + i * nr , & dummy , qty , & dummy ,
426
- rY + i * nr , & dummy , & qrkind , & info );
422
+ transY + i * nr , dummy , qty , dummy ,
423
+ rY + i * nr , dummy , & qrkind , & info );
427
424
}
428
425
429
426
}
@@ -438,8 +435,8 @@ SEXP do_getF(SEXP perms, SEXP E, SEXP QR, SEXP QZ, SEXP effects,
438
435
qrkind = RESID ;
439
436
for (i = 0 ; i < nx ; i ++ )
440
437
F77_CALL (dqrsl )(Zqr , & nr , & nr , & Zqrank , Zqraux ,
441
- qr + i * nr , & dummy , qty , & dummy , qr + i * nr ,
442
- & dummy , & qrkind , & info );
438
+ qr + i * nr , dummy , qty , dummy , qr + i * nr ,
439
+ dummy , & qrkind , & info );
443
440
}
444
441
for (i = 0 ; i < nx ; i ++ )
445
442
pivot [i ] = i + 1 ;
@@ -456,7 +453,7 @@ SEXP do_getF(SEXP perms, SEXP E, SEXP QR, SEXP QZ, SEXP effects,
456
453
for (p = 0 ; p < (nterms - 1 ); p ++ ) {
457
454
for (i = 0 ; i < nc ; i ++ )
458
455
F77_CALL (dqrsl )(qr , & nr , & nr , term + p , qraux , rY + i * nr ,
459
- & dummy , qty , & dummy , & dummy , fitted + i * nr ,
456
+ dummy , qty , dummy , dummy , fitted + i * nr ,
460
457
& qrkind , & info );
461
458
ev = getEV (fitted , nr , nc , DISTBASED );
462
459
rans [k + p * nperm ] = ev - ev0 ;
@@ -469,8 +466,8 @@ SEXP do_getF(SEXP perms, SEXP E, SEXP QR, SEXP QZ, SEXP effects,
469
466
else
470
467
qrkind = FIT ;
471
468
for (i = 0 ; i < nc ; i ++ )
472
- F77_CALL (dqrsl )(qr , & nr , & nr , & qrank , qraux , rY + i * nr , & dummy ,
473
- qty , & dummy , resid + i * nr , fitted + i * nr ,
469
+ F77_CALL (dqrsl )(qr , & nr , & nr , & qrank , qraux , rY + i * nr , dummy ,
470
+ qty , dummy , resid + i * nr , fitted + i * nr ,
474
471
& qrkind , & info );
475
472
476
473
/* Eigenvalues: either sum of all or the first If the sum of
@@ -485,8 +482,8 @@ SEXP do_getF(SEXP perms, SEXP E, SEXP QR, SEXP QZ, SEXP effects,
485
482
qrkind = FIT ;
486
483
for (i = 0 ; i < nc ; i ++ )
487
484
F77_CALL (dqrsl )(qr , & nr , & nr , & qrank , qraux ,
488
- transY + i * nr , & dummy , qty , & dummy ,
489
- & dummy , fitted + i * nr , & qrkind , & info );
485
+ transY + i * nr , dummy , qty , dummy ,
486
+ dummy , fitted + i * nr , & qrkind , & info );
490
487
ev1 = eigenfirst (fitted , nr );
491
488
} else {
492
489
ev1 = svdfirst (fitted , nr , nc );
0 commit comments