home *** CD-ROM | disk | FTP | other *** search
- SFLOAT -- Software Floating Point Package
-
- By Robert L. Smith
-
-
- This is a software floating point package for use with the F-PC Forth
- system. It follows most of the recommendations of the FVG (Forth Vendors
- Group) Standard Floating-Point Extension. It is my intention that the
- functions be as accurate as is reasonable, consistent with speed as the
- secondary goal. The basic four functions plus square root should be precise to
- one half a bit in the least significant bit of the representation. It is my
- intention that the higher functions have intrinsic errors no larger than one
- bit in the least significant place. The representation uses a 16 bit word for
- the sign and biased exponent of the floating point number, and 32 bits for the
- significand (sometimes called the "mantissa"). That means that the intrinsic
- accuracy is approximately 9 and a half decimal digits. The largest and
- smallest representable numbers cover roughly the range from 10 to the plus and
- minus 4000 power, which is far greater than almost anyone would ever need.
- The representation does NOT include special cases for infinity, unnormalized
- numbers, and Not-A-Number. The format is definitely NOT the IEEE Floating
- Point Standard format. The reason is basically one of speed. The functions
- in this package are approximately 5 (FIVE) times faster than software
- implementations using the IEEE standard. In spite of that, I do attempt to
- meet the basic requirement of having the basic four functions be accurate to
- within one-half a bit. The precision is somewhat greater than one would
- obtain from the 32-bit IEEE format.
-
- To load the package from F-PC, type FLOAD SFLOAT followed by a
- carriage return.
-
- After SFLOAT has been loaded, you may enter floating point numbers
- in exponential format. The following is a list of possible entries:
-
- -1.2345E4
- .9876E-3
- 123.456(10)
- 12.345X-5
-
- The rules are: If the number is negative, it must be preceeded with a
- minus sign. Do not use "+" with positive numbers. The separator between
- the mantissa and exponent may be almost any character other than a digit,
- "+" sign, "-" sign, or comma. In the examples above, the "E" is used for
- compliance with FVG, but the left parenthesis or "X" may be used, especially
- if you desire to enter your numbers in another base. The terminating symbol
- may be omitted, but you may wish to use a right parenthesis, as in the third
- example above.
-
- If you wish to enter floating point numbers without having to specify
- the exponential part, type the word FLOATS . That will allow numbers with
- imbedded decimal points (or commas) to be interpretted as floating point
- numbers. A trailing decimal point will still cause the number to be treated
- as a double precision number. To turn off that feature, invoke the word
- DOUBLES .
-
- The simplest numeric output is E. . Other possible functions are:
- E.R , F. , and F.R . There is also a floating point stack printout word, .FS .
- If you wish to turn off the Floating Point interpreter, enter NOFLOATING .
- To re-enter the floating point interpreter, enter FLOATING . If you wish
- to FORGET all or part of the floating point package, it is important to
- invoke NOFLOATING prior to using FORGET .
-
- The FVG Standard Floating-Point Extension has been published in Dr.
- Dobb's Journal, Sept., 1984. The authors are Ray Duncan and Martin Tracy.
-
-
-