8#define TRANSEXT_PRIVATES 1  
   50#include <netinet/in.h>  
   91      sprintf(
name,
"ssiRing%d",nr); nr++;
 
  128      sprintf(
name,
"ssiRing%d",nr); nr++;
 
  156  fprintf(d->
f_write,
"%d %s ",(
int)strlen(
s),
s);
 
  178    fraction 
f=(fraction)n;
 
  186  else if (
cf->cfWriteFd!=
NULL)
 
  190  else WerrorS(
"coeff field not implemented");
 
  209      fprintf(d->
f_write,
"-1 %d ",r->N);
 
  211      fprintf(d->
f_write,
"-2 %d ",r->N);
 
  214      fprintf(d->
f_write,
"-3 %d ",r->N);
 
  221      fprintf(d->
f_write,
"%d %s ",(
int)strlen(r->names[
i]),r->names[
i]);
 
  226    if (r->order!=
NULL) 
while (r->order[
i]!=0) 
i++;
 
  230    if (r->order!=
NULL) 
while(r->order[
i]!=0)
 
  232      fprintf(d->
f_write,
"%d %d %d ",r->order[
i],r->block0[
i], r->block1[
i]);
 
  243          for(ii=r->block0[
i];ii<=r->block1[
i];ii++)
 
  244            fprintf(d->
f_write,
"%d ",r->wvhdl[
i][ii-r->block0[
i]]);
 
  252          Werror(
"ring oder not implemented for ssi:%d",r->order[
i]);
 
  280    fprintf(d->
f_write,
"23 1 %d %d ",
SI_LOG2(r->bitmask),r->isLPring);
 
  386  fprintf(d->
f_write,
"%d %d ",
D->argc,
D->op);
 
  397  if (
p->data.s.body==
NULL)
 
  399  if (
p->data.s.body!=
NULL)
 
  409  fprintf(d->
f_write,
"%d ",Ll+1);
 
  418  fprintf(d->
f_write,
"%d ",
v->length());
 
  420  for(
i=0;
i<
v->length();
i++)
 
  427  fprintf(d->
f_write,
"%d %d ",
v->rows(),
v->cols());
 
  429  for(
i=0;
i<
v->length();
i++)
 
  437  fprintf(d->
f_write,
"%d %d ",
v->rows(),
v->cols());
 
  439  for(
i=0;
i<
v->length();
i++)
 
  483  else WerrorS(
"coeffs not implemented in ssiReadNumber");
 
  492    if (n->s!=3) 
Werror(
"invalid sub type in bigint:%d",n->s);
 
  518      Werror(
"cannot find cf:%s",cf_name);
 
  525    names=(
char**)
omAlloc(
N*
sizeof(
char*));
 
  535  int *block0=(
int *)
omAlloc0((num_ord+1)*
sizeof(int));
 
  536  int *block1=(
int *)
omAlloc0((num_ord+1)*
sizeof(int));
 
  537  int **wvhdl=(
int**)
omAlloc0((num_ord+1)*
sizeof(
int*));
 
  538  for(
int i=0;
i<num_ord;
i++)
 
  552        wvhdl[
i]=(
int*)
omAlloc((block1[
i]-block0[
i]+1)*
sizeof(int));
 
  554        for(ii=block0[
i];ii<=block1[
i];ii++)
 
  563        Werror(
"ring oder not implemented for ssi:%d",ord[
i]);
 
  581      r=
rDefault(ch,
N,names,num_ord,ord,block0,block1,wvhdl);
 
  588      r=
rDefault(
cf,
N,names,num_ord,ord,block0,block1,wvhdl);
 
  596      r=
rDefault(
cf,
N,names,num_ord,ord,block0,block1,wvhdl);
 
  600      r=
rDefault(
cf,
N,names,num_ord,ord,block0,block1,wvhdl);
 
  604      Werror(
"ssi: read unknown coeffs type (%d)",ch);
 
  627      sprintf(
name,
"ssiRing%d",nr); nr++;
 
  670    if (ret==
NULL) ret=
p;
 
  725  D->argc=argc; 
