Skip to content
Snippets Groups Projects
Verified Commit 13c6cf86 authored by Stéphane Adjemian's avatar Stéphane Adjemian
Browse files

Cosmetic change (code factorization).

parent 32b8d6c7
No related branches found
No related tags found
Loading
Checking pipeline status
...@@ -43,55 +43,32 @@ if isempty(ide) ...@@ -43,55 +43,32 @@ if isempty(ide)
end end
if ~isempty(ide) if ~isempty(ide)
if isfield(M_.pac.(pacmodel).equations.(eqtag), 'additive') [M_, done] = writebgpfield('additive', pacmodel, eqtag, ide, xflag, nonzeromean, M_);
if ~isfield(M_.pac.(pacmodel).equations.(eqtag).additive, 'bgp') if done, return, end
M_.pac.(pacmodel).equations.(eqtag).additive.bgp = zeros(1, length(M_.pac.(pacmodel).equations.(eqtag).additive.params)); [M_, done] = writebgpfield('optim_additive', pacmodel, eqtag, ide, xflag, nonzeromean, M_);
end if done, return, end
[isvar, ie] = ismember(ide, M_.pac.(pacmodel).equations.(eqtag).additive.vars); [M_, done] = writebgpfield('non_optimizing_behaviour', pacmodel, eqtag, ide, xflag, nonzeromean, M_);
if isvar if done, return, end
if xflag warning('%s is not an exogenous variable in equation %s.', variable, paceq)
assert(~M_.pac.(pacmodel).equations.(eqtag).additive.isendo(ie), 'Variable type issue.')
else
assert(M_.pac.(pacmodel).equations.(eqtag).additive.isendo(ie), 'Variable type issue.')
end
M_.pac.(pacmodel).equations.(eqtag).additive.bgp(ie) = nonzeromean;
return
end
end
if isfield(M_.pac.(pacmodel).equations.(eqtag), 'optim_additive')
if ~isfield(M_.pac.(pacmodel).equations.(eqtag).optim_additive, 'bgp')
M_.pac.(pacmodel).equations.(eqtag).optim_additive.bgp = zeros(1, length(M_.pac.(pacmodel).equations.(eqtag).optim_additive.params));
end
[isvar, ie] = ismember(ide, M_.pac.(pacmodel).equations.(eqtag).optim_additive.vars);
if isvar
if xflag
assert(~M_.pac.(pacmodel).equations.(eqtag).optim_additive.isendo(ie), 'Variable type issue.')
else else
assert(M_.pac.(pacmodel).equations.(eqtag).optim_additive.isendo(ie), 'Variable type issue.') error('Endogenous/Exogenous variable %s is unknown.', variable)
end
M_.pac.(pacmodel).equations.(eqtag).optim_additive.bgp(ie) = nonzeromean;
return
end
end end
if isfield(M_.pac.(pacmodel).equations.(eqtag), 'non_optimizing_behaviour')
if ~isfield(M_.pac.(pacmodel).equations.(eqtag).non_optimizing_behaviour, 'bgp')
M_.pac.(pacmodel).equations.(eqtag).non_optimizing_behaviour.bgp = zeros(1, length(M_.pac.(pacmodel).equations.(eqtag).non_optimizing_behaviour.params)); function [M_, done] = writebgpfield(type, pacmodel, eqtag, ide, xflag, nonzeromean, M_)
done = false;
if isfield(M_.pac.(pacmodel).equations.(eqtag), type)
if ~isfield(M_.pac.(pacmodel).equations.(eqtag).additive, 'bgp')
M_.pac.(pacmodel).equations.(eqtag).(type).bgp = zeros(1, length(M_.pac.(pacmodel).equations.(eqtag).(type).params));
end end
[isvar, ie] = ismember(ide, M_.pac.(pacmodel).equations.(eqtag).non_optimizing_behaviour.vars); [isvar, ie] = ismember(ide, M_.pac.(pacmodel).equations.(eqtag).(type).vars);
if isvar if isvar
if xflag if xflag
assert(~M_.pac.(pacmodel).equations.(eqtag).non_optimizing_behaviour.isendo(ie), 'Variable type issue.') assert(~M_.pac.(pacmodel).equations.(eqtag).(type).isendo(ie), 'Variable type issue.')
else else
assert(M_.pac.(pacmodel).equations.(eqtag).non_optimizing_behaviour.isendo(ie), 'Variable type issue.') assert(M_.pac.(pacmodel).equations.(eqtag).(type).isendo(ie), 'Variable type issue.')
end end
M_.pac.(pacmodel).equations.(eqtag).non_optimizing_behaviour.bgp(ie) = nonzeromean; M_.pac.(pacmodel).equations.(eqtag).(type).bgp(ie) = nonzeromean;
return done = true;
end end
end end
warning('%s is not an exogenous variable in equation %s.', variable, paceq)
else
error('Endogenous/Exogenous variable %s is unknown.', variable)
end
function
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment