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:4090
int p
Definition cfModGcd.cc:4086
const CanonicalForm int const CFList const Variable & y
Definition facAbsFact.cc:53
NodeM * create()
Definition janet.cc:757
void InitLead(Poly *p)
Definition janet.cc:409
void InitHistory(Poly *p)
Definition janet.cc:402
ListNode * CreateListNode(Poly *x)
Definition janet.cc:508
int ReducePolyLead(Poly *x, Poly *y)
Definition janet.cc:74
int ComputeBasis(jList *_lT, jList *_lQ)
Definition janet.cc:1000
int ListGreatMoveOrder(jList *A, jList *B, poly x)
Definition janet.cc:582
STATIC_VAR TreeM * G
Definition janet.cc:31
void DestroyList(jList *x)
Definition janet.cc:714
void ForEachControlProlong(jList *x)
Definition janet.cc:703
void DestroyTree(NodeM *G)
Definition janet.cc:804
int ValidatePoly(Poly *x, TreeM *)
Definition janet.cc:299
int CountList(jList *Q)
Definition janet.cc:617
int GetProl(Poly *x, int i)
Definition janet.cc:436
void ClearMult(Poly *x, int i)
Definition janet.cc:431
void ControlProlong(Poly *x)
Definition janet.cc:392
void InitProl(Poly *p)
Definition janet.cc:416
void InsertInList(jList *x, Poly *y)
Definition janet.cc:552
void DestroyListNode(ListNode *x)
Definition janet.cc:502
void DestroyFreeNodes()
Definition janet.cc:776
void ClearProl(Poly *x, int i)
Definition janet.cc:446
void Define(TreeM **G)
Definition janet.cc:815
int ReducePoly(Poly *x, poly from, Poly *y)
Definition janet.cc:119
void InsertInCount(jList *x, Poly *y)
Definition janet.cc:571
void ForEachPNF(jList *x, int i)
Definition janet.cc:692
Poly * NewPoly(poly p)
Definition janet.cc:361
Poly * FindMinList(jList *L)
Definition janet.cc:517
void NFL(Poly *p, TreeM *F)
Definition janet.cc:187
void SetMult(Poly *x, int i)
Definition janet.cc:426
void Initialization(char *Ord)
Definition janet.cc:952
Poly * is_present(jList *F, poly x)
Definition janet.cc:729
void SetProl(Poly *x, int i)
Definition janet.cc:441
Poly * is_div_(TreeM *tree, poly item)
Definition janet.cc:853
int ListGreatMoveDegree(jList *A, jList *B, poly x)
Definition janet.cc:599
void PNF(Poly *p, TreeM *F)
Definition janet.cc:143
void ProlVar(Poly *temp, int i)
Definition janet.cc:480
int GB_length()
Definition janet.cc:740
void NFListQ()
Definition janet.cc:631
int ProlCompare(Poly *item1, Poly *item2)
Definition janet.cc:463
int GetMult(Poly *x, int i)
Definition janet.cc:421
void insert_(TreeM **tree, Poly *item)
Definition janet.cc:912
void DestroyPoly(Poly *x)
Definition janet.cc:383
void(*) poly_function(Poly *)
Definition janet.h:26
Poly * ended
Definition janet.h:42
#define ListNode
Definition janet.h:10
#define NodeM
Definition janet.h:12
#define TreeM
Definition janet.h:11
ListNode * root
Definition janet.h:36
ListNode ** LI
Definition janet.h:51
ListNode * LCI
Definition janet.h:50
ListNode * next
Definition janet.h:31
Definition janet.h:35
#define info
Definition libparse.cc:1256
#define NULL
Definition omList.c:12
kBucket * kBucket_pt
Definition ring.h:26
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