Previously, deterministic shock information was not store in M_, but rather
processed on the fly to create oo_.exo_simul and oo_.exo_det_simul. This had
several bad consequences, like for example #35.
Closes#271
- fix handling of auxiliary variables related to lagged endogenous
- add preprocessor interface
- add histval_file
- add tests (for smoother2histval with outfile, and for histval_file)
- Support saving to an output MAT file.
- Handle smoothed variables computed by a Metropolis, by adding support for the
parameter_set option.
- When an auxiliary variable is not in the output model, emit a warning instead
of stopping with an error message (aux vars may be different between input
and output models, even if the equations are identical).
Ref #594
First, the current logic is buggy, because mod_file->use_dll is undefined at
this point (mod_file having been deleted above).
More fundamentally, the preprocessor is now evolving into something to be used
without MATLAB/Octave, so this statement is now inaccurate in some use cases.
There is a new LINKOPTS variable which governs the list of symbols to be
exported, so we set it to an empty value to have all symbols exported.
Previously we were overloading the LDFLAGS which was containing the list of
exported symbols.
If ts is an empty dseries object with a defined range of dates:
ts = dseries(dates('1990Q1'):dates('1990Q4'));
Then the following syntaxes are valid:
1. ts(:) = 1;
2. ts(:) = [1, 2];
3. ts(:) = randn(4,1);
4. ts(:) = dseries(1);
5. ts(:) = dseries([1, 2]);
6. ts(:) = dseries(randn(4,2));
7. ts(:) = dseries(randn(4,2),dates('1950M1'):dates('1950M4'));
Remarks.
[1] In cases 1., 2., 4. and 5. the single observation is replicated to match the number of dates in ts.
[2] In cases 4. to 7. the dates in the right member of the assignment are lost (ie ts.dates is not affected by the dates defined in the right members).
In the case where a 2nd/3rd derivative is symbolically not zero but numerically
zero at the evaluation point, the last lines of the g2/g3 matrices (in
KordpDynare::calcDerivativesAtSteady()) where uninitialized (these matrices
store the sparse hessian/3rd-deriv in coordinate list form, i.e. with 3 columns
and as many rows as non-zero elements). When reconstructing the dense
hessian/3rd-deriv matrix out of g2/g3, this would result in invalid memory
accesses.