ChangeLog for complex-kahan.fs

Unattributed changes are by David N. Williams.  The last
revision date in the source file may reflect cosmetic changes
not recorded here.

Version 1.0.3
 9Dec10 * Added COMPLEX, COMPLEXES, and COMPLEX+.
10Dec10 * Revised calculation of BITS/FLOAT and made it visible.
	* Added double extended constants.
11Dec10 * Fixed incorrectly rounded double version of T2P1.
12Dec10 * Adjustments for iForth FASINH and FLNP1.

Version 1.0.2
18Aug09 * Fixed FLOATING-EXT and FLOATING-STACK environmental
	  queries to guarantee an ABORT when the floating-
	  point stack is not separate.
25Nov10 * Revised SIGNBIT to return well-formed flag.
	* Added .F[BL|-] and .F[+|-]I and revised Z. and ZS. to
	  use them.  Definitions same as in complex.fs.
27Nov10 * Replaced bootstrapped [UN] by Forth 200x [UNDEFINED].
	* Upper cased:  ZVARIABLE ZCONSTANT ZLITERAL	
	* Removed blank trailing "i" in Z. and ZS..
28Nov10 * Replaced refs to pfe FPIEEE by IEEEFP, with renamings
	  and functional adjustments according to the Forth 200x
	  IEEE-FP proposal.
29Nov10 * Reviewed Kahan algorithm for |Z| and ZSSQS in light of
	  new GET-FFLAGS and SET-FFLAGS, and simplified.
	* Simplified conditional definition of Z2* and Z2/.

Version 1.0.1
28Jun09 * Renamed FPFRAME{ and }FRAME as FPFRAME>R and R>FRAME
	  to avoid conflict with FSL array naming.

Version 1.0
18May09 * Added ABORT when bits/float is neither 32 nor 64.
	* Renamed Inf as +Inf.

Version 0.8.10
20Sep08 * Renamed F-ROT as -FROT.
	* Added ZROT, -ZROT, and ZLITERAL.
21Sep08 * Added list of words and url's for references.
	* Replaced 0. by 0 0 .
	* Renamed constants with (...) to use [...].
22Sep08 * Removed EXIT from ZLITERAL throw phrase.
 4Mar09 * Renamed NONAME as FNONAME to avoid name clash with
	  gforth.
	* Revised ZCONSTANT based on Anton Ertl's portable
	  definition of CONSTANT, which doesn't use DOES>.
15Mar09 * Added a comment that NaN fconstants are quiet.
	* Added a disclaimer for the signs of NaN's produced by
	  words like Z^.
	* Renamed NaN as +NaN.
	* Replaced "0e 0e 0e z/f" by "+NaN +NaN" in ZBOX.
18Mar09 * Revised machine parameters so they're defined only if
	  floats are 64 or 32 bits.

Version 0.8.9
24Apr05 * Renamed minimal words in more telegraphic jvn style.
          Renamed (-I)* as -I*.
        * Added formula comments to inverse functions.

Version 0.8.8
26Jan05 * Added use of the FPIEEE-EXT environment when available
          to implement floating-point exception parts of Kahan's
          algorithms.  Added to |Z|, ARG.
28Jan05 * Finished adding optional ZSSQS.
        * Discovered that Kahan's EPSILON is machar's EPSNEG,
          instead of EPS.
29Jan05 * Added optional overflow/underflow avoidance to ZSQRT.
30Jan05 * Added ZLNS.  After checking *many* possibilities,
          puzzled why zln.fs doesn't give the same results as
          with the pfe COMPLEX-EXT environment.
31Jan05 * Traced the reason to the difference between C-compiled
          "x*x + y*y" and "FDUP F* FSWAP FDUP F* F+".  The
          former apparently keeps things in registers enough to
          benefit from the G4/PPC guard bit, while the latter
          moves everything back and forth in memory.
 6Feb05 * Added conditional FPIEEE versions of F2* and F2/.
        * Changed INFINITY to INF, which is defined as an
          fconstant, for systems whose floating point number
          interpretation doesn't include it.  Added constants
          for -INF and NAN as well.
12Feb05 * Replaced ZCOSH with more accurate version that
          preserves signed zero on the real axis.
15Feb05 * Removed all references to Z=0, etc., in favor of
          0E 0E, etc.

Version 0.8.7
14Jan05 * Fixed bug in not to be reached branch of ZBOX.
15Jan05 * Fixed sign of zero output bug in imaginary part of
          Z. and ZS.
        * Changed ZBOX to conserve signs for all cases, contrary
          to Kahan, p. 198, but in agreement with its use in
          ARG, p. 199.

Version 0.8.6
13Jan05 * Demoted Z*F, Z/F, F*Z, F/Z to synonyms for new mixed
          mode nomenclature ZF*, ZF/, FZ*, FZ/, to be settled
          later.  Added remaining Kahan minimal computation
          words ZIF*, ZIF/, IFZ*, IFZ/.

Versions 0.8.3-0.8.5
13Jan05 * Skipped to synchronize with pfe.

Version 0.8.2
 5Mar03 * Release with changes under 0.8.1.  Passes all our
          tests, including those for signed zero.  But the more
          exotic tests are incomplete.
28Nov04 * Removed missing Z*IF and IF*Z and a duplicate Z*F from
          comments.  For completeness, Z*IF, IF*Z, I/Z, IF/Z,
          and Z/IF should be added.
  
Version 0.8.1
22Feb03 * Replaced Z. and ZS. with jvn's code for Krishna
          Myneni's suggestion to factor out the sign of the
          imaginary part.
        * Added raw single precision constants R2P1 and T2P1,
          used in |Z|.
24Feb04 * Added sign of zero output in Z. and ZS..

Version 0.8.0
16Jan03 * Start by moving Kahan versions out of complex.fs, our
          mods to Julian V. Noble's complex.f.
22Jan03 * Added ZF*, FZ*, ZF/, FZ/.
        * Fixed COPYSIGN to work with -0.
23Jan03 * Added ZBOX.
        * Painfully computed Kahan constants R2P1 and T2P1.
 2Feb03 * Installed less painful system for exact constants.
 4Feb03 * Added SIGNBIT, and revamped COPYSIGN.
 5Feb03 * Added portable F=.
        * Debugged ZATANH.  Hard!
 7Feb03 * Added cheap flocals.  Rewrote |Z|, tested accuracy.
 8Feb03 * Added Kahan algorithm for ZTANH
 9Feb03 * Rewrote inverse functions with cheap locals.  Did
           formal tests.
11Feb03 * Added Kahan algorithm for ZSQRT
12Feb03 * Added Kahan algorithms for ARG and ZLN.
14Feb03 * Fixed signed zero treatment for ZSINH, various
          others.
15Feb03 * Tested ZLN accuracy.
17Feb03 * Revised F=.
        * Changed names ZX+, etc., to X+, etc.
18Feb03 * Changed names of ZF*, FZ*, ZF/, FZ/ to Z*F, F*Z, Z/F,
          F/Z.
20Feb03 * Release.