PolyBoRi
LiteralFactorization.h
Go to the documentation of this file.
1 /*
2  * LiteralFactorization.h
3  * PolyBoRi
4  *
5  * Created by Michael Brickenstein on 29.05.06.
6  * Copyright 2006 The PolyBoRi Team. See LICENSE file.
7  *
8  */
9 
10 #include <algorithm>
11 #include <vector>
12 #include <map>
13 #include <set>
14 #include <utility>
15 #include "groebner_defs.h"
16 
17 #ifndef PBORI_GB_LF_H
18 #define PBORI_GB_LF_H
20 
21 std::vector<Polynomial> easy_linear_factors(const Polynomial &p);
22 
23 class LiteralFactorizationIterator; // forward declaration
25 
26 public:
29 
30  typedef std::map<idx_type, int> map_type;
34  bool occursAsLeadOfFactor(idx_type v) const;
35  bool trivial() const;
36  bool is11Factorization() const;
37  bool is00Factorization() const;
38  //Theorem: f BoolePolynomial with factor (x+b), b in 0, 1 (considered in the usual Polynomial Ring)
39  //then f/(x+b) does not involve the variable x
40  //typedef std::pair<idx_type,idx_type> var_pair_type;
41  //typedef std::set<var_pair_type> two_var_factors;
42  typedef std::map<idx_type, idx_type> var2var_map_type;
44 
45  const_iterator begin();
46  const_iterator end();
47 };
48 
50 
53 
55 #endif