Skip to main content

A library of modern Fortran modules for nonlinear optimization

Project description

GALAHAD codecov

GALAHAD is a library of modern Fortran packages for nonlinear optimization with C, Python, Julia and MATLAB interfaces. It contains packages for general constrained and unconstrained optimization, linear and quadratic programming, nonlinear least-squares fitting and global optimization, as well as those for solving a large variety of basic optimization subproblems.

Documentation

More information on the packages in GALAHAD can be found at https://www.galahad.rl.ac.uk.

All major GALAHAD packages are documented in Fortran, C, Python and Julia:

Help files are provided for MATLAB functions.

Installation

Precompiled Fortran/C libraries and executables

We provide precompiled GALAHAD libraries and executables in the releases tab for Linux (x64 and aarch64), macOS (x64 and aarch64), and Windows (x64).

On some platforms, the dynamic linker needs to know where to look for libraries at runtime. You might need to set the following environment variables:

  • LD_LIBRARY_PATH on Linux
  • DYLD_LIBRARY_PATH or DYLD_FALLBACK_LIBRARY_PATH on macOS
  • PATH on Windows

These variables should include the directory where you extracted the libraries. For all platforms, the environment variable PATH is needed to locate the executables.

Precompiled Julia Interface

We provide a precompiled Julia interface for most platforms, please see GALAHAD.jl and the associated documentation.

Precompiled Python Interface

We provide a precompiled Python interface for Linux, macOS (Intel & Silicon), and Windows that can be installed from PyPI:

pip install galahad-optrove

Installation from source

GALAHAD can be installed from source using the Meson build system (all commands below are to be run from the top of the source tree):

meson setup builddir -Dtests=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir

For more comprehensive Meson options (-Doption=value), including how to specify paths to various libraries and packages, please see meson_options.txt and README.meson. We give some examples below for the most important Meson options.

GALAHAD supports a large number of optional software packages for enhanced functionality, the most important of these are:

BLAS/LAPACK

By default GALAHAD will build with OpenBLAS if it can locate it (otherwise you may need to pass the OpenBLAS paths via the libblas_path and liblapack_path options to meson setup). You may also wish to use a vendor-specific BLAS/LAPACK implementation such as one of the following:

Please see README.meson for instructions on how to tell Meson where to find these optional dependencies.

Linear Solvers

By default GALAHAD will build the SSIDS linear solver, other alternative linear solvers are:

Please see README.meson for instructions on how to tell Meson where to find these optional dependencies.

If you use the precompiled GALAHAD libraries, the MUMPS libraries are also provided. For libHSL, you can replace the dummy shared libraries libhsl_subset and libhsl_subset_64 shipped with GALAHAD with the official ones provided by the precompiled libHSL libraries. This requires at least GALAHAD v5.4.0 and libHSL v2025.7.21.

CUTEst Test Collection

GALAHAD can use optimization test problems from the CUTEst test collection. For example, to link GALAHAD with double precision CUTEst:

meson setup builddir -Dlibcutest_path=/path/to/CUTEst/lib -Dlibcutest_modules=/path/to/CUTEst/modules -Dsingle=false
meson compile -C builddir
meson install -C builddir

GALAHAD can similarly be linked with the single or quadruple precision variants of CUTEst. For more details, refer to the file meson_options.txt.

Note: only the shared libraries of CUTEst are supported when compiling GALAHAD with Meson. Please follow the instructions to set up CUTEst accordingly.

C Interface

To install the C interface using the Meson build system:

meson setup builddir -Dciface=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir --suite=C

Python Interface

To install the Python interface using the Meson build system:

meson setup builddir -Dpythoniface=true -Dpython.install_env=auto
meson compile -C builddir
meson install -C builddir
meson test -C builddir --suite=Python

Julia Interface

Please see GALAHAD.jl and the associated documentation.

MATLAB Interface

Please see README.matlab and the instructions provided there.

Integrated installation via make

GALAHAD can also be installed via the make command as part of the Optrove optimization eco-system that also includes CUTEst, SIFDecode and ARCHDefs. This has the advantage of providing scripts to run CUTEst examples directly from GALAHAD and allowing calls from Matlab, but suffers from considerably longer build times.

To use this variant, follow the instructions in the GALAHAD wiki.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

