Introduction & Documentation | Status | Community | Version-Specific Citation | License |
---|---|---|---|---|
A Julia package to bound the range of real-valued functions. The following article showcases the basic functionality, highlighting some of the key design choices:
Luca Ferranti, Marcelo Forets, and Christian Schilling. RangeEnclosures.jl: A framework to bound function ranges Proceedings of the JuliaCon Conferences (2024).
See below for how to cite it.
From the Julia REPL type
julia> using Pkg; Pkg.add("RangeEnclosures")
An enclosure of the range
of a function RangeEnclosures
offers an API to easily bound the range of
julia> f(x) = -x^3/6 + 5x
julia> dom = 1 .. 4
[1, 4]
julia> enclose(f, dom, BranchAndBoundEnclosure())
[4.83333, 10.5709]
We plan to add more examples to the docs. In the meantime, check the test folder for further examples.
If you encounter bugs, want to suggest new features or have questions, feel free
to open an issue.
You can also chat with the package developers at the #juliareach
stream on
Zulip. Pull requests implementing new
features or fixing bugs are also welcome. Make sure to check out the
contribution guidelines.
If you use this package in your work, please cite it using the metadata here or below:
@article{Ferranti2024,
author = {Luca Ferranti and
Marcelo Forets and
Christian Schilling},
title = {{RangeEnclosures}.jl: A framework to bound function ranges},
journal = {Proceedings of the JuliaCon Conferences},
volume = {1},
number = {1},
pages = {3},
year = {2024},
publisher = {The Open Journal},
url = {https://doi.org/10.21105/jcon.00122},
doi = {10.21105/jcon.00122}
}
Huge thanks to all the contributors. In addition, we are grateful to Luis Benet, Benoît Legat and David P. Sanders for enlightening discussions during the preparation of this package.
During Summer 2022, this project was financially supported by Google through the Google Summer of Code program. During Summer 2019, this project was financially supported by Julia through the Julia Season of Contributions program.
If you use RangeEnclosures.jl
, consider acknowledging or citing the Julia package
that implements the specific solver that you are using.