Listing 5 mixed.h

/* mixed.h */
/* Copyright 1992 by P.J. LaBrocca */

#ifndef MIXED_H
#define MIXED_H

typedef long Integer;

#define MAXFACTOR  40  /* maximum number of factors */
#define NUMER      0   /* index for numerator */
#define DENOM      1   /* index for denominator */
#define POSITIVE   1
#define NEGATIVE   -1

typedef struct {
       Integer whole;
       Integer num;
       Integer den;
       int sign;
       Integer factors[2][MAXFACTOR];
} mixed_t;

extern Integer Primes[];     /* space for prime numbers */

mixed_t mix_error(char *s);

void init_primes( void );

mixed_t *mix_init( mixed_t *m, Integer w, Integer n, Integer d );
mixed_t *mix_clear( mixed_t *m );
mixed_t *mix_factor( mixed_t *m );
mixed_t *mix_reduce( mixed_t *m );
void mix_make_improper( mixed_t *m );
void mix_print( mixed_t *m );

mixed_t mix_sub(mixed_t *x, mixed_t *y);
mixed_t mix_add(mixed_t *x, mixed_t *y);
mixed_t mix_mul(mixed_t *x, mixed_t *y);
mixed_t mix_recip(mixed_t *f);    -
mixed_t mix_divide(mixed_t *f, mixed_t *g);
Integer lcd(mixed_t *f, mixed_t *g);
void mix_neg(mixed_t *f);

#endif

/* End of File */