diff --git a/matlab/dynare_solve.m b/matlab/dynare_solve.m index efac88c3a458fd11aac05d8c07298a5e9f28f242..adc7f02e42acdd81f7a42066dc1bbafd536c2314 100644 --- a/matlab/dynare_solve.m +++ b/matlab/dynare_solve.m @@ -229,9 +229,6 @@ elseif ismember(options.solve_algo, [2, 12, 4]) fre = false; for i=length(r)-1:-1:1 blocklength = r(i+1)-r(i); - if s(i+1)-s(i) ~= blocklength - error('DYNARE_SOLVE (solve_algo=2|4|12): the Dulmage-Mendelsohn decomposition returned a non-square block. This means that the Jacobian is singular. You may want to try another value for solve_algo.') - end if options.debug dprintf('DYNARE_SOLVE (solve_algo=2|4|12): solving block %u of size %u.', i, blocklength); end diff --git a/mex/sources/block_trust_region/mexFunction.f08 b/mex/sources/block_trust_region/mexFunction.f08 index 512865c6e7ae2b0cca327a061e7f773667f5a3d0..1092d423336208cf625dd4bcc95310ae17e7eb77 100644 --- a/mex/sources/block_trust_region/mexFunction.f08 +++ b/mex/sources/block_trust_region/mexFunction.f08 @@ -207,9 +207,7 @@ subroutine mexFunction(nlhs, plhs, nrhs, prhs) bind(c, name='mexFunction') f_indices => blocks(i)%row_indices x_all => x if (size(x_indices) /= size(f_indices)) then - call mexErrMsgTxt("DYNARE_SOLVE (solve_algo=13|14): the Dulmage-Mendelsohn & - &decomposition returned a non-square block. This means that the & - &Jacobian is singular. You may want to try another value for solve_algo.") + call mexErrMsgTxt("Non-square block") end if x_block = x(x_indices) call trust_region_solve(x_block, matlab_fcn, info, tolx, tolf, maxiter, factor)