home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_11_04 / 1104077a < prev    next >
Text File  |  1992-12-23  |  1KB  |  46 lines

  1. /* mixed.h */
  2. /* Copyright 1992 by P.J. LaBrocca */
  3.  
  4. #ifndef MIXED_H
  5. #define MIXED_H
  6.  
  7. typedef long Integer;
  8.  
  9. #define MAXFACTOR   40      /* maximum number of factors */
  10. #define NUMER       0       /* index for numerator */
  11. #define DENOM       1       /* index for denominator */
  12. #define POSITIVE    1
  13. #define NEGATIVE    -1
  14.  
  15. typedef struct {
  16.     Integer whole;
  17.     Integer num;
  18.     Integer den;
  19.     int  sign;
  20.     Integer factors[2][MAXFACTOR];
  21. } mixed_t;
  22.  
  23. extern Integer Primes[];    /* space for prime numbers */
  24.  
  25. mixed_t mix_error(char *s);
  26.  
  27. void init_primes( void );
  28.  
  29. mixed_t *mix_init( mixed_t *m, Integer w, Integer n, Integer d );
  30. mixed_t *mix_clear( mixed_t *m );
  31. mixed_t *mix_factor( mixed_t *m );
  32. mixed_t *mix_reduce( mixed_t *m );
  33. void mix_make_improper( mixed_t *m );
  34. void mix_print( mixed_t *m );
  35.  
  36. mixed_t mix_sub(mixed_t *x, mixed_t *y);
  37. mixed_t mix_add(mixed_t *x, mixed_t *y);
  38. mixed_t mix_mul(mixed_t *x, mixed_t *y);
  39. mixed_t mix_recip(mixed_t f);
  40. mixed_t mix_divide(mixed_t *f, mixed_t *g);
  41. Integer lcd(mixed_t *f, mixed_t *g);
  42. void mix_neg(mixed_t *f);
  43.  
  44. #endif
  45.  
  46.