@@ -245,7 +245,8 @@ size_t MaxRun2Length(tU_INT4 aVal,size_t aPow2)
245245
246246cCelCC::cCelCC (size_t aLowestCode) :
247247 mLowCode (aLowestCode),
248- mNum (-1 )
248+ mNum (-1 ),
249+ mSelfSym (false )
249250{
250251}
251252
@@ -281,22 +282,22 @@ cCompEquiCodes::cCompEquiCodes(size_t aNbBits,size_t aPer,bool WithMirror) :
281282 MMVII_INTERNAL_ASSERT_strong ((aNbBits%aPer)==0 ," NbBit not multiple of period in cCompEquiCodes" );
282283 for (size_t aCode=0 ; aCode < mNbCodeUC ; aCode++)
283284 {
284- if (mVCodes2Cell [aCode] == nullptr )
285- {
285+ if (mVCodes2Cell [aCode] == nullptr )
286+ {
286287 cCelCC * aNewCel = new cCelCC (aCode);
287288 aNewCel->mNum = mVecOfCells .size ();
288- mVecOfCells .push_back (aNewCel);
289+ mVecOfCells .push_back (aNewCel);
289290
290- AddCodeWithPermCirc (aCode,aNewCel);
291- if (WithMirror)
292- AddCodeWithPermCirc (BitMirror (aCode,mNbCodeUC ),aNewCel);
291+ AddCodeWithPermCirc (aCode,aNewCel);
292+ if (WithMirror)
293+ AddCodeWithPermCirc (BitMirror (aCode,mNbCodeUC ),aNewCel);
293294
294- AddAndResizeUp (mHistoNbBit ,NbBits (aCode),1 );
295- }
296- else
297- {
295+ AddAndResizeUp (mHistoNbBit ,NbBits (aCode),1 );
296+ }
297+ else
298+ {
298299 // Nothing to do, code has been processed by equivalent lower codes
299- }
300+ }
300301 }
301302
302303 // for (const auto & AC : mVecOfCells)
@@ -345,6 +346,8 @@ cCelCC * cCompEquiCodes::CellOfCode(size_t aCode)
345346
346347void cCompEquiCodes::AddCodeWithPermCirc (size_t aCode,cCelCC * aNewCel)
347348{
349+ size_t aCodeInit = aCode; // used to compute selfSimFound
350+
348351 for (size_t aBit=0 ; aBit<mNbBits ; aBit+=mPeriod )
349352 {
350353 // Test because code may have already been processed i
@@ -354,6 +357,8 @@ void cCompEquiCodes::AddCodeWithPermCirc(size_t aCode,cCelCC * aNewCel)
354357 mVCodes2Cell [aCode] = aNewCel;
355358 aNewCel->mEquivCode .push_back (aCode);
356359 }
360+ if ((aBit!=0 ) && (aCode==aCodeInit))
361+ aNewCel->mSelfSym = true ;
357362 aCode = N_LeftBitsCircPerm (aCode,mNbCodeUC ,mPeriod );
358363 }
359364}
0 commit comments