diff --git a/utils/utils.h b/utils/utils.h index e2711bd0f9eeb1ebd8a7bab016b549928b8cf6f5..e964a7016f05ea70b04cd6736bfdbf4352258188 100644 --- a/utils/utils.h +++ b/utils/utils.h @@ -5,7 +5,7 @@ #include <time.h> #include <sys/time.h> -// Valor absoluto de um número. Alternativa ao uso da função 'fabs()' +// Valor absoluto de um número real. Alternativa ao uso da função 'fabs()' #define ABS(num) ((num) < 0.0 ? -(num) : (num)) // real_t: tipo usado para representar valores em ponto flutuante @@ -23,11 +23,12 @@ typedef double rtime_t; #define ALIGN_16 __attribute__((aligned(16))) #define ALIGN_8 __attribute__((aligned(8))) -// Número máximo de dígitos em um número -#define numDigits(n) 6 // ( (int) log10(n) + 1 ) +// Número máximo de dígitos em um número inteiro +#define numDigits(n) 6 // ( n ? (int) log10(ABS(n)) + 1 : 1 ) -// Macro para verificar de valor 'n' é potência de 2 ou não -#define isPot2(n) (n && !(n & (n - 1))) +// Macro para verificar de valor 'n' é potência de 2 ou não. +// 'n' DEVE ser positivo e não-nulo +#define isPot2(n) (!(n & (n - 1))) // #define isPot2(n) (n && !(n & (n - 1))) // Funções rtime_t timestamp(void);