diff options
author | Gael Guennebaud <g.gael@free.fr> | 2012-06-21 10:51:22 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2012-06-21 10:51:22 +0200 |
commit | 6f3057f624da32ee854ba13df2bb5e399050c8c4 (patch) | |
tree | 68eb512466a650d22db358b103894043414e4e9f | |
parent | 5b5f3ecafa25aee1af27ea3503ad9e0e1ee49d04 (diff) |
extend documentation of *Support modules
-rw-r--r-- | Eigen/CholmodSupport | 5 | ||||
-rw-r--r-- | Eigen/PaStiXSupport | 14 | ||||
-rw-r--r-- | Eigen/PardisoSupport | 6 | ||||
-rw-r--r-- | Eigen/SuperLUSupport | 10 | ||||
-rw-r--r-- | Eigen/UmfPackSupport | 10 | ||||
-rw-r--r-- | doc/C09_TutorialSparse.dox | 6 | ||||
-rw-r--r-- | doc/UsingIntelMKL.dox | 1 |
7 files changed, 46 insertions, 6 deletions
diff --git a/Eigen/CholmodSupport b/Eigen/CholmodSupport index 0e1ff48e0..745b884e7 100644 --- a/Eigen/CholmodSupport +++ b/Eigen/CholmodSupport @@ -26,6 +26,11 @@ extern "C" { * \code * #include <Eigen/CholmodSupport> * \endcode + * + * In order to use this module, the cholmod headers must be accessible from the include paths, and your binary must be linked to the cholmod library and its dependencies. + * The dependencies depend on how cholmod has been compiled. + * For a cmake based project, you can use our FindCholmod.cmake module to help you in this task. + * */ #include "src/misc/Solve.h" diff --git a/Eigen/PaStiXSupport b/Eigen/PaStiXSupport index 1dbb0941b..7c616ee5e 100644 --- a/Eigen/PaStiXSupport +++ b/Eigen/PaStiXSupport @@ -17,10 +17,22 @@ extern "C" { /** \ingroup Support_modules * \defgroup PaStiXSupport_Module PaStiXSupport module - * + * + * This module provides an interface to the <a href="http://pastix.gforge.inria.fr/">PaSTiX</a> library. + * PaSTiX is a general \b supernodal, \b parallel and \b opensource sparse solver. + * It provides the two following main factorization classes: + * - class PastixLLT : a supernodal, parallel LLt Cholesky factorization. + * - class PastixLDLT: a supernodal, parallel LDLt Cholesky factorization. + * - class PastixLU : a supernodal, parallel LU factorization (optimized for a symmetric pattern). + * * \code * #include <Eigen/PaStiXSupport> * \endcode + * + * In order to use this module, the PaSTiX headers must be accessible from the include paths, and your binary must be linked to the PaSTiX library and its dependencies. + * The dependencies depend on how PaSTiX has been compiled. + * For a cmake based project, you can use our FindPaSTiX.cmake module to help you in this task. + * */ #include "src/misc/Solve.h" diff --git a/Eigen/PardisoSupport b/Eigen/PardisoSupport index 6585edb74..99330ce7a 100644 --- a/Eigen/PardisoSupport +++ b/Eigen/PardisoSupport @@ -12,11 +12,15 @@ /** \ingroup Support_modules * \defgroup PardisoSupport_Module PardisoSupport module * - * This module brings support for the Intel(R) MKL PARDISO direct sparse solvers + * This module brings support for the Intel(R) MKL PARDISO direct sparse solvers. * * \code * #include <Eigen/PardisoSupport> * \endcode + * + * In order to use this module, the MKL headers must be accessible from the include paths, and your binary must be linked to the MKL library and its dependencies. + * See this \ref TopicUsingIntelMKL "page" for more information on MKL-Eigen integration. + * */ #include "src/PardisoSupport/PardisoSupport.h" diff --git a/Eigen/SuperLUSupport b/Eigen/SuperLUSupport index 09aa1b6ca..575e14fbc 100644 --- a/Eigen/SuperLUSupport +++ b/Eigen/SuperLUSupport @@ -31,11 +31,21 @@ namespace Eigen { struct SluMatrix; } /** \ingroup Support_modules * \defgroup SuperLUSupport_Module SuperLUSupport module * + * This module provides an interface to the <a href="http://crd-legacy.lbl.gov/~xiaoye/SuperLU/">SuperLU</a> library. + * It provides the following factorization class: + * - class SuperLU: a supernodal sequential LU factorization. + * - class SuperILU: a supernodal sequential incomplete LU factorization (to be used as a preconditioner for iterative methods). + * * \warning When including this module, you have to use SUPERLU_EMPTY instead of EMPTY which is no longer defined because it is too polluting. * * \code * #include <Eigen/SuperLUSupport> * \endcode + * + * In order to use this module, the superlu headers must be accessible from the include paths, and your binary must be linked to the superlu library and its dependencies. + * The dependencies depend on how superlu has been compiled. + * For a cmake based project, you can use our FindSuperLU.cmake module to help you in this task. + * */ #include "src/misc/Solve.h" diff --git a/Eigen/UmfPackSupport b/Eigen/UmfPackSupport index aac361e3f..984f64a84 100644 --- a/Eigen/UmfPackSupport +++ b/Eigen/UmfPackSupport @@ -12,12 +12,18 @@ extern "C" { /** \ingroup Support_modules * \defgroup UmfPackSupport_Module UmfPackSupport module * - * - * + * This module provides an interface to the UmfPack library which is part of the <a href="http://www.cise.ufl.edu/research/sparse/SuiteSparse/">suitesparse</a> package. + * It provides the following factorization class: + * - class UmfPackLU: a multifrontal sequential LU factorization. * * \code * #include <Eigen/UmfPackSupport> * \endcode + * + * In order to use this module, the umfpack headers must be accessible from the include paths, and your binary must be linked to the umfpack library and its dependencies. + * The dependencies depend on how umfpack has been compiled. + * For a cmake based project, you can use our FindUmfPack.cmake module to help you in this task. + * */ #include "src/misc/Solve.h" diff --git a/doc/C09_TutorialSparse.dox b/doc/C09_TutorialSparse.dox index 792b72c45..34154bd0d 100644 --- a/doc/C09_TutorialSparse.dox +++ b/doc/C09_TutorialSparse.dox @@ -263,8 +263,10 @@ They are summarized in the following table: <td>Might not always converge</td></tr> - -<tr><td>CholmodSupernodalLLT</td><td>\link CholmodSupport_Module CholmodSupport \endlink</td><td>Direct LLT factorization</td><td>SPD</td><td>Fill-in reducing, Leverage fast dense algebra</td> +<tr><td>PastixLLT \n PastixLDLT \n PastixLU</td><td>\link PaStiXSupport_Module PaStiXSupport \endlink</td><td>Direct LLt, LDLt, LU factorizations</td><td>SPD \n SPD \n Square</td><td>Fill-in reducing, Leverage fast dense algebra, Multithreading</td> + <td>Requires the <a href="http://pastix.gforge.inria.fr">PaStiX</a> package, \b CeCILL-C </td> + <td>optimized for tough problems and symmetric patterns</td></tr> +<tr><td>CholmodSupernodalLLT</td><td>\link CholmodSupport_Module CholmodSupport \endlink</td><td>Direct LLt factorization</td><td>SPD</td><td>Fill-in reducing, Leverage fast dense algebra</td> <td>Requires the <a href="http://www.cise.ufl.edu/research/sparse/SuiteSparse/">SuiteSparse</a> package, \b GPL </td> <td></td></tr> <tr><td>UmfPackLU</td><td>\link UmfPackSupport_Module UmfPackSupport \endlink</td><td>Direct LU factorization</td><td>Square</td><td>Fill-in reducing, Leverage fast dense algebra</td> diff --git a/doc/UsingIntelMKL.dox b/doc/UsingIntelMKL.dox index 33033c8b0..379ee3ffd 100644 --- a/doc/UsingIntelMKL.dox +++ b/doc/UsingIntelMKL.dox @@ -45,6 +45,7 @@ Intel MKL is available on Linux, Mac and Windows for both Intel64 and IA32 archi Using Intel MKL through Eigen is easy: -# define the \c EIGEN_USE_MKL_ALL macro before including any Eigen's header -# link your program to MKL libraries (see the <a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/">MKL linking advisor</a>) +-# on a 64bits system, you must use the LP64 interface (not the ILP64 one) When doing so, a number of Eigen's algorithms are silently substituted with calls to Intel MKL routines. These substitutions apply only for \b Dynamic \b or \b large enough objects with one of the following four standard scalar types: \c float, \c double, \c complex<float>, and \c complex<double>. |