D->op=op;
 
  730    memcpy(&(
D->arg1),
v,
sizeof(*
v));
 
  738      memcpy(&(
D->arg2),
v,
sizeof(*
v));
 
  744      memcpy(&(
D->arg3),
v,
sizeof(*
v));
 
  783  for(
i=0;
i<=L->
nr;
i++)
 
  786    memcpy(&(L->
m[
i]),
v,
sizeof(*
v));
 
  796  for(
int i=0;
i<nr;
i++)
 
  808  for(
int i=0;
i<r*c;
i++)
 
  820  for(
int i=0;
i<r*c;
i++)
 
  840    b->blackbox_deserialize(&
b,&(
res->data),
l);
 
  862    for(
int i=1;
i<nr_of_attr;
i++)
 
  868  memset(tmp,0,
sizeof(
sleftv));
 
  884      unsigned long bm=~0L;
 
  896      unsigned long bm=~0L;
 
  901      d->
r->isLPring=isLPring;
 
  924      if (
l->mode[0] != 
'\0' && (strcmp(
l->mode, 
"r") == 0))
 
  930    else if (strcmp(
l->mode, 
"w") == 0) mode = 
"w";
 
  931    else if (strcmp(
l->mode, 
"fork") == 0) mode = 
"fork";
 
  932    else if (strcmp(
l->mode, 
"tcp") == 0) mode = 
"tcp";
 
  933    else if (strcmp(
l->mode, 
"connect") == 0) mode = 
"connect";
 
  943    if (
l->name[0] == 
'\0')
 
  945      if (strcmp(mode,
"fork")==0)
 
  958        if (pid == -1 && errno == EAGAIN)   
 
  971          sigemptyset(&sigint);
 
  972          sigaddset(&sigint, SIGINT);
 
  973          sigprocmask(SIG_BLOCK, &sigint, 
NULL);
 
  996          si_close(pc[1]); si_close(cp[0]);
 
 1035          si_close(pc[0]); si_close(cp[1]);
 
 1047          Werror(
"fork failed (%d)",errno);
 
 1054      else if (strcmp(mode,
"tcp")==0)
 
 1056        int sockfd, newsockfd, portno, clilen;
 
 1057        struct sockaddr_in serv_addr, cli_addr;
 
 1058        sockfd = socket(AF_INET, SOCK_STREAM, 0);
 
 1061          WerrorS(
"ERROR opening socket");
 
 1067        memset((
char *) &serv_addr,0, 
sizeof(serv_addr));
 
 1069        serv_addr.sin_family = AF_INET;
 
 1070        serv_addr.sin_addr.s_addr = INADDR_ANY;
 
 1074          serv_addr.sin_port = htons(portno);
 
 1077            WerrorS(
"ERROR on binding (no free port available?)");
 
 1084        while(bind(sockfd, (
struct sockaddr *) &serv_addr, 
sizeof(serv_addr)) < 0);
 
 1087        newsockfd = si_accept(sockfd, (
struct sockaddr *) &cli_addr, (socklen_t *)&clilen);
 
 1096        PrintS(
"client accepted\n");
 
 1100        d->
