230{
231
232 poly
g =
p_One(startingRing);
240
241
245 int n =
rVar(originalRing);
246 int* shiftByOne = (
int*)
omAlloc((n+1)*
sizeof(int));
247 for (
int i=1;
i<=n;
i++)
249 for (
int i=0;
i<
k;
i++)
250 {
251 if(originalIdeal->m[
i]!=
NULL)
252 {
253 J->m[
i] =
p_PermPoly(originalIdeal->m[
i],shiftByOne,originalRing,startingRing,nMap,
NULL,0);
254 }
255 }
257
260 ideal startingIdeal =
kNF(pt,startingRing->qideal,J);
262
264 startingIdeal->m[
k] = pt->m[0];
266
270 return startingIdeal;
271}
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_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
number(* nMapFunc)(number a, const coeffs src, const coeffs dst)
maps "a", which lives in src, into dst
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
#define omFreeSize(addr, size)
poly p_PermPoly(poly p, const int *perm, const ring oldRing, const ring dst, nMapFunc nMap, const int *par_perm, int OldPar, BOOLEAN use_mult)
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent @Note: VarOffset encodes the position in p->exp
static void p_Setm(poly p, const ring r)
static number p_SetCoeff(poly p, number n, ring r)
void rChangeCurrRing(ring r)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
static short rVar(const ring r)
#define rVar(r) (r->N)
ideal idInit(int idsize, int rank)
initialise an ideal / module
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
ideal gfanlib_kStd_wrapper(ideal I, ring r, tHomog h=testHomog)