Exemplo n.º 1
0
 /** Return true if \p bv1 and \p bv2 are equivalent
     Not that they may be of different size, and still equivalent provided that the extra bits are all zero.
     \param[in] bv1 A bit vector
     \param[in] bv2 Another bit vector
     \return true if equal, false otherwise
 */
 bool operator== (const OBBitVec & bv1, const OBBitVec & bv2)
 {
   if (bv1.GetSize() < bv2.GetSize())
     { // bv1 smaller than bv2
     unsigned i;
     for (i = 0; i < bv1.GetSize(); ++ i)
       if (bv1._set[i] != bv2._set[i])
         return false;
     for (; i < bv2.GetSize(); ++ i)
       if (bv2._set[i] != 0)
         return false;
     }
   else
     { // bv2 smaller or equal than bv1
     unsigned i;
     for (i = 0; i < bv2.GetSize(); ++ i)
       if (bv1._set[i] != bv2._set[i])
         return false;
     for (; i < bv1.GetSize(); ++ i)
       if (bv1._set[i] != 0)
         return false;
     }
   return true;
 }