PolyBoRi
Classes | Typedefs | Enumerations | Functions | Variables
polybori::groebner Namespace Reference

Classes

class  CacheManager
class  FGLMNoLinearCombinationException
class  FGLMStrategy
class  ChainCriterion
 assumes that divisibility condition is fullfilled More...
class  ChainVariableCriterion
class  HasTRepOrExtendedProductCriterion
class  SetBitUInt
class  ZeroFunction
class  ShorterEliminationLength
class  ShorterEliminationLengthModified
class  PairStatusSet
class  PairManager
class  MonomialHasher
class  ReductionStrategy
class  GroebnerStrategy
class  LessWeightedLengthInStrat
class  LargerDegreeComparer
class  LessWeightedLengthInStratModified
class  LessEcartThenLessWeightedLengthInStrat
class  LessUsedTailVariablesThenLessWeightedLengthInStrat
class  LessCombinedManySizesInStrat
class  GBTypes
class  LexBucket
class  LiteralFactorization
class  LiteralFactorizationIterator
class  PolynomialSugar
class  LMLessComparePS
class  PSCompareByEl
class  IsEcart0Predicate
class  LexHelper
class  DegOrderHelper
class  BlockOrderHelper
class  LexOrderGreaterComparer
class  LLReduction
class  LMLessCompare
class  SlimgbReduction
class  PolyEntry
class  PairData
class  IJPairData
class  PolyPairData
class  VariablePairData
class  PairLS
class  PairE
class  PairLSCompare
class  PairECompare

Typedefs

typedef std::vector< Polynomialpoly_vec
typedef polybori::CacheManager
< CCacheTypes::divisorsof
fixed_divisors_cache_type
typedef Monomial::idx_map_type lm2Index_map_type
typedef Exponent::idx_map_type exp2Index_map_type
typedef polybori::BoolePolynomial Polynomial
typedef polybori::BooleMonomial Monomial
typedef polybori::BooleVariable Variable
typedef polybori::BooleExponent Exponent
typedef std::vector< PolynomialPolynomialVector
typedef long long wlen_type
typedef long len_type
typedef int deg_type
typedef polybori::CTypes::idx_type idx_type
typedef polybori::BooleSet MonomialSet
typedef
LessWeightedLengthInStratModified 
StratComparerForSelect
typedef SlimgbReduction
< SLIMGB_SIMPLEST
slimgb_reduction_type
typedef std::vector< PolyEntryPolyEntryVector
typedef boost::shared_ptr
< PairData
pair_data_ptr
typedef PairE Pair
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

Enumerations

enum  { VARIABLE_PAIR, IJ_PAIR, DELAYED_PAIR }

