95 if (0 == strcmp(s,h->
name))
129 void *
atGet(
idhdl root,
const char * name,
int t,
void *defaultReturnValue)
132 if ((temp!=
NULL) && (temp->
atyp==t))
135 return defaultReturnValue;
144 if ((temp!=
NULL) && (temp->
atyp==t))
156 WerrorS(
"cannot set ring-dependend objects at this type");
169 WerrorS(
"cannot set attributes of this object");
172 WerrorS(
"cannot set ring-dependend objects at this type");
175 *a=(*a)->
set(name,data,typ);
188 attr temp =
this,temp1;
212 while (temp1->
next!=temp) temp1 = temp1->
next;
236 WerrorS(
"this object cannot have attributes");
245 PrintS(
"attr:isSB, type int\n");
246 haveNoAttribute=
FALSE;
250 PrintS(
"attr:qringNF, type int\n");
251 haveNoAttribute=
FALSE;
255 PrintS(
"attr:cf_class, type int\n");
256 PrintS(
"attr:global, type int\n");
257 PrintS(
"attr:maxExp, type int\n");
258 PrintS(
"attr:ring_cf, type int\n");
260 PrintS(
"attr:isLetterplaceRing, type int\n");
263 haveNoAttribute=
FALSE;
272 else if(haveNoAttribute)
PrintS(
"no attributes\n");
277 char *name=(
char *)b->
Data();
282 if (strcmp(name,
"isSB")==0)
288 else if ((strcmp(name,
"rank")==0)&&(t==
MODUL_CMD))
291 res->
data=(
void *)(((ideal)v->
Data())->rank);
293 else if ((strcmp(name,
"global")==0)
297 res->
data=(
void *)(((ring)v->
Data())->OrdSgn==1);
299 else if ((strcmp(name,
"maxExp")==0)
303 res->
data=(
void *)(
long)(((ring)v->
Data())->bitmask/2);
305 else if ((strcmp(name,
"ring_cf")==0)
311 else if ((strcmp(name,
"cf_class")==0)
318 res->
data=(
void *)(
long)(cf->type);
320 else if (strcmp(name,
"qringNF")==0)
327 else if ((strcmp(name,
"isLetterplaceRing")==0)
331 res->
data=(
void *)(
long)(((ring)v->
Data())->isLPring);
339 WerrorS(
"this object cannot have attributes");
369 char *name=(
char *)b->
Data();
370 if (strcmp(name,
"isSB")==0)
374 WerrorS(
"attribute isSB must be int");
377 if (((
long)c->
Data())!=0L)
388 else if (strcmp(name,
"qringNF")==0)
392 WerrorS(
"attribute qringNF must be int");
395 if (((
long)c->
Data())!=0L)
406 else if ((strcmp(name,
"rank")==0)&&(t==
MODUL_CMD))
410 WerrorS(
"attribute `rank` must be int");
413 ideal I=(ideal)v->
Data();
417 else if (((strcmp(name,
"global")==0)
418 || (strcmp(name,
"cf_class")==0)
419 || (strcmp(name,
"ring_cf")==0)
420 || (strcmp(name,
"maxExp")==0))
423 Werror(
"can not set attribute `%s`",name);
427 else if ((strcmp(name,
"isLetterplaceRing")==0)
431 ((ring)v->
Data())->isLPring=(
int)(long)c->
Data();
434 WerrorS(
"attribute `isLetterplaceRing` must be int");
469 WerrorS(
"object must have a name");
472 char *name=(
char *)b->
Data();
473 if (strcmp(name,
"isSB")==0)
478 else if (strcmp(name,
"global")==0)
480 WerrorS(
"can not set attribut `global`");
const CanonicalForm int s
#define omCheckAddrSize(addr, size)
Class used for (list of) interpreter objects.
void killAll(const ring r)
Compatiblity layer for legacy polynomial operations (over currRing)
attr set(char *s, void *data, int t)
void at_KillAll(idhdl root, const ring r)
void WerrorS(const char *s)
BOOLEAN atKILLATTR2(leftv, leftv a, leftv b)
BOOLEAN atKILLATTR1(leftv, leftv a)
BOOLEAN atATTRIB2(leftv res, leftv v, leftv b)
void at_Kill(idhdl root, const char *name, const ring r)
long id_RankFreeModule(ideal s, ring lmRing, ring tailRing)
return the maximal component number found in any polynomial in s
const CanonicalForm CFMap CFMap & N
BOOLEAN atATTRIB3(leftv, leftv v, leftv b, leftv c)
The main handler for Singular numbers which are suitable for Singular polynomials.
void s_internalDelete(const int t, void *d, const ring r)
void atSet(idhdl root, char *name, void *data, int typ)
static int si_max(const int a, const int b)
void PrintS(const char *s)
BOOLEAN atATTRIB1(leftv res, leftv v)
#define omGetSpecBin(size)
const Variable & v
< [in] a sqrfree bivariate poly
void * atGet(idhdl root, const char *name, int t, void *defaultReturnValue)
static BOOLEAN rField_is_Ring(const ring r)
const char * Tok2Cmdname(int tok)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
#define omCheckAddr(addr)
static void attr_free(attr h, const ring r=currRing)
#define omFreeBin(addr, bin)
void Werror(const char *fmt,...)