source: git/Singular/structs.h @ fe2137

spielwiese
Last change on this file since fe2137 was fe2137, checked in by Hans Schönemann <hannes@…>, 25 years ago
*hannes: moved Exponent_t to structs.h git-svn-id: file:///usr/local/Singular/svn/trunk@2748 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.7 KB
Line 
1#ifndef STRUCTS_H
2#define STRUCTS_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: structs.h,v 1.17 1998-12-14 15:32:29 Singular Exp $ */
7/*
8* ABSTRACT
9*/
10
11/* standard types */
12typedef unsigned char  uchar ;
13typedef unsigned short CARDINAL;
14typedef short BOOLEAN;
15
16typedef void * Sy_reference;
17#define ADDRESS Sy_reference
18#define BITSET  unsigned int
19
20/* EXPONENT_TYPE is determined by configure und defined in mod2.h */
21typedef EXPONENT_TYPE Exponent_t;
22
23enum tHomog
24{
25   isNotHomog = FALSE,
26   isHomog    = TRUE,
27   testHomog
28};
29enum noeof_t
30{
31  noeof_brace = 1,
32  noeof_asstring,
33  noeof_block,
34  noeof_bracket,
35  noeof_comment,
36  noeof_procname,
37  noeof_string
38};
39
40struct sip_memHeap;
41typedef struct sip_memHeap ip_memHeap;
42typedef ip_memHeap *       memHeap;
43
44/* C++-part */
45#ifdef __cplusplus
46class ip_smatrix;
47class idrec;
48class intvec;
49class sleftv;
50class slists;
51class sattr;
52class skStrategy;
53class ssyStrategy;
54class procinfo;
55class namerec;
56#endif
57
58struct  sip_sring;
59struct  sip_sideal;
60struct  sip_link;
61struct  spolynom;
62struct _ssubexpr;
63struct _sssym;
64struct snumber;
65struct sip_command;
66struct sip_package;
67struct s_si_link_extension;
68struct reca;
69
70typedef struct _ssubexpr   sSubexpr;
71typedef struct _sssym      ssym;
72typedef struct spolyrec    polyrec;
73typedef struct snumber     rnumber;
74typedef struct sip_sideal  ip_sideal;
75typedef struct sip_smap    ip_smap;
76typedef struct sip_sring   ip_sring;
77typedef struct sip_link    ip_link;
78typedef struct sip_command ip_command;
79typedef struct sip_package ip_package;
80
81
82/* the pointer types */
83typedef ip_sring *         ring;
84typedef int                idtyp;
85typedef rnumber *          number;
86typedef polyrec *          poly;
87typedef poly *             polyset;
88typedef ip_sideal *        ideal;
89typedef ip_smap *          map;
90typedef ideal *            resolvente;
91typedef union uutypes      utypes;
92typedef ip_command *       command;
93typedef struct s_si_link_extension *si_link_extension;
94typedef struct reca *      alg;
95#ifdef __cplusplus
96typedef idrec *            idhdl;
97typedef ip_smatrix *       matrix;
98typedef ip_link *          si_link;
99typedef sleftv *           leftv;
100typedef slists *           lists;
101typedef sSubexpr *         Subexpr;
102typedef sattr *            attr;
103typedef skStrategy *       kStrategy;
104typedef ip_package *       package;
105typedef ssyStrategy *      syStrategy;
106typedef procinfo *         procinfov;
107typedef namerec *          namehdl;
108#endif
109
110struct _scmdnames
111{
112  char *name;
113  short alias;
114  short tokval;
115  short toktype;
116};
117typedef struct _scmdnames cmdnames;
118
119/* the function pointer types */
120typedef number (*numberfunc)(number a,number b);
121
122typedef void    (*pSetmProc)(poly p);
123typedef int     (*pLDegProc)(poly p, int *length);
124typedef int     (*pFDegProc)(poly p);
125typedef int     (*pCompProc)(poly p1, poly p2);
126
127extern ring      currRing;
128
129/*
130**  7. runtime procedures/global data
131*/
132
133/* 7.1 C-routines : */
134
135#ifdef __cplusplus
136extern "C" {
137#endif
138void  m2_end(short i);
139#ifdef __cplusplus
140}
141#endif
142
143/* 7.2 C++-routines : */
144
145#ifdef __cplusplus
146int   inits(void);
147void  singular_help(char *str, BOOLEAN example);
148#ifdef buildin_help
149int   singular_manual(char *str);
150#endif
151#ifdef buildin_rand
152extern int siSeed;
153int siRand();
154#endif
155#endif
156
157/*the general set of std-options --> kutil.cc */
158extern BITSET test;
159/*the general set of verbose-options --> febase.cc */
160#ifdef __cplusplus
161extern "C" BITSET verbose;
162#else
163extern BITSET verbose;
164#endif
165/*debugging the bison grammar --> grammar.cc*/
166#ifdef YYDEBUG
167#if YYDEBUG
168extern int    yydebug;
169#endif
170#endif
171
172#ifdef HAVE_LIBPARSER
173#ifdef __cplusplus
174class libstack;
175typedef libstack *  libstackv;
176#endif
177#endif /* HAVE_LIBPARSER */
178
179#endif
180
Note: See TracBrowser for help on using the repository browser.