Products       Learn       Buy       Support       Company
 
  Home > Products > Other Products > GoFast
   
 

Math Products


GoFast® for 8051 Family

Fast Floating Point Library


Features

  • Fast
  • ROMable
  • IEEE 754 Format
  • Includes single and double precision
  • Includes test programs


Description

GoFastŪ for 8051 was carefully designed for high performance operation on 8051 and derivative architectures. The product optimizes for a balance of space and speed. It is integrated with Keil C51. For other compiler support, please contact us

Functionality

GoFast for 8051 contains the following floating point routines in both single and double precision:

add, subtract, multiply, divide
conversion operations
comparison operations
sin, cos, tan, atan
sqrt
log, log10
exp, pow
fabs, ceil, floor

GoFast for 8051 implements a floating point accumulator (FAC) in read-write memory. Operations and functions are performed using the value in FAC.

GoFast for 8051 is not naturally reentrant. However, reentrancy can be achieved by saving/restoring the FAC and other GoFast temporaries during a context switch. An application note included with the product describes the procedure.

Floating Point Technology

GoFast for 8051 is based on proven floating point algorithms developed over a decade.  The algorithms have been thoroughly tested using automated methods.  GoFast was specifically optimized and integrated for high performance on 8051 processors.

Timings

The following table gives the times for all floating point operations, for GoFast and the Keil floating point library. The times, in microseconds, were measured using the indicated processor and evaluation board. The single precision routines in the Keil C library are generally faster than those in GoFast, but Keil does not offer double precision routines. (If you only need single precision and you are using Keil, you probably don’t need GoFast.) Thus, the routines linked are a mixture of both libraries, as indicated in bold below.

Microsecond Timings

C8051F330, 25 MHz

 
Double Precision
Single Precision
Function
GoFast
Keil
GoFast
Keil
add
116.4
53.8
20.3
sub
115.7
59.1
22.3
mul
200.0
71.9
21.5
div
675.3
155.6
89.2
sqrt
2224.4
361.7
220.1
exp
4180.0
881.6
515.1
log
2626.3
731.0
396.9
log10
2788.0
778.6
416.9
sin
2480.2
566.4
324.1
cos
2509.4
557.5
321.3
tan
3108.6
962.7
525.1
atan
2876.7
753.2
401.8
pow
6935.4
1639.9
953.9
fabs
3.4
3.3
3.8
floor
56.6
15.1
186.7
ceil
56.8
15.2
186.6
cmp
75.1
37.8
9.0
char to fp
36.1
14.9
20.7
uchar to fp
35.0
12.6
20.7
short to fp
34.0
15.3
12.5
ushort to fp
33.7
15.1
12.5
long to fp
30.9
13.1
12.0
ulong to fp
29.1
9.8
9.5
fp to char
28.4
19.2
20.7
fp to uchar
28.2
18.9
20.7
fp to short
31.3
21.2
20.9
fp to ushort
30.9
17.9
20.9
fp to long
43.2
27.6
21.2
fp to ulong
43.2
27.6
21.2
abs char
2.7
2.9
abs short
2.6
2.7
abs long
3.2
4.2
sgl to dbl
50.6
dbl to sgl
49.7

Times were measured on Silicon Laboratories C8051F330DK board with Keil C51 v8.16.


GoFast is a registered trademark of Lantronix Inc.


 
     back to top
 
  Register for More Info
 
 

 
Home       Sitemap       Contact