diff --git a/src/TNL/Matrices/SparseMatrix.hpp b/src/TNL/Matrices/SparseMatrix.hpp index 75f505f5f454a057a352c80e708d97412083beea..68f33b93e3c3134d20a3c42015e6b13418e7f2c7 100644 --- a/src/TNL/Matrices/SparseMatrix.hpp +++ b/src/TNL/Matrices/SparseMatrix.hpp @@ -687,8 +687,7 @@ operator=( const SparseMatrix& matrix ) Matrix< Real, Device, Index >::operator=( matrix ); this->columnIndexes = matrix.columnIndexes; this->segments = matrix.segments; - this->indexAllocator = matrix.indexAllocator; - this->realAllocator = matrix.realAllocator; + return *this; } // cross-device copy assignment @@ -797,6 +796,7 @@ operator=( const SparseMatrix< Real2, Segments2, Device2, Index2, RealAllocator2 } //std::cerr << "This matrix = " << std::endl << *this << std::endl; } + return *this; } template< typename Real, diff --git a/src/UnitTests/Matrices/SparseMatrixCopyTest.h b/src/UnitTests/Matrices/SparseMatrixCopyTest.h index e3fb505d30fcc312cc12bd0e39dc824b6ed7a101..34ffd600ded107c5c12d510e6354cb3adf36812b 100644 --- a/src/UnitTests/Matrices/SparseMatrixCopyTest.h +++ b/src/UnitTests/Matrices/SparseMatrixCopyTest.h @@ -360,38 +360,35 @@ template< typename Matrix1, typename Matrix2 > void testCopyAssignment() { { - SCOPED_TRACE("Tri Diagonal Matrix"); - - Matrix1 triDiag1; - setupTriDiagMatrix( triDiag1 ); - checkTriDiagMatrix( triDiag1 ); - - Matrix2 triDiag2; - triDiag2 = triDiag1; - checkTriDiagMatrix( triDiag2 ); + SCOPED_TRACE("Tri Diagonal Matrix"); + + Matrix1 triDiag1; + setupTriDiagMatrix( triDiag1 ); + checkTriDiagMatrix( triDiag1 ); + + Matrix2 triDiag2; + triDiag2 = triDiag1; + checkTriDiagMatrix( triDiag2 ); } - { - SCOPED_TRACE("Anti Tri Diagonal Matrix"); - - Matrix1 antiTriDiag1; - setupAntiTriDiagMatrix( antiTriDiag1 ); - checkAntiTriDiagMatrix( antiTriDiag1 ); - - Matrix2 antiTriDiag2; - antiTriDiag2 = antiTriDiag1; - checkAntiTriDiagMatrix( antiTriDiag2 ); + SCOPED_TRACE("Anti Tri Diagonal Matrix"); + Matrix1 antiTriDiag1; + setupAntiTriDiagMatrix( antiTriDiag1 ); + checkAntiTriDiagMatrix( antiTriDiag1 ); + + Matrix2 antiTriDiag2; + antiTriDiag2 = antiTriDiag1; + checkAntiTriDiagMatrix( antiTriDiag2 ); } - { - SCOPED_TRACE("Uneven Row Size Matrix"); - Matrix1 unevenRowSize1; - setupUnevenRowSizeMatrix( unevenRowSize1 ); - checkUnevenRowSizeMatrix( unevenRowSize1 ); - - Matrix2 unevenRowSize2; - unevenRowSize2 = unevenRowSize1; - checkUnevenRowSizeMatrix( unevenRowSize2 ); + SCOPED_TRACE("Uneven Row Size Matrix"); + Matrix1 unevenRowSize1; + setupUnevenRowSizeMatrix( unevenRowSize1 ); + checkUnevenRowSizeMatrix( unevenRowSize1 ); + + Matrix2 unevenRowSize2; + unevenRowSize2 = unevenRowSize1; + checkUnevenRowSizeMatrix( unevenRowSize2 ); } }