Skip to content

Commit

Permalink
README updates
Browse files Browse the repository at this point in the history
  • Loading branch information
jacobwilliams committed Jan 25, 2024
1 parent e94b013 commit 29ee245
Showing 1 changed file with 17 additions and 55 deletions.
72 changes: 17 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
LSMR: Sparse Equations and Least Squares
LSMR: Sparse Equations and Least Squares.

This is a slightly modernized version of the original FSMR (f90 version) by David Fong & Michael Saunders, Systems Optimization Laboratory (SOL), Stanford University, Stanford, CA 94305-4026, USA.

### Status

Expand All @@ -8,70 +10,30 @@ LSMR: Sparse Equations and Least Squares
[![codecov](https://codecov.io/gh/jacobwilliams/LSMR/branch/master/graph/badge.svg)](https://codecov.io/gh/jacobwilliams/LSMR)
[![last-commit](https://img.shields.io/github/last-commit/jacobwilliams/LSMR)](https://github.com/jacobwilliams/LSMR/commits/master)

### Readme

README for lsmrf90

The software for LSMR (f90 version) is provided by SOL, Stanford University
under the terms of the OSI Common Public License (CPL)
http://www.opensource.org/licenses/cpl1.0.php
or the BSD License
http://www.opensource.org/licenses/bsd-license.php

17 Jul 2010: f90 version of LSMR derived from f90 verion of LSQR
and Matlab version lsmr.m.
Separate modules are used for LSMR, example test problems,
and Check routines for A and x.
### Compiling

LSMR lives in lsmrModule.f90.
Aprod1, Aprod2 (matrix-vector product routines) are in
lsmrTestModule.f90. This module illustrates how
problem-specific data can be created for Aprod1, Aprod2
even though LSMR calls them with a simple parameter list.
A [Fortran Package Manager](https://github.com/fortran-lang/fpm) manifest file is included, so that the library and test cases can be compiled with FPM. For example:

17 Jul 2010: 3 of the 18 test problems request local reorthogonalization
(localSize = 10). These 3 tests currently fail.
07 Sep 2010: Local reorthogonalization now works (localSize > 0).
26 Oct 2012: lsmrTestProgram outputs helpful info to the screen.
```
fpm build --profile release
fpm test --profile release
```

Maintained by
David Fong <[email protected]>
Michael Saunders <[email protected]>
Systems Optimization Laboratory (SOL)
Stanford University
Stanford, CA 94305-4026, USA
-----------------------------------------------------------------------------
To use `lsmr` within your fpm project, add the following to your `fpm.toml` file:
```toml
[dependencies]
LSMR = { git="https://github.com/jacobwilliams/LSMR.git" }
```

LSMR (f90 version) involves the following files:
### License

lsmrblas.f90 (not needed if Level 1 BLAS are available)
lsmrblasInterface.f90
lsmrCheckModule.f90
lsmrDataModule.f90
lsmrModule.f90
lsmrTestModule.f90
lsmrTestProgram.f90
LSMR.txt (example output file from an Intel Xeon system
compiled with gfortran -O on Linux Debian Elive)
Makefile
README

To compile the code and run the test program on Linux or Unix,
proceed as follows:

make (creates executable TestProgram)
./TestProgram
grep appears LSMR.txt

"LSMR appears to be successful" should occur 20 times.
"LSMR appears to have failed" might occur for the most
ill-conditioned problem, but this is not cause for alarm
if ||A'r|| is very small (~= 1e-12).
The original version of LSMR (f90 version) was provided by SOL, Stanford University under the terms of the [OSI Common Public License (CPL)](http://www.opensource.org/licenses/cpl1.0.php) or the [BSD License](http://www.opensource.org/licenses/bsd-license.php).

### Documentation

The latest API documentation can be found [here](https://jacobwilliams.github.io/LSMR/). This was generated from the source code using [FORD](https://github.com/Fortran-FOSS-Programmers/ford).

### See also

* [LSMR: Sparse Equations and Least Squares](https://web.stanford.edu/group/SOL/software/lsmr/) -- LSMR original code.
* [Sparse Parallel Robust Algorithms Library](https://github.com/ralna/spral) -- another version

0 comments on commit 29ee245

Please sign in to comment.