Changeset 4312 for trunk/psLib/src/collections/psBitSet.c
- Timestamp:
- Jun 17, 2005, 2:53:32 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/collections/psBitSet.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/collections/psBitSet.c
r3682 r4312 11 11 * @author Robert DeSonia, MHPCC 12 12 * 13 * @version $Revision: 1.2 4$ $Name: not supported by cvs2svn $14 * @date $Date: 2005-0 4-07 20:27:41$13 * @version $Revision: 1.25 $ $Name: not supported by cvs2svn $ 14 * @date $Date: 2005-06-18 00:53:32 $ 15 15 * 16 16 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 66 66 } 67 67 68 psBitSet* psBitSetAlloc( psS32 n)68 psBitSet* psBitSetAlloc(long nalloc) 69 69 { 70 70 psS32 numBytes = 0; 71 71 psBitSet* newObj = NULL; 72 72 73 if (n < 0) {73 if (nalloc < 0) { 74 74 psError(PS_ERR_BAD_PARAMETER_VALUE, true, 75 75 PS_ERRORTEXT_psBitSet_ALLOC_NEG_SIZE, 76 n );77 return NULL; 78 } 79 80 numBytes = ceil(n / 8.0);76 nalloc); 77 return NULL; 78 } 79 80 numBytes = ceil(nalloc / 8.0); 81 81 newObj = psAlloc(sizeof(psBitSet)); 82 82 psMemSetDeallocator(newObj, (psFreeFcn) bitSetFree); … … 92 92 } 93 93 94 psBitSet* psBitSetSet(psBitSet* inBitSet,95 psS32bit)94 psBitSet* psBitSetSet(psBitSet* bitSet, 95 long bit) 96 96 { 97 97 char *byte = NULL; 98 98 99 if ( inBitSet == NULL) {99 if (bitSet == NULL) { 100 100 psError(PS_ERR_BAD_PARAMETER_NULL, true, 101 101 PS_ERRORTEXT_psBitSet_SET_NULL); 102 return inBitSet;102 return bitSet; 103 103 } else if ( (bit < 0) || 104 (bit > inBitSet->n * 8 - 1) ) {104 (bit > bitSet->n * 8 - 1) ) { 105 105 psError(PS_ERR_BAD_PARAMETER_VALUE, true, 106 106 PS_ERRORTEXT_psBitSet_BIT_OUTOFRANGE, 107 bit, inBitSet->n * 8 - 1);108 return inBitSet;107 bit,bitSet->n * 8 - 1); 108 return bitSet; 109 109 } 110 110 // Variable byte is the byte in the array that contains the bit to be set 111 byte = inBitSet->bits + bit / 8;111 byte = bitSet->bits + bit / 8; 112 112 *byte |= mask(bit); 113 113 114 return inBitSet;115 } 116 117 psBitSet* psBitSetClear(psBitSet* inBitSet,118 psS32bit)114 return bitSet; 115 } 116 117 psBitSet* psBitSetClear(psBitSet* bitSet, 118 long bit) 119 119 { 120 120 char *byte = NULL; 121 121 122 if ( inBitSet == NULL) {122 if (bitSet == NULL) { 123 123 psError(PS_ERR_BAD_PARAMETER_NULL, true, 124 124 PS_ERRORTEXT_psBitSet_SET_NULL); 125 return inBitSet;125 return bitSet; 126 126 } else if ( (bit < 0) || 127 (bit > inBitSet->n * 8 - 1) ) {127 (bit > bitSet->n * 8 - 1) ) { 128 128 psError(PS_ERR_BAD_PARAMETER_VALUE, true, 129 129 PS_ERRORTEXT_psBitSet_BIT_OUTOFRANGE, 130 bit, inBitSet->n * 8 - 1);131 return inBitSet;130 bit,bitSet->n * 8 - 1); 131 return bitSet; 132 132 } 133 133 // Variable byte is the byte in the array that contains the bit to be set 134 byte = inBitSet->bits + bit / 8;134 byte = bitSet->bits + bit / 8; 135 135 *byte &= ! mask(bit); 136 136 137 return inBitSet;138 } 139 140 psBool psBitSetTest(const psBitSet* inBitSet,141 psS32bit)137 return bitSet; 138 } 139 140 bool psBitSetTest(const psBitSet* bitSet, 141 long bit) 142 142 { 143 143 char *byte = NULL; 144 144 145 if ( inBitSet == NULL) {145 if (bitSet == NULL) { 146 146 psError(PS_ERR_BAD_PARAMETER_NULL, true, 147 147 PS_ERRORTEXT_psBitSet_SET_NULL); 148 148 return false; 149 149 } else if ( (bit < 0) || 150 (bit > inBitSet->n * 8 - 1) ) {150 (bit > bitSet->n * 8 - 1) ) { 151 151 psError(PS_ERR_BAD_PARAMETER_VALUE, true, 152 152 PS_ERRORTEXT_psBitSet_BIT_OUTOFRANGE, 153 bit, inBitSet->n * 8 - 1);153 bit,bitSet->n * 8 - 1); 154 154 return false; 155 155 } 156 156 157 157 // Variable byte is the byte in the array that contains the bit to be tested 158 byte = inBitSet->bits + bit / 8;158 byte = bitSet->bits + bit / 8; 159 159 return ((*byte & mask(bit)) != 0); 160 160 } … … 162 162 psBitSet* psBitSetOp(psBitSet* outBitSet, 163 163 const psBitSet* inBitSet1, 164 c har *operator,164 const char *operator, 165 165 const psBitSet* inBitSet2) 166 166 {
Note:
See TracChangeset
for help on using the changeset viewer.
