Hi George,
George Perendia george@perendia.orangehome.co.uk writes:
we explored alternative paths and it looks like we need to add a complex QZ on lines of the Matlab to Octave.
If I understand correctly, you need a complex QZ decomposition at line 156 of partial_information/PI_gensys.m, where you call the qz() primitive (and only there).
Note for other developers: the qz() primitive under Octave delivers only the *real* generalized Schur decomposition.
C Sims' site provides such wrapper for octave version of gensys.m based on Lapack zgges.f:
http://sims.princeton.edu/yftp/gensys/Octave/
but that is using Octave specific mkoctfile compilation and octave specific .c interface.
Considering we are not using mkoctfile, and it may not be acceptable within Dynare, would it be ok if we take up an alternative path to rewrite mjdgges.c as an additional qzzges.c (laving mjdgges as is of course) that returns complex on the same lines as Matalb qz() does, and add it to the e.g. qz subdirectory where mjdgges currenlty resides (though the zdgges.f still needs to be tested if it does the right trick but this would be the way to test it too)?
I think that the easiest way to go is to incorporate Sims' qzcomplex oct-file into Dynare, provided that Sims agrees on putting it under the GPL (which should probably not be a problem).
The fact that this uses mkoctfile is not a problem: it is possible to emulate this command with the build system as we did for the mex command.
The fact that it uses Octave specific Oct-interface is not a problem: we can build this DLL only for Octave (and therefore with a ".oct" extension), since it is useless under MATLAB.
And of course we would put it under mex/octave.
I agree with you that this will force users to have compiled DLLs in order to use your code, but there are already many other features of Dynare in that case (k-order, bytecode...).
If you agree with that line of work, I will contact Sims to ask for permission of including his code under the GPL into Dynare, and then I will make the necessary changes to the build system.
Best,