tahoma2d/thirdparty/superlu
2022-08-26 07:56:49 -04:00
..
SuperLU_4.1 Update 3rd party library binaries for MSVC 2019 and update to libtiff 4.2.0 w/ customizations 2022-08-26 07:56:49 -04:00
libsuperlu_4.1.a Add 3rd party libraries 2016-03-24 01:31:57 +09:00
README.txt Add 3rd party libraries 2016-03-24 01:31:57 +09:00
SuperLU_2013_32.d.lib Support Visual Studio 2015 (#544) 2016-07-04 17:50:30 +09:00
SuperLU_2013_32.lib Support Visual Studio 2015 (#544) 2016-07-04 17:50:30 +09:00
SuperLU_2013_64.d.lib Support Visual Studio 2015 (#544) 2016-07-04 17:50:30 +09:00
SuperLU_2013_64.lib Support Visual Studio 2015 (#544) 2016-07-04 17:50:30 +09:00
SuperLU_2015_32.d.lib Support Visual Studio 2015 (#544) 2016-07-04 17:50:30 +09:00
SuperLU_2015_32.lib Support Visual Studio 2015 (#544) 2016-07-04 17:50:30 +09:00
SuperLU_2015_64.d.lib Support Visual Studio 2015 (#544) 2016-07-04 17:50:30 +09:00
SuperLU_2015_64.lib Support Visual Studio 2015 (#544) 2016-07-04 17:50:30 +09:00
SuperLU_2019_32.d.lib Update 3rd party library binaries for MSVC 2019 and update to libtiff 4.2.0 w/ customizations 2022-08-26 07:56:49 -04:00
SuperLU_2019_32.lib Update 3rd party library binaries for MSVC 2019 and update to libtiff 4.2.0 w/ customizations 2022-08-26 07:56:49 -04:00
SuperLU_2019_64.d.lib Update 3rd party library binaries for MSVC 2019 and update to libtiff 4.2.0 w/ customizations 2022-08-26 07:56:49 -04:00
SuperLU_2019_64.lib Update 3rd party library binaries for MSVC 2019 and update to libtiff 4.2.0 w/ customizations 2022-08-26 07:56:49 -04:00

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.