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.

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.3.0.tar.gz (35.9 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.3.0-cp313-cp313-win_amd64.whl (14.0 MB view details)

Uploaded CPython 3.13Windows x86-64

galahad_optrove-5.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

galahad_optrove-5.3.0-cp313-cp313-macosx_14_0_arm64.whl (12.6 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

galahad_optrove-5.3.0-cp313-cp313-macosx_13_0_x86_64.whl (13.7 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

galahad_optrove-5.3.0-cp312-cp312-win_amd64.whl (14.0 MB view details)

Uploaded CPython 3.12Windows x86-64

galahad_optrove-5.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

galahad_optrove-5.3.0-cp312-cp312-macosx_14_0_arm64.whl (12.6 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

galahad_optrove-5.3.0-cp312-cp312-macosx_13_0_x86_64.whl (13.7 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

galahad_optrove-5.3.0-cp311-cp311-win_amd64.whl (14.0 MB view details)

Uploaded CPython 3.11Windows x86-64

galahad_optrove-5.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

galahad_optrove-5.3.0-cp311-cp311-macosx_14_0_arm64.whl (12.5 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

galahad_optrove-5.3.0-cp311-cp311-macosx_13_0_x86_64.whl (13.7 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

galahad_optrove-5.3.0-cp310-cp310-win_amd64.whl (14.0 MB view details)

Uploaded CPython 3.10Windows x86-64

galahad_optrove-5.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

galahad_optrove-5.3.0-cp310-cp310-macosx_14_0_arm64.whl (12.6 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

galahad_optrove-5.3.0-cp310-cp310-macosx_13_0_x86_64.whl (13.7 MB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

File details

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

File metadata

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

File hashes

Hashes for galahad_optrove-5.3.0.tar.gz
Algorithm Hash digest
SHA256 39627639a9a9205cb49a3904dc6dd690f13e7ca631a1d6f640066abdb3a5e8f6
MD5 f2fc929d7ef64f10d8bc5ff9ac079787
BLAKE2b-256 136d21b808f695da01bb7d1a0db319bff046224209b927fa5f98c7a902307c26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3f6b22e0b9f3f22014744e981d9683389306394b3f720a4348a65baf4346267b
MD5 9013b9e20acbd4d85e7ed82ae767f913
BLAKE2b-256 073d7f77699b2a34d0d5f98221d3d8aa1e2f875a5b456fc6500767882c35b66a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3f9c5dfa7f221076c0fba3de33fff9b6c1b46e04f80d8e2b1b7b87e139b1cc01
MD5 13041ee4c7d62fd83618fb8b8ff0fd5f
BLAKE2b-256 b516aecbb690e54988cc209ad88736fc1bda290a3399a9974c98adc7d992aca1

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.3.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9d1d3e8032a492ba85e2dc57daad114f941c6ba93092c6bf0d6c9457c1d59e47
MD5 9fb69512febc4120e1417aed04dcfd19
BLAKE2b-256 3ed017f4a891c03304081feb7cfd33059071129affc63e77aacafc84bfef81a0

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.3.0-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 07c8565841cdc8f297c791a327f68253c4db090cd43ae6a0501ca437186118f6
MD5 b43869909f480489e88b5ce4ac5264a8
BLAKE2b-256 74e84ec30ceb4ec6a7b620f0ff66733a54dec481fa4455e3d42881bd2df3a203

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7710f4fdf6b025a78c567a01b8bd714479348f8902e556deb127cbb91c76172a
MD5 db578b2209672ba596c640c1538d8763
BLAKE2b-256 fa9e5ff974adf786f0ba9169b7e8cc9ac2070f5c3884acddec876f00ee22b09d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba0628399ad6d39f2c0cebaa9f5b88de8bbb2c6115a795502ba80b69f155828c
MD5 ea5f28181219f0e2d5f76ea9c054d06f
BLAKE2b-256 69eb4dd134f03f79bbdc2aef1d0a953fb33256e2c7b3243ff20e5dc532d948aa

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.3.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 672b4cdb83851489740873603c72fedad693eef511d9664b99236643fce53225
MD5 3acb6a1481d9f6dd87481cfc73760ddd
BLAKE2b-256 d93a94c4d99a2a73ded9dff3639df549e72ea07ad577fdd004f8f7c3eb1eadd9

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.3.0-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 f91a8339742b7a829a9b06e4aff17bc1a75ca595cf5a07e9c259a29128dbc0aa
MD5 a642bad7f299168ea58eb03206102492
BLAKE2b-256 1f9396536a83383aea92c866844bd184ba70866848596498fd55e588e7159597

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8bae2c7935ff9eff852964f0c74c7dd4a63eec31d961a3c44022cd7088b0ff8d
MD5 e9eedf4a5d28c97e64d206322ac7d07b
BLAKE2b-256 129e1a784227dabd37975b29457a38e90f896efcdfbbbdaf5de703bcf71d5dac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d19be031d045eab11368c9c86c6326a2f344cacc69b504d4afec94fc0f0260fe
MD5 7cc4cad7d3f55f2274378f900de5fe9f
BLAKE2b-256 293b519a95b8806a6ca4574eb1d4c04f5b1efa089c44a6f0c06b7efe2b4b6a7c

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.3.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ba7b590ab78137cd8d8f0dcfbb878a34560cdbc7d2c7cc147603b9c55fff8510
MD5 46a1c8e006cb0fa8a273a55a5e3fb9f5
BLAKE2b-256 a3796c76113de7e52ea2190a34c8654b40399735e31b3f9668c1dd7c2b3c8cd1

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.3.0-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 152baa1efd3c5234b19af2ccef4e5bef90f141fc2a6d314c81350c7f5784dbe0
MD5 74d23f5fb97c61f8b4402608fc1baa64
BLAKE2b-256 c4adac3e3af3459ca0f8f41d46c4acf1a6246e17e23f759c8092f88d1475dc97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a4e708abc10c8e046b4c0a935caea944d91602a39d147df695cd198bc85bc753
MD5 f5a0cc460215aff15c1d2b38c61d7a2e
BLAKE2b-256 1bca0e0258ad512c8a0ab6367941f8ad0dd2af965ce82a0a6a884131a0f2b2e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7208cca9ee308f43ec5e0456dc8831e684163337fe228128c212cd7020848399
MD5 b976c37c97f61a10cc28df18fd7edcf4
BLAKE2b-256 7d6ecd1ac6f628ef11220b80cf2270b9493004c787d05b4d5aa6c17f6593c723

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.3.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 128c93cc70680f3cded752af4e57550ef7ec6459adf752d3e9899dc5dfda5c77
MD5 f0d1cdf2cb5e9ba8c0e7f2b2e52271e0
BLAKE2b-256 3a5c9fb0aef8c534927f888568a68516a815544b5989fabdcaed9ef574363942

See more details on using hashes here.

File details

Details for the file galahad_optrove-5.3.0-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for galahad_optrove-5.3.0-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 8cb88a11d3c4cb85b7d72ce8afe57f592bfe052fda67f95891487ae727475d36
MD5 b61f3cce154edcbc0cd1ecba4ab5154a
BLAKE2b-256 fc2e7da1b3db83fa8c625ca27a84d1c116a8375a91305b48971192d0da4f281e

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