From maintainers-request at octave dot org Mon Apr 4 03:15:17 2005 Subject: Re: merging functions from octave-forge From: David Bateman To: "John W. Eaton" Cc: octave maintainers mailing list Date: Mon, 04 Apr 2005 10:11:07 +0200 John W. Eaton wrote: >For Octave 3.0 (or perhaps a later 3.x release) I'd like to aim for >including most of the functions that are currently in Octave forge for >compatibility with core Matlab functionality (i.e., those in the list >http://www.mathworks.com/access/helpdesk/help/techdoc/ref/refbookl.html). > >Some conditions for including a function in Octave are > > * Copyright status must be clear and distribution terms must be > compatible with the GPL. We must not have any code that is > (inadvertantly or not) derived from some proprietary source. > > * Coding style should follow Octave's coding style. > > * Docstrings must be formatted with Texinfo markup so they can be > included in the printed manual. > > > I support this fully, and will help a bit with the time. But please can others on this list see this as a call for help and make the necessary changes to the functions John mentions that they own. >I did a quick count, and found that the list of functions in Matlab is >approximately 1066. Octave includes 390 of those, and Octave forge >contains 172 of them. We have the following overlap between Octave >and Octave forge > > cellstr char chol deal detrend double fieldnames gammaln grid hankel > isa isfield isunix lin2mu mu2lin ndims polyder rand randn rmfield > struct toeplitz tril triu unix > > The hardest to deal with is randn/rand, and some discussion will be needed of how to deal with that. The chol function in octave-forge relies on a triangular matrix type. I introduced something similar for the sparse matrices and would like to do the same for full matrices, but in a more generic way (ie. detect PD matrices and triangular matrices in the solve code, rather than as a special return type from chol). So chol will also be a major effort to drop. >so that leaves about 150 functions to merge: > > addpath betaln blkdiag brighten builtin calendar clf complex > contourf conv2 convhull convhulln cplxpair csvread csvwrite cumtrapz > datenum datestr datevec del2 delaunay delaunay3 delaunayn demo > dlmread dlmwrite dos drawnow edit ellipj ellipke eomday expm1 factor > factorial fill fill3 filter2 fminbnd fplot full funm fzero getfield > ginput gradient griddata gtext hadamard ifftshift imread imwrite > inputname interp1 interp2 interpft intersect isdir isequal ismember > isprime issparse legend legendre magic mat2str meshc mkpp nchoosek > nnz nonzeros now nthroot ode23 ode45 optimset orient pareto pascal > patch pcg pchip pcolor peaks peaks perms pie plot3 polyarea ppval > primes print psi quadl quiver rat rats regexp rmpath rosser rref > scatter setdiff setfield setxor sortrows sound soundsc sparse > spdiags speye spfun spline spones sprand sprandn spy stem str2double > strcmpi strfind strmatch strncmp strncmpi strtok strvcat surf surfc > tar text textread trapz tsearch unique unmkpp view voronoi voronoin > waitbar wavread wavwrite weekday wilkinson xlsread xmlread xmlwrite > zoom > > > The sparse functions like spdiags, speye, spfun, etc are already merged into 2.9.1.. >Comments? > > > This should all go together with a major decruftication of octave-forge, as there are lots of special casing for different versions of octave, and lots of code that is obseleted by other changes in octave (bitand, trisolve, SymBand). Cheers David -- David Bateman David dot Bateman at motorola dot com Motorola Labs - Paris +33 1 69 35 48 04 (Ph) Parc Les Algorithmes, Commune de St Aubin +33 1 69 35 77 01 (Fax) 91193 Gif-Sur-Yvette FRANCE The information contained in this communication has been classified as: [x] General Business Information [ ] Motorola Internal Use Only [ ] Motorola Confidential Proprietary