====== math ======
General math functions
===== Functions =====
===== max_int =====
Return the maximum integer between ''%%int a%%'' and ''%%int b%%''
int max_int(int a, int b);
===== min_int =====
Return the minimum integer between ''%%int a%%'' and ''%%int b%%''
int min_int(int a, int b);
===== clamp_int =====
Clamps an integer between a high and low value
int clamp_int(int i, int low, int high);
===== binstr_to_int =====
Converts a string representing a binary number into an integer. Supports underscores as spacing
int binstr_to_int(const char *s);
/* Usage */
int a = binstr_to_int("10011101");
int b = binstr_to_int("1001_1101_0010_1011");
===== bresenham =====
Uses bresenham’s line algorithim to generate a line in 2D space. Returns a pointer to an array of ''%%Point%%''. The ''%%sz%%'' parameter holds the size of the array.
Point *bresenham(int x0, int y0, int x1, int y1, size_t *sz);
===== bresenham_p =====
Works the same as ''%%bresenham()%%'' but uses the ''%%Point%%'' struct instead of ''%%int%%''
Point *bresenham_p(Point p1, Point p2, size_t *sz);
===== is_power_of_two =====
Returns ''%%1%%'' if ''%%i%%'' is a power of two, otherwise returns ''%%1%%''.
int is_power_of_two(int i);