 |
My Project
debian-1:4.1.1-p2+ds-4build3
|
Go to the source code of this file.
|
void | ssiWritePoly_R (const ssiInfo *d, int typ, poly p, const ring r) |
|
void | ssiWriteIdeal_R (const ssiInfo *d, int typ, const ideal I, const ring r) |
|
poly | ssiReadPoly_R (const ssiInfo *D, const ring r) |
|
ideal | ssiReadIdeal_R (const ssiInfo *d, const ring r) |
|
BOOLEAN | ssiSetCurrRing (const ring r) |
|
void | ssiWriteInt (const ssiInfo *d, const int i) |
|
void | ssiWriteString (const ssiInfo *d, const char *s) |
|
void | ssiWriteBigInt (const ssiInfo *d, const number n) |
|
void | ssiWriteNumber_CF (const ssiInfo *d, const number n, const coeffs cf) |
|
void | ssiWriteNumber (const ssiInfo *d, const number n) |
|
void | ssiWriteRing_R (ssiInfo *d, const ring r) |
|
void | ssiWriteRing (ssiInfo *d, const ring r) |
|
void | ssiWritePoly (const ssiInfo *d, int typ, poly p) |
|
void | ssiWriteIdeal (const ssiInfo *d, int typ, const ideal I) |
|
void | ssiWriteCommand (si_link l, command D) |
|
void | ssiWriteProc (const ssiInfo *d, procinfov p) |
|
void | ssiWriteList (si_link l, lists dd) |
|
void | ssiWriteIntvec (const ssiInfo *d, intvec *v) |
|
void | ssiWriteIntmat (const ssiInfo *d, intvec *v) |
|
void | ssiWriteBigintmat (const ssiInfo *d, bigintmat *v) |
|
char * | ssiReadString (const ssiInfo *d) |
|
int | ssiReadInt (s_buff fich) |
|
number | ssiReadNumber_CF (const ssiInfo *d, const coeffs cf) |
|
number | ssiReadBigInt (const ssiInfo *d) |
|
number | ssiReadNumber (const ssiInfo *d) |
|
ring | ssiReadRing (const ssiInfo *d) |
|
poly | ssiReadPoly (const ssiInfo *D) |
|
ideal | ssiReadIdeal (const ssiInfo *d) |
|
matrix | ssiReadMatrix (const ssiInfo *d) |
|
command | ssiReadCommand (si_link l) |
|
procinfov | ssiReadProc (const ssiInfo *d) |
|
lists | ssiReadList (si_link l) |
|
intvec * | ssiReadIntvec (const ssiInfo *d) |
|
intvec * | ssiReadIntmat (const ssiInfo *d) |
|
bigintmat * | ssiReadBigintmat (const ssiInfo *d) |
|
void | ssiReadBlackbox (leftv res, si_link l) |
|
void | ssiReadAttrib (leftv res, si_link l) |
|
BOOLEAN | ssiOpen (si_link l, short flag, leftv u) |
|
BOOLEAN | ssiPrepClose (si_link l) |
|
BOOLEAN | ssiClose (si_link l) |
|
leftv | ssiRead1 (si_link l) |
|
BOOLEAN | ssiSetRing (si_link l, ring r, BOOLEAN send) |
|
BOOLEAN | ssiWrite (si_link l, leftv data) |
|
BOOLEAN | ssiGetDump (si_link l) |
|
BOOLEAN | ssiDump (si_link l) |
|
si_link_extension | slInitSsiExtension (si_link_extension s) |
|
const char * | slStatusSsi (si_link l, const char *request) |
|
int | slStatusSsiL (lists L, int timeout) |
|
int | ssiBatch (const char *host, const char *port) |
|
int | ssiReservePort (int clients) |
|
si_link | ssiCommandLink () |
|
void | sig_chld_hdl (int) |
| additional default signal handler More...
|
|
static BOOLEAN | DumpSsiIdhdl (si_link l, idhdl h) |
|
static BOOLEAN | ssiDumpIter (si_link l, idhdl h) |
|
◆ SSI_VERSION
◆ TRANSEXT_PRIVATES
#define TRANSEXT_PRIVATES 1 /* allow access to transext internals */ |
◆ DumpSsiIdhdl()
Definition at line 1993 of file ssiLink.cc.
2007 if ((type_id ==
RING_CMD) && (strncmp(
IDID(
h),
"ssiRing",7)==0))
2012 memset(&tmp,0,
sizeof(tmp));
2019 if ((strcmp(
IDID(
h),
"Top") == 0)
2020 || (strcmp(
IDID(
h),
"Standard") == 0))
2025 package p=(package)IDDATA(h);
2032 D->arg1.data=
p->libname;
2034 D->arg2.data=(
char*)
"with";
2045 D->arg1.data=
p->libname;
◆ sig_chld_hdl()
void sig_chld_hdl |
( |
int |
| ) |
|
additional default signal handler
some newer Linux version cannot have SIG_IGN for SIGCHLD, so use this nice routine here: SuSe 9.x reports -1 always Redhat 9.x/FC x reports sometimes -1 see also: hpux_system also needed by getrusage (timer etc.)
- Parameters
-
Definition at line 1951 of file ssiLink.cc.
1958 kidpid = si_waitpid(-1, &
status, WNOHANG);
1962 if (errno == EINTR)
continue;
1966 else if (kidpid==0)
break;
◆ slInitSsiExtension()
si_link_extension slInitSsiExtension |
( |
si_link_extension |
s | ) |
|
◆ slStatusSsi()
Definition at line 1581 of file ssiLink.cc.
1584 if (d==
NULL)
return "not open";
1585 if (((strcmp(
l->mode,
"fork")==0)
1586 ||(strcmp(
l->mode,
"tcp")==0)
1587 ||(strcmp(
l->mode,
"connect")==0))
1588 && (strcmp(request,
"read") == 0))
1605 case 0:
return "not ready";
1606 case -1:
return "error";
1613 if (c== -1)
return "eof";
1614 else if (isdigit(c))
1618 Werror(
"unknown char in ssiLink(%d)",c);
1624 else if (strcmp(request,
"read") == 0)
1627 else return "not ready";
1629 else if (strcmp(request,
"write") == 0)
1632 else return "not ready";
1634 else return "unknown status request";
◆ slStatusSsiL()
int slStatusSsiL |
( |
lists |
L, |
|
|
int |
timeout |
|
) |
| |
Definition at line 1637 of file ssiLink.cc.
1653 fd_set mask, fdmask;
1660 struct timeval *wt_ptr=&wt;
1668 wt.tv_sec = timeout / 1000000;
1669 wt.tv_usec = timeout % 1000000;
1681 for(
i=L->
nr;
i>=0;
i--)
1686 {
WerrorS(
"all elements must be of type link");
return -2;}
1689 {
WerrorS(
"all links must be open");
return -2;}
1690 if (((strcmp(
l->m->type,
"ssi")!=0) && (strcmp(
l->m->type,
"MPtcp")!=0))
1691 || ((strcmp(
l->mode,
"fork")!=0) && (strcmp(
l->mode,
"tcp")!=0)
1692 && (strcmp(
l->mode,
"launch")!=0) && (strcmp(
l->mode,
"connect")!=0)))
1694 WerrorS(
"all links must be of type ssi:fork, ssi:tcp, ssi:connect");
1697 if (strcmp(
l->m->type,
"ssi")==0)
1703 FD_SET(d_fd, &fdmask);
1704 if (d_fd > max_fd) max_fd=d_fd;
1711 Werror(
"wrong link type >>%s<<",
l->m->type);
1721 for(
k = 0;
k < max_fd;
k++)
1723 if(FD_ISSET(
k, &fdmask))
1730 s = si_select(max_fd, &mask,
NULL,
NULL, wt_ptr);
1733 WerrorS(
"error in select call");
1743 while (
j<=max_fd) {
if (FD_ISSET(
j,&mask))
break;
j++; }
1744 for(
i=L->
nr;
i>=0;
i--)
1749 if (strcmp(
l->m->type,
"ssi")==0)
1757 Werror(
"wrong link type >>%s<<",
l->m->type);
1774 for(
k = 0;
k < max_fd;
k++)
1776 if(FD_ISSET(
k, &fdmask))
1790 wt.tv_sec = timeout / 1000000;
1791 wt.tv_usec = (timeout % 1000000);
1796 else if (isdigit(c))
1800 Werror(
"unknown char in ssiLink(%d)",c);
◆ ssiBatch()
int ssiBatch |
( |
const char * |
host, |
|
|
const char * |
port |
|
) |
| |
Definition at line 1809 of file ssiLink.cc.
1814 sprintf(
buf,
"ssi:connect %s:%s",host,port);
◆ ssiClose()
Definition at line 1167 of file ssiLink.cc.
1185 si_waitpid(d->
pid,
NULL,WNOHANG);
1187 && (kill(d->
pid,0)==0))
1191 t.tv_nsec=100000000;
1192 struct timespec
rem;
1197 r = nanosleep(&t, &
rem);
1200 if (si_waitpid(d->
pid,
NULL,WNOHANG) != 0)
break;
1202 if ((r==0) || (errno != EINTR))
break;
1204 if (kill(d->
pid,0) == 0)
1212 r = nanosleep(&t, &
rem);
1215 if (si_waitpid(d->
pid,
NULL,WNOHANG) != 0)
break;
1217 if ((r==0) || (errno != EINTR))
break;
1219 if (kill(d->
pid,0) == 0)
1228 if ((strcmp(
l->mode,
"tcp")==0)
1229 || (strcmp(
l->mode,
"fork")==0))
◆ ssiCommandLink()
Definition at line 1880 of file ssiLink.cc.
1884 WerrorS(
"ERROR no reverved port requested");
1887 struct sockaddr_in cli_addr;
1888 int clilen =
sizeof(cli_addr);
1889 int newsockfd = si_accept(
ssiReserved_sockfd, (
struct sockaddr *) &cli_addr, (socklen_t *)&clilen);
1892 Werror(
"ERROR on accept (errno=%d)",errno);
1897 si_link_extension prev =
s;
1898 while (strcmp(
s->type,
"ssi") != 0)
1900 if (
s->next ==
NULL)
1927 d->
f_write = fdopen(newsockfd,
"w");
◆ ssiDump()
◆ ssiDumpIter()
◆ ssiGetDump()
◆ ssiOpen()
Definition at line 782 of file ssiLink.cc.
790 if (
l->mode[0] !=
'\0' && (strcmp(
l->mode,
"r") == 0))
796 else if (strcmp(
l->mode,
"w") == 0) mode =
"w";
797 else if (strcmp(
l->mode,
"fork") == 0) mode =
"fork";
798 else if (strcmp(
l->mode,
"tcp") == 0) mode =
"tcp";
799 else if (strcmp(
l->mode,
"connect") == 0) mode =
"connect";
809 if (
l->name[0] ==
'\0')
811 if (strcmp(mode,
"fork")==0)
824 if (pid == -1 && errno == EAGAIN)
837 sigemptyset(&sigint);
838 sigaddset(&sigint, SIGINT);
839 sigprocmask(SIG_BLOCK, &sigint,
NULL);
857 #ifdef HAVE_SIMPLEIPC
859 #endif // HAVE_SIMPLEIPC
860 si_close(pc[1]); si_close(cp[0]);
899 si_close(pc[0]); si_close(cp[1]);
911 Werror(
"fork failed (%d)",errno);
918 else if (strcmp(mode,
"tcp")==0)
920 int sockfd, newsockfd, portno, clilen;
921 struct sockaddr_in serv_addr, cli_addr;
922 sockfd = socket(AF_INET, SOCK_STREAM, 0);
925 WerrorS(
"ERROR opening socket");
930 memset((
char *) &serv_addr,0,
sizeof(serv_addr));
932 serv_addr.sin_family = AF_INET;
933 serv_addr.sin_addr.s_addr = INADDR_ANY;
937 serv_addr.sin_port = htons(portno);
940 WerrorS(
"ERROR on binding (no free port available?)");
946 while(bind(sockfd, (
struct sockaddr *) &serv_addr,
sizeof(serv_addr)) < 0);
949 newsockfd = si_accept(sockfd, (
struct sockaddr *) &cli_addr, (socklen_t *)&clilen);
957 PrintS(
"client accepted\n");
961 d->
f_write = fdopen(newsockfd,
"w");
968 Werror(
"invalid mode >>%s<< for ssi",mode);
978 if(strcmp(mode,
"tcp")==0)
980 int sockfd, newsockfd, portno, clilen;
981 struct sockaddr_in serv_addr, cli_addr;
982 sockfd = socket(AF_INET, SOCK_STREAM, 0);
985 WerrorS(
"ERROR opening socket");
990 memset((
char *) &serv_addr,0,
sizeof(serv_addr));
992 serv_addr.sin_family = AF_INET;
993 serv_addr.sin_addr.s_addr = INADDR_ANY;
997 serv_addr.sin_port = htons(portno);
1000 WerrorS(
"ERROR on binding (no free port available?)");
1005 while(bind(sockfd, (
struct sockaddr *) &serv_addr,
sizeof(serv_addr)) < 0);
1008 char* cli_host = (
char*)
omAlloc(256);
1009 char* path = (
char*)
omAlloc(1024);
1010 int r = si_sscanf(
l->name,
"%255[^:]:%s",cli_host,path);
1013 WerrorS(
"ERROR: no host specified");
1022 WarnS(
"program not specified, using /usr/local/bin/Singular");
1024 strcpy(path,
"/usr/local/bin/Singular");
1026 char* ssh_command = (
char*)
omAlloc(256);
1027 char* ser_host = (
char*)
omAlloc(64);
1028 gethostname(ser_host,64);
1029 sprintf(ssh_command,
"ssh %s %s -q --batch --link=ssi --MPhost=%s --MPport=%d &",cli_host,path,ser_host,portno);
1037 clilen =
sizeof(cli_addr);
1038 newsockfd = si_accept(sockfd, (
struct sockaddr *) &cli_addr, (socklen_t *)&clilen);
1050 d->
f_write = fdopen(newsockfd,
"w");
1062 else if(strcmp(mode,
"connect")==0)
1064 char* host = (
char*)
omAlloc(256);
1066 struct sockaddr_in serv_addr;
1067 struct hostent *server;
1069 si_sscanf(
l->name,
"%255[^:]:%d",host,&portno);
1073 sockfd = socket(AF_INET, SOCK_STREAM, 0);
1074 if (sockfd < 0) {
WerrorS(
"ERROR opening socket");
return TRUE; }
1075 server = gethostbyname(host);
1077 memset((
char *) &serv_addr, 0,
sizeof(serv_addr));
1078 serv_addr.sin_family = AF_INET;
1079 memcpy((
char *)&serv_addr.sin_addr.s_addr,
1080 (
char *)server->h_addr,
1082 serv_addr.sin_port = htons(portno);
1083 if (si_connect(sockfd,(sockaddr*)&serv_addr,
sizeof(serv_addr)) < 0)
1084 {
Werror(
"ERROR connecting(errno=%d)",errno);
return TRUE; }
1088 d->
f_write=fdopen(sockfd,
"w");
1105 char *filename=
l->name;
1107 if(filename[0]==
'>')
1109 if (filename[1]==
'>')
1120 outfile=
myfopen(filename,mode);
1123 if (strcmp(
l->mode,
"r")==0)
◆ ssiPrepClose()
◆ ssiRead1()
Definition at line 1261 of file ssiLink.cc.
1286 res->data=(
char*)d->
r;
1298 if (d->
r==
NULL)
goto no_ring;
1302 if (d->
r==
NULL)
goto no_ring;
1306 if (d->
r==
NULL)
goto no_ring;
1310 if (d->
r==
NULL)
goto no_ring;
1314 if (d->
r==
NULL)
goto no_ring;
1326 int nok=
res->Eval();
1327 if (nok)
WerrorS(
"error in eval");
1334 int nok=
res->Eval();
1335 if (nok)
WerrorS(
"error in name lookup");
1370 Print(
"incompatible versions of ssi: %d/%d vs %d/%d\n",
1375 Print(
"// opening ssi-%d, MAX_TOK=%d\n",n98_v,n98_m);
1389 default:
Werror(
"not implemented (t:%d)",t);
1398 && (
res->RingDependend()))
◆ ssiReadAttrib()
Definition at line 760 of file ssiLink.cc.
767 for(
int i=1;
i<nr_of_attr;
i++)
773 memset(tmp,0,
sizeof(
sleftv));
◆ ssiReadBigInt()
Definition at line 421 of file ssiLink.cc.
426 if (n->s!=3)
Werror(
"invalid sub type in bigint:%d",n->s);
◆ ssiReadBigintmat()
◆ ssiReadBlackbox()
◆ ssiReadCommand()
Definition at line 630 of file ssiLink.cc.
638 D->argc=argc;
D->op=op;
643 memcpy(&(
D->arg1),
v,
sizeof(*
v));
651 memcpy(&(
D->arg2),
v,
sizeof(*
v));
657 memcpy(&(
D->arg3),
v,
sizeof(*
v));
◆ ssiReadIdeal()
◆ ssiReadIdeal_R()
◆ ssiReadInt()
int ssiReadInt |
( |
s_buff |
fich | ) |
|
◆ ssiReadIntmat()
◆ ssiReadIntvec()
◆ ssiReadList()
◆ ssiReadMatrix()
◆ ssiReadNumber()
◆ ssiReadNumber_CF()
Definition at line 397 of file ssiLink.cc.
417 else WerrorS(
"coeffs not implemented in ssiReadNumber");
◆ ssiReadPoly()
◆ ssiReadPoly_R()
◆ ssiReadProc()
◆ ssiReadRing()
Definition at line 437 of file ssiLink.cc.
451 Werror(
"cannot find cf:%s",cf_name);
458 names=(
char**)
omAlloc(
N*
sizeof(
char*));
468 int *block0=(
int *)
omAlloc0((num_ord+1)*
sizeof(int));
469 int *block1=(
int *)
omAlloc0((num_ord+1)*
sizeof(int));
470 int **wvhdl=(
int**)
omAlloc0((num_ord+1)*
sizeof(
int*));
471 for(
i=0;
i<num_ord;
i++)
485 wvhdl[
i]=(
int*)
omAlloc((block1[
i]-block0[
i]+1)*
sizeof(int));
487 for(ii=block0[
i];ii<=block1[
i];ii++)
496 Werror(
"ring oder not implemented for ssi:%d",ord[
i]);
514 r=
rDefault(ch,
N,names,num_ord,ord,block0,block1,wvhdl);
521 r=
rDefault(
cf,
N,names,num_ord,ord,block0,block1,wvhdl);
529 r=
rDefault(
cf,
N,names,num_ord,ord,block0,block1,wvhdl);
533 r=
rDefault(
cf,
N,names,num_ord,ord,block0,block1,wvhdl);
537 Werror(
"ssi: read unknown coeffs type (%d)",ch);
◆ ssiReadString()
◆ ssiReservePort()
int ssiReservePort |
( |
int |
clients | ) |
|
Definition at line 1844 of file ssiLink.cc.
1848 WerrorS(
"ERROR already a reverved port requested");
1855 WerrorS(
"ERROR opening socket");
1868 WerrorS(
"ERROR on binding (no free port available?)");
◆ ssiSetCurrRing()
Definition at line 71 of file ssiLink.cc.
84 sprintf(
name,
"ssiRing%d",nr); nr++;
◆ ssiSetRing()
◆ ssiWrite()
Definition at line 1427 of file ssiLink.cc.
1437 void *dd=data->
Data();
1447 else if (data->
flag!=0)
1507 fprintf(d->
f_write,
"10 %d ",(
int)
M->rank);
1544 b->blackbox_serialize(
b,dd,
l);
1548 Werror(
"not implemented (t:%d, rtyp:%d)",tt, data->
rtyp);
◆ ssiWriteBigInt()
◆ ssiWriteBigintmat()
◆ ssiWriteCommand()
◆ ssiWriteIdeal()
◆ ssiWriteIdeal_R()
◆ ssiWriteInt()
◆ ssiWriteIntmat()
◆ ssiWriteIntvec()
◆ ssiWriteList()
◆ ssiWriteNumber()
◆ ssiWriteNumber_CF()
Definition at line 124 of file ssiLink.cc.
137 fraction
f=(fraction)n;
145 else if (
cf->cfWriteFd!=
NULL)
149 else WerrorS(
"coeff field not implemented");
◆ ssiWritePoly()
◆ ssiWritePoly_R()
◆ ssiWriteProc()
◆ ssiWriteRing()
◆ ssiWriteRing_R()
Definition at line 157 of file ssiLink.cc.
168 fprintf(d->
f_write,
"-1 %d ",r->N);
170 fprintf(d->
f_write,
"-2 %d ",r->N);
173 fprintf(d->
f_write,
"-3 %d ",r->N);
180 fprintf(d->
f_write,
"%d %s ",(
int)strlen(r->names[
i]),r->names[
i]);
185 if (r->order!=
NULL)
while (r->order[
i]!=0)
i++;
189 if (r->order!=
NULL)
while(r->order[
i]!=0)
191 fprintf(d->
f_write,
"%d %d %d ",r->order[
i],r->block0[
i], r->block1[
i]);
202 for(ii=r->block0[
i];ii<=r->block1[
i];ii++)
203 fprintf(d->
f_write,
"%d ",r->wvhdl[
i][ii-r->block0[
i]]);
211 Werror(
"ring oder not implemented for ssi:%d",r->order[
i]);
◆ ssiWriteString()
◆ si_link_root
si_link_extension si_link_root |
◆ ssiReserved_Clients
◆ ssiReserved_P
◆ ssiReserved_sockfd
◆ ssiResverd_serv_addr
struct sockaddr_in ssiResverd_serv_addr |
|
static |
◆ ssiToBeClosed
◆ ssiToBeClosed_inactive
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
void ssiWritePoly(const ssiInfo *d, int typ, poly p)
BOOLEAN ssiWrite(si_link l, leftv data)
char * fe_fgets_dummy(const char *, char *, int)
BOOLEAN ssiOpen(si_link l, short flag, leftv u)
intvec * ssiReadIntmat(const ssiInfo *d)
struct for passing initialization parameters to naInitChar
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent @Note: the integer VarOffset encodes:
BOOLEAN ssiClose(si_link l)
#define SI_LINK_SET_CLOSE_P(l)
void ssiWriteIntvec(const ssiInfo *d, intvec *v)
#define MATELEM(mat, i, j)
void rChangeCurrRing(ring r)
static FORCE_INLINE int n_GetChar(const coeffs r)
Return the characteristic of the coeff. domain.
matrix ssiReadMatrix(const ssiInfo *d)
int ssiReadInt(s_buff fich)
idhdl enterid(const char *s, int lev, int t, idhdl *root, BOOLEAN init, BOOLEAN search)
void ssiReadBlackbox(leftv res, si_link l)
coeffs nFindCoeffByName(const char *cf_name)
find an existing coeff by its "CoeffName"
BOOLEAN ssiSetCurrRing(const ring r)
command ssiReadCommand(si_link l)
void ssiWriteIntmat(const ssiInfo *d, intvec *v)
BOOLEAN ssiSetRing(si_link l, ring r, BOOLEAN send)
void ssiWriteRing_R(ssiInfo *d, const ring r)
number ssiReadNumber_CF(const ssiInfo *d, const coeffs cf)
leftv ssiRead1(si_link l)
coeffs nInitChar(n_coeffType t, void *parameter)
one-time initialisations for new coeffs in case of an error return NULL
const CanonicalForm CFMap CFMap & N
char *(* fe_fgets_stdin)(const char *pr, char *s, int size)
void ssiWriteNumber(const ssiInfo *d, const number n)
static BOOLEAN DumpSsiIdhdl(si_link l, idhdl h)
Class used for (list of) interpreter objects.
BOOLEAN slOpen(si_link l, short flag, leftv h)
void ssiWriteBigintmat(const ssiInfo *d, bigintmat *v)
void ssiWriteProc(const ssiInfo *d, procinfov p)
char * ssiReadString(const ssiInfo *d)
BOOLEAN singular_in_batchmode
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent @Note: VarOffset encodes the position in p->exp
static unsigned pLength(poly a)
ring rDefault(const coeffs cf, int N, char **n, int ord_size, rRingOrder_t *ord, int *block0, int *block1, int **wvhdl, unsigned long bitmask)
BOOLEAN rEqual(ring r1, ring r2, BOOLEAN qr)
returns TRUE, if r1 equals r2 FALSE, otherwise Equality is determined componentwise,...
#define SI_LINK_W_OPEN_P(l)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
static short rVar(const ring r)
#define rVar(r) (r->N)
int s_readbytes(char *buff, int len, s_buff F)
n_coeffType rFieldType(ring r)
bigintmat * ssiReadBigintmat(const ssiInfo *d)
BOOLEAN ssiDump(si_link l)
int status int void * buf
void PrintS(const char *s)
#define omFreeSize(addr, size)
void ssiWriteIdeal(const ssiInfo *d, int typ, const ideal I)
number ssiReadBigInt(const ssiInfo *d)
BOOLEAN ssiGetDump(si_link l)
BOOLEAN slInit(si_link l, char *istr)
#define SI_LINK_R_OPEN_P(l)
char * iiGetLibProcBuffer(procinfo *pi, int part)
intvec * ssiReadIntvec(const ssiInfo *d)
s_buff s_open_by_name(const char *n)
void ssiWriteCommand(si_link l, command D)
void ssiWriteString(const ssiInfo *d, const char *s)
void s_ungetc(int c, s_buff F)
static struct sockaddr_in ssiResverd_serv_addr
number ssiReadNumber(const ssiInfo *d)
si_link_extension si_link_root
#define SI_LINK_OPEN_P(l)
leftv(* slRead2Proc)(si_link l, leftv a)
int blackboxIsCmd(const char *n, int &tok)
used by scanner: returns ROOT_DECL for known types (and the type number in tok)
omBin s_si_link_extension_bin
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
lists ssiReadList(si_link l)
static poly p_Init(const ring r, omBin bin)
void ssiWriteInt(const ssiInfo *d, const int i)
procinfov ssiReadProc(const ssiInfo *d)
matrix mpNew(int r, int c)
create a r x c zero-matrix
@ n_transExt
used for all transcendental extensions, i.e., the top-most extension in an extension tower is transce...
static BOOLEAN ssiDumpIter(si_link l, idhdl h)
ideal ssiReadIdeal(const ssiInfo *d)
static void p_Delete(poly *p, const ring r)
void ssiReadAttrib(leftv res, si_link l)
poly ssiReadPoly(const ssiInfo *D)
static int ssiReserved_Clients
void ssiWritePoly_R(const ssiInfo *d, int typ, poly p, const ring r)
static int ssiReserved_sockfd
ring ssiReadRing(const ssiInfo *d)
FILE * myfopen(const char *path, const char *mode)
static FORCE_INLINE void n_WriteFd(number a, FILE *f, const coeffs r)
io via ssi:
static int si_max(const int a, const int b)
void ssiWriteList(si_link l, lists dd)
@ ringorder_IS
Induced (Schreyer) ordering.
void Werror(const char *fmt,...)
BOOLEAN slClose(si_link l)
ideal idInit(int idsize, int rank)
initialise an ideal / module
void ssiWriteBigInt(const ssiInfo *d, const number n)
#define SIPC_MAX_SEMAPHORES
char name(const Variable &v)
void WerrorS(const char *s)
poly ssiReadPoly_R(const ssiInfo *D, const ring r)
static FORCE_INLINE char * nCoeffName(const coeffs cf)
si_link_extension slInitSsiExtension(si_link_extension s)
static unsigned long p_SetComp(poly p, unsigned long c, ring r)
void ssiWriteNumber_CF(const ssiInfo *d, const number n, const coeffs cf)
static void p_Setm(poly p, const ring r)
const Variable & v
< [in] a sqrfree bivariate poly
INLINE_THIS void Init(int l=0)
volatile BOOLEAN ssiToBeClosed_inactive
@ ringorder_aa
for idElimination, like a, except pFDeg, pWeigths ignore it
const CanonicalForm int s
#define SI_LINK_SET_RW_OPEN_P(l)
@ ringorder_a64
for int64 weights
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
void ssiWriteIdeal_R(const ssiInfo *d, int typ, const ideal I, const ring r)
const char * slStatusSsi(si_link l, const char *request)
#define omFreeBin(addr, bin)
static BOOLEAN rField_is_Zp(const ring r)
blackbox * getBlackboxStuff(const int t)
return the structure to the type given by t
static FORCE_INLINE number n_ReadFd(s_buff f, const coeffs r)
io via ssi:
#define SI_LINK_SET_OPEN_P(l, flag)
void rem(unsigned long *a, unsigned long *q, unsigned long p, int °a, int degq)
int sem_acquired[SIPC_MAX_SEMAPHORES]
ideal ssiReadIdeal_R(const ssiInfo *d, const ring r)
void ssiWriteRing(ssiInfo *d, const ring r)
@ n_algExt
used for all algebraic extensions, i.e., the top-most extension in an extension tower is algebraic
static BOOLEAN rField_is_Q(const ring r)