source: git/kernel/f5data.h @ 87beab7

spielwiese
Last change on this file since 87beab7 was 87beab7, checked in by Christian Eder, 15 years ago
lots of stuff debugged, lots of wrong loop terminations improved, still problems with reduction subalgorithms reduction(), topReduction() & findReductor() git-svn-id: file:///usr/local/Singular/svn/trunk@11370 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.5 2009-02-11 21:24:07 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        Rule*   _rule;
34    public:
35                LPoly(poly t, int i, poly p, Rule* r=NULL);
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    setRule(Rule* r);
43        Rule*   getRule();
44        void    set(poly t, int i, poly p, Rule* r);
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*   getAdT1();
66        LPoly*  getAdLp1();
67        poly    getLp1Poly();
68        poly    getLp1Term();
69        int     getLp1Index();
70        poly    getT2();
71        poly*   getAdT2();
72        LPoly*  getAdLp2();
73        poly    getLp2Poly();
74        poly    getLp2Term();
75        int     getLp2Index();
76        Rule*   getLastRuleTested();
77};
78
79
80/*
81========================================================
82structure of rules(i.e. already computed / known labels)
83========================================================
84*/
85class Rule {
86    private:
87        int     index;      // index of the labeled polynomial the rule comes from
88        poly    term;       // term of the labeled polynomial the rule comes from
89    public:
90                Rule(int i, poly term);
91        int     getIndex();
92        poly    getTerm();
93};
94#endif
95#endif
Note: See TracBrowser for help on using the repository browser.