Functions

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)
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)
MonomialSet mod_var_set (const MonomialSet &as, const MonomialSet &vs)
MonomialSet mod_deg2_set (const MonomialSet &as, const MonomialSet &vs)
template<class CacheMgr >
MonomialSet mod_deg2_set (const CacheMgr &cache_mgr, MonomialSet::navigator a, MonomialSet::navigator v)
MonomialSet contained_variables_cudd_style (const MonomialSet &m)
MonomialSet contained_deg2_cudd_style (const MonomialSet &m)
Polynomial reduce_by_monom (const Polynomial &p, const Monomial &m)
Polynomial reduce_by_binom (const Polynomial &p, const Polynomial &binom)
Polynomial reduce_complete (const Polynomial &p, const Polynomial &reductor)
Polynomial reduce_complete (const Polynomial &p, const PolyEntry &reductor, wlen_type &len)
bool should_propagate (const PolyEntry &e)
MonomialSet minimal_elements_internal (const MonomialSet &s)
MonomialSet minimal_elements_internal2 (MonomialSet s)
std::vector< Exponentminimal_elements_internal3 (MonomialSet s)
MonomialSet minimal_elements (const MonomialSet &s)
template<class value_type , class initializer , class set_bit >
value_type p2code (Polynomial p, const std::vector< char > &ring_2_0123, int max_vars)
bool polynomial_in_one_block (const Polynomial p)
MonomialSet minimal_elements_cudd_style_unary (MonomialSet m)
MonomialSet minimal_elements_cudd_style (MonomialSet m)
template<class MgrType >
MonomialSet recursively_insert (const MgrType &mgr, MonomialSet::navigator p, idx_type idx, MonomialSet::navigator m)
MonomialSet recursively_insert (MonomialSet::navigator p, idx_type idx, MonomialSet mset)
void addPolynomialToReductor (Polynomial &p, MonomialSet &m)
template<class CacheMgr >
Polynomial map_every_x_to_x_plus_one (const CacheMgr &cache_mgr, MonomialSet::navigator nav)
Polynomial map_every_x_to_x_plus_one (Polynomial p)
Polynomial red_tail_in_last_block (const GroebnerStrategy &strat, Polynomial p)
Polynomial mult_fast_sim (const std::vector< Polynomial > &vec)
std::vector< Polynomialfull_implication_gb (const Polynomial &p, CacheManager &cache, GroebnerStrategy &strat_param)
void groebner (GroebnerStrategy &strat)
wlen_type wlen_literal_exceptioned (const PolyEntry &e)
std::vector< Polynomialvariety_lex_groebner_basis (const MonomialSet &points, const Monomial &variables)
MonomialSet nf_lex_points (const Polynomial &f, const MonomialSet &p)
MonomialSet gen_random_subset (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)
MonomialSet variety_lex_leading_terms (const MonomialSet &points, const Monomial &variables)
MonomialSet zeros (Polynomial p, MonomialSet candidates)
Polynomial interpolate (MonomialSet to_zero, MonomialSet to_one)
Polynomial interpolate_smallest_lex (MonomialSet to_zero, MonomialSet to_one)
MonomialSet include_divisors (const MonomialSet &m)
Polynomial without_prior_part (Polynomial p, idx_type tail_start)
std::vector< Polynomialeasy_linear_factors (const Polynomial &p)
deg_type common_literal_factors_deg (const LiteralFactorization &a, const LiteralFactorization &b)
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)
void drawmatrix (mzd_t *mat, const char *filename)
template<class T >
Polynomial add_up_generic (const std::vector< T > &res_vec, Polynomial init)
Polynomial nf3 (const ReductionStrategy &strat, Polynomial p, Monomial rest_lead)
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)
Polynomial nf3_short (const ReductionStrategy &strat, Polynomial p)
int sum_size (const MonomialSet &s1, const MonomialSet &s2)
std::vector< Polynomialparallel_reduce (std::vector< Polynomial > inp, GroebnerStrategy &strat, int average_steps, double delay_f)
int select_largest_degree (const ReductionStrategy &strat, const Monomial &m)
int select_no_deg_growth (const ReductionStrategy &strat, const Monomial &m)
template<class T >
Polynomial add_up_generic (const std::vector< T > &res_vec, int start, int end, Polynomial init)
Polynomial add_up_monomials (const std::vector< Monomial > &vec)
Polynomial add_up_polynomials (const std::vector< Polynomial > &vec)
Polynomial add_up_exponents (const std::vector< Exponent > &vec)
Polynomial red_tail_general (const ReductionStrategy &strat, Polynomial p)
Polynomial cheap_reductions (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)
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)
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 plug_1 (const Polynomial &p, const MonomialSet &m_plus_ones)
MonomialSet mod_mon_set (const MonomialSet &as, const MonomialSet &vs)
std::vector< Polynomialgauss_on_polys (const std::vector< Polynomial > &orig_system)
Polynomial do_is_rewriteable (const Polynomial &p, const MonomialSet &leading_terms)
bool is_rewriteable (const Polynomial &p, const MonomialSet &leading_terms)
void set_random_seed (unsigned int seed)
MonomialSet random_set_using_generator (const Monomial &variables, unsigned int len, bool_gen_type &bit_gen)
MonomialSet random_set (const Monomial &variables, unsigned int len)

Variables

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

Typedef Documentation

typedef boost::minstd_rand polybori::groebner::base_generator_type
typedef boost::uniform_smallint polybori::groebner::distribution_type
typedef boost::shared_ptr<PairData> polybori::groebner::pair_data_ptr
typedef long 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)
template<class T >
Polynomial polybori::groebner::add_up_generic ( const std::vector< T > &  res_vec,
Polynomial  init 
)
template<class T >
Polynomial polybori::groebner::add_up_generic ( const std::vector< T > &  res_vec,
int  start,
int  end,
Polynomial  init 
)

References add_up_generic().

Polynomial polybori::groebner::add_up_monomials ( const std::vector< Monomial > &  vec)
Note:
This function is deactivated, because it always uses the active manager!
Todo:
activate and make save, when used

References add_up_generic().

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

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

References add_up_generic().

Referenced by red_tail_general(), and red_tail_generic().

