Loading...
Searching...
No Matches
janet.h
Go to the documentation of this file.
#ifndef __JANET_INTERFACE__
#define __JANET_INTERFACE__
#include "kernel/structs.h"
#define GCM(sz) omAlloc((sz))
#define GCMA(sz) omAlloc((sz))
#define GCF(x) omFree((x))
#define ListNode struct LISTNODE
#define TreeM struct TREEM
#define NodeM struct NODEM
typedef struct
{
poly root; //poly for parent, NULL for prol
kBucket_pt root_b;
int root_l;
poly history; //parent
poly lead; //leading monomial for prolongation
char *mult; //[multi].[prol]
int changed;
int prolonged; //number of prolonged variable for prolongation, otherwise = -1;
} Poly;
typedef void (*poly_function)(Poly *);
ListNode
{
Poly *info;
ListNode *next;
};
typedef struct
{
ListNode *root;
} jList;
NodeM
{
NodeM *left,*right;
Poly *ended;
};
TreeM
{
NodeM *root;
};
typedef ListNode* LCI;
typedef ListNode** LI;
//-------FUNCS----------
Poly* FindMinList(jList *);
void DestroyTree(NodeM *);
NodeM* create();
//void ForEach(TreeM *,poly_function);
void ControlProlong(Poly *);
Poly* is_div_(TreeM *root, poly item);
void insert_(TreeM **tree, Poly *item);
Poly* NewPoly(poly p=NULL);
void DestroyPoly();
void NFL(Poly *,TreeM *);
void PNF(Poly *,TreeM *);
void ClearProl(Poly *x, int i);
void InitProl(Poly *p);
void InitHistory(Poly *p);
Poly *is_present(jList *,poly);
int GetMult(Poly *,int);
int GB_length();
void InsertInList(jList *,Poly *);
void ForEachPNF(jList *,int);
void ClearMult(Poly *,int);
void ProlVar(Poly *,int);
void SetMult(Poly *,int);
void InitLead(Poly *);
void InsertInCount(jList *,Poly *);
int GetProl(Poly *, int);
void SetProl(Poly *, int);
int ProlCompare(Poly *, Poly *);
int ValidatePoly(Poly *,TreeM *);
int ListGreatMoveDegree(jList *,jList *,poly);
int ListGreatMoveOrder(jList *,jList *,poly);
void ForEachControlProlong(jList *);
void NFListQ();
int CountList(jList *);
void DestroyList(jList *);
int ReducePoly(Poly *x,Poly *y);
int ReducePolyLead(Poly *x,Poly *y);
void Define(TreeM **G);
ListNode* CreateListNode(Poly *x);
void DestroyListNode(ListNode *x);
void DestroyFreeNodes();
int ComputeBasis(jList *,jList *);
void Initialization(char *);
#endif //JANET_INTERFACE
i
int i
Definition cfEzgcd.cc:132
x
Variable x
Definition cfModGcd.cc:4090
p
int p
Definition cfModGcd.cc:4086
y
const CanonicalForm int const CFList const Variable & y
Definition facAbsFact.cc:53
G
STATIC_VAR TreeM * G
Definition janet.cc:31
create
NodeM * create()
Definition janet.cc:757
NewPoly
Poly * NewPoly(poly p=NULL)
Definition janet.cc:361
SetMult
void SetMult(Poly *, int)
Definition janet.cc:426
InitHistory
void InitHistory(Poly *p)
Definition janet.cc:402
DestroyList
void DestroyList(jList *)
Definition janet.cc:714
CreateListNode
ListNode * CreateListNode(Poly *x)
Definition janet.cc:508
ProlCompare
int ProlCompare(Poly *, Poly *)
Definition janet.cc:463
ReducePolyLead
int ReducePolyLead(Poly *x, Poly *y)
Definition janet.cc:74
ForEachPNF
void ForEachPNF(jList *, int)
Definition janet.cc:692
is_div_
Poly * is_div_(TreeM *root, poly item)
Definition janet.cc:853
ended
Poly * ended
Definition janet.h:42
ListNode
#define ListNode
Definition janet.h:10
NodeM
#define NodeM
Definition janet.h:12
TreeM
#define TreeM
Definition janet.h:11
SetProl
void SetProl(Poly *, int)
Definition janet.cc:441
ValidatePoly
int ValidatePoly(Poly *, TreeM *)
Definition janet.cc:299
jList::root
ListNode * root
Definition janet.h:36
InsertInCount
void InsertInCount(jList *, Poly *)
Definition janet.cc:571
ProlVar
void ProlVar(Poly *, int)
Definition janet.cc:480
InitProl
void InitProl(Poly *p)
Definition janet.cc:416
DestroyListNode
void DestroyListNode(ListNode *x)
Definition janet.cc:502
DestroyFreeNodes
void DestroyFreeNodes()
Definition janet.cc:776
is_present
Poly * is_present(jList *, poly)
Definition janet.cc:729
ListGreatMoveOrder
int ListGreatMoveOrder(jList *, jList *, poly)
Definition janet.cc:582
LI
ListNode ** LI
Definition janet.h:51
LCI
ListNode * LCI
Definition janet.h:50
FindMinList
Poly * FindMinList(jList *)
Definition janet.cc:517
ControlProlong
void ControlProlong(Poly *)
Definition janet.cc:392
ClearProl
void ClearProl(Poly *x, int i)
Definition janet.cc:446
Define
void Define(TreeM **G)
Definition janet.cc:815
ClearMult
void ClearMult(Poly *, int)
Definition janet.cc:431
GetProl
int GetProl(Poly *, int)
Definition janet.cc:436
Initialization
void Initialization(char *)
Definition janet.cc:952
ListGreatMoveDegree
int ListGreatMoveDegree(jList *, jList *, poly)
Definition janet.cc:599
ReducePoly
int ReducePoly(Poly *x, Poly *y)
poly_function
void(* poly_function)(Poly *)
Definition janet.h:26
GetMult
int GetMult(Poly *, int)
Definition janet.cc:421
next
ListNode * next
Definition janet.h:31
ComputeBasis
int ComputeBasis(jList *, jList *)
Definition janet.cc:1000
InitLead
void InitLead(Poly *)
Definition janet.cc:409
GB_length
int GB_length()
Definition janet.cc:740
NFListQ
void NFListQ()
Definition janet.cc:631
DestroyTree
void DestroyTree(NodeM *)
Definition janet.cc:804
CountList
int CountList(jList *)
Definition janet.cc:617
ForEachControlProlong
void ForEachControlProlong(jList *)
Definition janet.cc:703
InsertInList
void InsertInList(jList *, Poly *)
Definition janet.cc:552
NFL
void NFL(Poly *, TreeM *)
Definition janet.cc:187
PNF
void PNF(Poly *, TreeM *)
Definition janet.cc:143
DestroyPoly
void DestroyPoly()
insert_
void insert_(TreeM **tree, Poly *item)
Definition janet.cc:912
jList
Definition janet.h:35
info
#define info
Definition libparse.cc:1256
NULL
#define NULL
Definition omList.c:12
kBucket_pt
kBucket * kBucket_pt
Definition ring.h:26
Poly
Definition janet.h:15
Poly::mult
char * mult
Definition janet.h:21
Poly::history
poly history
Definition janet.h:19
Poly::root_b
kBucket_pt root_b
Definition janet.h:17
Poly::root_l
int root_l
Definition janet.h:18
Poly::lead
poly lead
Definition janet.h:20
Poly::changed
int changed
Definition janet.h:22
Poly::root
poly root
Definition janet.h:16
Poly::prolonged
int prolonged
Definition janet.h:23
structs.h