Skip to content
Snippets Groups Projects
  1. Jun 21, 2023
  2. May 25, 2023
  3. Apr 11, 2023
    • Carsten Gräser's avatar
    • Carsten Gräser's avatar
      Switch to std::uint_least32_t for stored indices in MatrixIndexSet · 4886d18b
      Carsten Gräser authored
      Using `std::uint_least32_t` instead of `std::size_t` halves the required memory
      and thus also improves performance.
      Notice that `std::uint32_t` is optional and `std::uint_fast32_t` is intended to be
      fast in terms of computations and may have 64 bits. Here we're interested in reducing
      memory and thus bandwith. Hence `std::uint_least32_t`, which is the smallest sufficient
      type is most appropriate.
      4886d18b
    • Carsten Gräser's avatar
      Switch internal data structure in MatrixIndexSet · c8272a07
      Carsten Gräser authored
      This replaces the `std::set` used to store the column indices for each
      rows by a `std::vector` based implementation. The `std::vector` is
      kept sorted when inserting such that we can avoid duplicates. This
      can improve assembly time of matrices significantly (if `MatrixIndexSet` is used).
      
      In the worst case (insertion in reverse) this may lead to O(n^2) complexity
      when inserting n entries in a row compared to O(n log(n)) for `std::set`.
      However, the sorted `std::vector` implementation still wins for relatively
      large n. To avoid the worst case complexity when using very dense rows,
      the implementation is switched to `std::set` if the size exceeds the threshold
      value `maxVectorSize`. The default `maxVectorSize=2048` was selected based
      on benchmark results.
      c8272a07
  4. Apr 04, 2023
  5. Mar 16, 2023
  6. Mar 07, 2023
  7. Feb 06, 2023
  8. Jan 16, 2023
    • Carsten Gräser's avatar
      [bugfix] Add missing specialization FieldTraits<MultiTypeBlockMatrix> · fe3dccab
      Carsten Gräser authored
      Notice that this also fixes an incorrect `MultiTypeBlockMatrix::field_type`
      in a special setting: If you have a nested matrix
      `MultiTypeBlockMatrix< MultiTypeBlockVector<MultiTypeBlockMatrix<...>>>`,
      the outer `MultiTypeBlockMatrix::field_type` forwards to the `MultiTypeBlockVector::field_type`
      which forwards to the inner `FieldTraits<MultiTypeBlockMatrix>::field_type`.
      fe3dccab
  9. Jan 08, 2023
  10. Jan 07, 2023
  11. Dec 12, 2022
  12. Dec 08, 2022
  13. Dec 02, 2022
  14. Nov 18, 2022
  15. Oct 06, 2022
  16. Sep 30, 2022
  17. Sep 29, 2022
  18. Jun 22, 2022
  19. Jun 11, 2022
  20. May 02, 2022
  21. Apr 12, 2022
  22. Feb 28, 2022
  23. Feb 22, 2022
  24. Feb 16, 2022
  25. Feb 09, 2022
  26. Feb 08, 2022
  27. Jan 25, 2022
Loading