My Project
Toggle main menu visibility
Loading...
Searching...
No Matches
Singular
subexpr.h
Go to the documentation of this file.
1
#ifndef SUBEXPR_H
2
#define SUBEXPR_H
3
/****************************************
4
* Computer Algebra System SINGULAR *
5
****************************************/
6
/*
7
* ABSTRACT: handling of leftv
8
*/
9
10
#include <string.h>
11
12
#include "
polys/monomials/ring.h
"
13
14
//#include "Singular/ipid.h"
15
16
#include "
kernel/mod2.h
"
17
#include "
Singular/grammar.h
"
18
#include "
Singular/tok.h
"
19
#include "
Singular/attrib.h
"
20
#include "
Singular/fevoices.h
"
/* for sNoName_fe*/
21
22
typedef
enum
{
LANG_NONE
,
LANG_TOP
,
LANG_SINGULAR
,
LANG_C
,
LANG_MIX
,
LANG_MAX
}
language_defs
;
23
class
proc_singular
24
{
25
public
:
26
long
proc_start
;
// position where proc is starting
27
long
proc_end
;
// position where proc is ending
28
long
def_end
;
// position where proc header is ending
29
long
help_start
;
// position where help is starting
30
long
help_end
;
// position where help is starting
31
long
body_start
;
// position where proc-body is starting
32
long
body_end
;
// position where proc-body is ending
33
long
example_start
;
// position where example is starting
34
int
body_lineno
;
35
int
example_lineno
;
36
char
*
body
;
37
long
help_chksum
;
38
};
39
struct
proc_object
40
{
41
//public:
42
BOOLEAN
(*
function
)(
leftv
res
,
leftv
v
);
43
};
44
45
union
uprocinfodata
46
{
47
public
:
48
proc_singular
s
;
// data of Singular-procedure
49
struct
proc_object
o
;
// pointer to binary-function
50
};
51
typedef
union
uprocinfodata
procinfodata;
52
53
class
procinfo
54
{
55
public
:
56
char
*
libname
;
57
char
*
procname
;
58
package
pack;
59
language_defs
language
;
60
short
ref
;
61
char
is_static
;
// if set, proc not accessible for user
62
char
trace_flag
;
63
procinfodata
data
;
64
};
65
66
typedef
procinfo
*
procinfov
;
67
68
struct
_ssubexpr
69
{
70
struct
_ssubexpr
*
next
;
71
int
start
;
72
};
73
74
typedef
struct
_ssubexpr
*Subexpr;
75
76
EXTERN_VAR
BOOLEAN
siq
;
77
78
class
sleftv
;
79
typedef
sleftv
*
leftv
;
80
81
/// Class used for (list of) interpreter objects
82
class
sleftv
83
{
84
public
:
85
/* !! do not change the first 6 entries !! (see ipid.h: idrec) */
86
leftv
next
;
87
const
char
*
name
;
88
void
*
data
;
89
attr
attribute
;
90
BITSET
flag
;
91
int
rtyp
;
92
/* the type of the expression, describes the data field
93
* (E) marks the type field in iparith
94
* (S) marks the rtyp in sleftv
95
* ANY_TYPE: data is int: real type or 0 (E)
96
* DEF_CMD: all types, no change in sleftv (E)
97
* IDHDL: existing variable (E)
98
* IDHDL: variable, data is idhdl (S)
99
* COMMAND: data is command (S)
100
* INT_CMD: int constant, data is int (E,S)
101
* INTVEC_CMD: intvec constant, data is intvec * (E,S)
102
* POLY_CMD: poly constant, data is poly (E,S)
103
* ....
104
*/
105
Subexpr
e
;
/* holds the indices for indexed values */
106
package
req_packhdl;
107
inline
void
Init
() { memset(
this
,0,
sizeof
(*
this
)); }
108
void
CleanUp(ring r=
currRing
);
109
110
/// Called by type_cmd (e.g. "r;") or as default in jPRINT
111
void
Print
(
leftv
store=
NULL
,
int
spaces=0);
112
113
/// Called for conversion to string (used by string(..), write(..),..)
114
char
* String(
void
*d=
NULL
,
BOOLEAN
typed =
FALSE
,
int
dim
= 1);
115
116
void
Copy
(
leftv
e);
117
attr
CopyA();
118
void
* CopyD(
int
t);
119
void
*
CopyD
() {
return
CopyD
(
Typ
()); }
120
inline
const
char
*
Name
()
121
{
122
if
((
name
!=
NULL
) && (
e
==
NULL
))
return
name
;
123
else
return
sNoName_fe
;
124
}
125
inline
const
char
*
Fullname
()
126
{
127
if
((
name
!=
NULL
) && (
e
==
NULL
))
return
(this->name);
128
else
return
sNoName_fe
;
129
}
130
int
Typ();
131
int
LTyp();
/* returns LIST_CMD for l[i], otherwise returns Typ() */
132
void
* Data();
133
leftv
LData();
/* returns &(l[i]) for l[i], otherwise returns this */
134
//leftv LHdl();
135
attr
* Attribute();
136
inline
leftv
Next
() {
return
next
; }
137
int
listLength();
138
int
Eval();
/*replace a COMMAND by its result otherwise by CopyD*/
139
BOOLEAN
RingDependend
();
140
};
141
142
inline
BOOLEAN
RingDependend
(
int
t) {
return
(
BEGIN_RING
<t)&&(t<
END_RING
); }
143
EXTERN_INST_VAR
sleftv
sLastPrinted
;
144
145
void
syMake
(
leftv
v
,
const
char
*
name
,
package
pa
=
NULL
);
146
void
syMakeMonom
(
leftv
v
,
const
char
*
name
);
147
BOOLEAN
assumeStdFlag
(
leftv
h
);
148
149
inline
procinfov
piCopy
(
procinfov
pi
)
150
{
151
pi
->ref++;
152
return
pi
;
153
}
154
BOOLEAN
piKill
(
procinfov
l
);
155
const
char
*
piProcinfo
(
procinfov
pi
,
const
char
*request);
156
void
piShowProcinfo
(
procinfov
pi
,
char
*txt);
157
#ifdef HAVE_LIBPARSER
158
class
libstack
;
159
typedef
libstack
*
libstackv
;
160
161
class
libstack
162
{
163
public
:
164
libstackv
next
;
165
char
*
libname
;
166
BOOLEAN
to_be_done
;
167
int
cnt
;
168
void
push
(
const
char
*
p
,
char
*
libname
);
169
libstackv
pop
(
const
char
*
p
);
170
inline
char
*
get
() {
return
(
libname
); }
171
};
172
#endif
/* HAVE_LIBPARSER */
173
174
EXTERN_VAR
omBin
sSubexpr_bin
;
175
EXTERN_VAR
omBin
procinfo_bin
;
176
EXTERN_VAR
omBin
libstack_bin
;
177
178
void
s_internalDelete
(
const
int
t,
void
*d,
const
ring r);
179
180
#endif
attrib.h
attr
sattr * attr
Definition
attrib.h:16
BITSET
#define BITSET
Definition
auxiliary.h:85
BOOLEAN
int BOOLEAN
Definition
auxiliary.h:88
FALSE
#define FALSE
Definition
auxiliary.h:97
l
int l
Definition
cfEzgcd.cc:100
p
int p
Definition
cfModGcd.cc:4086
libstack
Definition
subexpr.h:162
libstack::push
void push(const char *p, char *libname)
Definition
iplib.cc:1510
libstack::get
char * get()
Definition
subexpr.h:170
libstack::next
libstackv next
Definition
subexpr.h:164
libstack::pop
libstackv pop(const char *p)
Definition
iplib.cc:1531
libstack::cnt
int cnt
Definition
subexpr.h:167
libstack::libname
char * libname
Definition
subexpr.h:165
libstack::to_be_done
BOOLEAN to_be_done
Definition
subexpr.h:166
sleftv
Class used for (list of) interpreter objects.
Definition
subexpr.h:83
sleftv::Typ
int Typ()
Definition
subexpr.cc:1048
sleftv::name
const char * name
Definition
subexpr.h:87
sleftv::rtyp
int rtyp
Definition
subexpr.h:91
sleftv::Init
void Init()
Definition
subexpr.h:107
sleftv::next
leftv next
Definition
subexpr.h:86
sleftv::CopyD
void * CopyD()
Definition
subexpr.h:119
sleftv::Name
const char * Name()
Definition
subexpr.h:120
sleftv::data
void * data
Definition
subexpr.h:88
sleftv::Next
leftv Next()
Definition
subexpr.h:136
sleftv::flag
BITSET flag
Definition
subexpr.h:90
sleftv::Fullname
const char * Fullname()
Definition
subexpr.h:125
sleftv::e
Subexpr e
Definition
subexpr.h:105
sleftv::attribute
attr attribute
Definition
subexpr.h:89
pa
static BOOLEAN pa(leftv res, leftv args)
Definition
cohomo.cc:3770
Print
#define Print
Definition
emacs.cc:80
res
CanonicalForm res
Definition
facAbsFact.cc:60
v
const Variable & v
< [in] a sqrfree bivariate poly
Definition
facBivar.h:39
sNoName_fe
const char sNoName_fe[]
Definition
fevoices.cc:57
fevoices.h
Copy
static number Copy(number a, const coeffs)
Definition
flintcf_Q.cc:215
RingDependend
static int RingDependend(int t)
Definition
gentable.cc:23
EXTERN_INST_VAR
#define EXTERN_INST_VAR
Definition
globaldefs.h:9
EXTERN_VAR
#define EXTERN_VAR
Definition
globaldefs.h:6
END_RING
@ END_RING
Definition
grammar.cc:311
BEGIN_RING
@ BEGIN_RING
Definition
grammar.cc:283
grammar.h
piKill
BOOLEAN piKill(procinfov pi)
Definition
ipid.cc:724
piProcinfo
const char * piProcinfo(procinfov pi, const char *request)
Definition
ipid.cc:700
h
STATIC_VAR Poly * h
Definition
janet.cc:971
pi
#define pi
Definition
libparse.cc:1145
mod2.h
NULL
#define NULL
Definition
omList.c:12
omBin
omBin_t * omBin
Definition
omStructs.h:12
currRing
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition
polys.cc:13
ring.h
package
ip_package * package
Definition
structs.h:39
leftv
sleftv * leftv
Definition
structs.h:53
procinfov
procinfo * procinfov
Definition
structs.h:56
sSubexpr_bin
VAR omBin sSubexpr_bin
Definition
subexpr.cc:40
procinfo_bin
VAR omBin procinfo_bin
Definition
subexpr.cc:42
syMake
void syMake(leftv v, const char *id, package pa)
Definition
subexpr.cc:1613
libstack_bin
VAR omBin libstack_bin
Definition
subexpr.cc:43
s_internalDelete
void s_internalDelete(const int t, void *d, const ring r)
Definition
subexpr.cc:518
sLastPrinted
INST_VAR sleftv sLastPrinted
Definition
subexpr.cc:46
siq
VAR BOOLEAN siq
Definition
subexpr.cc:48
assumeStdFlag
BOOLEAN assumeStdFlag(leftv h)
Definition
subexpr.cc:1587
syMakeMonom
void syMakeMonom(leftv v, const char *id)
Definition
subexpr.cc:1917
procinfo::libname
char * libname
Definition
subexpr.h:56
procinfo::language
language_defs language
Definition
subexpr.h:59
_ssubexpr::start
int start
Definition
subexpr.h:71
piCopy
procinfov piCopy(procinfov pi)
Definition
subexpr.h:149
proc_singular::body
char * body
Definition
subexpr.h:36
proc_singular::help_start
long help_start
Definition
subexpr.h:29
proc_singular::example_lineno
int example_lineno
Definition
subexpr.h:35
procinfo::data
procinfodata data
Definition
subexpr.h:63
procinfo::procname
char * procname
Definition
subexpr.h:57
proc_singular::def_end
long def_end
Definition
subexpr.h:28
leftv
sleftv * leftv
Definition
subexpr.h:79
proc_singular::help_end
long help_end
Definition
subexpr.h:30
proc_singular::proc_end
long proc_end
Definition
subexpr.h:27
proc_singular::example_start
long example_start
Definition
subexpr.h:33
procinfo::trace_flag
char trace_flag
Definition
subexpr.h:62
_ssubexpr::next
struct _ssubexpr * next
Definition
subexpr.h:70
proc_singular::help_chksum
long help_chksum
Definition
subexpr.h:37
piShowProcinfo
void piShowProcinfo(procinfov pi, char *txt)
uprocinfodata::s
proc_singular s
Definition
subexpr.h:48
procinfo::is_static
char is_static
Definition
subexpr.h:61
proc_singular::proc_start
long proc_start
Definition
subexpr.h:26
language_defs
language_defs
Definition
subexpr.h:22
LANG_MAX
@ LANG_MAX
Definition
subexpr.h:22
LANG_SINGULAR
@ LANG_SINGULAR
Definition
subexpr.h:22
LANG_NONE
@ LANG_NONE
Definition
subexpr.h:22
LANG_MIX
@ LANG_MIX
Definition
subexpr.h:22
LANG_C
@ LANG_C
Definition
subexpr.h:22
LANG_TOP
@ LANG_TOP
Definition
subexpr.h:22
proc_singular::body_start
long body_start
Definition
subexpr.h:31
procinfo::ref
short ref
Definition
subexpr.h:60
uprocinfodata::o
struct proc_object o
Definition
subexpr.h:49
proc_singular::body_end
long body_end
Definition
subexpr.h:32
proc_singular::body_lineno
int body_lineno
Definition
subexpr.h:34
libstackv
libstack * libstackv
Definition
subexpr.h:159
proc_object::function
BOOLEAN(* function)(leftv res, leftv v)
Definition
subexpr.h:42
proc_singular
Definition
subexpr.h:24
procinfo
Definition
subexpr.h:54
_ssubexpr
Definition
subexpr.h:69
proc_object
Definition
subexpr.h:40
uprocinfodata
Definition
subexpr.h:46
name
int name
New type name for int.
Definition
templateForC.h:21
tok.h
dim
int dim(ideal I, ring r)
Definition
tropicalStrategy.cc:23
Generated on
for My Project by
doxygen 1.17.0
for
Singular