Search code examples
matlabeconomics

The use of "@#" in dynare/Matlab


I'm trying to handle the Zero Lower Bound in a DSGE model in dynare(a package for Matlab). I found a paper that developed an algorithm for stochastic simulations at the ZLB, and I found some of the author's code, but I can not interpret part of the code. I've looked everywhere for an answer. This is what the code looks like:

@#define TShadow = 30   
@#define TIRF = 15    
@#define TSimul = 300   
@#define TDrop = 100    

@#if TShadow > TIRF
    @#define TInitIRF = TShadow
@#else
    @#define TInitIRF = TIRF
@#endif

var pi, y, i, shock_pi, shock_nu, shock_i;
varexo epsilon_pi, epsilon_nu, epsilon_i;

The use of @# is so mysterious and I cannot find a single usage of it. I have run the code and it works.


Solution

  • This has to do with the Macro-processing language syntax. This link discusses expressions, directives, typical usages, and compares MATLAB/Octave loops versus macro-processor loops. See more regarding Dynare macro-processor syntax and typical usages in this pdf.