Action #775
Feature #692: Perform an extensive interface review of all classes
Review linalg module classes
Status: | Closed | Start date: | 02/20/2013 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assigned To: | Knödlseder Jürgen | % Done: | 100% | |
Category: | - | Estimated time: | 30.00 hours | |
Target version: | 00-08-00 | |||
Duration: |
Description
The matrix classes should be renamed so that the general matrix class is named GMatrix
(for simplicity), and the special storage classes add the storage type as a suffix:
GMatrixBase | +-- GMatrix +-- GMatrixSymmetric +-- GMatrixSparse
The helper classes
GSparseNumeric
and GSparseSymbolic
can keep their names as they are purely internal and will not be exposed by a user interface.
Methods should not be abbreviated anymore. For example, methods containing cols
should be renamed to columns
.
Recurrence
No recurrence.
History
#1 Updated by Knödlseder Jürgen over 11 years ago
- Estimated time changed from 50.00 to 30.00
Class | Comment |
GMatrixBase |
Renamed all col arguments and methods to column , renamed cols() to columns() , renamed insert_row() and extract_row to row() , insert_col() and extract_col to column() , add_col() to add_to_column() , added add_to_row() |
GSparseMatrix |
Renamed to GMatrixSparse , adapt to new GMatrixBase interface |
GSymMatrix |
Renamed to GMatrixSymmetric , adapt to new GMatrixBase interface |
GMatrix |
Adapt to new GMatrixBase interface |
GVector |
size() now returns const reference |
#2 Updated by Knödlseder Jürgen over 11 years ago
- Description updated (diff)
#3 Updated by Knödlseder Jürgen over 11 years ago
- Status changed from New to In Progress
- Assigned To set to Knödlseder Jürgen
Started reworking.
#4 Updated by Knödlseder Jürgen over 11 years ago
- % Done changed from 0 to 10
- Remaining (hours) changed from 50.0 to 48.0
The class GSymMatrix
has been renamed to GMatrixSymmetric
and the class GSparseMatrix
has been renamed to GMatrixSparse
. The GammaLib code has been updated to make it compliant with this change. Also the unit test have been modified. The way is now paved for the interface review.
#5 Updated by Knödlseder Jürgen over 11 years ago
- % Done changed from 10 to 30
- Remaining (hours) changed from 48.0 to 44.0
Performed the first major review of the abstract matrix interface. Can now start to walk over the classes.
#6 Updated by Knödlseder Jürgen over 11 years ago
- % Done changed from 30 to 40
- Remaining (hours) changed from 44.0 to 42.0
Reviewed GVector
class and unit test which is now considered as okay.
#7 Updated by Knödlseder Jürgen over 11 years ago
- Status changed from In Progress to Feedback
- % Done changed from 40 to 100
- Remaining (hours) changed from 42.0 to 0.0
Reviewed interface of matrix classes and write matrix HowTo example.
The friend functions have now been removed and replaced by methods that operate on the matrix. Friend function should be limited and only be used when really required.
The matrix transformation methods now all return a matrix object instead of operating on the actual matrix instance. In particular, the Cholesky decomposition method now returns a matrix containing the Cholesky decomposition, leaving the original matrix untouched. Some more documentation of the transformation method is eventually required, but for the moment we leave it as is as documentation is not considered being part of this action.
#8 Updated by Knödlseder Jürgen almost 11 years ago
- Status changed from Feedback to Closed