lib: rename `standard` as `core`
[nit.git] / lib / standard / bitset.nit
diff --git a/lib/standard/bitset.nit b/lib/standard/bitset.nit
deleted file mode 100644 (file)
index c5ed9df..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-# This file is part of NIT (http://www.nitlanguage.org).
-#
-# Copyright 2014 Julien Pagès <julien.pages@lirmm.fr>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Services to handle BitSet
-module bitset
-
-import collection
-private import math
-
-in "C header" `{
-       #include <assert.h>
-`}
-
-# Add support of binary operations related to binary level of Integer
-# For compatibility reasons, xor, and, or methods are still in the `math` module.
-redef class Int
-
-       # Sets the i-bit of self to the given `value`
-       #
-       #        assert 11.setbit(0, 0) == 10
-       #        assert 10.setbit(0, 1) == 11
-       fun setbit(index: Int, value: Int): Int `{
-               assert(index >= 0 && index < 32);
-
-               if(value == 1)
-                       return self | (1 << index);
-               else
-                       return self & ~(1 << index);
-       `}
-
-       # Returns the i-bit value of `self`
-       #
-       #        assert 10.getbit(0) == 0
-       #        assert 10.getbit(3) == 1
-       fun getbit(index: Int): Int `{
-               assert(index >= 0 && index < 32);
-
-               int op = 1 << index;
-
-               if((self & op) == 0)
-                       return 0;
-               else
-                       return 1;
-       `}
-
-       # Give a binary representation of self Integer
-       fun bits: Array[Int]
-       do
-               var bits = new Array[Int].with_capacity(32)
-
-               for i in [0..32[
-               do
-                       bits[i] = getbit(i)
-               end
-
-               return bits
-       end
-
-       # Returns the number of bits of specified value (0 or 1) in `self`
-       #
-       #        assert 10.number_bits(1) == 2
-       #        assert 10.number_bits(0) == 30
-       fun number_bits(value: Int): Int `{
-               assert(value == 0 || value == 1);
-
-               long int bound = 1L << 31;
-               int count = 0;
-               long int i;
-
-               if(value == 1)
-               {
-                       for(i=bound; i>0; i/=2)
-                       {
-                               if(self & i)
-                                       count++;
-                       }
-               }
-               else
-               {
-                       for(i=bound; i>0; i/=2)
-                       {
-                               if(!(self & i))
-                                       count++;
-                       }
-               }
-               return count;
-       `}
-
-       # Returns the position of the highest bit set to 1 in `self`
-       #
-       # The rightmost bit is at position 0.
-       #
-       #        assert 10.highest_bit == 3
-       #        assert 1.highest_bit == 0
-       fun highest_bit: Int `{
-               long int msb = 1L << 31;
-               int pos = 31;
-
-               while(msb > 0 && !(self & msb))
-               {
-                       msb /= 2;
-                       pos--;
-               }
-
-               return pos;
-       `}
-end