| 
          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.
             
  
		    		 |