view regexParser/bitVector.cc @ 175:3be0fbcd4b52 pairPro

implement createTransitionGenerator
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Dec 2015 20:27:26 +0900
parents 3bf2c6d6d53e
children dbe004d03ef0
line wrap: on
line source

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "bitVector.h"

BitVectorPtr createBitVector(NodePtr n) {
    BitVectorPtr bi = allocateBitVector();
    bitSet(bi,n->nodeNumber);
    return bi;
}

const BitVectorPtr allocateBitVector() {
    BitVectorPtr bi = (BitVectorPtr)malloc(sizeof(BitVector));
    bi->bitContainer = 0;
    return bi;
}

void bitSet(BitVectorPtr bi, int bitSetPosition) {
    unsigned long tmp = 1 << (bitSetPosition % BITBLOCK);
    bi->bitContainer = bi->bitContainer | tmp;
    return;
}

void bitPrint(BitVectorPtr bi) {
    unsigned long vec = bi->bitContainer;
    for (int j = 0; j < BITBLOCK; j++) {
        putchar((vec & 1) ? '1':'0');
        vec >>= 1;
    }
    printf("\n");
}