[fix] fixing some compiler warnings, using type-specific abs functions for vector_math
This commit is contained in:
@@ -33,12 +33,12 @@ KHASH_SET_INIT_STR(str_set)
|
|||||||
|
|
||||||
// Vectors
|
// Vectors
|
||||||
|
|
||||||
VECTOR_INIT_NUMERIC(int32_array, int32_t)
|
VECTOR_INIT_NUMERIC(int32_array, int32_t, uint32_t, abs)
|
||||||
VECTOR_INIT_NUMERIC(uint32_array, uint32_t)
|
VECTOR_INIT_NUMERIC(uint32_array, uint32_t, uint32_t, abs)
|
||||||
VECTOR_INIT_NUMERIC(int64_array, int64_t)
|
VECTOR_INIT_NUMERIC(int64_array, int64_t, uint64_t, llabs)
|
||||||
VECTOR_INIT_NUMERIC(uint64_array, uint64_t)
|
VECTOR_INIT_NUMERIC(uint64_array, uint64_t, uint64_t, llabs)
|
||||||
VECTOR_INIT_NUMERIC_FLOAT(float_array, float)
|
VECTOR_INIT_NUMERIC_FLOAT(float_array, float, fabsf)
|
||||||
VECTOR_INIT_NUMERIC_FLOAT(double_array, double)
|
VECTOR_INIT_NUMERIC_FLOAT(double_array, double, fabs)
|
||||||
|
|
||||||
VECTOR_INIT(char_array, char)
|
VECTOR_INIT(char_array, char)
|
||||||
VECTOR_INIT(uchar_array, unsigned char)
|
VECTOR_INIT(uchar_array, unsigned char)
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
#define DEFAULT_GEONAMES_TSV LIBPOSTAL_GEONAMES_DIR PATH_SEPARATOR "geonames.tsv";
|
#define DEFAULT_GEONAMES_TSV LIBPOSTAL_GEONAMES_DIR PATH_SEPARATOR "geonames.tsv";
|
||||||
|
|
||||||
static bool read_geoname_from_line(geoname_t *g, char *line) {
|
static bool read_geoname_from_line(geoname_t *g, char *line) {
|
||||||
int token_count;
|
size_t token_count;
|
||||||
|
|
||||||
char *token;
|
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) {
|
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);
|
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);
|
size_t admin1_field_len = strlen(admin1_field);
|
||||||
|
|
||||||
if (admin1_field_len > 0) {
|
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);
|
cstring_array *admin1_tokens = cstring_array_split(admin1_field, COMMA_SEPARATOR, COMMA_SEPARATOR_LEN, &admin1_token_count);
|
||||||
uint32_t admin1_id;
|
uint32_t admin1_id;
|
||||||
if (admin1_token_count > 0) {
|
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);
|
size_t admin2_field_len = strlen(admin2_field);
|
||||||
|
|
||||||
if (admin2_field_len > 0) {
|
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);
|
cstring_array *admin2_tokens = cstring_array_split(admin2_field, COMMA_SEPARATOR, COMMA_SEPARATOR_LEN, &admin2_token_count);
|
||||||
uint32_t admin2_id;
|
uint32_t admin2_id;
|
||||||
if (admin2_token_count > 0) {
|
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);
|
size_t admin3_field_len = strlen(admin3_field);
|
||||||
|
|
||||||
if (admin3_field_len > 0) {
|
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);
|
cstring_array *admin3_tokens = cstring_array_split(admin3_field, COMMA_SEPARATOR, COMMA_SEPARATOR_LEN, &admin3_token_count);
|
||||||
uint32_t admin3_id;
|
uint32_t admin3_id;
|
||||||
if (admin3_token_count > 0) {
|
if (admin3_token_count > 0) {
|
||||||
|
|||||||
@@ -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) {
|
inline bool string_ends_with(const char *str, const char *ending) {
|
||||||
int end_len = strlen(ending);
|
size_t end_len = strlen(ending);
|
||||||
int str_len = strlen(str);
|
size_t str_len = strlen(str);
|
||||||
|
|
||||||
return str_len < end_len ? false : !strcmp(str + str_len - end_len, ending);
|
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) {
|
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);
|
uint32_array_push(self->indices, index);
|
||||||
return 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;
|
*count = 0;
|
||||||
char_array *array = char_array_new_size(strlen(str));
|
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;
|
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;
|
*count = 0;
|
||||||
char *ptr = str;
|
char *ptr = str;
|
||||||
size_t len = strlen(str);
|
size_t len = strlen(str);
|
||||||
|
|
||||||
size_t skip_len = 1;
|
|
||||||
|
|
||||||
for (int i = 0; i < len; i++, ptr++) {
|
for (int i = 0; i < len; i++, ptr++) {
|
||||||
if (*ptr == separator) {
|
if (*ptr == separator) {
|
||||||
*ptr = '\0';
|
*ptr = '\0';
|
||||||
@@ -844,7 +842,7 @@ string_tree_t *string_tree_new(void) {
|
|||||||
return string_tree_new_size((size_t)DEFAULT_STRING_TREE_SIZE);
|
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;
|
if (token_index >= self->token_indices->n) return NULL;
|
||||||
|
|
||||||
uint32_t token_start = self->token_indices->a[token_index];
|
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) {
|
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
|
// 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) {
|
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) {
|
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) {
|
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));
|
self->num_alternatives = calloc(num_tokens, sizeof(uint32_t));
|
||||||
|
|
||||||
uint64_t permutations = 1;
|
uint32_t permutations = 1;
|
||||||
uint32_t num_strings;
|
uint32_t num_strings;
|
||||||
|
|
||||||
for (int i = 0; i < num_tokens; i++) {
|
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) {
|
if (permutations > 1) {
|
||||||
self->remaining = permutations;
|
self->remaining = (uint32_t)permutations;
|
||||||
self->single_path = false;
|
self->single_path = false;
|
||||||
} else{
|
} else{
|
||||||
self->remaining = 1;
|
self->remaining = 1;
|
||||||
|
|||||||
@@ -165,10 +165,10 @@ cstring_array *cstring_array_from_char_array(char_array *str);
|
|||||||
char **cstring_array_to_strings(cstring_array *self);
|
char **cstring_array_to_strings(cstring_array *self);
|
||||||
|
|
||||||
// Split on delimiter
|
// 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
|
// 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_start_token(cstring_array *self);
|
||||||
uint32_t cstring_array_add_string(cstring_array *self, char *str);
|
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);
|
string_tree_t *string_tree_new_size(size_t size);
|
||||||
|
|
||||||
// get
|
// 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
|
// finalize
|
||||||
void string_tree_finalize_token(string_tree_t *self);
|
void string_tree_finalize_token(string_tree_t *self);
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include "vector.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_BASE(name, type) \
|
||||||
__VECTOR_DESTROY(name, type) \
|
__VECTOR_DESTROY(name, type) \
|
||||||
\
|
\
|
||||||
@@ -119,16 +119,16 @@
|
|||||||
return result; \
|
return result; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static inline type type##_array_l1_norm(type *array, size_t n) { \
|
static inline unsigned_type type##_array_l1_norm(type *array, size_t n) { \
|
||||||
type result = 0; \
|
unsigned_type result = 0; \
|
||||||
for (int i = 0; i < n; i++) { \
|
for (int i = 0; i < n; i++) { \
|
||||||
result += abs(array[i]); \
|
result += type_abs(array[i]); \
|
||||||
} \
|
} \
|
||||||
return result; \
|
return result; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static inline type type##_array_l2_norm(type *array, size_t n) { \
|
static inline unsigned_type type##_array_l2_norm(type *array, size_t n) { \
|
||||||
type result = 0; \
|
unsigned_type result = 0; \
|
||||||
for (int i = 0; i < n; i++) { \
|
for (int i = 0; i < n; i++) { \
|
||||||
result += array[i] * array[i]; \
|
result += array[i] * array[i]; \
|
||||||
} \
|
} \
|
||||||
@@ -177,8 +177,8 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define VECTOR_INIT_NUMERIC_FLOAT(name, type) \
|
#define VECTOR_INIT_NUMERIC_FLOAT(name, type, type_abs) \
|
||||||
VECTOR_INIT_NUMERIC(name, type) \
|
VECTOR_INIT_NUMERIC(name, type, type, type_abs) \
|
||||||
\
|
\
|
||||||
static inline void type##_array_log(type *array, type c, size_t n) { \
|
static inline void type##_array_log(type *array, type c, size_t n) { \
|
||||||
for (int i = 0; i < n; i++) { \
|
for (int i = 0; i < n; i++) { \
|
||||||
|
|||||||
Reference in New Issue
Block a user