Skip to content
  • Sébastien Villemot's avatar
    k-order MEX: fix crash on Octave when higher-order derivatives have numerical zero · 144bdf34
    Sébastien Villemot authored
    In Octave, when some values given to the sparse() function are numerically
    zero, then the nzmax of the generated sparse matrix is shrinked accordingly;
    while under MATLAB, the nzmax is the length of the vector of values, zeros
    included.
    
    The check at the top of
    DynamicModelMFile::unpackSparseMatrixAndCopyIntoTwoDMatData() would then fail
    under Octave if some higher-derivatives had an element which is symbolically
    non-zero but numerically zero.
    
    We therefore relax the check, and accordingly adapt the code that handles
    numerical zeros.
    
    This bug was uncovered by tests/pruning/AnSchorfheide_pruned_state_space.mod,
    which was failing under Octave.
    144bdf34