/* Calculates gamma corrected settings for n intensity selection bits given m palette bits. */ #include #include #include #include #define GAMMA 2.3 void main() { double intensity,x; int i; int selbits, palbits; int sellevels, pallevels; printf("# of selection bits (eg., 3 if 8 intensity levels desired):"); scanf("%d", &selbits); printf("# of palette bits (eg., 6 if 64 palette entries):"); scanf("%d", &palbits); sellevels = 1; while (selbits--) { sellevels *= 2; }; sellevels--; pallevels = 1; while (palbits--) { pallevels *= 2; }; pallevels--; printf("0\n"); for (i=1; i<=sellevels; i++) { intensity = (double)i/(double)sellevels; printf("%d\n", (int)((pow(intensity, 1.0/GAMMA)*pallevels) + 0.5)); } }