SCM

SCM Repository

[matrix] Diff of /pkg/src/ssclme.c
ViewVC logotype

Diff of /pkg/src/ssclme.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 157, Sun May 9 14:26:36 2004 UTC revision 158, Sun May 9 17:06:12 2004 UTC
# Line 665  Line 665 
665              int ci = LIp[i+1] - LIp[i];              int ci = LIp[i+1] - LIp[i];
666              if (ci > maxod) maxod = ci;              if (ci > maxod) maxod = ci;
667          }          }
668    /* FIXME: Don't bother storing LIp, store maxod only */
669    
670          for (i = 0; i < nf; i++) {          for (i = 0; i < nf; i++) {
671              int j, jj, k, kk, nci = nc[i], nr, p, p2, pp,              int j, jj, k, kk, nci = nc[i], nr, p, p2, pj, pp,
672                  m = maxod + 1,                  m = maxod + 1,
673                  *ind = Calloc(m, int);                  *ind = Calloc(m, int);
674              double              double
# Line 675  Line 676 
676                  *mpt = REAL(VECTOR_ELT(bVar, i));                  *mpt = REAL(VECTOR_ELT(bVar, i));
677    
678              for (j = Gp[i]; j < Gp[i+1]; j += nci) {              for (j = Gp[i]; j < Gp[i+1]; j += nci) {
679                  kk = 0;         /* ind holds indices of non-zeros */                  kk = 0;         /* ind gets indices of non-zeros */
680                  jj = j;         /* in this block of columns */                  jj = j;         /* in this block of columns */
681                  while (jj >= 0) {                  while (jj >= 0) {
682                      ind[kk++] = jj;                      ind[kk++] = jj;
# Line 691  Line 692 
692                      ccol[k] = 1.; /* initialize from unit diagonal */                      ccol[k] = 1.; /* initialize from unit diagonal */
693                      for (jj = j + k; jj >= 0; jj = Parent[jj]) {                      for (jj = j + k; jj >= 0; jj = Parent[jj]) {
694                          p2 = Lp[jj+1];                          p2 = Lp[jj+1];
695                          pp = k;                          pp = pj = ldl_update_ind(jj, 0, ind);
696                          for (p = Lp[jj]; p < p2; p++) {                          for (p = Lp[jj]; p < p2; p++) {
697                              pp = ldl_update_ind(Li[p], pp, ind);                              pp = ldl_update_ind(Li[p], pp, ind);
698                              ccol[pp] -= Lx[p] * ccol[jj];                              ccol[pp] -= Lx[p] * ccol[pj];
699                          }                          }
700                      }                      }
   
 /*                  for (j = k + 1; j < nr; j++) {  */  
 /*                      jj = ind[j]; p2 = Lp[jj+1]; */  
 /*                      pp = k; */  
 /*                      for (p = Lp[jj]; p < p2; p++) { */  
 /*                          pp = ldl_update_ind(Li[p], pp, ind); */  
 /*                          ccol[pp] -= Lx[p]*ccol[j]; */  
 /*                      } */  
 /*                  } */  
701                  }                  }
702    
703                  for (kk = 0; kk < nr; kk++) { /* scale rows */                  for (kk = 0; kk < nr; kk++) { /* scale rows */

Legend:
Removed from v.157  
changed lines
  Added in v.158

root@r-forge.r-project.org
ViewVC Help
Powered by ViewVC 1.0.0  
Thanks to:
Vienna University of Economics and Business Powered By FusionForge