polybori::groebner Namespace Reference

## Classes

class | BitMask
| This class defines a bit mask and related operations. More...
class | BitMask< 0 >
class | BitMask< sizeof(unsigned long)*8 >
class | BlockOrderHelper
| This class defines BlockOrderHelper. More...
class | BoundedDivisorsOf
| This class defines defines a function for computing a bounded variant of `MononmialSet's` `divisorsOf`. More...
class | CacheManager
class | ChainCriterion
| This class defines ChainCriterion. More...
class | ChainVariableCriterion
| This class defines ChainVariableCriterion. More...
class | CheckChainCriterion
| This class defines CheckChainCriterion. More...
class | CountCriterion
| This class defines CountCriterion. More...
class | DegOrderHelper
| This class defines DegOrderHelper. More...
class | ExpGreater
| This class defines ExpGreater. More...
class | ExpLexLess
| This class defines ExpLexLess. More...
class | FGLMNoLinearCombinationException
class | FGLMStrategy
class | GBTypes
class | GetNthPoly
class | GroebnerOptions
| This class defines options settings for `GroebnerStrategy`. More...
class | GroebnerStrategy
| This class defines GroebnerStrategy. More...
class | HasTRepOrExtendedProductCriterion
| This class defines HasTRepOrExtendedProductCriterion. More...
class | IJPairData
| This class defines IJPairData. More...
class | IsEcart0Predicate
| This class defines IsEcart0Predicate. More...
class | IsVariableOfIndex
class | LargerDegreeComparer
| This class defines LargerDegreeComparer. More...
class | LeadingTerms
| This class defines LeadingTerms. More...
class | LeadingTerms00
| This class defines LeadingTerms00. More...
class | LeadingTerms11
| This class defines LeadingTerms11. More...
class | LessCombinedManySizesInStrat
| This class defines LessCombinedManySizesInStrat. More...
class | LessEcartThenLessWeightedLengthInStrat
| This class defines LessEcartThenLessWeightedLengthInStrat. More...
class | LessUsedTailVariablesThenLessWeightedLengthInStrat
| This class defines LessUsedTailVariablesThenLessWeightedLengthInStrat. More...
class | LessWeightedLengthInStrat
| This class defines LessWeightedLengthInStrat. More...
class | LessWeightedLengthInStratModified
| This class defines LessWeightedLengthInStratModified. More...
class | LexBucket
class | LexHelper
| This class defines LexHelper. More...
class | LexOrderGreaterComparer
| This class defines LexOrderGreaterComparer. More...
class | LiteralFactorization
class | LiteralFactorizationIterator
| This class defines LiteralFactorizationIterator. More...
class | LLReduction
| This class defines LLReduction. More...
class | LLReductor
| This class defines LLReductor. More...
class | LMLessCompare
| This class defines LMLessCompare. More...
class | LMLessComparePS
| This class defines LMLessComparePS. More...
class | Long64From32BitsPair
| This class defines Long64From32BitsPair. More...
class | Long64From32BitsPairBase
| This class defines an auxiliary class for `Long64From32BitsPair`. More...
class | Long64From32BitsPairBase< High, Low, 4 >
class | Long64From32BitsPairBase< High, Low, 8 >
class | MatrixMonomialOrderTables
| This class defines MatrixMonomialOrderTables. More...
class | MinimalLeadingTerms
| This class defines MinimalLeadingTerms. More...
class | MonomialHasher
| This class defines MonomialHasher. More...
class | MonomialPlusOneTerms
| This class defines MonomialPlusOneTerms. More...
class | MonomialTerms
| This class defines MonomialTerms. More...
class | NBitsUsed
| This class defines `NBitsUsed` whose value attribute computes the actual number of used bits at compile time. More...
class | NBitsUsed< 0 >
class | NextSpoly
| This class computes the next spoly for a generator pair. More...
class | PairData
| This class defines PairData. More...
class | PairE
| This class defines PairE. More...
class | PairECompare
| This class defines PairECompare. More...
class | PairLS
| This class defines PairLS. More...
class | PairLSCompare
| This class defines PairLSCompare. More...
class | PairManager
| This class defines PairManager. More...
class | PairManagerFacade
| This class defines a facade for a given Strategy, which. More...
class | PairManagerWithStrategy
| This class extends `PairManager` with a reference to a strategy. More...
class | PairStatusSet
| This class defines PairStatusSet. More...
class | PolyEntry
| This class defines PolyEntry. More...
class | PolyEntryBase
| This class defines the base of `PolyEntry`. More...
class | PolyEntryIndices
| This class defines PolyEntryIndices. More...
class | PolyEntryPtrLmLess
| This class compares pointers to PolyEntry by their leading monomials. More...
class | PolyEntryReference
| This class defines `PolyEntryReference`. More...
class | PolyEntryVector
class | PolyFromPolyEntry
| This class defines an operator which extracts the Polynomial from a PolyEntry. More...
class | PolyMonomialPairComparerLess
| This class defines PolyMonomialPairComparerLess. More...
class | PolyMonomialPairComparerLexLess
| This class defines PolyMonomialPairComparerLexLess. More...
class | PolynomialSugar
| This class defines PolynomialSugar. More...
class | PolyPairData
| This class defines PolyPairData. More...
class | PSCompareByEl
| This class defines PSCompareByEl. More...
class | PseudoLongLong
| This class defines PseudoLongLong. More...
class | PseudoLongProduct
| This class defines a delayed product of longs and comparison with `LongLong` Constant. More...
class | RankingVector
| This class defines RankingVector. More...
class | RedTailNth
class | ReductionOptions
| This class defines option values for the ReductionStrategy. More...
class | ReductionStrategy
| This class defines ReductionStrategy. More...
class | ReductionTerms
| This class defines term for `ReductionStrategy`. More...
class | RelatedTerms
| This class finds those terms in a given set which are related to given terms. More...
class | RelatedTermsBase
| This class deals as a base of `RelatedTerns`. More...
class | SetAssociatedMinimal
| This class set the attribute `minimal` of a given index to a valued selected by the template parameter `Value`. More...
class | SetBitUInt
| This class defines SetBitUInt. More...
class | ShorterEliminationLength
| This class defines ShorterEliminationLength. More...
class | ShorterEliminationLengthModified
| This class defines ShorterEliminationLengthModified. More...
class | SlimgbReduction
| This class defines SlimgbReduction. More...
class | TermsFacade
| This class defines TermsFacade. More...
class | TimesConstantImplication
class | TimesVariableSubstitution
class | VariablePairData
| This class defines VariablePairData. More...
class | ZeroFunction
| This class defines ZeroFunction. More...

## Typedefs

typedef std::vector< Polynomial > | poly_vec
typedef polybori::CacheManager< CCacheTypes::divisorsof_fixedpath > | fixed_divisors_cache_type
typedef polybori::BoolePolynomial | Polynomial
typedef polybori::BooleMonomial | Monomial
typedef polybori::BooleVariable | Variable
typedef polybori::BooleExponent | Exponent
typedef std::vector< Polynomial > | PolynomialVector
typedef long | wlen_type
typedef long | len_type
typedef int | deg_type
typedef polybori::CTypes::idx_type | idx_type
typedef polybori::BooleSet | MonomialSet
typedef SlimgbReduction< SLIMGB_SIMPLEST > | slimgb_reduction_type
typedef boost::shared_ptr< PairData > | pair_data_ptr
typedef PairE | Pair
typedef Monomial::idx_map_type | lm2Index_map_type
typedef Exponent::idx_map_type | exp2Index_map_type
typedef boost::minstd_rand | base_generator_type
typedef boost::uniform_smallint | distribution_type
typedef boost::variate_generator< base_generator_type &, distribution_type > | bool_gen_type
typedef LessWeightedLengthInStratModified | StratComparerForSelect

## Enumerations

enum | { VARIABLE_PAIR, IJ_PAIR, DELAYED_PAIR }

## Functions

