Page SoftwareFrameworkDesign

Software Frame Design

General

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 Multiplication.java and Addition.java for combinations of vector/vector, vector/matrix, matrix/matrix
  • (Done) Introduce GlobalDispatcher / Multimethods

Algebra

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 Addition.java and Multiplication.java. 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

MSM

HMM

MD Package

IO

Comments

 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback