LUSOL maintains LU factors of a square or rectangular sparse matrix.
This repository provides LUSOL source code and a Matlab interface.
The code is distributed under the terms of the MIT License or the BSD License.
gen/: code generation scripts and specification files
matlab/: Matlab interface code
src/: LUSOL Fortran code
LICENSE: [Common Public License][CPL]
makefile: GNU Make file to build interface
Download and install
Pre-built downloads are available on the Github release page.
Installation simply requires adding the
matlab subdirectory to your Matlab
path. This may be done with Matlab's
If the interface has not been built, please follow the directions below.
% get L and U factors [L U P Q] = lusol(A);
>>> help lusol.
% create lusol object mylu = lusol_obj(A); % solve with lusol object (ie x = A\b) x = mylu.solveA(b); % update factorization to replace a column mylu.repcol(v,1); % solve again with updated factorization x1 = mylu.solveA(b);
>>> help lusol_obj.
The build environments as of 2016-01-26 are:
- Fedora 21 & Matlab 2013b
- Mac OS X 10.11 & Matlab 2015b
Building the LUSOL interface in other environments may require modification of
matlabbinary must be on the system
python3is required to generate the interface code. However, the interface code is pre-generated and included in the repository.
- It is necessary to launch Xcode and accept the license agreement before building the interface.
- The smaller Xcode Command Line Tools package does not appear to work with Matlab 2015b. The full Xcode install is required.
mex compiler driver must be configured to use the appropriate
compiler. This can be achieved by executing
mex -setup from the Matlab prompt
or operating system terminal. On Linux the selected compiler must be the
correct version of
gcc. On Mac OS X 10.9 the selected compiler must be
clang. It is a good idea to match the compiler suggested on the Mathworks
supported compilers page. See this note on Matlab
compatibility with Xcode 7.
gfortran on Mac OS X
- Install Homebrew
$ brew install gcc
From the base directory:
$ make $ make matlab
$ make matlab_test
See <NOTES.md> for example build output.
The basic requirements to build LUSOL are GNU
gfortran, a C compiler,
and Matlab. The build works with
gcc on Linux and
clang on Mac OS X. It
may be necessary to modify the compiler variables in the
F77C) depending on the operating system and environment.
matlab executable must be on the system path. On Mac OS X with Matlab
R2015b this is achieved with:
$ export PATH=/Applications/MATLAB_R2015b.app/bin:$PATH
makefile may have to be modified on Mac OS X depending on versions of