#1127 MatrixDimension<MType>::coldim fails for MType=BCRSMatrix<Diagonal|ScaledIDMatrix>
Metadata
Property | Value |
---|---|
Reported by | Uli Sack (usack@math.fu-berlin.de) |
Reported at | Jun 11, 2012 20:29 |
Type | Bug Report |
Version | Git (pre2.4) [autotools] |
Operating System | Unspecified / All |
Last edited by | Oliver Sander (oliver.sander@tu-dresden.de) |
Last edited at | Jul 4, 2012 21:26 |
Closed by | Oliver Sander (oliver.sander@tu-dresden.de) |
Closed at | Jul 4, 2012 21:26 |
Closed in version | Unknown |
Resolution | Fixed |
Comment | Thanks! |
Description
MatrixDimension::coldim fails for MType=BCRSMatrix<[DiagonalMatrix|ScaledIDMatrix]> and MType=DiagonalMatrix|ScaledIDMatrix]. The latter is due to a missing template specialization for these block types. The former is due to the use of operator[] on a shared_ptr on line 256. Using get()[] and implementing the specializations gets rid of both problems. Find a patch attached.
However I don't quite get the intended functionality. In the partial specialization template for MType=BCRSMatrix<B,A> coldim(MType A, size_type c) returns 0 if A has no entry in column c whereas the specialization for BCRSMatrix<FieldMatrix<K,n,m> > invariably returns m no matter whether any entry has the column index c or not. Is that intended or simply inconsistent?
Cheers,Uli