@@ -440,75 +440,6 @@ void ewah_xor(
440440 out -> bit_size = max_size (ewah_i -> bit_size , ewah_j -> bit_size );
441441}
442442
443- void ewah_or (
444- struct ewah_bitmap * ewah_i ,
445- struct ewah_bitmap * ewah_j ,
446- struct ewah_bitmap * out )
447- {
448- struct rlw_iterator rlw_i ;
449- struct rlw_iterator rlw_j ;
450- size_t literals ;
451-
452- rlwit_init (& rlw_i , ewah_i );
453- rlwit_init (& rlw_j , ewah_j );
454-
455- while (rlwit_word_size (& rlw_i ) > 0 && rlwit_word_size (& rlw_j ) > 0 ) {
456- while (rlw_i .rlw .running_len > 0 || rlw_j .rlw .running_len > 0 ) {
457- struct rlw_iterator * prey , * predator ;
458-
459- if (rlw_i .rlw .running_len < rlw_j .rlw .running_len ) {
460- prey = & rlw_i ;
461- predator = & rlw_j ;
462- } else {
463- prey = & rlw_j ;
464- predator = & rlw_i ;
465- }
466-
467- if (predator -> rlw .running_bit ) {
468- ewah_add_empty_words (out , 0 ,
469- predator -> rlw .running_len );
470- rlwit_discard_first_words (prey ,
471- predator -> rlw .running_len );
472- rlwit_discard_first_words (predator ,
473- predator -> rlw .running_len );
474- } else {
475- size_t index = rlwit_discharge (prey , out ,
476- predator -> rlw .running_len , 0 );
477- ewah_add_empty_words (out , 0 ,
478- predator -> rlw .running_len - index );
479- rlwit_discard_first_words (predator ,
480- predator -> rlw .running_len );
481- }
482- }
483-
484- literals = min_size (
485- rlw_i .rlw .literal_words ,
486- rlw_j .rlw .literal_words );
487-
488- if (literals ) {
489- size_t k ;
490-
491- for (k = 0 ; k < literals ; ++ k ) {
492- ewah_add (out ,
493- rlw_i .buffer [rlw_i .literal_word_start + k ] |
494- rlw_j .buffer [rlw_j .literal_word_start + k ]
495- );
496- }
497-
498- rlwit_discard_first_words (& rlw_i , literals );
499- rlwit_discard_first_words (& rlw_j , literals );
500- }
501- }
502-
503- if (rlwit_word_size (& rlw_i ) > 0 )
504- rlwit_discharge (& rlw_i , out , ~0 , 0 );
505- else
506- rlwit_discharge (& rlw_j , out , ~0 , 0 );
507-
508- out -> bit_size = max_size (ewah_i -> bit_size , ewah_j -> bit_size );
509- }
510-
511-
512443#define BITMAP_POOL_MAX 16
513444static struct ewah_bitmap * bitmap_pool [BITMAP_POOL_MAX ];
514445static size_t bitmap_pool_size ;
0 commit comments