 |
My Project
debian-1:4.1.1-p2+ds-4build3
|
#include "kernel/mod2.h"
#include "omalloc/omalloc.h"
#include "coeffs/numbers.h"
#include "polys/monomials/ring.h"
#include "polys/monomials/p_polys.h"
#include "polys/kbuckets.h"
#include "kernel/ideals.h"
#include "kernel/polys.h"
#include "kernel/GBEngine/kutil.h"
#include "kernel/GBEngine/janet.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <time.h>
Go to the source code of this file.
|
int | ReducePolyLead (Poly *x, Poly *y) |
|
int | ReducePoly (Poly *x, poly from, Poly *y) |
|
void | PNF (Poly *p, TreeM *F) |
|
void | NFL (Poly *p, TreeM *F) |
|
int | ValidatePoly (Poly *x, TreeM *) |
|
Poly * | NewPoly (poly p) |
|
void | DestroyPoly (Poly *x) |
|
void | ControlProlong (Poly *x) |
|
void | InitHistory (Poly *p) |
|
void | InitLead (Poly *p) |
|
void | InitProl (Poly *p) |
|
int | GetMult (Poly *x, int i) |
|
void | SetMult (Poly *x, int i) |
|
void | ClearMult (Poly *x, int i) |
|
int | GetProl (Poly *x, int i) |
|
void | SetProl (Poly *x, int i) |
|
void | ClearProl (Poly *x, int i) |
|
int | LengthCompare (poly p1, poly p2) |
|
int | ProlCompare (Poly *item1, Poly *item2) |
|
void | ProlVar (Poly *temp, int i) |
|
void | DestroyListNode (ListNode *x) |
|
ListNode * | CreateListNode (Poly *x) |
|
Poly * | FindMinList (jList *L) |
|
void | InsertInList (jList *x, Poly *y) |
|
void | InsertInCount (jList *x, Poly *y) |
|
int | ListGreatMoveOrder (jList *A, jList *B, poly x) |
|
int | ListGreatMoveDegree (jList *A, jList *B, poly x) |
|
int | CountList (jList *Q) |
|
void | NFListQ () |
|
void | ForEachPNF (jList *x, int i) |
|
void | ForEachControlProlong (jList *x) |
|
void | DestroyList (jList *x) |
|
Poly * | is_present (jList *F, poly x) |
|
int | GB_length () |
|
NodeM * | create () |
|
void | DestroyFreeNodes () |
|
void | DestroyTree (NodeM *G) |
|
void | Define (TreeM **G) |
|
int | sp_div (poly m1, poly m2, int from) |
|
void | div_l (poly item, NodeM *x, int from) |
|
Poly * | is_div_upper (poly item, NodeM *x, int from) |
|
Poly * | is_div_ (TreeM *tree, poly item) |
|
static void | ClearMultiplicative (NodeM *xx, int i) |
|
void | insert_ (TreeM **tree, Poly *item) |
|
void | Initialization (char *Ord) |
|
void | T2G () |
|
int | ComputeBasis (jList *_lT, jList *_lQ) |
|
◆ pow_
◆ ClearMult()
void ClearMult |
( |
Poly * |
x, |
|
|
int |
i |
|
) |
| |
◆ ClearMultiplicative()
static void ClearMultiplicative |
( |
NodeM * |
xx, |
|
|
int |
i |
|
) |
| |
|
static |
◆ ClearProl()
void ClearProl |
( |
Poly * |
x, |
|
|
int |
i |
|
) |
| |
◆ ComputeBasis()
◆ ControlProlong()
void ControlProlong |
( |
Poly * |
x | ) |
|
◆ CountList()
int CountList |
( |
jList * |
Q | ) |
|
◆ create()
◆ CreateListNode()
◆ Define()
void Define |
( |
TreeM ** |
G | ) |
|
◆ DestroyFreeNodes()
void DestroyFreeNodes |
( |
| ) |
|
◆ DestroyList()
void DestroyList |
( |
jList * |
x | ) |
|
◆ DestroyListNode()
◆ DestroyPoly()
void DestroyPoly |
( |
Poly * |
x | ) |
|
◆ DestroyTree()
void DestroyTree |
( |
NodeM * |
G | ) |
|
◆ div_l()
void div_l |
( |
poly |
item, |
|
|
NodeM * |
x, |
|
|
int |
from |
|
) |
| |
Definition at line 833 of file janet.cc.
838 if ((
x->ended) &&
sp_div(item,
x->ended->root,from))
843 div_l(item,
x->right,from);
◆ FindMinList()
Definition at line 518 of file janet.cc.
527 while ((*
min) && ((*min)->info->root ==
NULL))
537 if ((*l)->info->root !=
NULL)
◆ ForEachControlProlong()
void ForEachControlProlong |
( |
jList * |
x | ) |
|
◆ ForEachPNF()
void ForEachPNF |
( |
jList * |
x, |
|
|
int |
i |
|
) |
| |
◆ GB_length()
Definition at line 741 of file janet.cc.
748 if (
pow_(iT->info->lead) ==
pow_(iT->info->history))
◆ GetMult()
int GetMult |
( |
Poly * |
x, |
|
|
int |
i |
|
) |
| |
◆ GetProl()
int GetProl |
( |
Poly * |
x, |
|
|
int |
i |
|
) |
| |
◆ InitHistory()
void InitHistory |
( |
Poly * |
p | ) |
|
◆ Initialization()
void Initialization |
( |
char * |
Ord | ) |
|
Definition at line 953 of file janet.cc.
956 if (strstr(Ord,
"dp\0") || strstr(Ord,
"Dp\0"))
◆ InitLead()
void InitLead |
( |
Poly * |
p | ) |
|
◆ InitProl()
void InitProl |
( |
Poly * |
p | ) |
|
◆ insert_()
Definition at line 913 of file janet.cc.
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();
◆ InsertInCount()
◆ InsertInList()
◆ is_div_()
Definition at line 854 of file janet.cc.
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;
◆ is_div_upper()
Poly* is_div_upper |
( |
poly |
item, |
|
|
NodeM * |
x, |
|
|
int |
from |
|
) |
| |
◆ is_present()
◆ LengthCompare()
int LengthCompare |
( |
poly |
p1, |
|
|
poly |
p2 |
|
) |
| |
Definition at line 452 of file janet.cc.
456 if (p1 ==
NULL)
return 1;
457 if (p2 ==
NULL)
return 0;
◆ ListGreatMoveDegree()
int ListGreatMoveDegree |
( |
jList * |
A, |
|
|
jList * |
B, |
|
|
poly |
x |
|
) |
| |
Definition at line 600 of file janet.cc.
605 if (!
y ||
pow_(
y->info->lead) <= pow_x)
return 0;
607 while(
y &&
pow_(
y->info->lead) > pow_x)
◆ ListGreatMoveOrder()
int ListGreatMoveOrder |
( |
jList * |
A, |
|
|
jList * |
B, |
|
|
poly |
x |
|
) |
| |
◆ NewPoly()
◆ NFL()
Definition at line 188 of file janet.cc.
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)
◆ NFListQ()
Definition at line 632 of file janet.cc.
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)
◆ PNF()
◆ ProlCompare()
int ProlCompare |
( |
Poly * |
item1, |
|
|
Poly * |
item2 |
|
) |
| |
◆ ProlVar()
void ProlVar |
( |
Poly * |
temp, |
|
|
int |
i |
|
) |
| |
◆ ReducePoly()
int ReducePoly |
( |
Poly * |
x, |
|
|
poly |
from, |
|
|
Poly * |
y |
|
) |
| |
Definition at line 120 of file janet.cc.
122 if (!
x->root || !
y->root)
◆ ReducePolyLead()
int ReducePolyLead |
( |
Poly * |
x, |
|
|
Poly * |
y |
|
) |
| |
Definition at line 75 of file janet.cc.
77 if (!
x->root || !
y->root)
◆ SetMult()
void SetMult |
( |
Poly * |
x, |
|
|
int |
i |
|
) |
| |
◆ SetProl()
void SetProl |
( |
Poly * |
x, |
|
|
int |
i |
|
) |
| |
◆ sp_div()
int sp_div |
( |
poly |
m1, |
|
|
poly |
m2, |
|
|
int |
from |
|
) |
| |
◆ T2G()
◆ ValidatePoly()
Definition at line 300 of file janet.cc.
305 if (
x->root)
return 1;
◆ degree_compatible
◆ FreeNodes
◆ jDeg
◆ ListGreatMove
◆ Mask
int Mask[8] ={0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x1} |
|
static |
◆ offset
◆ temp_l
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.
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)
void InsertInCount(jList *x, Poly *y)
void InitHistory(Poly *p)
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 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 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)
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)