Opened 5 months ago

Last modified 3 months ago

#3100 reviewing defect

TriangularMatrix uses wrong base class

Reported by: bburlacu Owned by: jkarder
Priority: medium Milestone: HeuristicLab 3.3.17
Component: Data Version: trunk
Keywords: Cc:

Description

Since the underlying storage is an array, the TriangularMatrix<T> class should inherit from ValueTypeArray<T> instead of ValueTypeMatrix<T>. This would lead to a more efficient implementation.

Optional enhancements:

  • option to specify storage order (row- or column major)
  • a property to access the underlying T[] array

Change History (4)

comment:1 Changed 5 months ago by bburlacu

  • Status changed from new to accepted

comment:2 Changed 5 months ago by bburlacu

  • Milestone set to HeuristicLab 3.3.17
  • Owner changed from bburlacu to architects
  • Status changed from accepted to reviewing
  • Version set to trunk

r17831: Use ValueTypeArray as base class for TriangularMatrix.

  • Data property exposes the underlying array as a ReadOnlyCollection.
  • No need to specify storage order since the matrix is symmetric.

comment:3 Changed 4 months ago by bburlacu

  • Owner changed from architects to jkarder

comment:4 Changed 3 months ago by gkronber

The TriangularMatrix is not used yet in HeuristicLab core source code. Therefore, the changes should be fine. However, one must be very careful with persistence when changing the class hierarchy (see https://github.com/heal-research/HEAL.Attic/blob/master/docs/Manual.md#backwards-compatibility-examples). Additionally, a storable field has been changed. Persistence (compatibility of old files) should be tested carefully.

Note: See TracTickets for help on using tickets.