PolyBoRi
nf.h
Go to the documentation of this file.
00001 /*
00002  *  nf.h
00003  *  PolyBoRi
00004  *
00005  *  Created by Michael Brickenstein on 25.04.06.
00006  *  Copyright 2006 The PolyBoRi Team. See LICENSE file.
00007  *
00008  */
00009 
00010 
00011 #include <algorithm>
00012 #include <vector>
00013 #include <queue>
00014 
00015 #include "SlimgbReduction.h"
00016 #include "groebner_alg.h"
00017 
00018 
00019 #ifdef PBORI_HAVE_M4RI
00020 extern "C"{
00021 #include <m4ri/m4ri.h>
00022 
00023 #ifndef __M4RI_TWOPOW
00024 #define __M4RI_TWOPOW TWOPOW
00025 #endif
00026 }
00027 #endif
00028 #ifndef PBORI_GB_NF_H
00029 #define PBORI_GB_NF_H
00030 BEGIN_NAMESPACE_PBORIGB
00031 
00032 class ReductionStrategy;
00033 int select_no_deg_growth(const ReductionStrategy& strat, const Monomial& m);
00034 
00035 typedef SlimgbReduction<SLIMGB_SIMPLEST> slimgb_reduction_type;
00036 
00037 std::vector<Polynomial> parallel_reduce(std::vector<Polynomial> inp, GroebnerStrategy& strat, int average_steps, double delay_f);
00038 
00039 Polynomial nf3(const ReductionStrategy& strat, Polynomial p, Monomial rest_lead);
00040 Polynomial nf3_short(const ReductionStrategy& strat, Polynomial p);
00041 
00042 Polynomial plug_1(const Polynomial& p, const MonomialSet& m_plus_ones);
00043 MonomialSet mod_mon_set(const MonomialSet& as, const MonomialSet &vs);
00044 
00045 Polynomial cheap_reductions(const ReductionStrategy& strat, Polynomial p);
00046 
00047 Polynomial nf3_lexbuckets(const GroebnerStrategy& strat, Polynomial p, Monomial rest_lead);
00048 Polynomial nf3_no_deg_growth(const ReductionStrategy& strat, Polynomial p, Monomial rest_lead);
00049 Polynomial nf3_degree_order(const ReductionStrategy& strat, Polynomial p, Monomial lead);
00050 Polynomial nf3_short(const ReductionStrategy& strat, Polynomial p);
00051 
00052 
00053 END_NAMESPACE_PBORIGB
00054 #endif