Project liboctave 4.2: Difference between revisions

From Octave
Jump to navigation Jump to search
(Created page with "Especially for new developers it is hard to get started with liboctave, one of the core elements of GNU Octave. Liboctave defines and implements data types, operators, and muc...")
 
No edit summary
(3 intermediate revisions by one other user not shown)
Line 4: Line 4:
* Bring all the data types into order
* Bring all the data types into order
* Reduce the code to a sufficient minimum
* Reduce the code to a sufficient minimum
* Remove Makros where possible
* Remove macros where possible


= Milestone 1 - The Array hierarchy =
= Milestone 1 - The Array hierarchy =
Line 12: Line 12:
[[File:liboctave-arrays-2014-11-26.jpg]]
[[File:liboctave-arrays-2014-11-26.jpg]]


Questions:
Questions / Tasks:
 
* On any changes to this structure there is an API-Constraint with [https://www.gnu.org/software/octave/doc/interpreter/Oct_002dFiles.html Oct-Files].
** TODO: Document inside the C++-Classes that this are API relevant classes.


* Identify the difference between for example Array<char>, charNDArray, and charMatrix
* Identify the difference between for example Array<char>, charNDArray, and charMatrix
Line 18: Line 21:
** What are preservable convenience classes?
** What are preservable convenience classes?
** Is there code redundancy?
** Is there code redundancy?
* Is there a necessity to specialize?
** e.g. ComplexRowVector and RowVector vs. RowVector<T>
* Does every file name reflect its content? (Nested classes, etc.)

Revision as of 17:05, 8 January 2015

Especially for new developers it is hard to get started with liboctave, one of the core elements of GNU Octave. Liboctave defines and implements data types, operators, and much more. To change that state this long term project has the following goals:

  • Document the existing code for developers (Doxygen)
  • Bring all the data types into order
  • Reduce the code to a sufficient minimum
  • Remove macros where possible

Milestone 1 - The Array hierarchy

A first desirable milestone is to start with the root of all advanced data types. The class Array. Here is a Doxygen generated picture of the current state inside the development version of liboctave.

Liboctave-arrays-2014-11-26.jpg

Questions / Tasks:

  • On any changes to this structure there is an API-Constraint with Oct-Files.
    • TODO: Document inside the C++-Classes that this are API relevant classes.
  • Identify the difference between for example Array<char>, charNDArray, and charMatrix
    • What is necessary?
    • What are preservable convenience classes?
    • Is there code redundancy?
  • Is there a necessity to specialize?
    • e.g. ComplexRowVector and RowVector vs. RowVector<T>
  • Does every file name reflect its content? (Nested classes, etc.)