f_write = fdopen(newsockfd, 
"w");
 
 1107        Werror(
"invalid mode >>%s<< for ssi",mode);
 
 1118      if(strcmp(mode,
"tcp")==0)
 
 1120        int sockfd, newsockfd, portno, clilen;
 
 1121        struct sockaddr_in serv_addr, cli_addr;
 
 1122        sockfd = socket(AF_INET, SOCK_STREAM, 0);
 
 1125          WerrorS(
"ERROR opening socket");
 
 1131        memset((
char *) &serv_addr,0, 
sizeof(serv_addr));
 
 1133        serv_addr.sin_family = AF_INET;
 
 1134        serv_addr.sin_addr.s_addr = INADDR_ANY;
 
 1138          serv_addr.sin_port = htons(portno);
 
 1141            WerrorS(
"ERROR on binding (no free port available?)");
 
 1147        while(bind(sockfd, (
struct sockaddr *) &serv_addr, 
sizeof(serv_addr)) < 0);
 
 1150        char* cli_host = (
char*)
omAlloc(256);
 
 1151        char* path = (
char*)
omAlloc(1024);
 
 1152        int r = si_sscanf(
l->name,
"%255[^:]:%s",cli_host,path);
 
 1155          WerrorS(
"ERROR: no host specified");
 
 1165          WarnS(
"program not specified, using /usr/local/bin/Singular");
 
 1167          strcpy(path,
"/usr/local/bin/Singular");
 
 1169        char* ssh_command = (
char*)
omAlloc(256);
 
 1170        char* ser_host = (
char*)
omAlloc(64);
 
 1171        gethostname(ser_host,64);
 
 1172        if (strcmp(cli_host,
"localhost")==0) 
 
 1173          sprintf(ssh_command,
"%s -q --batch --link=ssi --MPhost=%s --MPport=%d &",path,ser_host,portno);
 
 1175          sprintf(ssh_command,
"ssh %s %s -q --batch --link=ssi --MPhost=%s --MPport=%d &",cli_host,path,ser_host,portno);
 
 1180        system(ssh_command);
 
 1183        clilen = 
sizeof(cli_addr);
 
 1184        newsockfd = si_accept(sockfd, (
struct sockaddr *) &cli_addr, (socklen_t *)&clilen);
 
 1197        d->
f_write = fdopen(newsockfd, 
"w");
 
 1209      else if(strcmp(mode,
"connect")==0)
 
 1211        char* host = (
char*)
omAlloc(256);
 
 1213        struct sockaddr_in serv_addr;
 
 1214        struct hostent *server;
 
 1216        si_sscanf(
l->name,
"%255[^:]:%d",host,&portno);
 
 1220          sockfd = socket(AF_INET, SOCK_STREAM, 0);
 
 1223            WerrorS(
"ERROR opening socket");
 
 1227          server = gethostbyname(host);
 
 1230            WerrorS(
"ERROR, no such host");
 
 1234          memset((
char *) &serv_addr, 0, 
sizeof(serv_addr));
 
 1235          serv_addr.sin_family = AF_INET;
 
 1236          memcpy((
char *)&serv_addr.sin_addr.s_addr,
 
 1237                (
char *)server->h_addr,
 
 1239          serv_addr.sin_port = htons(portno);
 
 1240          if (si_connect(sockfd,(sockaddr*)&serv_addr,
sizeof(serv_addr)) < 0)
 
 1242            Werror(
"ERROR connecting(errno=%d)",errno);
 
 1249          d->
f_write=fdopen(sockfd,
"w");
 
 1267        char *filename=
l->name;
 
 1269        if(filename[0]==
'>')
 
 1271          if (filename[1]==
'>')
 
 1282        outfile=
myfopen(filename,mode);
 
 1285          if (strcmp(
l->mode,
"r")==0)
 
 1348      si_waitpid(d->
pid,
NULL,WNOHANG);
 
 1350      && (kill(d->
pid,0)==0)) 
 
 1354        t.tv_nsec=100000000; 
 
 1355        struct timespec 
rem;
 
 1360          r = nanosleep(&t, &
rem);
 
 1363          if (si_waitpid(d->
pid,
NULL,WNOHANG) != 0) 
break;
 
 1365          if ((r==0) || (errno != EINTR)) 
break;
 
 1367        if (kill(d->
pid,0) == 0) 
 
 1375            r = nanosleep(&t, &
rem);
 
 1378            if (si_waitpid(d->
pid,
NULL,WNOHANG) != 0) 
break;
 
 1380            if ((r==0) || (errno != EINTR)) 
break;
 
 1382          if (kill(d->
pid,0) == 0)
 
 1391      if ((strcmp(
l->mode,
"tcp")==0)
 
 1392      || (strcmp(
l->mode,
"fork")==0))
 
 1440           if (d->
r==
NULL) 
goto no_ring;
 
 1451             res->data=(
char*)d->
r;
 
 1463           if (d->
r==
NULL) 
goto no_ring;
 
 1468           if (d->
r==
NULL) 
goto no_ring;
 
 1473           if (d->
r==
NULL) 
goto no_ring;
 
 1478           if (d->
r==
NULL) 
goto no_ring;
 
 1485           if (d->
r==
NULL) 
goto no_ring;
 
 1498             int nok=
