My Project  UNKNOWN_GIT_VERSION
janet.h
Go to the documentation of this file.
1 #ifndef __JANET_INTERFACE__
2 #define __JANET_INTERFACE__
3 
4 #include "kernel/structs.h"
5 
6 #define GCM(sz) omAlloc((sz))
7 #define GCMA(sz) omAlloc((sz))
8 #define GCF(x) omFree((x))
9 
10 #define ListNode struct LISTNODE
11 #define TreeM struct TREEM
12 #define NodeM struct NODEM
13 
14 typedef struct
15 {
16  poly root; //poly for parent, NULL for prol
18  int root_l;
19  poly history; //parent
20  poly lead; //leading monomial for prolongation
21  char *mult; //[multi].[prol]
22  int changed;
23  int prolonged; //number of prolonged variable for prolongation, otherwise = -1;
24 } Poly;
25 
26 typedef void (*poly_function)(Poly *);
27 
29 {
30  Poly *info;
32 };
33 
34 typedef struct
35 {
37 } jList;
38 
39 NodeM
40 {
41  NodeM *left,*right;
43 };
44 
45 TreeM
46 {
47  NodeM *root;
48 };
49 
50 typedef ListNode* LCI;
51 typedef ListNode** LI;
52 
53 //-------FUNCS----------
55 void DestroyTree(NodeM *);
56 NodeM* create();
57 //void ForEach(TreeM *,poly_function);
58 void ControlProlong(Poly *);
59 Poly* is_div_(TreeM *root, poly item);
60 void insert_(TreeM **tree, Poly *item);
61 Poly* NewPoly(poly p=NULL);
62 void DestroyPoly();
63 
64 void NFL(Poly *,TreeM *);
65 void PNF(Poly *,TreeM *);
66 void ClearProl(Poly *x, int i);
67 void InitProl(Poly *p);
68 void InitHistory(Poly *p);
69 Poly *is_present(jList *,poly);
70 int GetMult(Poly *,int);
71 int GB_length();
72 
73 void InsertInList(jList *,Poly *);
74 void ForEachPNF(jList *,int);
75 void ClearMult(Poly *,int);
76 void ProlVar(Poly *,int);
77 void SetMult(Poly *,int);
78 void InitLead(Poly *);
79 void InsertInCount(jList *,Poly *);
80 int GetProl(Poly *, int);
81 void SetProl(Poly *, int);
82 int ProlCompare(Poly *, Poly *);
83 int ValidatePoly(Poly *,TreeM *);
84 int ListGreatMoveDegree(jList *,jList *,poly);
85 int ListGreatMoveOrder(jList *,jList *,poly);
87 void NFListQ();
88 int CountList(jList *);
89 void DestroyList(jList *);
90 
91 int ReducePoly(Poly *x,Poly *y);
92 int ReducePolyLead(Poly *x,Poly *y);
93 void Define(TreeM **G);
96 void DestroyFreeNodes();
97 
98 int ComputeBasis(jList *,jList *);
99 void Initialization(char *);
100 
101 #endif //JANET_INTERFACE
ListNode
#define ListNode
Definition: janet.h:10
TreeM
#define TreeM
Definition: janet.h:11
Poly::changed
int changed
Definition: janet.h:22
Poly
Definition: janet.h:14
ReducePoly
int ReducePoly(Poly *x, Poly *y)
x
Variable x
Definition: cfModGcd.cc:4023
Poly::prolonged
int prolonged
Definition: janet.h:23
FindMinList
Poly * FindMinList(jList *)
Definition: janet.cc:518
y
const CanonicalForm int const CFList const Variable & y
Definition: facAbsFact.cc:57
InitProl
void InitProl(Poly *p)
Definition: janet.cc:417
Poly::root_b
kBucket_pt root_b
Definition: janet.h:17
Poly::history
poly history
Definition: janet.h:19
ProlVar
void ProlVar(Poly *, int)
Definition: janet.cc:481
ValidatePoly
int ValidatePoly(Poly *, TreeM *)
Definition: janet.cc:300
insert_
void insert_(TreeM **tree, Poly *item)
Definition: janet.cc:913
GB_length
int GB_length()
Definition: janet.cc:741
InitHistory
void InitHistory(Poly *p)
Definition: janet.cc:403
next
ListNode * next
Definition: janet.h:31
NodeM
#define NodeM
Definition: janet.h:12
jList::root
ListNode * root
Definition: janet.h:36
i
int i
Definition: cfEzgcd.cc:125
LCI
ListNode * LCI
Definition: janet.h:48
create
NodeM * create()
Definition: janet.cc:758
is_div_
Poly * is_div_(TreeM *root, poly item)
Definition: janet.cc:854
ComputeBasis
int ComputeBasis(jList *, jList *)
Definition: janet.cc:1001
structs.h
ReducePolyLead
int ReducePolyLead(Poly *x, Poly *y)
Definition: janet.cc:75
InsertInCount
void InsertInCount(jList *, Poly *)
Definition: janet.cc:572
LI
ListNode ** LI
Definition: janet.h:51
Poly::mult
char * mult
Definition: janet.h:21
NFListQ
void NFListQ()
Definition: janet.cc:632
SetProl
void SetProl(Poly *, int)
Definition: janet.cc:442
ControlProlong
void ControlProlong(Poly *)
Definition: janet.cc:393
PNF
void PNF(Poly *, TreeM *)
Definition: janet.cc:144
DestroyTree
void DestroyTree(NodeM *)
Definition: janet.cc:805
poly_function
void(* poly_function)(Poly *)
Definition: janet.h:26
GetMult
int GetMult(Poly *, int)
Definition: janet.cc:422
is_present
Poly * is_present(jList *, poly)
Definition: janet.cc:730
jList
Definition: janet.h:34
ProlCompare
int ProlCompare(Poly *, Poly *)
Definition: janet.cc:464
CreateListNode
ListNode * CreateListNode(Poly *x)
Definition: janet.cc:509
ended
Poly * ended
Definition: janet.h:42
SetMult
void SetMult(Poly *, int)
Definition: janet.cc:427
ListGreatMoveDegree
int ListGreatMoveDegree(jList *, jList *, poly)
Definition: janet.cc:600
ForEachPNF
void ForEachPNF(jList *, int)
Definition: janet.cc:693
ListGreatMoveOrder
int ListGreatMoveOrder(jList *, jList *, poly)
Definition: janet.cc:583
NFL
void NFL(Poly *, TreeM *)
Definition: janet.cc:188
Initialization
void Initialization(char *)
Definition: janet.cc:953
ForEachControlProlong
void ForEachControlProlong(jList *)
Definition: janet.cc:704
ClearProl
void ClearProl(Poly *x, int i)
Definition: janet.cc:447
DestroyListNode
void DestroyListNode(ListNode *x)
Definition: janet.cc:503
Poly::root
poly root
Definition: janet.h:16
DestroyList
void DestroyList(jList *)
Definition: janet.cc:715
InitLead
void InitLead(Poly *)
Definition: janet.cc:410
GetProl
int GetProl(Poly *, int)
Definition: janet.cc:437
NULL
#define NULL
Definition: omList.c:9
DestroyPoly
void DestroyPoly()
kBucket
Definition: kbuckets.h:177
Define
void Define(TreeM **G)
Definition: janet.cc:816
Poly::lead
poly lead
Definition: janet.h:20
p
int p
Definition: cfModGcd.cc:4019
CountList
int CountList(jList *)
Definition: janet.cc:618
DestroyFreeNodes
void DestroyFreeNodes()
Definition: janet.cc:777
G
static TreeM * G
Definition: janet.cc:32
ClearMult
void ClearMult(Poly *, int)
Definition: janet.cc:432
NewPoly
Poly * NewPoly(poly p=NULL)
Definition: janet.cc:362
info
const ExtensionInfo & info
< [in] sqrfree poly
Definition: facFqFactorize.h:38
Poly::root_l
int root_l
Definition: janet.h:18
InsertInList
void InsertInList(jList *, Poly *)
Definition: janet.cc:553