Dear Michel,
Is there a reason we only check for imaginary elements of the Jacobian in stochastic_solvers, i.e.
if ~isreal(jacobia_)
if max(max(abs(imag(jacobia_)))) < 1e-15
jacobia_ = real(jacobia_);
else
info(1) = 6;
info(2) = sum(sum(imag(jacobia_).^2));
return
end
end
I would prefer to also check for NaNs, because in the forum people frequently have problems with messages like
The generalized Schur (QZ) decomposition failed. For more information, see the documentation for Lapack function dgges: info=17, n=17 see e.g. http://www.dynare.org/phpBB3/viewtopic.php?f=1 http://www.dynare.org/phpBB3/viewtopic.php?f=1&t=3949&p=9515#p9515 &t=3949&p=9515#p9515
The issue always is that some parameters are not correctly initialized, but the error message is too cryptic to associate the error with the warnings of the preprocessor before. Couldnt we also test for NaN in the Jacobian and if there are some, check the parameters and print in the error message which of them were not initialized?
If you think this might be worthwhile, I would be willing to implement it.
Best,
Johannes
--
Johannes Pfeifer
Haußerstr. 29
72076 Tübingen
Tel.: +49-(0)7071-6396184
Mobil.: +49-(0)170-6936820
Germany
"Johannes Pfeifer" jpfeifer@gmx.de writes:
Is there a reason we only check for imaginary elements of the Jacobian in stochastic_solvers, i.e.
if ~isreal(jacobia_) if max(max(abs(imag(jacobia_)))) < 1e-15 jacobia_ = real(jacobia_); else info(1) = 6; info(2) = sum(sum(imag(jacobia_).^2)); return end end
I would prefer to also check for NaNs, because in the forum people frequently have problems with messages like
“The generalized Schur (QZ) decomposition failed. For more information, see the documentation for Lapack function dgges: info=17, n=17” see e.g. http://www.dynare.org/phpBB3/viewtopic.php?f=1&t=3949&p=9515#p9515
The issue always is that some parameters are not correctly initialized, but the error message is too cryptic to associate the error with the warnings of the preprocessor before. Couldn’t we also test for NaN in the Jacobian and if there are some, check the parameters and print in the error message which of them were not initialized?
If you think this might be worthwhile, I would be willing to implement it.
Sounds like a good idea to me.