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.1.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.1-cp313-cp313-win_amd64.whl (15.7 MB view details)

Uploaded CPython 3.13Windows x86-64

galahad_optrove-5.5.1-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.1-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.1-cp313-cp313-macosx_15_0_arm64.whl (14.2 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

galahad_optrove-5.5.1-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.1-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.1-cp312-cp312-macosx_15_0_arm64.whl (14.2 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

galahad_optrove-5.5.1-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.1-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.1-cp311-cp311-macosx_15_0_arm64.whl (14.2 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

galahad_optrove-5.5.1-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.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: galahad_optrove-5.5.1.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.1.tar.gz
Algorithm Hash digest
SHA256 d0720cd867c0c6f597fd57840c088e3af8b34d49260e44cfc5a0ec97081d868a
MD5 ef2a1d04d66b0c8689eba033b37acfee
BLAKE2b-256 3d5b636c182c0a97af6c5fc5ac8f365f0f39f034d7e3288d4fedb45adaf87b9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 96b7140bab8fbac1b6a153792d7f4588a6ccab37d365fcf3c37fe4f34bcaac33
MD5 8a68a2d2ded558abf34f525beef2d4a4
BLAKE2b-256 9b965f8a2b2ae3bffe0c59f5fe97e5511048170bc6f735607af34c61a2d0d091

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4ac433440bbf9b37216e9c2de1e84bc692e9386f6b15643c66906fe674697f24
MD5 177ce602e5ffd40f1e8a911695258d88
BLAKE2b-256 ad17ffed0280594db9d0a6ba7f82d4a626399fed559728810605a7ae3d07da8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 d27559bbfe4f9d36cdae5f8d702aab782dd27bedf00d9ee02a1270b482182847
MD5 fc8f5aac73da63a9f2c7b701574d471e
BLAKE2b-256 754e917bb31cc2469d58878106a704822f86b3ddfee091c9966b1458a294ce72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 bc0a3488378f53ca568c73accf299a95ff7e6b256cbfec3185b9d3549cc90936
MD5 ea0e55c9203a68c1162bdb97276a9970
BLAKE2b-256 9d4383696fe81aef7c80777e895a549e9d219388095e80a7bd2d9691747b5d55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 98603554bc625d0803a5ee10dad06f24797d1c44c2027ad900fbe0659ebe55f3
MD5 62b5ae8362f45103cacc88ad115a702d
BLAKE2b-256 8a5f31ef644b510eebbb11e2243ca541a20df2c2836f77febdaa3a7f1fa8f6e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1bb314e79e1375848b1096635617bf18cf9401cf0ec105ce98ec9502cafd2d99
MD5 71d0fafb8d228a101c23f7d82cdc9b47
BLAKE2b-256 fe491f83037595108fadf287991fc20a367425f4143e379e68cc8fd14199acea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 b0cb97a2f9f5a60fe9ca0cf1ec227d6776065d3b91451aee6274b1d43c0faff7
MD5 7c0e14456ec667e53639fa80e2ba83bd
BLAKE2b-256 0f39462324fe152f0f97afc2e9403a692eae1919a4bde617f73b2addcae2ab24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 34d70f419523e28aa9a9c5da683631c41a05a40e2a8b36a90a7d0d56c60524cf
MD5 10e05be109239ac2b495ac8d80670541
BLAKE2b-256 d48b2c0ea5d8a6b049a6bca27e0b98f83b5414010d50f579181f41ed0d4ba8a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3012627c56123d6023a27378355e812cd564d429e06c92cd6a6ce0eda44f207e
MD5 315016220cb8fe33b853e0fac2362587
BLAKE2b-256 eade00511435bf94fb7723bf3b1927953b876c844fdd31f441ba7b27796347d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b03a6727617de659312159947534fc9778dda3e07993a9c984787369d97a23f7
MD5 c16d760e0bef4fd419da2add006d71a8
BLAKE2b-256 68e811c36c460c808b2348c717f5b7eafca20b8b92b97214af0888d466f913e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 c084d46ef1bb925c30cd0ba63d05760af6c916a95b1bef7f9b7580956ff360f8
MD5 899876e555bc74b28bcb023eb16f219b
BLAKE2b-256 0073bf34aa127c78a04fcc5ff7a370722fb0dd5ea2e6d2354ba02dbbcb7a059a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 838ede1ae30c1767b467c36c04b3ce8414b32ede0c5a9914056fa0de11bb7790
MD5 8818d9f4105b3d4ceee5673a4b4816ae
BLAKE2b-256 3d171660b904bbcad9979ea77e7e86b964de90971f542b3d8436e26ef9471c58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 668fdf91948283fe089756b3f7c47a61fb2e58fc3f9fec384593fefe6b022371
MD5 52dcc8abd8b21f2e5c97faeca6e23c8a
BLAKE2b-256 8afbb831be7782b172013d517ec064920e6b19a073f0654aab937a53ae320781

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4e9a72ab814a71612f66f0d9a6194787997d902077ae91cbfa9cb379147a33d2
MD5 fb8508c49df3fc17cb9d034ebe3ec6fc
BLAKE2b-256 9bed5ed63f3672c52762ec8047214b9f30fda8167c1c24331f0fcb7a184ddff1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 762f76ae79e65405ce87ce1a5a614e34f0b371f67cbab90b8faf8af829bd0b25
MD5 8389a6b2b7d0cefdd93448936b9d3d79
BLAKE2b-256 ab5f53f642f05034dbb252d1a7fb20e1afcf4169d94472d8c9b7ffd195648a86

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.5.1-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f928fdf968f26a4e98cca452944c90c08baae95f2e5a668eab52fd6d1aa5924d
MD5 8d9c049aea0461b5f8f4382867087d24
BLAKE2b-256 85ae7d37e33bb16b0bbaccc5a44932e446615defef25f7e662f179d6983a8de0

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