 |
My Project
debian-1:4.1.1-p2+ds-4build2
|
Class used for (list of) interpreter objects.
More...
#include <subexpr.h>
Class used for (list of) interpreter objects.
Definition at line 82 of file subexpr.h.
◆ Attribute()
attr * sleftv::Attribute |
( |
| ) |
|
◆ CleanUp()
void sleftv::CleanUp |
( |
ring |
r = currRing | ) |
|
◆ Copy()
void sleftv::Copy |
( |
leftv |
e | ) |
|
Definition at line 684 of file subexpr.cc.
688 void *d=source->Data();
692 if ((source->attribute!=
NULL)||(source->e!=
NULL))
695 if (source->next!=
NULL)
◆ CopyA()
◆ CopyD() [1/2]
◆ CopyD() [2/2]
void * sleftv::CopyD |
( |
int |
t | ) |
|
◆ Data()
Definition at line 1134 of file subexpr.cc.
1145 return ((
idhdl)
h->data.ustring)->
data.ustring;
1166 return (
void *)
A->qideal->m[0];
1169 return (
void *)
nInit(0);
1209 r=(
char *)(
long)((*iv)[
index-1]);
1217 ||(
e->next->start<1)
1218 ||(
e->next->start>iv->
cols()))
1221 Werror(
"wrong range[%d,%d] in intmat %s(%dx%d)",
index,
e->next->start,
1222 this->Name(),iv->
rows(),iv->
cols());
1233 ||(
e->next->start<1)
1234 ||(
e->next->start>
m->cols()))
1237 Werror(
"wrong range[%d,%d] in bigintmat %s(%dx%d)",
index,
e->next->start,
1238 this->Name(),
m->rows(),
m->cols());
1250 ||(
e->next->start<1)
1251 ||(
e->next->start>
m->cols()))
1254 Werror(
"wrong range[%d,%d] in matrix %s(%dx%d)",
index,
e->next->start,
1255 this->Name(),
m->rows(),
m->cols());
1259 iiNumber2Data[iiCmatrix_index].cf=
m->basecoeffs();
1261 r=(
char*)&iiNumber2Data[iiCmatrix_index];
1262 iiCmatrix_index=(iiCmatrix_index+1) % 4;
1278 r=(
char *)I->m[
index-1];
1290 if ((
index>0)&& (
index<=(int)strlen((
char *)d)))
1292 r[0]=*(((
char *)d)+
index-1);
1307 memcpy(
this,&tmp,
sizeof(tmp));
1327 ||(
e->next->start<1)
1331 Werror(
"wrong range[%d,%d] in matrix %s(%dx%d)",
1356 char *dd=(
char *)
l->m[
index-1].data;
1357 int j=
e->next->start-1;
1359 if ((
j>=0) && (
j<(
int)strlen(dd)))
1371 Subexpr tmp=
l->m[
index-1].e;
1373 r=(
char *)
l->m[
index-1].Data();
◆ Eval()
Definition at line 1752 of file subexpr.cc.
1774 char *what=(
char *)(d->arg1.Data());
1792 else if (d->op==
'=')
1800 const char *n=d->arg1.name;
1801 nok=(n ==
NULL) || d->arg2.Eval();
1804 int save_typ=d->arg1.rtyp;
1806 if (d->arg1.rtyp!=
IDHDL)
1809 if (d->arg1.rtyp==
IDHDL)
1824 memcpy(&d->arg1,&t,
sizeof(
sleftv));
1826 nok=nok||
iiAssign(&d->arg1,&d->arg2);
1831 memset(&d->arg1,0,
sizeof(
sleftv));
1843 if ((toktype==
CMD_M)
1849 if (d->argc>=1) nok=d->arg1.Eval();
1850 if ((!nok) && (d->argc>=2))
1854 memcpy(d->arg1.next,&d->arg2,
sizeof(
sleftv));
1857 if ((!nok) && (d->argc==3))
1861 memcpy(d->arg1.next->next,&d->arg3,
sizeof(
sleftv));
1875 else if (d->argc==1)
1883 nok=nok||d->arg2.Eval();
1889 nok=nok||d->arg2.Eval();
1890 nok=nok||d->arg3.Eval();
1891 nok=nok||
iiExprArith3(&tmp,d->op,&d->arg1,&d->arg2,&d->arg3);
1903 memcpy(
this,&tmp,
sizeof(tmp));
1931 ideal
id=(ideal)
Data();
1933 int i=
id->ncols*
id->nrows-1;
◆ Fullname()
const char* sleftv::Fullname |
( |
| ) |
|
|
inline |
◆ Init()
Definition at line 107 of file subexpr.h.
107 { memset(
this,0,
sizeof(*
this)); }
◆ LData()
Definition at line 1403 of file subexpr.cc.
1427 if ((0>=
e->start)||(
e->start>
l->nr+1))
1431 l->m[
e->start-1].e=
e->next;
1432 leftv r=
l->m[
e->start-1].LData();
1436 return &(
l->m[
e->start-1]);
◆ listLength()
int sleftv::listLength |
( |
| ) |
|
◆ LTyp()
Definition at line 1098 of file subexpr.cc.
1112 if ((0<
e->start)&&(
e->start<=
l->nr+1))
1114 l->m[
e->start-1].e=
e->next;
1115 r=
l->m[
e->start-1].LTyp();
◆ Name()
const char* sleftv::Name |
( |
| ) |
|
|
inline |
◆ Next()
◆ Print()
void sleftv::Print |
( |
leftv |
store = NULL , |
|
|
int |
spaces = 0 |
|
) |
| |
Called by type_cmd (e.g. "r;") or as default in jPRINT.
Definition at line 68 of file subexpr.cc.
77 ch[0]=c->op;ch[1]=
'\0';
80 ::Print(
"##command %d(%s), %d args\n",
83 c->arg1.Print(
NULL,spaces+2);
87 c->arg2.Print(
NULL,spaces+2);
89 c->arg3.Print(
NULL,spaces+2);
132 ((
intvec *)d)->show(t,spaces);
137 const ring r = (
const ring)d;
273 l->m[
i].Print(
NULL,spaces+3);
285 if (bb!=
NULL) { bb->blackbox_Print(bb,d); }
286 else {
::Print(
"Print: blackbox %d(bb=NULL)",t); }
291 if ((store!=
NULL)&&(store!=
this))
◆ RingDependend()
◆ String()
Called for conversion to string (used by string(..), write(..),..)
Definition at line 747 of file subexpr.cc.
774 sprintf(
s,
"int(%d)",(
int)(
long)d);
779 sprintf(
s,
"%d",(
int)(
long)d);
791 s = (
char*)
omAlloc(strlen((
char*) d) + 3);
792 sprintf(
s,
"\"%s\"", (
char*) d);
805 s = (
char*)
omAlloc(strlen(ps) + 10);
806 sprintf(
s,
"%s(%s)", (t ==
POLY_CMD ?
"poly" :
"vector"), ps);
817 return n2String((number2)d,typed);
851 char* ns = (
char*)
omAlloc(strlen(
s) + 40);
852 sprintf(ns,
"matrix(ideal(%s),%d,%d)",
s,
868 char* ns = (
char*)
omAlloc(strlen(
s) + 10);
869 sprintf(ns,
"%s(%s)", (t==
MODUL_CMD ?
"module" :
"ideal"),
s);
886 ns = (
char*)
omAlloc(strlen(
s) + 40);
887 sprintf(ns,
"intmat(intvec(%s),%d,%d)",
s,
v->rows(),
v->cols());
891 ns = (
char*)
omAlloc(strlen(
s) + 10);
892 sprintf(ns,
"intvec(%s)",
s);
907 char* ns = (
char*)
omAlloc0(strlen(
s) + 40);
908 sprintf(ns,
"bigintmat(bigintvec(%s),%d,%d)",
s, bim->
rows(), bim->
cols());
927 ns = (
char*)
omAlloc(strlen(
s) + strlen(
id) + 20);
928 sprintf(ns,
"\"%s\";%sideal(%s)",
s,(
dim == 2 ?
"\n" :
" "),
id);
932 ns = (
char*)
omAlloc(strlen(
s) + 4);
933 sprintf(ns,
"\"%s\"",
s);
952 s = (
pi->data.s.body);
957 char* ns = (
char*)
omAlloc(strlen(
s) + 4);
958 sprintf(ns,
"\"%s\"",
s);
969 char* ns = (
char*)
omAlloc(strlen(
s) + 10);
970 sprintf(ns,
"link(\"%s\")",
s);
984 if (bb!=
NULL)
return bb->blackbox_String(bb,d);
◆ Typ()
Definition at line 992 of file subexpr.cc.
1003 return ((
idhdl)
h->data.ustring)->typ;
1076 if ((0<
e->start)&&(
e->start<=
l->nr+1))
1078 Subexpr tmp=
l->m[
e->start-1].e;
1079 l->m[
e->start-1].e=
e->next;
1080 r=
l->m[
e->start-1].Typ();
1081 e->next=
l->m[
e->start-1].e;
1082 l->m[
e->start-1].e=tmp;
◆ attribute
◆ data
◆ flag
◆ name
◆ next
◆ req_packhdl
◆ rtyp
The documentation for this class was generated from the following files:
#define omCheckAddrSize(addr, size)
void killAll(const ring r)
void StringAppendS(const char *st)
char * String()
IO: String returns a singular string containing the matrix, needs freeing afterwards.
#define MATELEM(mat, i, j)
void Print(leftv store=NULL, int spaces=0)
Called by type_cmd (e.g. "r;") or as default in jPRINT.
BOOLEAN iiExprArith1(leftv res, leftv a, int op)
BOOLEAN iiMake_proc(idhdl pn, package pack, leftv sl)
static FORCE_INLINE char * nCoeffString(const coeffs cf)
TODO: make it a virtual method of coeffs, together with: Decompose & Compose, rParameter & rPar.
void paPrint(const char *n, package p)
static char * slString(si_link l)
BOOLEAN iiExprArithM(leftv res, leftv a, int op)
int iiDeclCommand(leftv sy, leftv name, int lev, int t, idhdl *root, BOOLEAN isring, BOOLEAN init_b)
const char * slStatus(si_link l, const char *request)
static FORCE_INLINE BOOLEAN nCoeff_is_GF(const coeffs r)
Class used for (list of) interpreter objects.
void iiWriteMatrix(matrix im, const char *n, int dim, const ring r, int spaces)
set spaces to zero by default
static void * s_internalCopy(const int t, void *d)
const char * iiTwoOps(int t)
void * slInternalCopy(leftv source, const int t, void *d, Subexpr e)
static omBin size_two_bin
static poly p_Copy(poly p, const ring r)
returns a copy of p
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
const char * piProcinfo(procinfov pi, const char *request)
static FORCE_INLINE void n_Write(number n, const coeffs r, const BOOLEAN bShortOut=TRUE)
void PrintS(const char *s)
static FORCE_INLINE BOOLEAN nCoeff_is_algExt(const coeffs r)
TRUE iff r represents an algebraic extension field.
void syMake(leftv v, const char *id, package pa)
#define omFreeBinAddr(addr)
BOOLEAN lRingDependend(lists L)
void syPrint(syStrategy syzstr, const char *currRingName)
void killhdl(idhdl h, package proot)
void nfShowMipo(const coeffs r)
Show the mininimal polynom.... NOTE: this is used by char * sleftv::String(void *d,...
BOOLEAN iiExprArith3(leftv res, int op, leftv a, leftv b, leftv c)
void CleanUp(ring r=currRing)
void jjNormalizeQRingId(leftv I)
#define IMATELEM(M, I, J)
static BOOLEAN rField_is_GF(const ring r)
char * String(void *d=NULL, BOOLEAN typed=FALSE, int dim=1)
Called for conversion to string (used by string(..), write(..),..)
BOOLEAN iiExprArith2(leftv res, leftv a, int op, leftv b, BOOLEAN proccall)
void rWrite(ring r, BOOLEAN details)
void StringSetS(const char *st)
void Werror(const char *fmt,...)
char * lString(lists l, BOOLEAN typed, int dim)
#define omCheckIf(cond, test)
#define BIMATELEM(M, I, J)
BOOLEAN iiCheckRing(int i)
void s_internalDelete(const int t, void *d, const ring r)
const Variable & v
< [in] a sqrfree bivariate poly
#define omCheckAddr(addr)
idhdl ggetid(const char *n)
const CanonicalForm int s
const char * Tok2Cmdname(int tok)
void jjNormalizeQRingP(poly &p)
#define pCopy(p)
return a copy of the poly
lists syConvRes(syStrategy syzstr, BOOLEAN toDel, int add_row_shift)
#define n_Test(a, r)
BOOLEAN n_Test(number a, const coeffs r)
#define omFreeBin(addr, bin)
blackbox * getBlackboxStuff(const int t)
return the structure to the type given by t
void PrintNSpaces(const int n)
static int index(p_Length length, p_Ord ord)
BOOLEAN iiAssign(leftv l, leftv r, BOOLEAN toplevel)
char * iiStringMatrix(matrix im, int dim, const ring r, char ch)