Mercurial > hg > wm
comparison Meerwald/signature.c @ 0:be303a3f5ea8
import
| author | Peter Meerwald <pmeerw@cosy.sbg.ac.at> |
|---|---|
| date | Sun, 12 Aug 2007 13:14:34 +0200 |
| parents | |
| children | acb6967ee76d |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:be303a3f5ea8 |
|---|---|
| 1 #include "signature.h" | |
| 2 | |
| 3 void init_signature_bits() { | |
| 4 bzero(signature, sizeof(signature)); | |
| 5 } | |
| 6 | |
| 7 void init_signature1_bits() { | |
| 8 bzero(signature1, sizeof(signature1)); | |
| 9 } | |
| 10 | |
| 11 void init_signature2_bits() { | |
| 12 bzero(signature2, sizeof(signature2)); | |
| 13 } | |
| 14 | |
| 15 int get_signature_bit(int n) { | |
| 16 int byte = n >> 3; | |
| 17 int bit = n & 7; | |
| 18 | |
| 19 #ifdef DEBUG | |
| 20 if (byte < 0 || byte >= NSIGNATURE) | |
| 21 fprintf(stderr, "get_signature_bit(): index out of range\n"); | |
| 22 #endif | |
| 23 | |
| 24 return (signature[byte] & (1 << bit)) >> bit; | |
| 25 } | |
| 26 | |
| 27 int get_signature1_bit(int n) { | |
| 28 int byte = n >> 3; | |
| 29 int bit = n & 7; | |
| 30 | |
| 31 #ifdef DEBUG | |
| 32 if (byte < 0 || byte >= NSIGNATURE) | |
| 33 fprintf(stderr, "get_signature1_bit(): index out of range\n"); | |
| 34 #endif | |
| 35 | |
| 36 return (signature1[byte] & (1 << bit)) >> bit; | |
| 37 } | |
| 38 | |
| 39 int get_signature2_bit(int n) { | |
| 40 int byte = n >> 3; | |
| 41 int bit = n & 7; | |
| 42 | |
| 43 #ifdef DEBUG | |
| 44 if (byte < 0 || byte >= NSIGNATURE) | |
| 45 fprintf(stderr, "get_signature2_bit(): index out of range\n"); | |
| 46 #endif | |
| 47 | |
| 48 return (signature2[byte] & (1 << bit)) >> bit; | |
| 49 } | |
| 50 | |
| 51 void set_signature_bit(int n, int v) { | |
| 52 int byte = n >> 3; | |
| 53 int bit = n & 7; | |
| 54 | |
| 55 #ifdef DEBUG | |
| 56 if (byte < 0 || byte >= NSIGNATURE) | |
| 57 fprintf(stderr, "get_signature_bit(): index out of range\n"); | |
| 58 #endif | |
| 59 | |
| 60 if (v) | |
| 61 signature[byte] |= (1 << bit); | |
| 62 else | |
| 63 signature[byte] &= ~(1 << bit); | |
| 64 } | |
| 65 | |
| 66 void set_signature1_bit(int n, int v) { | |
| 67 int byte = n >> 3; | |
| 68 int bit = n & 7; | |
| 69 | |
| 70 #ifdef DEBUG | |
| 71 if (byte < 0 || byte >= NSIGNATURE) | |
| 72 fprintf(stderr, "get_signature1_bit(): index out of range\n"); | |
| 73 #endif | |
| 74 | |
| 75 if (v) | |
| 76 signature1[byte] |= (1 << bit); | |
| 77 else | |
| 78 signature1[byte] &= ~(1 << bit); | |
| 79 } | |
| 80 | |
| 81 void set_signature2_bit(int n, int v) { | |
| 82 int byte = n >> 3; | |
| 83 int bit = n & 7; | |
| 84 | |
| 85 #ifdef DEBUG | |
| 86 if (byte < 0 || byte >= NSIGNATURE) | |
| 87 fprintf(stderr, "get_signature2_bit(): index out of range\n"); | |
| 88 #endif | |
| 89 | |
| 90 if (v) | |
| 91 signature2[byte] |= (1 << bit); | |
| 92 else | |
| 93 signature2[byte] &= ~(1 << bit); | |
| 94 } | |
| 95 |