MonomialSet | add_up_lex_sorted_monomials (const BoolePolyRing &ring, std::vector< Monomial > &vec, int start, int end)
MonomialSet | add_up_lex_sorted_exponents (const BoolePolyRing &ring, std::vector< Exponent > &vec, int start, int end)
Polynomial | add_up_exponents (const std::vector< Exponent > &vec, const Polynomial &init)
Polynomial | unite_polynomials (const std::vector< Polynomial > &res_vec, int start, int end, Polynomial init)
Polynomial | unite_polynomials (const std::vector< Polynomial > &res_vec, Polynomial init)
template<class T >
Polynomial | add_up_generic (const std::vector< T > &res_vec, int start, int end, Polynomial init)
template<class T >
Polynomial | add_up_generic (const std::vector< T > &res_vec, Polynomial init)
Polynomial | add_up_monomials (const std::vector< Monomial > &vec, const Polynomial &init)
Polynomial | add_up_polynomials (const std::vector< Polynomial > &vec, const Polynomial &init)
template<class idx_type1 , class idx_type2 >
void | set_up_translation_vectors (std::vector< idx_type1 > &ring_2_0123, std::vector< idx_type2 > &back_2_ring, const Exponent &used_variables)
Polynomial | translate_indices (const Polynomial &p, const std::vector< idx_type > &table)
MonomialSet | contained_variables_cudd_style (const MonomialSet &m)
MonomialSet | contained_deg2_cudd_style (const MonomialSet &m)
std::vector< idx_type > | contained_variables (const MonomialSet &m)
void | draw_matrix (mzd_t *mat, const char *filename)
MonomialSet | do_fixed_path_divisors (const fixed_divisors_cache_type &cache_mgr, MonomialSet::navigator a_nav, MonomialSet::navigator m_nav, MonomialSet::navigator n_nav)
MonomialSet | do_fixed_path_divisors (MonomialSet a, MonomialSet m, MonomialSet n)
MonomialSet | fixed_path_divisors (MonomialSet a, Monomial m, Monomial n)
Polynomial | map_every_x_to_x_plus_one (Polynomial p)
MonomialSet | mod_var_set (const MonomialSet &as, const MonomialSet &vs)
void | groebner (GroebnerStrategy &strat)
Polynomial | reduce_by_binom (const Polynomial &p, const Polynomial &binom)
Polynomial | reduce_by_monom (const Polynomial &p, const Monomial &m)
| assumes that divisibility condition is fullfilled More...
Polynomial | reduce_complete (const Polynomial &p, const Polynomial &reductor)
Polynomial | mult_fast_sim (const std::vector< Polynomial > &vec, const BoolePolyRing &ring)
std::vector< Polynomial > | full_implication_gb (const Polynomial &p, CacheManager &cache, GroebnerStrategy &strat)
Polynomial | reduce_complete (const Polynomial &p, const PolyEntry &reductor, wlen_type &len)
MonomialSet | recursively_insert (MonomialSet::navigator p, idx_type idx, MonomialSet mset)
Polynomial | cancel_monomial_in_tail (const Polynomial &p, const Monomial &m)
Polynomial | reduce_by_binom_in_tail (const Polynomial &p, const Polynomial &binom)
bool | extended_product_criterion (const PolyEntry &m, const PolyEntry &m2)
MonomialSet | variety_lex_leading_terms (const MonomialSet &points, const Monomial &variables)
Polynomial | interpolate (MonomialSet to_zero, MonomialSet to_one)
Polynomial | interpolate_smallest_lex (MonomialSet to_zero, MonomialSet to_one)
MonomialSet | zeros (Polynomial p, MonomialSet candidates)
MonomialSet | include_divisors (const MonomialSet &m)
MonomialSet | nf_lex_points (const Polynomial &f, const MonomialSet &p)
std::vector< Polynomial > | variety_lex_groebner_basis (const MonomialSet &points, const Monomial &variables)
wlen_type | wlen_literal_exceptioned (const PolyEntry &e)
Polynomial | without_prior_part (Polynomial p, idx_type tail_start)
int | select_largest_degree (const ReductionStrategy &strat, const Monomial &m)
std::vector< Polynomial > | easy_linear_factors (const Polynomial &p)
deg_type | common_literal_factors_deg (const LiteralFactorization &a, const LiteralFactorization &b)
Polynomial | multiply_with_literal_factors (const LiteralFactorization &lf, Polynomial p)
template<bool have_redsb, bool single_call_for_noredsb, bool fast_multiplication>
Polynomial | ll_red_nf_generic (const Polynomial &, const BooleSet &)
template<bool fast>
Polynomial | multiply (const Polynomial &p, const Polynomial &q)
template<bool have_redsb, bool single_call_for_noredsb, bool fast_multiplication>
Polynomial | ll_red_nf_generic (const Polynomial &p, MonomialSet::navigator r_nav)
Polynomial | ll_red_nf (const Polynomial &p, const BooleSet &reductors)
Polynomial | ll_red_nf_noredsb (const Polynomial &p, const BooleSet &reductors)
Polynomial | ll_red_nf_noredsb_single_recursive_call (const Polynomial &p, const BooleSet &reductors)
MonomialSet | mod_mon_set (const MonomialSet &as, const MonomialSet &vs)
MonomialSet | mod_deg2_set (const MonomialSet &as, const MonomialSet &vs)
MonomialSet | minimal_elements_internal (const MonomialSet &s)
MonomialSet | minimal_elements_internal2 (MonomialSet s)
std::vector< Exponent > | minimal_elements_internal3 (MonomialSet s)
MonomialSet | minimal_elements (const MonomialSet &s)
MonomialSet | minimal_elements_cudd_style_unary (MonomialSet m)
MonomialSet | do_minimal_elements_cudd_style (MonomialSet m, MonomialSet mod)
MonomialSet | minimal_elements_cudd_style (MonomialSet m)
MonomialSet | minimal_elements_multiplied_monoms (MonomialSet m, Monomial lm)
std::vector< Monomial > | minimal_elements_multiplied (MonomialSet m, Monomial lm)
MonomialSet | minimal_elements_divided (MonomialSet m, Monomial lm, MonomialSet mod)
void | minimal_elements_divided (MonomialSet m, Monomial lm, MonomialSet mod, std::vector< Exponent > &result)
int | select_no_deg_growth (const ReductionStrategy &strat, const Monomial &m)
std::vector< Polynomial > | parallel_reduce (std::vector< Polynomial > inp, GroebnerStrategy &strat, int average_steps, double delay_f)
Polynomial | nf3 (const ReductionStrategy &strat, Polynomial p, Monomial rest_lead)
Polynomial | nf3_short (const ReductionStrategy &strat, Polynomial p)
Polynomial | plug_1 (const Polynomial &p, const MonomialSet &m_plus_ones)
Polynomial | cheap_reductions (const ReductionStrategy &strat, Polynomial p)
Polynomial | nf3_lexbuckets (const GroebnerStrategy &strat, Polynomial p, Monomial rest_lead)
Polynomial | nf3_no_deg_growth (const ReductionStrategy &strat, Polynomial p, Monomial rest_lead)
Polynomial | nf3_degree_order (const ReductionStrategy &strat, Polynomial p, Monomial lead)
bool | should_propagate (const PolyEntry &e)
bool | is_rewriteable (const Polynomial &p, const MonomialSet &leading_terms)
template<class RhsType >
bool | operator> (PseudoLongProduct lhs, const RhsType &rhs)
MonomialSet | random_set (const Monomial &variables, unsigned int len)
void | set_random_seed (unsigned int seed)
Polynomial | red_tail_general (const ReductionStrategy &strat, Polynomial p)
template<class Helper >
Polynomial | red_tail_generic (const ReductionStrategy &strat, Polynomial p)
Polynomial | red_tail (const ReductionStrategy &strat, Polynomial p)
Polynomial | red_tail_short (const ReductionStrategy &strat, Polynomial p)
Polynomial | red_tail_in_last_block (const GroebnerStrategy &strat, Polynomial p)
bool | irreducible_lead (Monomial lm, const ReductionStrategy &strat)
template<class value_type , class initializer , class set_bit >
value_type | p2code (Polynomial p, const std::vector< char > &ring_2_0123, int max_vars)
unsigned int | p2code_4 (Polynomial p, const std::vector< char > &ring_2_0123)
unsigned int | get_table_entry4 (const BoolePolyRing &ring, int p_code, int pos)
Monomial | code_2_m_4 (const BoolePolyRing &ring, unsigned int code, const std::vector< idx_type > &back_2_ring)
Polynomial | code_2_poly_4 (const BoolePolyRing &ring, unsigned int code, const std::vector< idx_type > &back_2_ring)
bool | have_ordering_for_tables (const int order_code)
bool | have_ordering_for_tables (const BoolePolyRing &ring)
bool | have_base_ordering_for_tables (const BoolePolyRing &ring)
void | transpose_window_to_row (mzd_t *transposed_vec, mzd_t *window)
void | clear_mat (mzd_t *mat)
template<class CacheMgr >
MonomialSet | mod_var_set (const CacheMgr &cache_mgr, MonomialSet::navigator a, MonomialSet::navigator v)
template<class CacheMgr >
MonomialSet | mod_deg2_set (const CacheMgr &cache_mgr, MonomialSet::navigator a, MonomialSet::navigator v)
template<class MgrType >
MonomialSet | recursively_insert (const MgrType &mgr, MonomialSet::navigator p, idx_type idx, MonomialSet::navigator m)
template<class CacheMgr >
Polynomial | map_every_x_to_x_plus_one (const CacheMgr &cache_mgr, MonomialSet::navigator nav)
Polynomial | reduce_by_small_entry (const Polynomial &poly, const PolyEntry &entry)
int | steps (int size)
MonomialSet | gen_random_subset (const BoolePolyRing &ring, const std::vector< Monomial > &vec, bool_gen_type &bit_gen)
MonomialSet | random_interpolation (const MonomialSet &as_set, const std::vector< Monomial > &as_vector, bool_gen_type &bit_gen)
bool | maps_to_one (const std::pair< const polybori::groebner::idx_type, int > v)
bool | maps_to_zero (const std::pair< const polybori::groebner::idx_type, int > v)
int | sum_size (const MonomialSet &s1, const MonomialSet &s2)
Polynomial | do_plug_1 (const Polynomial &p, const MonomialSet &m_plus_ones)
Polynomial | plug_1_top (const Polynomial &p, const MonomialSet &m_plus_ones)
Polynomial | do_is_rewriteable (const Polynomial &p, const MonomialSet &leading_terms)
MonomialSet | random_set_using_generator (const Monomial &variables, unsigned int len, bool_gen_type &bit_gen)

