GiNaCRA  0.6.4
settings.h
Go to the documentation of this file.
00001 
00019 #ifndef GINACRA_SETTINGS_H
00020 #define GINACRA_SETTINGS_H
00021 
00033 #include <limits.h>
00034 
00035 #include "SymbolDB.h"
00036 #include "VariableListPool.h"
00037 #include "UnivariatePolynomial.h"
00038 
00039 namespace GiNaCRA
00040 {
00042     // CPPUnit //
00044 
00047     class CPPUNITSettings
00048     {
00049         public:
00050             static std::string TESTSUITE_ALL;
00051             static std::string TESTSUITE_UNIVARIATE;
00052     };
00053 
00055     // MultivariatePolynomial //
00057 
00060     class MultivariatePolynomialSettings
00061     {
00062         public:
00063 
00067             static void InitializeGiNaCRAMultivariateMR()
00068             {
00069                 if( !VariableListPool::Initialize() )
00070                     throw std::runtime_error( "Could not initialize Variables" );
00071             }
00072     };
00073 
00075     // CAD //
00077 
00082     enum CADSettingsType
00083     {
00085         LOWDEG_CADSETTING = 1,
00087         ODDDEG_CADSETTING = 2,
00089         EVENDEG_CADSETTING = 4,
00091         EAGERLIFTING_CADSETTING = 8,
00093         GROEBNER_CADSETTING = 16,
00095         REALROOTCOUNT_CADSETTING = 32,
00097         SQUAREFREEELIMINATION_CADSETTING = 64
00098     };
00099 
00101     static const CADSettingsType DEFAULT_CADSETTING = LOWDEG_CADSETTING;
00102 
00104     // RealAlgebraicNumber //
00106 
00109     struct RealAlgebraicNumberSettings
00110     {
00112         enum RefinementStrategy
00113         {
00115             GENERIC_REFINEMENTSTRATEGY,
00117             BINARYSAMPLE_REFINEMENTSTRATEGY,
00119             BINARYNEWTON_REFINEMENTSTRATEGY,
00121             BINNARYMIDPOINTSAMPLE_REFINEMENTSTRATEGY
00122         };
00123 
00125         static const RefinementStrategy DEFAULT_REFINEMENTSTRATEGY = GENERIC_REFINEMENTSTRATEGY;
00126 
00128         static const unsigned MAXREFINE_REFINEMENTSTRATEGY = 8;
00129 
00131         enum IsolationStrategy
00132         {
00134             SIMPLE_ISOLATIONSTRATEGY,
00136             GENERIC_ISOLATIONSTRATEGY,
00138             BINARYSAMPLE_ISOLATIONSTRATEGY,
00140             TERNARYSAMPLE_ISOLATIONSTRATEGY,
00142             TERNARYNEWTON_ISOLATIONSTRATEGY
00143         };
00144 
00146         static const IsolationStrategy DEFAULT_ISOLATIONSTRATEGY = TERNARYSAMPLE_ISOLATIONSTRATEGY;
00147 
00149         static const long MAX_FASTSAMPLE_BOUND = SHRT_MAX;
00150     };
00151 }
00152 #endif