source: git/kernel/f5data.h @ eab144e

spielwiese
Last change on this file since eab144e was eab144e, checked in by Christian Eder, 15 years ago
fmtm() example runs, cycli_n has problems, reductions are not made for some reason git-svn-id: file:///usr/local/Singular/svn/trunk@11407 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.7 2009-02-19 14:52:34 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*   testedRule;     // already tested by rules up to lastRuleTested
61    public:
62                CPair(long degree, poly term1, LPoly* lpoly1, poly term2, LPoly* lpoly2, Rule* r = NULL);
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*   getTestedRule();
77        void    setTestedRule(Rule* r);
78};
79
80
81/*
82========================================================
83structure of rules(i.e. already computed / known labels)
84========================================================
85*/
86class Rule {
87    private:
88        int     index;      // index of the labeled polynomial the rule comes from
89        poly    term;       // term of the labeled polynomial the rule comes from
90    public:
91                Rule(int i, poly term);
92        int     getIndex();
93        poly    getTerm();
94};
95#endif
96#endif
Note: See TracBrowser for help on using the repository browser.