My Project
Loading...
Searching...
No Matches
Singular
dyn_modules
python
ring_wrap.cc
Go to the documentation of this file.
1
#include "
kernel/mod2.h
"
2
#ifdef HAVE_PYTHON
3
#include <boost/python.hpp>
4
#include "
Singular/ipshell.h
"
5
#include "
ring_wrap.h
"
6
#include "
poly_wrap.h
"
7
static
boost::python::object
Ring_as_str
(
const
Ring
& r)
8
{
9
using
boost::python::str;
10
StringSetS
(
""
);
11
rWrite
(r.
pimpl
.get());
12
char
* out=
StringEndS
();
13
return
boost::python::str(out,strlen(out));
14
}
15
void
ring_set
(
Ring
&
R
)
16
{
17
ring r=
R
.pimpl.get();
18
idhdl
h
=
rFindHdl
(r,
NULL
);
19
if
(
h
==
NULL
)
20
{
21
char
name_buffer[100];
22
STATIC_VAR
int
ending=0;
23
ending++;
24
sprintf(name_buffer,
"PYTHON_RING_VAR%d"
,ending);
25
h
=
enterid
(name_buffer,0,
RING_CMD
,&
IDROOT
);
26
IDRING
(
h
)=r;
27
r->ref++;
28
}
29
rSetHdl
(
h
);
30
for
(
int
i
=
myynest
;
i
>=0;
i
--)
iiLocalRing
[
i
]=r;
31
}
32
void
export_ring
()
33
{
34
boost::python::class_<Ring>(
"Ring"
,
"reference to a Singular ring"
)
35
.def(
"__str__"
,
Ring_as_str
)
36
.def(
"set"
,
ring_set
,
"equivalent to the singular command setring, which is not mapped as it is a command"
)
37
.def(boost::python::init <>());
38
}
39
#endif
i
int i
Definition
cfEzgcd.cc:132
Ring
Definition
ring_wrap.h:21
Ring::pimpl
intrusive_ptr< ip_sring > pimpl
Definition
ring_wrap.h:23
myynest
VAR int myynest
Definition
febase.cc:41
STATIC_VAR
#define STATIC_VAR
Definition
globaldefs.h:7
RING_CMD
@ RING_CMD
Definition
grammar.cc:282
enterid
idhdl enterid(const char *s, int lev, int t, idhdl *root, BOOLEAN init, BOOLEAN search)
Definition
ipid.cc:256
IDROOT
#define IDROOT
Definition
ipid.h:19
IDRING
#define IDRING(a)
Definition
ipid.h:127
iiLocalRing
VAR ring * iiLocalRing
Definition
iplib.cc:482
rFindHdl
idhdl rFindHdl(ring r, idhdl n)
Definition
ipshell.cc:1695
rSetHdl
void rSetHdl(idhdl h)
Definition
ipshell.cc:5122
ipshell.h
h
STATIC_VAR Poly * h
Definition
janet.cc:971
mod2.h
NULL
#define NULL
Definition
omList.c:12
poly_wrap.h
StringSetS
void StringSetS(const char *st)
Definition
reporter.cc:128
StringEndS
char * StringEndS()
Definition
reporter.cc:151
rWrite
void rWrite(ring r, BOOLEAN details)
Definition
ring.cc:227
idhdl
idrec * idhdl
Definition
ring.h:22
export_ring
void export_ring()
Definition
ring_wrap.cc:32
ring_set
void ring_set(Ring &R)
Definition
ring_wrap.cc:15
Ring_as_str
static boost::python::object Ring_as_str(const Ring &r)
Definition
ring_wrap.cc:7
ring_wrap.h
R
#define R
Definition
sirandom.c:27
Generated on Thu Mar 20 2025 00:00:00 for My Project by
doxygen 1.13.2
for
Singular