source: git/kernel/f5gb.h @ d7d5f6

spielwiese
Last change on this file since d7d5f6 was d7d5f6, checked in by Christian Eder, 15 years ago
still searching bug in reduction() git-svn-id: file:///usr/local/Singular/svn/trunk@11372 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.8 KB
RevLine 
[936551]1/****************************************
2*  Computer Algebra System SINGULAR     *
3****************************************/
[d7d5f6]4/* $Id: f5gb.h,v 1.25 2009-02-12 12:43:31 ederc Exp $ */
[936551]5/*
[d0f98e]6* ABSTRACT: f5gb interface
[936551]7*/
8#ifndef F5_HEADER
9#define F5_HEADER
10
11#ifdef HAVE_F5
[5d0556]12#include "f5data.h"
[a3771a]13#include "f5lists.h"
[d0f98e]14
15
[199ae7]16/*
17======================================================
18sort polynomials in ideal i by decreasing total degree
19======================================================
20*/
21void qsort_degree(poly* left, poly* right);
22
23/*
24==============================================
25generating the list lp of ideal generators and
26test if 1 is in lp(return 1) or not(return 0)
27==============================================
28*/
29void generate_input_list(LPoly* lp, ideal id, poly one);
[8627ad]30
[199ae7]31/*
32==================================================
33computes incrementally gbs of subsets of the input
34gb{f_m} -> gb{f_m,f_(m-1)} -> gb{f_m,...,f_1} 
35==================================================
[948192]36*/
[87beab7]37LList* F5inc(int i, poly f_i, LList* gPrev, ideal gbPrev, poly ONE, LTagList* lTag, RList* rules, RTagList* rTag);
[8627ad]38
[cce6ed3]39/*
40================================================================
41computes a list of critical pairs for the next reduction process
42first element in gPrev is always the newest element which must
43build critical pairs with all other elements in gPrev
44================================================================
45*/
[87beab7]46CList* criticalPair(LList* gPrev, CList* critPairs, LTagList* lTag, RTagList* rTag, RList* rules);
[8627ad]47
[cce6ed3]48/*
49========================================
50Criterion 1, i.e. Faugere's F5 Criterion
51========================================
52*/
[66e7b5]53bool criterion1(poly* t, LNode* l, LTagList* lTag);
54
55/*
56=====================================
57Criterion 2, i.e. Rewritten Criterion
58=====================================
59*/
[87beab7]60bool criterion2(poly* t, LNode* l, RList* rules, RTagList* rTag);
[66e7b5]61
[8978fd]62/*
63==========================================================================================================
64Criterion 2, i.e. Rewritten Criterion, for its second call in sPols(), with added lastRuleTested parameter
65==========================================================================================================
66*/
[87beab7]67bool criterion2(poly* t, LPoly* l, RList* rules, Rule* lastRuleTested);
[9bb97e]68
69/*
70==================================
71Computation of S-Polynomials in F5
72==================================
73*/
[fcb8022]74void computeSPols(CNode* first, RTagList* rTag, RList* rules, LList* sPolyList);
[9bb97e]75
76/*
77========================================================================
78reduction including subalgorithm topReduction() using Faugere's criteria
79========================================================================
80*/
[d7d5f6]81LList* reduction(LList* sPolyList, LList* completed, LList* gPrev, RList* rules, LTagList* lTag, RTagList* rTag,
[fcb8022]82                 ideal gbPrev);
[9bb97e]83
84/*
85=====================================================================================
86top reduction in F5, i.e. reduction of a given S-polynomial by labeled polynomials of
87the same index whereas the labels are taken into account
88=====================================================================================
89*/
[d7d5f6]90TopRed* topReduction(LNode* l, LList* completed, LList* gPrev, RList* rules, LTagList* lTag, RTagList* rTag); 
[9bb97e]91
92/*
93=====================================================================
94subalgorithm to find a possible reductor for the labeled polynomial l
95=====================================================================
96*/
[d7d5f6]97LNode* findReductor(LNode* l,LList* completed,LList* gPrev, RList* rules, LTagList* lTag,RTagList* rTag,
[fcb8022]98                    LNode* gPrevRedCheck, LNode* completedRedCheck);
[9bb97e]99
[199ae7]100/*
101======================================
[87beab7]102main function of our F5 implementation
[199ae7]103======================================
104*/
[171950]105ideal F5main(ideal i, ring r);
[199ae7]106
[936551]107#endif
108#endif
Note: See TracBrowser for help on using the repository browser.