@@ -198,9 +198,9 @@ public void UnionWith(IReadOnlyBitSet other, BitSet results)
198198 var resultsSpan = results . chunks . AsSpan ( ) ;
199199
200200 // Process the overlapping region
201- var processed = 0 ;
202201 var overlapChunkCount = M . Min ( selfSpan . Length , otherSpan . Length ) ;
203202 {
203+ var processed = 0 ;
204204 if ( Vector . IsHardwareAccelerated && overlapChunkCount >= Vector < ulong > . Count )
205205 {
206206 var selfVectorSpan = MemoryMarshal . Cast < ulong , Vector < ulong > > ( selfSpan ) ;
@@ -229,6 +229,7 @@ public void UnionWith(IReadOnlyBitSet other, BitSet results)
229229 var remainingOtherSpan = otherSpan [ overlapChunkCount ..] ;
230230 var remainingResultsSpan = resultsSpan [ overlapChunkCount ..] ;
231231 {
232+ var processed = 0 ;
232233 if ( Vector . IsHardwareAccelerated && remainingOtherSpan . Length >= Vector < ulong > . Count )
233234 {
234235 var otherVectorSpan = MemoryMarshal . Cast < ulong , Vector < ulong > > ( remainingOtherSpan ) ;
@@ -244,8 +245,8 @@ public void UnionWith(IReadOnlyBitSet other, BitSet results)
244245
245246 for ( var i = processed ; i < remainingOtherSpan . Length ; i ++ )
246247 {
247- var otherChunk = otherSpan [ i ] ;
248- resultsSpan [ i ] = otherChunk ;
248+ var otherChunk = remainingOtherSpan [ i ] ;
249+ remainingResultsSpan [ i ] = otherChunk ;
249250 }
250251 }
251252
@@ -271,8 +272,8 @@ public void IntersectWith(IReadOnlyBitSet other, BitSet results)
271272 var resultsSpan = results . chunks . AsSpan ( ) ;
272273
273274 // Process the overlapping region
274- var processed = 0 ;
275275 {
276+ var processed = 0 ;
276277 if ( Vector . IsHardwareAccelerated && resultChunkCount >= Vector < ulong > . Count )
277278 {
278279 var selfVectorSpan = MemoryMarshal . Cast < ulong , Vector < ulong > > ( selfSpan ) ;
@@ -314,14 +315,14 @@ public void ExceptWith(IReadOnlyBitSet other, BitSet results)
314315 var selfSpan = Chunks ;
315316 var otherSpan = other . Chunks ;
316317
317- var resultChunkCount = M . Max ( selfSpan . Length , otherSpan . Length ) ;
318+ var resultChunkCount = selfSpan . Length ;
318319 results . EnsureCapacity ( resultChunkCount ) ;
319320 var resultsSpan = results . chunks . AsSpan ( ) ;
320321
321322 // Process the overlapping region
322- var processed = 0 ;
323323 var overlapChunkCount = M . Min ( selfSpan . Length , otherSpan . Length ) ;
324324 {
325+ var processed = 0 ;
325326 if ( Vector . IsHardwareAccelerated && overlapChunkCount >= Vector < ulong > . Count )
326327 {
327328 var selfVectorSpan = MemoryMarshal . Cast < ulong , Vector < ulong > > ( selfSpan ) ;
@@ -350,6 +351,7 @@ public void ExceptWith(IReadOnlyBitSet other, BitSet results)
350351 var remainingSelfSpan = selfSpan [ overlapChunkCount ..] ;
351352 var remainingResultsSpan = resultsSpan [ overlapChunkCount ..] ;
352353 {
354+ var processed = 0 ;
353355 if ( Vector . IsHardwareAccelerated && remainingSelfSpan . Length >= Vector < ulong > . Count )
354356 {
355357 var selfVectorSpan = MemoryMarshal . Cast < ulong , Vector < ulong > > ( remainingSelfSpan ) ;
@@ -365,8 +367,8 @@ public void ExceptWith(IReadOnlyBitSet other, BitSet results)
365367
366368 for ( var i = processed ; i < remainingSelfSpan . Length ; i ++ )
367369 {
368- var selfChunk = otherSpan [ i ] ;
369- resultsSpan [ i ] = selfChunk ;
370+ var selfChunk = remainingSelfSpan [ i ] ;
371+ remainingResultsSpan [ i ] = selfChunk ;
370372 }
371373 }
372374
@@ -400,9 +402,9 @@ public void SymmetricExceptWith(IReadOnlyBitSet other, BitSet results)
400402 var resultsSpan = results . chunks . AsSpan ( ) ;
401403
402404 // Process the overlapping region
403- var processed = 0 ;
404405 var overlapChunkCount = M . Min ( selfSpan . Length , otherSpan . Length ) ;
405406 {
407+ var processed = 0 ;
406408 if ( Vector . IsHardwareAccelerated && overlapChunkCount >= Vector < ulong > . Count )
407409 {
408410 var selfVectorSpan = MemoryMarshal . Cast < ulong , Vector < ulong > > ( selfSpan ) ;
@@ -431,6 +433,7 @@ public void SymmetricExceptWith(IReadOnlyBitSet other, BitSet results)
431433 var remainingOtherSpan = otherSpan [ overlapChunkCount ..] ;
432434 var remainingResultsSpan = resultsSpan [ overlapChunkCount ..] ;
433435 {
436+ var processed = 0 ;
434437 if ( Vector . IsHardwareAccelerated && remainingOtherSpan . Length >= Vector < ulong > . Count )
435438 {
436439 var otherVectorSpan = MemoryMarshal . Cast < ulong , Vector < ulong > > ( remainingOtherSpan ) ;
@@ -446,8 +449,8 @@ public void SymmetricExceptWith(IReadOnlyBitSet other, BitSet results)
446449
447450 for ( var i = processed ; i < remainingOtherSpan . Length ; i ++ )
448451 {
449- var otherChunk = otherSpan [ i ] ;
450- resultsSpan [ i ] = otherChunk ;
452+ var otherChunk = remainingOtherSpan [ i ] ;
453+ remainingResultsSpan [ i ] = otherChunk ;
451454 }
452455 }
453456
@@ -479,9 +482,9 @@ public bool IsSupersetOf(IReadOnlyBitSet other)
479482 var otherSpan = other . Chunks ;
480483
481484 // Process the overlapping region
482- var processed = 0 ;
483485 var overlapChunkCount = M . Min ( selfSpan . Length , otherSpan . Length ) ;
484486 {
487+ var processed = 0 ;
485488 if ( Vector . IsHardwareAccelerated && overlapChunkCount >= Vector < ulong > . Count )
486489 {
487490 var selfVectorSpan = MemoryMarshal . Cast < ulong , Vector < ulong > > ( selfSpan ) ;
@@ -547,9 +550,9 @@ public bool Overlaps(IReadOnlyBitSet other)
547550 var otherSpan = other . Chunks ;
548551
549552 // Process the overlapping region
550- var processed = 0 ;
551553 var overlapChunkCount = M . Min ( selfSpan . Length , otherSpan . Length ) ;
552554 {
555+ var processed = 0 ;
553556 if ( Vector . IsHardwareAccelerated && overlapChunkCount >= Vector < ulong > . Count )
554557 {
555558 var selfVectorSpan = MemoryMarshal . Cast < ulong , Vector < ulong > > ( selfSpan ) ;
@@ -596,9 +599,9 @@ public bool SetEquals(IReadOnlyBitSet other)
596599 }
597600
598601 // Process the overlapping region
599- var processed = 0 ;
600602 var overlapChunkCount = M . Min ( selfSpan . Length , otherSpan . Length ) ;
601603 {
604+ var processed = 0 ;
602605 if ( Vector . IsHardwareAccelerated && overlapChunkCount >= Vector < ulong > . Count )
603606 {
604607 var selfVectorSpan = MemoryMarshal . Cast < ulong , Vector < ulong > > ( selfSpan ) ;
0 commit comments