Go to the documentation of this file.00001
00002 #ifndef __UTILS_H__
00003 #define __UTILS_H__
00004
00005 #include <stdio.h>
00006 #include <stdlib.h>
00007
00008 namespace Tracking{
00009
00010
00011 void *malloc_align(size_t size, int align);
00012 void free_align(void *ptr);
00013
00014
00015 char *read_text_file(const char* file);
00016
00017
00018 #undef OFFSETOF
00019 #define OFFSETOF(TYPE, MEMBER) (((size_t)&((TYPE *)1)->MEMBER) - 1)
00020
00021
00022 template<typename T>
00023 T Max(T a,T b)
00024 {
00025 return a>b?a:b;
00026 }
00027
00028 template<typename T>
00029 T Min(T a,T b)
00030 {
00031 return a<b?a:b;
00032 }
00033
00034 template<typename T>
00035 T Abs(T a)
00036 {
00037 return a>0?a:-a;
00038 }
00039
00040 template<typename T>
00041 T Square(T a)
00042 {
00043 return a*a;
00044 }
00045
00046 template<typename T>
00047 T Sign(T a)
00048 {
00049 return a==0?0:a>0?1:-1;
00050 }
00051
00052 }
00053
00054 #endif //__UTILS_H__