MCPcopy Create free account
hub / github.com/Singular/Singular / jjIDEAL_PL

Function jjIDEAL_PL

Singular/iparith.cc:7482–7525  ·  view source on GitHub ↗

static BOOLEAN jjEXPORTTO_M(leftv res, leftv u) { int l=u->listLength(); if (l<2) return TRUE; BOOLEAN b; leftv v=u->next; leftv zz=v; leftv z=zz; u->next=NULL; do { leftv z=z->next; b=iiExprArith2(res,u,iiOp,z, (iiOp > 255)); if (b) break; } while (z!=NULL); u->next=zz; return b; }

Source from the content-addressed store, hash-verified

7480// return b;
7481//}
7482static BOOLEAN jjIDEAL_PL(leftv res, leftv v)
7483{
7484 int s=1;
7485 leftv h=v;
7486 if (h!=NULL) s=exprlist_length(h);
7487 ideal id=idInit(s,1);
7488 int rank=1;
7489 int i=0;
7490 poly p;
7491 int dest_type=POLY_CMD;
7492 if (iiOp==MODUL_CMD) dest_type=VECTOR_CMD;
7493 while (h!=NULL)
7494 {
7495 // use standard type conversions to poly/vector
7496 int ri;
7497 int ht=h->Typ();
7498 if (ht==dest_type)
7499 {
7500 p=(poly)h->CopyD();
7501 if (p!=NULL) rank=si_max(rank,(int)pMaxComp(p));
7502 }
7503 else if ((ri=iiTestConvert(ht,dest_type,dConvertTypes))!=0)
7504 {
7505 sleftv tmp;
7506 leftv hnext=h->next;
7507 h->next=NULL;
7508 iiConvert(ht,dest_type,ri,h,&tmp,dConvertTypes);
7509 h->next=hnext;
7510 p=(poly)tmp.data;
7511 if (p!=NULL) rank=si_max(rank,(int)pMaxComp(p));
7512 }
7513 else
7514 {
7515 idDelete(&id);
7516 return TRUE;
7517 }
7518 id->m[i]=p;
7519 i++;
7520 h=h->next;
7521 }
7522 id->rank=rank;
7523 res->data=(char *)id;
7524 return FALSE;
7525}
7526static BOOLEAN jjFETCH_M(leftv res, leftv u)
7527{
7528 ring r=(ring)u->Data();

Callers

nothing calls this directly

Calls 7

exprlist_lengthFunction · 0.85
idInitFunction · 0.85
si_maxFunction · 0.85
iiConvertFunction · 0.85
iiTestConvertFunction · 0.70
TypMethod · 0.45
CopyDMethod · 0.45

Tested by

no test coverage detected