__type_half_max
#define __type_max(T) ((T)((__type_half_max(T) - 1) + __type_half_max(T)))
#define type_max(T) ((T)((__type_half_max(T) - 1) + __type_half_max(T)))