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