Skip to content

Commit

Permalink
ENH: sparse/dsolve: upgrade to SuperLU 4.3
Browse files Browse the repository at this point in the history
Merge branch 'enh/superlu-update'
  • Loading branch information
pv committed Feb 8, 2012
2 parents 1983db6 + f414439 commit be6c2b6
Show file tree
Hide file tree
Showing 94 changed files with 1,861 additions and 1,464 deletions.
15 changes: 9 additions & 6 deletions scipy/sparse/linalg/dsolve/SuperLU/README
@@ -1,4 +1,4 @@
SuperLU (Version 4.0)
SuperLU (Version 4.1)
=====================

Copyright (c) 2003, The Regents of the University of California, through
Expand Down Expand Up @@ -77,14 +77,14 @@ on your system setup:
machine specific has been defined in this include file.

Example machine-specific make.inc include files are provided
in the MAKE_INC/ directory for several systems, such as
IBM RS/6000, DEC Alpha, SunOS 4.x, SunOS 5.x (Solaris), HP-PA and
SGI Iris 4.x. When you have selected the machine to which you wish
in the MAKE_INC/ directory for several systems, such as Linux,
IBM RS/6000, SunOS 5.x (Solaris), HP-PA and MacX.
When you have selected the machine to which you wish
to install SuperLU, copy the appropriate sample include file (if one
is present) into make.inc. For example, if you wish to run
SuperLU on an IBM RS/6000, you can do
SuperLU on an linux, you can do

cp MAKE_INC/make.rs6k make.inc
cp MAKE_INC/make.linux make.inc

For the systems other than listed above, slight modifications to the
make.inc file will need to be made.
Expand Down Expand Up @@ -154,3 +154,6 @@ The test results are in the files below:
October 15, 2003 Version 3.0
August 1, 2008 Version 3.1
June 30, 2009 Version 4.0
November 23, 2010 Version 4.1
August 25, 2011 Version 4.2

4 changes: 2 additions & 2 deletions scipy/sparse/linalg/dsolve/SuperLU/SRC/cdiagonal.c
Expand Up @@ -95,7 +95,7 @@ int cdominate(int n, NCformat *Astore)
{
if ((rowind_new[j + fill] = rowind[j]) == i) diag = j;
nzval_new[j + fill] = nzval[j];
s += slu_c_abs1(&nzval_new[j + fill]);
s += c_abs1(&nzval_new[j + fill]);
}
if (diag >= 0) {
nzval_new[diag+fill].r = s * 3.0;
Expand All @@ -122,7 +122,7 @@ int cdominate(int n, NCformat *Astore)
for (j = colptr[i]; j < colptr[i + 1]; j++)
{
if (rowind[j] == i) diag = j;
s += slu_c_abs1(&nzval[j]);
s += c_abs1(&nzval[j]);
}
nzval[diag].r = s * 3.0;
nzval[diag].i = 0.0;
Expand Down
6 changes: 3 additions & 3 deletions scipy/sparse/linalg/dsolve/SuperLU/SRC/cgsequ.c
Expand Up @@ -92,7 +92,7 @@ cgsequ(SuperMatrix *A, float *r, float *c, float *rowcnd,
int i, j, irow;
float rcmin, rcmax;
float bignum, smlnum;
extern double slamch_(char *);
extern float slamch_(char *);

/* Test the input parameters. */
*info = 0;
Expand Down Expand Up @@ -127,7 +127,7 @@ cgsequ(SuperMatrix *A, float *r, float *c, float *rowcnd,
for (j = 0; j < A->ncol; ++j)
for (i = Astore->colptr[j]; i < Astore->colptr[j+1]; ++i) {
irow = Astore->rowind[i];
r[irow] = SUPERLU_MAX( r[irow], slu_c_abs1(&Aval[i]) );
r[irow] = SUPERLU_MAX( r[irow], c_abs1(&Aval[i]) );
}

/* Find the maximum and minimum scale factors. */
Expand Down Expand Up @@ -162,7 +162,7 @@ cgsequ(SuperMatrix *A, float *r, float *c, float *rowcnd,
for (j = 0; j < A->ncol; ++j)
for (i = Astore->colptr[j]; i < Astore->colptr[j+1]; ++i) {
irow = Astore->rowind[i];
c[j] = SUPERLU_MAX( c[j], slu_c_abs1(&Aval[i]) * r[irow] );
c[j] = SUPERLU_MAX( c[j], c_abs1(&Aval[i]) * r[irow] );
}

/* Find the maximum and minimum scale factors. */
Expand Down

0 comments on commit be6c2b6

Please sign in to comment.