LETTERS
bzero(obs, LETTERS * sizeof(int));
for (try = 0; try < LETTERS; try++) {
for (i = 0; i < LETTERS; i++)
dot += obs[i] * stdf[(i + try) % LETTERS];
isupper(ch) ? ('A' + (ch - 'A' + perm) % LETTERS) : \
islower(ch) ? ('a' + (ch - 'a' + perm) % LETTERS) : ch) : ch
static double stdf[LETTERS] = {
int obs[LETTERS], try, winner;
for (i = 0; i < LETTERS; i++)
stdf[i] = log(stdf[i]) + log(LETTERS / 100.0);