kalininei / SuiteSparseWrap_cpp_cs

Simple wrapper libraries (cpp, c#) for SuiteSparse sparse matrix solvers. Linux and Windows build scripts are included.
6 stars 5 forks source link

SuiteSparse C++, C# simple wrapper library for sparse matrix solution.

Implements C# and C++ wrapper library over SuiteSparse sparse matrix solvers. Cmake building script works on Linux system. Windows version contains set of prebuild libraries.

For Linux installation SuiteSparse development package should already be installed through package manager. Windows builder already includes precompiled SuiteSparse 4.4.3 (no metis support), blas and lapack libraries (32/64 bit). So only Visual Studio C++/C# compiler is required. Visual Studio uses only release builds.

Included SuiteSparse methods: -- UMFPACK: multifrontal LU factorization. -- CHOLMOD: supernodal Cholesky. -- SPQR: multifrontal QR. See http://faculty.cse.tamu.edu/davis/suitesparse.html for details.

Only basic SuiteSparse library capabilities with default parameters are supported.

Installation: tested on OpenSuse 13.2 (gcc-4.8.3), Windows7(x64) (Visual Studio 2010 Express, Visual Studio 2017 Comunity)

----- LINUX: cmake, blas, lapack and SuiteSparse packages should already be installed in your system

start terminal from current directory mkdir build && cd build cmake .. make edit_cache //set CMAKE_BUILD_TYPE, CMAKE_INSTALL_PREFIX make make install //with sudo if required //test installation bin/cpptest

----- Windows (Visual studio): no additianal libraries are required 1) Since all libraries were built using VS 2010 you need to install VS C++ 2010 redistributables which could be downloaded from 32bit: https://www.microsoft.com/en-us/download/details.aspx?id=5555
64bit: https://www.microsoft.com/en-us/download/details.aspx?id=14632

2) All precompiled libraries are stored in winlib/lib or winlib/lib64 for 32 and 64bit builds respectively. Copy them to a directory from your system PATH or to a directory with your executable.

--- C# wrapper 3) goto SuiteSparseCSWrap directory and build the VisualStudio solution wich contains C# wrapper library and testing console application. 4) use SuiteSparseCSWrap.dll in your application

--- Cpp wrapper 3) to test the library goto SuiteSparseCppVSWrap directory and build the VisualStudio (2017) solution (disable precompiled headers if needed). 4) copy suitesparse_vswrap.cpp and suitesparse_vswrap.h from SuiteSparseCppVSWrap to your project and use them.

----- Examples See examples in cpptest/cpptest.cpp (Linux) SuiteSparseCSWrap/SolverTest/Program.cs (Windows, C#) SuiteSparseCppVSWrap/SuiteSparseCppVSWrap/program.cpp (Windows, C++)