void polybori::groebner::addPolynomialToReductor ( Polynomial &  p,
MonomialSet &  m 
)
Polynomial polybori::groebner::cheap_reductions ( const ReductionStrategy &  strat,
Polynomial  p 
)
void polybori::groebner::clear_mat ( mzd_t *  mat)
deg_type polybori::groebner::common_literal_factors_deg ( const LiteralFactorization &  a,
const LiteralFactorization &  b 
)
MonomialSet polybori::groebner::contained_deg2_cudd_style ( const MonomialSet &  m)
MonomialSet polybori::groebner::contained_variables_cudd_style ( const MonomialSet &  m)
Polynomial polybori::groebner::do_is_rewriteable ( const Polynomial &  p,
const MonomialSet &  leading_terms 
)
Polynomial polybori::groebner::do_plug_1 ( const Polynomial &  p,
const MonomialSet &  m_plus_ones 
)
void polybori::groebner::drawmatrix ( mzd_t *  mat,
const char *  filename 
)
std::vector< Polynomial > polybori::groebner::easy_linear_factors ( const Polynomial &  p)
std::vector< Polynomial > polybori::groebner::full_implication_gb ( const Polynomial &  p,
CacheManager &  cache,
GroebnerStrategy &  strat_param 
)
std::vector<Polynomial> polybori::groebner::gauss_on_polys ( const std::vector< Polynomial > &  orig_system)
MonomialSet polybori::groebner::gen_random_subset ( const std::vector< Monomial > &  vec,
bool_gen_type &  bit_gen 
)
void polybori::groebner::groebner ( GroebnerStrategy &  strat)
MonomialSet polybori::groebner::include_divisors ( const MonomialSet &  m)
Polynomial polybori::groebner::interpolate ( MonomialSet  to_zero,
MonomialSet  to_one 
)
Polynomial polybori::groebner::interpolate_smallest_lex ( MonomialSet  to_zero,
MonomialSet  to_one 
)
bool polybori::groebner::is_rewriteable ( const Polynomial &  p,
const MonomialSet &  leading_terms 
)
Polynomial polybori::groebner::ll_red_nf ( const Polynomial &  p,
const BooleSet &  reductors 
)
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 
)
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 
)
Polynomial polybori::groebner::ll_red_nf_noredsb ( const Polynomial &  p,
const BooleSet &  reductors 
)
Polynomial polybori::groebner::ll_red_nf_noredsb_single_recursive_call ( const Polynomial &  p,
const BooleSet &  reductors 
)
template<class CacheMgr >
Polynomial polybori::groebner::map_every_x_to_x_plus_one ( const CacheMgr &  cache_mgr,
MonomialSet::navigator  nav 
)
Polynomial polybori::groebner::map_every_x_to_x_plus_one ( Polynomial  p)
bool polybori::groebner::maps_to_one ( const std::pair< const polybori::groebner::idx_type, int >  v)
bool polybori::groebner::maps_to_zero ( const std::pair< const polybori::groebner::idx_type, int >  v)
MonomialSet polybori::groebner::minimal_elements ( const MonomialSet &  s)
MonomialSet polybori::groebner::minimal_elements_cudd_style ( MonomialSet  m)
MonomialSet polybori::groebner::minimal_elements_cudd_style_unary ( MonomialSet  m)
MonomialSet polybori::groebner::minimal_elements_internal ( const MonomialSet &  s)
MonomialSet polybori::groebner::minimal_elements_internal2 ( MonomialSet  s)
std::vector<Exponent> polybori::groebner::minimal_elements_internal3 ( MonomialSet  s)
MonomialSet polybori::groebner::mod_deg2_set ( const MonomialSet &  as,
const MonomialSet &  vs 
)
template<class CacheMgr >
MonomialSet polybori::groebner::mod_deg2_set ( const CacheMgr &  cache_mgr,
MonomialSet::navigator  a,
MonomialSet::navigator  v 
)
MonomialSet polybori::groebner::mod_mon_set ( const MonomialSet &  as,
const MonomialSet &  vs 
)
template<class CacheMgr >
MonomialSet polybori::groebner::mod_var_set ( const CacheMgr &  cache_mgr,
MonomialSet::navigator  a,
MonomialSet::navigator  v 
)
MonomialSet polybori::groebner::mod_var_set ( const MonomialSet &  as,
const MonomialSet &  vs 
)
Polynomial polybori::groebner::mult_fast_sim ( const std::vector< Polynomial > &  vec)
template<bool fast>
Polynomial polybori::groebner::multiply ( const Polynomial &  p,
const Polynomial &  q 
)
Polynomial polybori::groebner::nf3 ( const ReductionStrategy &  strat,
Polynomial  p,
Monomial  rest_lead 
)
Polynomial polybori::groebner::nf3_degree_order ( const ReductionStrategy &  strat,
Polynomial  p,
Monomial  lead 
)
Polynomial polybori::groebner::nf3_lexbuckets ( const GroebnerStrategy &  strat,
Polynomial  p,
Monomial  rest_lead 
)
Polynomial polybori::groebner::nf3_no_deg_growth ( const ReductionStrategy &  strat,
Polynomial  p,
Monomial  rest_lead 
)
Polynomial polybori::groebner::nf3_short ( const ReductionStrategy &  strat,
Polynomial  p 
)
MonomialSet polybori::groebner::nf_lex_points ( const Polynomial &  f,
const MonomialSet &  p 
)
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 
)
std::vector< Polynomial > polybori::groebner::parallel_reduce ( std::vector< Polynomial >  inp,
GroebnerStrategy &  strat,
int  average_steps,
double  delay_f 
)
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 
)
bool polybori::groebner::polynomial_in_one_block ( const Polynomial  p)
MonomialSet polybori::groebner::random_interpolation ( const MonomialSet &  as_set,
const std::vector< Monomial > &  as_vector,
bool_gen_type &  bit_gen 
)
MonomialSet polybori::groebner::random_set ( const Monomial &  variables,
unsigned int  len 
)
MonomialSet polybori::groebner::random_set_using_generator ( const Monomial &  variables,
unsigned int  len,
bool_gen_type &  bit_gen 
)
template<class MgrType >
MonomialSet polybori::groebner::recursively_insert ( const MgrType &  mgr,
MonomialSet::navigator  p,
idx_type  idx,
MonomialSet::navigator  m 
)
MonomialSet polybori::groebner::recursively_insert ( MonomialSet::navigator  p,
idx_type  idx,
MonomialSet  mset 
)
Polynomial polybori::groebner::red_tail ( const ReductionStrategy &  strat,
Polynomial  p 
)
Polynomial polybori::groebner::red_tail_general ( const ReductionStrategy &  strat,
Polynomial  p 
)
template<class Helper >
Polynomial polybori::groebner::red_tail_generic ( const ReductionStrategy &  strat,
Polynomial  p 
)
Polynomial polybori::groebner::red_tail_in_last_block ( const GroebnerStrategy &  strat,
Polynomial  p 
)
Polynomial polybori::groebner::red_tail_short ( const ReductionStrategy &  strat,
Polynomial  p 
)
Polynomial polybori::groebner::reduce_by_binom ( const Polynomial &  p,
const Polynomial &  binom 
)
Polynomial polybori::groebner::reduce_by_monom ( const Polynomial &  p,
const Monomial &  m 
)
Polynomial polybori::groebner::reduce_complete ( const Polynomial &  p,
const Polynomial &  reductor 
)
Polynomial polybori::groebner::reduce_complete ( const Polynomial &  p,
const PolyEntry &  reductor,
wlen_type &  len 
)
int polybori::groebner::select_largest_degree ( const ReductionStrategy &  strat,
const Monomial &  m 
)
int polybori::groebner::select_no_deg_growth ( const ReductionStrategy &  strat,
const Monomial &  m 
)
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 
)
bool polybori::groebner::should_propagate ( const PolyEntry &  e)
int polybori::groebner::sum_size ( const MonomialSet &  s1,
const MonomialSet &  s2 
)
Polynomial polybori::groebner::translate_indices ( const Polynomial &  p,
const std::vector< idx_type > &  table 
)
void polybori::groebner::transpose_window_to_row ( mzd_t *  transposed_vec,
mzd_t *  window 
)
std::vector< Polynomial > polybori::groebner::variety_lex_groebner_basis ( const MonomialSet &  points,
const Monomial &  variables 
)
MonomialSet polybori::groebner::variety_lex_leading_terms ( const MonomialSet &  points,
const Monomial &  variables 
)
Polynomial polybori::groebner::without_prior_part ( Polynomial  p,
idx_type  tail_start 
)
wlen_type polybori::groebner::wlen_literal_exceptioned ( const PolyEntry &  e) [inline]
MonomialSet polybori::groebner::zeros ( Polynomial  p,
MonomialSet  candidates 
)

Variable Documentation

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