diff --git a/matlab/optimization/dynare_minimize_objective.m b/matlab/optimization/dynare_minimize_objective.m index 025d411899bb4112ad484210ca61ba9d4c0055a8..b5161701063432015891450ffa49b0eacb3747ff 100644 --- a/matlab/optimization/dynare_minimize_objective.m +++ b/matlab/optimization/dynare_minimize_objective.m @@ -135,11 +135,7 @@ switch minimizer_algorithm simulated_annealing(objective_function,start_par_value,sa_options,LB,UB,varargin{:}); case 3 if isoctave && ~user_has_octave_forge_package('optim') - try - pkg load optim - catch - error('Optimization algorithm 3 requires the optim package') - end + error('Optimization algorithm 3 requires the optim package') elseif ~isoctave && ~user_has_matlab_license('optimization_toolbox') error('Optimization algorithm 3 requires the Optimization Toolbox') end diff --git a/matlab/user_has_octave_forge_package.m b/matlab/user_has_octave_forge_package.m index 07d918d4242520458c08f3eb1c225c2fe79ee441..a3f1bc38dbbb70606dd919e508a1259eae6ceac8 100644 --- a/matlab/user_has_octave_forge_package.m +++ b/matlab/user_has_octave_forge_package.m @@ -20,4 +20,11 @@ function [hasPackage] = user_has_octave_forge_package(package) [desc,flag] = pkg('describe', package); -hasPackage = isequal(flag{1,1}, 'Loaded'); +if isequal(flag{1,1}, 'Not installed') + hasPackage = 0; +else + if isequal(flag{1,1}, 'Not loaded') + pkg('load', package); + end + hasPackage = 1; +end