nf.h
Go to the documentation of this file.
/*
* nf.h
* PolyBoRi
*
* Created by Michael Brickenstein on 25.04.06.
* Copyright 2006 The PolyBoRi Team. See LICENSE file.
*
*/
#include <algorithm>
#include <vector>
#include <queue>
#include "SlimgbReduction.h"
#include "groebner_alg.h"
#ifdef PBORI_HAVE_M4RI
extern "C"{
#include <m4ri/m4ri.h>
#ifndef __M4RI_TWOPOW
#define __M4RI_TWOPOW TWOPOW
#endif
}
#endif
#ifndef PBORI_GB_NF_H
#define PBORI_GB_NF_H
BEGIN_NAMESPACE_PBORIGB
class ReductionStrategy;
int select_no_deg_growth(const ReductionStrategy& strat, const Monomial& m);
typedef SlimgbReduction<SLIMGB_SIMPLEST> slimgb_reduction_type;
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);
MonomialSet mod_mon_set(const MonomialSet& as, const MonomialSet &vs);
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);
Polynomial nf3_short(const ReductionStrategy& strat, Polynomial p);
END_NAMESPACE_PBORIGB
#endif
polybori::groebner::select_no_deg_growth
int select_no_deg_growth(const ReductionStrategy &strat, const Monomial &m)
Definition: nf.cc:721
polybori::groebner::slimgb_reduction_type
SlimgbReduction< SLIMGB_SIMPLEST > slimgb_reduction_type
Definition: nf.h:35
polybori::groebner::cheap_reductions
Polynomial cheap_reductions(const ReductionStrategy &strat, Polynomial p)
Definition: nf.cc:831
END_NAMESPACE_PBORIGB
#define END_NAMESPACE_PBORIGB
Definition: groebner_defs.h:16
polybori::groebner::nf3_short
Polynomial nf3_short(const ReductionStrategy &strat, Polynomial p)
Definition: nf.cc:192
SlimgbReduction.h
BEGIN_NAMESPACE_PBORIGB
#define BEGIN_NAMESPACE_PBORIGB
Definition: groebner_defs.h:15
polybori::groebner::parallel_reduce
std::vector< Polynomial > parallel_reduce(std::vector< Polynomial > inp, GroebnerStrategy &strat, int average_steps, double delay_f)
Definition: nf.cc:565
polybori::groebner::plug_1
Polynomial plug_1(const Polynomial &p, const MonomialSet &m_plus_ones)
Definition: nf.cc:818
polybori::BoolePolynomial
This class wraps the underlying decicion diagram type and defines the necessary operations.
Definition: BoolePolynomial.h:85
groebner_alg.h
polybori::groebner::mod_mon_set
MonomialSet mod_mon_set(const MonomialSet &as, const MonomialSet &vs)
Definition: nf.cc:855
polybori::groebner::GroebnerStrategy
This class defines GroebnerStrategy.
Definition: GroebnerStrategy.h:41
polybori::groebner::nf3_lexbuckets
Polynomial nf3_lexbuckets(const GroebnerStrategy &strat, Polynomial p, Monomial rest_lead)
Definition: nf.cc:91
polybori::groebner::SlimgbReduction
This class defines SlimgbReduction.
Definition: SlimgbReduction.h:36
polybori::groebner::nf3_no_deg_growth
Polynomial nf3_no_deg_growth(const ReductionStrategy &strat, Polynomial p, Monomial rest_lead)
Definition: nf.cc:125
polybori::BooleSet
Definition: BooleSet.h:57
polybori::groebner::ReductionStrategy
This class defines ReductionStrategy.
Definition: ReductionStrategy.h:34
polybori::BooleMonomial
This class is just a wrapper for using variables from cudd's decicion diagram.
Definition: BooleMonomial.h:50
polybori::Monomial
BooleMonomial Monomial
Definition: embed.h:53
polybori::groebner::nf3
Polynomial nf3(const ReductionStrategy &strat, Polynomial p, Monomial rest_lead)
Definition: nf.cc:64
polybori::groebner::nf3_degree_order
Polynomial nf3_degree_order(const ReductionStrategy &strat, Polynomial p, Monomial lead)
Definition: nf.cc:151