149 if (
this == &aOtherPrint )
156 if ( m_size >= aOtherPrint.m_size )
162 for ( uint32_t index = 0; index != aOtherPrint.m_size; ++index )
163 { m_array[index] |= aOtherPrint.m_array[index]; }
171 uint32_t* tmp_ptr =
new uint32_t[aOtherPrint.m_size];
174 std::cerr <<
"No memory to allocate another kinematicData" << std::endl;
181 for ( uint32_t index_1 = 0; index_1 != m_size; ++index_1 )
182 { tmp_ptr[index_1] = m_array[index_1] | aOtherPrint.m_array[index_1]; }
186 for ( uint32_t index_2 = m_size; index_2 != aOtherPrint.m_size; ++index_2 )
187 { tmp_ptr[index_2] = aOtherPrint.m_array[index_2]; }
195 m_size = aOtherPrint.m_size;
217 const uint32_t kBitsInByte = 8;
221 uint32_t freshNumber = m_numberIssued++;
225 uint32_t element = freshNumber / ( kBitsInByte *
sizeof( uint32_t ) );
226 uint32_t offsetInElement = freshNumber % ( kBitsInByte *
sizeof( uint32_t ) );
230 resize( element + 1 );
234 for ( uint32_t index = 0; index < element; ++index ) { m_array[index] = uint32_t( 0 ); }
238 m_array[element] = uint32_t( 1 ) << offsetInElement;
282 if (
this == &aOtherPrint )
292 uint32_t shorterSize;
293 if ( m_size > aOtherPrint.m_size ) { shorterSize = aOtherPrint.m_size; }
294 else { shorterSize = m_size; }
299 while ( ( index != shorterSize ) && ( m_array[index] == aOtherPrint.m_array[index] ) )
305 if ( index != shorterSize ) {
return (
false ); }
309 if ( m_size >= aOtherPrint.m_size )
311 while ( ( index != m_size ) && ( m_array[index] == uint32_t( 0 ) ) ) { ++index; }
312 return ( m_size == index );
316 while ( ( index != aOtherPrint.m_size ) &&
317 ( aOtherPrint.m_array[index] == uint32_t( 0 ) ) )
319 return ( aOtherPrint.m_size == index );
343 if (
this == &aOtherPrint )
353 uint32_t shorterSize;
354 if ( m_size > aOtherPrint.m_size ) { shorterSize = aOtherPrint.m_size; }
355 else { shorterSize = m_size; }
360 while ( ( index != shorterSize ) &&
361 ( 0 == ( m_array[index] & aOtherPrint.m_array[index] ) ) )
367 return ( index != shorterSize );
374 if (
this == &aOtherPrint )
384 uint32_t shorterSize;
385 if ( m_size > aOtherPrint.m_size ) { shorterSize = aOtherPrint.m_size; }
386 else { shorterSize = m_size; }
392 while ( ( index != shorterSize ) &&
393 ( m_array[index] == ( m_array[index] | aOtherPrint.m_array[index] ) ) )
399 if ( index != shorterSize ) {
return (
false ); }
403 if ( m_size > aOtherPrint.m_size ) {
return ( !
false ); }
407 while ( ( index != aOtherPrint.m_size ) && ( aOtherPrint.m_array[index] == uint32_t( 0 ) ) )
413 return ( aOtherPrint.m_size == index );