text: /* Utility routines for FEC support
   * Copyright 2004, Phil Karn, KA9Q
   */
  
  #include <stdio.h>
  #include "fec.h"
  
  unsigned char Partab[256];
  int P_init;
  
  /* Create 256-entry odd-parity lookup table
   * Needed only on non-ia32 machines
   */
  void partab_init(void){
    int i,cnt,ti;
  
    /* Initialize parity lookup table */
    for(i=0;i<256;i++){
      cnt = 0;
      ti = i;
      while(ti){
        if(ti & 1)
  	cnt++;
        ti >>= 1;
      }
      Partab[i] = cnt & 1;
    }
    P_init=1;
  }
  
  /* Lookup table giving count of 1 bits for integers 0-255 */
  int Bitcnt[] = {
   0, 1, 1, 2, 1, 2, 2, 3,
   1, 2, 2, 3, 2, 3, 3, 4,
   1, 2, 2, 3, 2, 3, 3, 4,
   2, 3, 3, 4, 3, 4, 4, 5,
   1, 2, 2, 3, 2, 3, 3, 4,
   2, 3, 3, 4, 3, 4, 4, 5,
   2, 3, 3, 4, 3, 4, 4, 5,
   3, 4, 4, 5, 4, 5, 5, 6,
   1, 2, 2, 3, 2, 3, 3, 4,
   2, 3, 3, 4, 3, 4, 4, 5,
   2, 3, 3, 4, 3, 4, 4, 5,
   3, 4, 4, 5, 4, 5, 5, 6,
   2, 3, 3, 4, 3, 4, 4, 5,
   3, 4, 4, 5, 4, 5, 5, 6,
   3, 4, 4, 5, 4, 5, 5, 6,
   4, 5, 5, 6, 5, 6, 6, 7,
   1, 2, 2, 3, 2, 3, 3, 4,
   2, 3, 3, 4, 3, 4, 4, 5,
   2, 3, 3, 4, 3, 4, 4, 5,
   3, 4, 4, 5, 4, 5, 5, 6,
   2, 3, 3, 4, 3, 4, 4, 5,
   3, 4, 4, 5, 4, 5, 5, 6,
   3, 4, 4, 5, 4, 5, 5, 6,
   4, 5, 5, 6, 5, 6, 6, 7,
   2, 3, 3, 4, 3, 4, 4, 5,
   3, 4, 4, 5, 4, 5, 5, 6,
   3, 4, 4, 5, 4, 5, 5, 6,
   4, 5, 5, 6, 5, 6, 6, 7,
   3, 4, 4, 5, 4, 5, 5, 6,
   4, 5, 5, 6, 5, 6, 6, 7,
   4, 5, 5, 6, 5, 6, 6, 7,
   5, 6, 6, 7, 6, 7, 7, 8,
  };
  
  