I am excited to announce the first release of the [`IntervalOptimisation.jl`

] (https://github.com/JuliaIntervals/IntervalOptimisation.jl) package, which performs (box-constrained) global optimisation for functions, including non-smooth functions, of one or several variables in a **rigorous** (guaranteed) way. Lower and upper bounds are given for the global minimum, as well as the location(s) of the minimizer(s).

This is done using interval methods, based on the `IntervalArithmetic.jl`

package, also part of the `JuliaIntervals`

organisation. (That package recently received a speed boost [on master branch] of around 3x, thanks to Jeffrey Sarnoff’s FastRounding.jl package.)

In particular, the package contains a reasonably efficient implementation of the Moore-Skelboe “branch and bound” algorithm, which seems to be quite fast for low-dimensional functions. Julia allows, as usual, a very clean, readable implementation, and allows us to easily experiment with different versions and algorithms.

In the near future, methods to find all maxima / minima of a function will be added.

Constrained global optimisation would also be possible, by combining this with IntervalConstraintProgramming.jl; I will discuss both packages in my JuliaCon talk on Wednesday.

I am, of course, very interested in trying out hard test problems and in any other collaborations.

**Note on spelling**: The package name uses the British English spelling “optimiSation”, with `s`

. The functions `minimise`

and `maximise`

provided by the package have American English aliases `minimize`

and `maximize`

, with `z`

.

**Note for Windows users**: Currently, all of the `JuliaIntervals`

packages should work on Windows, but will be slow when using elementary functions (`sin`

, `exp`

etc.), since they fall back to using `BigFloat`

s (i.e. the MPFR package).

This would be fixed by providing a compiled version of the `CRlibm`

library and interfacing it from the `CRlibm.jl`

package. Any help with this (e.g. during JuliaCon) will be appreciated.