## Variables

const unsigned short | dlex4var_data [][7]
const unsigned short | dp_asc4var_data [][7]
const unsigned short | lp4var_data [][7]
const int | SLIMGB_SIMPLEST =0
const int | FARE_WORSE =10

## Typedef Documentation

typedef boost::minstd_rand polybori::groebner::base_generator_type

typedef boost::variate_generator<base_generator_type&, distribution_type> polybori::groebner::bool_gen_type

typedef int polybori::groebner::deg_type

typedef boost::uniform_smallint polybori::groebner::distribution_type

typedef Exponent::idx_map_type polybori::groebner::exp2Index_map_type

typedef polybori::BooleExponent polybori::groebner::Exponent

typedef polybori ::CacheManager<CCacheTypes::divisorsof_fixedpath> polybori::groebner::fixed_divisors_cache_type

typedef polybori::CTypes::idx_type polybori::groebner::idx_type

typedef long polybori::groebner::len_type

typedef Monomial::idx_map_type polybori::groebner::lm2Index_map_type

typedef polybori::BooleMonomial polybori::groebner::Monomial

typedef polybori::BooleSet polybori::groebner::MonomialSet

typedef PairE polybori::groebner::Pair

typedef boost::shared_ptr<PairData> polybori::groebner::pair_data_ptr

typedef std::vector<Polynomial> polybori::groebner::poly_vec

typedef polybori::BoolePolynomial polybori::groebner::Polynomial

typedef std::vector<Polynomial> polybori::groebner::PolynomialVector

typedef SlimgbReduction<SLIMGB_SIMPLEST> polybori::groebner::slimgb_reduction_type

typedef LessWeightedLengthInStratModified polybori::groebner::StratComparerForSelect

typedef polybori::BooleVariable polybori::groebner::Variable

typedef long polybori::groebner::wlen_type

## Enumeration Type Documentation

anonymous enum

Enumerator
VARIABLE_PAIR |
IJ_PAIR |
DELAYED_PAIR |

## Function Documentation

Polynomial polybori::groebner::add_up_exponents | ( | const std::vector< Exponent > & | vec,
|  | const Polynomial & | init
| ) |  |

inline

Note
  This function is deactivated, because it always uses the active manager!

Todo:
  activate and make save, when used

References add_up_lex_sorted_exponents(), and polybori::BoolePolynomial::ring().

Referenced by random_set_using_generator().

template<class T >

Polynomial polybori::groebner::add_up_generic | ( | const std::vector< T > & | res_vec,
|  | int | start,
|  | int | end,
|  | Polynomial | init
| ) |  |

inline

References add_up_generic().

Referenced by red_tail_general(), polybori::groebner::BlockOrderHelper::sum_range(), and polybori::groebner::DegOrderHelper::sum_range().

template<class T >

Polynomial polybori::groebner::add_up_generic | ( | const std::vector< T > & | res_vec,
|  | Polynomial | init
| ) |  |

inline

Referenced by add_up_generic(), add_up_monomials(), and add_up_polynomials().

MonomialSet polybori::groebner::add_up_lex_sorted_exponents | ( | const BoolePolyRing & | ring,
|  | std::vector< Exponent > & | vec,
|  | int | start,
|  | int | end
| ) |  |

inline

References polybori::BooleMonomial::diagram(), polybori::BoolePolynomial::diagram(), PBORI_ASSERT, and PBORI_UNLIKELY.

Referenced by add_up_exponents().

MonomialSet polybori::groebner::add_up_lex_sorted_monomials | ( | const BoolePolyRing & | ring,
|  | std::vector< Monomial > & | vec,
|  | int | start,
|  | int | end
| ) |  |

inline

References polybori::BoolePolynomial::diagram(), and PBORI_ASSERT.

Polynomial polybori::groebner::add_up_monomials | ( | const std::vector< Monomial > & | vec,
|  | const Polynomial & | init
| ) |  |

inline

References add_up_generic().

Referenced by gen_random_subset(), polybori::groebner::FGLMStrategy::main(), and polybori::groebner::FGLMStrategy::rowToPoly().

Polynomial polybori::groebner::add_up_polynomials | ( | const std::vector< Polynomial > & | vec,
|  | const Polynomial & | init
| ) |  |

inline

References add_up_generic().

Referenced by red_tail_general(), and red_tail_generic().

Polynomial polybori::groebner::cancel_monomial_in_tail | ( | const Polynomial & | p,
|  | const Monomial & | m
| ) |  |

inline

References polybori::BoolePolynomial::isZero(), polybori::BoolePolynomial::lead(), and reduce_by_monom().

Referenced by reduce_by_small_entry().

Polynomial polybori::groebner::cheap_reductions | ( | const ReductionStrategy & | strat,
|  | Polynomial | p
| ) |  |

References polybori::BoolePolynomial::diagram(), polybori::BoolePolynomial::isZero(), ll_red_nf(), polybori::groebner::ReductionTerms::llReductor, mod_mon_set(), polybori::groebner::ReductionTerms::monomials, polybori::groebner::ReductionTerms::monomials_plus_one, polybori::groebner::ReductionOptions::optLL, plug_1(), and polybori::BoolePolynomial::ring().

Referenced by red_tail_generic().

void polybori::groebner::clear_mat | ( | mzd_t * | mat | ) |

Referenced by polybori::groebner::FGLMStrategy::transposeMultiplicationTables().

Monomial polybori::groebner::code_2_m_4 | ( | const BoolePolyRing & | ring,
|  | unsigned int | code,
|  | const std::vector< idx_type > & | back_2_ring
| ) |  |

inline

References polybori::BoolePolyRing::variable().

Referenced by code_2_poly_4().

Polynomial polybori::groebner::code_2_poly_4 | ( | const BoolePolyRing & | ring,
|  | unsigned int | code,
|  | const std::vector< idx_type > & | back_2_ring
| ) |  |

