xref: /csrg-svn/usr.bin/pascal/libpc/CARD.c (revision 40865)
1*40865Sbostic /*-
2*40865Sbostic  * Copyright (c) 1979 The Regents of the University of California.
3*40865Sbostic  * All rights reserved.
4*40865Sbostic  *
5*40865Sbostic  * %sccs.include.redist.c%
6*40865Sbostic  */
71641Smckusick 
8*40865Sbostic #ifndef lint
9*40865Sbostic static char sccsid[] = "@(#)CARD.c	1.3 (Berkeley) 04/09/90";
10*40865Sbostic #endif /* not lint */
111641Smckusick 
121641Smckusick char _cntbl[] = {
131641Smckusick 	0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
141641Smckusick 	1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
151641Smckusick 	1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
161641Smckusick 	2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
171641Smckusick 	1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
181641Smckusick 	2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
191641Smckusick 	2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
201641Smckusick 	3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
211641Smckusick 	1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
221641Smckusick 	2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
231641Smckusick 	2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
241641Smckusick 	3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
251641Smckusick 	2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
261641Smckusick 	3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
271641Smckusick 	3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
281641Smckusick 	4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8
291641Smckusick 	};
301641Smckusick 
312996Smckusic long
322996Smckusic CARD(setptr, siz)
331641Smckusick 
341641Smckusick 	register unsigned char	*setptr;
352996Smckusic 	long		siz;
361641Smckusick {
371641Smckusick 	register int	cnt;
382996Smckusic 	register int	size = siz;
391641Smckusick 
401641Smckusick 	cnt = 0;
411641Smckusick 	do {
421641Smckusick 		cnt += _cntbl[*setptr++];
431641Smckusick 	} while (--size);
441641Smckusick 	return cnt;
451641Smckusick }
46