CHANGES to my set of scilab macros. The current stable version is 0.9.9. 0.9.8 -> 0.9.9, 17 Aug 2003: ----------------------------- *ENRICO/builder.sce and ENRICO/loader.sce modified so that they carry on even if they can't compile src/histof.c and load the dynamic library; additionally, loader.sce does not multiply append the help chapter and the demo menu entry if it is called repeatedly; loader.sce loads the *.cat files if builder.sce couldn't make man-xml/*.htm; paths should be properly converted in MSDOS. *pixmapl() accepts boolean matrices *changed the internal variable "edge" to "sedge" in interp2(), interp3(), interp3v(), rebin(), rebin3(), because it conflicts with the function edge() of the SIP toolbox *merging the previous two branches -- help pages are provided now both as .cat and .xml (TO DO - check the building process and man path with older versions) *new function shrinkfaces(); complete with its demo, .xml and .cat page *whatis() renamed to whats() (BACKWARD INCOMPATIBILITY). This because the newer versions of scilab are using the keyword more heavily. So far the name whatis() produces mostly warnings, but it is probably better to stop messing around. Also, inline definition of %hm_isreal inside whats.sci has been made conditional (%hm_isreal has been added lately and redefinition causes a warning) TO DO: clean up the xml. 0.9.8 ES, 26 Aug 2002 0.9.8 JPC, Sept 2002 ---------------------- --------------------- *new function cplot3d() *man translated to xml (tree man/man-xml) *argument itype in traj2() *function whatis() -> sciwhatis() to avoid conflicts 0.9.6c -> 0.9.7, 11 Jul 2002 ---------------------------- *changed the structure of the building process, so that it is more general. Added Makefiles for automatic building (of src/histof.c), */builder.sce, updated README, CHANGES. The change is suggested by JPC; it has to be tested on platforms <> linux-i686. *reduced the number of balls in es-demos()/"Shaded objects 3", so that the resulting colormap has only 253 entries. JPC reported a problem in his setup with 512 entries as it was before. *fasthistogram() calls fasthistogram() instead of histogram() in its demo. *added a file ENRICO/demos/enrico.dem, loader includes the command in the Demos menu of the main scilab window. 0.9.6b ->0.9.6c, 9 Jun 2002 --------------------------- *oplot3d() accepts named opt-args. Long time due, trivial change. *shadecomp() accepts named opt-args. Ditto. 0.9.6a ->0.9.6b, 4 Jun 2002 --------------------------- *small speed improvement in tubelet() [which is slow for large nv] and a few minor bug corrections, such as bad twist and flat tubes with np=2 *added vectorized code in tubelet.sci for the case nv=2. Much faster for large np than before. I needed it specifically for mesh outlines in scifeat. 0.9.6 -> 0.9.6a, 15 May 2002 ---------------------------- * new function tubelet() 0.9.5.a -> 0.9.6, 1 May 2002 ---------------------------- * isosurf3d() accepts input arguments in FEM format (for featflow) * new function tintcmap(). Has a demo in es_demos(). * new function grid2Ddata() (bad sparse point regridder, can be done much better with toms grabs) [to be replaced by Bruno's job, perhaps to be contributed as an internal] Has a demo in es_demos(). * obsolescence note in isearch.cat * small bug corrected in interp3v.sci - zp was not transposed in the inlined isearch 0.9.5 -> 0.9.5a, 10 Dec 2001: ----------------------------- * bug corrected in downsample() - the case of "a" hypermat with one of its dimensions ==1 and "v" scalar erroneously trapped as wrong * bugs corrected in oplot3d(): cases which included one object with quadrangular faces and face colors [size(xx,1)==4 and size(c,1)==1], together with another object made of triangles with vertex colors [size(xx,1)==3 and size(c,1)==3] were reported as wrong by the parser (instead, oplot3d() should augment these object to 4 sided, vertex colored). A second bug which anyway prevented it, is solved too. * flattening of s=s('entries') within interp3() increases speed twice * new function interp3v() * traj3() uses interp3v(), which makes it twice faster (4x w.r.o. the old version which used the old interp3()), Also, traj3() accepts the optional argument "itype", to choose the integrator type. 0.9.4 -> 0.9.5, 19 Nov 2001: ---------------------------- * slice3d() accepts integer hypermatrices; also, it digests x,y,z row as well as column vectors; also, it warns against indices of slices out of range, and skips them * isosurf3d() accepts integer hypermatrices --TO DO: solve the null faces bug (likely obtained at points s=s0?) * memory footprint of shadecomp() somewhat reduced; also, shadecomp() has one more last resort hack for null faces * small updates in shadecomp.cat * new function shadesurf2() and its .cat * bug corrected in interp3(): wrong computation of Lz; also, small reduction of interp3()'s memory footprint (which is still enormous, due to the many double precision index arrays) * downsample() also handles row-sized hypermatrices (resulting from original inconsistencies in hypermatrices operations) * rebin() also accepts the argument 'edge' * spaghetti() exits gracefully if is passed a line of points which all coincide --TO DO: the binormal construction still leads to some sharp twists in the tube. I understand this is because n1 is almost // to the bisectrix. Think of a foolproof alternative construction. Ev., leave two options: twisted tube for w<0, straightened tube for w>0) * isearch tests for x ascendingly ordered; handles x and y of different form (one row, one column) * new function champ3() and its .cat * new functions traj2(), traj3() and their cats (miaaow) * added demos in es_demos() for shadesurf2(), rebin3(), champ3() 0.9.3 -> 0.9.4, 18 Oct 2001: ---------------------------- * added function isearch() (thanks to Bruno Pincon for the basic implementation of the algorithm) and isearch.cat * interp2() [and therefore rebin()] uses isearch(), allowing non-equispaced base grids; updated interp2.cat * added new function interp3() and interp3.cat * added new function rebin3() and rebin3.cat 0.9.2 -> 0.9.3, 10 Oct 2001: ---------------------------- * fasthistogram() links with a C external for performance. [note - as for now src/histof.c still needs to be compiled manually - else loader.sce reports an error toward its end] * interp2() accepts the 'edge' argument ("zero" or "per") * bip(): disp() -> mprintf() [no newline in the command window] * memory footprint of pixmapl(a) reduced to 4*double(a), splitting in chunks the computation and reduction of rectangles * new function downsample() * added mhistogram.cat, fasthistogram.cat, downsample.cat; improved interp2.cat 0.9.1 -> 0.9.2, 11 Mar 2001: ---------------------------- * improved ram management of pixmapl() * histogram() speeded up more than twice * new function mhistogram() [undocumented yet because of lazyness] * correction in isosurf3d.cat (thanks Bruno Pincon) 0.9b -> 0.9.1, 9 Jan 2001 ------------------------- * new function xprofile(); added also it's .cat and its demo in es_demos() 0.9a -> 0.9b, 29 Dec 2000 ------------------------- * some memory and indirectly speed improvements in pixmapl() [pixmapl is ram hungry, it can use up to ~12 times the size of double(a) in its intermediate computations] * tiny bug (wrong frame for decreasing explicit coordinates) corrected in pixmapl() 0.9 -> 0.9a, 19 Dec 2000 -------------------------- * a tiny bug corrected in pixmapl (1 char missing): horizontal stripes of uniform color had zero width 0.8-9 -> 0.9, 12 Dec 2000 -------------------------- * revision of pixmapl() - added optional x and y arguments, isometric mode, several plotting inaccuracies and unefficiencies polished. Moreover, now 'a' can be not only a real matrix, also a 2d cut of an hypermatrix, or be of an integer type. * bug corrected in cpoints() (undefined xmx if rect was provided), and minimal cleanup in the code and in the .cat. Credit to Steffen Mehl for reporting. * cleanup in the argument parsing of cplot() and minor bug corrections. 0.8-8 -> 0.8-9, 5 Nov 2000 --------------------------- * further trim of isosurf3d() (~10% faster) 0.8-7 -> 0.8-8, 20 Sep 2000 ---------------------------- * 25% increase in speed in isosurf3d() * some of the 3d demos plot using the 3d isometric mode 6 (will work for everybody only when a version of 2.5.1 with my patch is out) 0.8-6 -> 0.8-7, 6 Sep 2000 ---------------------------- * slice3d.cat polished * new function trisplit() added 0.8-5 -> 0.8-6, 10 Jul 2000 ------------------------------ * oplot3d() handles mixed list and plain objects, and facelet/vertex color arrays simultaneously. * minor revisions in whatis() (elements of lists; '?' wildcard) (CHANGED -- the wildcard was '*' so far) * minor revisions in spherecast() 0.8-4 -> 0.8-5, 6 Jul 2000 ---------------------------- * new functions polarmap(), spherecast() 0.8-3a -> 0.8-4, 14 Jun 2000 ---------------------------- * new functions day2date() and date2day(). 0.8-3 -> 0.8-3a, 30 May 2000 ---------------------------- * little cleanup in the shadecomp() code (no new functionality) * little additions in the .cat, notably in isosurf3d.cat 0.8-2 -> 0.8-3, 28 May 2000 --------------------------- * shadecomp() computes true vertex normals for each vertex (and computes face averages for m=-+1). It can handle two coincident vertices decently. * bug in sphere() (extra null faces) eliminated. 0.8-1 -> 0.8-2, 27 May 2000 --------------------------- * solved minor first/colinear/coincident point bugs in spaghetti() * improved code for shadecomp() Goraud: now vertex adjacency search time scales like N and not N^2 O.8 -> 0.8-1, 18 May 2000 -------------------------- * vertex shading (for Goraud) in shadecomp() (attemp) * still a trim at isosurf3d() [0.7-1b] -> 0.8, 10 May 2000 ---------------------------- * setcmap() makes stacked colormaps if the first argument is a vector * added function sphere() * added function shadecomp() * added function oplot3d() * references to the new functions in some of the other .cat files 0.7-1a -> [0.7-1b], 5 May 2000 ------------------------------ * further slight speedup of isosurf3d() 0.7-1 -> 0.7-1a, 1 May 2000 --------------------------- * further speedup of isosurf3d() [using pattern array inside the loop] 0.7 -> 0.7-1, 6 Apr 2000 ------------------------- *added spaghetti() and its demo *added demo for ribbon() *ribbon works also for 2-points trails ("arrow3d") *corrected missing default label 'data1' in oplot() *shadesurf handles also (faulty) faces with coinciding vertices 0.6-1e -> 0.7, 2 Apr 2000 ------------------------------ *added function bip() *added function ribbon() *corrected bug related to oplot(), strf='121', rect present *inlined the function definitions in oplot for tidyness *shadesurf() handles flat surfaces 0.6-1d -> 0.6-1e, 18 Mar 2000 ------------------------------ *added the forgotten entry 'oplot' in man/whatis 0.6.1c -> 0.6-1d, 29 Jan 2000 ------------------------------ *isosurf3d() rewritten, speeded up almost thrice *whatis(expression) is implemented (but expression cannot contain *, which is used as a wildcard for minimal matching) 0.6.1 -> 0.6-1c, 22 Jan 2000 ----------------------------- *setcmap() works for any nc *fixes in shadesurf(), pixmap(), cplot(), cpoints(), where the current size of the colormap was taken as size(xget('colormap'),1) --> xget('lastpattern'): less buggy under the graphic file drivers 0.6 -> 0.6-1, 18 Jan 2000 -------------------------- *setcmap() can be used to choose the colormap for the current window *pixmapl() uses xfpolys() instead of xrects(): this cures a) the 'grid' effect on the screen, at high resolution, which was due to xrects() insisting on white borders; b) outlines of the rectangles in GIF driver, due to xrects insisting on current color borders. Code which attemped to cure the grid effect by enlarging sligthly the rectangles was useless and removed. *es_demos() includes a demo of subwind(); all colored demos depend on the current colormap, which can be changed by the demo of setcmap(), first entry in the menu. *improved formatting of the text output of the demos 0.5 -> 0.6, 12 Jan 2000 ------------------------ *most of the work by scilab team: from a mere collection of *.sci, *.cat with a README and a Makefile, to a directory tree with man/, macros/ and loader. Demo script es_demos() From here on logs are based on my memory, and might be wrong: 0.4 -> 0.5 ---------- added slice3d(); improvements renumbering of the colormaps in setcmap() 0.3 -> 0.4 pre 27 Dec 1999 --------------------------- added isosurf3d(); improvements 0.2 -> 0.3 Jun 1999 -------------------- improvements removed xbasimp.sci; it was merely a patch to the corresponding file of scilab distribution, to cure a problem of consistency of color/dashes mode between screen and postscript output; I assume that this was taken care of in the following version of scilab removed avg (superseded by mean, in scilab 2.4.1) added .cat documentation files: distributed as tar 0.1 -> 0.2 pre 17 May 1999 --------------------------- added cplot, cpoints still functions collated in a single text file 0.1 --- file "enrico", put on scilab site in /contrib/misc/ by the team; collated in a single file some functions I submitted to the newsgroup