1. 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
  2. 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
  3. 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
  4. 09 Jan, 2019 2 commits
  5. 08 Jan, 2019 1 commit
  6. 04 Jan, 2019 1 commit