My Project
Loading...
Searching...
No Matches
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
14typedef 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]
23 int prolonged; //number of prolonged variable for prolongation, otherwise = -1;
24} Poly;
25
26typedef void (*poly_function)(Poly *);
27
29{
30 Poly *info;
32};
33
34typedef struct
35{
37} jList;
38
40{
41 NodeM *left,*right;
43};
44
46{
47 NodeM *root;
48};
49
50typedef ListNode* LCI;
51typedef ListNode** LI;
52
53//-------FUNCS----------
55void DestroyTree(NodeM *);
56NodeM* create();
57//void ForEach(TreeM *,poly_function);
58void ControlProlong(Poly *);
59Poly* is_div_(TreeM *root, poly item);
60void insert_(TreeM **tree, Poly *item);
61Poly* NewPoly(poly p=NULL);
63
64void NFL(Poly *,TreeM *);
65void PNF(Poly *,TreeM *);
66void ClearProl(Poly *x, int i);
67void InitProl(Poly *p);
68void InitHistory(Poly *p);
69Poly *is_present(jList *,poly);
70int GetMult(Poly *,int);
71int GB_length();
72
73void InsertInList(jList *,Poly *);
74void ForEachPNF(jList *,int);
75void ClearMult(Poly *,int);
76void ProlVar(Poly *,int);
77void SetMult(Poly *,int);
78void InitLead(Poly *);
79void InsertInCount(jList *,Poly *);
80int GetProl(Poly *, int);
81void SetProl(Poly *, int);
82int ProlCompare(Poly *, Poly *);
83int ValidatePoly(Poly *,TreeM *);
84int ListGreatMoveDegree(jList *,jList *,poly);
85int ListGreatMoveOrder(jList *,jList *,poly);
87void NFListQ();
88int CountList(jList *);
89void DestroyList(jList *);
90
93void Define(TreeM **G);
96void DestroyFreeNodes();
97
98int ComputeBasis(jList *,jList *);
99void Initialization(char *);
100
101#endif //JANET_INTERFACE
int i
Definition: cfEzgcd.cc:132
Variable x
Definition: cfModGcd.cc:4082
int p
Definition: cfModGcd.cc:4078
const CanonicalForm int const CFList const Variable & y
Definition: facAbsFact.cc:53
STATIC_VAR TreeM * G
Definition: janet.cc:31
NodeM * create()
Definition: janet.cc:757
Poly * NewPoly(poly p=NULL)
Definition: janet.cc:361
void SetMult(Poly *, int)
Definition: janet.cc:426
void InitHistory(Poly *p)
Definition: janet.cc:402
void DestroyList(jList *)
Definition: janet.cc:714
ListNode * CreateListNode(Poly *x)
Definition: janet.cc:508
int ProlCompare(Poly *, Poly *)
Definition: janet.cc:463
int ReducePolyLead(Poly *x, Poly *y)
Definition: janet.cc:74
void ForEachPNF(jList *, int)
Definition: janet.cc:692
Poly * is_div_(TreeM *root, poly item)
Definition: janet.cc:853
Poly * ended
Definition: janet.h:42
#define ListNode
Definition: janet.h:10
#define NodeM
Definition: janet.h:12
#define TreeM
Definition: janet.h:11
void SetProl(Poly *, int)
Definition: janet.cc:441
int ValidatePoly(Poly *, TreeM *)
Definition: janet.cc:299
ListNode * root
Definition: janet.h:36
void InsertInCount(jList *, Poly *)
Definition: janet.cc:571
void ProlVar(Poly *, int)
Definition: janet.cc:480
void InitProl(Poly *p)
Definition: janet.cc:416
void DestroyListNode(ListNode *x)
Definition: janet.cc:502
void DestroyFreeNodes()
Definition: janet.cc:776
Poly * is_present(jList *, poly)
Definition: janet.cc:729
int ListGreatMoveOrder(jList *, jList *, poly)
Definition: janet.cc:582
ListNode ** LI
Definition: janet.h:51
ListNode * LCI
Definition: janet.h:50
Poly * FindMinList(jList *)
Definition: janet.cc:517
void ControlProlong(Poly *)
Definition: janet.cc:392
void ClearProl(Poly *x, int i)
Definition: janet.cc:446
void Define(TreeM **G)
Definition: janet.cc:815
void ClearMult(Poly *, int)
Definition: janet.cc:431
int GetProl(Poly *, int)
Definition: janet.cc:436
void Initialization(char *)
Definition: janet.cc:952
int ListGreatMoveDegree(jList *, jList *, poly)
Definition: janet.cc:599
int ReducePoly(Poly *x, Poly *y)
void(* poly_function)(Poly *)
Definition: janet.h:26
int GetMult(Poly *, int)
Definition: janet.cc:421
ListNode * next
Definition: janet.h:31
int ComputeBasis(jList *, jList *)
Definition: janet.cc:1000
void InitLead(Poly *)
Definition: janet.cc:409
int GB_length()
Definition: janet.cc:740
void NFListQ()
Definition: janet.cc:631
void DestroyTree(NodeM *)
Definition: janet.cc:804
int CountList(jList *)
Definition: janet.cc:617
void ForEachControlProlong(jList *)
Definition: janet.cc:703
void InsertInList(jList *, Poly *)
Definition: janet.cc:552
void NFL(Poly *, TreeM *)
Definition: janet.cc:187
void PNF(Poly *, TreeM *)
Definition: janet.cc:143
void DestroyPoly()
void insert_(TreeM **tree, Poly *item)
Definition: janet.cc:912
Definition: janet.h:35
#define info
Definition: libparse.cc:1256
#define NULL
Definition: omList.c:12
Definition: janet.h:15
char * mult
Definition: janet.h:21
poly history
Definition: janet.h:19
kBucket_pt root_b
Definition: janet.h:17
int root_l
Definition: janet.h:18
poly lead
Definition: janet.h:20
int changed
Definition: janet.h:22
poly root
Definition: janet.h:16
int prolonged
Definition: janet.h:23