30 else result = p_Init(dst_r);
34 for (
i=minvar;
i<=maxvar;
i++)
35 p_SetExp(resultWorkP,
i-minvar+1,p_GetExp(
p,
i,p_ring),dst_r);
36 p_SetComp(resultWorkP,
p_GetComp(
p,p_ring),dst_r);
37 n=n_Copy(pGetCoeff(
p),dst_r->cf);
39 p_Setm(resultWorkP,dst_r);
43 pNext(resultWorkP) = p_Init(dst_r);
59 ring sourcering = dst_r;
62 if (rIsPluralRing(theImageRing))
64 if ((rIsPluralRing(sourcering)) && (ncRingType(sourcering)!=
nc_comm))
66 WerrorS(
"Sorry, not yet implemented for noncomm. rings");
77 int imagepvariables = rVar(theImageRing);
78 int N = rVar(dst_r)+imagepvariables;
83 WerrorS(
"error in rSumInternal");
87 if (theImageRing->cf != dst_r->cf)
90 WerrorS(
"Coefficient fields/rings must be equal");
101 if (theImageRing->qideal!=
NULL)
j+=
IDELEMS(theImageRing->qideal);
102 temp1 =
idInit(sourcering->N+
j,1);
103 for (
i=0;
i<sourcering->N;
i++)
106 p_SetExp(q,
i+1+imagepvariables,1,tmpR);
124 temp1->m[
i] = p_SortMerge(
130 temp1->m[
i] = p_SortMerge(
131 pChangeSizeOfPoly(theImageRing, theImageRing->qideal->m[
i-sourcering->N-j0], 1, imagepvariables, tmpR),
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
void WerrorS(const char *s)
ideal kStd2(ideal F, ideal Q, tHomog h, intvec **w, bigintmat *hilb, int syzComp, int newIdeal, intvec *vw, s_poly_proc_t sp)
generic interface to GB/SB computations, large hilbert vectors
#define p_SetCoeff0(p, n, r)
#define SI_RESTORE_OPT2(A)
int p_LowVar(poly p, const ring r)
the minimal index of used variables - 1
poly p_ISet(long i, const ring r)
returns the poly representing the integer i
void pEnlargeSet(poly **p, int l, int increment)
void rChangeCurrRing(ring r)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Compatibility layer for legacy polynomial operations (over currRing).
ideal maGetPreimage(ring theImageRing, map theMap, ideal id, const ring dst_r)
static poly pChangeSizeOfPoly(ring p_ring, poly p, int minvar, int maxvar, const ring dst_r)
void rDelete(ring r)
unconditionally deletes fields in r
int rSumInternal(ring r1, ring r2, ring &sum, BOOLEAN vartest, BOOLEAN dp_dp)
returns -1 for not compatible, 1 for compatible (and sum) dp_dp:0: block ordering,...
ideal idInit(int idsize, int rank)
initialise an ideal / module
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size