/usr/include/singular/singular/kernel/GBEngine/janet.h is in libsingular4-dev-common 1:4.1.0-p3+ds-2build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | #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
|