mirror of
https://gitlab.com/80486DX2-66/gists
synced 2024-12-26 11:30:03 +05:30
47 lines
939 B
C
47 lines
939 B
C
/*
|
|
* opt_int_div.c
|
|
*
|
|
* "Optimized integer division"
|
|
*
|
|
* Author: Intel A80486DX2-66
|
|
* License: Creative Commons Zero 1.0 Universal
|
|
*/
|
|
|
|
#include "opt_int_div.h"
|
|
|
|
#ifdef TEST
|
|
# include <inttypes.h>
|
|
# include <stdio.h>
|
|
|
|
int main(void) {
|
|
printf("Loop: a > 0, b > 0\n");
|
|
for (uint8_t a = 3; a <= 24; a++)
|
|
for (uint8_t b = 1; b <= 8; b++) {
|
|
if (b >= a)
|
|
break;
|
|
printf("%" PRIu8 " / %" PRIu8 " = %" PRIu8 "\n", a, b,
|
|
OPT_INT_DIV(a, b));
|
|
}
|
|
|
|
printf("Loop: a < 0, b > 0\n");
|
|
for (int8_t a = -3; a >= -24; a--)
|
|
for (int8_t b = 1; b <= 8; b++) {
|
|
if (b >= abs(a))
|
|
break;
|
|
printf("%" PRId8 " / %" PRId8 " = %" PRId8 "\n", a, b,
|
|
OPT_INT_DIV(a, b));
|
|
}
|
|
|
|
printf("Loop: a < 0, b < 0\n");
|
|
for (int8_t a = -3; a >= -24; a--)
|
|
for (int8_t b = -1; b >= -8; b--) {
|
|
if (b <= a)
|
|
break;
|
|
printf("%" PRId8 " / %" PRId8 " = %" PRId8 "\n", a, b,
|
|
OPT_INT_DIV(a, b));
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
#endif
|