Changeset 642e65 in git for kernel/F5cData.h


Ignore:
Timestamp:
Jul 7, 2009, 8:54:56 PM (14 years ago)
Author:
Christian Eder
Branches:
(u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
Children:
ab3db62fd566bf974e5dcf6da2405b18b464b0c4
Parents:
e9f5b23f3e4572bcb33e40a8f5debc2ca9bd11a6
Message:
implementation of classes Label and CPair in F5cData.*


git-svn-id: file:///usr/local/Singular/svn/trunk@11957 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/F5cData.h

    re9f5b2 r642e65  
     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
    112#ifndef F5CDATA_HEADER
    213#define F5CDATA_HEADER
    314#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
    4107
    5108#endif
Note: See TracChangeset for help on using the changeset viewer.