Skip to content
Snippets Groups Projects
Commit 1001e8c6 authored by Christoph Grüninger's avatar Christoph Grüninger Committed by Christoph Grüninger
Browse files

Fix support for SuperLU 5

* Use correct macro
* adjust changes for other types then double, too

(cherry picked from commit 52ddac69)

Conflicts:
	cmake/modules/FindSuperLU.cmake
* find SuperLU 5.2.1, too
parent fc9009c4
No related branches found
No related tags found
No related merge requests found
......@@ -38,7 +38,10 @@ find_path(SUPERLU_INCLUDE_DIR
# look for library, only at positions given by the user
find_library(SUPERLU_LIBRARY
NAMES "superlu_4.3" "superlu_4.2" "superlu_4.1" "superlu_4.0" "superlu_3.1" "superlu_3.0" "superlu"
NAMES "superlu"
"superlu_5.2.1" "superlu_5.2" "superlu_5.1.1" "superlu_5.1" "superlu_5.0"
"superlu_4.3" "superlu_4.2" "superlu_4.1" "superlu_4.0"
"superlu_3.1" "superlu_3.0"
PATHS ${SUPERLU_PREFIX} ${SUPERLU_ROOT}
PATH_SUFFIXES "lib" "lib32" "lib64"
NO_DEFAULT_PATH
......@@ -46,7 +49,10 @@ find_library(SUPERLU_LIBRARY
# look for library files, including default paths
find_library(SUPERLU_LIBRARY
NAMES "superlu_4.3" "superlu_4.2" "superlu_4.1" "superlu_4.0" "superlu_3.1" "superlu_3.0" "superlu"
NAMES "superlu"
"superlu_5.2.1" "superlu_5.2" "superlu_5.1.1" "superlu_5.1" "superlu_5.0"
"superlu_4.3" "superlu_4.2" "superlu_4.1" "superlu_4.0"
"superlu_3.1" "superlu_3.0"
PATH_SUFFIXES "lib" "lib32" "lib64"
)
......
......@@ -126,9 +126,16 @@ namespace Dune
float *rpg, float *rcond, float *ferr, float *berr,
mem_usage_t *memusage, SuperLUStat_t *stat, int *info)
{
#if SUPERLU_MIN_VERSION_5
GlobalLU_t gLU;
sgssvx(options, mat, perm_c, perm_r, etree, equed, R, C,
L, U, work, lwork, B, X, rpg, rcond, ferr, berr,
&gLU, memusage, stat, info);
#else
sgssvx(options, mat, perm_c, perm_r, etree, equed, R, C,
L, U, work, lwork, B, X, rpg, rcond, ferr, berr,
memusage, stat, info);
#endif
}
};
......@@ -167,7 +174,7 @@ namespace Dune
double *rpg, double *rcond, double *ferr, double *berr,
mem_usage_t *memusage, SuperLUStat_t *stat, int *info)
{
#if SUPERLU_MIN_VER_5
#if SUPERLU_MIN_VERSION_5
GlobalLU_t gLU;
dgssvx(options, mat, perm_c, perm_r, etree, equed, R, C,
L, U, work, lwork, B, X, rpg, rcond, ferr, berr,
......@@ -214,9 +221,16 @@ namespace Dune
double *rpg, double *rcond, double *ferr, double *berr,
mem_usage_t *memusage, SuperLUStat_t *stat, int *info)
{
#if SUPERLU_MIN_VERSION_5
GlobalLU_t gLU;
zgssvx(options, mat, perm_c, perm_r, etree, equed, R, C,
L, U, work, lwork, B, X, rpg, rcond, ferr, berr,
&gLU, memusage, stat, info);
#else
zgssvx(options, mat, perm_c, perm_r, etree, equed, R, C,
L, U, work, lwork, B, X, rpg, rcond, ferr, berr,
memusage, stat, info);
#endif
}
};
......@@ -254,9 +268,16 @@ namespace Dune
float *rpg, float *rcond, float *ferr, float *berr,
mem_usage_t *memusage, SuperLUStat_t *stat, int *info)
{
#if SUPERLU_MIN_VERSION_5
GlobalLU_t gLU;
cgssvx(options, mat, perm_c, perm_r, etree, equed, R, C,
L, U, work, lwork, B, X, rpg, rcond, ferr, berr,
&gLU, memusage, stat, info);
#else
cgssvx(options, mat, perm_c, perm_r, etree, equed, R, C,
L, U, work, lwork, B, X, rpg, rcond, ferr, berr,
memusage, stat, info);
#endif
}
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment