Math Products
GoFast® for M68K Microtec C
Fast Floating Point Library
Features
- Fast
- Reentrant
- ROMable
- Conforms to IEEE 754 Format
- "Link and Go" compiler support for Diab Data C/C++
- Includes startup code
- Includes test programs and make file
Description
GoFast® for Microtec C was carefully designed for high performance operation and
ease of use including "link and go" compatibility with the Microtec C compiler. GoFast
provides ROMable, reentrant IEEE and ANSI compatible 68K floating point support.
Functionality
GoFast supports reentrant floating point calculations for the Microtec C compiler.
GoFast includes the following routines for both single and double precision
in library format:
- intrinsic basic operations + - * /
- intrinsic conversions
- sqrt
- sin, cos, tan
- asin, acos, atan, atan2
- sinh, cosh, atanh
- log, log10, exp, pow
- floor, ceil, fabs
- modf, fmod, frexp, ldexp
The following files are included in source format to support GoFast testing:
- makefile Sample makefile
- putchr.c To read and display characters
- start.s Skeleton startup
- suppa.s Assembly support for putchr.c
- test1.c Simple test program
Target Processors
GoFast for Microtec C includes two libraries. GoFast16.LIB is a floating point
library designed for operation with 68K processors that do not support the 32 bit multiply and divide instructions (e.g. 68000). GoFast.LIB is a floating point library designed for operation with processors that support the 32 bit multiply and divide instructions (e.g. 68020 etc.)
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 the Diab Data floating point library and the GoFast floating point
library. The times, given in microseconds, were measured using a 25 MHz 5204 ColdFire processor with three wait states. The version of Diab Data C/C++ compiler used was 4.1a.
Microsecond Timings
Library Function |
Single Precision |
Double Precision |
|
MRI C |
w/GF |
MRI C |
w/GF |
add |
25 |
28 |
51 |
48 |
multiply |
32 |
30 |
73 |
51 |
divide |
32 |
28 |
152 |
51 |
sqrt |
250 |
50 |
712 |
62 |
exp |
487 |
62 |
1550 |
225 |
pow |
1025 |
137 |
3112 |
437 |
log |
450 |
62 |
1587 |
200 |
log10 |
487 |
62 |
1650 |
225 |
sin |
287 |
62 |
1187 |
175 |
cos |
487 |
75 |
1675 |
162 |
tan |
275 |
62 |
1212 |
250 |
asin |
612 |
100 |
2337 |
262 |
acos |
575 |
100 |
2237 |
287 |
atan |
425 |
75 |
1737 |
175 |
|