Skip to content
Snippets Groups Projects
  1. Mar 05, 2020
  2. Jan 21, 2020
    • Ansgar Burchardt's avatar
      [C++20] use `std::allocator_traits` · 54c17e51
      Ansgar Burchardt authored
      Several members of `std::allocator` were already deprecated in C++17
      and have now been removed in C++20. This patch uses the appropriate
      members of `std::allocator_traits` instead.
      54c17e51
  3. Apr 10, 2019
    • Carsten Gräser's avatar
      Simplify code using Impl::asMatrix() · 1f6ace51
      Carsten Gräser authored
      Replace many `Hybrid::ifElse(IsNumber<...` constructions by
      using `Impl::asMatrix()`. In some cases the (now only) implementation
      of the matrix branch was additionally cleaned up using range-based
      for.
      1f6ace51
  4. Dec 03, 2018
  5. May 16, 2018
    • Jö Fahlke's avatar
      [BlockVector] Defer memory management to std::vector. · 60b6e604
      Jö Fahlke authored
      Stop doing memory management ourselves, use a `std::vector` instead.  This has
      the advantage that allocation, deallocation, construction and destruction of
      elements is handled for us using the supplied allocator in an exception-safe
      manner.
      
      This has the disadvantage of using an extra pointer and an extra size_type in
      `base_array_unmanaged`, which are kept syncronized with the `std::vector` used
      as storage.  Anything else would require interface modification of
      `base_array_unmanaged` and `block_vector_unmanaged`, which in turn would
      require modifications to `BlockVectorWindow`, `MatrixBase`, and
      `VariableBlockVector` and make this patch even larger.
      
      This adds a `swap()` operation and move-construction/assignment to
      `BlockVector`.
      
      The one-argument versions of `resize()` and `reserve()` now behave exactly as
      they do for `std::vector`.  This means that using `reserve()` to shrink the
      capacity of a BlockVector no longer has any effect.  Apart from that, the
      behaviour with regard to capacity on copy and move has also changed to that of
      `std::vector`: copying will only expand the capacity of the copied-to vector
      to accomodate the size of the copied-from vector, not necessarily it's
      capacity.
      
      This deprecates the two-argument versions of `resize()` and `reserve()`, and
      makes them behave exactly the same as the one-argument versions, ignoring the
      second argument.  The second argument specified whether or not to copy the old
      values upon reallocation.  This conflicted with the common container semantics
      of always copying/moving.  For `resize()`, it also conflicted with the common
      signature where the second argument specifies the value for newly created
      elements.
      
      There were only two uses of the two-argument version of `resize()` in
      dune-istl that triggered in the unit tests (both in arpackpp.hh), and those
      had no effect different from the the one-argument version, because the
      BlockVectors were empty before the `resize()`.
      
      Fixes: #41
      Requires:
      - dune-common!494 for the tested allocators to be usable with `std::vector`.
      60b6e604
    • Jö Fahlke's avatar
    • Jö Fahlke's avatar
      [cleanup] Include all necessary includes. · 02c81ef8
      Jö Fahlke authored
      02c81ef8
    • Jö Fahlke's avatar
      [cleanup] Sort includes. · 396ef85e
      Jö Fahlke authored
      396ef85e
  6. Apr 05, 2017
  7. Oct 25, 2016
  8. Feb 18, 2016
    • Oliver Sander's avatar
      Introduce file vectortest.hh, with tests for the dune-istl vector interface · 9333080c
      Oliver Sander authored
      So far, each dune-istl vector class had its own unit test.  They all tested, among
      other things, for compliance with the dune-istl vector interface.  This lead, or had
      the risk to lead, to subtle differences between the individual tests.  Also, since
      there is no formal specification of the interface, it was somewhat unclear what the
      interface actually requires.
      
      This patch tries to improve the situation by providing a generic set of tests that
      should be passed by anything claiming to be a dune-istl vector.  This will save work,
      because it allows to centralize tests that are now distributed across the different
      unit tests for the different dune-istl vectors.  Also, it is my hope that these
      centralized tests can serve as some form of formalized specification of the dune-istl
      vector interface.
      9333080c
    • Oliver Sander's avatar
      Do not test BlockVector<FieldVector<int,1> > · a1dc2312
      Oliver Sander authored
      Integers do not form a field, hence 'int' is not a sensible field_type.
      a1dc2312
  9. Feb 17, 2016
  10. Nov 25, 2015
  11. Jul 13, 2015
  12. Nov 28, 2013
  13. Aug 15, 2013
  14. Aug 13, 2013
  15. Jul 09, 2013
    • Christian Engwer's avatar
      [BlockVector] · c4dde902
      Christian Engwer authored and Markus Blatt's avatar Markus Blatt committed
      modify constructor with capacity to catch at least some of the
      wrong invocations (see doxygen comment).
      c4dde902
  16. Jul 04, 2013
    • Christian Engwer's avatar
      [BlockVector] · 0f850d8b
      Christian Engwer authored
      modify constructor with capacity to catch at least some of the
      wrong invocations (see doxygen comment).
      0f850d8b
  17. Oct 05, 2012
  18. Jun 08, 2012
  19. Oct 13, 2009
  20. Nov 05, 2008
  21. Jul 10, 2008
    • Markus Blatt's avatar
      · 60351028
      Markus Blatt authored
      Test for implicit size constructor.
      
      [[Imported from SVN: r914]]
      60351028
  22. Nov 25, 2006
  23. Aug 22, 2006
  24. Oct 07, 2005
  25. Oct 05, 2005
Loading