#include <cassert>
#include <cstdio>
#include <cstring>
#include <functional>
#include <string>
Go to the source code of this file.
|
void | chomp_string (char *str) |
|
void | SkipNewline (FILE *file) |
|
template<typename T > |
void | Swap (T *p1, T *p2) |
|
int | RoundUp (int n, int block_size) |
|
template<typename T > |
T | ClipToRange (const T &x, const T &lower_bound, const T &upper_bound) |
|
template<typename T1 , typename T2 > |
void | UpdateRange (const T1 &x, T2 *lower_bound, T2 *upper_bound) |
|
template<typename T1 , typename T2 > |
void | UpdateRange (const T1 &x_lo, const T1 &x_hi, T2 *lower_bound, T2 *upper_bound) |
|
template<typename T > |
void | IntersectRange (const T &lower1, const T &upper1, T *lower2, T *upper2) |
|
int | Modulo (int a, int b) |
|
int | DivRounded (int a, int b) |
|
int | IntCastRounded (double x) |
|
int | IntCastRounded (float x) |
|
void | ReverseN (void *ptr, int num_bytes) |
|
void | Reverse16 (void *ptr) |
|
void | Reverse32 (void *ptr) |
|
void | Reverse64 (void *ptr) |
|
◆ chomp_string()
void chomp_string |
( |
char * |
str | ) |
|
|
inline |
Definition at line 75 of file helpers.h.
77 int last_index = static_cast<int>(strlen(str)) - 1;
78 while (last_index >= 0 &&
79 (str[last_index] ==
'\n' || str[last_index] ==
'\r')) {
80 str[last_index--] =
'\0';
◆ ClipToRange()
template<typename T >
T ClipToRange |
( |
const T & |
x, |
|
|
const T & |
lower_bound, |
|
|
const T & |
upper_bound |
|
) |
| |
|
inline |
Definition at line 106 of file helpers.h.
108 if (x < lower_bound) {
111 if (x > upper_bound) {
◆ DivRounded()
int DivRounded |
( |
int |
a, |
|
|
int |
b |
|
) |
| |
|
inline |
Definition at line 165 of file helpers.h.
170 return a >= 0 ? (a + b / 2) / b : (a - b / 2) / b;
◆ IntCastRounded() [1/2]
int IntCastRounded |
( |
double |
x | ) |
|
|
inline |
Definition at line 173 of file helpers.h.
175 return x >= 0.0 ? static_cast<int>(x + 0.5) : -static_cast<
int>(-x + 0.5);
◆ IntCastRounded() [2/2]
int IntCastRounded |
( |
float |
x | ) |
|
|
inline |
Definition at line 178 of file helpers.h.
180 return x >= 0.0F ? static_cast<int>(x + 0.5F) : -static_cast<
int>(-x + 0.5F);
◆ IntersectRange()
template<typename T >
void IntersectRange |
( |
const T & |
lower1, |
|
|
const T & |
upper1, |
|
|
T * |
lower2, |
|
|
T * |
upper2 |
|
) |
| |
|
inline |
Definition at line 143 of file helpers.h.
146 if (lower1 > *lower2) {
149 if (upper1 < *upper2) {
◆ Modulo()
int Modulo |
( |
int |
a, |
|
|
int |
b |
|
) |
| |
|
inline |
Definition at line 156 of file helpers.h.
158 return (a % b + b) % b;
◆ Reverse16()
void Reverse16 |
( |
void * |
ptr | ) |
|
|
inline |
◆ Reverse32()
void Reverse32 |
( |
void * |
ptr | ) |
|
|
inline |
◆ Reverse64()
void Reverse64 |
( |
void * |
ptr | ) |
|
|
inline |
◆ ReverseN()
void ReverseN |
( |
void * |
ptr, |
|
|
int |
num_bytes |
|
) |
| |
|
inline |
Definition at line 183 of file helpers.h.
185 assert(num_bytes == 1 || num_bytes == 2 || num_bytes == 4 || num_bytes == 8);
186 char* cptr = static_cast<char*>(ptr);
187 int halfsize = num_bytes / 2;
188 for (
int i = 0; i < halfsize; ++i) {
190 cptr[i] = cptr[num_bytes - 1 - i];
191 cptr[num_bytes - 1 - i] = tmp;
◆ RoundUp()
int RoundUp |
( |
int |
n, |
|
|
int |
block_size |
|
) |
| |
|
inline |
Definition at line 100 of file helpers.h.
102 return block_size * ((n + block_size - 1) / block_size);
◆ SkipNewline()
void SkipNewline |
( |
FILE * |
file | ) |
|
|
inline |
Definition at line 84 of file helpers.h.
86 if (fgetc(
file) !=
'\n') {
87 fseek(
file, -1, SEEK_CUR);
◆ Swap()
template<typename T >
void Swap |
( |
T * |
p1, |
|
|
T * |
p2 |
|
) |
| |
|
inline |
◆ UpdateRange() [1/2]
template<typename T1 , typename T2 >
void UpdateRange |
( |
const T1 & |
x, |
|
|
T2 * |
lower_bound, |
|
|
T2 * |
upper_bound |
|
) |
| |
|
inline |
Definition at line 118 of file helpers.h.
120 if (x < *lower_bound) {
123 if (x > *upper_bound) {
◆ UpdateRange() [2/2]
template<typename T1 , typename T2 >
void UpdateRange |
( |
const T1 & |
x_lo, |
|
|
const T1 & |
x_hi, |
|
|
T2 * |
lower_bound, |
|
|
T2 * |
upper_bound |
|
) |
| |
|
inline |
Definition at line 129 of file helpers.h.
132 if (x_lo < *lower_bound) {
135 if (x_hi > *upper_bound) {