Number types changes
Signed-off-by: Robear Selwans <robear.selwans@outlook.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#ifndef EV_HEADERS_HASH_H
|
||||
#define EV_HEADERS_HASH_H
|
||||
|
||||
#include "ev_numeric.h"
|
||||
#include "ev_internal.h"
|
||||
|
||||
/*!
|
||||
* \brief MurmurHash3 64-bit version. Returns 64-bit hash instead of 128
|
||||
|
||||
@@ -1,21 +1,34 @@
|
||||
#ifndef EV_HEADERS_INTERNAL_H
|
||||
#define EV_HEADERS_INTERNAL_H
|
||||
|
||||
typedef signed char __ev_int8_t;
|
||||
typedef short int __ev_int16_t;
|
||||
typedef int __ev_int32_t;
|
||||
typedef long long int __ev_int64_t;
|
||||
typedef signed char i8;
|
||||
typedef short int i16;
|
||||
typedef int i32;
|
||||
typedef long long int i64;
|
||||
|
||||
typedef unsigned char __ev_uint8_t;
|
||||
typedef unsigned short int __ev_uint16_t;
|
||||
typedef unsigned int __ev_uint32_t;
|
||||
typedef unsigned long long int __ev_uint64_t;
|
||||
typedef unsigned char u8;
|
||||
typedef unsigned short int u16;
|
||||
typedef unsigned int u32;
|
||||
typedef unsigned long long int u64;
|
||||
|
||||
typedef float __ev_float32_t;
|
||||
typedef double __ev_float64_t;
|
||||
typedef float f32;
|
||||
typedef double f64;
|
||||
|
||||
typedef _Bool __ev_bool;
|
||||
typedef _Bool bool;
|
||||
#define true 1
|
||||
#define false 0
|
||||
|
||||
#define i8_const(v) (i8){v}
|
||||
#define i16_const(v) (i16){v}
|
||||
#define i32_const(v) (i32){v}
|
||||
#define i64_const(v) (i64){v}
|
||||
|
||||
#define u8_const(v) (u8){v}
|
||||
#define u16_const(v) (u16){v}
|
||||
#define u32_const(v) (u32){v}
|
||||
#define u64_const(v) (u64){v}
|
||||
|
||||
#define f32_const(v) (f32){v}
|
||||
#define f64_const(v) (f64){v}
|
||||
|
||||
#endif // EV_HEADERS_INTERNAL_H
|
||||
|
||||
47
ev_numeric.h
47
ev_numeric.h
@@ -5,30 +5,37 @@
|
||||
#include "ev_types.h"
|
||||
|
||||
// Signed integers
|
||||
EV_TYPEDEF(i8 , __ev_int8_t); TYPEDATA_GEN(i8);
|
||||
#define i8_const(v) (i8){v}
|
||||
EV_TYPEDEF(i16, __ev_int16_t); TYPEDATA_GEN(i16);
|
||||
#define i16_const(v) (i16){v}
|
||||
EV_TYPEDEF(i32, __ev_int32_t); TYPEDATA_GEN(i32);
|
||||
#define i32_const(v) (i32){v}
|
||||
EV_TYPEDEF(i64, __ev_int64_t); TYPEDATA_GEN(i64);
|
||||
#define i64_const(v) (i64){v}
|
||||
EV_REGISTER_TYPE(i8);
|
||||
TYPEDATA_GEN(i8, DEFAULT(0));
|
||||
|
||||
EV_REGISTER_TYPE(i16);
|
||||
TYPEDATA_GEN(i16, DEFAULT(0));
|
||||
|
||||
EV_REGISTER_TYPE(i32);
|
||||
TYPEDATA_GEN(i32, DEFAULT(0));
|
||||
|
||||
EV_REGISTER_TYPE(i64);
|
||||
TYPEDATA_GEN(i64, DEFAULT(0));
|
||||
|
||||
// Unsigned integers
|
||||
EV_TYPEDEF(u8 , __ev_uint8_t); TYPEDATA_GEN(u8);
|
||||
#define u8_const(v) (u8){v}
|
||||
EV_TYPEDEF(u16, __ev_uint16_t); TYPEDATA_GEN(u16);
|
||||
#define u16_const(v) (u16){v}
|
||||
EV_TYPEDEF(u32, __ev_uint32_t); TYPEDATA_GEN(u32);
|
||||
#define u32_const(v) (u32){v}
|
||||
EV_TYPEDEF(u64, __ev_uint64_t); TYPEDATA_GEN(u64);
|
||||
#define u64_const(v) (u64){v}
|
||||
EV_REGISTER_TYPE(u8);
|
||||
TYPEDATA_GEN(u8, DEFAULT(0));
|
||||
|
||||
EV_REGISTER_TYPE(u16);
|
||||
TYPEDATA_GEN(u16, DEFAULT(0));
|
||||
|
||||
EV_REGISTER_TYPE(u32);
|
||||
TYPEDATA_GEN(u32, DEFAULT(0));
|
||||
|
||||
EV_REGISTER_TYPE(u64);
|
||||
TYPEDATA_GEN(u64, DEFAULT(0));
|
||||
|
||||
// Floating-Point Numbers
|
||||
EV_TYPEDEF(f32, __ev_float32_t); TYPEDATA_GEN(f32);
|
||||
#define f32_const(v) (f32){v}
|
||||
EV_TYPEDEF(f64, __ev_float64_t); TYPEDATA_GEN(f64);
|
||||
#define f64_const(v) (f64){v}
|
||||
EV_REGISTER_TYPE(f32);
|
||||
TYPEDATA_GEN(f32, DEFAULT(0.0f));
|
||||
|
||||
EV_REGISTER_TYPE(f64);
|
||||
TYPEDATA_GEN(f64, DEFAULT(0.0));
|
||||
|
||||
struct Int8Data { i8 MIN; i8 MAX; };
|
||||
struct Int16Data { i16 MIN; i16 MAX; };
|
||||
|
||||
10
ev_types.h
10
ev_types.h
@@ -7,14 +7,14 @@
|
||||
|
||||
typedef void(*ev_copy_fn)(void *dst, void *src);
|
||||
typedef void(*ev_free_fn)(void *self);
|
||||
typedef __ev_uint64_t(*ev_hash_fn)(void *self, __ev_uint64_t seed);
|
||||
typedef __ev_bool(*ev_equal_fn)(void *self, void *other);
|
||||
typedef u64(*ev_hash_fn)(void *self, u64 seed);
|
||||
typedef bool(*ev_equal_fn)(void *self, void *other);
|
||||
|
||||
typedef struct {
|
||||
EV_DEBUG(const char *name;)
|
||||
|
||||
__ev_uint32_t size;
|
||||
__ev_uint32_t alignment;
|
||||
u32 size;
|
||||
u32 alignment;
|
||||
|
||||
ev_copy_fn copy_fn;
|
||||
ev_free_fn free_fn;
|
||||
@@ -42,7 +42,7 @@ typedef struct {
|
||||
#define DEFINE_DEFAULT_HASH_FUNCTION(T) \
|
||||
DEFINE_HASH_FUNCTION(T,DEFAULT) { ev_hash_murmur3(self, sizeof(T), seed); }
|
||||
|
||||
#define DEFINE_EQUAL_FUNCTION(T,name) __ev_bool EQUAL_FUNCTION(T,name)(T *self, T *other)
|
||||
#define DEFINE_EQUAL_FUNCTION(T,name) bool EQUAL_FUNCTION(T,name)(T *self, T *other)
|
||||
#define DEFINE_DEFAULT_EQUAL_FUNCTION(T) \
|
||||
DEFINE_EQUAL_FUNCTION(T,DEFAULT) { return *self == *other; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user