25 #ifndef TESSERACT_CCUTIL_HELPERS_H_    26 #define TESSERACT_CCUTIL_HELPERS_H_    50     std::hash<std::string> hasher;
    51     set_seed(static_cast<uinT64>(hasher(str)));
    71     seed_ *= 6364136223846793005ULL;
    72     seed_ += 1442695040888963407ULL;
    83   int last_index = 
static_cast<int>(strlen(str)) - 1;
    84   while (last_index >= 0 &&
    85          (str[last_index] == 
'\n' || str[last_index] == 
'\r')) {
    86     str[last_index--] = 
'\0';
    92   if (fgetc(file) != 
'\n') fseek(file, -1, 
SEEK_CUR);
    97 template<
typename T> 
inline void Swap(T* p1, T* p2) {
   105   float diff = *((
float *) arg1) - *((
float *) arg2);
   108   } 
else if (diff < 0) {
   117   return block_size * ((n + block_size - 1) / block_size);
   122 inline T 
ClipToRange(
const T& x, 
const T& lower_bound, 
const T& upper_bound) {
   131 template<
typename T1, 
typename T2>
   132 inline void UpdateRange(
const T1& x, T2* lower_bound, T2* upper_bound) {
   133   if (x < *lower_bound)
   135   if (x > *upper_bound)
   140 template<
typename T1, 
typename T2>
   142                         T2* lower_bound, T2* upper_bound) {
   143   if (x_lo < *lower_bound)
   145   if (x_hi > *upper_bound)
   154                            T* lower2, T* upper2) {
   155   if (lower1 > *lower2)
   157   if (upper1 < *upper2)
   165   return (a % b + b) % b;
   175   return a >= 0 ? (a + b / 2) / b : (a - b / 2) / b;
   180   return x >= 0.0 ? 
static_cast<int>(x + 0.5) : -
static_cast<int>(-x + 0.5);
   185   char *cptr = 
static_cast<char *
>(ptr);
   186   int halfsize = num_bytes / 2;
   187   for (
int i = 0; i < halfsize; ++i) {
   189     cptr[i] = cptr[num_bytes - 1 - i];
   190     cptr[num_bytes - 1 - i] = tmp;
   210 #endif // TESSERACT_CCUTIL_HELPERS_H_ 
void Reverse64(void *ptr)
 
void set_seed(const std::string &str)
 
int IntCastRounded(double x)
 
void Reverse16(void *ptr)
 
double UnsignedRand(double range)
 
int sort_floats(const void *arg1, const void *arg2)
 
void chomp_string(char *str)
 
T ClipToRange(const T &x, const T &lower_bound, const T &upper_bound)
 
void IntersectRange(const T &lower1, const T &upper1, T *lower2, T *upper2)
 
void SkipNewline(FILE *file)
 
void set_seed(uinT64 seed)
 
void Reverse32(void *ptr)
 
double SignedRand(double range)
 
void UpdateRange(const T1 &x, T2 *lower_bound, T2 *upper_bound)
 
int DivRounded(int a, int b)
 
int RoundUp(int n, int block_size)
 
void ReverseN(void *ptr, int num_bytes)