[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Cleaned-up PROJECTS file
From: |
David Bateman |
Subject: |
Cleaned-up PROJECTS file |
Date: |
Wed, 16 May 2007 12:04:05 +0200 |
User-agent: |
Thunderbird 1.5.0.7 (X11/20060921) |
I propose the attached patch to the PROJECTS file. It eliminates a
number of items that have been addressed or superseded. There are
probably a few I missed though..
Cheers
David
--
David Bateman address@hidden
Motorola Labs - Paris +33 1 69 35 48 04 (Ph)
Parc Les Algorithmes, Commune de St Aubin +33 6 72 01 06 33 (Mob)
91193 Gif-Sur-Yvette FRANCE +33 1 69 35 77 01 (Fax)
The information contained in this communication has been classified as:
[x] General Business Information
[ ] Motorola Internal Use Only
[ ] Motorola Confidential Proprietary
--- PROJECTS.orig36 2007-02-23 15:05:53.000000000 +0100
+++ PROJECTS 2007-05-16 12:01:48.417214898 +0200
@@ -31,15 +31,11 @@
* Support for lp_solve for linear programming problems.
- * Free QP solver.
-
* Free NLP solver.
* Fix CollocWt to handle Laguerre polynomials. Make it easy to
extend it to other polynomial types.
- * Make filter faster (perhaps by calling BLAS functions).
-
* Add optional arguments to colloc so that it's not restricted to
Legendre polynomials.
@@ -52,23 +48,10 @@
* Use octave_allocator for memory management in Array classes once
g++ supports static member templates.
- * Implement the following functions:
- -- ppval -- cross -- dot
-
* When constructing NLConst (and other) objects, make sure that
there are sufficient checks to ensure that the dimensions all
conform.
- * Allow parameters to be passed through the call to fsolve() to the
- user-supplied function for Matlab compatibility. Don't place an
- upper limit on the number of arguments.
-
- * Check matrix classes for proper handling of empty matrices.
-
- * Make operations with empty matrices produce empty matrices, for
- compatibility with Matlab (but only if Matlab 5 still does things
- this way). For example: [1, 2] * [] ==> [].
-
* Improve design of ODE, DAE, classes.
* Extend meaning of .* to include v .* M or M .* v (where v is a
@@ -77,24 +60,6 @@
columns as M, then either w .* M or M .* w scales the columns of
M.
- * Given two vectors x and y of length m and n, implement a function
- outer (x, y, f) that returns an m-by-n matrix with entries
- f (x(i), y(j)). If f is omitted, multiplication is the default.
- Should probably work for any vectors, not just if x is a column
- vector and y is a row vector.
-
- * Make it possible to solve b = L \ x efficiently, either by
- providing an explicit function call, or by automatically
- determining that L is triangular. If it is done automatically,
- provide some means for determining whether Octave has actually
- detected that the matrix is triangular.
-
- * The polyfit function uses the economy QR factorization, but even
- that can take a lot of time for large datasets. Consider an
- option to compute the result with inv (A' * A) * A' * y or some
- other faster method.d Possibly just switch to this method if the
- dataset is larger than some value.
-
* Make QR more memory efficient for large matrices when not all the
columns of Q are required (apparently this is not handled by the
lapack code yet).
@@ -116,19 +81,6 @@
* Sparse logical indexing in idx_vector class so that something like
"a=sprandn(1e6,1e6,1e-6); a(a<1) = 0" won't cause a memory overflow.
- * Write the rest of the sparse docs
-
- * The algo in TOMS 582 is perfect for symrcm function. However, this is
- under the ACM license and can't be used in a GPL program.
-
- An alternative is that PETSC is GPL compatiable and has a symrcm
- implemented from the original SPARSPAK. Its not clear that this is
- legal to me as I have found no clarification of the original license
- of SPARSPAK. As PETSC has had this code for over 10 years without
- problem, we can perhaps assume that there are no issues. Maybe need
- to contact PETSC people or the SPARSPAK people at uni of waterloo
- to check issues.
-
* Make spalloc(r,c,n) actually create an empty sparse with n non-zero
elements? This allows something like
@@ -158,14 +110,12 @@
- treelayout
- cholinc
- condest
- - bicg
+ - bicg Can this be taken from octave-forge?
- bicgstab
- cgs
- gmres
- lsqr
- minres
- - pcg Can this be taken from o-forge? Is it compatiable
- - pcr Can and should this be taken from o-forge?
- qmr
- symmlq
- spaugment
@@ -176,30 +126,8 @@
* Make plotting with plplot work.
- * 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.
-
- * Handle gnuplot ranges correctly for parametric modes (accept 3
- ranges for 2d plots and 5 ranges for 3d plots).
-
- * Make gsave (and possibly 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.
-
- * It would be nice to be able to check that a plot is currently
- being displayed.
-
- * Implement clf, gcf, get, set, orient, print, close, etc. in
- Matlab-compatible ways.
-
* Make it possible to check the current graphics terminal type.
- * If possible, pass data to gnuplot without using temporary files.
-
- * If possible, pass binary data to gnuplot to speed things up.
-
* If using gnuplot, consider setting a smaller default for the
`zero' value (e.g., set zero sqrt (realmin) or something).
@@ -210,8 +138,6 @@
* Improve performance of string functions, particularly for
searching and replacing.
- * Provide some regex matching functions.
-
* Convert string functions to work on string arrays.
* Make find work for strings.
@@ -223,9 +149,6 @@
* Consider changing the default value of `string_fill_char' from SPC
to NUL.
- * Consider making ["test", []] ==> "test", for compatibility with
- Matlab, at least when some set of preferences are set.
-
----------------
Other Data Types:
----------------
@@ -251,23 +174,7 @@
working on them, it would be good to support other size
specifications (integer*2, etc.).
- * Make fread and fopen look in LOADPATH for files.
-
- * Make load and save look for <file>.mat if only given <file>.
-
- Potential sticky points:
-
- - For load, if both foo and foo.mat exist, should it prefer foo
- or foo.mat? Should the preference depend on the arguments to
- load? I think it should only prefer .mat files if the
- -mat-binary option is supplied, or if the file foo.mat exists
- but the file foo does not.
-
- - For save, should it prefer to create foo or foo.mat? Should
- the preference depend on the arguments to save? Should the
- default_save_format imply a default preference? I think it
- should only create .mat files if it is writing Matlab
- compatible files.
+ * Make fread and fopen look in the load path for files.
* Move some pr-output stuff to liboctave.
@@ -309,14 +216,6 @@
* Consider grouping all preference variables in a structure instead
of further polluting the namespace. Maybe `Octave_options.xxx'?
- * Rewrite functions in input.cc to do the right thing in all cases
- of using readline, forced interactive behavior, echoing of input,
- etc.
-
- * Consider making linspace() and logspace() return the value
- corresponding to the first argument if the number of requested
- points is 1.
-
* Consider allowing an arbitrary property list to be attached to any
variable. This could be a more general way to handle the help
string that can currently be added with `document'.
@@ -324,21 +223,8 @@
* Allow more command line options to be accessible as built-in
variables (--echo-commands, etc.).
- * Allow `octave -c STRING' to execute commands from STRING then
- exit.
-
* Make the interpreter run faster.
- * Make it possible to disable or enable all warnings on an
- individual basis from the command line or via some built-in
- structure variable.
-
- * Warn about complex comparisons? Could just use double_value() or
- matrix_value() instead of explicit conversions to real types. For
- this to really be useful, some additional information must be
- available to point to the location of the code that triggers the
- warning.
-
* Allow arbitrary lower bounds for array indexing.
* Improve performance of recursive function calls.
@@ -349,9 +235,6 @@
* Add a command-line option to tell Octave to just do syntax
checking and not execute statements.
- * Is it necessary for do_binary_op and do_unary_op to be friends of
- the tree_constant class.
-
* Clean up symtab and variable stuff.
* Input stream class for parser files -- must manage buffers for
@@ -370,8 +253,6 @@
so that `function_with_a_very_long_name' could be invoked as
`fun'.
- * What should is_global() return when called for built-in variables?
-
* Allow local changes to variables to be written more compactly than
is currently possible with unwind_protect. For example,
@@ -395,9 +276,6 @@
* Fix all function files to check for bogus inputs (wrong number or
types of input arguments, wrong number of output arguments).
- * Reduce the memory and time required to parse very large matrix
- lists.
-
* Handle options for built-in functions more consistently.
* Too much time is spent allocating and freeing memory. What can be
@@ -411,53 +289,25 @@
* Attempt to recognize common subexpressions in the parser.
- * Handle arrays with more than two dimensions.
-
* 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...
* Is Matrix::fortran_vec() really necessary?
- * print_usage() should set error_state in most cases?
-
* Add a command that works like bash's `builtin' command.
- * Handle end-of-line comments correctly in parse trees for use with
- the type command.
-
- * Clean up eye, eval, feval, keyboard, input, ones, zeros.
-
* It would be nice to have an interactive debugger.
- * Make whos report total memory used by variables (and functions?).
-
* Rewrite whos and the symbol_record_info class. Write a built-in
function that gives all the basic information, then write who and
whos as M-files.
- * Make whos work for structure elements:
-
- prot type rows cols name
- ==== ==== ==== ==== ====
- wd matrix m n struct.field
-
- * Allow who to return information as a list of strings.
-
* On systems that support matherr(), make it possible for users to
enable the printing of warning messages.
* Make it possible to mark variables and functions as read-only.
- * Provide a built-in function for applying a scalar function to an
- array. Be sure to note in the manual that this is not the
- preferred way to write a function that can handle vector/matrix
- arguments because there is a significant overhead for function
- calls. If you are really looking to make a function work for
- vector/matrix arguments and you want it to run fast, you should
- write it in terms of the existing vector/matrix operators as much
- as possible.
-
* Make it possible to write a function that gets a reference to a
matrix in memory and change one or more elements without
generating a second copy of the data.
@@ -475,11 +325,6 @@
* The history command should accept two numeric arguments to
indicate a range of history entries to display, save or read.
- * Add an option to include information about the Octave session in
- the history list. Possibly a time/date stamp and the current
- Octave line number, appended as a comment (users should probably
- be able to control the format).
-
* Avoid writing the history file if the history list has not
changed.
@@ -524,18 +369,10 @@
* Texinfo documentation for the C++ classes.
- * Support multiple info files, perhaps allowing one or more in each
- directory in the LOADPATH, so that local collections of M-files
- could be documented with Info.
-
- * Improve help messages for operators and keywords in help.cc.
-
* Make index entries more consistent to improve behavior of `help -i'.
* Make `help -i' try to find a whole word match first.
- * Allow help for local additions to be accessible with help -i.
-
* Clean up help stuff.
* Demo files.
@@ -548,7 +385,7 @@
duplicated, and will remain current if the M-files change. It
would also be best to do as much of this as possible in an M-file,
though I wouldn't mind adding some basic support for listing the
- names of all the directories in the LOADPATH, and the names of all
+ names of all the directories in the load path, and the names of all
the M-files in a given directory if that is needed.
Also make it possible to recursively search for Contents files:
@@ -557,10 +394,6 @@
help dir// -- Contents from dir and all its subdirectories
help dir1/dir2 -- Contents from dir2 which is under dir1
- * 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.
-
-----
Tests:
-----
@@ -613,8 +446,6 @@
-- Comments on #else and #endif preprocessor commands.
-- Change error message format to match standards everywhere.
- * Use STL stuff instead of libg++ lists, maps, and stacks.
-
* Eliminate more global variables.
* Move procstream to liboctave.
- Cleaned-up PROJECTS file,
David Bateman <=