Skip to content

Commit 3a3bd50

Browse files
committed
Updated documentation for new release
1 parent 889bc7b commit 3a3bd50

File tree

92 files changed

+12804
-5568
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+12804
-5568
lines changed

docs/build/doctrees/advanced.doctree

-4.57 KB
Binary file not shown.
-1.12 KB
Binary file not shown.
278 KB
Binary file not shown.

docs/build/doctrees/history.doctree

1.72 KB
Binary file not shown.

docs/build/doctrees/index.doctree

-1.78 KB
Binary file not shown.

docs/build/doctrees/info.doctree

-2.19 KB
Binary file not shown.

docs/build/doctrees/install.doctree

-982 Bytes
Binary file not shown.

docs/build/doctrees/userguide.doctree

647 Bytes
Binary file not shown.

docs/build/html/.buildinfo

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Sphinx build info version 1
22
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3-
config: 6a2288786364dcb1761dcd61fd935f30
3+
config: 71b7b5e9dd47a27f370b73edfaf0d9fa
44
tags: 645f666f9bcd5a90fca523b33c5a78b7

docs/build/html/_sources/history.rst.txt

+5
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,8 @@ Version 1.4 (16 May 2023)
4646
* Handle Nan/Inf values in model gradient and Hessian by gracefully exiting trust-region subproblem
4747
* Bugfix: automatically make model Hessian symmetric before trust-region subproblem with warning, instead of returning an error
4848
* Bugfix: reset slow iteration counter when doing soft restarts
49+
50+
Version 1.4.1 (11 Apr 2024)
51+
-------------------------
52+
* Migrate package setup to pyproject.toml (required for Python version 3.12)
53+
* Drop support for Python 2.7 and <=3.7 due to new setup process

