{"id":13714986,"url":"https://github.com/xiaoyeli/superlu","last_synced_at":"2025-12-29T23:08:29.292Z","repository":{"id":40395958,"uuid":"51040874","full_name":"xiaoyeli/superlu","owner":"xiaoyeli","description":"Supernodal sparse direct solver.  https://portal.nersc.gov/project/sparse/superlu/","archived":false,"fork":false,"pushed_at":"2025-04-16T05:15:05.000Z","size":7700,"stargazers_count":295,"open_issues_count":28,"forks_count":102,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-16T06:37:26.201Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xiaoyeli.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"License.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-02-04T00:21:41.000Z","updated_at":"2025-04-16T05:15:10.000Z","dependencies_parsed_at":"2023-02-16T03:01:13.831Z","dependency_job_id":"7446b7c0-7d0f-4698-af6e-f351ac188ba0","html_url":"https://github.com/xiaoyeli/superlu","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaoyeli%2Fsuperlu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaoyeli%2Fsuperlu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaoyeli%2Fsuperlu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaoyeli%2Fsuperlu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xiaoyeli","download_url":"https://codeload.github.com/xiaoyeli/superlu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252806419,"owners_count":21807199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T00:00:52.732Z","updated_at":"2025-12-29T23:08:29.287Z","avatar_url":"https://github.com/xiaoyeli.png","language":"C","funding_links":[],"categories":["Sparse linear solvers"],"sub_categories":["Mesh tools"],"readme":"\t\tSuperLU (Version 7.0.1)\n\t\t=======================\n\nSuperLU contains a set of subroutines to solve a sparse linear system \nA*X=B. It uses Gaussian elimination with partial pivoting (GEPP). \nThe columns of A may be preordered before factorization; the \npreordering for sparsity is completely separate from the factorization.\n\nSuperLU is implemented in ANSI C, and must be compiled with standard \nANSI C compilers. It provides functionality for both real and complex\nmatrices, in both single and double precision. The file names for the \nsingle-precision real version start with letter \"s\" (such as sgstrf.c);\nthe file names for the double-precision real version start with letter \"d\"\n(such as dgstrf.c); the file names for the single-precision complex\nversion start with letter \"c\" (such as cgstrf.c); the file names\nfor the double-precision complex version start with letter \"z\" \n(such as zgstrf.c).\n\n\nSuperLU contains the following directory structure:\n\n    SuperLU/README    instructions on installation\n    SuperLU/CBLAS/    needed BLAS routines in C, not necessarily fast\n    SuperLU/DOC/      Users' Guide and documentation of source code\n    SuperLU/EXAMPLE/  example programs\n    SuperLU/FORTRAN/  Fortran interface\n    SuperLU/INSTALL/  test machine dependent parameters; the Users' Guide.\n    SuperLU/MAKE_INC/ sample machine-specific make.inc files\n    SuperLU/MATLAB/   Matlab mex-file interface\n    SuperLU/SRC/      C source code, to be compiled into the superlu.a library\n    SuperLU/TESTING/  driver routines to test correctness\n    SuperLU/Makefile  top level Makefile that does installation and testing\n    SuperLU/make.inc  compiler, compile flags, library definitions and C\n                      preprocessor definitions, included in all Makefiles.\n                      (You may need to edit it to be suitable for your system\n                       before compiling the whole package.)\n\nThere are three ways to install the package: using the CMake build system generator,\nusing a manually edited Makefile, or using the Fortran Package Manager (fpm).\nThe procedures are described below.\n\n1. Using CMake build system. \n   You will need to create a build tree from which to invoke CMake.\n\n   From the top level directory, do:\n     \tmkdir build ; cd build\n   \tcmake ..\n\n     or with more options, e.g.,\n        cmake \\\n\t      -DCMAKE_INSTALL_PREFIX=../build \\\n\t      -DCMAKE_INSTALL_INCLUDEDIR=/my/custom/path \\\n\t      ..\n   \n   You should link with a fast BLAS library by specifying the following:\n              -DTPL_BLAS_LIBRARIES=\u003cblas_library_name\u003e\n\t      \n   If you do not have a BLAS library, you may use the internal CBLAS/ distribution, which can be very slow:\n              -Denable_internal_blaslib=YES\n\n   For very large problems, you need to use 64-bit indexing, by the following cmake option:\n              -DXSDK_INDEX_SIZE=64\n\n   Also, METIS ordering is often better for large problems. you need to install METIS package\n   and define the two environment variables: METIS_ROOT and METIS_BUILD_DIR\n\n       export METIS_ROOT=\u003cPrefix directory of the METIS installation\u003e\n       export METIS_BUILD_DIR=${METIS_ROOT}/build/Linux-x86_64\n\n   Then, in cmake command, add the following definitions:\n       -DTPL_ENABLE_METISLIB=ON \\\n       -DTPL_METIS_INCLUDE_DIRS=\"${METIS_ROOT}/metis/include\" \\\n       -DTPL_METIS_LIBRARIES=\"${METIS_BUILD_DIR}/libmetis/libmetis.a\" \\\n\n   \n   To actually build, type:\n   \tmake\n\n   To install the library, type:\n        make install\n\n   To run the regression tests, type:\n   \tmake test (or: ctest)\n\n\n2. Manual installation with makefile.      \n   Before installing the package, please examine the three things dependent \n   on your system setup:\n\n   2.1 Edit the make.inc include file.\n       This make include file is referenced inside each of the Makefiles\n       in the various subdirectories. As a result, there is no need to \n       edit the Makefiles in the subdirectories. All information that is\n       machine specific has been defined in this include file. \n\n       Example machine-specific make.inc include files are provided \n       in the MAKE_INC/ directory for several systems, such as Linux,\n       MacX, Cray, IBM, SunOS 5.x (Solaris), and HP-PA. \n       When you have selected the machine to which you wish \n       to install SuperLU, copy the appropriate sample include file (if one \n       is present) into make.inc. For example, if you wish to run \n       SuperLU on an linux, you can do\n\n       \t       cp MAKE_INC/make.linux make.inc\n   \n\tFor the systems other than listed above, slight modifications to the \n   \tmake.inc file will need to be made.\n   \n   2.2. The BLAS library.\n       \tIf there is BLAS library available on your machine, you may define\n       \tthe following in the file SuperLU/make.inc:\n            BLASDEF = -DUSE_VENDOR_BLAS\n            BLASLIB = \u003cBLAS library you wish to link with\u003e\n\n   \tThe CBLAS/ subdirectory contains the part of the C BLAS needed by \n   \tSuperLU package. However, these codes are intended for use only if \n\tthere is no faster implementation of the BLAS already available \n\ton your machine. In this case, you should do the following:\n\n    \t1) In SuperLU/make.inc, undefine (comment out) BLASDEF, and define:\n              BLASLIB = ../lib/blas$(PLAT).a\n\n    \t2) Go to the SuperLU/ directory, type:\n              make blaslib\n       \t   to make the BLAS library from the routines in the\t\n\t   CBLAS/ subdirectory.\n\n   2.3. C preprocessor definition CDEFS.\n   \tIn the header file SRC/slu_Cnames.h, we use macros to determine how\n   \tC routines should be named so that they are callable by Fortran.\n   \t(Some vendor-supplied BLAS libraries do not have C interface. So the \n    \tre-naming is needed in order for the SuperLU BLAS calls (in C) to \n    \tinterface with the Fortran-style BLAS.)\n   \tThe possible options for CDEFS are:\n\n       \to -DAdd_: Fortran expects a C routine to have an underscore\n\t\t postfixed to the name;\n        o -DNoChange: Fortran expects a C routine name to be identical to\n\t\t     that compiled by C;\n        o -DUpCase: Fortran expects a C routine name to be all uppercase.\n   \n   2.4. The Matlab MEX-file interface.\n   \tThe MATLAB/ subdirectory includes Matlab C MEX-files, so that \n   \tour factor and solve routines can be called as alternatives to those\n    \tbuilt into Matlab. In the file SuperLU/make.inc, define MATLAB to be\n\tthe directory in which Matlab is installed on your system, for example:\n\n       \tMATLAB = /usr/local/matlab\n\n   \tAt the SuperLU/ directory, type \"make matlabmex\" to build the MEX-file\n   \tinterface. After you have built the interface, you may go to the\n\tMATLAB/ directory to test the correctness by typing (in Matlab):\n       \t\ttrysuperlu\n       \t\ttrylusolve\n\n   A Makefile is provided in each subdirectory. The installation can be done\n   completely automatically by simply typing \"make\" at the top level.\n   The test results are in the files below:\n       INSTALL/install.out\n       TESTING/stest.out   # single precision, real   \n       TESTING/dtest.out   # double precision, real   \n       TESTING/ctest.out   # single precision, complex\n       TESTING/ztest.out   # double precision, complex\n\n3. Using fpm.\n  cmake -B build # create \"build/\" subdirectory and SRC/superlu_config.h\n  fpm install    # install libSuperLU.a to ~/.local/lib\n\nSee the fpm documentation at https://fpm.fortran-lang.org/install/index.html\nfor other fpm commands and options, for example, to specify the compiler\n(default: gcc); to build without installing; or to set compiler or linker flags.\n\n--------------------\n| RELEASE VERSIONS |\n--------------------\n    February 4,  1997  Version 1.0\n    November 15, 1997  Version 1.1\n    September 1, 1999  Version 2.0\n    October 15,  2003  Version 3.0\n    August 1,    2008  Version 3.1\n    June 30,     2009  Version 4.0\n    November 23, 2010  Version 4.1\n    August 25,   2011  Version 4.2\n    October 27,  2011  Version 4.3\n    July 26,     2015  Version 5.0\n    December 3,  2015  Version 5.1\n    April 8,     2016  Version 5.2.0\n    May 22,      2016  Version 5.2.1\n    October 17,  2020  Version 5.2.2\n    April 5,     2023  Version 6.0.0\n    August 5,    2023  Version 6.0.1\n    August 17,   2024  Version 7.0.0\n    May 7,       2025  Version 7.0.1\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxiaoyeli%2Fsuperlu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxiaoyeli%2Fsuperlu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxiaoyeli%2Fsuperlu/lists"}