|
SoPlex Doxygen Documentation
|
Go to the documentation of this file.
32 #ifndef _SPXDEFINES_H_
33 #define _SPXDEFINES_H_
46 #define SOPLEX_VERSION 171
47 #define SOPLEX_SUBVERSION 0
64 #if defined (NDEBUG) && defined (WITH_WARNINGS)
65 #define ASSERT_WARN( prefix, expr ) \
70 << " failed assertion on line " << __LINE__ \
71 << " in file " << __FILE__ << ": " \
75 #else // just a normal assert
76 #define ASSERT_WARN( prefix, expr ) ( assert( expr ) )
92 #ifdef DISABLE_VERBOSITY
93 #define DO_WITH_TMP_VERBOSITY( verbosity, do_something ) {}
95 #define DO_WITH_TMP_VERBOSITY( verbosity, do_something ) \
96 { const SPxOut::Verbosity old_verbosity = spxout.getVerbosity(); \
97 spxout.setVerbosity( verbosity ); \
99 spxout.setVerbosity( old_verbosity ); }
103 #define MSG_ERROR(x) { DO_WITH_TMP_VERBOSITY( SPxOut::ERROR, x ) }
105 #define MSG_WARNING(x) { DO_WITH_TMP_VERBOSITY( SPxOut::WARNING, x ) }
107 #define MSG_INFO1(x) { DO_WITH_TMP_VERBOSITY( SPxOut::INFO1, x ) }
109 #define MSG_INFO2(x) { DO_WITH_TMP_VERBOSITY( SPxOut::INFO2, x ) }
111 #define MSG_INFO3(x) { DO_WITH_TMP_VERBOSITY( SPxOut::INFO3, x ) }
113 extern bool msginconsistent( const char* name, const char* file, int line);
115 #define MSGinconsistent(name) msginconsistent(name, __FILE__, __LINE__)
119 #define TRACE(x) { DO_WITH_TMP_VERBOSITY( SPxOut::ERROR, x ) }
124 #if defined(DEBUGGING)
126 #define MSG_DEBUG(x) { DO_WITH_TMP_VERBOSITY( SPxOut::DEBUG, x ) }
131 #if defined(TRACE_METHOD)
137 const SPxOut::Verbosity method_old_verbosity = spxout.getVerbosity(); \
138 spxout.setVerbosity( SPxOut::ERROR ); \
139 soplex::TraceMethod _trace_method_(x, __FILE__, __LINE__); \
140 spxout.setVerbosity( method_old_verbosity );
143 #endif // !TRACE_METHOD
152 #ifdef WITH_LONG_DOUBLE
155 typedef long double Real;
161 #ifndef DEFAULT_BND_VIOL
162 #define DEFAULT_BND_VIOL 1e-12
165 #ifndef DEFAULT_EPS_ZERO
166 #define DEFAULT_EPS_ZERO 1e-28
169 #ifndef DEFAULT_EPS_FACTOR
170 #define DEFAULT_EPS_FACTOR 1e-30
173 #ifndef DEFAULT_EPS_UPDATE
174 #define DEFAULT_EPS_UPDATE 1e-26
177 #define DEFAULT_INFINITY 1e100
190 #ifndef DEFAULT_BND_VIOL
191 #define DEFAULT_BND_VIOL 1e-1
194 #ifndef DEFAULT_EPS_ZERO
195 #define DEFAULT_EPS_ZERO 1e-7
197 #ifndef DEFAULT_EPS_FACTOR
198 #define DEFAULT_EPS_FACTOR 1e-7
200 #ifndef DEFAULT_EPS_UPDATE
201 #define DEFAULT_EPS_UPDATE 1e-6
203 #define DEFAULT_INFINITY 1e100
214 #ifndef DEFAULT_BND_VIOL
215 #define DEFAULT_BND_VIOL 1e-6
218 #ifndef DEFAULT_EPS_ZERO
219 #define DEFAULT_EPS_ZERO 1e-16
221 #ifndef DEFAULT_EPS_FACTOR
222 #define DEFAULT_EPS_FACTOR 1e-20
224 #ifndef DEFAULT_EPS_UPDATE
225 #define DEFAULT_EPS_UPDATE 1e-16
227 #define DEFAULT_INFINITY 1e100
233 #endif // !WITH_FLOAT
234 #endif // !WITH_LONG_DOUBLE
294 const Real absa = fabs(a);
295 const Real absb = fabs(b);
297 return absa > absb ? absa : absb;
303 return (a - b) / ( maxAbs(a, b) > 1.0 ? maxAbs(a, b) : 1.0);
309 return fabs(a - b) <= eps;
315 return fabs(a - b) > eps;
321 return (a - b) < -eps;
327 return (a - b) < eps;
333 return (a - b) > eps;
339 return (a - b) > -eps;
345 return fabs(a) <= eps;
351 return fabs(a) > eps;
357 return fabs( relDiff(a, b)) <= eps;
363 return fabs( relDiff(a, b)) > eps;
391 #endif // _SPXDEFINES_H_
|