docs/build/html/_sources/index.rst.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ The upper and lower bounds on the variables are non-relaxable (i.e. Py-BOBYQA wi
2626
Full details of the Py-BOBYQA algorithm are given in our papers:
2727

2828
1. Coralia Cartis, Jan Fiala, Benjamin Marteau and Lindon Roberts, `Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers <https://doi.org/10.1145/3338517>`_, *ACM Transactions on Mathematical Software*, 45:3 (2019), pp. 32:1-32:41 [`preprint <https://arxiv.org/abs/1804.00154>`_]
29-
2. Coralia Cartis, Lindon Roberts and Oliver Sheridan-Methven, `Escaping local minima with derivative-free methods: a numerical investigation <https://doi.org/10.1080/02331934.2021.1883015>`_, *Optimization* (2021). [`preprint <https://arxiv.org/abs/1812.11343>`_]
29+
2. Coralia Cartis, Lindon Roberts and Oliver Sheridan-Methven, `Escaping local minima with derivative-free methods: a numerical investigation <https://doi.org/10.1080/02331934.2021.1883015>`_, *Optimization*, 71:8 (2022), pp. 2343-2373. [`arXiv preprint: 1812.11343 <https://arxiv.org/abs/1812.11343>`_]
3030

31-
Please cite [1] when using Py-BOBYQA for local optimization, and [1,2] when using Py-BOBYQA's global optimization heuristic functionality **(new in v1.1!)**.
31+
Please cite [1] when using Py-BOBYQA for local optimization, and [1,2] when using Py-BOBYQA's global optimization heuristic functionality.
3232

3333
If you are interested in solving least-squares minimization problems, you may wish to try `DFO-LS <https://github.com/numericalalgorithmsgroup/dfols>`_, which has the same features as Py-BOBYQA (plus some more), and exploits the least-squares problem structure, so performs better on such problems.
3434

docs/build/html/_sources/install.rst.txt

+7-6
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ Requirements
55
------------
66
Py-BOBYQA requires the following software to be installed:
77

8-
* `Python 2.7 or Python 3 <http://www.python.org/>`_
8+
* Python 3.8 or higher (http://www.python.org/)
99

1010
Additionally, the following python packages should be installed (these will be installed automatically if using `pip <http://www.pip-installer.org/>`_, see `Installation using pip`_):
1111

12-
* `NumPy 1.11 or higher <http://www.numpy.org/>`_
13-
* `SciPy 0.18 or higher <http://www.scipy.org/>`_
14-
* Optionally, `Pandas 0.17 or higher <https://pandas.pydata.org/>`_, to return the diagnostic information as a DataFrame
12+
* NumPy (http://www.numpy.org/)
13+
* SciPy (http://www.scipy.org/)
14+
* Pandas (http://pandas.pydata.org/)
1515

1616
**Optional package:** Py-BOBYQA versions 1.2 and higher also support the `trustregion <https://github.com/lindonroberts/trust-region>`_ package for fast trust-region subproblem solutions. To install this, make sure you have a Fortran compiler (e.g. `gfortran <https://gcc.gnu.org/wiki/GFortran>`_) and NumPy installed, then run :code:`pip install trustregion`. You do not have to have trustregion installed for Py-BOBYQA to work, and it is not installed by default.
1717

@@ -71,11 +71,12 @@ To upgrade Py-BOBYQA to the latest version, navigate to the top-level directory
7171
7272
Testing
7373
-------
74-
If you installed Py-BOBYQA manually, you can test your installation by running:
74+
If you installed Py-BOBYQA manually, you can test your installation using the pytest package:
7575

7676
.. code-block:: bash
7777
78-
$ python setup.py test
78+
$ pip install pytest
79+
$ python -m pytest --pyargs pybobyqa
7980
8081
Uninstallation
8182
--------------

docs/build/html/_sources/userguide.rst.txt

+4-4
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Py-BOBYQA is designed to solve the local optimization problem
1414
where the bound constraints :math:`a \leq x \leq b` are optional. The upper and lower bounds on the variables are non-relaxable (i.e. Py-BOBYQA will never ask to evaluate a point outside the bounds). The objective function :math:`f(x)` is usually nonlinear and nonquadratic. If you know your objective is linear or quadratic, you should consider a solver designed for such functions (see `here <https://neos-guide.org/Optimization-Guide>`_ for details).
1515

1616
Py-BOBYQA iteratively constructs an interpolation-based model for the objective, and determines a step using a trust-region framework.
17-
For an in-depth technical description of the algorithm see the paper [CFMR2018]_, and for the global optimization heuristic, see [CRO2018]_.
17+
For an in-depth technical description of the algorithm see the paper [CFMR2018]_, and for the global optimization heuristic, see [CRO2022]_.
1818

1919
How to use Py-BOBYQA
2020
--------------------
@@ -402,12 +402,12 @@ The output of this is:
402402
Warning (max evals): Objective has been called MAXFUN times
403403
******************************
404404
405-
As we can see, the :code:`seek_global_minimum` flag helped Py-BOBYQA escape the local minimum from the first run, and find the global minimum. More details are given in [CRO2018]_.
405+
As we can see, the :code:`seek_global_minimum` flag helped Py-BOBYQA escape the local minimum from the first run, and find the global minimum. More details are given in [CRO2022]_.
406406

407407
References
408408
----------
409409

410410
.. [CFMR2018]
411411
Coralia Cartis, Jan Fiala, Benjamin Marteau and Lindon Roberts, `Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers <https://doi.org/10.1145/3338517>`_, *ACM Transactions on Mathematical Software*, 45:3 (2019), pp. 32:1-32:41 [`preprint <https://arxiv.org/abs/1804.00154>`_]
412-
.. [CRO2018]
413-
Coralia Cartis, Lindon Roberts and Oliver Sheridan-Methven, `Escaping local minima with derivative-free methods: a numerical investigation <https://doi.org/10.1080/02331934.2021.1883015>`_, *Optimization* (2021). [`preprint <https://arxiv.org/abs/1812.11343>`_]
412+
.. [CRO2022]
413+
Coralia Cartis, Lindon Roberts and Oliver Sheridan-Methven, `Escaping local minima with derivative-free methods: a numerical investigation <https://doi.org/10.1080/02331934.2021.1883015>`_, *Optimization*, 71:8 (2022), pp. 2343-2373. [`arXiv preprint: 1812.11343 <https://arxiv.org/abs/1812.11343>`_]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
/* Compatability shim for jQuery and underscores.js.
2+
*
3+
* Copyright Sphinx contributors
4+
* Released under the two clause BSD licence
5+
*/
6+
7+
/**
8+
* small helper function to urldecode strings
9+
*
10+
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
11+
*/
12+
jQuery.urldecode = function(x) {
13+
if (!x) {
14+
return x
15+
}
16+
return decodeURIComponent(x.replace(/\+/g, ' '));
17+
};
18+
19+
/**
20+
* small helper function to urlencode strings
21+
*/
22+
jQuery.urlencode = encodeURIComponent;
23+
24+
/**
25+
* This function returns the parsed url parameters of the
26+
* current request. Multiple values per key are supported,
27+
* it will always return arrays of strings for the value parts.
28+
*/
29+
jQuery.getQueryParameters = function(s) {
30+
if (typeof s === 'undefined')
31+
s = document.location.search;
32+
var parts = s.substr(s.indexOf('?') + 1).split('&');
33+
var result = {};
34+
for (var i = 0; i < parts.length; i++) {
35+
var tmp = parts[i].split('=', 2);
36+
var key = jQuery.urldecode(tmp[0]);
37+
var value = jQuery.urldecode(tmp[1]);
38+
if (key in result)
39+
result[key].push(value);
40+
else
41+
result[key] = [value];
42+
}
43+
return result;
44+
};
45+
46+
/**
47+
* highlight a given string on a jquery object by wrapping it in
48+
* span elements with the given class name.
49+
*/
50+
jQuery.fn.highlightText = function(text, className) {
51+
function highlight(node, addItems) {
52+
if (node.nodeType === 3) {
53+
var val = node.nodeValue;
54+
var pos = val.toLowerCase().indexOf(text);
55+
if (pos >= 0 &&
56+
!jQuery(node.parentNode).hasClass(className) &&
57+
!jQuery(node.parentNode).hasClass("nohighlight")) {
58+
var span;
59+
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
60+
if (isInSVG) {
61+
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
62+
} else {
63+
span = document.createElement("span");
64+
span.className = className;
65+
}
66+
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
67+
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
68+
document.createTextNode(val.substr(pos + text.length)),
69+
node.nextSibling));
70+
node.nodeValue = val.substr(0, pos);
71+
if (isInSVG) {
72+
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
73+
var bbox = node.parentElement.getBBox();
74+
rect.x.baseVal.value = bbox.x;
75+
rect.y.baseVal.value = bbox.y;
76+
rect.width.baseVal.value = bbox.width;
77+
rect.height.baseVal.value = bbox.height;
78+
rect.setAttribute('class', className);
79+
addItems.push({
80+
"parent": node.parentNode,
81+
"target": rect});
82+
}
83+
}
84+
}
85+
else if (!jQuery(node).is("button, select, textarea")) {
86+
jQuery.each(node.childNodes, function() {
87+
highlight(this, addItems);
88+
});
89+
}
90+
}
91+
var addItems = [];
92+
var result = this.each(function() {
93+
highlight(this, addItems);
94+
});
95+
for (var i = 0; i < addItems.length; ++i) {
96+
jQuery(addItems[i].parent).before(addItems[i].target);
97+
}
98+
return result;
99+
};
100+
101+
/*
102+
* backward compatibility for jQuery.browser
103+
* This will be supported until firefox bug is fixed.
104+
*/
105+
if (!jQuery.browser) {
106+
jQuery.uaMatch = function(ua) {
107+
ua = ua.toLowerCase();
108+
109+
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
110+
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
111+
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
112+
/(msie) ([\w.]+)/.exec(ua) ||
113+
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
114+
[];
115+
116+
return {
117+
browser: match[ 1 ] || "",
118+
version: match[ 2 ] || "0"
119+
};
120+
};
121+
jQuery.browser = {};
122+
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
123+
}

0 commit comments

Comments
 (0)