1. 12 Feb, 2019 1 commit
  2. 11 Feb, 2019 1 commit
    • Sébastien Villemot's avatar
      Dynare++ tensor library: modernize the Symmetry class · 1f7d3bed
      Sébastien Villemot authored
      We now use a initializer list constructor for creating symmetries of the form
      $y^n$, $y^n u^m$, $y^nu^m\sigma^k$.
      
      The constructor taking a single integer is used to initialize a symmetry of a
      given length.
      
      Similar changes are made to IntSequence.
      
      This behavior is similar to std::vector.
      1f7d3bed
  3. 06 Feb, 2019 1 commit
  4. 29 Jan, 2019 1 commit
  5. 28 Jan, 2019 1 commit
    • Sébastien Villemot's avatar
      Dynare++: use C++11 threads (instead of POSIX threads API) · 752a02a3
      Sébastien Villemot authored
      On Windows, this means that a POSIX threads implementation is no longer needed,
      since C++11 threads are implemented using native Windows threads.
      
      On GNU/Linux and macOS, POSIX threads are still used under the hood.
      
      A new m4 macro (AX_CXX11_THREAD) is used to add the proper compilation
      flags (instead of AX_PTHREAD).
      752a02a3
  6. 24 Jan, 2019 1 commit
    • Sébastien Villemot's avatar
      Refactor GeneralMatrix and ConstGeneralMatrix classes · 1ef1dedc
      Sébastien Villemot authored
      - Remove the GeneralMatrix(const ConstVector &) constructor, since it is hides
        a memory allocation (copying the ConstVector into a fresh Vector). This
        helped detecting and fixing several unneeded memory allocations. Some other
        memory allocations are now more visible (with an explicit Vector{}
        constructor).
      
      - Add checks in GeneralMatrix(Vector, …) and ConstGeneralMatrix(ConstVector, …)
        constructors for verifying that the {Const,}Vector has unit-stride (this was
        an implicit assumption so far) and is large enough for storing rows*cols
        elements.
      
      - Add GeneralMatrix::operator=(const ConstGeneralMatrix &).
      
      - Delete ConstGeneralMatrix::operator=().
      1ef1dedc
  7. 22 Jan, 2019 1 commit
    • Sébastien Villemot's avatar
      Dynare++ / sylvester equation solver: refactor Vector and ConstVector classes · c711d34d
      Sébastien Villemot authored
      - these classes now encapsulate a std::shared_ptr<{const, }double>, so that
        they do not perform memory management, and several {Const,}Vector instances
        can transparently share the same underlying data
      
      - make converting constructor from ConstVector to Vector explicit, since that
        entails memory allocation (but the reverse conversion is almost costless, so
        keep it implicit); do the same for GeneralMatrix/ConstGeneralMatrix,
        TwoDMatrix/ConstTwoDMatrix
      
      - remove the constructors that were extracting a row/column from a matrix, and
        replace them by getRow() and getCol() methods on {Const,}GeneralMatrix
      
      - rename and change the API of the complex version Vector::add(), so that it is
        explicit that it deals with complex numbers
      
      - add constructors that take a MATLAB mxArray
      c711d34d
  8. 10 Jan, 2019 1 commit
  9. 08 Jan, 2019 2 commits
  10. 04 Jan, 2019 1 commit
  11. 08 Nov, 2018 2 commits
  12. 01 Oct, 2018 1 commit
  13. 02 Jul, 2018 1 commit
    • Sébastien Villemot's avatar
      Fix invalid memory write in k-order DLL · cb46a269
      Sébastien Villemot authored
      The bug would show at order 3 when the last output argument (derivs) is not
      requested (in practice every 3rd order solution without pruning). The DLL would
      still attempt to write into it, causing an invalid memory access.
      cb46a269
  14. 27 Jun, 2018 1 commit
  15. 18 May, 2017 1 commit
  16. 16 May, 2017 2 commits
  17. 15 Jul, 2016 1 commit
  18. 21 Mar, 2014 2 commits
    • Sébastien Villemot's avatar
      41295ad6
    • Sébastien Villemot's avatar
      Fix an invalid memory access in k_order_perturbation DLL. · 050b495a
      Sébastien Villemot authored
      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.
      050b495a
  19. 27 Jan, 2014 1 commit
  20. 12 Jun, 2013 2 commits
  21. 16 Nov, 2012 1 commit
    • Sébastien Villemot's avatar
      Remove oo_.dr.{nstatic,npred,nboth,nfwrd,nspred,nsfwrd} · c121aa14
      Sébastien Villemot authored
      Replace them by equivalents in M_ (and an extra one: M_.dynamic).
      
      IMPORTANT POINT: oo_.dr.npred used to count both purely backward and mixed/both
      variables. This was the cause of lots of confusion. The new M_.npred only
      counts purely backward variables.
      
      We now have the following indentities:
      
      M_.npred + M_.nboth + M_.nfwrd + M_.nstatic = M_.endo_nbr
      M_.nspred = M_.npred + M_.nboth
      M_.nsfwrd = M_.nfwrd + M_.nboth
      M_.ndynamic = M_.npred + M_.nboth + M_.nfwrd
      c121aa14
  22. 01 Aug, 2012 1 commit
  23. 31 Jul, 2012 1 commit
  24. 07 Jul, 2012 1 commit
  25. 06 Jul, 2012 1 commit
  26. 08 Jun, 2012 2 commits
  27. 09 Jan, 2012 1 commit
  28. 20 May, 2011 2 commits
  29. 13 Mar, 2011 1 commit
  30. 07 Feb, 2011 2 commits
  31. 04 Feb, 2011 2 commits