res->Eval();
 
 1499             if (nok) 
WerrorS(
"error in eval");
 
 1506             int nok=
res->Eval();
 
 1507             if (nok) 
WerrorS(
"error in name lookup");
 
 1545                  Print(
"incompatible versions of ssi: %d/%d vs %d/%d\n",
 
 1550                  Print(
"// opening ssi-%d, MAX_TOK=%d\n",n98_v,n98_m);
 
 1564    default: 
Werror(
"not implemented (t:%d)",t);
 
 1573  && (
res->RingDependend()))
 
 1612    void *dd=data->
Data();
 
 1621    else if (data->
flag!=0) 
 
 1696                          fprintf(d->
f_write,
"10 %d ",(
int)
M->rank);
 
 1733              b->blackbox_serialize(
b,dd,
l);
 
 1737              Werror(
"not implemented (t:%d, rtyp:%d)",tt, data->
rtyp);
 
 1773  if (d==
NULL) 
return "not open";
 
 1774  if (((strcmp(
l->mode,
"fork")==0)
 
 1775  ||(strcmp(
l->mode,
"tcp")==0)
 
 1776  ||(strcmp(
l->mode,
"connect")==0))
 
 1777  && (strcmp(request, 
"read") == 0))
 
 1794        case 0:  
return "not ready";
 
 1795        case -1:       
return "error";
 
 1802      if (c== -1) 
return "eof"; 
 
 1803      else if (isdigit(c))
 
 1807        Werror(
"unknown char in ssiLink(%d)",c);
 
 1813  else if (strcmp(request, 
"read") == 0)
 
 1816    else return "not ready";
 
 1818  else if (strcmp(request, 
"write") == 0)
 
 1821    else return "not ready";
 
 1823  else return "unknown status request";
 
 1842  fd_set  mask, fdmask;
 
 1849  struct timeval *wt_ptr=&wt;
 
 1857    wt.tv_sec  = timeout / 1000000;
 
 1858    wt.tv_usec = timeout % 1000000;
 
 1870  for(
i=L->
nr; 
i>=0; 
i--)
 
 1875      { 
WerrorS(
"all elements must be of type link"); 
return -2;}
 
 1878      { 
WerrorS(
"all links must be open"); 
return -2;}
 
 1879      if (((strcmp(
l->m->type,
"ssi")!=0) && (strcmp(
l->m->type,
"MPtcp")!=0))
 
 1880      || ((strcmp(
l->mode,
"fork")!=0) && (strcmp(
l->mode,
"tcp")!=0)
 
 1881        && (strcmp(
l->mode,
"launch")!=0) && (strcmp(
l->mode,
"connect")!=0)))
 
 1883        WerrorS(
"all links must be of type ssi:fork, ssi:tcp, ssi:connect");
 
 1886      if (strcmp(
l->m->type,
"ssi")==0)
 
 1892          FD_SET(d_fd, &fdmask);
 
 1893          if (d_fd > max_fd) max_fd=d_fd;
 
 1900        Werror(
"wrong link type >>%s<<",
l->m->type);
 
 1910  for(
k = 0; 
k < max_fd; 
k++)
 
 1912    if(FD_ISSET(
k, &fdmask))
 
 1919  s = si_select(max_fd, &mask, 
NULL, 
NULL, wt_ptr);
 
 1922    WerrorS(
"error in select call");
 
 1932    while (
j<=max_fd) { 
if (FD_ISSET(
j,&mask)) 
break; 
j++; }
 
 1933    for(
i=L->
nr; 
i>=0; 
i--)
 
 1938        if (strcmp(
l->m->type,
"ssi")==0)
 
 1946          Werror(
"wrong link type >>%s<<",
l->m->type);
 
 1963        for(
k = 0; 
k < max_fd; 
k++)
 
 1965          if(FD_ISSET(
k, &fdmask))
 
 1979          wt.tv_sec  = timeout / 1000000;
 
 1980          wt.tv_usec = (timeout % 1000000);
 
 1985      else if (isdigit(c))
 
 1989        Werror(
"unknown char in ssiLink(%d)",c);
 
 2003  sprintf(
buf,
"ssi:connect %s:%s",host,port);
 
 2037    WerrorS(
"ERROR already a reserved port requested");
 
 2044    WerrorS(
"ERROR opening socket");
 
 2057      WerrorS(
"ERROR on binding (no free port available?)");
 
 2073    WerrorS(
"ERROR no reserved port requested");
 
 2076  struct sockaddr_in cli_addr;
 
 2077  int clilen = 
