@@ -16,7 +16,7 @@ The vector structure `M_.aux_vars` also contains information about auxiliary var
...
@@ -16,7 +16,7 @@ The vector structure `M_.aux_vars` also contains information about auxiliary var
*`M_.aux_vars(i).type`: an integer representing the type of the auxiliary variable (see below for the list of types).
*`M_.aux_vars(i).type`: an integer representing the type of the auxiliary variable (see below for the list of types).
The structure can also contain other informations depending on the type of the auxiliary variable.
The structure can also contain other informations depending on the type of the auxiliary variable.
# Auxiliary variable for endogenous with lead >= 2
# 0. Auxiliary variable for endogenous with lead >= 2
This is an auxiliary variable which is a substitute for an expression in the original model where a lead of 2 or more on an endogenous variable appears.
This is an auxiliary variable which is a substitute for an expression in the original model where a lead of 2 or more on an endogenous variable appears.
...
@@ -24,7 +24,7 @@ The name of such an auxiliary variable begins with `AUX_ENDO_LEAD_`.
...
@@ -24,7 +24,7 @@ The name of such an auxiliary variable begins with `AUX_ENDO_LEAD_`.
This kind of auxiliary variable has `M_.aux_vars(i).type = 0`.
This kind of auxiliary variable has `M_.aux_vars(i).type = 0`.
# Auxiliary variable for endogenous with lag >= 2
# 1. Auxiliary variable for endogenous with lag >= 2
This is an auxiliary variable which is a substitute for an endogenous variable in the original model which has a lag of 2 or more.
This is an auxiliary variable which is a substitute for an endogenous variable in the original model which has a lag of 2 or more.
...
@@ -34,7 +34,7 @@ The name of such an auxiliary variable begins with `AUX_ENDO_LAG_`.
...
@@ -34,7 +34,7 @@ The name of such an auxiliary variable begins with `AUX_ENDO_LAG_`.
This kind of auxiliary variable has `M_.aux_vars(i).type = 1`.
This kind of auxiliary variable has `M_.aux_vars(i).type = 1`.
# Auxiliary variable for exogenous with a lead
# 2. Auxiliary variable for exogenous with a lead
This is an auxiliary variable which is a substitute for an expression in the original model where a lead on an exogenous variable appears.
This is an auxiliary variable which is a substitute for an expression in the original model where a lead on an exogenous variable appears.
...
@@ -42,7 +42,7 @@ The name of such an auxiliary variable begins with `AUX_EXO_LEAD_`.
...
@@ -42,7 +42,7 @@ The name of such an auxiliary variable begins with `AUX_EXO_LEAD_`.
This kind of auxiliary variable has `M_.aux_vars(i).type = 2`.
This kind of auxiliary variable has `M_.aux_vars(i).type = 2`.
# Auxiliary variable for exogenous with a lag
# 3. Auxiliary variable for exogenous with a lag
This is an auxiliary variable which is a substitute for an exogenous variable in the original model which has a lag.
This is an auxiliary variable which is a substitute for an exogenous variable in the original model which has a lag.
...
@@ -52,7 +52,7 @@ The name of such an auxiliary variable begins with `AUX_EXO_LAG_`.
...
@@ -52,7 +52,7 @@ The name of such an auxiliary variable begins with `AUX_EXO_LAG_`.
This kind of auxiliary variable has `M_.aux_vars(i).type = 3`.
This kind of auxiliary variable has `M_.aux_vars(i).type = 3`.
# Aux var for expectation operator using the (full) information set of another period
# 4. Aux var for expectation operator using the (full) information set of another period
This is an auxiliary variable which is a substitute for an expression like `EXPECTATION(-1)(...)`.
This is an auxiliary variable which is a substitute for an expression like `EXPECTATION(-1)(...)`.
...
@@ -60,7 +60,7 @@ The name of such an auxiliary variable begins with `AUX_EXPECT_LEAD_` or `AUX_EX
...
@@ -60,7 +60,7 @@ The name of such an auxiliary variable begins with `AUX_EXPECT_LEAD_` or `AUX_EX
This kind of auxiliary variable has `M_.aux_vars(i).type = 4`.
This kind of auxiliary variable has `M_.aux_vars(i).type = 4`.
# Auxiliary variable for the differentiate of a forward variable (since 4.4)
# 5. Auxiliary variable for the differentiate of a forward variable (since 4.4)
This is an auxiliary variable which is a substitute for a forward variable, when the `differentiate_forward_vars` option of `model` is used.
This is an auxiliary variable which is a substitute for a forward variable, when the `differentiate_forward_vars` option of `model` is used.
...
@@ -70,7 +70,7 @@ The name of such an auxiliary variable begins with `AUX_DIFF_FWRD_`.
...
@@ -70,7 +70,7 @@ The name of such an auxiliary variable begins with `AUX_DIFF_FWRD_`.
This kind of auxiliary variable has `M_.aux_vars(i).type = 5`.
This kind of auxiliary variable has `M_.aux_vars(i).type = 5`.
# Auxiliary variable for multipliers for first order conditions of the Ramsey problem (since 4.3)
# 6. Auxiliary variable for multipliers for first order conditions of the Ramsey problem (since 4.3)
This is an auxiliary variable which is created for a lagrange multiplier of the ramsey problem.
This is an auxiliary variable which is created for a lagrange multiplier of the ramsey problem.
...
@@ -79,3 +79,42 @@ The name of such an auxiliary variable begins with `MULT_i`, where `i` is the eq
...
@@ -79,3 +79,42 @@ The name of such an auxiliary variable begins with `MULT_i`, where `i` is the eq
`M_.aux_vars(i).eq_nbr` contains the number of the equation (constraint) with which the multiplier is associated.
`M_.aux_vars(i).eq_nbr` contains the number of the equation (constraint) with which the multiplier is associated.
This kind of auxiliary variable has `M_.aux_vars(i).type = 6`.
This kind of auxiliary variable has `M_.aux_vars(i).type = 6`.
# 7. Auxiliary variable to account for difference between `var_model` order and max lag in model
This is an auxiliary variable to account for the difference in lags between that declared in the `var_model` statement and those present in the model.
The name of such an auxiliary variable begins with `AUX_VARMODEL_`.
`M_.aux_vars(i).orig_index` contains the index of the variable in the VAR
`M_.aux_vars(i).orig_lead_lag` contains the lag of the variable in the VAR
This kind of auxiliary variable has `M_.aux_vars(i).type = 7`.
# 8. auxiliary variable for `diff` operator
This is an auxiliary variable which is a substitute for the `diff` operator
The name of such an auxiliary variable begins with `AUX_DIFF_`.
`M_.aux_vars(i).orig_index` contains the index of the variable contained in the `diff` operator. This field exists if the `diff` was taken of a variable, not of an expression.
`M_.aux_vars(i).orig_lead_lag` contains the lag of the variable contained in the `diff` operator. This field exists if the `diff` was taken of a variable, not of an expression.
This kind of auxiliary variable has `M_.aux_vars(i).type = 8`.
# 9. auxiliary variable for lag on `diff` operator
If a `diff` operator is applied to a variable with lagged values (e.g. `diff(x(-3)`), a diff auxiliary variable is created for the `diff` operator applied to the variable with lag equal to zero (e.g. `diff(x)`) and diff lags auxiliary variables are created for the following sequence (e.g. a diff lag auxiliary variable would be created for `diff(x(-1)`, `diff(x(-2))`, and `diff(x(-3)`).
The name of such an auxiliary variable begins with `AUX_DIFF_LAG_`.
`M_.aux_vars(i).orig_index` contains the index of the preceding auxiliary variable for diff lag or of the auxiliary variable for diff itself (types 8 or 9)
`M_.aux_vars(i).orig_lead_lag` contains `0` (not needed because we know the lag is `1` different than the previous one.
This kind of auxiliary variable has `M_.aux_vars(i).type = 9`.
# 10. auxiliary variable for unary operations
This is an auxiliary variable which is a substitute for certain unary operations, namely: `exp`, `log`, `log10`, `cos`, `sin`, `tan`, `acos`, `asin`, `atan`, `cosh`, `sinh`, `tanh`, `acosh`, `asinh`, `atanh`, `sqrt`, `abs`, `sign`, and `erf`.
The name of such an auxiliary variable begins with `AUX_UOP_`.
`M_.aux_vars(i).orig_index` contains the index of the original variable to which the unary operation was applied.
`M_.aux_vars(i).orig_lead_lag` contains the lag of the original variable to which the unary operation was applied.
This kind of auxiliary variable has `M_.aux_vars(i).type = 10`.