0001 function [loss,vx,junk,exit_flag]=osr_obj(x,i_params,i_var,weights);
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 global M_ oo_ options_ optimal_Q_ it_
0022
0023
0024 junk = [];
0025 exit_flag = 1;
0026 vx = [];
0027
0028 M_.params(i_params) = x;
0029
0030
0031 it_ = M_.maximum_lag+1;
0032 [dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
0033
0034 switch info(1)
0035 case 1
0036 loss = 1e8;
0037 return
0038 case 2
0039 loss = 1e8*min(1e3,info(2));
0040 return
0041 case 3
0042 loss = 1e8*min(1e3,info(2));
0043 return
0044 case 4
0045 loss = 1e8*min(1e3,info(2));
0046 return
0047 case 5
0048 loss = 1e8;
0049 return
0050 case 6
0051 loss = 1e8*min(1e3,info(2));
0052 return
0053 case 20
0054 loss = 1e8*min(1e3,info(2));
0055 return
0056 otherwise
0057 end
0058
0059 vx = get_variance_of_endogenous_variables(dr,i_var);
0060 loss = weights(:)'*vx(:);
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075