sizeof(cli_addr);
 
 2078  int newsockfd = si_accept(
ssiReserved_sockfd, (
struct sockaddr *) &cli_addr, (socklen_t *)&clilen);
 
 2081    Werror(
"ERROR on accept (errno=%d)",errno);
 
 2086  si_link_extension prev = 
s;
 
 2087  while (strcmp(
s->type, 
"ssi") != 0)
 
 2089    if (
s->next == 
NULL)
 
 2116  d->
f_write = fdopen(newsockfd, 
"w");
 
 2147    kidpid = si_waitpid(-1, &
status, WNOHANG);
 
 2151      if (errno == EINTR) 
continue;
 
 2155    else if (kidpid==0) 
break; 
 
 2196  if ((type_id == 
RING_CMD) && (strncmp(
IDID(
h),
"ssiRing",7)==0))
 
 2212  memset(&tmp,0,
sizeof(tmp));
 
 2219    if ((strcmp(
IDID(
h), 
"Top") == 0)
 
 2220    || (strcmp(
IDID(
h), 
"Standard") == 0))
 
 2225    package p=(package)IDDATA(h);
 
 2232      D->arg1.data=
p->libname;
 
 2234      D->arg2.data=(
char*)
"with";
 
 2245      D->arg1.data=
p->libname;
 
 2280  && (strncmp(
IDID(
h),
"ssiRing",7)!=0))
 
static int si_max(const int a, const int b)
 
blackbox * getBlackboxStuff(const int t)
return the structure to the type given by t
 
int blackboxIsCmd(const char *n, int &tok)
used by scanner: returns ROOT_DECL for known types (and the type number in tok)
 
const CanonicalForm CFMap CFMap & N
 
Class used for (list of) interpreter objects.
 
INLINE_THIS void Init(int l=0)
 
VAR BOOLEAN singular_in_batchmode
 
static FORCE_INLINE number n_ReadFd(const ssiInfo *f, const coeffs r)
io via ssi:
 
static FORCE_INLINE void n_WriteFd(number a, const ssiInfo *f, const coeffs r)
io via ssi:
 
@ n_algExt
used for all algebraic extensions, i.e., the top-most extension in an extension tower is algebraic
 
@ n_transExt
used for all transcendental extensions, i.e., the top-most extension in an extension tower is transce...
 
coeffs nInitChar(n_coeffType t, void *parameter)
one-time initialisations for new coeffs in case of an error return NULL
 
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
 
static FORCE_INLINE int n_GetChar(const coeffs r)
Return the characteristic of the coeff. domain.
 
static FORCE_INLINE char * nCoeffName(const coeffs cf)
 
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
 
const CanonicalForm int s
 
const Variable & v
< [in] a sqrfree bivariate poly
 
void WerrorS(const char *s)
 
FILE * myfopen(const char *path, const char *mode)
 
const char * feSetOptValue(feOptIndex opt, char *optarg)
 
VAR char my_yylinebuf[80]
 
if(!FE_OPT_NO_SHELL_FLAG)(void) system(sys)
 
char * fe_fgets_dummy(const char *, char *, int)
 
char *(* fe_fgets_stdin)(const char *pr, char *s, int size)
 
idhdl enterid(const char *s, int lev, int t, idhdl *root, BOOLEAN init, BOOLEAN search)
 
