228{
229
230 poly
g =
p_One(startingRing);
238
239
243 int n =
rVar(originalRing);
244 int* shiftByOne = (
int*)
omAlloc((n+1)*
sizeof(
int));
245 for (
int i=1;
i<=n;
i++)
247 for (
int i=0;
i<
k;
i++)
248 {
249 if(originalIdeal->m[
i]!=
NULL)
250 {
251 J->m[
i] =
p_PermPoly(originalIdeal->m[
i],shiftByOne,originalRing,startingRing,nMap,
NULL,0);
252 }
253 }
255
258 ideal startingIdeal =
kNF(pt,startingRing->qideal,J);
260
262 startingIdeal->m[
k] = pt->m[0];
264
268 return startingIdeal;
269}
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)