/**
         * Increment the iterator (used by the boost iterator base class).
         */
        public void increment()
        {
            //BitSet set_mask = new BitSet(_m.getSetBits());
            BitSet set_mask = _m.getSetBits().getBitSetObject();
            int    i        = set_mask.nextClearBit(0);

            while (i < _ap_set.size())
            {
                if (_cur_e.get(i) == false)
                {
                    _cur_e.set(i, true);
                    return;
                }
                else
                {
                    _cur_e.set(i, false);
                    i = set_mask.nextClearBit(i + 1);
                }
            }

            // overflow -> end
            _end_marker = true;
        }