00001
00002
00003
00004
00005
00006
00007
00008 #ifndef STANDARD_H
00009 #define STANDARD_H
00010
00011 #include "LaGOConfig.h"
00012
00013 #include <cstdlib>
00014 #include <cstdio>
00015 #include <cmath>
00016 #ifdef HAVE_CFLOAT
00017 #include <cfloat>
00018 #endif
00019 #ifdef HAVE_IEEEFP_H
00020 #include <ieeefp.h>
00021 #endif
00022
00023
00024
00025
00026
00027 inline double sqrt(int x) { return sqrt((double)x); }
00028 #ifndef _WIN32
00029 inline long pow(int a, unsigned int b) { return (long)pow((double)a, (double)b); }
00030 inline long pow(int a, int b) { return (long)pow((double)a, (double)b); }
00031 #endif
00032
00033 inline double closestint(const double& x) { return round(x); }
00034 inline double upperint(const double& x) { return ceil(x); }
00035 inline double lowerint(const double& x) { return floor(x); }
00036 inline double integrality_violation(const double& x) { return fabs(x-closestint(x)); }
00037
00040 inline double project(const double& x, const double& low, const double& up) { return x<low ? low : (x>up ? up : x); }
00041
00042 #include <cassert>
00043
00044 #include <iostream>
00045 #include <iomanip>
00046 #include <fstream>
00047
00048 using namespace std;
00049
00050 #ifdef COIN_HAS_FILIB
00051 #define FILIB_AVAILABLE
00052 #endif
00053
00054 #ifdef FILIB_AVAILABLE
00055
00056 #define FILIB_EXTENDED
00057 #include "interval/interval.hpp"
00058 using filib::interval;
00059 template <class Type>
00060 inline bool operator<(const interval<Type>& x, const interval<Type>& y) { return x.slt(y); };
00061 #endif
00062
00063 #include "tools.h"
00064 #include "uservector.h"
00065
00066 #endif // STANDARD_H
00067