EXTERN_VAR omBin sleftv_bin
 
char * iiGetLibProcBuffer(procinfo *pi, int part)
 
idhdl rFindHdl(ring r, idhdl n)
 
BOOLEAN nc_CallPlural(matrix cc, matrix dd, poly cn, poly dn, ring r, bool bSetupQuotient, bool bCopyInput, bool bBeQuiet, ring curr, bool dummy_ring=false)
returns TRUE if there were errors analyze inputs, check them for consistency detects nc_type,...
 
matrix mpNew(int r, int c)
create a r x c zero-matrix
 
#define MATELEM(mat, i, j)
1-based access to matrix
 
void rem(unsigned long *a, unsigned long *q, unsigned long p, int °a, int degq)
 
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
 
The main handler for Singular numbers which are suitable for Singular polynomials.
 
number ndReadFd(const ssiInfo *, const coeffs r)
 
coeffs nFindCoeffByName(char *cf_name)
find an existing coeff by its "CoeffName"
 
#define omFreeSize(addr, size)
 
#define omFreeBin(addr, bin)
 
#define omFreeBinAddr(addr)
 
static int pLength(poly a)
 
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 long p_SetComp(poly p, unsigned long c, ring r)
 
static void p_Setm(poly p, const ring r)
 
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent @Note: the integer VarOffset encodes:
 
static void p_Delete(poly *p, const ring r)
 
static poly p_Init(const ring r, omBin bin)
 
void rChangeCurrRing(ring r)
 
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
 
void PrintS(const char *s)
 
void Werror(const char *fmt,...)
 
