bf: rename to bitfield
parent
71224ad17c
commit
ae866260c8
|
@ -1,7 +1,7 @@
|
|||
module bf
|
||||
module bitfield
|
||||
|
||||
/*
|
||||
bf (BitField) is a module (shared library for V programming language) for
|
||||
bitfield is a module for
|
||||
manipulating arrays of bits, i.e. series of zeroes and ones spread across an
|
||||
array of storage units (unsigned 32-bit integers).
|
||||
|
||||
|
@ -20,7 +20,7 @@ mut:
|
|||
field []u32
|
||||
}
|
||||
|
||||
// helper functions
|
||||
// helper functions
|
||||
const (
|
||||
SLOT_SIZE = 32
|
||||
)
|
||||
|
@ -63,19 +63,19 @@ fn min(input1 int, input2 int) int {
|
|||
|
||||
fn bitnslots(length int) int {
|
||||
return (length - 1) / SLOT_SIZE + 1
|
||||
}
|
||||
}
|
||||
|
||||
fn cleartail(instance mut BitField) {
|
||||
tail := instance.size % SLOT_SIZE
|
||||
if tail != 0 {
|
||||
// create a mask for the tail
|
||||
// create a mask for the tail
|
||||
mask := u32((1 << tail) - 1)
|
||||
// clear the extra bits
|
||||
// clear the extra bits
|
||||
instance.field[bitnslots(instance.size) - 1] = instance.field[bitnslots(instance.size) - 1] & mask
|
||||
}
|
||||
}
|
||||
|
||||
// public functions
|
||||
// public functions
|
||||
|
||||
// str2bf() converts a string of characters ('0' and '1') to a bit
|
||||
// array. Any character different from '0' is treated as '1'.
|
||||
|
@ -110,7 +110,7 @@ pub fn (input BitField) string() string {
|
|||
|
||||
pub fn new(size int) BitField {
|
||||
output := BitField{
|
||||
size: size
|
||||
size: size
|
||||
//field: *u32(calloc(bitnslots(size) * SLOT_SIZE / 8))
|
||||
field: [u32(0); bitnslots(size)]
|
||||
}
|
||||
|
@ -383,7 +383,7 @@ pub fn (haystack BitField) pos(needle BitField) int {
|
|||
return -1
|
||||
}
|
||||
|
||||
// slice() return a sub-array of bits between 'start_bit_nr' (included) and
|
||||
// slice() return a sub-array of bits between 'start_bit_nr' (included) and
|
||||
// 'end_bit_nr' (excluded)
|
||||
|
||||
pub fn (input BitField) slice(_start int, _end int) BitField {
|
|
@ -1,4 +1,4 @@
|
|||
import bf
|
||||
import bitfield
|
||||
|
||||
import rand
|
||||
import time
|
Loading…
Reference in New Issue