Skip to content

Feature/fix mixed precision dense matrix vector interface

In the current state if the dune-common dense LA I encountered several smaller bugs w.r.t. mixed precision computations:

  1. the value_type used to reset the vector during DenseMatrix::mv and DenseMatrix::mtv was the value_type of the matrix, but it has to be the field_type of the vector.
  2. the type of the scaling parameter alpha of usmv. usmtv and ushtv has the wrong type and must be the field_type of the result vector. For details see bdf74dca

Besides this there were 2 minor issues I found while fixing the mixed precision case.

  1. the range checks we no longer performed
  2. if the tests are reenabled, they do not compile, because Robert added test for FieldMatrix with std::vector or C-array, which do not work, as we expect additional methods on the classes.

I enabled the range checks and disabled the std::vector and C-array tests. We could work around this problem, by adding helper traits to determine the size and by this allowing us to special-case std::vector and C-array.

Merge request reports

Loading