[fix] fixing some compiler warnings, using type-specific abs functions for vector_math

This commit is contained in:
Al
2015-09-19 16:10:47 -04:00
parent 6731395ca0
commit 3fab0f984f
5 changed files with 34 additions and 35 deletions

View File

@@ -33,12 +33,12 @@ KHASH_SET_INIT_STR(str_set)
// Vectors
VECTOR_INIT_NUMERIC(int32_array, int32_t)
VECTOR_INIT_NUMERIC(uint32_array, uint32_t)
VECTOR_INIT_NUMERIC(int64_array, int64_t)
VECTOR_INIT_NUMERIC(uint64_array, uint64_t)
VECTOR_INIT_NUMERIC_FLOAT(float_array, float)
VECTOR_INIT_NUMERIC_FLOAT(double_array, double)
VECTOR_INIT_NUMERIC(int32_array, int32_t, uint32_t, abs)
VECTOR_INIT_NUMERIC(uint32_array, uint32_t, uint32_t, abs)
VECTOR_INIT_NUMERIC(int64_array, int64_t, uint64_t, llabs)
VECTOR_INIT_NUMERIC(uint64_array, uint64_t, uint64_t, llabs)
VECTOR_INIT_NUMERIC_FLOAT(float_array, float, fabsf)
VECTOR_INIT_NUMERIC_FLOAT(double_array, double, fabs)
VECTOR_INIT(char_array, char)
VECTOR_INIT(uchar_array, unsigned char)

View File

