libflint/docs/math.md

1.4 KiB

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

Comparison Functions

Comparison functions to compare two items. These functions must return 1 if a > b, -1 if a < b, or 0 if a == b. This follows the pattern defined by compar functions in the C standard library, making these usuable in the standard sorting functions like qsort

int compar_int(const void *a, const void *b);
int compar_char(const void *a, const void *b);

// Example
qsort(arr, arr_sz, sizeof(int), compar_int);