home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / MAGAZINE / DDJ9309.ZIP / FPALIB.ZIP / FMLIB.H < prev    next >
C/C++ Source or Header  |  1993-05-12  |  3KB  |  71 lines

  1. /* Extended IEEE Compatible Floating Point Arithmetic Library
  2. **
  3. ** Version 1.1
  4. ** Copyright (C) 1990, 1992 by Fred Motteler
  5. ** All Rights Reserved
  6. **
  7. ** This is a simple extended floating point arithmetic package.
  8. */
  9.  
  10. /* Bit masks for floating point condition code values */
  11. #define FFNAN 1
  12. #define FFINF 2
  13. #define FFZERO 4
  14. #define FFNEG 8
  15.  
  16. /* Floating point functions */
  17. #ifdef PROTOTYPES
  18. unsigned char fmultm(unsigned char *prodPB, unsigned char *termPB,
  19.              int expbitN, int fracbitN);
  20. unsigned char fdivm(unsigned char *dividPB, unsigned char *termPB,
  21.             int expbitN, int fracbitN);
  22. int fcmpm(unsigned char *flt1PB, unsigned char *flt2PB, int expbitN,
  23.       int fracbitN);
  24. unsigned char fsubm(unsigned char *diffPB, unsigned char *termPB,
  25.             int expbitN, int fracbitN);
  26. unsigned char faddm(unsigned char *sumPB, unsigned char *termPB,
  27.             int expbitN, int fracbitN);
  28. #else
  29. unsigned char fmultm();        /* Floating point multiply */
  30. unsigned char fdivm();        /* Floating point dividend */
  31. unsigned char faddm();        /* Floating point addition */
  32. unsigned char fsubm();        /* Floating point subtraction */
  33. int fcmpm();            /* Floating point comparison */
  34. #endif
  35.  
  36. /* Numeric conversion functions */
  37. #ifdef PROTOTYPES
  38. unsigned char intoflt(unsigned char *intvalBP, int intlenN,
  39.               unsigned char *fltvalBP, int fracbitN, int expbitN);
  40. unsigned char fltoint(unsigned char *fltvalBP, int fracbitN, int expbitN,
  41.               unsigned char *intvalBP, int intlenN);
  42. unsigned char fltoflt(unsigned char *fltinBP, int mantinN, int expinN,
  43.               unsigned char *fltoutBP, int mantoutN, int expoutN);
  44. #else
  45. unsigned char intoflt();    /* Integer to float */
  46. unsigned char fltoint();    /* Float to integer */
  47. unsigned char fltoflt();    /* Float to float */
  48. #endif
  49.  
  50. /* Numberic / string conversion functions */ 
  51. #ifdef PROTOTYPES
  52. unsigned char intostr(unsigned char *intvalBP, int intlenN,
  53.               char *strBP, int slenN, int radixN);
  54.     
  55. unsigned char fltostr(unsigned char *fltvalBP, int fracbitN, int expbitN,
  56.               char *strBP, int slenN);
  57. unsigned char strtoint(char *strBP, int slenN, unsigned char *intvalBP,
  58.                int intlenN, int radixN);
  59. unsigned char strtoflt(char *strBP, int slenN, unsigned char *fltvalBP,
  60.                int fracbitN, int expbitN);
  61. unsigned char intopten(unsigned char *fltexpBP, int expbyteN, 
  62.                        unsigned char *ptenfltBP, int fracbitN, int expbitN);
  63. #else
  64. unsigned char intostr();    /* Integer to ASCII string */
  65. unsigned char fltostr();    /* Float to decimal ASCII string */
  66. unsigned char strtoint();    /* ASCII string to integer */
  67. unsigned char strtoflt();    /* ASCII string to float */
  68. unsigned char intopten();    /* Generate float integral powers of 10 */
  69. #endif
  70.  
  71.