Math Products
GoFast® for Borland C
Fast Floating Point Library
Features
- Fast
- Reentrant
- 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 Borland C was carefully designed for high performance operation
and ease of use including "link and go" compatibility with Borland C compilers.
GoFast provides ROMable, reentrant IEEE and ANSI compatible 80x86 floating point
support.
Functionality
GoFast supports reentrant floating point calculations for the Borland C++
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
Borland 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.
Environment
GoFast for Borland 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.
library does not include an initialization routine. GoFast provides two embedded
initialization routines -- one that uses software interrupts (EMUINIT.ASM) and one
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 |
BCC |
GoFast |
Add |
163 |
132 |
Subtract |
170 |
125 |
Multiply |
198 |
174 |
Divide |
205 |
198 |
Sqrt |
370 |
348 |
Exp |
1337 |
1009 |
Log |
1154 |
1081 |
Sin |
806 |
824 |
Cos |
788 |
806 |
Tan |
1374 |
1264 |
Atan |
1264 |
916 |
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.
|