# Bayesian-Optimization / doxygen / install.dox

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 /*! \page install Installing BayesOpt \tableofcontents BayesOpt uses standard C/C++ code (C++98) and it can be compiled in different platforms and used from different languages. \section unixinst Installing in Linux/MacOS: The compilation is very similar in any *nix system. Note that the Python or Matlab interfaces are not included by default. \subsection getDepend Getting dependencies: The easiest way to compile this library is using the cross platform and cross compiler tool CMake. This code uses Boost libraries for matrix operations (uBlas), random number generation, math functions and smart pointers. Being only include files, Boost does not require any speciall install. Boost can be found in many Linux and MacOS repositories. It can also be downloaded from http://www.boost.org. Both Python development files (Python.h) and Numpy are needed if you want the Python interface. The library has been tested with Python 2.6 and 2.7. The interface relies on Numpy arrays. Finally, if you want the Matlab interface, just make sure your C++ compiler is compatible with your Matlab version. \subsubsection cinlinux Linux: For Ubuntu/Debian, the minimum dependencies (C/C++) can be optained by running: \verbatim >> sudo apt-get install libboost-dev cmake cmake-curses-gui g++ \endverbatim If you want the Python interface: \verbatim >> sudo apt-get install python-dev python-numpy \endverbatim If you want the Octave interface: \verbatim >> sudo apt-get install octave-headers \endverbatim And for all dependencies: \verbatim >> sudo apt-get install libboost-dev python-dev python-numpy cmake cmake-curses-gui g++ cython octave-headers \endverbatim \subsubsection cinmac MacOS: This section assumes \b macports is installed. Similar packages can be found in \b fink or \b homebrew. For the minimal install, run: \verbatim >> sudo port install boost gcc46 cmake \endverbatim If you want the Python interface: \verbatim >> sudo port install python27 py27-numpy \endverbatim If you want the Octave interface: \verbatim >> sudo port install octave \endverbatim Again, for all dependencies: \verbatim >> sudo port install boost python27 py27-numpy gcc46 cmake py27-cython octave \endverbatim \subsection compile Compile the library: In order to compile the source code in a *nix system, run this from a terminal. \verbatim >> cmake . >> make >> sudo make install \endverbatim \b Important: If you use \b ccmake instead of \b cmake you will access a graphical interface to select features such as the include the Python and Matlab interfaces, debug/release mode or if you want to use shared libraries or not. \b Shared libraries are required to run the Python interface. \subsubsection docbuild Building the documentation If you have doxygen installed on your computer, you can compile the documentation right after compiling the code by running. \verbatim >> make doc \endverbatim Thid documentation will appear in the "doc" subdirectory. \subsection instpython Python interface: Both Python development files (Python.h) and Numpy are needed if you want the python interface. The library has been tested with Python 2.6 and 2.7. The interface relies on Numpy arrays. If we want to select the option to compile the Python interface we can just run: \verbatim >> ccmake . >> make >> sudo make install \endverbatim \b Important: Python requires bayesopt to be a \b shared library.
\section cinwin Windows and other systems: Install this components: \li CMake: http://www.cmake.org CMake for Windows provides a nice GUI where you can select your favorite C++ compiler (MinGW, Visual Studio, etc.). It will automatically create the necesary configuration files for the compiler (makefile, solution, etc.). \li Boost: http://www.boost.org Since Boost they are pure template libraries, they do not require compilation. Just make sure the headers are on the include path. You can also add an entry named BOOST_ROOT in CMake with the corresponding path to the library. \li MinGW: http://www.mingw.org If you do not have a C++ compiler, we recomend MinGW+MSYS. Then, you just need to compile from the command line with: \verbatim >> mingw32-make \endverbatim Python for \b Windows has not been tested because getting the dependencies might be involved. You might need to download and install: \li Python: http://www.python.org \li Numpy: http://new.scipy.org/download.html Also, read this article: http://docs.python.org/2/extending/windows.html#building-on-windows
\section instmatlab Install MATLAB/Octave interface Make sure the library is compiled with the MATLAB_COMPATIBLE option (using ccmake or CMake in Windows) and configure Matlab/Octave to compile mex files. Run the corresponding script compile_matlab.m or compile_octave.m, which can be found in the \em /matlab/ directory. Modify the path of the libraries if it is not correct. If bayesopt or nlopt are compiled as \b shared libraries, then, at run time, MATLAB/Octave also needs to access to the libraries. For example, in Linux and Mac OS LD_LIBRARY_PATH must include the folder where the libraries are. If the install path is the default, you can execute the exportlocalpath.sh script is executed before calling MATLAB.
\section instcython Modifying the Python interface: Read this part only if you need to modify the Python interface. For this task, you need to install Cython: In \b Ubuntu/Debian, you can get it by running: \verbatim >> sudo apt-get install cython \endverbatim In \b MacOS you can install macports and run: \verbatim >> sudo port install py27-cython \endverbatim Or we can download it from the website: http://cython.org If you want to modify the interface, you need to modify the pyx file and run the Cython compiler. \verbatim \$ cython --cplus bayesopt.pyx \endverbatim and recompile the library. */ 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.