inline

References code_2_m_4().

deg_type polybori::groebner::common_literal_factors_deg | ( | const LiteralFactorization & | a,
|  | const LiteralFactorization & | b
| ) |  |

References polybori::groebner::LiteralFactorization::factors, polybori::BoolePolynomial::leadDeg(), polybori::groebner::LiteralFactorization::rest, and polybori::groebner::LiteralFactorization::var2var_map.

Referenced by extended_product_criterion().

MonomialSet polybori::groebner::contained_deg2_cudd_style | ( | const MonomialSet & | m | ) |

inline

References contained_variables_cudd_style(), polybori::CCuddNavigator::elseBranch(), polybori::CCuddNavigator::isConstant(), polybori::CCuddNavigator::isValid(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), polybori::CCuddDDFacade< RingType, DiagramType >::ring(), and polybori::CCuddNavigator::thenBranch().

Referenced by do_minimal_elements_cudd_style().

std::vector<idx_type> polybori::groebner::contained_variables | ( | const MonomialSet & | m | ) |

inline

References polybori::CCuddNavigator::incrementElse(), polybori::CCuddNavigator::isConstant(), polybori::CCuddNavigator::isTerminated(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), and polybori::CCuddNavigator::thenBranch().

Referenced by minimal_elements_internal2(), and minimal_elements_internal3().

MonomialSet polybori::groebner::contained_variables_cudd_style | ( | const MonomialSet & | m | ) |

inline

References polybori::CCuddNavigator::elseBranch(), polybori::CCuddNavigator::incrementElse(), polybori::CCuddNavigator::isConstant(), polybori::CCuddNavigator::isTerminated(), polybori::CCuddNavigator::isValid(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), polybori::CCuddDDFacade< RingType, DiagramType >::ring(), and polybori::CCuddNavigator::thenBranch().

Referenced by contained_deg2_cudd_style(), and do_minimal_elements_cudd_style().

MonomialSet polybori::groebner::do_fixed_path_divisors | ( | const fixed_divisors_cache_type & | cache_mgr,
|  | MonomialSet::navigator | a_nav,
|  | MonomialSet::navigator | m_nav,
|  | MonomialSet::navigator | n_nav
| ) |  |

inline

References do_fixed_path_divisors(), polybori::CCuddNavigator::elseBranch(), polybori::CCuddNavigator::incrementElse(), polybori::CCuddNavigator::incrementThen(), polybori::CCuddNavigator::isConstant(), polybori::CCuddNavigator::isTerminated(), polybori::CCuddNavigator::isValid(), polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), PBORI_ASSERT, polybori::CCuddNavigator::terminalValue(), and polybori::CCuddNavigator::thenBranch().

MonomialSet polybori::groebner::do_fixed_path_divisors | ( | MonomialSet | a,
|  | MonomialSet | m,
|  | MonomialSet | n
| ) |  |

inline

References polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), and polybori::CCuddDDFacade< RingType, DiagramType >::ring().

Referenced by do_fixed_path_divisors(), and fixed_path_divisors().

Polynomial polybori::groebner::do_is_rewriteable | ( | const Polynomial & | p,
|  | const MonomialSet & | leading_terms
| ) |  |

References polybori::CCuddNavigator::elseBranch(), polybori::CCuddNavigator::incrementElse(), polybori::CCuddNavigator::incrementThen(), polybori::CCuddNavigator::isConstant(), polybori::CCuddNavigator::isEmpty(), polybori::BoolePolynomial::isOne(), polybori::CCuddNavigator::isTerminated(), polybori::CCuddNavigator::isValid(), polybori::BoolePolynomial::isZero(), polybori::BoolePolynomial::navigation(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), polybori::BoolePolyRing::one(), polybori::BooleSet::ownsOne(), PBORI_ASSERT, polybori::BoolePolynomial::ring(), polybori::CCuddNavigator::thenBranch(), and polybori::BoolePolyRing::zero().

Referenced by is_rewriteable().

MonomialSet polybori::groebner::do_minimal_elements_cudd_style | ( | MonomialSet | m,
|  | MonomialSet | mod
| ) |  |

inline

References contained_deg2_cudd_style(), contained_variables_cudd_style(), polybori::CCuddNavigator::elseBranch(), polybori::CCuddNavigator::incrementElse(), polybori::CCuddNavigator::isConstant(), polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), mod_deg2_set(), mod_var_set(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), polybori::BooleSet::ownsOne(), PBORI_ASSERT, polybori::CCuddDDFacade< RingType, DiagramType >::ring(), and polybori::CCuddNavigator::thenBranch().

Referenced by minimal_elements_cudd_style().

Polynomial polybori::groebner::do_plug_1 | ( | const Polynomial & | p,
|  | const MonomialSet & | m_plus_ones
| ) |  |

References polybori::BoolePolynomial::diagram(), polybori::CCuddNavigator::elseBranch(), polybori::CCuddNavigator::incrementElse(), polybori::CCuddNavigator::isConstant(), mod_mon_set(), polybori::BoolePolynomial::navigation(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), PBORI_ASSERT, PBORI_UNLIKELY, polybori::BoolePolynomial::ring(), and polybori::CCuddNavigator::thenBranch().

Referenced by plug_1_top().

void polybori::groebner::draw_matrix | ( | mzd_t * | mat,
|  | const char * | filename
| ) |  |

inline

Referenced by polybori::groebner::FGLMStrategy::setupMultiplicationTables().

std::vector< Polynomial > polybori::groebner::easy_linear_factors | ( | const Polynomial & | p | ) |

References polybori::groebner::LiteralFactorization::begin(), and polybori::groebner::LiteralFactorization::end().

bool polybori::groebner::extended_product_criterion | ( | const PolyEntry & | m,
|  | const PolyEntry & | m2
| ) |  |

inline

Todo:
  need GCDdeg

References common_literal_factors_deg(), polybori::BooleMonomial::deg(), polybori::BooleMonomial::GCD(), polybori::groebner::PolyEntryBase::lead, and polybori::groebner::PolyEntryBase::literal_factors.

Referenced by polybori::groebner::GroebnerStrategy::checkExtendedProductCriterion(), and polybori::groebner::HasTRepOrExtendedProductCriterion::operator()().

MonomialSet polybori::groebner::fixed_path_divisors | ( | MonomialSet | a,
|  | Monomial | m,
|  | Monomial | n
| ) |  |

inline

References polybori::BooleMonomial::diagram(), do_fixed_path_divisors(), PBORI_ASSERT, and polybori::BooleMonomial::reducibleBy().

Referenced by polybori::groebner::BoundedDivisorsOf::operator()().

std::vector< Polynomial > polybori::groebner::full_implication_gb | ( | const Polynomial & | p,
|  | CacheManager & | cache,
|  | GroebnerStrategy & | strat
| ) |  |

References polybori::groebner::GroebnerStrategy::cache, polybori::groebner::CacheManager::insert(), polybori::groebner::GroebnerStrategy::log(), polybori::groebner::CacheManager::lookup(), and polybori::BoolePolynomial::ring().

Referenced by polybori::groebner::GroebnerStrategy::addGeneratorTrySplit().

MonomialSet polybori::groebner::gen_random_subset | ( | const BoolePolyRing & | ring,
|  | const std::vector< Monomial > & | vec,
|  | bool_gen_type & | bit_gen
| ) |  |

References add_up_monomials(), polybori::BooleSet::begin(), and polybori::BoolePolyRing::zero().

Referenced by random_interpolation().

unsigned int polybori::groebner::get_table_entry4 | ( | const BoolePolyRing & | ring,
|  | int | p_code,
|  | int | pos
| ) |  |

inline

References polybori::dlex, dlex4var_data, polybori::dp_asc, dp_asc4var_data, polybori::COrderingBase::getBaseOrderCode(), polybori::lp, lp4var_data, and polybori::BoolePolyRing::ordering().

void polybori::groebner::groebner | ( | GroebnerStrategy & | strat | ) |

bool polybori::groebner::have_base_ordering_for_tables | ( | const BoolePolyRing & | ring | ) |

