%Policy response
%43 variables
%
%43 equations
%

var c, y, ystar, gy, gstar, h, hs, f, l1, l2, l3, ma, n, d, l, nv, ms, e, mun, mud, muq, infl, w, q, r, rd, rl, ra, ua, un, ud, sn, sd, pip, v, a, z, tau, x, gma, gms, trup, gtrup;
varexo ev, ea, ez, etau, ex, er;

parameters beta, eta, theta, phi, chi, omega, nu, rhodiv, rhor, rhopi, rhoy, rhog, rhov, rhoa, rhotau, rhox, sigmav, sigmaa, sigmaz, sigmatau, sigmax, sigmar;

beta     = .99;
eta      = 0;
theta    = 6;
phi      = 50;
chi      = 2;
omega    = 1.5;
nu       = .225;
rhov     = .95;
rhoa     = .90;
rhotau   = .50;
rhox     = .50;
sigmav   = .01;
sigmaa   = .01;
sigmaz   = .01;
sigmatau = 1;
sigmax   = .25;
sigmar   = .0025;

model;
exp(hs) = exp(-ln(chi)+chi*(v + c - ma));
exp(v)  = exp((1-rhov)*STEADY_STATE(v) + rhov*v(-1) + ev);
exp(a)  = exp(rhoa*a(-1) + ea);
exp(y)  = exp(z + h);
exp(z)  = exp(STEADY_STATE(z) + ez);
exp(tau) = exp((1-rhotau)*STEADY_STATE(tau) + rhotau*tau(-1) + etau);
exp(l) = (1-exp(tau))*exp(d);
exp(x) = exp((1-rhox)*STEADY_STATE(x) + rhox*x(-1) + ex);
exp(rd) = 1 + (exp(rl)-1)*(1-exp(tau)) - exp(x);
exp(ystar) = exp(-eta + z);
exp(gstar) = exp(eta + y - z);
exp(nv) = exp(tau + d);
exp(gy) = exp(y - y(-1) + z(-1));
exp(r - STEADY_STATE(r)) = exp(rhor*(r(-1) - STEADY_STATE(r)) + rhopi*(infl(-1) - STEADY_STATE(infl)) + rhog*(gstar(-1)-STEADY_STATE(gstar)) + rhoy*(gy(-1) - STEADY_STATE(gy)) + rhodiv*(muq(-1) - STEADY_STATE(muq)) + er);
exp(r) - exp(ra) = (nu*(exp(r)-1)^(1-omega) + (1-nu)*(exp(r)-exp(rd))^(1-omega))^(1/(1-omega));
exp(ms) = exp(n) + exp(d);
exp(ua) = (exp(r) - exp(ra))/(exp(r));
exp(un) = (exp(r) - 1)/(exp(r));
exp(ud) = (exp(r) - exp(rd))/(exp(r));
exp(e) = exp(un + n) + exp(ud + d);
sn = exp(un + n - e);
sd = exp(ud + d - e);
exp(muq) = exp(((sn + sn(-1))/2)*mun + ((sd + sd(-1))/2)*mud);
exp(mun) = exp(n - n(-1) + infl + z(-1));
exp(mud) = exp(d - d(-1) + infl + z(-1));
exp(pip) = exp(((sn + sn(-1))/2)*(un - un(-1)) + ((sd + sd(-1))/2)*(ud - ud(-1)));
exp(ma) = ((nu^(1/omega))*exp(((omega-1)/omega)*n) + ((1-nu)^(1/omega))*exp(((omega-1)/omega)*d))^(omega/(omega-1));
exp(n) + exp(w + h) + exp(rd + d) + exp(f) = exp(c) + exp(rl + l) + exp(d) + exp(n) - exp(l);
exp(z + l1 - r) = beta*exp(l1(+1) - infl(+1));
exp(l1 + q) = exp(l3 + f) + beta*exp(l1(+1) + q(+1));
exp(l1) - exp(l3) = (exp(l2 + (1/omega)*ma - (1/omega)*n))*(nu)^(1/omega);
exp(l1) - exp(rd + l3) = (exp(l2 + (1/omega)*ma - (1/omega)*d))*(1-nu)^(1/omega);
exp(l1) = exp(rl + l3);
exp(eta + a) = exp(l3 + w);
(exp(a - c))*(1 - exp(eta + chi*(v + c - ma))) = exp(l3);
exp(eta + a + chi*(v + c - ma)) = exp(l2 + ma);
exp(z + l3) = beta*exp(l1(+1) - infl(+1));
exp(f) = exp(y)*(1-exp(w-z)-(phi/2)*(exp(infl - STEADY_STATE(infl)) - 1)^2);
0 = (1-theta)*exp(l3 + y) + theta*exp(l3 + y + w - z) - phi*(exp(infl - STEADY_STATE(infl)) - 1)*exp(l3 + y + infl - STEADY_STATE(infl)) + beta*phi*(exp(infl - STEADY_STATE(infl)) - 1)*(exp(l3(+1) + y(+1) + infl(+1) - STEADY_STATE(infl)));
gma = ma - ma(-1);
gms = ms - ms(-1);
trup = (nu*(exp(r)-1)^(1-omega) + (1-nu)*(exp(r)-exp(rd))^(1-omega))^(1/(1-omega));
gtrup = (trup - trup(-1))/trup(-1);
end;

initval;
c     	=	 -0.287041;
y     	=	 -0.20056;
gy    	=	 0.00498754;
ystar 	=	 0.00498754;
gstar 	=	 -0.205547;
h     	=	 -0.205547;
hs    	=	 -2.95745;
f     	=	 -1.99232;
l1    	=	 0.197365;
l2    	=	 -4.24081;
l3    	=	 0.177334;
ma    	=	 1.97651;
n     	=	 -0.291744;
d     	=	 1.91396;
l     	=	 1.88351;
nv    	=	 -1.59287;
ms    	=	 2.01848;
e     	=	 -2.46199;
mun   	=	 0.00998004;
mud   	=	 0.00998004;
muq   	=	 0.00998004;
infl  	=	 0.0049925;
w     	=	 -0.177334;
q     	=	 2.59282;
r     	=	 0.0200297;
rd    	=	 0.0095814;
rl    	=	 0.0200312;
ra    	=	 0.00814306;
ua    	=	 -4.43826;
un    	=	 -3.92059;
ud    	=	 -4.56677;
sn    	=	 0.173714;
sd    	=	 0.826286;
pip   	=	 0;
v     	=	 1.1314;
a     	=	 0;
z     	=	 0.00498754;
tau   	=	 -3.50683;
x     	=	 -4.60526;
gma   	=	 0;
gms   	=	 0;
trup  	=	 0.0120571;
gtrup 	=	 0;
end;

shocks;
var ev   = sigmav^2;
var ea   = sigmaa^2;
var ez   = sigmaz^2;
var etau = sigmatau^2;
var ex   = sigmax^2;
var er   = sigmar^2;
end;

optim_weights;
infl 100;
ystar 100;
ra 100;
end;

osr_params rhodiv, rhor, rhopi, rhoy, rhog;

rhodiv = 0;
rhor   = .75;
rhopi  = .3;
rhoy   = 0;
rhog   = 0;

osr(order=1);
