92 #define NC_MASK (3+64)
98#define ZERODIVISOR_MASK 8
104#define NO_ZERODIVISOR 8
105#define ALLOW_ZERODIVISOR 0
107#define ALLOW_NC ALLOW_LP|ALLOW_PLURAL
109#define ALLOW_ZZ (ALLOW_RING|NO_ZERODIVISOR)
115#define NO_CONVERSION 32
119#define bit31 SIZEOF_LONG*8-1
204extern int iiArithAddCmd(
const char *szName,
short nAlias,
short nTokval,
205 short nToktype,
short nPos=-1);
215#define ii_div_by_0 "div. by 0"
224 if ((
long)
i==
l)
return l;
245 long bb = (long)(
v->Data());
250 case '+': cc=
bimAdd(aa,bb);
break;
251 case '-': cc=
bimSub(aa,bb);
break;
252 case '*': cc=
bimMult(aa,bb);
break;
254 res->data=(
char *)cc;
264 number bb = (number)(
v->Data());
271 res->data=(
char *)cc;
281 int bb = (int)(
long)(
v->Data());
285 case '+': (*aa) += bb;
break;
286 case '-': (*aa) -= bb;
break;
287 case '*': (*aa) *= bb;
break;
290 case '%': (*aa) %= bb;
break;
292 res->data=(
char *)aa;
302 int bb = (int)(
long)(
v->Data());
311 res->data=(
char *)aa;
320 int l=(int)(
long)
v->Data();
323 int d=(int)(
long)u->
Data();
326 for(
i=
l-1;
i>=0;
i--) { (*vv)[
i]=d; }
327 res->data=(
char *)vv;
333 res->data=(
char *)
new intvec((
int)(long)u->
Data(),(int)(
long)
v->Data());
345 res->data = (
char *) (r<0);
348 res->data = (
char *) (r>0);
351 res->data = (
char *) (r<=0);
354 res->data = (
char *) (r>=0);
358 res->data = (
char *) (r==0);
362 if(r==-2) {
WerrorS(
"size incompatible");
return TRUE; }
374 res->data = (
char *) (r<0);
377 res->data = (
char *) (r>0);
380 res->data = (
char *) (r<=0);
383 res->data = (
char *) (r>=0);
388 res->data = (
char *) (r==0);
392 if(r==-2) {
WerrorS(
"size incompatible");
return TRUE; }
398 int b = (int)(
long)(
v->Data());
403 res->data = (
char *) (r<0);
406 res->data = (
char *) (r>0);
409 res->data = (
char *) (r<=0);
412 res->data = (
char *) (r>=0);
416 res->data = (
char *) (r==0);
431 res->data = (
char *) (
long)(r < 0);
434 res->data = (
char *) (
long)(r > 0);
437 res->data = (
char *) (
long)(r <= 0);
440 res->data = (
char *) (
long)(r >= 0);
444 res->data = (
char *)(
long) (r == 0);
452 poly
p=(poly)u->
Data();
453 poly q=(poly)
v->Data();
458 res->data = (
char *) (r < 0);
461 res->data = (
char *) (r > 0);
464 res->data = (
char *) (r <= 0);
467 res->data = (
char *) (r >= 0);
479 char* a = (
char * )(u->
Data());
480 char*
b = (
char * )(
v->Data());
512 else if (
v->Next()!=
NULL)
522 long b=(long)u->
Data();
523 long e=(long)
v->Data();
532 else if ((e==0)||(
b==1))
550 if(rc/
b!=oldrc) overflow=
TRUE;
554 WarnS(
"int overflow(^), result may be wrong");
556 res->data = (
char *)rc;
562 WerrorS(
"exponent must be non-negative");
568 int e=(int)(
long)
v->Data();
569 number n=(number)u->
Data();
576 WerrorS(
"exponent must be non-negative");
584 int e=(int)(
long)
v->Data();
585 number n=(number)u->
Data();
602 int v_i=(int)(
long)
v->Data();
605 WerrorS(
"exponent must be non-negative");
614 Werror(
"OVERFLOW in power(d=%ld, e=%d, max=%ld)",
657 res->data =
v->CopyD();
658 res->rtyp =
v->Typ();
698 if(isupper(u->
name[0]))
700 const char *c=u->
name+1;
701 while((*c!=
'\0')&&(islower(*c)||(isdigit(*c))||(*c==
'_'))) c++;
706 Print(
"%s of type 'ANY'. Trying load.\n", u->
name);
722 package pa=(package)u->Data();
736 WerrorS(
"reserved name with ::");
748 WerrorS(
"<package>::<id> expected");
755 unsigned long a=(
unsigned long)u->
Data();
756 unsigned long b=(
unsigned long)
v->Data();
758 res->data = (
char *)((
long)c);
761 WarnS(
"int overflow(+), result may be wrong");
772 res->data = (
char *)(
nAdd((number)u->
Data(), (number)
v->Data()));
807 WerrorS(
"intmat size not compatible");
817 WerrorS(
"bigintmat/cmatrix not compatible");
828 Werror(
"matrix size not compatible(%dx%d, %dx%d)",
836 ideal
A=(ideal)u->
Data(); ideal
B=(ideal)
v->Data();
840 Werror(
"matrix size not compatible(%dx%d, %dx%d)",
863 char* a = (
char * )(u->
Data());
864 char*
b = (
char * )(
v->Data());
865 char* r = (
char * )
omAlloc(strlen(a) + strlen(
b) + 1);
873 res->data = (
char *)
idAdd((ideal)u->
Data(),(ideal)
v->Data());
878 void *
ap=u->
Data();
void *bp=
v->Data();
882 unsigned long a=(
unsigned long)
ap;
883 unsigned long b=(
unsigned long)bp;
887 WarnS(
"int overflow(-), result may be wrong");
889 res->data = (
char *)cc;
899 res->data = (
char *)(
nSub((number)u->
Data(), (number)
v->Data()));
935 WerrorS(
"intmat size not compatible");
945 WerrorS(
"bigintmat/cmatrix not compatible");
956 Werror(
"matrix size not compatible(%dx%d, %dx%d)",
965 ideal
A=(ideal)u->
Data(); ideal
B=(ideal)
v->Data();
969 Werror(
"matrix size not compatible(%dx%d, %dx%d)",
978 long a=(long)u->
Data();
979 long b=(long)
v->Data();
981 if ((a!=0)&&(c/a!=
b))
982 WarnS(
"int overflow(*), result may be wrong");
983 res->data = (
char *)c;
997 res->data = (
char *)(
nMult( (number)u->
Data(), (number)
v->Data()));
998 number n=(number)
res->data;
1000 res->data=(
char *)n;
1019 Warn(
"possible OVERFLOW in mult(d=%ld, d=%ld, max=%ld)",
1032 Warn(
"possible OVERFLOW in mult(d=%ld, d=%ld, max=%ld)",
1064 WerrorS(
"intmat size not compatible");
1076 WerrorS(
"bigintmat/cmatrix not compatible");
1090 res->data = (
char *)I;
1103 res->data = (
char *)I;
1112 res->data = (
char *)I;
1141 Werror(
"matrix size not compatible(%dx%d, %dx%d) in *",
1151 ideal
A=(ideal)u->
Data(); ideal
B=(ideal)
v->Data();
1155 Werror(
"matrix size not compatible(%dx%d, %dx%d) in *",
1172 res->data = (
char *)(
long)((int)((
long)u->
Data()) >= (
int)((long)
v->Data()));
1190 res->data = (
char *)(
long)((int)((
long)u->
Data()) > (
int)((long)
v->Data()));
1204 res->data = (
char *)(
long)((int)((
long)u->
Data()) <= (
int)((long)
v->Data()));
1217 res->data = (
char *)(
long)((int)((
long)u->
Data()) < (
int)((long)
v->Data()));
1227 long a= (long)u->
Data();
1228 long b= (long)
v->Data();
1242 r=((a-c) /
b);
break;
1244 res->data=(
void *)r;
1249 number q=(number)
v->Data();
1257 res->data = (
char *)q;
1262 number q=(number)
v->Data();
1270 res->data = (
char *)q;
1275 poly q=(poly)
v->Data();
1276 poly
p=(poly)(u->
Data());
1293 poly q=(poly)
v->Data();
1317 res->data=(
char *)mm;
1328 res->data = (
char *)((
int)((long)u->
Data()) == (
int)((long)
v->Data()));
1346 res->data = (
char *)(
long)(u->
Data()==
v->Data());
1352 res->data = (
char *)((
long)
nEqual((number)u->
Data(),(number)
v->Data()));
1358 poly
p=(poly)u->
Data();
1359 poly q=(poly)
v->Data();
1379 res->data = (
char *)((
long)u->
Data() && (long)
v->Data());
1384 res->data = (
char *)((
long)u->
Data() || (long)
v->Data());
1397 while (sh->next !=
NULL) sh=sh->next;
1413 WerrorS(
"indexed object must have a name");
1424 t.
data=(
char *)((
long)(*iv)[
i]);
1447 poly
p=(poly)u->
Data();
1448 long i=(long)
v->Data();
1468 long i=(long)
v->Data();
1487 poly
p=(poly)u->
Data();
1495 while ((
p!=
NULL) && (sum>0))
1511 res->data=(
char *)r;
1516 poly
p=(poly)u->
Data();
1517 int i=(int)(
long)
v->Data();
1552 res->data=(
char *)r;
1560 long slen = strlen(u->
name) + 14;
1561 char *nn = (
char*)
omAlloc(slen);
1562 snprintf(nn,slen,
"%s(%d)",u->
name,(
int)(
long)
v->Data());
1575 long slen = strlen(u->
name) + 14;
1576 char *n = (
char*)
omAlloc(slen);
1589 snprintf(n,slen,
"%s(%d)",u->
name,(*iv)[
i]);
1610 while (
h->next!=
NULL)
h=
h->next;
1624 tmp_proc->
id=
"_auto";
1628 d=u->
data; u->
data=(
void *)tmp_proc;
1645 if (sl)
return TRUE;
1684 number *
x=(number *)
omAlloc(rl*
sizeof(number));
1685 number *q=(number *)
omAlloc(rl*
sizeof(number));
1687 for(
i=rl-1;
i>=0;
i--)
1694 for(
i=rl-1;
i>=0;
i--)
1700 res->data=(
char *)n;
1710 number *
x=(number *)
omAlloc(rl*
sizeof(number));
1711 number *q=(number *)
omAlloc(rl*
sizeof(number));
1713 for(
i=rl-1;
i>=0;
i--)
1719 for(
i=rl-1;
i>=0;
i--)
1723 Werror(
"poly expected at pos %d",
i+1);
1724 for(
i=rl-1;
i>=0;
i--)
1736 for(
i=rl-1;
i>=0;
i--)
1748 number n=n_ChineseRemainder(
x,q,rl,
currRing->cf);
1749 for(
i=rl-1;
i>=0;
i--)
1757 for(
i=rl-1;
i>=0;
i--)
1769 long s=(long)
v->Data();
1778 ideal
M=(ideal)u->
CopyD();
1779 int s=(int)(
long)
v->Data();
1792 poly
p=(poly)
v->Data();
1799 poly
p=(poly)
v->Data();
1806 int i=
pVar((poly)
v->Data());
1825 (ideal)(
v->Data()),
p);
1837 ideal I=(ideal)u->
Data();
1842 res->data = (
char *)((
long)d);
1847 poly
p=(poly)u->
Data();
1853 res->data = (
char *)(d);
1856 res->data=(
char *)(
long)(-1);
1861 int pos=(int)(
long)
v->Data();
1868 int pos=(int)(
long)
v->Data();
1869 ideal I=(ideal)u->
Data();
1876 ideal I=(ideal)u->
Data();
1903 ideal
m=(ideal)u->
Data();
1909 int i=
pVar((poly)
v->Data());
1920 int i=
pVar((poly)
v->Data());
1939 Warn(
"dim(%s,...) may be wrong because the mixed monomial ordering",
v->Name());
1953 ideal vi=(ideal)
v->Data();
1955 ideal ui=(ideal)u->
Data();
1968 res->data=(
char *)L;
2005 number uu=(number)u->
Data();number vv=(number)
v->Data();
2014 res->data=(
char *)L;
2019 int uu=(int)(
long)u->
Data();
int vv=(int)(
long)
v->Data();
2020 int p0=
ABS(uu),p1=
ABS(vv);
2021 int f0 = 1, f1 = 0, g0 = 0, g1 = 1, q, r;
2042 res->data=(
char *)L;
2049 if (ret)
return TRUE;
2052 res->data=(
char *)L;
2053 L->
m[0].
data=(
void *)r;
2065 int sw=(int)(
long)dummy->
Data();
2067 if ((sw<0)||(sw>2)) fac_sw=1;
2080 l->m[0].data=(
void *)
f;
2082 l->m[1].data=(
void *)
v;
2083 res->data=(
void *)
l;
2088 res->data=(
void *)
f;
2101 res->data=(
void *)
p;
2128 res->data=(
void *)L;
2135 number uu=(number)u->
Data();
2136 number vv=(number)
v->Data();
2144 ideal uu=(ideal)u->
Data();
2145 number vv=(number)
v->Data();
2167 ring r=(ring)u->
Data();
2176 int par_perm_size=0;
2186 par_perm_size=
rPar(r);
2200 perm=(
int *)
omAlloc0((r->N+1)*
sizeof(int));
2201 if (par_perm_size!=0)
2202 par_perm=(
int *)
omAlloc0(par_perm_size*
sizeof(
int));
2207 char ** r_par_names=
NULL;
2208 if (r->cf->extRing!=
NULL)
2210 r_par=r->cf->extRing->N;
2211 r_par_names=r->cf->extRing->names;
2214 char ** c_par_names=
NULL;
2218 c_par_names=
currRing->cf->extRing->names;
2222 maFindPerm(r->names, r->N, r_par_names, r_par,
2224 perm,par_perm,
currRing->cf->type);
2226 #ifdef HAVE_SHIFTBBA
2231 perm,par_perm,
currRing->cf->type,r->isLPring);
2246 if (par_perm_size!=0)
2261 Print(
"// par nr %d: %s -> %s\n",
2271 perm,par_perm,par_perm_size,nMap)))
2289 Werror(
"no identity map from %s (%s -> %s)",u->
Fullname(),s1,s2);
2300 char *where=(
char *)u->
Data();
2301 char *what=(
char *)
v->Data();
2302 char *
found = strstr(where,what);
2305 res->data=(
char *)((
found-where)+1);
2314 ideal
id = (ideal)u->
Data();
2315 int max_length = (int)(
long)
v->Data();
2318 WerrorS(
"length for fres must not be negative");
2321 if (max_length == 0)
2326 Warn(
"full resolution in a qring may be infinite, "
2327 "setting max length to %d", max_length);
2330 char *method = (
char *)
w->Data();
2334 if (strcmp(method,
"complete") != 0
2335 && strcmp(method,
"frame") != 0
2336 && strcmp(method,
"extended frame") != 0
2337 && strcmp(method,
"single module") != 0)
2339 WerrorS(
"wrong optional argument for fres");
2344 res->data = (
void *)r;
2352 w->data = (
char *)
"complete";
2366 int uu=(int)(
long)u->
Data();
int vv=(int)(
long)
v->Data();
2367 int p0=
ABS(uu),p1=
ABS(vv);
2374 res->data=(
char *)(
long)p0;
2379 number n1 = (number) u->
Data();
2380 number n2 = (number)
v->Data();
2386 number a=(number) u->
Data();
2387 number
b=(number)
v->Data();
2411 PrintS(
"// NOTE: computation of Hilbert series etc. is being\n");
2412 PrintS(
"// performed for generic fibre, that is, over Q\n");
2417 switch((
int)(long)
v->Data())
2430 switch((
int)(
long)
v->Data())
2433 res->data=(
void *)iv;
2447 int i=
pVar((poly)
v->Data());
2459 WerrorS(
"variable must have weight 1");
2464 int i=
pVar((poly)
v->Data());
2481 WerrorS(
"variable must have weight 1");
2488 ideal v_id=(ideal)
v->Data();
2497 currRing->pLexOrder=save_pLexOrder;
2507 ideal v_id=(ideal)
v->Data();
2527 const int n = L->
nr;
assume (n >= 0);
2528 std::vector<ideal> V(n + 1);
2530 for(
int i = n;
i >= 0;
i--) V[
i] = (ideal)(L->
m[
i].
Data());
2549 res->data = (
char *)
pJet((poly)u->
CopyD(), (int)(
long)
v->Data());
2583 h.data=(
void *)(
long)
IDELEMS((ideal)
v->Data());
2595 Werror(
"At least %d ncgen variables are needed for this computation.", ul);
2615 Werror(
"At least %d ncgen variables are needed for this computation.",
IDELEMS((ideal)u->
Data()));
2632 char *
s=(
char *)u->
Data();
2633 if(strcmp(
s,
"with")==0)
2635 if (strcmp(
s,
"try")==0)
2637 WerrorS(
"invalid second argument");
2638 WerrorS(
"load(\"libname\" [,option]);");
2664 ideal u_id=(ideal)u->
Data();
2665 ideal v_id=(ideal)
v->Data();
2668 if ((*w_u).compare((w_v))!=0)
2670 WarnS(
"incompatible weights");
2671 delete w_u; w_u=
NULL;
2679 WarnS(
"wrong weights");
2680 delete w_u; w_u=
NULL;
2685 res->data = (
char *)
idModulo(u_id,v_id ,hom,&w_u);
2696 number q=(number)
v->Data();
2707 number q=(number)
v->Data();
2718 poly q=(poly)
v->Data();
2724 poly
p=(poly)(u->
Data());
2742 char *opt=(
char *)
v->Data();
2754 if(strcmp(
l->m->type,
"ASCII")!=0)
2756 Werror(
"ASCII link required, not `%s`",
l->m->type);
2761 if (
l->name[0]!=
'\0')
2765 if (
v==
NULL) opt=(
const char*)
"i";
2766 else opt=(
const char *)
v->Data();
2808 const char *
s=(
const char *)u->
Data();
2809 newstruct_desc d=
NULL;
2815 else WerrorS(
"name of newstruct must be longer than 1 character");
2821 int i=(int)(
long)
v->Data();
2829 Werror(
"par number %d out of range 1..%d",
i,
p);
2839 WerrorS(
"basering must NOT be a qring!");
2859 WerrorS(
"basering must NOT be a qring!");
2879 WerrorS(
"basering must NOT be a qring!");
2899 WerrorS(
"basering must NOT be a qring!");
2921 const poly q = (poly)
b->Data();
2934 const poly
p = (poly)a->
Data();
2948 const poly q = (poly)
b->Data();
2953 const poly
p = (poly)a->
Data();
2954 int k=(int)(
long)c->
Data();
2958 for (
int i = 0;
i <
k;
i++)
2970 if (qq ==
NULL)
break;
2976 Werror(
"invalid number of iterations");
2986 ring r = (ring)a->
Data();
2989 res->data =
b->Data();
2990 res->rtyp =
b->rtyp;
2995 Werror(
"%s is not an opposite ring to current ring",a->
Fullname());
3008 res->rtyp = argtype;
3016 res->rtyp = argtype;
3024 res->rtyp = argtype;
3037 res->rtyp = argtype;
3042 WerrorS(
"unsupported type in oppose");
3060 WerrorS(
"expected prune_map(`module`,`smatrix`)`");
3065 ideal v_id=(ideal)
v->Data();
3070 WarnS(
"wrong weights");
3079 int *
g=(
int*)
omAlloc(v_id->rank*
sizeof(
int));
3091 int *
g=(
int*)
omAlloc(v_id->rank*
sizeof(
int));
3109 int i=(int)(
long)u->
Data();
3110 int j=(int)(
long)
v->Data();
3111 if (
j-
i <0) {
WerrorS(
"invalid range for random");
return TRUE;}
3118 int isRowEchelon = (int)(
long)
v->Data();
3119 if (isRowEchelon != 1) isRowEchelon = 0;
3120 int rank =
luRank(
m, isRowEchelon);
3121 res->data =(
char *)(
long)rank;
3133 Werror(
"cannot read from `%s`",
s);
3142 ideal vi=(ideal)
v->Data();
3150 ideal ui=(ideal)u->
Data();
3151 ideal vi=(ideal)
v->Data();
3159 int maxl=(int)(
long)
v->Data();
3162 WerrorS(
"length for res must not be negative");
3168 ideal u_id=(ideal)u->
Data();
3177 "full resolution in a qring may be infinite, setting max length to %d",
3191 int add_row_shift=0;
3195 add_row_shift = ww->
min_in();
3196 (*ww) -= add_row_shift;
3215 (
"`lres` not implemented for inhomogeneous input or qring");
3219 WarnS(
"the current implementation of `lres` may not work in the case of a single variable");
3229 (
"`kres` not implemented for inhomogeneous input or qring");
3241 (
"`hres` not implemented for inhomogeneous input or qring");
3244 ideal u_id_copy=
idCopy(u_id);
3246 r=
syHilb(u_id_copy,&dummy);
3259 res->data=(
void *)r;
3260 if ((weights!=
NULL) && (ww!=
NULL)) {
delete ww; ww=
NULL; }
3264 if (weights!=
NULL) (*ww) += add_row_shift;
3294 n1 = (number)u->
CopyD();
3298 i = (int)(
long)u->
Data();
3306 i = (int)(
long)
v->Data();
3310 res->data = (
char*)
l;
3316 res->data = (
char *)r;
3329 res->data = (
char *)r;
3335 int i=
rSum((ring)u->
Data(),(ring)
v->Data(),r);
3336 res->data = (
char *)r;
3339#define SIMPL_NORMALIZE 64
3340#define SIMPL_LMDIV 32
3341#define SIMPL_LMEQ 16
3348 int sw = (int)(
long)
v->Data();
3379 res->data = (
char * )
id;
3386 int sw=(int)(
long)dummy->
Data();
3401 l->m[0].data=(
void *)
f;
3403 l->m[1].data=(
void *)
v;
3404 res->data=(
void *)
l;
3409 res->data=(
void *)
f;
3422 res->data=(
void *)
p;
3443 int sw = (int)(
long)
v->Data();
3454 res->data = (
char * )
p;
3462 ideal u_id=(ideal)(u->
Data());
3494 ideal i1=(ideal)(u->
Data());
3500 poly
p=(poly)
v->Data();
3504 memset(i0->m,0,
sizeof(poly)*
IDELEMS(i0));
3537 i0=(ideal)
v->CopyD();
3539 memset(i0->m,0,
sizeof(poly)*
IDELEMS(i0));
3580 ideal I=(ideal)u->
Data();
3587 int add_row_shift=
w->min_in();
3588 (*w)-=add_row_shift;
3606 res->data = (
char *)S;
3613 for(
int i=0;
i<vl;
i++)
3622 for(
int i=0;
i<vl;
i++)
3639 ideal
A=(ideal)u->
Data();
3640 ideal
B=(ideal)
v->Data();
3646 sleftv tmp_u,tmp_v,tmp_res;
3666 int i=(int)(
long)
v->Data();
3687 int t = (int)(
long)
v->Data();
3697 res->data = (
void*)(
long)
i;
3714 int timeout = (int)(
long)
v->Data();
3722 for(
unsigned nfinished = 0; nfinished <= ((unsigned)L->
nr); nfinished++)
3745 res->data = (
void*)(
long)ret;
3807 res->data = (
char *)n;
3812 res->data = (
char *)(-(
long)u->
Data());
3819 res->data = (
char *)n;
3837 res->data = (
char *)iv;
3844 res->data = (
char *)bim;
3853 ring r=(ring)u->
Data();
3857 char name_buffer[100];
3860 snprintf(name_buffer,100,
"PYTHON_RING_VAR%d",ending);
3883 l->m[0].data=(
void *)
m;
3884 l->m[1].data=(
void *)iv;
3885 res->data = (
char *)
l;
3905 number n=(number)u->
CopyD();
3929 number n=(number) tmp.
data;
3944 res->data = (
char *)(
long)
rChar((ring)
v->Data());
3949 ring r=(ring)
v->Data();
3951 res->data = (
char *)r->cf;
3961 res->data = (
char *)(
long)((
bigintmat*)(
v->Data()))->cols();
3966 res->data = (
char *)(
long)((
intvec*)(
v->Data()))->cols();
3974 res->data = (
char *)
p;
3985 res->data = (
char *)(
long)(aa->
rows()*aa->
cols());
3990 res->data = (
char *)(
long)
nSize((number)
v->Data());
4007 res->data = (
char *)(
long)((
intvec*)(
v->Data()))->length();
4012 ring r=(ring)
v->Data();
4018 extern int ipower (
int b,
int n );
4019 elems=
ipower(r->cf->ch,r->cf->extRing->pFDeg(r->cf->extRing->qideal->m[0],r->cf->extRing));
4021 res->data = (
char *)(
long)elems;
4027 poly
p=(poly)
v->Data();
4029 else res->data=(
char *)-1;
4034 ideal I=(ideal)u->
Data();
4040 res->data = (
char *)(
long)d;
4048 PrintS(
"// NOTE: computation of degree is being performed for\n");
4049 PrintS(
"// generic fibre, that is, over Q\n");
4067 else if (
v->rtyp!=0)
res->data=(
void *)(-1);
4074 number n =
reinterpret_cast<number
>(
v->CopyD());
4083 number n =
reinterpret_cast<number
>(
v->CopyD());
4099 i=
m->rows();
j=
m->cols();
4104 Werror(
"det of %d x %d bigintmat",
i,
j);
4113 number2 r=(number2)
omAlloc0(
sizeof(*r));
4115 i=
m->rows();
j=
m->cols();
4119 r->cf=
m->basecoeffs();
4124 Werror(
"det of %d x %d cmatrix",
i,
j);
4135 i=
m->rows();
j=
m->cols();
4140 Werror(
"det of %d x %d intmat",
i,
j);
4147 ideal I=(ideal)
v->Data();
4159 WerrorS(
"`dim` is not implemented for letterplace rings over rings");
4164 WerrorS(
"qring not supported by `dim` for letterplace rings at the moment");
4167 int gkDim =
lp_gkDim((ideal)(
v->Data()));
4168 res->data = (
char *)(
long)gkDim;
4169 return (gkDim == -2);
4174 Warn(
"dim(%s) may be wrong because the mixed monomial ordering",
v->Name());
4187 Werror(
"cannot dump to `%s`",
s);
4196 int co=(int)(
long)
v->Data();
4202 else WerrorS(
"argument of gen must be positive");
4207 char * d = (
char *)
v->Data();
4208 char *
s = (
char *)
omAlloc(strlen(d) + 13);
4209 strcpy(
s, (
char *)d);
4210 strcat(
s,
"\n;RETURN();\n");
4247 WarnS(
"no factorization implemented");
4251 res->data=(
void *)L;
4264 l->m[0].data=(
void *)
f;
4266 l->m[1].data=(
void *)
v;
4267 res->data=(
void *)
l;
4278 Werror(
"cannot get dump from `%s`",
s);
4287 ideal I=(ideal)
v->Data();
4296 ideal I=(ideal)
v->Data();
4310 WerrorS(
"module must be zero-dimensional");
4311 if (delete_w)
delete w;
4334 if (delete_w)
delete w;
4335 res->data=(
void *)po;
4342 PrintS(
"// NOTE: computation of Hilbert series etc. is being\n");
4343 PrintS(
"// performed for generic fibre, that is, over Q\n");
4355 PrintS(
"// NOTE: computation of Hilbert series etc. is being\n");
4356 PrintS(
"// performed for generic fibre, that is, over Q\n");
4364 ideal v_id=(ideal)
v->Data();
4372 char *s_isHomog=
omStrDup(
"isHomog");
4378 else if (
w!=
NULL)
delete w;
4399 int deg = (int)(
long)
v->Data();
4402 WerrorS(
"degree bound of Letterplace ring is to small");
4417 res->data=(
char *)mat;
4427 res->data=(
char *)I;
4434 ring q=(ring)
v->Data();
4437 if (q->qideal==
NULL)
4444 WerrorS(
"can only get ideal from identical qring");
4478 res->data = (
void*)iv;
4483 res->data = (
char *)(
long)
pVar((poly)
v->Data());
4494 res->data = (
char *)0;
4501 poly
p=(poly)(
v->Data());
4506 res->data = (
char *)
i;
4513 WerrorS(
"differentiation not defined in the coefficient ring");
4516 number n = (number) u->
Data();
4517 number
k = (number)
v->Data();
4530 ideal
id = (ideal)a->
Data();
4540 for(
int i = 0;
i < W;
i++,
p++, q++ )
4583 poly
p=(poly)
v->Data();
4597 poly
p=(poly)
v->Data();
4610 res->data=(
char *)iv;
4615 poly
p=(poly)
v->Data();
4624 res->data = (
char*) lm;
4636 int isLetterplace=(int)(
long)
atGet(
v,
"isLetterplaceRing",
INT_CMD);
4638 res->data=(
char *)r;
4653 memset(&a2,0,
sizeof(a2));
4654 memset(&a3,0,
sizeof(a3));
4671 WerrorS(
"matrix must be constant");
4685 res->data=(
char*)ll;
4695 switch(((
int)(
long)
v->Data()))
4710 res->data = (
char *)0;
4727 l->m[0].data=(
char *)r;
4730 l->m[1].data=(
char *)
m;
4731 res->data=(
char *)
l;
4747 res->data=(
char *)tmp;
4756 number n,
i;
i=(number)
v->Data();
4761 res->data=(
void *)n;
4791 res->data=(
char*)(
long)((long)
v->Data()==0 ? 1 : 0);
4796 res->data = (
char *)(
long)(((ring)(
v->Data()))->N);
4807 poly
p=(poly)
v->Data();
4813 int i=(int)(
long)
v->Data();
4816 if ((0<
i) && (
i<=
p))
4822 Werror(
"par number %d out of range 1..%d",
i,
p);
4829 number nn=(number)
v->Data();
4837 WerrorS(
"no ring active (1)");
4840 int i=(int)(
long)
v->Data();
4846 Werror(
"par number %d out of range 1..%d",
i,
p);
4853 poly
p=(poly)
v->Data();
4857 WerrorS(
"poly must be constant");
4866 res->data=(
void *)n;
4873 poly
p=(poly)
v->Data();
4877 WerrorS(
"poly must be constant");
4891 int i =
IsPrime((
int)(
long)(
v->Data()));
4892 res->data = (
char *)(
long)(
i > 1 ?
i : 2);
4898 ideal v_id=(ideal)
v->Data();
4903 WarnS(
"wrong weights");
4923 if (((
p=(poly)
v->Data())!=
NULL)
4932 res->data = (
char *)n;
4937 char *
s= (
char *)
v->Data();
4944 res->data = (
char *)1;
4953 res->data = (
char *)1;
4961 res->data =(
char *)(
long)rank;
4980 ring r=(ring)
v->Data();
4986 long mm=r->wanted_maxExp;
5002 ring r=(ring)
v->Data();
5009 ideal
i = (ideal)
v->Data();
5010 res->data = (
char *)
i->rank;
5015 res->data = (
char *)(
long)((
bigintmat*)(
v->Data()))->rows();
5020 res->data = (
char *)(
long)((
intvec*)(
v->Data()))->rows();
5025 res->data = (
char *)(
long)
rPar(((ring)
v->Data()));
5030 res->data = (
char *)(
long)atoi((
char*)
v->Data());
5039 WerrorS(
"qring not supported by slimgb at the moment");
5044 WerrorS(
"ordering must be global for slimgb");
5048 WarnS(
"groebner base computations with inexact coefficients can not be trusted due to rounding errors");
5051 ideal u_id=(ideal)u->
Data();
5056 WarnS(
"wrong weights");
5078 ideal v_id=(ideal)
v->Data();
5085 WarnS(
"wrong weights");
5104 ideal v_id=(ideal)
v->Data();
5111 WarnS(
"wrong weights");
5130 ideal v_id=(ideal)
v->Data();
5137 WarnS(
"wrong weights");
5156 WarnS(
"groebner base computations with inexact coefficients can not be trusted due to rounding errors");
5158 ideal v_id=(ideal)
v->Data();
5165 WarnS(
"wrong weights");
5183 res->data = (
char *)
idSort((ideal)
v->Data());
5196 l->m[0].data=(
void *)
f;
5198 l->m[1].data=(
void *)
v;
5199 res->data=(
void *)
l;
5215 ideal v_id=(ideal)
v->Data();
5221 Werror(
"At least %d ncgen variables are needed for this computation.",
IDELEMS(v_id));
5234 int add_row_shift=
w->min_in();
5235 (*w)-=add_row_shift;
5252 res->data = (
char *)S;
5259 for(
int i=0;
i<vl;
i++)
5261 if (v_id->m[
i]!=
NULL)
5268 for(
int i=0;
i<vl;
i++)
5270 if (v_id->m[
i]!=
NULL)
5291 res->data = (
char *)(((
bigintmat*)(
v->Data()))->transpose());
5302 ring r = (ring)a->
Data();
5310 WarnS(
"opposite only for global orderings");
5321 ring r = (ring)a->
Data();
5337 ideal v_id=(ideal)a->
Data();
5354#if defined(HAVE_SHIFTBBA) || defined(HAVE_PLURAL)
5358 WarnS(
"groebner base computations with inexact coefficients can not be trusted due to rounding errors");
5360 ideal v_id=(ideal)
v->Data();
5386 ideal I=(ideal)
v->Data();
5401 res->data = (
char *)J;
5415 int t=(int)(
long)
v->data;
5466 int i=(int)(
long)
v->Data();
5472 res->data=(
char *)
p;
5485 WerrorS(
"no ring active (2)");
5488 int i=(int)(
long)
v->Data();
5506 WerrorS(
"`vdim` is not implemented for letterplace rings over rings");
5511 WerrorS(
"qring not supported by `vdim` for letterplace rings at the moment");
5514 int kDim =
lp_kDim((ideal)(
v->Data()));
5515 res->data = (
char *)(
long)kDim;
5516 return (kDim == -2);
5521 WerrorS(
"int overflow in vdim");
5522 res->data = (
char *)
l;
5537 res->data = (
void*)(
long)
i;
5551 for(
int nfinished = 0; nfinished <= L->
nr; nfinished++)
5559 if((
i == -1)||(
j==0))
5571 res->data = (
void*)(
long)
j;
5580#ifdef HAVE_DYNAMIC_LOADING
5587 Werror(
"%s: unknown type",
s);
5605 Werror(
"can not create package `%s`",plib);
5611 package pa=IDPACKAGE(pl);
5615 Werror(
"can not create package `%s` - binaries exists",plib);
5621 package savepack=currPack;
5637#ifdef HAVE_DYNAMIC_LOADING
5640 WerrorS(
"Dynamic modules are not supported by this version of Singular");
5660 Print(
"loading of >%s< failed\n",
s);
5669 res->data = (
char *)strlen((
char *)
v->Data());
5674 res->data = (
char *)(
long)
pLength((poly)
v->Data());
5679 res->data = (
char *)(
long)
idElem((ideal)
v->Data());
5699 res->data = (
char *)
pHead((poly)
v->Data());
5767 number n=(number)u->
CopyD();
5774 number n=(number)u->
Data();
5783 char *
s= (
char *)u->
Data();
5784 int r = (int)(
long)
v->Data();
5785 int c = (int)(
long)
w->Data();
5788 if ( (r<1) || (r>
l) || (c<0) )
5794 snprintf((
char *)
res->data,c+1,
"%-*.*s",c,c,
s+r-1);
5800 int r = (int)(
long)
v->Data();
5801 int c = (int)(
long)
w->Data();
5802 if ((r<1)||(r>iv->
rows())||(c<1)||(c>iv->
cols()))
5804 Werror(
"wrong range[%d,%d] in intmat %s(%d x %d)",
5817 while (
h->next!=
NULL)
h=
h->next;
5827 int r = (int)(
long)
v->Data();
5828 int c = (int)(
long)
w->Data();
5829 if ((r<1)||(r>bim->
rows())||(c<1)||(c>bim->
cols()))
5831 Werror(
"wrong range[%d,%d] in bigintmat %s(%d x %d)",
5845 while (
h->next!=
NULL)
h=
h->next;
5855 int r = (int)(
long)
v->Data();
5856 int c = (int)(
long)
w->Data();
5860 Werror(
"wrong range[%d,%d] in matrix %s(%d x %d)",r,c,u->
Fullname(),
5874 while (
h->next!=
NULL)
h=
h->next;
5883 ideal
m= (ideal)u->
Data();
5884 int r = (int)(
long)
v->Data();
5885 int c = (int)(
long)
w->Data();
5887 if ((r<1)||(r>
m->rank)||(c<1)||(c>
IDELEMS(
m)))
5889 Werror(
"wrong range[%d,%d] in matrix %s(%d x %d)",r,c,u->
Fullname(),
5903 while (
h->next!=
NULL)
h=
h->next;
5914 WerrorS(
"cannot build expression lists from unnamed objects");
5923 memcpy(&ut,u,
sizeof(ut));
5929 t.
data=(
char *)(
long)((*iv)[
l]);
5939 memcpy(u,&ut,
sizeof(ut));
5964 WerrorS(
"cannot build expression lists from unnamed objects");
5972 memcpy(&ut,u,
sizeof(ut));
5978 t.
data=(
char *)(
long)((*iv)[
l]);
5988 memcpy(u,&ut,
sizeof(ut));
6013 WerrorS(
"cannot build expression lists from unnamed objects");
6024 memcpy(&ut,u,
sizeof(ut));
6029 for (vl=0;vl< vv->
length(); vl++)
6031 t1.
data=(
char *)(
long)((*vv)[vl]);
6032 for (wl=0;wl< wv->
length(); wl++)
6034 t2.
data=(
char *)(
long)((*wv)[wl]);
6044 memcpy(u,&ut,
sizeof(ut));
6084 int k=(int)(
long)
w->Data();
6091 l->m[0].data=(
void *)
m;
6092 l->m[1].data=(
void *)iv;
6099 l->m[0].data=(
void *)
m;
6101 res->data = (
char *)
l;
6108 WerrorS(
"3rd argument must be a name of a matrix");
6111 ideal
i=(ideal)u->
Data();
6112 int rank=(int)
i->rank;
6121 (ideal)(
v->Data()),(poly)(
w->Data()));
6128 WerrorS(
"3rd argument must be a name of a matrix");
6153 ideal I=(ideal)u->
Data();
6182 int n=(int)(
long)
w->Data();
6183 char *where=(
char *)u->
Data();
6184 char *what=(
char *)
v->Data();
6186 if ((1>n)||(n>(int)strlen(where)))
6188 Werror(
"start position %d out of range",n);
6191 found = strchr(where+n-1,*what);
6192 if (*(what+1)!=
'\0')
6194 while((
found !=
NULL) && (strncmp(
found+1,what+1,strlen(what+1))!=0))
6201 res->data=(
char *)((
found-where)+1);
6207 if ((
int)(
long)
w->Data()==0)
6219 Werror(
"weight vector must have size %d, not %d",
6225 PrintS(
"// NOTE: computation of Hilbert series etc. is being\n");
6226 PrintS(
"// performed for generic fibre, that is, over Q\n");
6232 switch((
int)(long)
v->Data())
6248 PrintS(
"// NOTE: computation of Hilbert series etc. is being\n");
6249 PrintS(
"// performed for generic fibre, that is, over Q\n");
6252 ring Qt =(ring)
v->Data();
6253 char *
name=(
char*)
w->Data();
6269 int i=
pVar((poly)
v->Data());
6281 WerrorS(
"variable must have weight 1");
6287 int i=
pVar((poly)
v->Data());
6299 WerrorS(
"variable must have weight 1");
6306 ideal v_id=(ideal)v1->
Data();
6312 intvec* im=
new intvec((
int)(
long)
v->Data(),(
int)(
long)
w->Data(), 0);
6318 (*im)[
i] = (*arg)[
i];
6321 res->data = (
char *)im;
6326 ideal I1=(ideal)u->
Data();
6327 ideal I2=(ideal)
v->Data();
6328 ideal I3=(ideal)
w->Data();
6339 ideal I=(ideal)u->
Data();
6341 res->data=(
char *)
idSect(I,(ideal)
v->Data(),alg);
6348 res->data = (
char *)
ppJetW((poly)u->
Data(),(int)(
long)
v->Data(),iw);
6356 WerrorS(
"2nd argument must be a unit");
6372 WerrorS(
"2nd argument must be a diagonal matrix of units");
6419 Werror(
"`%s` is undefined",
v->Fullname());
6435 const int mk = (int)(
long)u->
Data();
6436 bool noIdeal =
true;
bool noK =
true;
bool noAlgorithm =
true;
6437 bool noCacheMinors =
true;
bool noCacheMonomials =
true;
6438 ideal IasSB;
int k;
char* algorithm;
int cacheMinors;
int cacheMonomials;
6453 noAlgorithm =
false;
6458 noCacheMinors =
false;
6464 noCacheMonomials =
false;
6477 noAlgorithm =
false;
6482 noCacheMinors =
false;
6487 noCacheMonomials =
false;
6494 algorithm = (
char*)u->
next->
Data();
6495 noAlgorithm =
false;
6499 noCacheMinors =
false;
6504 noCacheMonomials =
false;
6512 if (strcmp(algorithm,
"bareiss") == 0)
6513 algorithm = (
char*)
"Bareiss";
6514 if (strcmp(algorithm,
"laplace") == 0)
6515 algorithm = (
char*)
"Laplace";
6516 if (strcmp(algorithm,
"cache") == 0)
6517 algorithm = (
char*)
"Cache";
6526 if ((!noK) && (
k == 0))
6528 WerrorS(
"Provided number of minors to be computed is zero.");
6531 if ((!noAlgorithm) && (strcmp(algorithm,
"Bareiss") != 0)
6532 && (strcmp(algorithm,
"Laplace") != 0)
6533 && (strcmp(algorithm,
"Cache") != 0))
6535 WerrorS(
"Expected as algorithm one of 'B/bareiss', 'L/laplace', or 'C/cache'.");
6538 if ((!noAlgorithm) && (strcmp(algorithm,
"Bareiss") == 0)
6541 Werror(
"Bareiss algorithm not defined over coefficient rings %s",
6542 "with zero divisors.");
6545 if ((mk < 1) || (mk >
m->rows()) || (mk >
m->cols()))
6554 if ((!noAlgorithm) && (strcmp(algorithm,
"Cache") == 0)
6555 && (noCacheMinors || noCacheMonomials))
6558 cacheMonomials = 100000;
6564 (noIdeal ? 0 : IasSB),
false);
6565 else if (strcmp(algorithm,
"Cache") == 0)
6567 (noIdeal ? 0 : IasSB), 3, cacheMinors,
6568 cacheMonomials,
false);
6571 (noIdeal ? 0 : IasSB),
false);
6579 WerrorS(
"3rd argument must have a name");
6582 int maxl=(int)(
long)
v->Data();
6585 WerrorS(
"length for res must not be negative");
6591 ideal u_id=(ideal)u->
Data();
6600 "full resolution in a qring may be infinite, setting max length to %d",
6614 int add_row_shift=0;
6618 add_row_shift = ww->
min_in();
6619 (*ww) -= add_row_shift;
6623 u_id=(ideal)u->
CopyD();
6638 res->data=(
void *)r;
6639 if ((weights!=
NULL) && (ww!=
NULL)) {
delete ww; ww=
NULL; }
6643 if (weights!=
NULL) (*ww) += add_row_shift;
6664 (
const char *)
w->Data());
6678 WerrorS(
"2nd/3rd arguments must have names");
6682 const char *ring_name=u->
Name();
6689 if ((preim_ring==
NULL)
6692 Werror(
"preimage ring `%s` is not the basering",mapping->preimage);
6708 Werror(
"`%s` is not defined in `%s`",
v->
name,ring_name);
6712 if (kernel_cmd) image=
idInit(1,1);
6729 Werror(
"`%s` is not defined in `%s`",
w->name,ring_name);
6736 WarnS(
"preimage in local qring may be wrong: use Ring::preimageLoc instead");
6745 int i=(int)(
long)u->
Data();
6746 int r=(int)(
long)
v->Data();
6747 int c=(int)(
long)
w->Data();
6748 if ((r<=0) || (c<=0))
return TRUE;
6764 res->data = (
char *)iv;
6774 Werror(
"no random function defined for coeff %d",
cf->type);
6780 number2 nn=(number2)
omAlloc(
sizeof(*nn));
6790 int &ringvar, poly &monomexpr)
6792 monomexpr=(poly)
w->Data();
6793 poly
p=(poly)
v->Data();
6797 Werror(
"`%s` substitutes a ringvar only by a term",
6802 if ((ringvar=
pVar(
p))==0)
6811 WerrorS(
"ringvar/par expected");
6835 if (nok)
return TRUE;
6836 poly
p=(poly)u->
Data();
6841 (monomexpr!=
NULL) && (
p!=
NULL) && (mm!=0) &&
6844 Warn(
"possible OVERFLOW in subst, max exponent is %ld, substituting deg %d by deg %d",
currRing->bitmask/2,
pTotaldegree(monomexpr), mm);
6856 WerrorS(
"Substituting parameters not implemented for Letterplace rings.");
6868 if (nok)
return TRUE;
6869 ideal
id=(ideal)u->
Data();
6880 if ((
p!=
NULL) && (mm!=0) &&
6881 ((
unsigned long)deg_monexp > (
currRing->bitmask / (
unsigned long)mm/2)))
6889 Warn(
"possible OVERFLOW in subst, max exponent is %ld",
currRing->bitmask/2);
6903 WerrorS(
"Substituting parameters not implemented for Letterplace rings.");
6933 int mi=(int)(
long)
v->Data();
6934 int ni=(int)(
long)
w->Data();
6937 Werror(
"converting ideal to matrix: dimensions must be positive(%dx%d)",mi,ni);
6948 memcpy(
m->m,I->m,
i*
sizeof(poly));
6949 memset(I->m,0,
i*
sizeof(poly));
6951 res->data = (
char *)
m;
6956 int mi=(int)(
long)
v->Data();
6957 int ni=(int)(
long)
w->Data();
6960 Werror(
"converting module to matrix: dimensions must be positive(%dx%d)",mi,ni);
6969 int mi=(int)(
long)
v->Data();
6970 int ni=(int)(
long)
w->Data();
6973 Werror(
"converting matrix to matrix: dimensions must be positive(%dx%d)",mi,ni);
6990 res->data = (
char *)
m;
7013 ideal u_id=(ideal)u->
Data();
7014 ideal v_id=(ideal)
v->Data();
7017 if ((*w_u).compare((w_v))!=0)
7019 WarnS(
"incompatible weights");
7020 delete w_u; w_u=
NULL;
7028 WarnS(
"wrong weights");
7029 delete w_u; w_u=
NULL;
7035 res->data = (
char *)
idModulo(u_id,v_id ,hom,&w_u, &(
h->data.umatrix));
7064 ideal u_id=(ideal)u->
Data();
7066 ideal v_id=(ideal)
v->Data();
7069 if ((*w_u).compare((w_v))!=0)
7071 WarnS(
"incompatible weights");
7072 delete w_u; w_u=
NULL;
7080 WarnS(
"wrong weights");
7081 delete w_u; w_u=
NULL;
7097 int mi=(int)(
long)
v->Data();
7098 int ni=(int)(
long)
w->Data();
7101 Werror(
"converting to smatrix: dimensions must be positive(%dx%d)",mi,ni);
7118 Werror(
"At least %d ncgen variables are needed for this computation.", ul);
7141 Werror(
"At least %d ncgen variables are needed for this computation.",
IDELEMS((ideal)u->
Data()));
7149 &(hw->
data.uideal));
7163 Werror(
"At least %d ncgen variables are needed for this computation.",
IDELEMS((ideal)u->
Data()));
7180 Werror(
"`%s` must be 0-dimensional",
v->Name());
7192 Werror(
"`%s` must be 0-dimensional",
v->Name());
7203 0,(int)(
long)
w->Data());
7210 0,(int)(
long)
w->Data());
7216 int maxl=(int)
v->Data();
7217 ideal u_id=(ideal)u->
Data();
7235 WarnS(
"wrong weights");
7264 yes = (strcmp((
char *)
res->data, (
char *)
w->Data()) == 0);
7266 res->data = (
void *)(
long)yes;
7280 ideal u_id=(ideal)(u->
Data());
7285 WarnS(
"wrong weights");
7333 lineno=(int)(
long)
v->
next->Data();
7397 WarnS(
"<module>,<module>,<int>[,<intvec>] expected!");
7404 ideal P=(ideal)w1.
Data();
7405 ideal
Q=(ideal)w2.
Data();
7407 int n=(int)(
long)v3->
Data();
7414 while( (
i > 0) && ((*w0) > 0) )
7420 WarnS(
"not all weights are positive!");
7439 L->
m[1].
data=(
void *)
R->m[0];
7523 res->data=(
char *)
id;
7528 ring r=(ring)u->
Data();
7536 WerrorS(
"fetch(<ring>,<name>[,<intvec>[,<intvec>])");
7541 if (perm_par_l!=
NULL)
7550 int par_perm_size=0;
7559 par_perm_size=
rPar(r);
7567 par_perm_size=
rPar(r);
7569 if (par_perm_size!=0)
7570 par_perm=(
int *)
omAlloc0(par_perm_size*
sizeof(
int));
7572 if (perm_par_l==
NULL)
7574 if (par_perm_size!=0)
7579 if (par_perm_size==0)
WarnS(
"source ring has no parameters");
7588 Warn(
"invalid entry for par %d: %d\n",
i,par_perm[
i]);
7600 Warn(
"invalid entry for var %d: %d\n",
i,perm[
i]);
7609 Print(
"// var nr %d: %s -> var %s\n",
i,r->names[
i-1],
currRing->names[perm[
i]-1]);
7615 if (par_perm[
i-1]<0)
7616 Print(
"// par nr %d: %s -> par %s\n",
7618 else if (par_perm[
i-1]>0)
7619 Print(
"// par nr %d: %s -> var %s\n",
7629 perm,par_perm,par_perm_size,nMap)))
7647 Werror(
"no identity map from %s (%s -> %s)",u->
Fullname(),s1,s2);
7654 int l=
v->listLength();
7685 WerrorS(
"cannot convert to ideal or module");
7696 r[
i]=(ideal)
h->Data();
7708 r[
i]=(ideal)tmp.
Data();
7740 matrix iMat;
int invertible;
7746 int rr = aMat->
rows();
7747 int cc = aMat->
cols();
7750 Werror(
"given matrix (%d x %d) is not quadratic, hence not invertible", rr, cc);
7755 WerrorS(
"matrix must be constant");
7765 int rr = uMat->
rows();
7766 int cc = uMat->
cols();
7769 Werror(
"third matrix (%d x %d) is not quadratic, hence not invertible",
7778 WerrorS(
"matricesx must be constant");
7785 Werror(
"expected either one or three matrices");
7803 res->data=(
char*)ll;
7827 WerrorS(
"expected exactly three matrices and one vector as input");
7837 Werror(
"first matrix (%d x %d) is not quadratic",
7843 Werror(
"second matrix (%d x %d) is not quadratic",
7849 Werror(
"second matrix (%d x %d) and third matrix (%d x %d) do not fit",
7855 Werror(
"third matrix (%d x %d) and vector (%d x 1) do not fit",
7864 WerrorS(
"matrices must be constant");
7884 res->data=(
char*)ll;
7898 (*iv)[
i]=(int)(
long)
h->Data();
7917 res->data=(
char *)iv;
7964 number tp = (number)
h->Data();
7970 for(
int j=0;
j<
b->cols();
j++)
7978 res->data=(
char *)bim;
7995 WerrorS(
"2nd argument must be a unit");
8008 WerrorS(
"2nd argument must be a diagonal matrix of units");
8013 (
int)(long)u3->
Data(),
8022 Werror(
"%s(`poly`,`poly`,`int`,`intvec`) exppected",
8040 else if (
w->next==
NULL)
8067 && ((strcmp(u->
Name(),
"real")==0) || (strcmp(u->
Name(),
"complex")==0)))
8088 Werror(
"`%s` undefined or `int` expected while building `%s(`",u->
name,u->
name);
8092 size_t len=strlen(u->
name) + 12*
l;
8093 char * nn = (
char *)
omAlloc(len);
8094 snprintf(nn,len,
"%s(%d",u->
name,(
int)(
long)
v->Data());
8098 while (*
s!=
'\0')
s++;
8102 Werror(
"`%s` undefined or `int` expected while building `%s(`",u->
name,u->
name);
8106 snprintf(
s,len-(nn-
s),
",%d",(
int)(
long)
v->Data());
8108 while (*
s!=
'\0')
s++;
8129 ideal I=(ideal)u->
Data();
8142 Werror(
"%s(`ideal`,`ideal`,`matrix`,`string`)\n"
8143 "or (`module`,`module`,`matrix`,`string`) expected",
8175 syz=&(hw->
data.uideal);
8182 syz=&(hw->
data.uideal);
8183 h11=(ideal)u4->
Data();
8188 h11=(ideal)u4->
Data();
8192 Werror(
"%s(`ideal/module`,`matrix`[,`module`][,`string`][,`ideal/module`]) expected",
Tok2Cmdname(
iiOp));
8204 syz=&(hw->
data.uideal);
8206 h11=(ideal)u5->
Data();
8210 Werror(
"%s(`ideal/module`,`matrix`[,`module`][,`string`][,`ideal/module`]) expected",
Tok2Cmdname(
iiOp));
8220 Werror(
"At least %d ncgen variables are needed for this computation.",
IDELEMS((ideal)u->
Data()));
8241 if (
v!=
NULL) sl =
v->listLength();
8245 int add_row_shift = 0;
8247 if (weights!=
NULL) add_row_shift=weights->
min_in();
8274 Werror(
"`%s` is undefined",
h->Fullname());
8286 res->data=(
char *)L;
8301 u_id=(ideal)u->
Data();
8302 v_id=(ideal)
v->Data();
8329 if ((*w_u).compare((w_v))!=0)
8331 WarnS(
"incompatible weights");
8332 delete w_u; w_u=
NULL;
8340 WarnS(
"wrong weights");
8341 delete w_u; w_u=
NULL;
8347 res->data = (
char *)
idModulo(u_id,v_id ,hom,&w_u, &(
h->data.umatrix),alg);
8402 WerrorS(
"2nd argument must be a diagonal matrix of units");
8409 (int)(
long)u4->
Data()
8419 else u1p=(poly)u1->
Data();
8422 else u2p=(poly)u2->
Data();
8426 WerrorS(
"2nd argument must be a unit");
8455 WerrorS(
"2nd argument must be a diagonal matrix of units");
8462 (int)(
long)u4->
Data(),
8474 WerrorS(
"2nd argument must be a unit");
8485 Werror(
"%s(`ideal`,`ideal`,`matrix`,`int`,`intvec`) exppected",
8497 for(
i=0;
i<nCount;
i++)
8526 for (
unsigned i=0;
i<nCount;
i++)
8538 for (
int i = 0;
i < bb_list->
count;
i++)
8548 for (
unsigned i=0;
i<nCount;
i++)
8572 for (
int i = 0;
i < bb_list->
count;
i++)
8588 res->data=(
void *)L;
8599 int n =
v->listLength();
8602 res->data =
v->String();
8606 char** slist = (
char**)
omAlloc(n*
sizeof(
char*));
8611 slist[
i] =
v->String();
8613 j+=strlen(slist[
i]);
8615 char*
s = (
char*)
omAlloc((
j+1)*
sizeof(char));
8619 strcat(
s, slist[
i]);
8639#if defined(__alpha) && !defined(linux)
8642 void usleep(
unsigned long usec);
8671 leftv u =
v;
int factorsGiven = 0;
8674 WerrorS(
"expected arguments (poly, int [, poly, poly] [, int, int])");
8677 else h = (poly)u->
Data();
8681 WerrorS(
"expected arguments (poly, int [, poly, poly] [, int, int])");
8684 else d = (int)(
long)u->
Data();
8690 WerrorS(
"expected arguments (poly, int [, poly, poly] [, int, int])");
8695 f0 = (poly)u->
Data();
8705 WerrorS(
"expected arguments (poly, int [, poly, poly] [, int, int])");
8710 xIndex = (int)(
long)u->
Data();
8711 yIndex = (int)(
long)u->
next->
Data();
8717 WerrorS(
"expected arguments (poly, int [, poly, poly] [, int, int])");
8724 WerrorS(
"expected non-constant polynomial argument(s)");
8728 if ((xIndex < 1) || (n < xIndex))
8730 Werror(
"index for variable x (%d) out of range [1..%d]", xIndex, n);
8733 if ((yIndex < 1) || (n < yIndex))
8735 Werror(
"index for variable y (%d) out of range [1..%d]", yIndex, n);
8738 if (xIndex == yIndex)
8740 WerrorS(
"expected distinct indices for variables x and y");
8745 if (factorsGiven == 0)
8759 WerrorS(
"expected h(0,y) to have exactly two distinct monic factors");
8774 res->data = (
char*)L;
8785#if defined(HAVE_USLEEP)
8786 if (((
long)
res->data) == 0L)
8795#elif defined(HAVE_SLEEP)
8796 if (((
int)
res->data) == 0)
8801 si_sleep((is - 1)/1000000 + 1);
8820 if ((rest!=
NULL) && (!
b))
8827 memcpy(
res,&tmp_res,
sizeof(tmp_res));
8842 WerrorS(
"expected (matrix, number, number, number) as arguments");
8847 (number)(
v->Data()),
8848 (number)(
w->Data()),
8849 (number)(
x->Data()));
8859 ideal i1=(ideal)(u->
Data());
8865 WerrorS(
"expected `std(`ideal/module`,`poly/vector`,`intvec`,`intvec`)");
8880 i0->m[0]=(poly)
v->Data();
8885 i0=(ideal)
v->Data();
8889 WerrorS(
"expected `std(`ideal/module`,`poly/vector`,`intvec`,`intvec`)");
8896 memset(i0->m,0,
sizeof(poly)*
IDELEMS(i0));
8906 WarnS(
"wrong weights");
8940 WerrorS(
"expected `cring` [ `id` ... ]");
8946 char **n=(
char**)
omAlloc0(
N*
sizeof(
char*));
8947 for(
int i=0;
i<
N;
i++,names=names->
next)
8949 n[
i]=(
char *)names->
Name();
8961 r->start =(int)(
long)e->
Data();
8966 int c=(int)(
long)u->
Data();
8970 PrintS(
"delete all variables\n");
8975 default:
WerrorS(
"not implemented");
8980#define NULL_VAL NULL
8984#include "iparith.inc"
9002 while (dA2[
i].cmd==op)
9004 if ((at==dA2[
i].arg1)
9005 && (bt==dA2[
i].arg2))
9016 WerrorS(
"no ring active (3)");
9022 if ((call_failed=dA2[
i].
p(
res,a,
b)))
9042 while (dA2[
i].cmd==op)
9060 WerrorS(
"no ring active (4)");
9069 || (call_failed=dA2[
i].
p(
res,an,bn)));
9108 Werror(
"`%s` is not defined",
s);
9115 Werror(
"%s(`%s`,`%s`) failed"
9120 Werror(
"`%s` %s `%s` failed"
9125 while (dA2[
i].cmd==op)
9127 if(((at==dA2[
i].arg1)||(bt==dA2[
i].arg2))
9132 Werror(
"expected %s(`%s`,`%s`)"
9135 Werror(
"expected `%s` %s `%s`"
9174 memcpy(&d->arg1,a,
sizeof(
sleftv));
9176 memcpy(&d->arg2,
b,
sizeof(
sleftv));
9180 res->data=(
char *)d;
9193 if(!bb->blackbox_Op2(op,
res,a,
b))
return FALSE;
9199 else if ((bt>
MAX_TOK)&&(op!=
'('))
9204 if(!bb->blackbox_Op2(op,
res,a,
b))
return FALSE;
9232 while (dA1[
i].cmd==op)
9244 WerrorS(
"no ring active (5)");
9251 if ((call_failed=dA1[
i].
p(
res,a)))
9271 while (dA1[
i].cmd==op)
9287 WerrorS(
"no ring active (6)");
9295 || (call_failed=dA1[
i].
p(
res,an)));
9336 while (dA1[
i].cmd==op)
9340 Werror(
"expected %s(`%s`)"
9362 memcpy(&d->arg1,a,
sizeof(
sleftv));
9366 res->data=(
char *)d;
9379 res->data=bb->blackbox_Init(bb);
9380 return bb->blackbox_Assign(
res,a);
9390 if(!bb->blackbox_Op1(op,
res,a))
return FALSE;
9410 const struct sValCmd3* dA3,
int at,
int bt,
int ct,
9421 while (dA3[
i].cmd==op)
9423 if ((at==dA3[
i].arg1)
9424 && (bt==dA3[
i].arg2)
9425 && (ct==dA3[
i].arg3))
9433 Print(
"call %s(%s,%s,%s)\n",
9435 if ((call_failed=dA3[
i].
p(
res,a,
b,c)))
9456 while (dA3[
i].cmd==op)
9472 Print(
"call %s(%s,%s,%s)\n",
9478 || (call_failed=dA3[
i].
p(
res,an,bn,cn)));
9527 Werror(
"`%s` is not defined",
s);
9533 Werror(
"%s(`%s`,`%s`,`%s`) failed"
9537 while (dA3[
i].cmd==op)
9539 if(((at==dA3[
i].arg1)
9541 ||(ct==dA3[
i].arg3))
9544 Werror(
"expected %s(`%s`,`%s`,`%s`)"
9573 memcpy(&d->arg1,a,
sizeof(
sleftv));
9575 memcpy(&d->arg2,
b,
sizeof(
sleftv));
9577 memcpy(&d->arg3,c,
sizeof(
sleftv));
9581 res->data=(
char *)d;
9593 if(!bb->blackbox_Op3(op,
res,a,
b,c))
return FALSE;
9643 if(
v==
NULL)
return failed;
9665 res->data=(
char *)d;
9670 memcpy(&d->arg1,a,
sizeof(
sleftv));
9703 if(!bb->blackbox_OpM(op,
res,a))
return FALSE;
9718 if ((args==
dArithM[
i].number_of_args)
9720 || ((
dArithM[
i].number_of_args==-2)&&(args>0)))
9818 Warn(
"outdated identifier `%s` used - please change your code",
9869 if (op==dArithTab[
p].cmd)
return dArithTab[
p].start;
9870 if (op<dArithTab[
p].cmd) e=
p-1;
9890 if (tok==
ANY_TYPE)
return "any_type";
9891 if (tok==
COMMAND)
return "command";
9892 if (tok==
NONE)
return "nothing";
9904 if (tok==
IDHDL)
return "identifier";
9940 cmdnames *pCmdL = (cmdnames*)a;
9941 cmdnames *pCmdR = (cmdnames*)
b;
9946 if(pCmdL->name==
NULL)
return 1;
9947 if(pCmdR->name==
NULL)
return -1;
9950 if(strcmp(pCmdL->name,
"$INVALID$")==0)
return -1;
9951 if(strcmp(pCmdR->name,
"$INVALID$")==0)
return 1;
9954 if (pCmdL->tokval==-1)
9956 if (pCmdR->tokval==-1)
9957 return strcmp(pCmdL->name, pCmdR->name);
9962 if(pCmdR->tokval==-1)
return -1;
9964 return strcmp(pCmdL->name, pCmdR->name);
10072 if(nPos<0)
return NULL;
10081 if(szName==
NULL)
return -1;
10086 Print(
"'%s' not found (%d)\n", szName, nIndex);
10106 const char *szName,
10129 if(szName==
NULL)
return -1;
10133 Print(
"'%s' already exists at %d\n", szName, nIndex);
10170 WerrorS(
"not implemented for non-commutative rings");
10192 WerrorS(
"not implemented for rings with rings as coeffients");
10199 WerrorS(
"domain required as coeffients");
10205 WarnS(
"considering the image in Q[...]");
10217 WerrorS(
"not implemented for rings with rings as coeffients (except ZZ)");
10223 int return_type=c->
m[0].
Typ();
10240 for (
unsigned i=0;
i<=(unsigned)c->
nr;
i++)
10245 if (bo) {
Werror(
"chinrem failed for list entry %d",
i+1);
break;}
10255 WerrorS(
"poly/ideal/module/matrix/list expected");
10265 cf=
cf->extRing->cf;
10274 Werror(
"wromg number of primes (%d:%d) for chinrem",pl->
nr+1,rl);
10281 if (
p->length()!=rl)
10283 Werror(
"wromg number of primes (%d:%d) for chinrem",
p->length(),rl);
10288 ideal *
x=(ideal *)
omAlloc(rl*
sizeof(ideal));
10294 for(
i=rl-1;
i>=0;
i--)
10296 if (c->
m[
i].
Typ()!=return_type)
10321 xx=(number *)
omAlloc(rl*
sizeof(number));
10322 for(
i=rl-1;
i>=0;
i--)
10334 Werror(
"bigint expected at pos %d",
i+1);
10341 number *q=(number *)
omAlloc(rl*
sizeof(number));
10344 for(
i=rl-1;
i>=0;
i--)
10351 for(
i=rl-1;
i>=0;
i--)
10363 Werror(
"bigint expected at pos %d",
i+1);
10379 res->data=(
char *)n;
10402 for(
i=rl-1;
i>=0;
i--)
10407 res->rtyp=return_type;
10417 for (
unsigned i=0;
i<=(unsigned)c->
nr;
i++)
10422 if (bo) {
Werror(
"farey failed for list entry %d",
i+1);
break;}
10435 if (at < bt)
return -1;
10436 if (at > bt)
return 1;
10437 int tab_pos=
iiTabIndex(dArithTab2,JJTAB2LEN,
'<');
10445 unsigned long ad=(
unsigned long)a->
Data();
10446 unsigned long bd=(
unsigned long)
b->Data();
10447 if (ad<bd)
return -1;
10448 else if (ad==bd)
return 0;
10459 unsigned long ad=(
unsigned long)a->
Data();
10460 unsigned long bd=(
unsigned long)
b->Data();
10461 if (ad<bd)
return -1;
10462 else if (ad==bd)
return 0;
10465 else if (tmp.
data==
NULL)
return 1;
10493 for(
j=
i;
j<len;
j++)
l->m[
j]=
l->m[
j+1];
10494 memset(&(
l->m[len]),0,
sizeof(
sleftv));
ideal getMinorIdealCache(const matrix mat, const int minorSize, const int k, const ideal iSB, const int cacheStrategy, const int cacheN, const int cacheW, const bool allDifferent)
Returns the specified set of minors (= subdeterminantes) of the given matrix.
ideal getMinorIdeal(const matrix mat, const int minorSize, const int k, const char *algorithm, const ideal iSB, const bool allDifferent)
Returns the specified set of minors (= subdeterminantes) of the given matrix.
ideal getMinorIdealHeuristic(const matrix mat, const int minorSize, const int k, const ideal iSB, const bool allDifferent)
Returns the specified set of minors (= subdeterminantes) of the given matrix.
void atSet(idhdl root, char *name, void *data, int typ)
void * atGet(idhdl root, const char *name, int t, void *defaultReturnValue)
static int si_max(const int a, const int b)
static int si_min(const int a, const int b)
intvec * bim2iv(bigintmat *b)
bigintmat * bimMult(bigintmat *a, bigintmat *b)
bigintmat * bimSub(bigintmat *a, bigintmat *b)
bigintmat * bimAdd(bigintmat *a, bigintmat *b)
Matrix-Add/-Sub/-Mult so oder mit operator+/-/* ? @Note: NULL as a result means an error (non-compati...
#define BIMATELEM(M, I, J)
struct blackbox_list * getBlackboxTypes()
return array of all define types.
const char * getBlackboxName(const int t)
return the name to the type given by t (r/o)
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)
void printBlackboxTypes()
list all defined type (for debugging)
struct for containing list of blackbox names and the number of them.
const CanonicalForm CFMap CFMap & N
CanonicalForm map(const CanonicalForm &primElem, const Variable &alpha, const CanonicalForm &F, const Variable &beta)
map from to such that is mapped onto
int ipower(int b, int m)
int ipower ( int b, int m )
poly singclap_pmod(poly f, poly g, const ring r)
ideal singclap_factorize(poly f, intvec **v, int with_exps, const ring r)
poly singclap_pdivide(poly f, poly g, const ring r)
BOOLEAN singclap_extgcd(poly f, poly g, poly &res, poly &pa, poly &pb, const ring r)
number singclap_det_bi(bigintmat *m, const coeffs cf)
int singclap_det_i(intvec *m, const ring)
ideal singclap_sqrfree(poly f, intvec **v, int with_exps, const ring r)
void set(int i, int j, number n, const coeffs C=NULL)
replace an entry with a copy (delete old + copy new!). NOTE: starts at [1,1]
int compare(const bigintmat *op) const
idhdl get(const char *s, int lev)
idhdl get_level(const char *s, int lev)
intvec * delete_pos(int p)
void show(int mat=0, int spaces=0) const
int compare(const intvec *o) const
Class used for (list of) interpreter objects.
void CleanUp(ring r=currRing)
void Clean(ring r=currRing)
INLINE_THIS void Init(int l=0)
Coefficient rings, fields and other domains suitable for Singular polynomials.
static FORCE_INLINE int n_ParDeg(number n, const coeffs r)
static FORCE_INLINE number n_Mult(number a, number b, const coeffs r)
return the product of 'a' and 'b', i.e., a*b
static FORCE_INLINE number n_Param(const int iParameter, const coeffs r)
return the (iParameter^th) parameter as a NEW number NOTE: parameter numbering: 1....
static FORCE_INLINE long n_Int(number &n, const coeffs r)
conversion of n to an int; 0 if not possible in Z/pZ: the representing int lying in (-p/2 ....
static FORCE_INLINE number n_Add(number a, number b, const coeffs r)
return the sum of 'a' and 'b', i.e., a+b
static FORCE_INLINE number n_GetDenom(number &n, const coeffs r)
return the denominator of n (if elements of r are by nature not fractional, result is 1)
static FORCE_INLINE BOOLEAN nCoeff_is_Extension(const coeffs r)
static FORCE_INLINE number n_Random(siRandProc p, number p1, number p2, const coeffs cf)
@ n_algExt
used for all algebraic extensions, i.e., the top-most extension in an extension tower is algebraic
static FORCE_INLINE number n_Gcd(number a, number b, const coeffs r)
in Z: return the gcd of 'a' and 'b' in Z/nZ, Z/2^kZ: computed as in the case Z in Z/pZ,...
static FORCE_INLINE char * nCoeffString(const coeffs cf)
TODO: make it a virtual method of coeffs, together with: Decompose & Compose, rParameter & rPar.
static FORCE_INLINE BOOLEAN n_GreaterZero(number n, const coeffs r)
ordered fields: TRUE iff 'n' is positive; in Z/pZ: TRUE iff 0 < m <= roundedBelow(p/2),...
static FORCE_INLINE nMapFunc n_SetMap(const coeffs src, const coeffs dst)
set the mapping function pointers for translating numbers from src to dst
static FORCE_INLINE number n_InpNeg(number n, const coeffs r)
in-place negation of n MUST BE USED: n = n_InpNeg(n) (no copy is returned)
static FORCE_INLINE void n_Power(number a, int b, number *res, const coeffs r)
fill res with the power a^b
static FORCE_INLINE number n_Farey(number a, number b, const coeffs r)
static FORCE_INLINE number n_Div(number a, number b, const coeffs r)
return the quotient of 'a' and 'b', i.e., a/b; raises an error if 'b' is not invertible in r exceptio...
static FORCE_INLINE number n_RePart(number i, const coeffs cf)
static FORCE_INLINE BOOLEAN n_IsZero(number n, const coeffs r)
TRUE iff 'n' represents the zero element.
static FORCE_INLINE int n_Size(number n, const coeffs r)
return a non-negative measure for the complexity of n; return 0 only when n represents zero; (used fo...
static FORCE_INLINE number n_Sub(number a, number b, const coeffs r)
return the difference of 'a' and 'b', i.e., a-b
static FORCE_INLINE number n_ChineseRemainderSym(number *a, number *b, int rl, BOOLEAN sym, CFArray &inv_cache, const coeffs r)
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
static FORCE_INLINE char * nCoeffName(const coeffs cf)
static FORCE_INLINE number n_ExtGcd(number a, number b, number *s, number *t, const coeffs r)
beware that ExtGCD is only relevant for a few chosen coeff. domains and may perform something unexpec...
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
static FORCE_INLINE number n_IntMod(number a, number b, const coeffs r)
for r a field, return n_Init(0,r) always: n_Div(a,b,r)*b+n_IntMod(a,b,r)==a n_IntMod(a,...
static FORCE_INLINE BOOLEAN n_Equal(number a, number b, const coeffs r)
TRUE iff 'a' and 'b' represent the same number; they may have different representations.
static FORCE_INLINE number n_GetNumerator(number &n, const coeffs r)
return the numerator of n (if elements of r are by nature not fractional, result is n)
static FORCE_INLINE number n_SubringGcd(number a, number b, const coeffs r)
static FORCE_INLINE number n_ImPart(number i, const coeffs cf)
number(* nMapFunc)(number a, const coeffs src, const coeffs dst)
maps "a", which lives in src, into dst
static FORCE_INLINE void n_Normalize(number &n, const coeffs r)
inplace-normalization of n; produces some canonical representation of n;
static FORCE_INLINE BOOLEAN nCoeff_is_transExt(const coeffs r)
TRUE iff r represents a transcendental extension field.
static BOOLEAN pa(leftv res, leftv args)
static BOOLEAN pb(leftv res, leftv args)
const CanonicalForm int s
const Variable & v
< [in] a sqrfree bivariate poly
‘factory.h’ is the user interface to Factory.
VAR void(* WerrorS_callback)(const char *s)
FILE * feFopen(const char *path, const char *mode, char *where, short useWerror, short path_only)
void WerrorS(const char *s)
static void * feOptValue(feOptIndex opt)
VAR char my_yylinebuf[80]
void monitor(void *F, int mode)
void newBuffer(char *s, feBufferTypes t, procinfo *pi, int lineno)
This file is work in progress and currently not part of the official Singular.
matrix singflint_kernel(matrix m, const ring R)
int iiTestConvert(int inputType, int outputType)
const char * iiTwoOps(int t)
static int RingDependend(int t)
BOOLEAN yyInRingConstruction
ideal scKBase(int deg, ideal s, ideal Q, intvec *mv)
int scDimIntRing(ideal vid, ideal Q)
scDimInt for ring-coefficients
long scMult0Int(ideal S, ideal Q)
intvec * scIndIntvec(ideal S, ideal Q)
int lp_kDim(const ideal _G)
int lp_gkDim(const ideal _G)
int scMultInt(ideal S, ideal Q)
poly hFirstSeries0m(ideal A, ideal Q, intvec *wdegree, intvec *shifts, const ring src, const ring Qt)
poly hFirstSeries0p(ideal A, ideal Q, intvec *wdegree, const ring src, const ring Qt)
intvec * hSecondSeries(intvec *hseries1)
intvec * hFirstSeries(ideal A, intvec *module_w, ideal Q, intvec *wdegree)
bigintmat * hFirstSeries0b(ideal I, ideal Q, intvec *wdegree, intvec *shifts, const ring src, const coeffs biv_cf)
bigintmat * hSecondSeries0b(ideal I, ideal Q, intvec *wdegree, intvec *shifts, const ring src, const coeffs biv_cf)
void scDegree(ideal S, intvec *modulweight, ideal Q)
void hLookSeries(ideal S, intvec *modulweight, ideal Q, intvec *wdegree)
GbVariant syGetAlgorithm(char *n, const ring r, const ideal)
matrix idCoeffOfKBase(ideal arg, ideal kbase, poly how)
void idLiftW(ideal P, ideal Q, int n, matrix &T, ideal &R, int *w)
ideal idSyzygies(ideal h1, tHomog h, intvec **w, BOOLEAN setSyzComp, BOOLEAN setRegularity, int *deg, GbVariant alg)
matrix idDiff(matrix i, int k)
BOOLEAN idTestHomModule(ideal m, ideal Q, intvec *w)
ideal idLiftStd(ideal h1, matrix *T, tHomog hi, ideal *S, GbVariant alg, ideal h11)
ideal idQuot(ideal h1, ideal h2, BOOLEAN h1IsStb, BOOLEAN resultIsIdeal)
ideal idSeries(int n, ideal M, matrix U, intvec *w)
ideal idMinEmbedding_with_map_v(ideal arg, intvec **w, ideal &trans, int *g)
matrix idDiffOp(ideal I, ideal J, BOOLEAN multiply)
ideal idElimination(ideal h1, poly delVar, intvec *hilb, GbVariant alg)
ideal idSect(ideal h1, ideal h2, GbVariant alg)
ideal idMultSect(resolvente arg, int length, GbVariant alg)
ideal idLift(ideal mod, ideal submod, ideal *rest, BOOLEAN goodShape, BOOLEAN isSB, BOOLEAN divide, matrix *unit, GbVariant alg)
represents the generators of submod in terms of the generators of mod (Matrix(SM)*U-Matrix(rest)) = M...
ideal idModulo(ideal h2, ideal h1, tHomog hom, intvec **w, matrix *T, GbVariant alg)
ideal idMinBase(ideal h1, ideal *SB)
ideal id_Farey(ideal x, number N, const ring r)
ideal idMinEmbedding(ideal arg, BOOLEAN inPlace, intvec **w)
#define idDelete(H)
delete an ideal
#define idSimpleAdd(A, B)
ideal id_Copy(ideal h1, const ring r)
copy an ideal
static BOOLEAN idIsZeroDim(ideal i)
static BOOLEAN idHomModule(ideal m, ideal Q, intvec **w)
static BOOLEAN idHomIdeal(ideal id, ideal Q=NULL)
static ideal idMult(ideal h1, ideal h2)
hh := h1 * h2
ideal idAdd(ideal h1, ideal h2)
h1 + h2
#define idMaxIdeal(D)
initialise the maximal ideal (at 0)
static intvec * idSort(ideal id, BOOLEAN nolex=TRUE)
ideal interpolation(const std::vector< ideal > &L, intvec *v)
static BOOLEAN length(leftv result, leftv arg)
intvec * ivSub(intvec *a, intvec *b)
intvec * ivAdd(intvec *a, intvec *b)
intvec * ivMult(intvec *a, intvec *b)
intvec * ivTranp(intvec *o)
intvec * ivCopy(const intvec *o)
#define IMATELEM(M, I, J)
static BOOLEAN jjUMINUS_MA(leftv res, leftv u)
static BOOLEAN jjOP_BIM_I(leftv res, leftv u, leftv v)
static BOOLEAN jjRANK1(leftv res, leftv v)
static BOOLEAN jjINDEX_V_IV(leftv res, leftv u, leftv v)
static BOOLEAN jjIMPART(leftv res, leftv v)
static BOOLEAN jjIm2Iv(leftv res, leftv v)
static BOOLEAN jjQUOT(leftv res, leftv u, leftv v)
static BOOLEAN jjUMINUS_IV(leftv res, leftv u)
static BOOLEAN jjOPPOSITE(leftv res, leftv a)
static int _gentable_sort_cmds(const void *a, const void *b)
compares to entry of cmdsname-list
BOOLEAN jjWAITALL1(leftv res, leftv u)
static BOOLEAN jjRESTART(leftv, leftv u)
static BOOLEAN jjidHead(leftv res, leftv v)
static BOOLEAN jjHILBERT(leftv, leftv v)
static BOOLEAN jjTIMES_MA_P1(leftv res, leftv u, leftv v)
static BOOLEAN jjLEADMONOM(leftv res, leftv v)
static BOOLEAN jjOP_IV_I(leftv res, leftv u, leftv v)
static BOOLEAN jjstrlen(leftv res, leftv v)
static BOOLEAN jjBRACK_Bim(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjEXTGCD_P(leftv res, leftv u, leftv v)
static BOOLEAN jjDET_BI(leftv res, leftv v)
BOOLEAN jjWAIT1ST1(leftv res, leftv u)
BOOLEAN jjLOAD(const char *s, BOOLEAN autoexport)
load lib/module given in v
static BOOLEAN jjMATRIX_Mo(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjP2I(leftv res, leftv v)
static BOOLEAN jjIS_RINGVAR_P(leftv res, leftv v)
static BOOLEAN jjDOTDOT(leftv res, leftv u, leftv v)
static BOOLEAN jjFWALK3(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjREPART(leftv res, leftv v)
static BOOLEAN jjTIMES_MA_BI2(leftv res, leftv u, leftv v)
static BOOLEAN jjMAP(leftv res, leftv u, leftv v)
static BOOLEAN jjGT_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjN2BI(leftv res, leftv v)
static BOOLEAN jjRESERVEDLIST0(leftv res, leftv)
static BOOLEAN jjCHAR(leftv res, leftv v)
static BOOLEAN jjOP_I_IM(leftv res, leftv u, leftv v)
static BOOLEAN jjBRACK_Ma_IV_I(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjROWS_IV(leftv res, leftv v)
static BOOLEAN jjLIFTSTD(leftv res, leftv u, leftv v)
static BOOLEAN jjNULL(leftv, leftv)
static BOOLEAN jjNEWSTRUCT2(leftv, leftv u, leftv v)
static BOOLEAN jjBIV2IV(leftv res, leftv v)
static BOOLEAN jjMONITOR2(leftv res, leftv u, leftv v)
static BOOLEAN jjDIM(leftv res, leftv v)
static BOOLEAN jjCOUNT_BIM(leftv res, leftv v)
static BOOLEAN jjBRACKET(leftv res, leftv a, leftv b)
static BOOLEAN jjCOLS_IV(leftv res, leftv v)
static BOOLEAN jjNAMES_I(leftv res, leftv v)
static BOOLEAN jjMULT(leftv res, leftv v)
static BOOLEAN jjHOMOG1_WI(leftv res, leftv v, leftv u)
static BOOLEAN jjPARDEG(leftv res, leftv v)
static BOOLEAN jjDENOMINATOR(leftv res, leftv v)
Return the denominator of the input number.
static BOOLEAN jjRANDOM(leftv res, leftv u, leftv v)
static BOOLEAN jjIDEAL_Ma(leftv res, leftv v)
static BOOLEAN jjDIVISION(leftv res, leftv u, leftv v)
static BOOLEAN jjOP_I_IV(leftv res, leftv u, leftv v)
static BOOLEAN jjmpTransp(leftv res, leftv v)
static BOOLEAN jjOPTION_PL(leftv res, leftv v)
static BOOLEAN jjEQUAL_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjDET_S(leftv res, leftv v)
static BOOLEAN jjL2R(leftv res, leftv v)
static BOOLEAN jjREDUCE5(leftv res, leftv u)
static BOOLEAN jjrCharStr(leftv res, leftv v)
static BOOLEAN jjSUBST_Id_I(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjMINUS_B_P(leftv res, leftv u, leftv v)
static BOOLEAN jjHILBERT_IV(leftv res, leftv v)
int iiArithFindCmd(const char *szName)
static BOOLEAN jjIDEAL_R(leftv res, leftv v)
static BOOLEAN jjINDEPSET(leftv res, leftv v)
static BOOLEAN jjTYPEOF(leftv res, leftv v)
static BOOLEAN jjLU_SOLVE(leftv res, leftv v)
static BOOLEAN jjFACSTD(leftv res, leftv v)
static BOOLEAN jjMEMORY(leftv res, leftv v)
static BOOLEAN jjidTransp(leftv res, leftv v)
static BOOLEAN jjLIFT(leftv res, leftv u, leftv v)
static BOOLEAN jjUMINUS_BIM(leftv res, leftv u)
static BOOLEAN jjSUBST_Bu(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjTIMES_MA_N2(leftv res, leftv u, leftv v)
static BOOLEAN jjDIM_R(leftv res, leftv v)
BOOLEAN jjSORTLIST(leftv, leftv arg)
static BOOLEAN jjDUMP(leftv, leftv v)
static BOOLEAN jjpMaxComp(leftv res, leftv v)
static BOOLEAN jjCOEFFS1(leftv res, leftv v)
static BOOLEAN jjREDUCE3_ID(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjELIMIN_HILB(leftv res, leftv u, leftv v, leftv w)
static int jjCOMPARE_ALL(const void *aa, const void *bb)
static BOOLEAN jjNAMEOF(leftv res, leftv v)
static BOOLEAN jjPlural_mat_poly(leftv res, leftv a, leftv b)
static BOOLEAN jjTIMES_SM(leftv res, leftv u, leftv v)
static BOOLEAN jjMOD_BI(leftv res, leftv u, leftv v)
BOOLEAN jjUNIQLIST(leftv, leftv arg)
static BOOLEAN jjTIMES_MA_I2(leftv res, leftv u, leftv v)
static BOOLEAN jjSTATUS2L(leftv res, leftv u, leftv v)
BOOLEAN(* proc3)(leftv, leftv, leftv, leftv)
static BOOLEAN jjGT_I(leftv res, leftv u, leftv v)
static BOOLEAN jjPRIME(leftv res, leftv v)
static BOOLEAN jjPFAC2(leftv res, leftv u, leftv v)
static BOOLEAN jjidVec2Ideal(leftv res, leftv v)
static BOOLEAN jjJACOB_P(leftv res, leftv v)
static BOOLEAN jjSQR_FREE(leftv res, leftv u)
static BOOLEAN jjSTD_HILB_W(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjEQUAL_I(leftv res, leftv u, leftv v)
static BOOLEAN jjTIMES_MA_P2(leftv res, leftv u, leftv v)
static BOOLEAN jjMODULO3(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjSBA_1(leftv res, leftv v, leftv u)
static BOOLEAN jjCOEFFS3_P(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjCALL1MANY(leftv res, leftv u)
static BOOLEAN jjPLUS_MA(leftv res, leftv u, leftv v)
static BOOLEAN jjMINUS_V(leftv res, leftv u, leftv v)
static BOOLEAN jjINTERRED(leftv res, leftv v)
static BOOLEAN jjJACOB_M(leftv res, leftv a)
static BOOLEAN jjJET_ID_IV(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjTIMES_ID(leftv res, leftv u, leftv v)
static BOOLEAN jjBAREISS(leftv res, leftv v)
static BOOLEAN jjREAD(leftv res, leftv v)
static BOOLEAN jjLT_N(leftv res, leftv u, leftv v)
static BOOLEAN jjMINUS_MA(leftv res, leftv u, leftv v)
static BOOLEAN jjFactModD_M(leftv res, leftv v)
static BOOLEAN jjMATRIX_Id(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjEXTGCD_I(leftv res, leftv u, leftv v)
static BOOLEAN jjIS_RINGVAR_S(leftv res, leftv v)
static BOOLEAN jjDelete_ID(leftv res, leftv u, leftv v)
static BOOLEAN jjLE_N(leftv res, leftv u, leftv v)
static BOOLEAN jjSUBST_P(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjROWS_BIM(leftv res, leftv v)
static BOOLEAN jjCOMPARE_S(leftv res, leftv u, leftv v)
int iiInitArithmetic()
initialisation of arithmetic structured data
static BOOLEAN jjOR_I(leftv res, leftv u, leftv v)
static BOOLEAN jjTIMES_MA_I1(leftv res, leftv u, leftv v)
static BOOLEAN jjLIFTSTD_SYZ(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjBAREISS3(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjRESERVED0(leftv, leftv)
static BOOLEAN jjTIMES_MA_N1(leftv res, leftv u, leftv v)
static BOOLEAN jjLIFT_4(leftv res, leftv U)
static BOOLEAN jjSLIM_GB(leftv res, leftv u)
static BOOLEAN jjMSTD(leftv res, leftv v)
static BOOLEAN jjBREAK1(leftv, leftv v)
static BOOLEAN jjJET_ID_M(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjMINUS_BIM(leftv res, leftv u, leftv v)
static BOOLEAN jjnInt(leftv res, leftv u)
static BOOLEAN jjSQR_FREE2(leftv res, leftv u, leftv dummy)
static BOOLEAN jjCOEFFS3_Id(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjREGULARITY(leftv res, leftv v)
static BOOLEAN jjHOMOG_W_M(leftv res, leftv v1, leftv v2, leftv v3)
static BOOLEAN jjMINUS_N(leftv res, leftv u, leftv v)
static BOOLEAN jjBREAK0(leftv, leftv)
static BOOLEAN jjTRACE_IV(leftv res, leftv v)
BOOLEAN iiExprArith2(leftv res, leftv a, int op, leftv b, BOOLEAN proccall)
static BOOLEAN jjMONOM(leftv res, leftv v)
static BOOLEAN jjSort_Id(leftv res, leftv v)
static BOOLEAN jjCOEF_M(leftv, leftv v)
static BOOLEAN jjidMinBase(leftv res, leftv v)
static BOOLEAN jjDEG_IV(leftv res, leftv u, leftv v)
static BOOLEAN jjRING_2(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjMINUS_IV(leftv res, leftv u, leftv v)
static BOOLEAN jjPREIMAGE_R(leftv res, leftv v)
static BOOLEAN jjHOMOG_P(leftv res, leftv u, leftv v)
static BOOLEAN jjBRACK_Im(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjMATRIX_Ma(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjidMaxIdeal(leftv res, leftv v)
static BOOLEAN jjMINOR_M(leftv res, leftv v)
static BOOLEAN jjCOUNT_BI(leftv res, leftv v)
static BOOLEAN jjPROC3(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjKERNEL_M(leftv res, leftv v)
static BOOLEAN jjCOLS_BIM(leftv res, leftv v)
static BOOLEAN jjREDUCE3_CP(leftv res, leftv u, leftv v, leftv w)
struct sValCmd3 * psValCmd3
static BOOLEAN jjBRACK_Ma_I_IV(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjLE_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjPLUS_B_P(leftv res, leftv u, leftv v)
static BOOLEAN jjPlural_mat_mat(leftv res, leftv a, leftv b)
static BOOLEAN jjIDEAL_Map(leftv res, leftv v)
static BOOLEAN jjPARSTR2(leftv res, leftv u, leftv v)
BOOLEAN(* proc2)(leftv, leftv, leftv)
static BOOLEAN jjKoszul(leftv res, leftv u, leftv v)
static BOOLEAN jjTIMES_N(leftv res, leftv u, leftv v)
static BOOLEAN jjINTERSECT_PL(leftv res, leftv v)
static BOOLEAN jjTIMES_MA(leftv res, leftv u, leftv v)
static BOOLEAN jjTIMES_IV(leftv res, leftv u, leftv v)
static BOOLEAN jjPLUS_I(leftv res, leftv u, leftv v)
static BOOLEAN jjINTERSEC3S(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjRES3(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjBIGINTVEC_PL(leftv res, leftv v)
static BOOLEAN jjJET_P_IV(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjREDUCE_ID(leftv res, leftv u, leftv v)
static BOOLEAN jjCOEF(leftv res, leftv u, leftv v)
BOOLEAN iiExprArith3Tab(leftv res, leftv a, int op, const struct sValCmd3 *dA3, int at, const struct sConvertTypes *dConvertTypes)
apply an operation 'op' to arguments a, a->next and a->next->next return TRUE on failure
static BOOLEAN jjOP_REST(leftv res, leftv u, leftv v)
static BOOLEAN jjEXECUTE(leftv, leftv v)
static BOOLEAN jjDEG_M_IV(leftv res, leftv u, leftv v)
static BOOLEAN jjSTATUS3(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjLEADEXP(leftv res, leftv v)
static BOOLEAN jjDEG_M(leftv res, leftv u)
static BOOLEAN jjPLUS_IV(leftv res, leftv u, leftv v)
static BOOLEAN jjDIFF_COEF(leftv res, leftv u, leftv v)
int iiArithRemoveCmd(char *szName)
static BOOLEAN jjGE_N(leftv res, leftv u, leftv v)
static BOOLEAN jjEQUAL_SM(leftv res, leftv u, leftv v)
static BOOLEAN jjINTERPOLATION(leftv res, leftv l, leftv v)
static BOOLEAN jjSIMPL_ID(leftv res, leftv u, leftv v)
static BOOLEAN jjRING3(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjREDUCE_P(leftv res, leftv u, leftv v)
static BOOLEAN jjDIV_Ma(leftv res, leftv u, leftv v)
static BOOLEAN jjFRES3(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjMODULO(leftv res, leftv u, leftv v)
static BOOLEAN jjCOMPARE_IV(leftv res, leftv u, leftv v)
STATIC_VAR int WerrorS_dummy_cnt
static BOOLEAN jjREAD2(leftv res, leftv u, leftv v)
static BOOLEAN jjREDUCE3_P(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjPAR1(leftv res, leftv v)
static BOOLEAN jjnlInt(leftv res, leftv u)
cmdnames * sCmds
array of existing commands
static BOOLEAN jjFAREY_ID(leftv res, leftv u, leftv v)
static BOOLEAN jjPLUS_ID(leftv res, leftv u, leftv v)
static BOOLEAN jjGCD_N(leftv res, leftv u, leftv v)
static BOOLEAN jjELIMIN(leftv res, leftv u, leftv v)
static BOOLEAN jjPLUSPLUS(leftv, leftv u)
static Subexpr jjMakeSub(leftv e)
static BOOLEAN jjCHINREM_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjROWS(leftv res, leftv v)
static BOOLEAN jjJET_ID(leftv res, leftv u, leftv v)
static BOOLEAN iiExprArith2TabIntern(leftv res, leftv a, int op, leftv b, BOOLEAN proccall, const struct sValCmd2 *dA2, int at, int bt, const struct sConvertTypes *dConvertTypes)
int IsCmd(const char *n, int &tok)
static BOOLEAN jjSBA(leftv res, leftv v)
static BOOLEAN jjOP_IM_I(leftv res, leftv u, leftv v)
static BOOLEAN jjJanetBasis(leftv res, leftv v)
static BOOLEAN jjKBASE(leftv res, leftv v)
static BOOLEAN jjTENSOR(leftv res, leftv u, leftv v)
static BOOLEAN jjmpTrace(leftv res, leftv v)
static BOOLEAN jjRING_PL(leftv res, leftv a)
static BOOLEAN jjREDUCE4(leftv res, leftv u)
static BOOLEAN jjFWALK(leftv res, leftv u, leftv v)
static BOOLEAN jjTEST(leftv, leftv v)
static BOOLEAN jjDIFF_ID_ID(leftv res, leftv u, leftv v)
static BOOLEAN jjSYZ_2(leftv res, leftv u, leftv v)
static BOOLEAN jjPRUNE(leftv res, leftv v)
EXTERN_VAR int singclap_factorize_retry
static BOOLEAN jjDIVISION4(leftv res, leftv v)
unsigned nLastIdentifier
valid identifiers are slot 1..nLastIdentifier
static BOOLEAN jjDEFINED(leftv res, leftv v)
static BOOLEAN jjLagSolve(leftv res, leftv v)
static BOOLEAN jjRING_1(leftv res, leftv u, leftv v)
static BOOLEAN jjVDIM(leftv res, leftv v)
static BOOLEAN jjOP_I_BIM(leftv res, leftv u, leftv v)
static BOOLEAN jjCOUNT_N(leftv res, leftv v)
static BOOLEAN jjHILBERT2(leftv res, leftv u, leftv v)
static BOOLEAN jjFIND2(leftv res, leftv u, leftv v)
static BOOLEAN jjCOEF_Id(leftv res, leftv u, leftv v)
static BOOLEAN jjP2N(leftv res, leftv v)
static BOOLEAN jjE(leftv res, leftv v)
static BOOLEAN jjPOWER_ID(leftv res, leftv u, leftv v)
static BOOLEAN jjTIMES_MA_BI1(leftv res, leftv u, leftv v)
BOOLEAN iiExprArith1(leftv res, leftv a, int op)
static BOOLEAN jjSTD_HILB_WP(leftv res, leftv INPUT)
static BOOLEAN jjLISTRING(leftv res, leftv v)
static BOOLEAN jjCOEFFS2_KB(leftv res, leftv u, leftv v)
static BOOLEAN jjLIFTSTD_M(leftv res, leftv U)
static BOOLEAN jjELIMIN_ALG(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjVAR1(leftv res, leftv v)
static BOOLEAN jjLEADCOEF(leftv res, leftv v)
static BOOLEAN jjVARSTR2(leftv res, leftv u, leftv v)
static BOOLEAN jjPLUS_N(leftv res, leftv u, leftv v)
static BOOLEAN jjSUBST_Id_X(leftv res, leftv u, leftv v, leftv w, int input_type)
static BOOLEAN jjUMINUS_BI(leftv res, leftv u)
int iiArithAddCmd(const char *szName, short nAlias, short nTokval, short nToktype, short nPos=-1)
static BOOLEAN jjpLength(leftv res, leftv v)
static BOOLEAN jjJET_P_P(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjLT_I(leftv res, leftv u, leftv v)
static BOOLEAN jjIS_RINGVAR0(leftv res, leftv)
static BOOLEAN jjEXTGCD_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjBI2P(leftv res, leftv u)
static BOOLEAN jjTWOSTD(leftv res, leftv a)
static BOOLEAN jjGCD_I(leftv res, leftv u, leftv v)
static BOOLEAN jjCONTRACT(leftv res, leftv u, leftv v)
static BOOLEAN jjFAC_P(leftv res, leftv u)
static BOOLEAN jjREDUCE3_CID(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjFAREY_LI(leftv res, leftv u, leftv v)
static BOOLEAN jjTRANSP_BIM(leftv res, leftv v)
static BOOLEAN jjCOUNT_RES(leftv res, leftv v)
static BOOLEAN jjDelete_IV(leftv res, leftv u, leftv v)
static BOOLEAN jjGE_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjrOrdStr(leftv res, leftv v)
static BOOLEAN jjKERNEL(leftv res, leftv u, leftv v)
static BOOLEAN jjINTERSECT3(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjBRACK_Ma(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjMOD_N(leftv res, leftv u, leftv v)
static BOOLEAN jjLOAD_E(leftv, leftv v, leftv u)
static BOOLEAN jjNEWSTRUCT3(leftv, leftv u, leftv v, leftv w)
static BOOLEAN jjHOMOG_P_W(leftv res, leftv u, leftv v, leftv)
static BOOLEAN jjpHead(leftv res, leftv v)
static BOOLEAN jjSUBST_Id(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjEQUAL_R(leftv res, leftv u, leftv v)
static BOOLEAN jjCOUNT_L(leftv res, leftv v)
struct sValCmdM * psValCmdM
static BOOLEAN jjDET_I(leftv res, leftv v)
static BOOLEAN jjCOUNT_RG(leftv res, leftv v)
static BOOLEAN jjSMATRIX_Mo(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjINTERSECT(leftv res, leftv u, leftv v)
static BOOLEAN jjrVarStr(leftv res, leftv v)
static BOOLEAN jjOP_BI_BIM(leftv res, leftv u, leftv v)
static BOOLEAN jjDIFF_P(leftv res, leftv u, leftv v)
static BOOLEAN check_valid(const int p, const int op)
static BOOLEAN jjSTRING_PL(leftv res, leftv v)
static BOOLEAN jjMINUS_B(leftv res, leftv u, leftv v)
static BOOLEAN jjRSUM(leftv res, leftv u, leftv v)
static BOOLEAN jjINDEX_I(leftv res, leftv u, leftv v)
static BOOLEAN jjPOWER_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjMONITOR1(leftv res, leftv v)
static BOOLEAN jjKLAMMER_IV(leftv res, leftv u, leftv v)
static BOOLEAN jjFETCH(leftv res, leftv u, leftv v)
static BOOLEAN jjCALL3ARG(leftv res, leftv u)
static BOOLEAN jjSTD_1(leftv res, leftv u, leftv v)
static BOOLEAN jjUMINUS_N(leftv res, leftv u)
static BOOLEAN jjNUMERATOR(leftv res, leftv v)
Return the numerator of the input number.
static BOOLEAN jjORD(leftv res, leftv v)
static BOOLEAN jjTIMES_P(leftv res, leftv u, leftv v)
static BOOLEAN jjUMINUS_I(leftv res, leftv u)
static BOOLEAN jjPREIMAGE(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjBRACK_Ma_IV_IV(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjMRES_MAP(leftv res, leftv u, leftv v, leftv ma)
static BOOLEAN jjPLUS_SM(leftv res, leftv u, leftv v)
BOOLEAN jjLOAD_TRY(const char *s)
static BOOLEAN jjLIFT3(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjENVELOPE(leftv res, leftv a)
static BOOLEAN jjSetRing(leftv, leftv u)
static BOOLEAN jjMINUS_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjTIMES_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjFACSTD2(leftv res, leftv v, leftv w)
static BOOLEAN jjINTVEC_PL(leftv res, leftv v)
STATIC_VAR SArithBase sArithBase
Base entry for arithmetic.
static BOOLEAN jjEXPORTTO(leftv, leftv u, leftv v)
static BOOLEAN jjPlural_num_poly(leftv res, leftv a, leftv b)
static BOOLEAN jjDIV_P(leftv res, leftv u, leftv v)
static BOOLEAN jjKBASE2(leftv res, leftv u, leftv v)
static BOOLEAN jjPOWER_I(leftv res, leftv u, leftv v)
static BOOLEAN jjRES(leftv res, leftv u, leftv v)
static int iin_Int(number &n, coeffs cf)
static BOOLEAN jjPLUS_P_MA(leftv res, leftv u, leftv v)
static BOOLEAN jjMINRES_R(leftv res, leftv v)
static BOOLEAN jjCOLS(leftv res, leftv v)
static BOOLEAN jjPLUS_BIM(leftv res, leftv u, leftv v)
static BOOLEAN jjP2BI(leftv res, leftv v)
static void WerrorS_dummy(const char *)
static BOOLEAN jjGE_I(leftv res, leftv u, leftv v)
static BOOLEAN jjTRANSP_IV(leftv res, leftv v)
static BOOLEAN jjGT_N(leftv res, leftv u, leftv v)
static BOOLEAN jjUNIVARIATE(leftv res, leftv v)
static BOOLEAN jjMODULO4(leftv res, leftv u)
static BOOLEAN jjHOMOG_ID_W(leftv res, leftv u, leftv v, leftv)
static BOOLEAN jjWEDGE(leftv res, leftv u, leftv v)
EXTERN_VAR BOOLEAN expected_parms
static BOOLEAN jjCOMPARE_P(leftv res, leftv u, leftv v)
static BOOLEAN jjFIND3(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjLU_INVERSE(leftv res, leftv v)
static BOOLEAN jjMODULO3S(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjBAREISS_BIM(leftv res, leftv v)
static BOOLEAN jjPLUS_MA_P(leftv res, leftv u, leftv v)
static BOOLEAN jjSIMPL_P(leftv res, leftv u, leftv v)
static BOOLEAN jjPFAC1(leftv res, leftv v)
static BOOLEAN jjQRDS(leftv res, leftv INPUT)
static BOOLEAN jjELIMIN_IV(leftv res, leftv u, leftv v)
static BOOLEAN jjHILBERT3Qt(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjCONTENT(leftv res, leftv v)
static BOOLEAN jjDIFF_ID(leftv res, leftv u, leftv v)
static BOOLEAN jjSTD(leftv res, leftv v)
static BOOLEAN jjTIMES_BIM(leftv res, leftv u, leftv v)
static BOOLEAN jjTIMES_I(leftv res, leftv u, leftv v)
static BOOLEAN jjDIV_N(leftv res, leftv u, leftv v)
static BOOLEAN jjINTMAT3(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjCOUNT_IV(leftv res, leftv v)
static BOOLEAN jjFRES(leftv res, leftv u, leftv v)
unsigned nCmdAllocated
number of commands-slots allocated
static BOOLEAN jjDUMMY(leftv res, leftv u)
static BOOLEAN jjS2I(leftv res, leftv v)
static BOOLEAN jjKLAMMER(leftv res, leftv u, leftv v)
BOOLEAN iiExprArith2Tab(leftv res, leftv a, int op, const struct sValCmd2 *dA2, int at, const struct sConvertTypes *dConvertTypes)
apply an operation 'op' to arguments a and a->next return TRUE on failure
static BOOLEAN jjBI2N(leftv res, leftv u)
static BOOLEAN jjRIGHTSTD(leftv res, leftv v)
BOOLEAN iiExprArithM(leftv res, leftv a, int op)
static BOOLEAN jjCOMPARE_MA(leftv res, leftv u, leftv v)
BOOLEAN iiExprArith3(leftv res, int op, leftv a, leftv b, leftv c)
static BOOLEAN jjGETDUMP(leftv, leftv v)
static BOOLEAN jjidFreeModule(leftv res, leftv v)
static BOOLEAN jjFAREY_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjBRACKET_REC(leftv res, leftv a, leftv b, leftv c)
static BOOLEAN jjCOMPARE_IV_I(leftv res, leftv u, leftv v)
static BOOLEAN jjRANDOM_Im(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjRESERVEDNAME(leftv res, leftv v)
struct sValCmd1 * psValCmd1
static BOOLEAN jjDIVMOD_I(leftv res, leftv u, leftv v)
static BOOLEAN jjLE_I(leftv res, leftv u, leftv v)
static BOOLEAN jjTENSOR_Ma(leftv res, leftv u, leftv v)
static BOOLEAN jjCOEFFS3_KB(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN iiExprArith3TabIntern(leftv res, int op, leftv a, leftv b, leftv c, const struct sValCmd3 *dA3, int at, int bt, int ct, const struct sConvertTypes *dConvertTypes)
static BOOLEAN jjRMINUS(leftv res, leftv u, leftv v)
BOOLEAN jjPROC(leftv res, leftv u, leftv v)
static BOOLEAN jjPLUS_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjHILBERT3(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjDET2(leftv res, leftv u, leftv v)
static BOOLEAN jjSTD_HILB(leftv res, leftv u, leftv v)
static BOOLEAN jjAND_I(leftv res, leftv u, leftv v)
static BOOLEAN jjINDEX_P_IV(leftv res, leftv u, leftv v)
static BOOLEAN jjRPAR(leftv res, leftv v)
static BOOLEAN jjJanetBasis2(leftv res, leftv u, leftv v)
static BOOLEAN jjLOAD1(leftv, leftv v)
static BOOLEAN jjCOLON(leftv res, leftv u, leftv v)
const char * Tok2Cmdname(int tok)
static BOOLEAN jjRPLUS(leftv res, leftv u, leftv v)
static BOOLEAN jjKERNEL_SM(leftv res, leftv v)
static BOOLEAN jjCOLCOL(leftv res, leftv u, leftv v)
static BOOLEAN jjFAC_P2(leftv res, leftv u, leftv dummy)
static BOOLEAN jjHOMOG_ID(leftv res, leftv u, leftv v)
static BOOLEAN jjrParStr(leftv res, leftv v)
struct sValCmd2 * psValCmd2
static BOOLEAN jjDEG(leftv res, leftv v)
static BOOLEAN jjFETCH_M(leftv res, leftv u)
static BOOLEAN jjINDEX_V(leftv res, leftv u, leftv v)
static BOOLEAN jjRINGLIST(leftv res, leftv v)
static BOOLEAN jjidElem(leftv res, leftv v)
static BOOLEAN jjDIM2(leftv res, leftv v, leftv w)
static BOOLEAN jjOP_BIM_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjGCD_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjBI2IM(leftv res, leftv u)
static BOOLEAN jjRANK2(leftv res, leftv u, leftv v)
static BOOLEAN jjDEGREE(leftv res, leftv v)
static BOOLEAN jjLIFTSTD_ALG(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjINDEPSET2(leftv res, leftv u, leftv v)
static BOOLEAN jjWAITALL2(leftv res, leftv u, leftv v)
static BOOLEAN jjOpenClose(leftv, leftv v)
static BOOLEAN jjBRACK_S(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjUMINUS_P(leftv res, leftv u)
static BOOLEAN jjMINUS_SM(leftv res, leftv u, leftv v)
static BOOLEAN jjHIGHCORNER_M(leftv res, leftv v)
static BOOLEAN jjNAMES(leftv res, leftv v)
static BOOLEAN jjINDEX_P(leftv res, leftv u, leftv v)
static BOOLEAN jjHIGHCORNER(leftv res, leftv v)
static BOOLEAN jjEQUAL_Ma(leftv res, leftv u, leftv v)
static BOOLEAN jjNAMES0(leftv res, leftv)
static BOOLEAN jjLOAD2(leftv, leftv, leftv v)
static BOOLEAN jjALIGN_M(leftv res, leftv u, leftv v)
static BOOLEAN jjWAIT1ST2(leftv res, leftv u, leftv v)
static BOOLEAN jjDIV_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjCOMPARE_BIM(leftv res, leftv u, leftv v)
static BOOLEAN jjEQUAL_N(leftv res, leftv u, leftv v)
static BOOLEAN jjDelete_ID_IV(leftv res, leftv u, leftv v)
static BOOLEAN jjDET2_S(leftv res, leftv u, leftv v)
static BOOLEAN jjCOEFFS_Id(leftv res, leftv u, leftv v)
STATIC_VAR si_char_2 Tok2Cmdname_buf
static BOOLEAN jjPROC1(leftv res, leftv u)
static BOOLEAN jjNOT(leftv res, leftv v)
static BOOLEAN jjPARSTR1(leftv res, leftv v)
static BOOLEAN jjSUBST_Id_N(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjJET4(leftv res, leftv u)
static BOOLEAN jjOPPOSE(leftv res, leftv a, leftv b)
static BOOLEAN jjMOD_P(leftv res, leftv u, leftv v)
BOOLEAN iiExprArith1Tab(leftv res, leftv a, int op, const struct sValCmd1 *dA1, int at, const struct sConvertTypes *dConvertTypes)
apply an operation 'op' to an argument a return TRUE on failure
static BOOLEAN jjPLUS_B(leftv res, leftv u, leftv v)
static BOOLEAN jjGCD_P(leftv res, leftv u, leftv v)
static BOOLEAN jjHOMOG1(leftv res, leftv v)
static BOOLEAN jjDET(leftv res, leftv v)
static void jjEQUAL_REST(leftv res, leftv u, leftv v)
static BOOLEAN jjCOUNT_M(leftv res, leftv v)
static BOOLEAN jjPLUS_V(leftv res, leftv u, leftv v)
static BOOLEAN jjKoszul_Id(leftv res, leftv u, leftv v)
static BOOLEAN jjKLAMMER_rest(leftv res, leftv u, leftv v)
static BOOLEAN jjCHINREM_ID(leftv res, leftv u, leftv v)
static BOOLEAN jjPLUS_S(leftv res, leftv u, leftv v)
static BOOLEAN jjHOMOG1_W(leftv res, leftv v, leftv u)
static BOOLEAN jjSBA_2(leftv res, leftv v, leftv u, leftv t)
static BOOLEAN jjINDEX_IV(leftv res, leftv u, leftv v)
unsigned nCmdUsed
number of commands used
static BOOLEAN jjRING_LIST(leftv res, leftv v)
static BOOLEAN jjBRACK_SM(leftv res, leftv u, leftv v, leftv w)
static BOOLEAN jjSUBST_Test(leftv v, leftv w, int &ringvar, poly &monomexpr)
static BOOLEAN jjMINUS_I(leftv res, leftv u, leftv v)
static BOOLEAN jjJET_P(leftv res, leftv u, leftv v)
static BOOLEAN jjVARSTR1(leftv res, leftv v)
char * iiArithGetCmd(int nPos)
static BOOLEAN jjSTATUS_M(leftv res, leftv v)
static BOOLEAN jjCALL1ARG(leftv res, leftv v)
static BOOLEAN jjPRUNE_MAP(leftv res, leftv v, leftv ma)
static BOOLEAN jjLT_BI(leftv res, leftv u, leftv v)
static BOOLEAN jjPOWER_P(leftv res, leftv u, leftv v)
BOOLEAN jjLIST_PL(leftv res, leftv v)
static BOOLEAN jjPLUSMINUS_Gen(leftv res, leftv u, leftv v)
static BOOLEAN jjCALL2ARG(leftv res, leftv u)
static BOOLEAN jjINDEX_PBu(leftv res, leftv u, leftv v)
static int iiTabIndex(const jjValCmdTab dArithTab, const int len, const int op)
static BOOLEAN jjSYZYGY(leftv res, leftv v)
static BOOLEAN jjPOWER_N(leftv res, leftv u, leftv v)
static BOOLEAN jjKLAMMER_PL(leftv res, leftv u)
static BOOLEAN jjSUBST_M(leftv res, leftv u)
static BOOLEAN jjEQUAL_P(leftv res, leftv u, leftv v)
static BOOLEAN jjLU_DECOMP(leftv res, leftv v)
static BOOLEAN jjPlural_num_mat(leftv res, leftv a, leftv b)
static BOOLEAN jjIDEAL_PL(leftv res, leftv v)
static BOOLEAN jjNVARS(leftv res, leftv v)
static BOOLEAN jjERROR(leftv, leftv u)
static BOOLEAN jjSTATUS2(leftv res, leftv u, leftv v)
static BOOLEAN jjALIGN_V(leftv res, leftv u, leftv v)
static BOOLEAN jjRINGLIST_C(leftv res, leftv v)
BOOLEAN iiConvert(int inputType, int outputType, int index, leftv input, leftv output, const struct sConvertTypes *dConvertTypes)
const struct sConvertTypes dConvertTypes[]
VAR omBin sip_command_bin
lists ipNameListLev(idhdl root, int lev)
idhdl enterid(const char *s, int lev, int t, idhdl *root, BOOLEAN init, BOOLEAN search)
lists ipNameList(idhdl root)
EXTERN_VAR omBin sleftv_bin
BOOLEAN load_builtin(const char *newlib, BOOLEAN autoexport, SModulFunc_t init)
int(* SModulFunc_t)(SModulFunctions *)
BOOLEAN iiLoadLIB(FILE *fp, const char *libnamebuf, const char *newlib, idhdl pl, BOOLEAN autoexport, BOOLEAN tellerror)
char * iiConvName(const char *libname)
BOOLEAN iiGetLibStatus(const char *lib)
BOOLEAN iiMake_proc(idhdl pn, package pack, leftv args)
BOOLEAN iiTryLoadLib(leftv v, const char *id)
BOOLEAN load_modules(const char *newlib, char *fullname, BOOLEAN autoexport)
INST_VAR sleftv iiRETURNEXPR
SModulFunc_t iiGetBuiltinModInit(const char *libname)
lists rDecompose(const ring r)
lists rDecompose_list_cf(const ring r)
BOOLEAN iiCheckTypes(leftv args, const short *type_list, int report)
check a list of arguemys against a given field of types return TRUE if the types match return FALSE (...
ring rInit(leftv pn, leftv rv, leftv ord)
leftv iiMap(map theMap, const char *what)
int iiRegularity(lists L)
BOOLEAN rDecompose_CF(leftv res, const coeffs C)
void iiMakeResolv(resolvente r, int length, int rlen, char *name, int typ0, intvec **weights)
int exprlist_length(leftv v)
BOOLEAN mpKoszul(leftv res, leftv c, leftv b, leftv id)
poly iiHighCorner(ideal I, int ak)
lists scIndIndset(ideal S, BOOLEAN all, ideal Q)
idhdl rFindHdl(ring r, idhdl n)
syStrategy syConvList(lists li)
ring rCompose(const lists L, const BOOLEAN check_comp, const long bitmask, const int isLetterplace)
const char * lastreserved
lists syConvRes(syStrategy syzstr, BOOLEAN toDel, int add_row_shift)
BOOLEAN iiExport(leftv v, int toLev)
const struct sValCmd1 dArith1[]
BOOLEAN(* proc3)(leftv, leftv, leftv, leftv)
const struct sValCmd2 dArith2[]
BOOLEAN(* proc2)(leftv, leftv, leftv)
BOOLEAN setOption(leftv res, leftv v)
BOOLEAN(* proc1)(leftv, leftv)
const struct sValCmdM dArithM[]
const struct sValCmd3 dArith3[]
ideal id_Farey_0(ideal x, number N, const ring r)
ideal id_ChineseRemainder_0(ideal *xx, number *q, int rl, const ring r)
long kHomModDeg(poly p, const ring r)
ideal kMin_std(ideal F, ideal Q, tHomog h, intvec **w, ideal &M, intvec *hilb, int syzComp, int reduced)
ideal kInterRed(ideal F, const ideal Q)
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
ideal kSba(ideal F, ideal Q, tHomog h, intvec **w, int sbaOrder, int arri, intvec *hilb, int syzComp, int newIdeal, intvec *vw)
ideal kStd(ideal F, ideal Q, tHomog h, intvec **w, intvec *hilb, int syzComp, int newIdeal, intvec *vw, s_poly_proc_t sp)
ideal rightgb(ideal F, const ideal Q)
poly redNF(poly h, int &max_ind, int nonorm, kStrategy strat)
ideal_list kStdfac(ideal F, ideal Q, tHomog h, intvec **w, ideal D)
VAR char libnamebuf[1024]
static bool rIsSCA(const ring r)
ideal idOppose(ring Rop_src, ideal I, const ring Rop_dst)
opposes a module I from Rop to currRing(dst)
poly pOppose(ring Rop_src, poly p, const ring Rop_dst)
opposes a vector p from Rop to currRing (dst!)
BOOLEAN rIsLikeOpposite(ring rBase, ring rCandidate)
checks whether rings rBase and rCandidate could be opposite to each other returns TRUE if it is so
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,...
poly nc_p_Bracket_qq(poly p, const poly q, const ring r)
returns [p,q], destroys p
int luRank(const matrix aMat, const bool isRowEchelon, const ring R)
Computes the rank of a given (m x n)-matrix.
bool luInverseFromLUDecomp(const matrix pMat, const matrix lMat, const matrix uMat, matrix &iMat, const ring R)
This code computes the inverse by inverting lMat and uMat, and then performing two matrix multiplicat...
void henselFactors(const int xIndex, const int yIndex, const poly h, const poly f0, const poly g0, const int d, poly &f, poly &g)
Computes a factorization of a polynomial h(x, y) in K[[x]][y] up to a certain degree in x,...
bool luInverse(const matrix aMat, matrix &iMat, const ring R)
This code first computes the LU-decomposition of aMat, and then calls the method for inverting a matr...
void luDecomp(const matrix aMat, matrix &pMat, matrix &lMat, matrix &uMat, const ring R)
LU-decomposition of a given (m x n)-matrix.
bool luSolveViaLUDecomp(const matrix pMat, const matrix lMat, const matrix uMat, const matrix bVec, matrix &xVec, matrix &H)
Solves the linear system A * x = b, where A is an (m x n)-matrix which is given by its LU-decompositi...
lists qrDoubleShift(const matrix A, const number tol1, const number tol2, const number tol3, const ring r=currRing)
Computes all eigenvalues of a given real quadratic matrix with multiplicites.
BOOLEAN jjANY2LIST(leftv res, leftv v, int cnt)
LINLINE void nlDelete(number *a, const coeffs r)
LINLINE number nlInit(long i, const coeffs r)
void maFetchPermLP(const ring preimage_r, const ring dst_r, int *perm)
void maFindPerm(char const *const *const preim_names, int preim_n, char const *const *const preim_par, int preim_p, char const *const *const names, int n, char const *const *const par, int nop, int *perm, int *par_perm, n_coeffType ch)
void maFindPermLP(char const *const *const preim_names, int preim_n, char const *const *const preim_par, int preim_p, char const *const *const names, int n, char const *const *const par, int nop, int *perm, int *par_perm, n_coeffType ch, int lV)
poly pSubstPoly(poly p, int var, poly image)
ideal idSubstPoly(ideal id, int n, poly e)
BOOLEAN maApplyFetch(int what, map theMap, leftv res, leftv w, ring preimage_r, int *perm, int *par_perm, int P, nMapFunc nMap)
ideal idSubstPar(ideal id, int n, poly e)
poly pSubstPar(poly p, int par, poly image)
BOOLEAN mp_IsDiagUnit(matrix U, const ring R)
matrix mp_Wedge(matrix a, int ar, const ring R)
matrix mp_Transp(matrix a, const ring R)
ideal sm_Tensor(ideal A, ideal B, const ring r)
ideal sm_Add(ideal a, ideal b, const ring R)
matrix mp_CoeffProc(poly f, poly vars, const ring R)
matrix pMultMp(poly p, matrix a, const ring R)
void mp_Monomials(matrix c, int r, int var, matrix m, const ring R)
DetVariant mp_GetAlgorithmDet(matrix m, const ring r)
matrix mp_CoeffProcId(ideal I, poly vars, const ring R)
poly sm_Det(ideal a, const ring r, DetVariant d)
matrix mp_MultI(matrix a, long f, const ring R)
c = f*a
ideal sm_Sub(ideal a, ideal b, const ring R)
ideal sm_Mult(ideal a, ideal b, const ring R)
matrix mp_Sub(matrix a, matrix b, const ring R)
poly mp_Det(matrix a, const ring r, DetVariant d)
matrix mpNew(int r, int c)
create a r x c zero-matrix
int mp_Compare(matrix a, matrix b, const ring R)
BOOLEAN sm_Equal(ideal a, ideal b, const ring R)
matrix mp_Mult(matrix a, matrix b, const ring R)
BOOLEAN mp_Equal(matrix a, matrix b, const ring R)
matrix mp_Coeffs(ideal I, int var, const ring R)
corresponds to Maple's coeffs: var has to be the number of a variable
void mp_Coef2(poly v, poly mon, matrix *c, matrix *m, const ring R)
corresponds to Macauley's coef: the exponent vector of vars has to contain the variables,...
matrix mp_MultP(matrix a, poly p, const ring R)
multiply a matrix 'a' by a poly 'p', destroy the args
matrix mp_Copy(matrix a, const ring r)
copies matrix a (from ring r to r)
matrix mp_Add(matrix a, matrix b, const ring R)
matrix mp_InitP(int r, int c, poly p, const ring R)
make it a p * unit matrix
poly mp_Trace(matrix a, const ring R)
#define MATELEM(mat, i, j)
1-based access to matrix
lists primeFactorisation(const number n, const int pBound)
Factorises a given bigint number n into its prime factors less than or equal to a given bound,...
This file provides miscellaneous functionality.
lib_types type_of_LIB(const char *newlib, char *libnamebuf)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
BOOLEAN nuLagSolve(leftv res, leftv arg1, leftv arg2, leftv arg3)
find the (complex) roots an univariate polynomial Determines the roots of an univariate polynomial us...
The main handler for Singular numbers which are suitable for Singular polynomials.
ideal twostd(ideal I)
Compute two-sided GB:
void newstruct_setup(const char *n, newstruct_desc d)
newstruct_desc newstructChildFromString(const char *parent, const char *s)
newstruct_desc newstructFromString(const char *s)
CanonicalForm ndConvSingNFactoryN(number, BOOLEAN, const coeffs)
#define nPower(a, b, res)
#define omFreeSize(addr, size)
#define omRealloc(addr, size)
#define omFreeBin(addr, bin)
#define omFreeBinAddr(addr)
#define SI_RESTORE_OPT1(A)
#define SI_RESTORE_OPT2(A)
#define TEST_OPT_DEGBOUND
#define TEST_OPT_RETURN_SB
static int index(p_Length length, p_Ord ord)
void pRestoreDegProcs(ring r, pFDegProc old_FDeg, pLDegProc old_lDeg)
poly p_Homogen(poly p, int varnum, const ring r)
poly pp_DivideM(poly a, poly b, const ring r)
void p_Shift(poly *p, int i, const ring r)
shifts components of the vector p by i
void p_Normalize(poly p, const ring r)
int p_MaxExpPerVar(poly p, int i, const ring r)
max exponent of variable x_i in p
int p_Compare(const poly a, const poly b, const ring R)
poly p_Series(int n, poly p, poly u, intvec *w, const ring R)
long p_DegW(poly p, const int *w, const ring R)
poly p_Cleardenom(poly p, const ring r)
poly p_Vec2Poly(poly v, int k, const ring r)
void p_SetModDeg(intvec *w, ring r)
void pSetDegProcs(ring r, pFDegProc new_FDeg, pLDegProc new_lDeg)
long p_Deg(poly a, const ring r)
static poly p_Neg(poly p, const ring r)
static int pLength(poly a)
static long p_MinComp(poly p, ring lmRing, ring tailRing)
static void p_Delete(poly *p, const ring r)
static poly pp_Mult_qq(poly p, poly q, const ring r)
static long p_Totaldegree(poly p, const ring r)
void rChangeCurrRing(ring r)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
poly pp_Divide(poly p, poly q, const ring r)
polynomial division a/b, ignoring the rest via singclap_pdivide resp. idLift does not destroy a,...
poly singclap_gcd(poly f, poly g, const ring r)
polynomial gcd via singclap_gcd_r resp. idSyzygies destroys f and g
Compatibility layer for legacy polynomial operations (over currRing)
static long pTotaldegree(poly p)
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL
#define pIsConstant(p)
like above, except that Comp must be 0
#define pGetComp(p)
Component.
#define pSetCoeff(p, n)
deletes old coeff before setting the new one
#define pLmInit(p)
like pInit, except that expvector is initialized to that of p, p must be != NULL
#define pIsUnit(p)
return true if the Lm is a constant <>0
#define pLmDelete(p)
assume p != NULL, deletes Lm(p)->coef and Lm(p)
static void pLmFree(poly p)
frees the space of the monomial m, assumes m != NULL coef is not freed, m is not advanced
#define pSeries(n, p, u, w)
#define pGetExp(p, i)
Exponent.
#define pInit()
allocates a new monomial and initializes everything to 0
#define pEqualPolys(p1, p2)
#define pLmCmp(p, q)
returns 0|1|-1 if p=q|p>q|p<q w.r.t monomial ordering
#define pCopy(p)
return a copy of the poly
#define pLmFreeAndNext(p)
assumes p != NULL, deletes p, returns pNext(p)
ideal maGetPreimage(ring theImageRing, map theMap, ideal id, const ring dst_r)
const char feNotImplemented[]
void PrintS(const char *s)
void Werror(const char *fmt,...)
int rSum(ring r1, ring r2, ring &sum)
int r_IsRingVar(const char *n, char **names, int N)
ring rMinusVar(const ring r, char *v)
undo rPlusVar
BOOLEAN rSamePolyRep(ring r1, ring r2)
returns TRUE, if r1 and r2 represents the monomials in the same way FALSE, otherwise this is an analo...
char * rCharStr(const ring r)
TODO: make it a virtual method of coeffs, together with: Decompose & Compose, rParameter & rPar.
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)
ring rPlusVar(const ring r, char *v, int left)
K[x],"y" -> K[x,y] resp. K[y,x].
int n_IsParam(const number m, const ring r)
TODO: rewrite somehow...
static BOOLEAN rField_is_Zp_a(const ring r)
static BOOLEAN rField_is_Z(const ring r)
static BOOLEAN rField_is_Zp(const ring r)
static BOOLEAN rIsPluralRing(const ring r)
we must always have this test!
long(* pFDegProc)(poly p, ring r)
static ring rIncRefCnt(ring r)
static BOOLEAN rField_is_Domain(const ring r)
long(* pLDegProc)(poly p, int *length, ring r)
static int rPar(const ring r)
(r->cf->P)
static BOOLEAN rIsLPRing(const ring r)
static BOOLEAN rField_is_Q(const ring r)
static char const ** rParameter(const ring r)
(r->cf->parameter)
static BOOLEAN rField_is_numeric(const ring r)
BOOLEAN rHasMixedOrdering(const ring r)
static BOOLEAN rField_is_GF(const ring r)
static short rVar(const ring r)
#define rVar(r) (r->N)
BOOLEAN rHasLocalOrMixedOrdering(const ring r)
#define rField_is_Ring(R)
void sBucket_Add_p(sBucket_pt bucket, poly p, int length)
adds poly p to bucket destroys p!
void sBucketCanonicalize(sBucket_pt bucket)
sBucket_pt sBucketCreate(const ring r)
poly sBucketPeek(sBucket_pt b)
void sBucketDestroyAdd(sBucket_pt bucket, poly *p, int *length)
BOOLEAN sdb_set_breakpoint(const char *pp, int given_lineno)
BOOLEAN slPrepClose(si_link l)
leftv slRead(si_link l, leftv a)
BOOLEAN slDump(si_link l)
BOOLEAN slGetDump(si_link l)
const char * slStatus(si_link l, const char *request)
BOOLEAN slClose(si_link l)
BOOLEAN slOpen(si_link l, short flag, leftv h)
#define SI_LINK_SET_CLOSE_P(l)
int slStatusSsiL(lists L, int timeout, BOOLEAN *ignore=NULL)
ideal id_Vec2Ideal(poly vec, const ring R)
ideal idInit(int idsize, int rank)
initialise an ideal / module
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
void id_Norm(ideal id, const ring r)
ideal id = (id[i]), result is leadcoeff(id[i]) = 1
BOOLEAN id_HomModuleW(ideal id, ideal Q, const intvec *w, const intvec *module_w, const ring r)
void id_Normalize(ideal I, const ring r)
normialize all polys in id
ideal id_Transp(ideal a, const ring rRing)
transpose a module
ideal id_FreeModule(int i, const ring r)
the free module of rank i
ideal id_Homogen(ideal h, int varnum, const ring r)
ideal id_Power(ideal given, int exp, const ring r)
matrix id_Module2Matrix(ideal mod, const ring R)
ideal id_Head(ideal h, const ring r)
returns the ideals of initial terms
BOOLEAN id_HomIdealW(ideal id, ideal Q, const intvec *w, const ring r)
long id_RankFreeModule(ideal s, ring lmRing, ring tailRing)
return the maximal component number found in any polynomial in s
void id_DelDiv(ideal id, const ring r)
delete id[j], if LT(j) == coeff*mon*LT(i) and vice versa, i.e., delete id[i], if LT(i) == coeff*mon*L...
void id_DelMultiples(ideal id, const ring r)
ideal id = (id[i]), c any unit if id[i] = c*id[j] then id[j] is deleted for j > i
matrix id_Module2formatedMatrix(ideal mod, int rows, int cols, const ring R)
ideal id_Matrix2Module(matrix mat, const ring R)
converts mat to module, destroys mat
ideal id_ResizeModule(ideal mod, int rows, int cols, const ring R)
ideal id_Delete_Pos(const ideal I, const int p, const ring r)
void id_DelEquals(ideal id, const ring r)
ideal id = (id[i]) if id[i] = id[j] then id[j] is deleted for j > i
ideal id_Jet(const ideal i, int d, const ring R)
void id_DelLmEquals(ideal id, const ring r)
Delete id[j], if Lm(j) == Lm(i) and both LC(j), LC(i) are units and j > i.
ideal id_JetW(const ideal i, int d, intvec *iv, const ring R)
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
void id_Shift(ideal M, int s, const ring r)
ideal id_ChineseRemainder(ideal *xx, number *q, int rl, const ring r)
ideal id_Subst(ideal id, int n, poly e, const ring r)
static int idElem(const ideal F)
number of non-zero polys in F
void sm_CallBareiss(ideal I, int x, int y, ideal &M, intvec **iv, const ring R)
ideal sm_CallSolv(ideal I, const ring R)
EXTERN_VAR omBin char_ptr_bin
void syMake(leftv v, const char *id, package pa)
INST_VAR sleftv sLastPrinted
BOOLEAN assumeStdFlag(leftv h)
resolvente syResolvente(ideal arg, int maxlength, int *length, intvec ***weights, BOOLEAN minim)
syStrategy syMres_with_map(ideal arg, int maxlength, intvec *w, ideal &trans)
syStrategy syResolution(ideal arg, int maxlength, intvec *w, BOOLEAN minim)
ideal syMinBase(ideal arg)
syStrategy syHilb(ideal arg, int *length)
resolvente sySchreyerResolvente(ideal arg, int maxlength, int *length, BOOLEAN isMonomial=FALSE, BOOLEAN notReplace=FALSE)
syStrategy sySchreyer(ideal arg, int maxlength)
int syDim(syStrategy syzstr)
syStrategy syMinimize(syStrategy syzstr)
syStrategy syCopy(syStrategy syzstr)
syStrategy syKosz(ideal arg, int *length)
int sySize(syStrategy syzstr)
syStrategy syFrank(const ideal arg, const int length, const char *method, const bool use_cache=true, const bool use_tensor_trick=false)
syStrategy syLaScala3(ideal arg, int *length)
int name
New type name for int.
ideal t_rep_gb(const ring r, ideal arg_I, int syz_comp, BOOLEAN F4_mode)
number ntDiff(number a, number d, const coeffs cf)
ideal fractalWalkProc(leftv first, leftv second)
ideal walkProc(leftv first, leftv second)
int * iv2array(intvec *iv, const ring R)
BOOLEAN jjStdJanetBasis(leftv res, leftv v, int flag)
flag: 0: JB, 1: SB
#define omPrintBinStats(F)