 |
My Project
UNKNOWN_GIT_VERSION
|
Go to the documentation of this file.
24 #if (defined(__CYGWIN__))
37 static int Mask[8]={0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x1};
44 #define pow_(x) jDeg((x),currRing)
51 PrintS(
"T==================================\n");
60 PrintS(
"Q==================================\n");
63 if (it->info->root)
pWrite(it->info->root);
66 Print(
"%d.........",it->info->prolonged);
71 PrintS(
"===================================\n");
77 if (!
x->root || !
y->root)
122 if (!
x->root || !
y->root)
146 if (
p->root==
NULL)
return;
195 int pX=
pow_(
p->lead);
196 int phX=
pow_(
p->history);
200 int phF=
pow_(
f->history);
234 int pF=
pow_(
f->lead);
236 if ((pX == pF) && (pF == phF))
239 if (
p->history!=
NULL)
305 if (
x->root)
return 1;
424 return x->mult[
i/8] &
Mask[
i%8];
456 if (p1 ==
NULL)
return 1;
457 if (p2 ==
NULL)
return 0;
527 while ((*
min) && ((*min)->info->root ==
NULL))
537 if ((*l)->info->root !=
NULL)
560 if (
pLmCmp(
y->lead,(*ix)->info->lead) == -1)
587 if (!
y ||
pLmCmp(
y->info->lead,
x) < 0)
return 0;
605 if (!
y ||
pow_(
y->info->lead) <= pow_x)
return 0;
607 while(
y &&
pow_(
y->info->lead) > pow_x)
648 int ploc=
pow_(ll->info->lead);
649 if (ploc <
p)
p=ploc;
660 int ploc=
pow_((*l)->info->lead);
672 (*l)->info->changed=0;
676 if (!(*l)->info->root)
734 if (
pLmCmp(iF->info->root,
x) == 0)
748 if (
pow_(iT->info->lead) ==
pow_(iT->info->history))
793 go_right(current->left,disp);
794 if (current->ended) disp(current->ended);
795 go_right(current->right,disp);
801 go_right(t->root,disp);
825 if (
pow_(m2) == 0 &&
pow_(m1))
return 0;
838 if ((
x->ended) &&
sp_div(item,
x->ended->root,from))
843 div_l(item,
x->right,from);
857 NodeM *curr=tree->root;
859 if (!curr)
return NULL;
862 for ( ; i_con>=0 && !
pGetExp(item,i_con+1) ; i_con--)
865 for (
i=0;
i <= i_con ;
i++)
871 if (curr->ended)
return curr->ended;
884 if (curr->ended)
return curr->ended;
886 if (!curr->right)
return NULL;
891 if (curr->ended)
return curr->ended;
904 if ((xx->ended) && (
GetMult(xx->ended,
i)))
916 NodeM *curr=(*tree)->root;
918 for ( ; (i_con>=0) && !
pGetExp(item->
root,i_con+1) ; i_con--)
921 for (
i = 0;
i<= i_con;
i++)
943 if (!curr->right) curr->right=
create();
956 if (strstr(Ord,
"dp\0") || strstr(Ord,
"Dp\0"))
975 void insert_in_G(
Poly *
x)
1037 WarnS(
"Constant in basis\n");
void DestroyPoly(Poly *x)
void ClearProl(Poly *x, int i)
int ReducePoly(Poly *x, poly from, Poly *y)
#define pIsConstant(p)
like above, except that Comp might be != 0
static void pLmFree(poly p)
frees the space of the monomial m, assumes m != NULL coef is not freed, m is not advanced
Poly * is_present(jList *F, poly x)
const CanonicalForm int const CFList const Variable & y
void InsertInList(jList *x, Poly *y)
void ForEachPNF(jList *x, int i)
#define pGetExp(p, i)
Exponent.
long(* pFDegProc)(poly p, ring r)
number kBucketPolyRed(kBucket_pt bucket, poly p1, int l1, poly spNoether)
int GetProl(Poly *x, int i)
const poly kBucketGetLm(kBucket_pt bucket)
void p_SimpleContent(poly ph, int smax, const ring r)
int ComputeBasis(jList *_lT, jList *_lQ)
void InsertInCount(jList *x, Poly *y)
void InitHistory(Poly *p)
void Initialization(char *Ord)
static unsigned pLength(poly a)
void SetMult(Poly *x, int i)
void DestroyTree(NodeM *G)
void ForEachControlProlong(jList *x)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Poly * is_div_upper(poly item, NodeM *x, int from)
void PNF(Poly *p, TreeM *F)
void kBucketDestroy(kBucket_pt *bucket_pt)
void PrintS(const char *s)
void kBucketInit(kBucket_pt bucket, poly lm, int length)
void NFL(Poly *p, TreeM *F)
static int degree_compatible
int LengthCompare(poly p1, poly p2)
void SetProl(Poly *x, int i)
int ListGreatMoveDegree(jList *A, jList *B, poly x)
void(* poly_function)(Poly *)
void kBucketClear(kBucket_pt bucket, poly *p, int *length)
void ProlVar(Poly *temp, int i)
KINLINE poly ksOldSpolyRed(poly p1, poly p2, poly spNoether)
void ClearMult(Poly *x, int i)
#define pLmInit(p)
like pInit, except that expvector is initialized to that of p, p must be != NULL
void DestroyListNode(ListNode *x)
void DestroyList(jList *x)
ListNode * CreateListNode(Poly *x)
void p_ContentForGB(poly ph, const ring r)
long p_Deg(poly a, const ring r)
static void ClearMultiplicative(NodeM *xx, int i)
static int min(int a, int b)
static poly p_Copy_noCheck(poly p, const ring r)
returns a copy of p (without any additional testing)
Poly * FindMinList(jList *L)
static int(* ListGreatMove)(jList *, jList *, poly)
Poly * is_div_(TreeM *tree, poly item)
void ControlProlong(Poly *x)
void insert_(TreeM **tree, Poly *item)
int ReducePolyLead(Poly *x, Poly *y)
int ProlCompare(Poly *item1, Poly *item2)
void ksOldSpolyTail(poly p1, poly q, poly q2, poly spNoether, ring r)
static long p_Totaldegree(poly p, const ring r)
void div_l(poly item, NodeM *x, int from)
kBucket_pt kBucketCreate(const ring bucket_ring)
Creation/Destruction of buckets.
#define pLmCmp(p, q)
returns 0|1|-1 if p=q|p>q|p<q w.r.t monomial ordering
int status int void size_t count
int GetMult(Poly *x, int i)
int ListGreatMoveOrder(jList *A, jList *B, poly x)
#define pCopy(p)
return a copy of the poly
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
int ValidatePoly(Poly *x, TreeM *)
int sp_div(poly m1, poly m2, int from)