+ Copyright (C) 2011 Ruben Martinez-Cantin <firstname.lastname@example.org>
+ BayesOptimization is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ BayesOptimization is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-Bayesopt uses standard C/C++ code, standard libraries (see dependencies) and
-it can be compiled in different platforms using CMake.
-==== Linux or Mac OS: ====
-Using ccmake instead of cmake you will access a interface to select features
-such as debug mode, which version of DIRECT to use (see below) and if you want
-to use shared libraries or not. Shared libraries are required to use the
-If you have doxygen installed on your computer, you can compile the
-documentation directly using cmake.
-The documentation will appear on the doc subdirectory.
-It can be compilled using CMake and MinGW compilers.
-Jointly with bayesian-optimization, the test program krigtest will be compiled.
-It can be used as an example of the interfaces that bayesian-optimization provide.
-There are three kind of interfaces.
-==== 2.1 - C functional usage ====
-This interface is fully functional from C and C++. It resembles the classic
-NLOPT interface, therefore, NLOPT manual can used as well. We just need to
-define a function pointer to the function that we need to evaluate. The
-function pointer must agree with the template provided in krigwpr.h
-Note that the gradient has been included for future compatibility, although
-in the current implementation, it is not used. You can just use a NULL pointer.
-==== 2.2 - C++ polymorphic usage ====
-The second way to use the function is by creating an object that inherits
-from the Krigging object defined in krigging.hpp
-Then, we just need to define the virtual function evaluateSample, which
-has interfaces both for C arrays and uBlas vectors. You can just redefine
-your favorite interface.
-Note that the checkReachability function has been included for future
-compatibility, although in the current implementation, it is not used.
-==== 2.3 - Python functional usage ====
-The file bin/test.py provides an example of the Python interface. It is similar
-the C interface. The parameters must be defined as a Python dictionary.
-=== 3 - DEPENDENCIES: ===
-This code uses Boost libraries for matrix operations (uBlas) and random
-number generation. They can be found in standard linux distributions or
-it can be downloaded from (www.boost.org). Since they are pure template
-libraries, they do not require compilation. Just make sure the headers are
-They are not very efficient, so it may change in future versions.
-This library requires some other nonlinear optimization library
-===== a) Using Fortran DIRECT: =====
-For completeness, it includes a Fortran 77 implementation of the
-DIRECT-L algorithm by J. Gablonsky
-J. M. Gablonsky and C. T. Kelley, "A locally-biased form of the DIRECT
-algorithm," J. Global Optimization, vol. 21 (1), p. 27-37 (2001).
-The original code can be downloaded from
-which includes some parallel processing functions that are not yet
-supported in bayesian-optimization.
-I have only tested this code using gfortran on Windows, Mac OS X
-and Linux, but it should work with other fortran compilers like f77 or
-===== b) Using NLOPT (default): =====
-We recommend the use of NLOPT for the inner loop optimization. The latest
-version can be downloaded from
-NLOPT does not require external libraries and it is compatible with
-Windows and Mac. Although compiling it in Windows is tricky.
-The library has been tested with Python 2.6 and 2.7 Python development files such as
-Python.h are needed to compile the interface. It you want to modify the Python
-interface, you also need Cython.
-$ cython --cplus bayesopt.pyx
-- In some systems, the linker is not able to find the shared libraries. You
-just need to point the LD_LIBRARY_PATH and PYTHONPATH to the corresponding
-folder (by default: /usr/local/lib)
-- I have found that in some versions of Linux, NLOPT callback procedure
-fails when using the Python interface of bayesian-optimization.
+ You should have received a copy of the GNU General Public License
+ along with BayesOptimization. If not, see <[[http://www.gnu.org/licenses/|http://www.gnu.org/licenses/]]>.