diff --git a/matlab/dynare_config.m b/matlab/dynare_config.m index 4c591dfdf..2922941fd 100644 --- a/matlab/dynare_config.m +++ b/matlab/dynare_config.m @@ -70,7 +70,8 @@ if ~exist('OCTAVE_VERSION') addpath([dynareroot '/missing/rows_columns']) % Replacement for vec() (inexistent under MATLAB) addpath([dynareroot '/missing/vec']) - if isempty(license('inuse','statistics_toolbox')) + [has_statistics_toolbox junk] = license('checkout','statistics_toolbox'); + if ~has_statistics_toolbox % Replacements for functions of the stats toolbox addpath([dynareroot '/missing/stats/']) end @@ -100,7 +101,8 @@ if exist('OCTAVE_VERSION') addpath([dynareroot '/missing/nanmean']) end else - if isempty(license('inuse','statistics_toolbox')) + [has_statistics_toolbox junk] = license('checkout','statistics_toolbox'); + if ~has_statistics_toolbox addpath([dynareroot '/missing/nanmean']) end end @@ -262,4 +264,4 @@ if verbose disp(' ') end -cd(origin); \ No newline at end of file +cd(origin); diff --git a/matlab/dynare_solve.m b/matlab/dynare_solve.m index bf6a68f48..2f8ad9f59 100644 --- a/matlab/dynare_solve.m +++ b/matlab/dynare_solve.m @@ -38,8 +38,11 @@ global options_ options_ = set_default_option(options_,'solve_algo',2); info = 0; if options_.solve_algo == 0 - if ~exist('OCTAVE_VERSION') && isempty(license('inuse','optimization_toolbox')) - error('You can''t use solve_algo=0 since you don''t have MATLAB''s Optimization Toolbox') + if ~exist('OCTAVE_VERSION') + [has_optimization_toolbox junk] = license('checkout','optimization_toolbox'); + if ~has_optimization_toolbox + error('You can''t use solve_algo=0 since you don''t have MATLAB''s Optimization Toolbox') + end end options=optimset('fsolve'); options.MaxFunEvals = 50000; diff --git a/matlab/solve_one_boundary.m b/matlab/solve_one_boundary.m index 7d8ab9957..19aa5fcad 100644 --- a/matlab/solve_one_boundary.m +++ b/matlab/solve_one_boundary.m @@ -224,8 +224,11 @@ for it_=start:incr:finish if (verbose == 1) disp('steady: fsolve'); end - if ~exist('OCTAVE_VERSION') && ~license('test', 'optimization_toolbox') - error('SOLVE_ONE_BOUNDARY: you can''t use solve_algo=0 since you don''t have MATLAB''s Optimization Toolbox') + if ~exist('OCTAVE_VERSION') + [has_optimization_toolbox junk] = license('checkout','optimization_toolbox'); + if ~has_optimization_toolbox + error('SOLVE_ONE_BOUNDARY: you can''t use solve_algo=0 since you don''t have MATLAB''s Optimization Toolbox') + end end options=optimset('fsolve'); options.MaxFunEvals = 50000; diff --git a/tests/run_test_matlab.m b/tests/run_test_matlab.m index 48cd788f0..cd8263c90 100644 --- a/tests/run_test_matlab.m +++ b/tests/run_test_matlab.m @@ -71,6 +71,7 @@ end failedBlock = {}; num_block_tests = 0; cd([top_test_dir '/block_bytecode']); +[has_optimization_toolbox junk] = license('checkout','optimization_toolbox'); for blockFlag = 0:1 for bytecodeFlag = 0:1 default_solve_algo = 2; @@ -85,7 +86,7 @@ for blockFlag = 0:1 solve_algos = 1:8; stack_solve_algos = 0:5; end - if license('test', 'optimization_toolbox') + if has_optimization_toolbox solve_algos = [ solve_algos 0 ]; end