#include "pdsp_defs.h"
#include "util.h"
int
sp_dconvert(int m, int n, double *A, int lda, int kl, int ku,
double *a, int *asub, int *xa, int *nnz)
{
/*
* -- SuperLU MT routine (version 1.0) --
* Univ. of California Berkeley, Xerox Palo Alto Research Center,
* and Lawrence Berkeley National Lab.
* August 15, 1997
*
* Convert a full matrix into a sparse matrix format.
*/
int lasta = 0;
int i, j, ilow, ihigh;
int *row;
double *val;
for (j = 0; j < n; ++j) {
xa[j] = lasta;
val = &a[xa[j]];
row = &asub[xa[j]];
ilow = MAX(0, j - ku);
ihigh = MIN(n-1, j + kl);
for (i = ilow; i <= ihigh; ++i) {
val[i-ilow] = A[i + j*lda];
row[i-ilow] = i;
}
lasta += ihigh - ilow + 1;
}
xa[n] = *nnz = lasta;
return 0;
}
syntax highlighted by Code2HTML, v. 0.9.1