[BACK]Return to binomial.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / TiGERS_0.9

File: [local] / OpenXM_contrib / TiGERS_0.9 / Attic / binomial.h (download)

Revision 1.1.1.1 (vendor branch), Sat Nov 27 10:58:42 1999 UTC (24 years, 5 months ago) by maekawa
Branch: TIGERS
CVS Tags: maekawa-ipv6, VERSION_0_9, RELEASE_20000124, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, RELEASE_1_1_3, RELEASE_1_1_2
Changes since 1.1: +0 -0 lines

Import TiGERS 0.9

/*
** binomial.h                                 Birk Huber, 4/99 
** -- header file for binomal type and main operations on binomials
**  
**
** TiGERS,  Toric Groebner Basis Enumeration by Reverse Search 
** copyright (c) 1999  Birk Huber
**
*/

#ifndef BINOMIAL_H 
extern int ring_N;
extern int ring_lv;
extern int *ring_weight;
#endif

int ring_set(int n);
int ring_getvar(FILE *ifile);
#define ring_putvar(ofile,v) fprintf(ofile,"%c",'a'+v)


typedef int *monomial;
int monomial_divides(monomial m1, monomial m2);
int monomial_equal(monomial m1, monomial m2);
int monomial_lexcomp(monomial m1, monomial m2);
int monomial_rlexcomp(monomial m1, monomial m2);

typedef struct bin_tag *binomial;
struct bin_tag{
  int *exps1;
  int *exps2;
  int *E;
  int ff;
  int bf;
  binomial next;
  };  


#define BINOMIAL 1
#define MONOMIAL 0
#define FACET    0
#define NONFACET 1
#define UNKNOWN -1

#define binomial_next(b) (b->next)
#define binomial_lead(b) (b->exps1)
#define binomial_trail(b) (b->exps2)
#define monomial_set(b)   (b->bf=MONOMIAL)
#define binomial_set(b)   (b->bf=BINOMIAL)
#define binomial_facet(b) (b->ff)
binomial binomial_new();
void binomial_free(binomial m);
void binomial_read(FILE *is, binomial b);
void binomial_print(FILE *of, binomial b);
binomial monomial_spair(binomial b,monomial m);
void binomial_flip(binomial b);
int binomial_spair(binomial b1, binomial b2);
/*
** return TRUE if binomials marking agrees with respect to the
** lexicographic term order
*/
#define binomial_ordered(b)\
  ((monomial_lexcomp(binomial_lead(b),binomial_trail(b))>=0) ? TRUE : FALSE)