LETTERS
for (i = 0; i < LETTERS; i++)
stdf[i] = log(stdf[i]) + log(LETTERS / 100.0);
for (try = 0; try < LETTERS; try++) {
for (i = 0; i < LETTERS; i++)
* stdf[(i + try) % LETTERS];
static const unsigned char upper[LETTERS] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
static const unsigned char lower[LETTERS] = "abcdefghijklmnopqrstuvwxyz";
static double stdf[LETTERS] = {
rot %= LETTERS; /* prevent integer overflow */
for (size_t i = 0; i < LETTERS; i++)
rottbl[upper[i]] = upper[(i + rot) % LETTERS];
for (size_t i = 0; i < LETTERS; i++)
rottbl[lower[i]] = lower[(i + rot) % LETTERS];