IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 17, 2005, 2:53:32 PM (21 years ago)
Author:
drobbin
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/collections/psBitSet.c

    r3682 r4312  
    1111 *  @author Robert DeSonia, MHPCC
    1212 *
    13  *  @version $Revision: 1.24 $ $Name: not supported by cvs2svn $
    14  *  @date $Date: 2005-04-07 20:27:41 $
     13 *  @version $Revision: 1.25 $ $Name: not supported by cvs2svn $
     14 *  @date $Date: 2005-06-18 00:53:32 $
    1515 *
    1616 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    6666}
    6767
    68 psBitSet* psBitSetAlloc(psS32 n)
     68psBitSet* psBitSetAlloc(long nalloc)
    6969{
    7070    psS32 numBytes = 0;
    7171    psBitSet* newObj = NULL;
    7272
    73     if (n < 0) {
     73    if (nalloc < 0) {
    7474        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
    7575                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);
    8181    newObj = psAlloc(sizeof(psBitSet));
    8282    psMemSetDeallocator(newObj, (psFreeFcn) bitSetFree);
     
    9292}
    9393
    94 psBitSet* psBitSetSet(psBitSet* inBitSet,
    95                       psS32 bit)
     94psBitSet* psBitSetSet(psBitSet* bitSet,
     95                      long bit)
    9696{
    9797    char *byte = NULL;
    9898
    99     if (inBitSet == NULL) {
     99    if (bitSet == NULL) {
    100100        psError(PS_ERR_BAD_PARAMETER_NULL, true,
    101101                PS_ERRORTEXT_psBitSet_SET_NULL);
    102         return inBitSet;
     102        return bitSet;
    103103    } else if ( (bit < 0) ||
    104                 (bit > inBitSet->n * 8 - 1) ) {
     104                (bit > bitSet->n * 8 - 1) ) {
    105105        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
    106106                PS_ERRORTEXT_psBitSet_BIT_OUTOFRANGE,
    107                 bit,inBitSet->n * 8 - 1);
    108         return inBitSet;
     107                bit,bitSet->n * 8 - 1);
     108        return bitSet;
    109109    }
    110110    // 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;
    112112    *byte |= mask(bit);
    113113
    114     return inBitSet;
    115 }
    116 
    117 psBitSet* psBitSetClear(psBitSet* inBitSet,
    118                         psS32 bit)
     114    return bitSet;
     115}
     116
     117psBitSet* psBitSetClear(psBitSet* bitSet,
     118                        long bit)
    119119{
    120120    char *byte = NULL;
    121121
    122     if (inBitSet == NULL) {
     122    if (bitSet == NULL) {
    123123        psError(PS_ERR_BAD_PARAMETER_NULL, true,
    124124                PS_ERRORTEXT_psBitSet_SET_NULL);
    125         return inBitSet;
     125        return bitSet;
    126126    } else if ( (bit < 0) ||
    127                 (bit > inBitSet->n * 8 - 1) ) {
     127                (bit > bitSet->n * 8 - 1) ) {
    128128        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
    129129                PS_ERRORTEXT_psBitSet_BIT_OUTOFRANGE,
    130                 bit,inBitSet->n * 8 - 1);
    131         return inBitSet;
     130                bit,bitSet->n * 8 - 1);
     131        return bitSet;
    132132    }
    133133    // 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;
    135135    *byte &= ! mask(bit);
    136136
    137     return inBitSet;
    138 }
    139 
    140 psBool psBitSetTest(const psBitSet* inBitSet,
    141                     psS32 bit)
     137    return bitSet;
     138}
     139
     140bool psBitSetTest(const psBitSet* bitSet,
     141                  long bit)
    142142{
    143143    char *byte = NULL;
    144144
    145     if (inBitSet == NULL) {
     145    if (bitSet == NULL) {
    146146        psError(PS_ERR_BAD_PARAMETER_NULL, true,
    147147                PS_ERRORTEXT_psBitSet_SET_NULL);
    148148        return false;
    149149    } else if ( (bit < 0) ||
    150                 (bit > inBitSet->n * 8 - 1) ) {
     150                (bit > bitSet->n * 8 - 1) ) {
    151151        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
    152152                PS_ERRORTEXT_psBitSet_BIT_OUTOFRANGE,
    153                 bit,inBitSet->n * 8 - 1);
     153                bit,bitSet->n * 8 - 1);
    154154        return false;
    155155    }
    156156
    157157    // 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;
    159159    return ((*byte & mask(bit)) != 0);
    160160}
     
    162162psBitSet* psBitSetOp(psBitSet* outBitSet,
    163163                     const psBitSet* inBitSet1,
    164                      char *operator,
     164                     const char *operator,
    165165                     const psBitSet* inBitSet2)
    166166{
Note: See TracChangeset for help on using the changeset viewer.