@@ -24,7 +24,7 @@
#define DEFAULT_GEONAMES_TSV LIBPOSTAL_GEONAMES_DIR PATH_SEPARATOR "geonames.tsv";
static bool read_geoname_from_line(geoname_t *g, char *line) {
int token_count;
size_t token_count;
char *token;
@@ -185,7 +185,8 @@ exit_geoname_free_tokens:
}
static bool read_gn_postal_code_from_line(gn_postal_code_t *postal, char *line) {
int token_count, i;
size_t token_count;
int i;
gn_postal_code_clear(postal);
@@ -225,7 +226,7 @@ static bool read_gn_postal_code_from_line(gn_postal_code_t *postal, char *line)
size_t admin1_field_len = strlen(admin1_field);
if (admin1_field_len > 0) {
int admin1_token_count;
size_t admin1_token_count;
cstring_array *admin1_tokens = cstring_array_split(admin1_field, COMMA_SEPARATOR, COMMA_SEPARATOR_LEN, &admin1_token_count);
uint32_t admin1_id;
if (admin1_token_count > 0) {
@@ -244,7 +245,7 @@ static bool read_gn_postal_code_from_line(gn_postal_code_t *postal, char *line)
size_t admin2_field_len = strlen(admin2_field);
if (admin2_field_len > 0) {
int admin2_token_count;
size_t admin2_token_count;
cstring_array *admin2_tokens = cstring_array_split(admin2_field, COMMA_SEPARATOR, COMMA_SEPARATOR_LEN, &admin2_token_count);
uint32_t admin2_id;
if (admin2_token_count > 0) {
@@ -263,7 +264,7 @@ static bool read_gn_postal_code_from_line(gn_postal_code_t *postal, char *line)
size_t admin3_field_len = strlen(admin3_field);
if (admin3_field_len > 0) {
int admin3_token_count;
size_t admin3_token_count;
cstring_array *admin3_tokens = cstring_array_split(admin3_field, COMMA_SEPARATOR, COMMA_SEPARATOR_LEN, &admin3_token_count);
uint32_t admin3_id;
if (admin3_token_count > 0) {

View File

@@ -65,8 +65,8 @@ inline bool string_starts_with(const char *str, const char *start) {
}
inline bool string_ends_with(const char *str, const char *ending) {
int end_len = strlen(ending);
int str_len = strlen(str);
size_t end_len = strlen(ending);
size_t str_len = strlen(str);
return str_len < end_len ? false : !strcmp(str + str_len - end_len, ending);
}
@@ -704,7 +704,7 @@ void cstring_array_clear(cstring_array *self) {
}
inline uint32_t cstring_array_start_token(cstring_array *self) {
uint32_t index = self->str->n;
uint32_t index = (uint32_t)self->str->n;
uint32_array_push(self->indices, index);
return index;
}
@@ -759,7 +759,7 @@ inline int64_t cstring_array_token_length(cstring_array *self, uint32_t i) {
}
}
cstring_array *cstring_array_split(char *str, const char *separator, size_t separator_len, int *count) {
cstring_array *cstring_array_split(char *str, const char *separator, size_t separator_len, size_t *count) {
*count = 0;
char_array *array = char_array_new_size(strlen(str));
@@ -780,13 +780,11 @@ cstring_array *cstring_array_split(char *str, const char *separator, size_t sepa
return string_array;
}
cstring_array *cstring_array_split_no_copy(char *str, char separator, int *count) {
cstring_array *cstring_array_split_no_copy(char *str, char separator, size_t *count) {
*count = 0;
char *ptr = str;
size_t len = strlen(str);
size_t skip_len = 1;
for (int i = 0; i < len; i++, ptr++) {
if (*ptr == separator) {
*ptr = '\0';
@@ -844,7 +842,7 @@ string_tree_t *string_tree_new(void) {
return string_tree_new_size((size_t)DEFAULT_STRING_TREE_SIZE);
}
inline char *string_tree_get_alternative(string_tree_t *self, size_t token_index, size_t alternative) {
inline char *string_tree_get_alternative(string_tree_t *self, size_t token_index, uint32_t alternative) {
if (token_index >= self->token_indices->n) return NULL;
uint32_t token_start = self->token_indices->a[token_index];
@@ -853,7 +851,7 @@ inline char *string_tree_get_alternative(string_tree_t *self, size_t token_index
}
inline void string_tree_finalize_token(string_tree_t *self) {
uint32_array_push(self->token_indices, cstring_array_num_strings(self->strings));
uint32_array_push(self->token_indices, (uint32_t)cstring_array_num_strings(self->strings));
}
// terminated
@@ -875,11 +873,11 @@ inline void string_tree_append_string_len(string_tree_t *self, char *str, size_t
}
inline uint32_t string_tree_num_tokens(string_tree_t *self) {
return self->token_indices->n - 1;
return (uint32_t)self->token_indices->n - 1;
}
inline uint32_t string_tree_num_strings(string_tree_t *self) {
return cstring_array_num_strings(self->strings);
return (uint32_t)cstring_array_num_strings(self->strings);
}
inline uint32_t string_tree_num_alternatives(string_tree_t *self, uint32_t i) {
@@ -917,7 +915,7 @@ string_tree_iterator_t *string_tree_iterator_new(string_tree_t *tree) {
self->num_alternatives = calloc(num_tokens, sizeof(uint32_t));
uint64_t permutations = 1;
uint32_t permutations = 1;
uint32_t num_strings;
for (int i = 0; i < num_tokens; i++) {
@@ -931,7 +929,7 @@ string_tree_iterator_t *string_tree_iterator_new(string_tree_t *tree) {
}
if (permutations > 1) {
self->remaining = permutations;
self->remaining = (uint32_t)permutations;
self->single_path = false;
} else{
self->remaining = 1;

View File

@@ -165,10 +165,10 @@ cstring_array *cstring_array_from_char_array(char_array *str);
char **cstring_array_to_strings(cstring_array *self);
// Split on delimiter
cstring_array *cstring_array_split(char *str, const char *separator, size_t separator_len, int *count);
cstring_array *cstring_array_split(char *str, const char *separator, size_t separator_len, size_t *count);
// Split on delimiter by replacing (single character) separator with the NUL byte in the original string
cstring_array *cstring_array_split_no_copy(char *str, char separator, int *count);
cstring_array *cstring_array_split_no_copy(char *str, char separator, size_t *count);
uint32_t cstring_array_start_token(cstring_array *self);
uint32_t cstring_array_add_string(cstring_array *self, char *str);
@@ -221,7 +221,7 @@ string_tree_t *string_tree_new(void);
string_tree_t *string_tree_new_size(size_t size);
// get
char *string_tree_get_alternative(string_tree_t *self, size_t token_index, size_t alternative);
char *string_tree_get_alternative(string_tree_t *self, size_t token_index, uint32_t alternative);
// finalize
void string_tree_finalize_token(string_tree_t *self);

View File

@@ -6,7 +6,7 @@
#include <math.h>
#include "vector.h"
#define VECTOR_INIT_NUMERIC(name, type) \
#define VECTOR_INIT_NUMERIC(name, type, unsigned_type, type_abs) \
__VECTOR_BASE(name, type) \
__VECTOR_DESTROY(name, type) \
\
@@ -119,16 +119,16 @@
return result; \
} \
\
static inline type type##_array_l1_norm(type *array, size_t n) { \
type result = 0; \
static inline unsigned_type type##_array_l1_norm(type *array, size_t n) { \
unsigned_type result = 0; \
for (int i = 0; i < n; i++) { \
result += abs(array[i]); \
result += type_abs(array[i]); \
} \
return result; \
} \
\
static inline type type##_array_l2_norm(type *array, size_t n) { \
type result = 0; \
static inline unsigned_type type##_array_l2_norm(type *array, size_t n) { \
unsigned_type result = 0; \
for (int i = 0; i < n; i++) { \
result += array[i] * array[i]; \
} \
@@ -177,8 +177,8 @@
#define VECTOR_INIT_NUMERIC_FLOAT(name, type) \
VECTOR_INIT_NUMERIC(name, type) \
#define VECTOR_INIT_NUMERIC_FLOAT(name, type, type_abs) \
VECTOR_INIT_NUMERIC(name, type, type, type_abs) \
\
static inline void type##_array_log(type *array, type c, size_t n) { \
for (int i = 0; i < n; i++) { \