Update Auxiliary variables authored by Houtan Bastani's avatar Houtan Bastani
......@@ -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).
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.
......@@ -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`.
# 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.
......@@ -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`.
# 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.
......@@ -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`.
# 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.
......@@ -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`.
# 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)(...)`.
......@@ -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`.
# 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.
......@@ -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`.
# 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.
......@@ -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.
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`.
\ No newline at end of file