BOOLEAN rComplete(ring r, int force)
this needs to be called whenever a new ring is created: new fields in ring are created (like VarOffse...
 
static unsigned long rGetExpSize(unsigned long bitmask, int &bits)
 
void rDelete(ring r)
unconditionally deletes fields in r
 
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,...
 
static BOOLEAN rField_is_Zp(const ring r)
 
static n_coeffType rFieldType(const ring r)
the type of the coefficient filed of r (n_Zp, n_Q, etc)
 
static BOOLEAN rIsPluralRing(const ring r)
we must always have this test!
 
static ring rIncRefCnt(ring r)
 
static BOOLEAN rIsLPRing(const ring r)
 
@ ringorder_a64
for int64 weights
 
@ ringorder_aa
for idElimination, like a, except pFDeg, pWeigths ignore it
 
@ ringorder_IS
Induced (Schreyer) ordering.
 
static BOOLEAN rField_is_Q(const ring r)
 
static short rVar(const ring r)
#define rVar(r) (r->N)
 
s_buff s_open_by_name(const char *n)
 
int s_readbytes(char *buff, int len, s_buff F)
 
void s_ungetc(int c, s_buff F)
 
poly sBucketPeek(sBucket_pt b)
 
ring sBucketGetRing(const sBucket_pt bucket)
Returns bucket ring.
 
VAR int sem_acquired[SIPC_MAX_SEMAPHORES]
 
static int SI_LOG2(int v)
 
int status int void * buf
 
VAR omBin s_si_link_extension_bin
 
BOOLEAN slClose(si_link l)
 
BOOLEAN slInit(si_link l, char *istr)
 
BOOLEAN slOpen(si_link l, short flag, leftv h)
 
#define SI_LINK_W_OPEN_P(l)
 
leftv(* slRead2Proc)(si_link l, leftv a)
 
#define SI_LINK_SET_CLOSE_P(l)
 
#define SI_LINK_R_OPEN_P(l)
 
#define SI_LINK_SET_RW_OPEN_P(l)
 
#define SI_LINK_SET_OPEN_P(l, flag)
 
#define SI_LINK_OPEN_P(l)
 
#define SI_LINK_CLOSE_P(l)
 
ideal idInit(int idsize, int rank)
initialise an ideal / module
 
#define SIPC_MAX_SEMAPHORES
 
number ssiReadNumber(ssiInfo *d)
 
void ssiWriteList(si_link l, lists dd)
 
void ssiWriteBigInt(const ssiInfo *d, const number n)
 
si_link_extension slInitSsiExtension(si_link_extension s)
 
void ssiCheckCurrRing(const ring r)
 
void ssiWriteIntvec(const ssiInfo *d, intvec *v)
 
poly ssiReadPoly(ssiInfo *d)
 
STATIC_VAR int ssiReserved_P
 
BOOLEAN ssiDump(si_link l)
 
void ssiWriteNumber(const ssiInfo *d, const number n)
 
BOOLEAN ssiSetCurrRing(const ring r)
 
STATIC_VAR int ssiReserved_sockfd
 
const char * slStatusSsi(si_link l, const char *request)
 
static BOOLEAN ssiDumpIter(si_link l, idhdl h)
 
number ssiReadNumber_CF(const ssiInfo *d, const coeffs cf)
 
VAR link_list ssiToBeClosed
 
STATIC_VAR int ssiReserved_Clients
 
void sig_chld_hdl(int)
additional default signal handler
 
void ssiWriteRing(ssiInfo *d, const ring r)
 
void ssiWriteProc(const ssiInfo *d, procinfov p)
 
void ssiWriteString(const ssiInfo *d, const char *s)
 
void ssiReadAttrib(leftv res, si_link l)
 
char * ssiReadString(const ssiInfo *d)
 
BOOLEAN ssiClose(si_link l)
 
void ssiWriteIdeal_R(const ssiInfo *d, int typ, const ideal I, const ring r)
 
void ssiWriteBigintmat(const ssiInfo *d, bigintmat *v)
 
poly ssiReadPoly_R(const ssiInfo *D, const ring r)
 
void ssiWriteCommand(si_link l, command D)
 
int ssiReadInt(s_buff fich)
 
EXTERN_VAR si_link_extension si_link_root
 
ideal ssiReadIdeal(ssiInfo *d)
 
bigintmat * ssiReadBigintmat(const ssiInfo *d)
 
lists ssiReadList(si_link l)
 
ring ssiReadRing(const ssiInfo *d)
 
int slStatusSsiL(lists L, int timeout)
 
void ssiWriteNumber_CF(const ssiInfo *d, const number n, const coeffs cf)
 
number ssiReadBigInt(const ssiInfo *d)
 
void ssiWriteIdeal(const ssiInfo *d, int typ, const ideal I)
 
BOOLEAN ssiPrepClose(si_link l)
 
BOOLEAN ssiOpen(si_link l, short flag, leftv u)
 
void ssiWriteRing_R(ssiInfo *d, const ring r)
 
BOOLEAN ssiWrite(si_link l, leftv data)
 
BOOLEAN ssiGetDump(si_link l)
 
static BOOLEAN DumpSsiIdhdl(si_link l, idhdl h)
 
procinfov ssiReadProc(const ssiInfo *d)
 
ideal ssiReadIdeal_R(const ssiInfo *d, const ring r)
 
command ssiReadCommand(si_link l)
 
STATIC_VAR struct sockaddr_in ssiResverd_serv_addr
 
void ssiReadBlackbox(leftv res, si_link l)
 
BOOLEAN ssiSetRing(si_link l, ring r, BOOLEAN send)
 
int ssiBatch(const char *host, const char *port)
 
VAR volatile BOOLEAN ssiToBeClosed_inactive
 
void ssiWriteInt(const ssiInfo *d, const int i)
 
intvec * ssiReadIntvec(const ssiInfo *d)
 
intvec * ssiReadIntmat(const ssiInfo *d)
 
matrix ssiReadMatrix(ssiInfo *d)
 
void ssiWritePoly(const ssiInfo *d, int typ, poly p)
 
void ssiWriteIntmat(const ssiInfo *d, intvec *v)
 
void ssiReadRingProperties(si_link l)
 
int ssiReservePort(int clients)
 
void ssiWritePoly_R(const ssiInfo *d, int typ, poly p, const ring r)
 
leftv ssiRead1(si_link l)
 
int name
New type name for int.
 
struct for passing initialization parameters to naInitChar