Julia Steady State Helper Functions

Hi,

I am running Dynare in Julia. Can I use a helper function (written in Julia) in the steady_state_model block to calculate the value of some model parameters?

More context: I have a model that runs perfectly in Dynare-MATLAB. However, even though I am using the exact same .mod file and .inc files in my Dynare-Julia setup, I get the error ``During the resolution of the non-linear system, the evaluation of the following equation(s) resulted in a non-finite number". The pre-processing ends without error.

In the .inc file, I used a MATLAB helper function to calculate some parameters. I have re-written the functions in Julia for my Dynare-Julia setup, since I thought that would be the right thing to do. But when I see the documentation for Dynare-Julia here, it still says // You can use MATLAB functions which return several arguments.

Since I changed nothing else in the .mod or .inc files, I assume the issue lies here.

So, to restate my question: while using Dynare-Julia, can I use helper functions written in Julia in the steady_state_block to set model parameters just as I could use helper function written in MATLAB while using Dynare-MATLAB?

Thanks in advance!

Could you share the code, please

Hi Prof. Juillard - thank you for your response. I have shared the files with you on a direct message here.

To add some context to the files I shared, I suspect the problem lies with how the return values in the Julia version versus MATLAB version are unpacked. [param1, param2, param3] = param_finder(arg1, arg2) works in the MATLAB world since my MATLAB function there returns 3 separate values.

My Julia function however returns a tuple of 3 values. The unpacking syntax would need to be param1, param2, param3 = param_finder(arg1, arg2). But that syntax is illegal in the .inc file; it ends up throwing an error.

When I re-write the function to return one value at a time, that still doesn’t work, but a different error is thrown. param1 = param1only_finder(arg1, arg2) throws an UndefVarError - it does not recognize the function. Separately, this is very inefficient for my estimation purposes; the three parameters are determined simultaneously, and this re-writing of the function essentially runs the same code 3 times to return the each of those values separately.

Please let me know if anything in the files needs clarification!

Thanks

DynareJulia can´t handle yet such complicated *.mod files

1 Like