inline

References polybori::COrderingBase::getBaseOrderCode(), have_ordering_for_tables(), and polybori::BoolePolyRing::ordering().

Referenced by polybori::groebner::GroebnerStrategy::addGeneratorTrySplit(), and polybori::groebner::GroebnerStrategy::treatVariablePairs().

bool polybori::groebner::have_ordering_for_tables | ( | const int | order_code | ) |

inline

References polybori::dlex, polybori::dp_asc, and polybori::lp.

Referenced by polybori::groebner::GroebnerStrategy::addGeneratorTrySplit(), and polybori::groebner::GroebnerStrategy::treatVariablePairs().

bool polybori::groebner::have_ordering_for_tables | ( | const BoolePolyRing & | ring | ) |

inline

References polybori::COrderingBase::getOrderCode(), and polybori::BoolePolyRing::ordering().

Referenced by have_base_ordering_for_tables().

MonomialSet polybori::groebner::include_divisors | ( | const MonomialSet & | m | ) |

References polybori::CCuddNavigator::elseBranch(), polybori::CCuddNavigator::isConstant(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), polybori::CCuddDDFacade< RingType, DiagramType >::ring(), and polybori::CCuddNavigator::thenBranch().

Referenced by variety_lex_leading_terms().

Polynomial polybori::groebner::interpolate | ( | MonomialSet | to_zero,
|  | MonomialSet | to_one
| ) |  |

References polybori::CCuddNavigator::isValid(), polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), PBORI_ASSERT, and polybori::CCuddDDFacade< RingType, DiagramType >::ring().

Polynomial polybori::groebner::interpolate_smallest_lex | ( | MonomialSet | to_zero,
|  | MonomialSet | to_one
| ) |  |

References polybori::BoolePolynomial::diagram(), polybori::CCuddNavigator::isValid(), polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), PBORI_ASSERT, polybori::CCuddDDFacade< RingType, DiagramType >::ring(), and zeros().

Referenced by nf_lex_points(), and random_interpolation().

bool polybori::groebner::irreducible_lead | ( | Monomial | lm,
|  | const ReductionStrategy & | strat
| ) |  |

inline

References polybori::BooleSet::hasTermOfVariables(), and polybori::groebner::ReductionTerms::minimalLeadingTerms.

Referenced by polybori::groebner::BlockOrderHelper::irreducible_lead(), polybori::groebner::DegOrderHelper::irreducible_lead(), polybori::groebner::LexHelper::irreducible_lead(), red_tail_general(), red_tail_generic(), and select_no_deg_growth().

bool polybori::groebner::is_rewriteable | ( | const Polynomial & | p,
|  | const MonomialSet & | leading_terms
| ) |  |

References do_is_rewriteable().

Referenced by polybori::groebner::ReductionStrategy::canRewrite().

Polynomial polybori::groebner::ll_red_nf | ( | const Polynomial & | p,
|  | const BooleSet & | reductors
| ) |  |

inline

Referenced by cheap_reductions(), and polybori::groebner::ReductionStrategy::llReduce().

template<bool have_redsb, bool single_call_for_noredsb, bool fast_multiplication>

Polynomial polybori::groebner::ll_red_nf_generic | ( | const Polynomial & | p,
|  | const BooleSet & | reductors
| ) |  |

inline

References ll_red_nf_generic(), and polybori::CCuddDDFacade< RingType, DiagramType >::navigation().

template<bool have_redsb, bool single_call_for_noredsb, bool fast_multiplication>

Polynomial polybori::groebner::ll_red_nf_generic | ( | const Polynomial & | p,
|  | MonomialSet::navigator | r_nav
| ) |  |

inline

References polybori::BoolePolynomial::ring().

Referenced by ll_red_nf_generic().

Polynomial polybori::groebner::ll_red_nf_noredsb | ( | const Polynomial & | p,
|  | const BooleSet & | reductors
| ) |  |

inline

Polynomial polybori::groebner::ll_red_nf_noredsb_single_recursive_call | ( | const Polynomial & | p,
|  | const BooleSet & | reductors
| ) |  |

inline

Polynomial polybori::groebner::map_every_x_to_x_plus_one | ( | Polynomial | p | ) |

References polybori::BoolePolynomial::diagram(), map_every_x_to_x_plus_one(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), and polybori::BoolePolynomial::ring().

template<class CacheMgr >

Polynomial polybori::groebner::map_every_x_to_x_plus_one | ( | const CacheMgr & | cache_mgr,
|  | MonomialSet::navigator | nav
| ) |  |

References polybori::BoolePolynomial::diagram(), polybori::CCuddNavigator::elseBranch(), polybori::CCuddNavigator::isConstant(), polybori::CCuddNavigator::isValid(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), and polybori::CCuddNavigator::thenBranch().

Referenced by map_every_x_to_x_plus_one().

bool polybori::groebner::maps_to_one | ( | const std::pair< const polybori::groebner::idx_type, int > | v | ) |

Referenced by polybori::groebner::LiteralFactorization::is00Factorization().

bool polybori::groebner::maps_to_zero | ( | const std::pair< const polybori::groebner::idx_type, int > | v | ) |

Referenced by polybori::groebner::LiteralFactorization::is11Factorization().

MonomialSet polybori::groebner::minimal_elements | ( | const MonomialSet & | s | ) |

inline

References minimal_elements_cudd_style_unary(), minimal_elements_internal(), and polybori::BooleSet::minimalElements().

Referenced by polybori::groebner::GroebnerStrategy::minimalize(), and polybori::groebner::GroebnerStrategy::minimalizeAndTailReduce().

MonomialSet polybori::groebner::minimal_elements_cudd_style | ( | MonomialSet | m | ) |

inline

References do_minimal_elements_cudd_style(), and polybori::CCuddDDFacade< RingType, DiagramType >::ring().

MonomialSet polybori::groebner::minimal_elements_cudd_style_unary | ( | MonomialSet | m | ) |

inline

References polybori::CCuddNavigator::elseBranch(), polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), mod_mon_set(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), polybori::BooleSet::ownsOne(), polybori::CCuddDDFacade< RingType, DiagramType >::ring(), and polybori::CCuddNavigator::thenBranch().

Referenced by minimal_elements(), minimal_elements_divided(), and minimal_elements_multiplied_monoms().

MonomialSet polybori::groebner::minimal_elements_divided | ( | MonomialSet | m,
|  | Monomial | lm,
|  | MonomialSet | mod
| ) |  |

inline

References polybori::BooleSet::divisorsOf(), polybori::BooleSet::existAbstract(), polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), minimal_elements_cudd_style_unary(), mod_mon_set(), polybori::BoolePolyRing::one(), and polybori::CCuddDDFacade< RingType, DiagramType >::ring().

Referenced by polybori::groebner::RelatedTermsBase::factors().

void polybori::groebner::minimal_elements_divided | ( | MonomialSet | m,
|  | Monomial | lm,
|  | MonomialSet | mod,
|  | std::vector< Exponent > & | result
| ) |  |

inline

References polybori::BooleSet::expBegin(), polybori::BooleSet::expEnd(), and polybori::BooleSet::length().

MonomialSet polybori::groebner::minimal_elements_internal | ( | const MonomialSet & | s | ) |

inline

References polybori::BooleSet::begin(), polybori::BooleSet::change(), polybori::BooleMonomial::diagram(), polybori::BoolePolynomial::isOne(), polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), polybori::BooleSet::length(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), polybori::BooleMonomial::reducibleBy(), and polybori::CCuddDDFacade< RingType, DiagramType >::ring().

Referenced by minimal_elements().

MonomialSet polybori::groebner::minimal_elements_internal2 | ( | MonomialSet | s | ) |

inline

References polybori::BooleSet::change(), contained_variables(), polybori::BooleMonomial::diagram(), polybori::BoolePolynomial::hasConstantPart(), polybori::CCuddNavigator::incrementElse(), polybori::CCuddNavigator::isConstant(), polybori::BoolePolynomial::isOne(), polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), polybori::BooleSet::length(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), PBORI_ASSERT, and polybori::CCuddDDFacade< RingType, DiagramType >::ring().

