Coder Social home page Coder Social logo

slsqp's Introduction

slsqp

GitHub release

Modern Fortran Edition of the SLSQP Optimizer

Status

Build Status

Description

This is an updated version of the SLSQP nonlinear constrained optimization code. It can be used to solve nonlinear programming problems that seek to minimize a scalar performance index subject to nonlinear equality and inequality constraints as well as bounds on the variables.

Updates to the original code include:

  • It has been translated into free-form source.
  • It is now thread safe. The original version was not thread safe due to the use of saved variables in one of the subroutines.
  • It no longer uses obsolescent and non-standard Fortran features. It should now be 100% standard compliant (Fortran 2008).
  • It now has an easy-to-use object-oriented interface. The slsqp_class is used for all interactions with the solver. Methods include initialize(), optimize(), and destroy().
  • It includes updated versions of some of the third-party routines used in the original code (BLAS, LINPACK, and NNLS).
  • Some new features were added to support printing error messages and reporting iterations to the user.
  • The user can now specify the max and min alpha to use during the line search.
  • The user can supply a routine to compute the gradients of the objective function and constriants, or allow the code to estimate them using finite differences (backward, forward, or central).
  • The documentation strings in the code have been converted to FORD format, allowing for nicely formatted documentation to be auto-generated.
  • A couple of bug fixes noted elsewhere have been applied.

License

Building SLSQP

A FoBiS configuration file (slsqp.fobis) is also provided that can also build the library and examples. Use the mode flag to indicate what to build. For example:

  • To build all the examples using gfortran: FoBiS.py build -f slsqp.fobis -mode tests-gnu
  • To build all the examples using ifort: FoBiS.py build -f slsqp.fobis -mode tests-intel
  • To build a static library using gfortran: FoBiS.py build -f slsqp.fobis -mode static-gnu
  • To build a static library using ifort: FoBiS.py build -f slsqp.fobis -mode static-intel

The full set of modes are: static-gnu, static-gnu-debug, static-intel, static-intel-debug, shared-gnu, shared-gnu-debug, shared-intel, shared-intel-debug, tests-gnu, tests-gnu-debug, tests-intel, tests-intel-debug

To generate the documentation using ford, run: FoBis.py rule --execute makedoc -f slsqp.fobis

To run the test programs, run: FoBis.py rule --execute tests -f slsqp.fobis

Development

  • Development continues on GitHub.

Documentation

The latest API documentation can be found here. This was generated from the source code using FORD (note that the included build.sh script will also generate these files).

References

slsqp's People

Contributors

jacobwilliams avatar pirpyn avatar

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.