Download new: experix_r5_dist.tgz2 experix_r5_book.tgz2 Use previous version: experix_r4_helpers.tgz2 Follow instructions in install_r4, but note this: There is an alternative to SVGAlib. This exerpt from the new version of the "install" chapter in the book is a summary. See also the files in http://experix.sourceforge.net meant to accompany the Linux Journal article. 1a) alternative svgaserv (the frame buffer version) See the instructions in dist/source/svgalib/frbflib.c No need to chown it root or chmod it +s, and the un-modified gpm works with it. It takes less time and is much more reliable in vc switches. But it can only run properly in the current frame buffer mode, and we don't know how to change that except by re-boot. Compiler switches: -DDEBUG makes a file ./sslog showing all fifo data received (except binary) and whether the command was done or rejected. And it runs really slow. ------------------------------------------------------------------------ changes since experix_release_r5 Fri Dec 7 2007: ------------------------------------------------------------------------ -----------------------------files changed------------------------------ All files have had the copyleft notice and version number updated. These files have other changes: ------------------------------------------------------------------------ source/amoeba.c revise acom and its help; limit expansions source/help.c help for .astats .mm .sum comes from new file source/array.c source/command.c fixed \S source/errors.c crc/r source/FPUmath.c source/math.c new functions randomv, antihist source/numbers.c FPU exception monitoring source/try1.c revised command args source/updown.c random generator init source/globals.c source/defines.h source/structs.h source/FPUmath.h source/functions.h source/svgalib/svgafunc.c malloc size correction; revised vgamode setting source/svgalib/svgaserv.c revised vgamode setting source/svgalib/frbflib.c new source/svgalib/frbfdemo.c new xpx/math1.xpx new xpx/arraytrix.xpx new xpx/mathtrix.xpx changed tinterp2 xpx/graftrix.xpx corrected help line numbers help/keywords.doc help/gh.experix.hlp updated help/in.experix.hlp help/miscellaneous.hlp help/ss.unaryops.hlp removed info on statistical ops help/ss.statsops.hlp new help/ss.arblocks.hlp help/ss.comfiles.hlp note on effect of changing while executing help/ss.comjumps.hlp improved explanation help/ss.cmndtail.hlp help/fourier.hlp correlation trick help/histogram.hlp new "antihistogram" functionality drivers/poker.xpx help/app/poker.hlp dist/source/models/fpr.c book/amoeba minor changes book/install notes about new frame buffer svgaserv book/svgalibnotes ------------------------ experix policy changes ------------------------ The logfile is now put in /tmp by default, but startup option -l puts it in the working directory. ----------------------------experix api changes------------------------- New startup option -l makes the log file in current working directory, rather than in /tmp. Affected files: try1.c updown.c globals.c help.c errors.c gh.experix.hlp Help on the array statistics operators .astats .mm .sum has been moved into a new file, ss.statsops.hlp. Small change in source/help.c to accomplish this. In poker.xpx, pokrvA has been taken out; corresponding changes in poker.hlp. Reason: too much confusion in the use of pokrvA vs. pokrv. User is now responsible for saving different versions of pokrv for different things he may be doing. Also, the pp/t command now adjusts the time values in fppars[0,1,3,8,9] to keep the cursors in the same place. In poker.xpx, minor change in pscan/r: it formats the parameters and concatenates that to the comment string In amoeba.c, the acom command now drops the com argument (returns only the array). The help has been re-written. New floating-point random-value array creation operators: ]R0 and ]R1 New operator ]P converts values to Poisson deviates New operator ]G adds scaled Gaussian deviates to values New operator ]S works on complex or polar single- or double-precision numbers and arrays; replaces imag or angle part with the sine of the real or mag part, and replaces the real or mag part with its cosine. New operator ]0 makes an array set to 0 Increased size limit on xpx files (XPX_MAX_SIZE) New "antihistogram" functionality added to the histo command New command variable 'fpu_etrack keeps a record of FPU exceptions (when experix is compiled with the #define FPU_ETRACK statement in defines.h). See dist/help/fpu_etrack.hlp. Affected files: Look for FPU_ETRACK in FPUmath.c, numbers.c, updown.c, command.c, command1.c, defines.h, functions.h New operator ~f#### checks FPU status and makes an fpu_etrack record if there are exceptions, using digit string #### value for identification. Command argument processing has been fixed so that it processes multiple args following #!experix in a command file top line (it was only doing the first one because the shell bunched them into one arg string). Startup and exit command strings are now given as "-s={command string}" and "-e={command string}". {} delimit the command and the "" is needed on bash command line to prevent it dividing into multiple args at the spaces. Affected files: source/try1.c help/gh.experix.hlp Made suspended command tail operators "work" in the top-level command, although there is really nothing useful for them to do. They pretend that the suspended command is {fake_above/tail top_level}, with xpos set to 11 (the '/'). This can be used to "test" the operators. Affected files: source/command.c source/globals.c source/structs.h help/ss.cmndtail.hlp Random number generation has been changed from reading /dev/urandom to the Mersenne Twister algorithm. Affected files: source/math.c source/updown.c source/array.c source/errors.c source/amoeba.c source/structs.h source/functions.h source/ss.arblocks.hlp The command s crc/r resets the random number generator, using the value s as a seed (must be non-negative). Extended-precision floating types are not allowed for the random array operators ]R ]R0 ]R1 ]P ]G tinterp2 in xpx/mathtrix.xpx has been changed to silently return incorrect results when x1 is out of range (old version saved in that file) ------------------------- non-api changes ------------------------------ Moved random number generation into randomv() in math.c. Affected files: source/functions.h source/math.c source/amoeba.c source/array.c Added function sincos_a in FPUmath.c to do the new ]S operator; affected files: FPUmath.c, FPUmath.h, array.c, in.experix.hlp, functions.h, ss.arblocks.hlp Fixed a parsing error that effectively created a large number of array ops such as ]a ]r ]x etc. which all make an array of 0's verify theory on fft correlation-- or should it be convolution? What is the imag part? change "#warn" to "#warning" in dist/source/models/fpr.c Development of frame-buffer svgaserv revealed a serious error in the dumpbytes settings for vgamodes 35,36: was 3, needs to be 4. Caused under-allocation of bitmap space. Somehow this never bothered us before, but it crashed the frame-buffer version. Limited the frequency of amoeba "expansions" to reduce the chance of parameter limit overruns in a fitting problem. Made amotry a subfunction of amoeba for efficiency. vga mode info is now in the struct fb_info fb_infotable in svgaserv.c. Code was changed in svgafunc.c to use this. A frame buffer based svgalib replacement is under development. It is already (in my view) preferable to svgalib. See frbflib.c and the demo program frbfdemo.c, both in dist/source/svgalib. new function antihist added in math.c in command1.c: \S was not dropping on-the-stack level number args. when one or both of them was 0, so that "3 0 \S" left 3 and 0 on stack