Exemplo n.º 1
0
	void put() const
	{
		putSub();
		if (freqTbl.empty()) return;
		const uint32_t compSize = (uint32_t)vec.size();
		for (size_t i = 0; i < freqTbl.size(); i++) {
			printf("freqTbl[%2d] = %8d(%5.2f%%, %5.2f%%)\n", (int)i, freqTbl[i], freqTbl[i] * 100.0 / compSize, freqTbl[i] * encTbl[i].len * 100.0 / bitSize_);
		}
	}
Exemplo n.º 2
0
    /**
     * Perform several algorithmic steps (or less)
     * @param steps on entry: requested number of steps, on exit: actual number of steps
     *        -1 on exit means an error
     */
    void solve(long long& steps) {
        int count = -1;
        while (true) {
            count++;
            if (count >= steps)
                break;
            if (mSubs.empty()) {
                steps = count;
                break;
            }
            Sub s = getSub();
            mHandler(mIncumbent, s);
            int n = s.mBox.mDim;
            Box<FT> lb(n), rb(n);
            BoxUtils::divideByLongestEdge(s.mBox, lb, rb);
            Sub ls(lb);
            Sub rs(rb);
            putSub(ls);
            putSub(rs);

        }
    }
Exemplo n.º 3
0
 /**
  * Initialize the list of subproblems
  * @param sub
  */
 void setInitialSub(Sub& sub) {
     putSub(sub);
 }