Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Dynare
preprocessor
Commits
63a5ffb7
Commit
63a5ffb7
authored
Oct 10, 2018
by
Sébastien Villemot
Browse files
Rename ExprNode::cloneDynamic into ExprNode::clone, for clarity
parent
24f1276b
Pipeline
#205
passed with stage
in 1 minute and 51 seconds
Changes
7
Pipelines
1
Show whitespace changes
Inline
Side-by-side
src/DataTree.cc
View file @
63a5ffb7
...
...
@@ -67,12 +67,12 @@ DataTree::DataTree(const DataTree &d) :
initConstants
();
for
(
const
auto
&
it
:
d
.
node_list
)
it
->
clone
Dynamic
(
*
this
);
it
->
clone
(
*
this
);
assert
(
node_list
.
size
()
==
d
.
node_list
.
size
());
for
(
const
auto
&
it
:
d
.
local_variables_table
)
local_variables_table
[
it
.
first
]
=
it
.
second
->
clone
Dynamic
(
*
this
);
local_variables_table
[
it
.
first
]
=
it
.
second
->
clone
(
*
this
);
}
DataTree
&
...
...
@@ -100,14 +100,14 @@ DataTree::operator=(const DataTree &d)
initConstants
();
for
(
const
auto
&
it
:
d
.
node_list
)
it
->
clone
Dynamic
(
*
this
);
it
->
clone
(
*
this
);
assert
(
node_list
.
size
()
==
d
.
node_list
.
size
());
local_variables_vector
=
d
.
local_variables_vector
;
for
(
const
auto
&
it
:
d
.
local_variables_table
)
local_variables_table
[
it
.
first
]
=
it
.
second
->
clone
Dynamic
(
*
this
);
local_variables_table
[
it
.
first
]
=
it
.
second
->
clone
(
*
this
);
return
*
this
;
}
...
...
src/DynamicModel.cc
View file @
63a5ffb7
...
...
@@ -34,7 +34,7 @@
void
DynamicModel::copyHelper(const DynamicModel &m)
{
auto f = [this](const ExprNode *e) { return e->clone
Dynamic
(*this); };
auto f = [this](const ExprNode *e) { return e->clone(*this); };
for (const auto &it : m.static_only_equations)
static_only_equations.push_back(dynamic_cast<BinaryOpNode *>(f(it)));
...
...
@@ -5028,7 +5028,7 @@ DynamicModel::replaceMyEquations(DynamicModel &dynamic_model) const
{
dynamic_model.equations.clear();
for (size_t i = 0; i < equations.size(); i++)
dynamic_model.addEquation(equations[i]->clone
Dynamic
(dynamic_model),
dynamic_model.addEquation(equations[i]->clone(dynamic_model),
equations_lineno[i]);
}
...
...
@@ -5049,7 +5049,7 @@ DynamicModel::computeRamseyPolicyFOCs(const StaticModel &static_model, const boo
// Add Planner Objective to equations to include in computeDerivIDs
assert(static_model.equations.size() == 1);
addEquation(static_model.equations[0]->clone
Dynamic
(*this), static_model.equations_lineno[0]);
addEquation(static_model.equations[0]->clone(*this), static_model.equations_lineno[0]);
// Get max endo lead and max endo lag
set<pair<int, int>> dynvars;
...
...
src/ExprNode.cc
View file @
63a5ffb7
...
...
@@ -433,9 +433,9 @@ NumConstNode::computeXrefs(EquationInfo &ei) const
}
expr_t
NumConstNode::clone
Dynamic
(DataTree &
dynamic_
datatree) const
NumConstNode::clone(DataTree &datatree) const
{
return
dynamic_
datatree.AddNonNegativeConstant(datatree.num_constants.get(id));
return datatree.AddNonNegativeConstant(datatree.num_constants.get(id));
}
int
...
...
@@ -1417,9 +1417,9 @@ VariableNode::get_type() const
}
expr_t
VariableNode::clone
Dynamic
(DataTree &
dynamic_
datatree) const
VariableNode::clone(DataTree &datatree) const
{
return
dynamic_
datatree.AddVariable(symb_id, lag);
return datatree.AddVariable(symb_id, lag);
}
int
...
...
@@ -3192,10 +3192,10 @@ UnaryOpNode::computeXrefs(EquationInfo &ei) const
}
expr_t
UnaryOpNode::clone
Dynamic
(DataTree &
dynamic_
datatree) const
UnaryOpNode::clone(DataTree &datatree) const
{
expr_t substarg = arg->clone
Dynamic(dynamic_
datatree);
return buildSimilarUnaryOpNode(substarg,
dynamic_
datatree);
expr_t substarg = arg->clone
(
datatree);
return buildSimilarUnaryOpNode(substarg, datatree);
}
int
...
...
@@ -5056,11 +5056,11 @@ BinaryOpNode::computeXrefs(EquationInfo &ei) const
}
expr_t
BinaryOpNode::clone
Dynamic
(DataTree &
dynamic_
datatree) const
BinaryOpNode::clone(DataTree &datatree) const
{
expr_t substarg1 = arg1->clone
Dynamic(dynamic_
datatree);
expr_t substarg2 = arg2->clone
Dynamic(dynamic_
datatree);
return buildSimilarBinaryOpNode(substarg1, substarg2,
dynamic_
datatree);
expr_t substarg1 = arg1->clone
(
datatree);
expr_t substarg2 = arg2->clone
(
datatree);
return buildSimilarBinaryOpNode(substarg1, substarg2, datatree);
}
int
...
...
@@ -6412,12 +6412,12 @@ TrinaryOpNode::computeXrefs(EquationInfo &ei) const
}
expr_t
TrinaryOpNode::clone
Dynamic
(DataTree &
dynamic_
datatree) const
TrinaryOpNode::clone(DataTree &datatree) const
{
expr_t substarg1 = arg1->clone
Dynamic(dynamic_
datatree);
expr_t substarg2 = arg2->clone
Dynamic(dynamic_
datatree);
expr_t substarg3 = arg3->clone
Dynamic(dynamic_
datatree);
return buildSimilarTrinaryOpNode(substarg1, substarg2, substarg3,
dynamic_
datatree);
expr_t substarg1 = arg1->clone
(
datatree);
expr_t substarg2 = arg2->clone
(
datatree);
expr_t substarg3 = arg3->clone
(
datatree);
return buildSimilarTrinaryOpNode(substarg1, substarg2, substarg3, datatree);
}
int
...
...
@@ -7749,12 +7749,12 @@ ExternalFunctionNode::computeXrefs(EquationInfo &ei) const
}
expr_t
ExternalFunctionNode::clone
Dynamic
(DataTree &
dynamic_
datatree) const
ExternalFunctionNode::clone(DataTree &datatree) const
{
vector<expr_t> dynamic_arguments;
for (auto argument : arguments)
dynamic_arguments.push_back(argument->clone
Dynamic(dynamic_
datatree));
return
dynamic_
datatree.AddExternalFunction(symb_id, dynamic_arguments);
dynamic_arguments.push_back(argument->clone
(
datatree));
return datatree.AddExternalFunction(symb_id, dynamic_arguments);
}
expr_t
...
...
@@ -8115,12 +8115,12 @@ FirstDerivExternalFunctionNode::compileExternalFunctionOutput(ostream &CompileCo
}
expr_t
FirstDerivExternalFunctionNode::clone
Dynamic
(DataTree &
dynamic_
datatree) const
FirstDerivExternalFunctionNode::clone(DataTree &datatree) const
{
vector<expr_t> dynamic_arguments;
for (auto argument : arguments)
dynamic_arguments.push_back(argument->clone
Dynamic(dynamic_
datatree));
return
dynamic_
datatree.AddFirstDerivExternalFunction(symb_id, dynamic_arguments,
dynamic_arguments.push_back(argument->clone
(
datatree));
return datatree.AddFirstDerivExternalFunction(symb_id, dynamic_arguments,
inputIndex);
}
...
...
@@ -8438,12 +8438,12 @@ SecondDerivExternalFunctionNode::writeJsonExternalFunctionOutput(vector<string>
}
expr_t
SecondDerivExternalFunctionNode::clone
Dynamic
(DataTree &
dynamic_
datatree) const
SecondDerivExternalFunctionNode::clone(DataTree &datatree) const
{
vector<expr_t> dynamic_arguments;
for (auto argument : arguments)
dynamic_arguments.push_back(argument->clone
Dynamic(dynamic_
datatree));
return
dynamic_
datatree.AddSecondDerivExternalFunction(symb_id, dynamic_arguments,
dynamic_arguments.push_back(argument->clone
(
datatree));
return datatree.AddSecondDerivExternalFunction(symb_id, dynamic_arguments,
inputIndex1, inputIndex2);
}
...
...
@@ -8544,9 +8544,9 @@ VarExpectationNode::toStatic(DataTree &static_datatree) const
}
expr_t
VarExpectationNode::clone
Dynamic
(DataTree &
dynamic_
datatree) const
VarExpectationNode::clone(DataTree &datatree) const
{
return
dynamic_
datatree.AddVarExpectation(model_name);
return datatree.AddVarExpectation(model_name);
}
void
...
...
@@ -9010,9 +9010,9 @@ PacExpectationNode::toStatic(DataTree &static_datatree) const
}
expr_t
PacExpectationNode::clone
Dynamic
(DataTree &
dynamic_
datatree) const
PacExpectationNode::clone(DataTree &datatree) const
{
return
dynamic_
datatree.AddPacExpectation(string(model_name));
return datatree.AddPacExpectation(string(model_name));
}
void
...
...
src/ExprNode.hh
View file @
63a5ffb7
...
...
@@ -539,7 +539,7 @@ class ExprNode
virtual
expr_t
substitutePacExpectation
(
map
<
const
PacExpectationNode
*
,
const
BinaryOpNode
*>
&
subst_table
)
=
0
;
//! Add ExprNodes to the provided datatree
virtual
expr_t
clone
Dynamic
(
DataTree
&
dynamic_
datatree
)
const
=
0
;
virtual
expr_t
clone
(
DataTree
&
datatree
)
const
=
0
;
//! Move a trend variable with lag/lead to time t by dividing/multiplying by its growth factor
virtual
expr_t
removeTrendLeadLag
(
map
<
int
,
expr_t
>
trend_symbols_map
)
const
=
0
;
...
...
@@ -665,7 +665,7 @@ public:
bool
isVariableNodeEqualTo
(
SymbolType
type_arg
,
int
variable_id
,
int
lag_arg
)
const
override
;
expr_t
replaceTrendVar
()
const
override
;
expr_t
detrend
(
int
symb_id
,
bool
log_trend
,
expr_t
trend
)
const
override
;
expr_t
clone
Dynamic
(
DataTree
&
dynamic_
datatree
)
const
override
;
expr_t
clone
(
DataTree
&
datatree
)
const
override
;
expr_t
removeTrendLeadLag
(
map
<
int
,
expr_t
>
trend_symbols_map
)
const
override
;
bool
isInStaticForm
()
const
override
;
void
addParamInfoToPac
(
pair
<
int
,
int
>
&
lhs_arg
,
int
optim_share_arg
,
pair
<
int
,
pair
<
vector
<
int
>
,
vector
<
bool
>>>
&
ec_params_and_vars_arg
,
set
<
pair
<
int
,
pair
<
int
,
int
>>>
&
params_and_vars_arg
,
set
<
pair
<
int
,
pair
<
pair
<
int
,
int
>
,
double
>>>
&
params_vars_and_scaling_factor_arg
)
override
;
...
...
@@ -762,7 +762,7 @@ public:
bool
isVariableNodeEqualTo
(
SymbolType
type_arg
,
int
variable_id
,
int
lag_arg
)
const
override
;
expr_t
replaceTrendVar
()
const
override
;
expr_t
detrend
(
int
symb_id
,
bool
log_trend
,
expr_t
trend
)
const
override
;
expr_t
clone
Dynamic
(
DataTree
&
dynamic_
datatree
)
const
override
;
expr_t
clone
(
DataTree
&
datatree
)
const
override
;
expr_t
removeTrendLeadLag
(
map
<
int
,
expr_t
>
trend_symbols_map
)
const
override
;
bool
isInStaticForm
()
const
override
;
void
addParamInfoToPac
(
pair
<
int
,
int
>
&
lhs_arg
,
int
optim_share_arg
,
pair
<
int
,
pair
<
vector
<
int
>
,
vector
<
bool
>>>
&
ec_params_and_vars_arg
,
set
<
pair
<
int
,
pair
<
int
,
int
>>>
&
params_and_vars_arg
,
set
<
pair
<
int
,
pair
<
pair
<
int
,
int
>
,
double
>>>
&
params_vars_and_scaling_factor_arg
)
override
;
...
...
@@ -888,7 +888,7 @@ public:
bool
isVariableNodeEqualTo
(
SymbolType
type_arg
,
int
variable_id
,
int
lag_arg
)
const
override
;
expr_t
replaceTrendVar
()
const
override
;
expr_t
detrend
(
int
symb_id
,
bool
log_trend
,
expr_t
trend
)
const
override
;
expr_t
clone
Dynamic
(
DataTree
&
dynamic_
datatree
)
const
override
;
expr_t
clone
(
DataTree
&
datatree
)
const
override
;
expr_t
removeTrendLeadLag
(
map
<
int
,
expr_t
>
trend_symbols_map
)
const
override
;
bool
isInStaticForm
()
const
override
;
void
addParamInfoToPac
(
pair
<
int
,
int
>
&
lhs_arg
,
int
optim_share_arg
,
pair
<
int
,
pair
<
vector
<
int
>
,
vector
<
bool
>>>
&
ec_params_and_vars_arg
,
set
<
pair
<
int
,
pair
<
int
,
int
>>>
&
params_and_vars_arg
,
set
<
pair
<
int
,
pair
<
pair
<
int
,
int
>
,
double
>>>
&
params_vars_and_scaling_factor_arg
)
override
;
...
...
@@ -1036,7 +1036,7 @@ public:
bool
isVariableNodeEqualTo
(
SymbolType
type_arg
,
int
variable_id
,
int
lag_arg
)
const
override
;
expr_t
replaceTrendVar
()
const
override
;
expr_t
detrend
(
int
symb_id
,
bool
log_trend
,
expr_t
trend
)
const
override
;
expr_t
clone
Dynamic
(
DataTree
&
dynamic_
datatree
)
const
override
;
expr_t
clone
(
DataTree
&
datatree
)
const
override
;
expr_t
removeTrendLeadLag
(
map
<
int
,
expr_t
>
trend_symbols_map
)
const
override
;
//! Function to write out the oPowerNode in expr_t terms as opposed to writing out the function itself
expr_t
unpackPowerDeriv
()
const
;
...
...
@@ -1157,7 +1157,7 @@ public:
bool
isVariableNodeEqualTo
(
SymbolType
type_arg
,
int
variable_id
,
int
lag_arg
)
const
override
;
expr_t
replaceTrendVar
()
const
override
;
expr_t
detrend
(
int
symb_id
,
bool
log_trend
,
expr_t
trend
)
const
override
;
expr_t
clone
Dynamic
(
DataTree
&
dynamic_
datatree
)
const
override
;
expr_t
clone
(
DataTree
&
datatree
)
const
override
;
expr_t
removeTrendLeadLag
(
map
<
int
,
expr_t
>
trend_symbols_map
)
const
override
;
bool
isInStaticForm
()
const
override
;
void
addParamInfoToPac
(
pair
<
int
,
int
>
&
lhs_arg
,
int
optim_share_arg
,
pair
<
int
,
pair
<
vector
<
int
>
,
vector
<
bool
>>>
&
ec_params_and_vars_arg
,
set
<
pair
<
int
,
pair
<
int
,
int
>>>
&
params_and_vars_arg
,
set
<
pair
<
int
,
pair
<
pair
<
int
,
int
>
,
double
>>>
&
params_vars_and_scaling_factor_arg
)
override
;
...
...
@@ -1282,7 +1282,7 @@ public:
virtual
void
writePrhs
(
ostream
&
output
,
ExprNodeOutputType
output_type
,
const
temporary_terms_t
&
temporary_terms
,
const
temporary_terms_idxs_t
&
temporary_terms_idxs
,
const
deriv_node_temp_terms_t
&
tef_terms
,
const
string
&
ending
)
const
;
expr_t
replaceTrendVar
()
const
override
;
expr_t
detrend
(
int
symb_id
,
bool
log_trend
,
expr_t
trend
)
const
override
;
expr_t
clone
Dynamic
(
DataTree
&
dynamic_
datatree
)
const
override
=
0
;
expr_t
clone
(
DataTree
&
datatree
)
const
override
=
0
;
expr_t
removeTrendLeadLag
(
map
<
int
,
expr_t
>
trend_symbols_map
)
const
override
;
bool
isInStaticForm
()
const
override
;
void
addParamInfoToPac
(
pair
<
int
,
int
>
&
lhs_arg
,
int
optim_share_arg
,
pair
<
int
,
pair
<
vector
<
int
>
,
vector
<
bool
>>>
&
ec_params_and_vars_arg
,
set
<
pair
<
int
,
pair
<
int
,
int
>>>
&
params_and_vars_arg
,
set
<
pair
<
int
,
pair
<
pair
<
int
,
int
>
,
double
>>>
&
params_vars_and_scaling_factor_arg
)
override
;
...
...
@@ -1340,7 +1340,7 @@ public:
expr_t
toStatic
(
DataTree
&
static_datatree
)
const
override
;
void
computeXrefs
(
EquationInfo
&
ei
)
const
override
;
expr_t
buildSimilarExternalFunctionNode
(
vector
<
expr_t
>
&
alt_args
,
DataTree
&
alt_datatree
)
const
override
;
expr_t
clone
Dynamic
(
DataTree
&
dynamic_
datatree
)
const
override
;
expr_t
clone
(
DataTree
&
datatree
)
const
override
;
};
class
FirstDerivExternalFunctionNode
:
public
AbstractExternalFunctionNode
...
...
@@ -1383,7 +1383,7 @@ public:
expr_t
toStatic
(
DataTree
&
static_datatree
)
const
override
;
void
computeXrefs
(
EquationInfo
&
ei
)
const
override
;
expr_t
buildSimilarExternalFunctionNode
(
vector
<
expr_t
>
&
alt_args
,
DataTree
&
alt_datatree
)
const
override
;
expr_t
clone
Dynamic
(
DataTree
&
dynamic_
datatree
)
const
override
;
expr_t
clone
(
DataTree
&
datatree
)
const
override
;
};
class
SecondDerivExternalFunctionNode
:
public
AbstractExternalFunctionNode
...
...
@@ -1428,7 +1428,7 @@ public:
expr_t
toStatic
(
DataTree
&
static_datatree
)
const
override
;
void
computeXrefs
(
EquationInfo
&
ei
)
const
override
;
expr_t
buildSimilarExternalFunctionNode
(
vector
<
expr_t
>
&
alt_args
,
DataTree
&
alt_datatree
)
const
override
;
expr_t
clone
Dynamic
(
DataTree
&
dynamic_
datatree
)
const
override
;
expr_t
clone
(
DataTree
&
datatree
)
const
override
;
};
class
VarExpectationNode
:
public
ExprNode
...
...
@@ -1448,7 +1448,7 @@ public:
vector
<
vector
<
temporary_terms_t
>>
&
v_temporary_terms
,
int
equation
)
const
override
;
expr_t
toStatic
(
DataTree
&
static_datatree
)
const
override
;
expr_t
clone
Dynamic
(
DataTree
&
dynamic_
datatree
)
const
override
;
expr_t
clone
(
DataTree
&
datatree
)
const
override
;
int
maxEndoLead
()
const
override
;
int
maxExoLead
()
const
override
;
int
maxEndoLag
()
const
override
;
...
...
@@ -1547,7 +1547,7 @@ public:
vector
<
vector
<
temporary_terms_t
>>
&
v_temporary_terms
,
int
equation
)
const
override
;
expr_t
toStatic
(
DataTree
&
static_datatree
)
const
override
;
expr_t
clone
Dynamic
(
DataTree
&
dynamic_
datatree
)
const
override
;
expr_t
clone
(
DataTree
&
datatree
)
const
override
;
int
maxEndoLead
()
const
override
;
int
maxExoLead
()
const
override
;
int
maxEndoLag
()
const
override
;
...
...
src/ModelEquationBlock.cc
View file @
63a5ffb7
...
...
@@ -36,7 +36,7 @@ SteadyStateModel::SteadyStateModel(const SteadyStateModel &m) :
static_model
{
m
.
static_model
}
{
for
(
const
auto
&
it
:
m
.
def_table
)
def_table
.
push_back
(
make_pair
(
it
.
first
,
it
.
second
->
clone
Dynamic
(
*
this
)));
def_table
.
push_back
(
make_pair
(
it
.
first
,
it
.
second
->
clone
(
*
this
)));
}
SteadyStateModel
&
...
...
@@ -48,7 +48,7 @@ SteadyStateModel::operator=(const SteadyStateModel &m)
def_table
.
clear
();
for
(
const
auto
&
it
:
m
.
def_table
)
def_table
.
push_back
(
make_pair
(
it
.
first
,
it
.
second
->
clone
Dynamic
(
*
this
)));
def_table
.
push_back
(
make_pair
(
it
.
first
,
it
.
second
->
clone
(
*
this
)));
return
*
this
;
}
...
...
@@ -300,7 +300,7 @@ Epilogue::Epilogue(const Epilogue &m) :
exogs
{
m
.
exogs
}
{
for
(
const
auto
&
it
:
m
.
def_table
)
def_table
.
push_back
(
make_pair
(
it
.
first
,
it
.
second
->
clone
Dynamic
(
*
this
)));
def_table
.
push_back
(
make_pair
(
it
.
first
,
it
.
second
->
clone
(
*
this
)));
}
Epilogue
&
...
...
@@ -313,7 +313,7 @@ Epilogue::operator=(const Epilogue &m)
def_table
.
clear
();
for
(
const
auto
&
it
:
m
.
def_table
)
def_table
.
push_back
(
make_pair
(
it
.
first
,
it
.
second
->
clone
Dynamic
(
*
this
)));
def_table
.
push_back
(
make_pair
(
it
.
first
,
it
.
second
->
clone
(
*
this
)));
return
*
this
;
}
...
...
src/ModelTree.cc
View file @
63a5ffb7
...
...
@@ -35,7 +35,7 @@ using namespace MFS;
void
ModelTree
::
copyHelper
(
const
ModelTree
&
m
)
{
auto
f
=
[
this
](
expr_t
e
)
{
return
e
->
clone
Dynamic
(
*
this
);
};
auto
f
=
[
this
](
expr_t
e
)
{
return
e
->
clone
(
*
this
);
};
// Equations
for
(
const
auto
&
it
:
m
.
equations
)
...
...
src/StaticModel.cc
View file @
63a5ffb7
...
...
@@ -32,7 +32,7 @@
void
StaticModel
::
copyHelper
(
const
StaticModel
&
m
)
{
auto
f
=
[
this
](
expr_t
e
)
{
return
e
->
clone
Dynamic
(
*
this
);
};
auto
f
=
[
this
](
expr_t
e
)
{
return
e
->
clone
(
*
this
);
};
auto
convert_vector_tt
=
[
this
,
f
](
vector
<
temporary_terms_t
>
vtt
)
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment