view TODO @ 0:6b33357c7561 octave-forge

Initial revision
author pkienzle
date Wed, 10 Oct 2001 19:54:49 +0000
parents
children 00b697b511f6
line wrap: on
line source

Admin
=====

* Use major.minor version number, and tag source directory with version
number when building the distribution.

* Include support for test in the makefile.

* Maintain global TODO document by automatically extracting ## TODO:
comments from all of the scripts.  Update all functions to include
compatibility notes (aka missing features) in these comments.  Some
function specific notes in matcompat/compat.dat belong in TODO comments.

* make doc subdirectory for each script directory for ancillary docs and 
use install to put them in a reasonable place; ideally they should 
piece-wise construct a manual describing the available functions and
the relationships between them.  Alternatively, each package could have
an index.html which is installed in /usr/share/doc/octave-forge/package.html

* Include interfaces for symbolic and geometry toolboxes in
the tree, but don't include the supporting libraries.  Have make check
for the required libraries prior to trying to build each interface.
Consider using autoconf/automake.

* Use ../../Makeconf for engine functions.  Engine functions are not
installed; figure out how and where to install them (presumably as
a shared library in /usr/local/lib).

* extra/ver20 is not presently installed.

* nonfree/gpc uses its own configure script and build process

* consider -enable/disable on a package by package basis as a way
to override the NOINSTALL files on some of the directories; maybe
just an -enable-all option?

* how to "chmod a+x octinst.sh" from configure? Currently I do it
in the makefile during install.

All functions
=============

* Use texinfo in the function descriptions.  Call makeinfo to preformat 
the descriptions when installing for version 2.0.x.

* Add test and demo scripts for each function.  Should we use
extra/testfun, or should we use name_test.m and name_demo.m?
	
* Replace x(find(cond)) with x(cond) since it is faster and cleaner.
Remove unwind_protect blocks for do_fortran_indexing, since most
instances will be covered by this.  For the 2.0.x version of the 
function you will need to either use find() or set prefer_zero_one_indexing
to 1 inside an unwind_protect block.

* For 2.0.x, be sure x(:,ones(n,1)) uses prefer_zero_one_indexing = 0.

* Replace max(max(x)) with max(x(:)), and so on for min, sum, etc.
This will be faster when using version >2.1.31

Specific functions
==================

* Define idx=lookup(table, y, k) which guarantees that the window of width
k will lie fully within the table.  Maybe this is equivalent to
	lookup (table (1+k : length (table)-k), y) + floor(k/2);

* Consider defining lookup as
	table(idx) < y <= table(idx+1)
rather than
	table(idx) <= y < table(idx+1)
This could be a compatibility issue.

* Maybe recode lookup() in C++.  Use binary search for small y and 
sort-merge for large y.

* merge plot/dhbar with Octave's bar; add preference variable for 'filled';
add control for bar width

* split FIXES/freqz into FIXES/freqz and FIXES/freqz_plot so that a 
non-gnuplot based plot package can override freqz's plot.

* Give ginput a "number of inputs" parameter.  Redefine gtext as an
m-file which calls ginput(1) to get the text location.

* Give ginput a rubber-banding facility, maybe with number of inputs =
-1 ?  Redefine gzoom as an m-file which calls ginput(-1) to get the
region.

* Have ginput return the key/mouse button used to exit.