Giter Site home page Giter Site logo

ivan-pi / fortran_lsp Goto Github PK

View Code? Open in Web Editor NEW
10.0 2.0 2.0 64 KB

Fortran routines from "Solving Least Squares Problems" by C. Lawson and R. Hanson (1995)

Makefile 2.27% Fortran 97.73%
least-squares non-negative least distance programming svd fortran interface householder bounded

fortran_lsp's Introduction

Fortran Routines for Least Squares Problems

This package contains the Fortran 77 and Fortran 90 codes accompanying the SIAM Publications printing of "Solving Least Squares Problems" by C. Lawson and R. Hanson [1]. The original routines (most dating back to 1974) available from netlib are:

  • bndacc and bndsol implement the band-limited sequential algorithm
  • hfti solves a least squares problem by Householder transformations
  • ldp solves the least distance programming problem
  • nnls solves a least squares problem, subject to all variables being nonnegative
  • qrbd computes the singular value decomposition of a bidiagonal matrix
  • bvls solves a least squares problem, subject to all variables having upper and lower bounds
  • sva implements singular value analysis and Levenberg-Marquardt analysis
  • svdrs computes the singular value decomposition

Some additional utility routines for performing Householder transformations (h12), orthogonal rotations (g1 and g2), and generating random integer sequences (gen) are also available. More details concerning the routines can be found in the original work [1].

Modern Fortran interface

Due to the limitations of early Fortran dialects, the original routines are unwieldy to use, requiring the user to provide several dimensioning variables and manually allocate scratch space. Nevertheless, the usefulness of these routines has prompted users to rewrite them in C, C++, Python and recently Julia; or, develop wrappers for languages like R, Ruby (through f2c) and Python (SciPy). Ironically, only Fortran developers are stuck with the old legacy interface.

To improve the state of things, this package aims to provide updated versions of the original codes. In the meanwhile, we have prepared some simplified interfaces:

call nnls(A,b,x[,rnorm,ierr])

call bvls(A,b,bnd,x[,rnorm,ierr])

call ldp(G,h,x[,xnorm,ierr])

call hfti(A,b,x,tau[,krank,rnorm])

References

[1] Lawson, Charles L., and Richard J. Hanson. Solving least squares problems. Vol. 15. Siam, 1995.

fortran_lsp's People

Contributors

ivan-pi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

xuehuanhe

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.