maxpre 0.2.5

Rust bindings for the (MO-)MaxSAT preprocessor MaxPre
Documentation
#ifndef MAXPP_LOG_HPP
#define MAXPP_LOG_HPP

#include <iostream>
#include <cstdint>

#include "timer.hpp"

namespace maxPreprocessor {
class LogT {
public:
	int rClauses, rVariables, rLiterals, rLabels;
	LogT();
	void print(std::ostream& out);
};

class Log {
public:
	enum Technique {none, BCE, UP, BVE, SE, SSR, SLE, BCR, SIE, EE, BVA, GSLE, FLP, UH, LS, AM1, TMS, BBTMS, LRED, CRED, MRED, URED, HARD, FLE};
	std::vector<double> eTime;
	std::vector<double> tTimeLimit;
	std::vector<Technique> askHistory;
	const double infTime = 1e9;
	double toReallocate;
	double timeLimit;
	Technique activeTechnique;
	Timer totalTimer;
	std::vector<LogT> tLog;
	std::vector<Timer> tTimer;
	int gatesExtracted;
	int labelsMatched;
	int binaryCoresFound;
	Log();
	Technique charToTechnique(char t);
	void startTechnique(Technique t);
	void stopTechnique(Technique t);
	void removeClause(int c);
	void removeVariable(int c);
	void removeLiteral(int c);
	void removeLabel(int c);
	void print(std::ostream& out);
	double getTime(Technique t);
	void startTimer();
	void stopTimer();
	void timePlan(double timeLimit_, std::string useTechniques);
	bool requestTime(Technique t);
	double allocatedTimeLeft(Technique t);
	void newRequest(Technique t);
	void neverAgain(char t);
	bool isTimeLimit();
	void printTime(std::ostream& out);
	void printInfo(std::ostream& out);
	std::vector<uint64_t> initialWeightRange;
	std::vector<uint64_t> weightRange;
};
}
#endif