home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 1
/
ADE-1.bin
/
ade-dist
/
octave-1.1.1p1-src.tgz
/
tar.out
/
fsf
/
octave
/
PROJECTS
< prev
next >
Wrap
Text File
|
1996-09-28
|
10KB
|
303 lines
Octave PROJECTS -*- text -*-
===============
Check with bug-octave@che.utexas.edu for a possibly more current copy.
Also, if you start working steadily on a project, please let
bug-octave@che.utexas.edu know. We might have information that could
help you; we'd also like to send you the GNU coding standards.
This list is not exclusive -- there are many other things that might
be good projects, but it might instead be something we already have,
so check with bug-octave@che.utexas.edu before you start.
* Improve the Texinfo Documentation for the interpreter. It would
be useful to have lots more examples, to not have so many forward
references, and to not have very many simple lists of functions.
* Texinfo documentation for the C++ classes.
* Make `help -i' try to find a whole word match first.
* Improve help messages for operators and keywords in help.cc.
* Make index entries more consistent to improve behavior of `help -i'.
* Improve logm, and sqrtm.
* Improve complex mapper functions.
* Handle complex values in fread and fwrite.
* Make LEXICAL_ERROR have a value that is the error message for
parse_error() to print?
* Implement the echo command.
* Make the cutoff point for changing to packed storage a
user-preference variable with default value 8192.
* Share more code among the various *_options functions.
* Make it possible to clear dynamically loaded functions.
* Improved string handling.
* Make it possible to get a list of the names of the elements in a
structure.
* Add a run-time alias mechanism that would allow things like
alias fun function_with_a_very_long_name
so that `function_with_a_very_long_name' could be invoked as
`fun'.
* Fix all function files to check for bogus inputs (wrong number or
types of input arguments, wrong number of output arguments).
* Support for lp_solve for linear programming problems.
* Free QP solver.
* Free NLP solver.
* Support for sparse matrices.
* Fix CollocWt to handle Laguerre polynomials. Make it easy to
extend it to other polynomial types.
* Add optional arguments to colloc so that it's not restricted to
Legendre polynomials.
* Handle arguments for text-style functions in a consistent manner.
* More C++/Fortran cleanups.
* Translate Fortran routines to C/C++, or replace them entirely.
* It is likely that there are still some memory leaks. Hunt then down
and plug them.
* Too much time is spent allocating and freeing memory. What can be
done to improve performance?
* Error output from Fortran code is ugly. Something should be done to
make it look better.
* It would be nice if output from the Fortran routines could be
passed through the pager.
* In an X11 or other windowing environment, allow the user to pop up
windows for menus and other purposes. A good place to start might
be Tk, as long as Tcl is avoided.
* Add a way to handle events, like alarms, mouse clicks, etc.
* Implement some form of constant folding in the parser. This
shouldn't be too difficult for simple binary and unary operations.
* Remove the buffer size limit in octave_read() in input.cc.
* Allow users to force built-in constants to be writable. Make
reasonable things happen if builtin-in constants are declared
global and then redefined.
* Either do something reasonable or remove all support for Inf and
NaN for machines without IEEE math.
* Make ascii load and save work for Inf and NaN.
* Make load work to read files that contain numbers only, and put
the values in a matrix named after the file.
* Make load and save work for structures.
* Make load and save look for <file>.mat if only given <file>.
* Save image data in binary format to save space.
* Make rand and randn work like they do in Matlab 4.x.
* Fix eig to also be able to solve the generalized eigenvalue
problem, and to solve for eigenvalues and eigenvectors without
performing a balancing step first.
* Improve assignment of [] so that Octave will handle cases like
a = rand(4);
a(2,[1,2,3,4]);
a(2,[3,1,4,2]);
not just a(2,:). They are all equivalent, so we should allow all
of them. It would also be nice to handle special cases in the
fortran_style_matrix_assignment function, but that is harder.
* Handle arrays with more than two dimensions.
* Eliminate mx-kludge.{h,cc} in favor of MArray.{h,cc}. (As of
g++ 2.5.7, this appears to require bug fixes for g++.)
* Move rand, eye, etc., functions to the matrix classes.
* Only include config.h in files that actually need it, instead of
including it in every .cc file. Unfortunately, this might not be
so easy to figure out.
* Fix configure to cache values determined using non-standard tests.
* Adapt the newer matlab-mode.el file to work with Octave.
* Consider making assignment statements like
M (i_idx, j_idx) = RHS
produce the value of RHS instead of the value of M.
* Consider making it possible to specify an empty matrix with a
syntax like [](e1, e2). Of course at least one of the expressions
must be zero...
* Make it possible to tie arbitrary input and output streams
together, similar to the way iostreams can be tied together.
* Functions:
- fgetl
* Eliminate force_numeric and make_numeric functions.
* Is Matrix::fortran_vec() really necessary?
* print_usage() should set error_state in most cases?
* Move DEFVARs to be in the files that define functions that are
related to the variables.
* Make statements like this
foo bar baz
turn into function calls like this:
foo ("bar", "baz")
This is pretty ugly and introduces some conflicts.
* Make it possible to use text-style function names as variables.
* Add a command that works like bash's `builtin' command.
* Use SLList for the tree_matrix class.
* Use newer readline version.
* Make it possible for readline to complete based on text already
typed. For example,
pl <up-arrow>
matches to the previous command that began with `pl'.
* Handle comments in parse trees for use with the type command.
* Improved sort function.
* Improved set of tests:
-- Tests for various functions. Would be nice to have a test file
corresponding to every function.
-- Tests for element by element operators:
+ - .* ./ .\ .^ | & < <= == >= > != !
-- Tests for boolean operators: && ||
-- Tests for other operators: * / \ ' .'
-- Tests from bug reports.
-- Tests for indexed assignment. Need to consider the following:
o fortran-style indexing
o zero-one indexing
o assignment of empty matrix as well as values
o resizing
* Demo files.
* Clean up eye, eval, feval, keyboard, input, ones, zeros.
* Some sort of blurb (2-3 pages) describing Octave in a reasonably
coherent way, where to get it etc., perhaps formatted pretty,
i.e. not just text. Maybe start with the latest Announce file.
* GNU coding standards:
-- Add a `Makefile' target to the Makefiles.
-- Comments on #else and #endif preprocessor commands.
-- Change error message format to match standards everywhere.
* Support for FSQP.
* Convert FSQP style NLP statement to NPSOL style.
* Convert NPSOL style NLP statement to FSQP style.
- Look for linear equality constraints, extract corresponding rows
of C. The rest are inequality constraints.
- Look for Nonlinear equality constraints and set up a vector of
pointers for shuffling.
- Transform lb <= C*x <= ub, lb != ub, to C*x - ub <= 0 and
lb - C*x <= 0. Likewise for lb <= g(x) <= ub.
- Call FSQP.
* Optional inputs for fsqp.
* If possible, make economy QR factorization actually take advantage
of the form of the result instead of just dropping columns.
Lapack doesn't appear to do this yet.
* The ability to transparently handle very large files:
Juhana K Kouhia <kouhia@nic.funet.fi> wrote:
If I have a one-dimensional signal data with the size 400
Mbytes, then what are my choises to operate with it:
* I have to split the data
* Octave has a virtual memory on its own and I don't have to
worry about the splitting.
If I split the data, then my easily programmed processing
programs will become hard to program.
If possible, I would like to have the virtual memory system in
Octave i.e. the all big files, the user see as one big array or
such. There could be several user selectable models to do the
virtual memory depending on what kind of data the user have (1d,
2d) and in what order they are processed (stream or random
access).
Perhaps this can be done entirely with a library of M-files.
* Fix interface with gnuplot to wait for gnuplot to output any text
before octave returns a prompt. Possible by implementing two
way communication between gnuplot and Octave.
* Make gsave (and possbly gload) work. Implement gsave by having it
also alter the plot command to not use temporary files (perhaps
with some user-specified template for naming them) and then
sending a `save' command to gnuplot.
* Make it possible for the GNU info reader to be called as a
separate sub-process instead of linking it directly in the Octave
binary.
* Make the arrow keys work in the info reader.
* Make the interpreter run faster.
* Squash bugs.
--30--