GiNaCRA
0.6.4
|
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