std::vector<Exponent> polybori::groebner::minimal_elements_internal3 | ( | MonomialSet | s | ) |

inline

References contained_variables(), polybori::BooleSet::expBegin(), polybori::BooleSet::expEnd(), polybori::BoolePolynomial::hasConstantPart(), polybori::BooleExponent::insert(), polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), polybori::BoolePolyRing::nVariables(), polybori::BooleExponent::push_back(), and polybori::CCuddDDFacade< RingType, DiagramType >::ring().

std::vector<Monomial> polybori::groebner::minimal_elements_multiplied | ( | MonomialSet | m,
|  | Monomial | lm
| ) |  |

inline

References polybori::BooleSet::begin(), polybori::BooleSet::end(), and minimal_elements_multiplied_monoms().

MonomialSet polybori::groebner::minimal_elements_multiplied_monoms | ( | MonomialSet | m,
|  | Monomial | lm
| ) |  |

inline

References polybori::BooleSet::divisorsOf(), polybori::BooleSet::existAbstract(), polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), minimal_elements_cudd_style_unary(), and polybori::BooleMonomial::set().

Referenced by minimal_elements_multiplied().

MonomialSet polybori::groebner::mod_deg2_set | ( | const MonomialSet & | as,
|  | const MonomialSet & | vs
| ) |  |

References mod_deg2_set(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), and polybori::CCuddDDFacade< RingType, DiagramType >::ring().

Referenced by do_minimal_elements_cudd_style().

template<class CacheMgr >

MonomialSet polybori::groebner::mod_deg2_set | ( | const CacheMgr & | cache_mgr,
|  | MonomialSet::navigator | a,
|  | MonomialSet::navigator | v
| ) |  |

References polybori::CCuddNavigator::elseBranch(), polybori::CCuddNavigator::incrementElse(), polybori::CCuddNavigator::isConstant(), polybori::CCuddNavigator::isValid(), mod_var_set(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), PBORI_ASSERT, and polybori::CCuddNavigator::thenBranch().

Referenced by mod_deg2_set().

MonomialSet polybori::groebner::mod_mon_set | ( | const MonomialSet & | as,
|  | const MonomialSet & | vs
| ) |  |

References polybori::dd_modulo_monomials(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), and polybori::CCuddDDFacade< RingType, DiagramType >::ring().

Referenced by polybori::groebner::FGLMStrategy::analyzeGB(), cheap_reductions(), polybori::groebner::RelatedTermsBase::critical_terms_base(), do_plug_1(), minimal_elements_cudd_style_unary(), minimal_elements_divided(), plug_1_top(), and red_tail_generic().

template<class CacheMgr >

MonomialSet polybori::groebner::mod_var_set | ( | const CacheMgr & | cache_mgr,
|  | MonomialSet::navigator | a,
|  | MonomialSet::navigator | v
| ) |  |

References polybori::CCuddNavigator::elseBranch(), polybori::CCuddNavigator::incrementElse(), polybori::CCuddNavigator::isConstant(), polybori::CCuddNavigator::isValid(), polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), polybori::CCuddDDFacade< RingType, DiagramType >::ring(), and polybori::CCuddNavigator::thenBranch().

Referenced by mod_deg2_set(), and mod_var_set().

MonomialSet polybori::groebner::mod_var_set | ( | const MonomialSet & | as,
|  | const MonomialSet & | vs
| ) |  |

References mod_var_set(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), and polybori::CCuddDDFacade< RingType, DiagramType >::ring().

Referenced by do_minimal_elements_cudd_style().

Polynomial polybori::groebner::mult_fast_sim | ( | const std::vector< Polynomial > & | vec,
|  | const BoolePolyRing & | ring
| ) |  |

References polybori::BoolePolynomial::ring().

template<bool fast>

Polynomial polybori::groebner::multiply | ( | const Polynomial & | p,
|  | const Polynomial & | q
| ) |  |

inline

References polybori::BoolePolynomial::navigation(), and polybori::BoolePolynomial::ring().

Referenced by polybori::groebner::LLReduction< have_redsb, single_call_for_noredsb, fast_multiplication >::operator()(), and reduce_complete().

Polynomial polybori::groebner::multiply_with_literal_factors | ( | const LiteralFactorization & | lf,
|  | Polynomial | p
| ) |  |

References polybori::BooleSet::change(), polybori::BoolePolynomial::diagram(), polybori::groebner::LiteralFactorization::factors, and polybori::groebner::LiteralFactorization::var2var_map.

Referenced by polybori::groebner::GroebnerStrategy::addGeneratorTrySplit().

Polynomial polybori::groebner::nf3 | ( | const ReductionStrategy & | strat,
|  | Polynomial | p,
|  | Monomial | rest_lead
| ) |  |

References polybori::BooleMonomial::exp(), polybori::BoolePolynomial::isZero(), polybori::BoolePolynomial::lead(), polybori::groebner::ReductionOptions::optBrutalReductions, PBORI_ASSERT, reduce_complete(), polybori::groebner::ReductionStrategy::select1(), and polybori::groebner::PolyEntryVector::size().

Referenced by polybori::groebner::ReductionStrategy::headNormalForm(), polybori::groebner::BlockOrderHelper::nf(), polybori::groebner::LexHelper::nf(), and red_tail_general().

Polynomial polybori::groebner::nf3_degree_order | ( | const ReductionStrategy & | strat,
|  | Polynomial | p,
|  | Monomial | lead
| ) |  |

References polybori::BoolePolynomial::boundedLead(), polybori::BooleExponent::deg(), polybori::BoolePolynomial::deg(), polybori::BooleMonomial::exp(), polybori::BoolePolynomial::gradedPart(), polybori::BoolePolynomial::isZero(), polybori::BoolePolynomial::lead(), polybori::BoolePolynomial::leadDeg(), polybori::groebner::ReductionOptions::optBrutalReductions, PBORI_ASSERT, reduce_complete(), polybori::groebner::ReductionStrategy::select1(), and polybori::groebner::PolyEntryVector::size().

Referenced by polybori::groebner::ReductionStrategy::headNormalForm(), polybori::groebner::DegOrderHelper::nf(), and red_tail_general().

Polynomial polybori::groebner::nf3_lexbuckets | ( | const GroebnerStrategy & | strat,
|  | Polynomial | p,
|  | Monomial | rest_lead
| ) |  |

References polybori::BooleMonomial::exp(), polybori::groebner::GroebnerStrategy::generators, polybori::groebner::LexBucket::getFront(), polybori::groebner::LexBucket::isZero(), polybori::groebner::LexBucket::leadExp(), polybori::groebner::ReductionOptions::optBrutalReductions, PBORI_ASSERT, polybori::BoolePolynomial::ring(), polybori::groebner::ReductionStrategy::select1(), polybori::groebner::PolyEntryVector::size(), polybori::groebner::LexBucket::value(), and polybori::BoolePolyRing::zero().

Polynomial polybori::groebner::nf3_no_deg_growth | ( | const ReductionStrategy & | strat,
|  | Polynomial | p,
|  | Monomial | rest_lead
| ) |  |

References polybori::BooleMonomial::exp(), polybori::BoolePolynomial::isZero(), polybori::BoolePolynomial::lead(), polybori::groebner::ReductionOptions::optBrutalReductions, PBORI_ASSERT, reduce_complete(), select_no_deg_growth(), and polybori::groebner::PolyEntryVector::size().

Referenced by polybori::groebner::LexHelper::nf().

Polynomial polybori::groebner::nf3_short | ( | const ReductionStrategy & | strat,
|  | Polynomial | p
| ) |  |

References polybori::BoolePolynomial::lead(), PBORI_ASSERT, reduce_complete(), polybori::groebner::ReductionStrategy::select_short(), polybori::groebner::PolyEntryVector::size(), and polybori::spoly().

Referenced by red_tail_short().

MonomialSet polybori::groebner::nf_lex_points | ( | const Polynomial & | f,
|  | const MonomialSet & | p
| ) |  |

References interpolate_smallest_lex(), and zeros().

Referenced by variety_lex_groebner_basis().

template<class RhsType >

