Octave compatibility: qz() will be MATLAB-compatible in version 9

[skip ci]
silicon
Sébastien Villemot 2023-04-07 10:24:05 +02:00
parent 51ffe77fb7
commit 421eb1482c
No known key found for this signature in database
GPG Key ID: 2CECE9350ECEBE4A
3 changed files with 7 additions and 7 deletions

View File

@ -56,7 +56,7 @@ end
info = 0;
try
if isoctave
if isoctave && octave_ver_less_than('9')
[ss, tt, qq, zz] = qz(e, d);
else
[ss, tt, qq, zz] = qz(e, d, 'real');

View File

@ -16,7 +16,7 @@ function [G1pi,C,impact,nmat,TT1,TT2,gev,eu, DD, E2, E5, GAMMA, FL_RANK ]=PI_gen
% Corrected 10/28/96 by CAS
% Copyright © 1996-2009 Christopher Sims
% Copyright © 2010-2017 Dynare Team
% Copyright © 2010-2023 Dynare Team
%
% This file is part of Dynare.
%
@ -176,8 +176,8 @@ end
G0pi=eye(n+FL_RANK+NX);
try
if isoctave
% Need to force QZ complex on Octave (otherwise it returns the real one)
if isoctave && octave_ver_less_than('9')
% Need to force QZ complex on Octave ⩽ 8 (otherwise it returns the real one)
[a b q z]=qz(complex(G0pi),complex(G1pi));
else
[a b q z]=qz(G0pi,G1pi);

View File

@ -1,7 +1,7 @@
function x=sylvester3(a,b,c,d)
% solves a*x+b*x*c=d where d is [n x m x p]
% Copyright © 2005-2017 Dynare Team
% Copyright © 2005-2023 Dynare Team
%
% This file is part of Dynare.
%
@ -35,13 +35,13 @@ if m == 1
return
end
[u,t]=schur(c);
if isoctave
if isoctave && octave_ver_less_than('9')
[aa,bb,qq,zz]=qz(full(a),full(b));
for j=1:p
d(:,:,j)=qq*d(:,:,j)*u;
end
else
[aa,bb,qq,zz]=qz(full(a),full(b),'real'); % available in Matlab version 6.0
[aa,bb,qq,zz]=qz(full(a),full(b),'real');
for j=1:p
d(:,:,j)=qq*d(:,:,j)*u;
end