source: git/kernel/f5data.h @ a41f3aa

spielwiese
Last change on this file since a41f3aa was a41f3aa, checked in by Christian Eder, 15 years ago
criterion1() and criterion2() done, changed rules(added pointer on LPoly generating this rule) git-svn-id: file:///usr/local/Singular/svn/trunk@11348 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 2.8 KB
Line 
1/****************************************
2*  Computer Algebra System SINGULAR     *
3****************************************/
4/* $Id: f5data.h,v 1.2 2009-02-03 20:55:43 ederc Exp $ */
5/*
6* ABSTRACT: labeled polynomial interface
7*/
8#ifndef F5DATA_HEADER
9#define F5DATA_HEADER
10#ifdef HAVE_F5
11/*
12=========================================================
13=========================================================
14classes for labeled polynomials/pairs/S-polynomials in F5
15=========================================================
16=========================================================
17*/
18class LPoly;
19class CPair;
20class Rule;
21
22
23/*
24============================
25class of labeled polynomials
26============================
27*/
28class LPoly {
29    private:
30        poly    term; //term of signature
31        int     index; //index of signature
32        poly    polynomial; //standard polynomial data
33        bool    del; //for deletion in TopReduction Subalgorithm
34    public:
35                LPoly(poly*t,int* i,poly* p); 
36        void    setPoly(poly* p);
37        poly    getPoly();
38        void    setTerm(poly* t);
39        poly    getTerm();
40        void    setIndex(int* i);
41        int     getIndex();
42        void    setDel(bool b);
43        bool    getDel() const;
44        void    set(poly* t, int* i, poly* p);
45        LPoly*  get();
46};
47
48/*
49===================================
50structure of labeled critical pairs
51===================================
52*/
53class CPair {
54    private:
55        long    deg;            // total degree of the critical pair
56        poly    t1;             // first term for label
57        LPoly*  lp1;            // first labeled poly
58        poly    t2;             // second term for label
59        LPoly*  lp2;            // second labeled poly
60        Rule*   lastRuleTested; // already tested by rules up to lastRuleTested
61    public:
62                CPair(long degree, poly term1, LPoly* lpoly1, poly term2, LPoly* lpoly2);
63        long    getDeg();
64        poly    getT1();
65        poly    getLp1Poly();
66        poly    getLp1Term();
67        int     getLp1Index();
68        poly    getT2();
69        poly    getLp2Poly();
70        poly    getLp2Term();
71        int     getLp2Index();
72        Rule*   getLastRuleTested();
73};
74
75
76/*
77========================================================
78structure of rules(i.e. already computed / known labels)
79========================================================
80*/
81class Rule {
82    private:
83        int*    index;      // index of the labeled polynomial the rule comes from
84        poly*   term;       // term of the labeled polynomial the rule comes from
85        LPoly*  origin;     // pointer of the LPoly which generated this rule (needed in criterion2())
86    public:
87                Rule(int* i, poly* term);
88        int     getIndex();
89        poly    getTerm();
90        LPoly*  getOrigin();
91};
92#endif
93#endif
Note: See TracBrowser for help on using the repository browser.