My Project  UNKNOWN_GIT_VERSION
ipid.h
Go to the documentation of this file.
1 #ifndef IPID_H
2 #define IPID_H
3 /****************************************
4 * Computer Algebra System SINGULAR *
5 ****************************************/
6 
7 /*
8 * ABSTRACT: identfier handling
9 */
10 #include "Singular/idrec.h"
11 #include "Singular/subexpr.h"
12 #include "Singular/lists.h"
13 
14 extern idhdl currPackHdl;
15 extern idhdl basePackHdl;
16 extern package currPack;
17 extern package basePack;
18 #define IDROOT (currPack->idroot)
19 
20 struct sip_command;
21 typedef struct sip_command ip_command;
22 typedef ip_command * command;
23 
25 {
26  sleftv arg1; /*arg1 to build_in, proc to proc_call*/
27  sleftv arg2; /*NULL or arg2 to build_in, args to proc_call*/
28  sleftv arg3; /*NULL or arg3*/
29  short argc; /*0,1,2,3 to build_in, -1 otherwise*/
30  short op; /* build_in or PROC_CMD*/
31 };
32 
34 {
35  idhdl idroot; /* local objects */
36  char *libname;
37  short ref;
40  void *handle;
41 };
42 
43 inline package paCopy(package pack)
44 {
45  pack->ref++;
46  return pack;
47 }
48 
49 inline void paKill(package pack)
50 {
51  pack->ref--;
52 }
53 
54 class proclevel
55 {
56  public:
59  package cPack;
60  char * name;
61  proclevel() { memset(this,0,sizeof(*this)); }
62  void push(char *);
63  void pop();
64 };
65 extern proclevel *procstack;
66 
67 typedef struct
68 {
69  int (*iiAddCproc)(const char *libname, const char *procname, BOOLEAN pstatic,
70  BOOLEAN(*func)(leftv res, leftv v));
71  int (*iiArithAddCmd)(const char *szName, short nAlias, short nTokval,
72  short nToktype, short nPos);
73 
75 
76 
77 extern idhdl currRingHdl;
78 /* ================================================================== */
79 /* module support */
80 typedef int (*SModulFunc_t)(SModulFunctions*);
81 BOOLEAN load_builtin(const char *newlib, BOOLEAN autoexport, SModulFunc_t init);
82 void module_help_main(const char *newlib,const char *help);
83 void module_help_proc(const char *newlib,const char *p, const char *help);
84 
85 /* ================================================================== */
86 
87 /*extern ring currRing; in ring.h */
88 
89 idhdl enterid(const char * a, int lev, int t, idhdl* root, BOOLEAN init=TRUE, BOOLEAN serach=TRUE);
90 idhdl ggetid(const char *n);
91 //idhdl ggetid(const char *n, idhdl *packhdl);
92 void killid(const char * a, idhdl * i);
93 void killhdl(idhdl h, package prooti=currPack);
94 void killhdl2(idhdl h, idhdl * ih, ring r);
95 lists ipNameList(idhdl root);
96 lists ipNameListLev(idhdl root, int lev);
97 void ipMoveId(idhdl h);
100 void jjNormalizeQRingP(poly &p);
101 void jjNormalizeQRingId(leftv I);
102 void *idrecDataInit(int t);
103 
104 #define FLAG_STD 0
105 #define FLAG_TWOSTD 3
106 #define FLAG_QRING 4
107 #define hasFlag(A,F) Sy_inset((F),(A)->flag)
108 #define setFlag(A,F) (A)->flag|=Sy_bit(F)
109 #define resetFlag(A,F) (A)->flag&=~Sy_bit(F)
111 
112 
113 #define IDNEXT(a) ((a)->next)
114 #define IDTYP(a) ((a)->typ)
115 #define IDFLAG(a) ((a)->flag)
116 #define IDLEV(a) ((a)->lev)
117 #define IDID(a) ((a)->id)
118 #define IDATTR(a) ((a)->attribute)
119 
120 #define IDINT(a) ((int)(long)((a)->data.ustring))
121 #define IDDATA(a) ((a)->data.ustring)
122 #define IDRING(a) ((a)->data.uring)
123 #define IDINTVEC(a) ((a)->data.iv)
124 #define IDBIMAT(a) ((a)->data.bim)
125 #define IDPOLY(a) ((a)->data.p)
126 #define IDBIGINT(a) ((a)->data.n)
127 #define IDNUMBER(a) ((a)->data.n)
128 #define IDIDEAL(a) ((a)->data.uideal)
129 #define IDMATRIX(a) ((a)->data.umatrix)
130 #define IDMAP(a) ((a)->data.umap)
131 #define IDSTRING(a) ((a)->data.ustring)
132 #define IDLIST(a) ((a)->data.l)
133 #define IDLINK(a) ((a)->data.li)
134 #define IDPACKAGE(a) ((a)->data.pack)
135 #define IDPROC(a) ((a)->data.pinf)
136 
137 extern omBin sip_command_bin;
138 extern omBin sip_package_bin;
139 extern omBin idrec_bin;
140 extern omBin sleftv_bin;
141 
142 extern coeffs coeffs_BIGINT;
143 
144 /* options */
146 {
147  const char * name;
148  unsigned setval;
149  unsigned resetval;
150 };
151 
152 extern const struct soptionStruct optionStruct[];
153 extern const struct soptionStruct verboseStruct[];
154 
155 #endif
156 
157 
ipListFlag
void ipListFlag(idhdl h)
Definition: ipid.cc:538
sip_package::ref
short ref
Definition: ipid.h:37
currPackHdl
idhdl currPackHdl
Definition: ipid.cc:57
packFindHdl
idhdl packFindHdl(package r)
Definition: ipid.cc:752
procstack
proclevel * procstack
Definition: ipid.cc:54
proclevel::cPackHdl
idhdl cPackHdl
Definition: ipid.h:58
sip_package::language
language_defs language
Definition: ipid.h:38
lists.h
currRingHdl
idhdl currRingHdl
Definition: ipid.cc:61
proclevel::proclevel
proclevel()
Definition: ipid.h:61
sip_package::handle
void * handle
Definition: ipid.h:40
proclevel::name
char * name
Definition: ipid.h:60
sip_command_bin
omBin sip_command_bin
Definition: ipid.cc:47
module_help_proc
void module_help_proc(const char *newlib, const char *p, const char *help)
Definition: iplib.cc:1264
verboseStruct
const struct soptionStruct verboseStruct[]
Definition: misc_ip.cc:556
sleftv
Class used for (list of) interpreter objects.
Definition: subexpr.h:83
proclevel::next
proclevel * next
Definition: ipid.h:57
iiAddCproc
int iiAddCproc(const char *libname, const char *procname, BOOLEAN pstatic, BOOLEAN(*func)(leftv res, leftv v))
Definition: iplib.cc:1005
checkPackage
BOOLEAN checkPackage(package pack)
TRUE
#define TRUE
Definition: auxiliary.h:98
i
int i
Definition: cfEzgcd.cc:125
res
CanonicalForm res
Definition: facAbsFact.cc:64
ipMoveId
void ipMoveId(idhdl h)
Definition: ipid.cc:623
iiArithAddCmd
int iiArithAddCmd(const char *szName, short nAlias, short nTokval, short nToktype, short nPos=-1)
Definition: iparith.cc:9205
ggetid
idhdl ggetid(const char *n)
Definition: ipid.cc:523
soptionStruct::name
const char * name
Definition: ipid.h:147
BOOLEAN
int BOOLEAN
Definition: auxiliary.h:85
proclevel
Definition: ipid.h:55
soptionStruct::resetval
unsigned resetval
Definition: ipid.h:149
sip_package::idroot
idhdl idroot
Definition: ipid.h:35
killhdl
void killhdl(idhdl h, package prooti=currPack)
Definition: ipid.cc:386
h
static Poly * h
Definition: janet.cc:972
coeffs
sip_package::libname
char * libname
Definition: ipid.h:36
paKill
void paKill(package pack)
Definition: ipid.h:49
SModulFunc_t
int(* SModulFunc_t)(SModulFunctions *)
Definition: ipid.h:80
ipNameList
lists ipNameList(idhdl root)
Definition: ipid.cc:546
sip_command::op
short op
Definition: ipid.h:30
soptionStruct::setval
unsigned setval
Definition: ipid.h:148
enterid
idhdl enterid(const char *a, int lev, int t, idhdl *root, BOOLEAN init=TRUE, BOOLEAN serach=TRUE)
Definition: ipid.cc:267
sip_command::arg3
sleftv arg3
Definition: ipid.h:28
subexpr.h
idrec_bin
omBin idrec_bin
Definition: ipid.cc:50
sip_command
Definition: ipid.h:25
help
#define help
Definition: libparse.cc:1228
sip_package
Definition: ipid.h:34
slists
Definition: lists.h:23
idrec
Definition: idrec.h:35
omBin
omBin_t * omBin
Definition: omStructs.h:12
sip_command::argc
short argc
Definition: ipid.h:29
language_defs
language_defs
Definition: subexpr.h:22
command
ip_command * command
Definition: ipid.h:22
SModulFunctions
Definition: ipid.h:68
sip_package_bin
omBin sip_package_bin
Definition: ipid.cc:48
sip_package::loaded
BOOLEAN loaded
Definition: ipid.h:39
v
const Variable & v
< [in] a sqrfree bivariate poly
Definition: facBivar.h:37
sleftv_bin
omBin sleftv_bin
Definition: subexpr.cc:47
jjNormalizeQRingP
void jjNormalizeQRingP(poly &p)
Definition: ipassign.cc:2202
p
int p
Definition: cfModGcd.cc:4019
currPack
package currPack
Definition: ipid.cc:59
load_builtin
BOOLEAN load_builtin(const char *newlib, BOOLEAN autoexport, SModulFunc_t init)
Definition: iplib.cc:1197
coeffs_BIGINT
coeffs coeffs_BIGINT
Definition: ipid.cc:52
ipNameListLev
lists ipNameListLev(idhdl root, int lev)
Definition: ipid.cc:569
optionStruct
const struct soptionStruct optionStruct[]
Definition: misc_ip.cc:526
killhdl2
void killhdl2(idhdl h, idhdl *ih, ring r)
Definition: ipid.cc:417
basePackHdl
idhdl basePackHdl
Definition: ipid.cc:58
sip_command::arg1
sleftv arg1
Definition: ipid.h:26
sip_command::arg2
sleftv arg2
Definition: ipid.h:27
module_help_main
void module_help_main(const char *newlib, const char *help)
Definition: iplib.cc:1249
soptionStruct
Definition: ipid.h:146
killid
void killid(const char *a, idhdl *i)
Definition: ipid.cc:359
package
ip_package * package
Definition: structs.h:46
idrec.h
idrecDataInit
void * idrecDataInit(int t)
Definition: ipid.cc:127
jjNormalizeQRingId
void jjNormalizeQRingId(leftv I)
Definition: ipassign.cc:2167