#ifndef GUARD_649E63003BEAE79ECA2B813C4E131C9A
#define GUARD_649E63003BEAE79ECA2B813C4E131C9A

typedef signed char i8;
typedef unsigned char u8;
typedef signed short i16;
typedef unsigned short u16;
typedef signed int i32;
typedef unsigned int u32;
typedef signed long long i64;
typedef unsigned long long u64;
typedef float f32;
typedef double f64;

#if __STDC_VERSION__ >= 199901L
typedef _Bool bool;
#else
typedef i8 bool;
#endif

#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);

#endif /* GUARD_649E63003BEAE79ECA2B813C4E131C9A */
