2330
|
1 Octave PROJECTS -*- text -*- |
|
2 =============== |
|
3 |
|
4 Check with bug-octave@bevo.che.wisc.edu for a possibly more current |
|
5 copy. Also, if you start working steadily on a project, please let |
|
6 bug-octave@bevo.che.wisc.edu know. We might have information that |
|
7 could help you; we'd also like to send you the GNU coding standards. |
|
8 |
|
9 This list is not exclusive -- there are many other things that might |
|
10 be good projects, but it might instead be something we already have, |
|
11 so check with bug-octave@bevo.che.wisc.edu before you start. |
|
12 |
|
13 --------- |
|
14 Numerical: |
|
15 --------- |
|
16 |
|
17 * Merge control stuff. |
|
18 |
|
19 * Improve logm, and sqrtm. |
|
20 |
|
21 * Improve complex mapper functions. |
|
22 |
|
23 * Make functions like gamma() return the right IEEE Inf or NaN |
|
24 values for extreme args or other undefined cases. |
|
25 |
|
26 * Handle complex values in fread and fwrite. |
|
27 |
|
28 * Support for lp_solve for linear programming problems. |
|
29 |
|
30 * Free QP solver. |
|
31 |
|
32 * Free NLP solver. |
|
33 |
|
34 * Support for sparse matrices. |
|
35 |
|
36 * Fix CollocWt to handle Laguerre polynomials. Make it easy to |
|
37 extend it to other polynomial types. |
|
38 |
|
39 * Add optional arguments to colloc so that it's not restricted to |
|
40 Legendre polynomials. |
|
41 |
|
42 * Fix eig to also be able to solve the generalized eigenvalue |
|
43 problem, and to solve for eigenvalues and eigenvectors without |
|
44 performing a balancing step first. |
|
45 |
|
46 * Move rand, eye, xpow, xdiv, etc., functions to the matrix classes. |
|
47 |
2477
|
48 * Use octave_allocator for memory management in Array classes once |
|
49 g++ supports static member templates. |
|
50 |
2330
|
51 * Implement the following functions: |
|
52 -- ppval -- cross -- dot |
|
53 |
2789
|
54 * When constructing NLConst (and other) objects, make sure that |
|
55 there are sufficient checks to ensure that the dimensions all |
|
56 conform. |
|
57 |
2439
|
58 * Allow parameters to be passed through the call to fsolve() to the |
2777
|
59 user-supplied function for Matlab compatibility. Don't place an |
2439
|
60 upper limit on the number of arguments. |
|
61 |
2330
|
62 * Check matrix classes for proper handling of empty matrices. |
|
63 |
2602
|
64 * Force all empty matrices to be 0x0 even when other dimensions have |
|
65 been speicified, for compatibility with Matlab, at least when some |
|
66 preference variable is set. |
|
67 |
2789
|
68 * Make operations with empty matrices produce empty matrices, for |
|
69 compatibility with Matlab (but only if Matlab 5 still does things |
|
70 this way). For example: [1, 2] * [] ==> []. |
|
71 |
2799
|
72 * Should any ([]) return [] or 0? What about all ([])? |
|
73 |
2330
|
74 * Improve design of ODE, DAE, classes. |
|
75 |
2439
|
76 * Make it possible to specify a time which dassl and lsode should |
|
77 not integrate past. |
|
78 |
2799
|
79 * Add interface to daspk (new version of dassl). |
|
80 |
2330
|
81 * Extend meaning of .* to include v .* M or M .* v (where v is a |
|
82 column vector with the same number of rows as M) to scale rows of |
|
83 M by elements of v. Similarly, if w is a row vector with as many |
|
84 columns as M, then either w .* M or M .* w scales the columns of |
|
85 M. |
|
86 |
2787
|
87 * Add support for +=, -=, etc. |
|
88 |
2497
|
89 * Given two vectors x and y of length m and n, implement a function |
|
90 outer (x, y, f) that returns an m-by-n matrix with entries |
|
91 f (x(i), y(j)). If f is omitted, multiplication is the default. |
2506
|
92 Should probably work for any vectors, not just if x is a column |
|
93 vector and y is a row vector. |
2497
|
94 |
2789
|
95 * Make it possible to solve b = L \ x efficiently, either by |
|
96 providing an explicit function call, or by automatically |
|
97 determining that L is triangular. If it is done automatically, |
|
98 provide some means for determining whether Octave has actually |
|
99 detected that the matrix is triangular. |
|
100 |
2799
|
101 * The polyfit function uses the economy QR factorization, but even |
|
102 that can take a lot of time for large datasets. Consider an |
|
103 option to compute the result with inv (A' * A) * A' * y or some |
|
104 other faster method.d Possibly just switch to this method if the |
|
105 dataset is larger than some value. |
|
106 |
|
107 * Consider making the behavior of the / and \ operators for |
|
108 non-square systems compatible with Matlab. |
|
109 |
2330
|
110 -------- |
|
111 Graphics: |
|
112 -------- |
|
113 |
|
114 * Make plotting with plplot work. |
|
115 |
|
116 * Fix interface with gnuplot to wait for gnuplot to output any text |
|
117 before octave returns a prompt. Possible by implementing two |
|
118 way communication between gnuplot and Octave. |
|
119 |
|
120 * Make gsave (and possibly gload) work. Implement gsave by having it |
|
121 also alter the plot command to not use temporary files (perhaps |
|
122 with some user-specified template for naming them) and then |
|
123 sending a `save' command to gnuplot. |
|
124 |
|
125 * It would be nice to be able to check that a plot is currently |
|
126 being displayed. |
|
127 |
2422
|
128 * Implement clf, gcf, get, set, orient, print, close, etc. in |
|
129 Matlab-compatible ways. |
2330
|
130 |
|
131 * Make it possible to check the current graphics terminal type. |
|
132 |
2560
|
133 * If possible, pass data to gnuplot without using temporary files. |
|
134 |
2789
|
135 * If using temporary files, delete them when gnuplot exits. |
|
136 |
2560
|
137 * If possible, pass binary data to gnuplot to speed things up. |
|
138 |
2799
|
139 * If using gnuplot, consider setting a smaller default for the |
|
140 `zero' value (e.g., set zero sqrt (realmin) or something). |
|
141 |
2330
|
142 ------- |
|
143 Strings: |
|
144 ------- |
|
145 |
2789
|
146 * Improve performance of string functions, particularly for |
|
147 searching and replacing. |
|
148 |
|
149 * Provide some regex matching functions. |
|
150 |
2330
|
151 * Convert string functions to work on string arrays. |
|
152 |
|
153 * Make find work for strings. |
|
154 |
2378
|
155 * Consider making octave_print_internal() print some sort of text |
|
156 representation for unprintable characters instead of sending them |
|
157 directly to the terminal. (But don't do this for fprintf!) |
|
158 |
|
159 * Consider changing the default value of `string_fill_char' from SPC |
|
160 to NUL. |
|
161 |
2560
|
162 * Consider making ["test", []] ==> "test", for compatibility with |
|
163 Matlab, at least when some set of preferences are set. |
|
164 |
2330
|
165 ---------------- |
|
166 Other Data Types: |
|
167 ---------------- |
|
168 |
|
169 * New types (char, short, etc.). |
|
170 |
|
171 * 3d matrix stuff. |
|
172 |
|
173 * Template functions for mixed-type ops. |
|
174 |
|
175 * Stuff for arithmetic using charMatrix, intMatrix, etc. |
|
176 |
|
177 ------------------------ |
|
178 Graphical User Interface: |
|
179 ------------------------ |
|
180 |
|
181 * In an X11 or other windowing environment, allow the user to pop up |
|
182 windows for menus and other purposes. A good place to start might |
|
183 be Tk, as long as Tcl is avoided. |
|
184 |
|
185 * Add a way to handle events, like alarms, mouse clicks, etc. |
|
186 |
|
187 ------------ |
|
188 Input/Output: |
|
189 ------------ |
|
190 |
|
191 * Make fread and fwrite work for complex data. Iostreams based |
|
192 versions of these functions would also be nice, and if you are |
|
193 working on them, it would be good to support other size |
|
194 specifications (integer*2, etc.). |
|
195 |
|
196 * Make load and save work for structures. |
|
197 |
|
198 * Make load and save look for <file>.mat if only given <file>. |
|
199 |
2799
|
200 Potential sticky points: |
|
201 |
|
202 - For load, if both foo and foo.mat exist, should it prefer foo |
|
203 or foo.mat? Should the preference depend on the arguments to |
|