README.txt
To compile SuperLU:

    Use the Visual Studio project located in the /prj folder.

IMPORTANT (THREAD-SAFETY):

    A slight modification had to be applied to the original sources of the used version (4.1).

    The edit concerns the presence of static variables, that make SuperLU *NOT* thread-safe.
    There is a SuperLU version for parallel architectures (SMT), but it's obviously geared
    toward internal thread management - which is not what we want.

    The only edit we've done, located in "dgstrf.c", fixes a crash when allocating resources
    for LU factorization:

        In "void dgstrf (..)":

            > /*static*/ GlobalLU_t Glu; /* persistent to facilitate multiple factors.  */

                                         /* DANIELE: tolto static, nocivo x multithread */

            > memset(&Glu, 0, sizeof(GlobalLU_t));       // static inizializzava tutto a 0

    There are other sparse static variables, which we've not had the time to double-check.
    Everything seems to work.

    In case it is necessary to further modify source files, remember fiy:

    * Files NOT starting with "d" - ie "double" - are not interesting; they are intended
      for single float and complex numbers, we're only sticking to doubles.

    * We're mainly interested in LU factorization, meaning only dgstrf ramification should
      be tracked.