Page SoftwareFrameworkDesign

Software Frame Design


Inbion basecamphq

Core Packages

ToDo (Martin)

Completed targets
  • (Done) Discard current interface IVector and use standard Java collection interfaces ( List ) instead
  • (Done) Implement prototypic version of and for combinations of vector/vector, vector/matrix, matrix/matrix
  • (Done) Introduce GlobalDispatcher / Multimethods


Part of Milestone 1:

Concept paper Lyx Pdf

  • Interface IDoubleMatrix, IDoubleVector (Done)
  • Interfaces for complex numbers, vectors and matrices?
  • Data-specific classes (e.g. SparseDoubleMatrix, DoubleMatrix, ...)
  • Object creation: Use type-specific factory classes which implement IMatrix(Double)Factory (Done)
  • Algorithms: Individual operations in Algorithm classes, such as and Executed by standard method name, e.g. Multiplication.exec( IDoubleMatrix A, IDoubleMatrix B ) (Done)
  • Each algorithm has a default implementation (for dense matrices/vectors) (Done)
  • Algorithms can have additional more efficient implementations for arbitrary combinations of specific types (e.g. Multiplication.exec( SparseDoubleMatrix A, SparseDoubleVector x )). This requires multi-dispatching or multi-methods, which means, that overloaded methods are called by the dynamical type of arguments instead of static type. Solution possibilities:
    1. Several if-statements and instanceof operator.
    2. Use of double inheritance to "simulate" multi dispatching.
    3. Java reflection API.
    4. Dynamic dispatcher via interfaces ( <- chosen )
  • (Open) General dispatching mechanism (not only based on dynamic type, but instead uses interface IDispatchable with boolean checkArguments() to select appropiate method)
  • (Open) Incorporate working EVD to framework

Collection and Primitive Collections

Part of Milestone 1:

Concept paper Lyx Pdf

Clustering / Discretization

  • (Done) Additional implementation of k-means

Part of Milestone 2:

Concept paper Lyx Pdf

Time Series Package



MD Package



Topic revision: r6 - 06 Nov 2009, MartinFischbach
  • Printable version of this topic (p) Printable version of this topic (p)