diff --git a/include/types.h b/include/types.h index 77b3ddd..cde1912 100644 --- a/include/types.h +++ b/include/types.h @@ -16,12 +16,33 @@ typedef i8 bool; #define true 1 #define false 0 +i64 i64_max(i64 v1, i64 v2); +i64 i64_min(i64 v1, i64 v2); + +u64 u64_max(u64 v1, u64 v2); +u64 u64_min(u64 v1, u64 v2); + i32 i32_max(i32 v1, i32 v2); i32 i32_min(i32 v1, i32 v2); u32 u32_max(u32 v1, u32 v2); u32 u32_min(u32 v1, u32 v2); +i16 i16_max(i16 v1, i16 v2); +i16 i16_min(i16 v1, i16 v2); + +u16 u16_max(u16 v1, u16 v2); +u16 u16_min(u16 v1, u16 v2); + +i8 i8_max(i8 v1, i8 v2); +i8 i8_min(i8 v1, i8 v2); + +u8 u8_max(u8 v1, u8 v2); +u8 u8_min(u8 v1, u8 v2); + +f64 f64_max(f64 v1, f64 v2); +f64 f64_min(f64 v1, f64 v2); + f32 f32_max(f32 v1, f32 v2); f32 f32_min(f32 v1, f32 v2); diff --git a/src/types.c b/src/types.c index a9651d5..731bd69 100644 --- a/src/types.c +++ b/src/types.c @@ -1,5 +1,21 @@ #include "types.h" +i64 i64_max(i64 v1, i64 v2) { + return v1 > v2 ? v1 : v2; +} + +i64 i64_min(i64 v1, i64 v2) { + return v1 < v2 ? v1 : v2; +} + +u64 u64_max(u64 v1, u64 v2) { + return v1 > v2 ? v1 : v2; +} + +u64 u64_min(u64 v1, u64 v2) { + return v1 < v2 ? v1 : v2; +} + i32 i32_max(i32 v1, i32 v2) { return v1 > v2 ? v1 : v2; } @@ -16,6 +32,46 @@ u32 u32_min(u32 v1, u32 v2) { return v1 < v2 ? v1 : v2; } +i16 i16_max(i16 v1, i16 v2) { + return v1 > v2 ? v1 : v2; +} + +i16 i16_min(i16 v1, i16 v2) { + return v1 < v2 ? v1 : v2; +} + +u16 u16_max(u16 v1, u16 v2) { + return v1 > v2 ? v1 : v2; +} + +u16 u16_min(u16 v1, u16 v2) { + return v1 < v2 ? v1 : v2; +} + +i8 i8_max(i8 v1, i8 v2) { + return v1 > v2 ? v1 : v2; +} + +i8 i8_min(i8 v1, i8 v2) { + return v1 < v2 ? v1 : v2; +} + +u8 u8_max(u8 v1, u8 v2) { + return v1 > v2 ? v1 : v2; +} + +u8 u8_min(u8 v1, u8 v2) { + return v1 < v2 ? v1 : v2; +} + +f64 f64_max(f64 v1, f64 v2) { + return v1 > v2 ? v1 : v2; +} + +f64 f64_min(f64 v1, f64 v2) { + return v1 < v2 ? v1 : v2; +} + f32 f32_max(f32 v1, f32 v2) { return v1 > v2 ? v1 : v2; }