bool polybori::groebner::operator> | ( | PseudoLongProduct | lhs,
|  | const RhsType & | rhs
| ) |  |

inline

References polybori::groebner::PseudoLongProduct::greater().

template<class value_type , class initializer , class set_bit >

value_type polybori::groebner::p2code | ( | Polynomial | p,
|  | const std::vector< char > & | ring_2_0123,
|  | int | max_vars
| ) |  |

inline

References polybori::BooleExponent::begin(), polybori::BooleExponent::end(), polybori::BoolePolynomial::expBegin(), polybori::BoolePolynomial::expEnd(), and PBORI_ASSERT.

unsigned int polybori::groebner::p2code_4 | ( | Polynomial | p,
|  | const std::vector< char > & | ring_2_0123
| ) |  |

inline

std::vector< Polynomial > polybori::groebner::parallel_reduce | ( | std::vector< Polynomial > | inp,
|  | GroebnerStrategy & | strat,
|  | int | average_steps,
|  | double | delay_f
| ) |  |

Polynomial::size_type max_length=0;

Polynomial::size_type max_length=0;

References polybori::groebner::GroebnerStrategy::addGeneratorDelayed(), polybori::BooleMonomial::begin(), polybori::BooleMonomial::deg(), polybori::groebner::GroebnerStrategy::faugereStepDense(), polybori::groebner::GroebnerStrategy::generators, polybori::groebner::PolynomialSugar::getSugar(), polybori::groebner::GroebnerStrategy::log(), polybori::groebner::GroebnerOptions::optExchange, polybori::groebner::GroebnerOptions::optLazy, polybori::groebner::GroebnerOptions::optLinearAlgebraInLastBlock, polybori::groebner::GroebnerOptions::optStepBounded, PBORI_ASSERT, polybori::groebner::ReductionStrategy::select1(), and steps().

Referenced by polybori::groebner::GroebnerStrategy::symmGB_F2().

Polynomial polybori::groebner::plug_1 | ( | const Polynomial & | p,
|  | const MonomialSet & | m_plus_ones
| ) |  |

References plug_1_top().

Referenced by cheap_reductions().

Polynomial polybori::groebner::plug_1_top | ( | const Polynomial & | p,
|  | const MonomialSet & | m_plus_ones
| ) |  |

References polybori::BoolePolynomial::diagram(), do_plug_1(), and mod_mon_set().

Referenced by plug_1().

MonomialSet polybori::groebner::random_interpolation | ( | const MonomialSet & | as_set,
|  | const std::vector< Monomial > & | as_vector,
|  | bool_gen_type & | bit_gen
| ) |  |

References gen_random_subset(), interpolate_smallest_lex(), and polybori::CCuddDDFacade< RingType, DiagramType >::ring().

Referenced by variety_lex_leading_terms().

MonomialSet polybori::groebner::random_set | ( | const Monomial & | variables,
|  | unsigned int | len
| ) |  |

References random_set_using_generator().

MonomialSet polybori::groebner::random_set_using_generator | ( | const Monomial & | variables,
|  | unsigned int | len,
|  | bool_gen_type & | bit_gen
| ) |  |

References add_up_exponents(), polybori::BooleExponent::begin(), polybori::BoolePolynomial::diagram(), polybori::BooleExponent::end(), polybori::BooleMonomial::exp(), polybori::BooleExponent::insert(), polybori::BooleExponent::push_back(), polybori::BooleMonomial::ring(), and polybori::BoolePolyRing::zero().

Referenced by random_set().

MonomialSet polybori::groebner::recursively_insert | ( | MonomialSet::navigator | p,
|  | idx_type | idx,
|  | MonomialSet | mset
| ) |  |

References polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), recursively_insert(), and polybori::CCuddDDFacade< RingType, DiagramType >::ring().

template<class MgrType >

MonomialSet polybori::groebner::recursively_insert | ( | const MgrType & | mgr,
|  | MonomialSet::navigator | p,
|  | idx_type | idx,
|  | MonomialSet::navigator | m
| ) |  |

References polybori::CCuddNavigator::elseBranch(), PBORI_ASSERT, and polybori::CCuddNavigator::thenBranch().

Referenced by recursively_insert().

Polynomial polybori::groebner::red_tail | ( | const ReductionStrategy & | strat,
|  | Polynomial | p
| ) |  |

inline

References polybori::COrderingBase::isBlockOrder(), polybori::COrderingBase::isDegreeOrder(), polybori::COrderingBase::isLexicographical(), polybori::BoolePolynomial::isZero(), polybori::BoolePolyRing::ordering(), PBORI_UNLIKELY, red_tail_general(), and polybori::BoolePolynomial::ring().

Referenced by polybori::groebner::GroebnerStrategy::addAsYouWish(), red_tail_in_last_block(), polybori::groebner::GroebnerStrategy::redTail(), and polybori::groebner::ReductionStrategy::reducedNormalForm().

Polynomial polybori::groebner::red_tail_general | ( | const ReductionStrategy & | strat,
|  | Polynomial | p
| ) |  |

inline

References add_up_generic(), add_up_polynomials(), polybori::BooleMonomial::diagram(), polybori::BoolePolynomial::diagram(), irreducible_lead(), polybori::COrderingBase::isDegreeOrder(), polybori::BoolePolynomial::isZero(), polybori::BoolePolynomial::lead(), nf3(), nf3_degree_order(), polybori::BoolePolynomial::orderedBegin(), polybori::BoolePolynomial::orderedEnd(), polybori::BoolePolyRing::ordering(), PBORI_ASSERT, PBORI_LIKELY, PBORI_UNLIKELY, polybori::BoolePolynomial::ring(), and polybori::BoolePolyRing::zero().

Referenced by red_tail().

template<class Helper >

Polynomial polybori::groebner::red_tail_generic | ( | const ReductionStrategy & | strat,
|  | Polynomial | p
| ) |  |

inline

References add_up_polynomials(), polybori::groebner::ReductionStrategy::canRewrite(), cheap_reductions(), polybori::BooleMonomial::diagram(), polybori::BoolePolynomial::diagram(), irreducible_lead(), polybori::BoolePolynomial::isZero(), polybori::BoolePolynomial::lead(), polybori::groebner::ReductionTerms::minimalLeadingTerms, mod_mon_set(), PBORI_ASSERT, PBORI_LIKELY, PBORI_UNLIKELY, polybori::BoolePolynomial::ring(), and polybori::BoolePolyRing::zero().

Polynomial polybori::groebner::red_tail_in_last_block | ( | const GroebnerStrategy & | strat,
|  | Polynomial | p
| ) |  |

inline

References polybori::groebner::GroebnerStrategy::generators, polybori::CCuddNavigator::incrementElse(), polybori::CCuddNavigator::isConstant(), polybori::COrderingBase::lastBlockStart(), polybori::BoolePolynomial::navigation(), polybori::groebner::GroebnerStrategy::nf(), polybori::BoolePolyRing::ordering(), red_tail(), and polybori::BoolePolynomial::ring().

Referenced by polybori::groebner::GroebnerStrategy::addAsYouWish().

Polynomial polybori::groebner::red_tail_short | ( | const ReductionStrategy & | strat,
|  | Polynomial | p
| ) |  |

inline

References polybori::BoolePolynomial::isZero(), polybori::BoolePolynomial::lead(), nf3_short(), and polybori::BoolePolynomial::ring().

Polynomial polybori::groebner::reduce_by_binom | ( | const Polynomial & | p,
|  | const Polynomial & | binom
| ) |  |

inline

References polybori::BooleMonomial::GCD(), polybori::BoolePolynomial::lead(), polybori::BoolePolynomial::length(), polybori::BooleSet::multiplesOf(), polybori::BoolePolynomial::orderedBegin(), and PBORI_ASSERT.

Referenced by reduce_by_binom_in_tail(), and reduce_complete().

Polynomial polybori::groebner::reduce_by_binom_in_tail | ( | const Polynomial & | p,
|  | const Polynomial & | binom
| ) |  |

inline

References polybori::BoolePolynomial::lead(), polybori::BoolePolynomial::length(), PBORI_ASSERT, and reduce_by_binom().

