Remove obsolete documentation of extended preprocessor

time-shift
Sébastien Villemot 2019-02-27 12:16:27 +01:00
parent a062ea2b69
commit 466959374f
No known key found for this signature in database
GPG Key ID: 2CECE9350ECEBE4A
1 changed files with 0 additions and 75 deletions

View File

@ -1,75 +0,0 @@
In branch extended-preprocessor, we develop a version of Dynare
preprocessor that produces C and Cuda routine that can be later
linked within another program.
* dynare_m options
- new option output=dynamic|first|second|third
- output=dynamic generates <fname>_dynamic
- output=first generates <fname>_first_derivatives
- output=second generates <fname>_first_derivatives and <fname>_second_derivatives
- output=third generates <fname>_first_derivatives,
<fname>_second_derivatives and <fname>_third_derivatives
- routine <fname>_static is always generated
- routine <fname>_steady_state is generated if the *.mod file contains a
steady_state_model block
- routine <fname>_auxiliary_variables_steady_state is always
generated but doesn't contain any instruction is the preprocessor
didn't add any auxiliary variable
* Functions
- <fname>_model: returns a structure containting fields describing
the model, analogous to the M_ structure in Dynare. This structure
is defined in dynare_model.h and must be accessible when compiling
the second stage program.
- <fname>_dynamic: the historical Dynare dynamic function, returns
residuals, first, second and third order derivatives of the model,
if needed.
- <fname>_static: the historical Dynare static function, returns
residuals of the static model
- <fname>_steady_state: a function computing the steady state of the
model, given the parameters. It comes from parsing a
steady_state_model block in the *.mod file. Currently, there is no provision for
calling a non-linear solver for a subset of equations/variables.
- <fname>_auxiliary_variables_steady_state: a function to compute the steady state
values of auxiliary variables automatically added by the
preprocessor
- <fname>_first_derivatives: returns the Jacobian of the model at the steady
state, given the
steady state. It is more efficient than <fname>_dynamic. Doesn't
exist in Dynare yet.
- <fname>_second_derivatives: returns the second order derivatives of
the model. There are as many rows as equations and as many column
as the square of the number of endogenous and exogenous
variables. The matrix is stored in compressed sparse row format. It
is more efficient than compressed column format as there many more
columns than rows and many columns are empty. Note that the
transpose of the second derivatives matrix in compressed column
format can be obtained directly from the same function by inverting
the role of the two index vectors.
- <fname>_third_derivatives: returns the third order derivatives of
the model. See above for the storage format of this matrix.
* Implementation
** C++ version
- the routines use C++ and classes from the STL
** Cuda version
- the routines have the __global__ keyword necessary to create CUDA
kernls
- vector addressing uses a stride parameter to allow for various
storage schemes on the device
* Changes with dynare-msdsge
- removed erasing previous files as all files should be always
written to faciliate application building
- added back creating variables with the parameter name (otherwise
it doesn't work in Matlab backend) TO BE FIXED
* Pre-processor
- in DynareMain2.cc, in main2() option output != none calls ModFile::write_external_files()
- in ModFile.cc, ModFile::writeExternalFiles() calls
- ModFile::writeModelCC()
- SteadyStateMode::writeSteadyStateFileCC()
- DynamicModel::writeDynamicFile()
- StaticModel::writeStaticFile()
- DynamicModel::writeResidualsCC()
- DynamicModel::writeParamsDerivativesFileCC()
- DynamicModel::writeFirstDerivativesCC()
- DynamicModel::writeSecondDerivativesCC_csr()
- DynamicModel::writeThirdDerivativesCC_csr()