source: git/kernel/F5cData.h @ 642e65

spielwiese
Last change on this file since 642e65 was 642e65, checked in by Christian Eder, 14 years ago
implementation of classes Label and CPair in F5cData.* git-svn-id: file:///usr/local/Singular/svn/trunk@11957 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.5 KB
Line 
1/*!
2 * \file F5cData.h
3 * \author Christian Eder
4 * \date 07/07/2009
5 * \version 0.01
6 * \brief Declarations of the classes CPair and Rule.
7 * \details This file contains the declarations of the class \c CPair, representing
8 * critical pairs, and the class \c Label, representing the labels, in the F5C
9 * Algorithm. All methods are inlined.
10 */
11
12#ifndef F5CDATA_HEADER
13#define F5CDATA_HEADER
14#ifdef HAVE_F5C
15
16/*!
17 * class definitions of the needed datatypes in the F5C algorithm:
18 * (a) critical pairs
19 * (b) labels
20 */
21class CPair;
22class Label;
23
24
25/*!
26 * \class CPair
27 * \author Christian Eder
28 * \brief This is the data structure of a critical pair in the F5C implementation.
29 * \details
30 */
31class CPair {
32  private:
33 
34  public:
35
36};
37// end CPair
38
39
40/*!
41 * \class Label
42 * \author Christian Eder
43 * \brief This is the data structure of a rule, i.e. a label in the F5C
44 * Algorithm.
45 * \details
46 */
47class Label {
48  private:
49    int*              m_pExpVec;
50    unsigned long     m_nShortExpVec;
51  public:
52    /*!
53     * \fn Label(int* expVec);
54     * \param[in] expVec The exponent vector of some monomial defining a label
55     * \brief Constructor of an object of class \c Label
56     */
57    Label(int* expVec);
58    /*!
59     * \fn ~Label();
60     * \brief Destructor of an object of class \c Label
61     */
62    ~Label();
63    /*!
64     * \fn static inline int getExpVec();
65     * \return The first entry of the \c integer vector at the address \c m_pExpVec
66     * \brief Getter of the \c integer vector at the address \c m_pExpVec
67     */
68    inline int* getExpVec();
69    /*!
70     * \fn static inline long getShortExpVec();
71     * \return The short exponent vector \c m_nShortExpVec of the label
72     * \brief Getter of the \code unsigned long m_nShortExpVec \endcode
73     *
74     */
75    inline unsigned long getShortExpVec();
76    /*!
77     * \fn static inline unsigned long computeShortExpVec(int* expVec);
78     * \param[in] expVec The exponent vector of some monomial defining a label
79     * \return Short exponent vector of type \code unsigned long \endcode
80     * \brief Computation of the short exponent vector of type \code unsigned
81     * long \endcode of the exponent vector \c expVec
82     * \note This method is originally in polys-impl.cc, in this version here it
83     * is optimized for the case of working with exponent vectors and not with
84     * polys as input data.
85     */
86    static inline unsigned long computeShortExpVec(int* expVec);
87    /*!
88     * \fn static inline unsigned long getBitFields(int e, unsigned int s,
89     * unsigned int n);
90     * \param[in] e Entry of the exponent vector
91     * \param[in] s Integer smaller than the bitsize of \c long
92     * \param[in] n Integer representing the number of bits per entry of the
93     * exponent vector \c expVec
94     * \return \code unsigned long \endcode the bitfield for the input data
95     * \brief Computation of the bitfield of type \code unsigned long \endcode
96     * for an entry \c e of the given exponent vector \c expVec at an iteration
97     * step where \c s iterates over all \c integers smaller than the bitsize of
98     * \c long, and \c n iterates over the number of bits per entry of the
99     * exponent vector \c expVec
100     * \note This method is originally in polys-impl.cc, in this version here it
101     * is optimized for the case of working with exponent vectors and not with
102     * polys as input data.
103     */
104    static inline unsigned long getBitFields(int e, unsigned int s, unsigned int n);
105};
106// end Label
107
108#endif
109// HAVE_F5C
110#endif
111// F5CDATA_HEADER
Note: See TracBrowser for help on using the repository browser.