galahad_optrove-5.5.0.tar.gz (37.6 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

galahad_optrove-5.5.0-cp313-cp313-win_amd64.whl (15.7 MB view details)

Uploaded CPython 3.13Windows x86-64

galahad_optrove-5.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (24.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

galahad_optrove-5.5.0-cp313-cp313-macosx_15_0_x86_64.whl (15.5 MB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

galahad_optrove-5.5.0-cp313-cp313-macosx_15_0_arm64.whl (14.2 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

galahad_optrove-5.5.0-cp312-cp312-win_amd64.whl (15.7 MB view details)

Uploaded CPython 3.12Windows x86-64

galahad_optrove-5.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (24.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

galahad_optrove-5.5.0-cp312-cp312-macosx_15_0_x86_64.whl (15.5 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

galahad_optrove-5.5.0-cp312-cp312-macosx_15_0_arm64.whl (14.2 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

galahad_optrove-5.5.0-cp311-cp311-win_amd64.whl (15.6 MB view details)

Uploaded CPython 3.11Windows x86-64

galahad_optrove-5.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (24.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

galahad_optrove-5.5.0-cp311-cp311-macosx_15_0_x86_64.whl (15.5 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

galahad_optrove-5.5.0-cp311-cp311-macosx_15_0_arm64.whl (14.2 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

galahad_optrove-5.5.0-cp310-cp310-win_amd64.whl (15.6 MB view details)

Uploaded CPython 3.10Windows x86-64

galahad_optrove-5.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (24.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

galahad_optrove-5.5.0-cp310-cp310-macosx_15_0_x86_64.whl (15.5 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

galahad_optrove-5.5.0-cp310-cp310-macosx_15_0_arm64.whl (14.2 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

Details for the file galahad_optrove-5.5.0.tar.gz.

File metadata

  • Download URL: galahad_optrove-5.5.0.tar.gz
  • Upload date:
  • Size: 37.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for galahad_optrove-5.5.0.tar.gz
Algorithm Hash digest
SHA256 66d6bd788bb83541c004825bf03bf21e00b5e1ba0fe3ba2748f9faf8cdd49aa0
MD5 8b2e519387a356698c9dce3a00ace8e6
BLAKE2b-256 a51fe283e9dab619eb0ed3b0249659739b5c7954ea72f41ef0d9ccf7f25e14dc

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3baf9aa794441fdf2e147cd04400890ca5080d7a9c5e8f8d32e209dd06794978
MD5 e07c1ecf95b81aa941513a8585dcea40
BLAKE2b-256 64f49a200ac210335fa008d0af69afd472c7ab8494852ae76118a5735bf5e14b

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 28cb38cf76de7be11aa8be78c8eabd6a097c2d526427eb4e3663f25130fd0dac
MD5 ad92c4c5c4927353a457a78d56615e9b
BLAKE2b-256 47a4212967fe1351cd4a0162200a60766b111f18d4b52b911c1652c6cc62e99a

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 25f14468f9ebff8508688048b8f5c614930cb356060487125fc9a5bd5dd74473
MD5 92b0b79a74f91a2b5196bcaf1d6587a8
BLAKE2b-256 eeb9aed039532591cd0eaae2c21c8ab8c076dfd1598807de2f057981ef8db3cd

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 5deeb04003733f6b4b25b5585a01bbddee2551ee9b2468838d116f1de6cefbac
MD5 9ed90bbef44796992b6ef4567cb8d8be
BLAKE2b-256 a9a05d6b32f18747a18e876af902a033229a17bfdb8fee3a90cdd9c694ebb525

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 de2db1a0aa3aea6280958e3f26971d4306f678cd9f657261a967635ad5a51e37
MD5 fad3ffec179ba525660c4abbd09f5b4b
BLAKE2b-256 02a0cb6b763516e87fbfc38e5b3526d608d8189c8a366ac0a984bfe8dbb299fc

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 85802065d7d928f3a5fe35c1070fac03db3ac4fd52def26cc5d2a3e2017907db
MD5 03e9f6364f578f0e24e2eb50c64527ba
BLAKE2b-256 06a0f3de903fca177745e15c72ee5b94ee4a6ec7f1f709703e9ef013245857d3

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 8300e7264f2c57017be5c4f8e34cd87122955d930fd97bd76950f6ebb865063a
MD5 3adb0a23753b7e4369f56ee0a6a98c06
BLAKE2b-256 04b6b1397786074bd517831c3f75f7aff506059157a86fed1db573045b1643a8

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 7a9069a235e4a6c45957ea87b29bc0c2393170423a2b37c5768eeae343a429ed
MD5 fe49b14ee8dca521233cd0505b7407f8
BLAKE2b-256 c3ecfa94a79bdcb6b81f44e86f6a45cbd1f402af5d692ad7a504aae302b5ea8c

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fd58de465a428bdd22dd364302bacd1af860654bd96b0152f0883d36e7c7c675
MD5 9f6422e4c025f7bebc83fc64f0dae0dd
BLAKE2b-256 cc3c8db187d3113378de47503fa9a69cf4ecb73cc5a206bf363d609d714042e6

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 801d694a8c62130d6ee9b61c1e743b00b01a3b9bcc3d9a3d2cee6b4c56f2ed21
MD5 f0eb93113337f299d2ab04e388ba9b3a
BLAKE2b-256 756fabde2454e625bd1d682d1c7f78327cae705bb0ca7947c78ce87935a135fc

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 613747e095435860ca1b4d56b78d3d04b8bae5d5dbeada810fd9b4c55d29cd8e
MD5 69235d6b448c40f3472230f66e3075ef
BLAKE2b-256 34ed234e03a32e6e2b21cf7164c0f8444153f5a1777f93c9255b22c041010a51

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 fee01ab5a4dc610d0af8869fcb30b49c89962486b38be243a45b4d49e52d7dbc
MD5 af19412d3842b473d45e852926cba01b
BLAKE2b-256 81f374ae284ac44db17044bb7c9431eb83533e9ed2f16285da2e1ab34fede9d1

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 104aaaaa65d95e5ac0b8dada183dd6abae93ad729ccdd2e9a08ee1610cae4a50
MD5 7567e522c7e9b706f75b555198518478
BLAKE2b-256 d77ec3620817f6f067ebd75ebf7a69a04b15eb3a84b43dede53eff8181b8a3e1

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5df2991dfd2b4b85f937ecba1221a7745126d967eec5fde8a5fd26324dc7d0f3
MD5 fc90a2fd081628d563b94784b8751785
BLAKE2b-256 397fd0ac23f0602be37531e915b9313600f40d5d817548c776f6781662ecf1e3

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 c47e3a4729c68fcff2922fbf595915376a50b1798511f4e6e983a5590cc3bb3f
MD5 1223940c0eedd64c1c61a2b191e3fcd2
BLAKE2b-256 30ea09e8014a7afcafba5cc47b5364037c7e64c0c9d8261ceea61575593653e8

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.5.0-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.5.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0f33b36efe4df7d414b9def8f6af185762df927d9565d565b755ffadbdcc8b38
MD5 7c377022efeead884de9aa613b058da5
BLAKE2b-256 d6a36b12a4b84b503a6966e0f9c767803a6461068ea99c0dceb3efb6b2dafc52

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page