Example #1
0
File: symbol.hpp Project: kif/FLIF
    SymbolChance() { // : bit_exp(bitsin-1), bit_mant(bitsin) {
        bitZero().set(ZERO_CHANCE);
        bitSign().set(SIGN_CHANCE);
//        printf("bits: %i\n",bits);
        for (int i=0; i<bits-1; i++) {
            bitExp(i).set(EXP_CHANCES[i]);
        }
        for (int i=0; i<bits; i++) {
            bitMant(i).set(MANT_CHANCES[i]);
        }
    }
Example #2
0
File: symbol.hpp Project: kif/FLIF
 void info_symbol(int n) const {
     // TODO: move implementation to separate source file to have a chance to use
     //       `using namespace util` without consequences
     maniac::util::indent(n); printf("ZERO:   "); bitZero().info_bitchance();
     maniac::util::indent(n); printf("SIGN:   "); bitSign().info_bitchance();
     for (int i=0; i<bits-1; i++) {
         maniac::util::indent(n); printf("EXP % 2i: ", i); bitExp(i).info_bitchance();
     }
     for (int i=0; i<bits; i++) {
         maniac::util::indent(n); printf("MNT % 2i: ", i); bitMant(i).info_bitchance();
     }
 }
Example #3
0
 BitChance inline &bit(SymbolChanceBitType typ, int i = 0) {
     switch (typ) {
     default:
     case BIT_ZERO:
         return bitZero();
     case BIT_SIGN:
         return bitSign();
     case BIT_EXP:
         return bitExp(i);
     case BIT_MANT:
         return bitMant(i);
     }
 }