= Equations tags = The feature was introduced in Dynare v.4.1. It allows user to attach arbitrary informations to each equation and to recover them at runtime. It is particularly useful to specify names of equations but can also be used to introduce other informations in the model. Tags are stored in a special structure {{{M_.equations_tags}}}. Currently, equations tags are not used by any Dynare code from the portfolio module but they can be very useful for custom algorithms. == Flagging equations with tags == Before each equation in the modfile, the user can specify a list pairs (key,values) were key is any identifier and value a single-quoted string. This is demonstrated by the following example : {{{ ...preamble model; [name = 'Budget constraint'] c + k = k^theta*A; [name = 'Euler condition', euler_var='k', type='expectation'] beta*(c(1)/c)^(-sigma)*theta*k^(theta-1)*A(1) = 1; [name = 'Specification of shocks', type='exogenous'] log(A) = rho*log(A(-1)) + epsilon; end; ...conclusion }}} In this simple example, we have given a name to each equation. We have also added the name of the variable used to derive the Euler equation and have specified that last equation is exogenous. == Usecases == The tags are stored in a 3-column cell. Each line correspond to a tag (n,key,value) where n is the number of the equation. The table is stored in {{{M_.equations_tags}}}. It can be queryied directly or using one of the helper functions. Here are some examples. === Find the equation corresponding to nonzero residuals === It is common to be looking for the steady state of a given set of equations. The command 'resid' included in Dynare, can be used to print the residuals and see which equations are met at the steady-state. When the number of equations is big, it is easier to use the command resid_with_names [[attachment:resid_with_names.m]] , which will also print the value of a specific key for all the equations, making it much easier to recover the faulty equation. For instance, calling {{{resid_with_names('name')}}} for the (fictive) previous model will output something like {{{ Eq (1) : 0 : Budget constraint Eq (2) : 0.1 : Euler condition Eq (3) : 0 : Specification of shocks }}} === Find the equation having a given key or a given value for a given key === Function {{{select_from_table}}} [[attachment:select_from_table.m]] can be used to find equations satisfying given properties. For the same model {{{select_from_table('type')}}} will return the indices of equations for which a key 'type' has been specified : {{{ ans = 2 3 }}} By contrast {{{select_from_table('type','expectation')}}} will return the list of equations which have the type expectation : {{{ ans = 2 3 }}}