Commits

Anonymous committed f541265

Matlab plugin now works with dlls in Windows.

Comments (0)

Files changed (7)

 all: disc cont
 
 cont:
-	$(CC) $(FLAGS) $(INCLUDES) -o bayesopt.mexw32  bayesoptmex.c libbayesopt.dll $(LIBS)
+	$(CC) $(FLAGS) $(INCLUDES) -o bayesoptcont.mexw32  bayesoptmex.c libbayesopt.dll $(LIBS)
 
 disc:
 	$(CC) $(FLAGS) $(INCLUDES) -o bayesoptdisc.mexw32  bayesoptdiscmex.c libbayesopt.dll $(LIBS)

matlab/bayesopt.m

-% BAYESOPT Optimization (minimization) of target function using bayesian
-% optimization.
-%
-% Usage: [xmin, fmin] = bayesopt(@function_handler, nDimensions, params)
-%        [xmin, fmin] = bayesopt(@function_handler, nDimensions, params,
-%                                lowerBound, upperBound) 
-%
-%        [xmin, fmin] = bayesopt('function_name', nDimensions, params)
-%        [xmin, fmin] = bayesopt('function_name', nDimensions, params,
-%                                lowerBound, upperBound) 
-%
-%        [xmin, fmin] = bayesoptdisc(@function_handler, validset, params)
-%        [xmin, fmin] = bayesoptdisc('function_name', validset, params)
-%
-%
-% nDimensions is the number of dimensions (d) of the query vector.
-%
-% Params is a struct which have the same fields as the C/C++ interface 
-%   (see include/parameters.h)
-%
-% lowerBound and upperBound should be a d x 1 or 1 x d vectors with
-%      the lower and upper bound for each component. (optional, default 0-1)
-%
-% validset is the set of discrete points for discrete optimization,
-%      stacked in a single matrix. Thus, it must be a d x n matrix.
-%
-% 
-% -------------------------------------------------------------------------
-%    This file is part of BayesOpt, an efficient C++ library for 
-%    Bayesian optimization.
-%
-%    Copyright (C) 2011-2013 Ruben Martinez-Cantin <rmcantin@unizar.es>
-%
-%    BayesOpt 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.
-%
-%    BayesOpt 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.
-%
-%    You should have received a copy of the GNU General Public License
-%    along with BayesOpt.  If not, see <http://www.gnu.org/licenses/>.
-% ------------------------------------------------------------------------
-%
-

matlab/bayesoptcont.m

+% BAYESOPTCONT Optimization (minimization) of continuous target function 
+% using Bayesian optimization.
+%
+% Usage: [xmin, fmin] = bayesopt(@function_handler, nDimensions, params)
+%        [xmin, fmin] = bayesopt(@function_handler, nDimensions, params,
+%                                lowerBound, upperBound) 
+%
+%        [xmin, fmin] = bayesopt('function_name', nDimensions, params)
+%        [xmin, fmin] = bayesopt('function_name', nDimensions, params,
+%                                lowerBound, upperBound) 
+%
+% nDimensions is the number of dimensions (d) of the query vector.
+%
+% params is a struct which have the same fields as the C/C++ interface 
+%   (see include/parameters.h)
+%
+% lowerBound and upperBound should be a d x 1 or 1 x d vectors with
+%      the lower and upper bound for each component. (optional, default 0-1)
+% 
+% -------------------------------------------------------------------------
+%    This file is part of BayesOpt, an efficient C++ library for 
+%    Bayesian optimization.
+%
+%    Copyright (C) 2011-2013 Ruben Martinez-Cantin <rmcantin@unizar.es>
+%
+%    BayesOpt 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.
+%
+%    BayesOpt 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.
+%
+%    You should have received a copy of the GNU General Public License
+%    along with BayesOpt.  If not, see <http://www.gnu.org/licenses/>.
+% ------------------------------------------------------------------------
+%
+

matlab/bayesoptdisc.m

