File ASSET2.M:
v1=doublej(a11s,c*c')*beta/(1-beta);
v2=doublej(a11s',pay1'*mn);
File ASSETA.M:
v1=doublej(a11s,c*c')*beta/(1-beta);
v2=doublej(a11s',pay1'*mn);
File ASSETB.M:
v1=doublej(a11s,c*c')*beta/(1-beta);
v2=doublej(a11s',pay1'*mn);
File ASSETS.M:
mua1=doublej2(G',D,H',eye(nz));
File DOUBLE2.M:
function[K,S]=double(A,C,Q,R)
%function[K,S]=double(A,C,Q,R)
File DOUBLE3.M:
function[aa,bb,gg]=double3(a,b,g)
%function[aa,bb,gg]=double3(a,b,g)
File DOUBLEJ.M:
function V=doublej(a1,b1);
%  function V=doublej(a1,b1);
File DOUBLEJ2.M:
function V=doublej2(a1,b1,a2,b2);
%  function V=doublej2(a1,b1,a2,b2);
File HETER.M:
        [lambdas,v11] = double(a',b',r,q);
        v12 = doublej2(a0',r12,a22',eye(nz));
        v = doublej2(beta*ao,c,ao,c);
        wd = doublej2(beta*ao',md',ao',sdi');
        wg = doublej2(beta*ao',mg',ao',sg');
        mhs = beta*doublej2(beta*a0',lambdas',ao',mc')*ao;
        wc1 = doublej2(beta*as',mcs',as',scs');
        vs = doublej2(beta*as,cs,as,cs);
        wc2 = doublej2(beta*as',mcs',as',scs');
        vs = doublej2(beta*as,cs,as,cs);
File JER.M:
[k,s]=double(A,B,C,D);
File KFILTER.M:
  [k,s]=double(A,C,V1,V2);
File SIMHD.M:
v=beta/(1-beta)*doublej2(beta*Ao,C,Ao,C);
B1=doublej2(beta*Ao',Z1,Ao',1); Sig1=sum(diag(Z1*v));
B2=doublej2(beta*Ao',Z2,Ao',1); Sig2=sum(diag(Z2*v));
Bg=doublej2(beta*Ao',Zg,Ao',1); Sigg=sum(diag(Zg*v));
File SEASEX4.M:
[AA1,Bd1,P1]=double3(AA,Bd,GG);
v121=doublej2(G',D,H',eye(nz));
File SOLVEA.M:
   [kg,v11]=doubleo(a11',b1',r1,q);
   v12=doublej2(a11o',r12,a22t',eye(nz));
File SOLVEHET.M:
        [kg,v11] = double(a11',b1',r1,q);
        v12 = doublej2(a11o',r12,a22t',eye(nz));
        v = doublej2(beta*ao,c,ao,c);
        wd1 = doublej2(beta*ao',md',ao',sd1');
        wd2 = doublej2(beta*ao',md',ao',sd2');
        wg1 = doublej2(beta*ao',mg',ao',sg1');
        wg2 = doublej2(beta*ao',mg',ao',sg2');
        wc1 = doublej2(beta*ao',mc',ao',sc1');
        wc2 = doublej2(beta*ao',mc',ao',sc2');
File DOUBLEX.M:
function[K,S,ST]=doublex(A,C,Q,R,c,sig)
%function[K,S,ST]=doublex(A,C,Q,R,c,sig)
File SOLVEX.M:
   [k,v,vt]=doublex(a',b',r,q,c,-sig);
%    remember that doublex.m solves a MIN problem, which requires
%   v12=doublej2(a11o',r12,a22t',eye(nz));
File ASSETX.M:
v1=doublej(a11s,ccmod)*beta/(1-beta);
v2=doublej(a11s',pay1'*mn);
File DISTHET.M:
    v=vbeta*doublej2(beta*Ao,C,Ao,C);
    balance1=x0'*doublej2(beta*Ao',Z1,Ao',1)*x0+sum(diag(Z1*v))-balancea*k01;
    balance2=x0'*doublej2(beta*Ao',Z2,Ao',1)*x0+sum(diag(Z2*v))-balancea*k02;
File SIMHD2.M:
v=beta/(1-beta)*doublej2(beta*Ao,C,Ao,C);
B1=doublej2(beta*Ao',Z1,Ao',1); Sig1=sum(diag(Z1*v));
B2=doublej2(beta*Ao',Z2,Ao',1); Sig2=sum(diag(Z2*v));
Bg=doublej2(beta*Ao',Zg,Ao',1); Sigg=sum(diag(Zg*v));
File OLRP.M:
  [k,s]=double(A',B',Q,R);
File SOLVES.M:
[AA1,Bd1,P1]=double3(AA,Bd,GG);
v121=doublej2(G',D,H',eye(nz));
File CAN.M:
S=doublej2(beta*deltah',lambda',a22',ub');
SS=doublej2(beta*D',(pihhi*lambdah)',a22',B');
File DOUBLEX3.M:
function[F,P,PT]=doublex3(A,B,Q,R,c,sig)
%function[F,P,PT]=doublex3(A,B,Q,R,c,sig)
File RESOLVEX.M:
%[F,P,PT]=doublex3(a,b,r,q,c,sig);
[k,v,vt]=doublex(a',b',r,q,c,-sig);
   [k,v,vt]=doublex(a',b',r,q,c,-sig);
%    remember that doublex.m solves a MIN problem, which requires
%   v12=doublej2(a11o',r12,a22t',eye(nz));
File DOUBLEX5.M:
function[K,S,ST]=doublex5(A,C,Q,R,c,sig)
%  attempt at putting terminal penalty matrix po with doublex
%function[K,S,ST]=doublex4(A,C,Q,R,c,sig)
File DOUBLEO.M:
function[K,S]=double(A,C,Q,R)
%function[K,S]=double(A,C,Q,R)
