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

Math Products


GoFast® for PowerPC / Power Architecture C Compilers


Fast Floating Point Library


Features

  • Fast
  • Reentrant
  • ROMable
  • Conforms to IEEE 754 Format
  • Includes single and double precision
  • "Link and Go" compiler support
  • Includes complete source, test programs, project files, and startup code


Compiler Support

GoFast libraries are designed for “link and go” operation with each compiler. These libraries provide the user with a significant speed advantage when no floating point coprocessor hardware is available. This is of particular significance in real-time embedded systems.

GoFast for PowerPC / Power Architecture includes drop-in libraries for “link and go” seamless operation with Diab Data, GNU, IBM, Metaware, and Freescale PowerPC / Power Architecture C compilers. The GoFast routines directly replace the compiler’s floating point runtime library routines. Two types of interfaces are provided. The first is an emulator interface, which uses a processor interrupt to pick up the floating-point instructions and emulate them in software. Separate subdirectories in the GoFast distribution contain an emulator specific to the PowerPC 602 and an emulator, which supports other variants of the PowerPC. The second interface is through callable libraries. The product distribution contains directories that are specific to each C compiler supported. The Embedded Application Binary Interface (EABI) is supported for both Metaware and Diab Data compilers and the emulator library interface is supported for the IBM compiler.

Functionality

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

  • add, subtract, multiply, divide
  • conversion operations
  • compare operations
  • sin, cos, tan
  • asin, acos, atan, atan2
  • sinh, cosh, atanh
  • log, log10
  • exp, pow
  • floor, ceil, fabs
  • modf, fmod, frexp, ldexp

Timings

The following table gives the times for all floating point operations, for GoFast and the GNU floating point library. The times, in microseconds, were measured using the indicated processor and board.

Microsecond Timings

PPC440GX EVB, External SDRAM

 
Double Precision
Single Precision
Function
GoFast
GNU
GoFast
GNU
add
0.150
0.454
0.121
0.387
subtract
0.156
0.478
0.123
0.395
multiply
0.157
0.532
0.110
0.265
divide
0.552
2.141
0.284
0.641
sqrt
0.928
1.981
0.385
2.452
exp
0.878
16.203
0.303
16.548
log
1.230
16.891
0.445
17.353
log10
1.296
20.064
0.459
20.517
pow
2.101
56.297
0.769
56.752
sin
0.710
15.297
0.281
15.763
cos
0.696
15.585
0.281
16.072
tan
1.247
28.076
0.475
28.498
asin
1.192
18.128
0.925
18.568
acos
1.102
16.798
1.089
17.295
atan
1.414
16.270
0.537
16.780
atan2
1.849
21.077
0.725
21.635
sinh
1.283
27.025
0.507
27.521
cosh
1.254
19.363
0.486
19.882
tanh
1.322
26.158
0.644
26.539
modf
0.285
0.891
0.103
1.380
fmod
1.058
1.511
0.816
2.258
fabs
0.064
0.079
0.058
0.555
floor
0.095
0.824
0.080
1.302
ceil
0.096
0.823
0.081
1.308
ldexp
0.083
0.708
0.080
1.177
frexp
0.077
0.134
0.072
0.645
feq/gt/lt...
0.102
0.252
0.083
0.252
fp to long
0.068
0.145
0.062
0.154
fp to ulong
0.067
0.392
0.062
0.404
long to fp
0.072
0.962
0.070
0.185
ulong to fp
0.080
1.135
0.084
0.255
fp to llong
0.739
3.195
0.771
3.326
fp to ullong
0.628
2.963
0.689
3.132
llong to fp
0.588
3.388
0.677
3.584
ullong to fp
0.662
3.578
0.749
3.763
sgl to dbl
0.067
0.214
dbl to sgl
0.081
0.184

Times were measured on a 440GX board with GCC v3.4.2 using uClibc v0.9.28.


GoFast is a registered trademark of Lantronix Inc.

     back to top
 
  Register for More Info
 
 

 
Home       Sitemap       Contact