+% BAYESOPTDISC Optimization (minimization) of discrete target function 
+% using Bayesian optimization.
+%
+% Usage: [xmin, fmin] = bayesoptdisc(@function_handler, validset, params)
+%        [xmin, fmin] = bayesoptdisc('function_name', validset, params)
+%
+%
+% params is a struct which have the same fields as the C/C++ interface 
+%   (see include/parameters.h)
+%
+% validset is the set of discrete points for discrete optimization,
+%      stacked in a single matrix. Thus, it must be a d x n matrix.
+%
+% 
+% -------------------------------------------------------------------------
+%    This file is part of BayesOpt, an efficient C++ library for 
+%    Bayesian optimization.
+%
+%    Copyright (C) 2011-2013 Ruben Martinez-Cantin <rmcantin@unizar.es>
+%
+%    BayesOpt 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.
+%
+%    BayesOpt 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.
+%
+%    You should have received a copy of the GNU General Public License
+%    along with BayesOpt.  If not, see <http://www.gnu.org/licenses/>.
+% ------------------------------------------------------------------------
+%
+

matlab/compile_matlab.m

 % You can also change ../lib for the correspoding install path
 % MATLAB
 if (ispc)
-    mex -output bayesopt bayesoptmex.c ..\lib\Release\bayesopt.lib ...
-        ..\lib\Release\nlopt.lib ...
-        -I..\include -I..\wrappers -I..\nlopt\api 
-
-   mex -output bayesoptdisc bayesoptdiscmex.c ../lib/Release/bayesopt.lib ...
-        ../lib/Release/nlopt.lib -I../include -I../wrappers -I../nlopt/api 
+    if exist('../bin/Release/bayesopt.dll','file')
+        disp('Compiling dynamic library');
+        mex -DBAYESOPT_DLL -v -output bayesoptcont bayesoptmex.c ...
+            -L..\lib\Release -L. -lbayesopt ...
+            -I..\include -I..\wrappers
+        mex -DBAYESOPT_DLL -v -output bayesoptdisc bayesoptdiscmex.c ...
+            -L..\lib\Release -L. -lbayesopt ...
+            -I..\include -I..\wrappers
+    else
+        disp('Compiling static library');
+        mex -output bayesoptcont bayesoptmex.c ...
+            -L../lib/Release -lbayesopt -lnlopt ...
+            -I../include -I../wrappers -I../nlopt/api
+        
+        mex -output bayesoptdisc bayesoptdiscmex.c ...
+            -L../lib/Release -lbayesopt -lnlopt ...
+            -I../include -I../wrappers -I../nlopt/api
+    end
 else
     if exist('../lib/libbayesopt.a','file')
         disp('Compiling static library');
-        mex -output bayesopt bayesoptmex.c ../lib/libbayesopt.a ...
+        mex -output bayesoptcont bayesoptmex.c ../lib/libbayesopt.a ...
         ../lib/libnlopt.a -I../include -I../wrappers -I../nlopt/api 
 
         mex -output bayesoptdisc bayesoptdiscmex.c ../lib/libbayesopt.a ...
     else
         if exist('../lib/bayesopt.so','file')
             disp('Compiling dynamic library');
-            mex -g -output bayesopt bayesoptmex.c ../lib/bayesopt.so ...
+            mex -g -output bayesoptcont bayesoptmex.c ../lib/bayesopt.so ...
                 -I../include -I../wrappers
 
             mex -g -output bayesoptdisc bayesoptdiscmex.c ../lib/bayesopt.so ...

matlab/demo_rembo.m

     disp('Continuous optimization');
     MATRIX_A = randn(nh,n);
     tic;
-    result = bayesopt(fun,n,params,lb,ub);
+    result = bayesoptcont(fun,n,params,lb,ub);
     toc;
 
     values(i) = braninhighdim(result);
 
 disp('Continuous optimization');
 tic;
-bayesopt(fun,n,params,lb,ub)
+bayesoptcont(fun,n,params,lb,ub)
 toc;
 
 disp('Discrete optimization');
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.