Action #775

Feature #692: Perform an extensive interface review of all classes

Review linalg module classes

Added by Knödlseder Jürgen about 11 years ago. Updated over 10 years ago.

Status:ClosedStart date:02/20/2013
Priority:NormalDue 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 about 11 years ago

  • Estimated time changed from 50.00 to 30.00
The following classes have been reviewed:
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 about 11 years ago

  • Description updated (diff)

#3 Updated by Knödlseder Jürgen about 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 about 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 about 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 about 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 about 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 over 10 years ago

  • Status changed from Feedback to Closed

Also available in: Atom PDF