Referenced by reduce_by_small_entry().

Polynomial polybori::groebner::reduce_by_monom | ( | const Polynomial & | p,
|  | const Monomial & | m
| ) |  |

assumes that divisibility condition is fullfilled

References polybori::BooleMonomial::begin(), polybori::BooleMonomial::deg(), polybori::BooleMonomial::diagram(), polybori::BooleMonomial::end(), polybori::BoolePolynomial::ring(), and polybori::BoolePolyRing::zero().

Referenced by cancel_monomial_in_tail().

Polynomial polybori::groebner::reduce_by_small_entry | ( | const Polynomial & | poly,
|  | const PolyEntry & | entry
| ) |  |

inline

References cancel_monomial_in_tail(), polybori::groebner::PolyEntryBase::lead, polybori::groebner::PolyEntryBase::length, polybori::groebner::PolyEntryBase::p, PBORI_ASSERT, and reduce_by_binom_in_tail().

Polynomial polybori::groebner::reduce_complete | ( | const Polynomial & | p,
|  | const Polynomial & | reductor
| ) |  |

References polybori::BoolePolynomial::begin(), polybori::BoolePolynomial::end(), polybori::BooleMonomial::GCD(), and polybori::BoolePolynomial::lead().

Referenced by nf3(), nf3_degree_order(), nf3_no_deg_growth(), and nf3_short().

Polynomial polybori::groebner::reduce_complete | ( | const Polynomial & | p,
|  | const PolyEntry & | reductor,
|  | wlen_type & | len
| ) |  |

References polybori::BooleExponent::begin(), polybori::BoolePolynomial::diagram(), polybori::BooleExponent::end(), polybori::groebner::PolyEntryBase::leadExp, polybori::groebner::PolyEntryBase::length, polybori::BooleSet::length(), multiply(), polybori::groebner::PolyEntryBase::p, and reduce_by_binom().

int polybori::groebner::select_largest_degree | ( | const ReductionStrategy & | strat,
|  | const Monomial & | m
| ) |  |

inline

References polybori::BooleSet::divisorsOf(), polybori::BooleSet::expBegin(), polybori::BooleSet::expEnd(), polybori::groebner::PolyEntryVector::index(), polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), and polybori::groebner::ReductionTerms::leadingTerms.

int polybori::groebner::select_no_deg_growth | ( | const ReductionStrategy & | strat,
|  | const Monomial & | m
| ) |  |

References polybori::BooleSet::divisorsOf(), polybori::BooleSet::expBegin(), polybori::BooleSet::expEnd(), polybori::groebner::PolyEntryVector::index(), irreducible_lead(), polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), polybori::groebner::ReductionTerms::leadingTerms, and wlen_literal_exceptioned().

Referenced by nf3_no_deg_growth().

void polybori::groebner::set_random_seed | ( | unsigned int | seed | ) |

template<class idx_type1 , class idx_type2 >

void polybori::groebner::set_up_translation_vectors | ( | std::vector< idx_type1 > & | ring_2_0123,
|  | std::vector< idx_type2 > & | back_2_ring,
|  | const Exponent & | used_variables
| ) |  |

References polybori::BooleExponent::begin(), and polybori::BooleExponent::end().

Referenced by polybori::groebner::CacheManager::insert(), and polybori::groebner::CacheManager::lookup().

bool polybori::groebner::should_propagate | ( | const PolyEntry & | e | ) |

inline

References polybori::groebner::PolyEntryBase::deg, polybori::groebner::PolyEntry::ecart(), and polybori::groebner::PolyEntryBase::length.

int polybori::groebner::steps | ( | int | size | ) |

Referenced by parallel_reduce(), and polybori::groebner::GroebnerStrategy::symmGB_F2().

int polybori::groebner::sum_size | ( | const MonomialSet & | s1,
|  | const MonomialSet & | s2
| ) |  |

References polybori::BooleMonomial::begin(), polybori::BooleMonomial::deg(), polybori::BooleMonomial::end(), polybori::BoolePolynomial::lead(), polybori::BooleSet::length(), and PBORI_ASSERT.

Polynomial polybori::groebner::translate_indices | ( | const Polynomial & | p,
|  | const std::vector< idx_type > & | table
| ) |  |

References polybori::BooleSet::change(), polybori::dd_backward_transform(), polybori::BoolePolynomial::diagram(), polybori::BoolePolynomial::isConstant(), polybori::BoolePolynomial::navigation(), polybori::BoolePolynomial::ring(), and polybori::BoolePolyRing::zero().

Referenced by polybori::groebner::CacheManager::insert(), and polybori::groebner::CacheManager::lookup().

void polybori::groebner::transpose_window_to_row | ( | mzd_t * | transposed_vec,
|  | mzd_t * | window
| ) |  |

Polynomial polybori::groebner::unite_polynomials | ( | const std::vector< Polynomial > & | res_vec,
|  | int | start,
|  | int | end,
|  | Polynomial | init
| ) |  |

inline

References PBORI_UNLIKELY, and unite_polynomials().

Polynomial polybori::groebner::unite_polynomials | ( | const std::vector< Polynomial > & | res_vec,
|  | Polynomial | init
| ) |  |

inline

References PBORI_UNLIKELY.

Referenced by unite_polynomials().

std::vector< Polynomial > polybori::groebner::variety_lex_groebner_basis | ( | const MonomialSet & | points,
|  | const Monomial & | variables
| ) |  |

References polybori::BooleSet::begin(), polybori::BooleSet::end(), nf_lex_points(), and variety_lex_leading_terms().

MonomialSet polybori::groebner::variety_lex_leading_terms | ( | const MonomialSet & | points,
|  | const Monomial & | variables
| ) |  |

References polybori::BooleSet::begin(), polybori::BooleMonomial::divisors(), polybori::BooleSet::end(), include_divisors(), polybori::BooleSet::minimalElements(), polybori::BoolePolyRing::one(), random_interpolation(), polybori::CCuddDDFacade< RingType, DiagramType >::ring(), and polybori::BooleSet::size().

Referenced by variety_lex_groebner_basis().

Polynomial polybori::groebner::without_prior_part | ( | Polynomial | p,
|  | idx_type | tail_start
| ) |  |

References polybori::CCuddNavigator::incrementElse(), polybori::BoolePolynomial::navigation(), and polybori::BoolePolynomial::ring().

Referenced by polybori::groebner::LexBucket::increaseTailStart(), polybori::groebner::LexBucket::LexBucket(), and polybori::groebner::LexBucket::operator+=().

wlen_type polybori::groebner::wlen_literal_exceptioned | ( | const PolyEntry & | e | ) |

inline

References polybori::groebner::PolyEntryBase::deg, polybori::groebner::PolyEntryBase::length, and polybori::groebner::PolyEntryBase::weightedLength.

Referenced by polybori::groebner::LessWeightedLengthInStratModified::operator()(), and select_no_deg_growth().

MonomialSet polybori::groebner::zeros | ( | Polynomial | p,
|  | MonomialSet | candidates
| ) |  |

References polybori::BoolePolynomial::diagram(), polybori::BoolePolynomial::hasConstantPart(), polybori::CCuddNavigator::incrementElse(), polybori::BoolePolynomial::isOne(), polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), polybori::BoolePolynomial::isZero(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), PBORI_ASSERT, polybori::CCuddDDFacade< RingType, DiagramType >::ring(), polybori::BoolePolynomial::ring(), and polybori::CCuddDDFacade< RingType, DiagramType >::Xor().

Referenced by interpolate_smallest_lex(), nf_lex_points(), polybori::groebner::CountCriterion::operator()(), and polybori::groebner::GroebnerStrategy::treatVariablePairs().

## Variable Documentation

const unsigned short polybori::groebner::dlex4var_data[][7]

Referenced by get_table_entry4().

const unsigned short polybori::groebner::dp_asc4var_data[][7]

Referenced by get_table_entry4().

const int polybori::groebner::FARE_WORSE =10

const unsigned short polybori::groebner::lp4var_data[][7]

Referenced by get_table_entry4().

const int polybori::groebner::SLIMGB_SIMPLEST =0