Math Products
GoFast® for Microsoft C
Fast Floating Point Library
Features
- Fast
- ROMable
- IEEE 754 Format
- "Link and Go" compiler support
- Includes C startup code
- Includes sscanf and sprintf
- Includes test programs and make file
Description
GoFast® for Microsoft C was carefully designed for high performance
operation and ease of use including "link and go" compatibility with Microsoft C
compilers -- versions 5.1, 6, 7, and 8. GoFast provides ROMable, reentrant IEEE and
ANSI compatible 80x86 floating point support.
Functionality
GoFast supports reentrant floating point calculations for the Microsoft
compiler. GoFast includes the following routines in library format:
- complete floating point emulator
- _status87, _clear87, _control87
- conversion operations
- sqrt
- sin, cos, tan
- asin, acos, atan, atan2
- sinh, cosh, atanh
- log, log10
- exp, pow
- initialization (DOS version)
GoFast includes the following routines in source form to support linking without the
Microsoft library:
- sscanf, sprintf
- floor, ceil, fabs
- modf, fmod, frexp, ldexp
- hypot, cabs
- internal long integer math
- skeleton startup routine
- initialization (embedded versions)
The GoFast library routines work for all memory models. The source routines must be
compiled with the proper options. The provided GoFast makefile will do this.
Enviornment
GoFast for Microsoft C will operate in either a DOS environment or an
embedded environment.
In a DOS environment, the GoFast library USEMU.LIB is used. This library
includes an automatic initialization routine.
In an embedded environment, the GoFast library USEMUND.LIB is used. This
library does not include an initialization routine. GoFast provides two embedded
initialization routines -- one that uses software interrupts (EMUINIT.ASM) and one that
uses the "coprocessor not present" interrupt (EMUIR7.ASM). The choice is yours.
These initialization routines are ROMable, and provide maximum flexibility for embedded
operation.
Considerations
GoFast is primarily designed to facilitate embedded operation. However, it is
also tuned for performance. The following table gives the timing of some floating point
operations, both with and without GoFast. The times, given in microseconds, were
measured using a 16 MHz 386SX.
Function |
MSC |
GoFast |
Add |
165 |
128 |
Subtract |
172 |
128 |
Multiply |
220 |
174 |
Divide |
247 |
194 |
Sqrt |
608 |
271 |
Exp |
2527 |
990 |
Log |
2067 |
987 |
Sin |
2840 |
697 |
Cos |
2800 |
713 |
Tan |
2197 |
1137 |
Atan |
2217 |
787 |
GoFast Support
U S Software maintains a test lab where comprehensive confidence tests are
performed on GoFast in each target environment. A demonstration test program is
included with your product delivery, and you are encouraged to run it on your own target
hardware to verify system operation. Phone and fax support are provided with the
product. Extended support is also available.
|