Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages | Examples

vallstAPI.h File Reference

#include <stdint.h>
#include <stdbool.h>
#include <limits.h>
#include <stdio.h>
#include <time.h>

Go to the source code of this file.

Data Structures

struct  VallstFormulaNames_
 A dynamic array of type VallstFormulaName. More...

Formula types

#define VallstFormulaType_clause   (VallstLiteral_MAX-1)
#define VallstFormulaType_equivalence   (VallstLiteral_MAX-5)
#define VallstFormulaType_negEquivalence   (VallstLiteral_MAX-4)
#define VallstFormulaType_moreThan   (VallstLiteral_MAX-6)
#define VallstFormulaType_moreThanDis   (VallstLiteral_MAX-7)
#define VallstFormulaType_moreThanMult   (VallstLiteral_MAX-8)
#define VallstFormulaType_ggcdiTour   (VallstLiteral_MAX-9)
#define VallstFormulaType_erased   (VallstLiteral_MAX-10)

Verbosity masks

#define VallstVerbosity_varExtensionWarning   ( (VallstVerbosityVector)1 << 0 )
#define VallstVerbosity_emptyClauseWarning   ( (VallstVerbosityVector)1 << 1 )
#define VallstVerbosity_theoryMemNotice   ( (VallstVerbosityVector)1 << 2 )
#define VallstVerbosity_searchDetails   ( (VallstVerbosityVector)1 << 3 )
#define VallstVerbosity_printModel   ( (VallstVerbosityVector)1 << 4 )
#define VallstVerbosity_parseError   ( (VallstVerbosityVector)1 << 5 )
#define VallstVerbosity_lesserError   ( (VallstVerbosityVector)1 << 6 )
#define VallstVerbosity_printResult   ( (VallstVerbosityVector)1 << 7 )
#define VallstVerbosity_varsSet   ( (VallstVerbosityVector)1 << 8 )
#define VallstVerbosity_printSeed   ( (VallstVerbosityVector)1 << 9 )
#define VallstVerbosity_time   ( (VallstVerbosityVector)1 << 10 )
#define VallstVerbosity_hashInfo   ( (VallstVerbosityVector)1 << 11 )
#define VallstVerbosity_printSettings   ( (VallstVerbosityVector)1 << 12 )
#define VallstVerbosity_printPrologues   ( (VallstVerbosityVector)1 << 13 )
#define VallstVerbosity_printEstimatedPrologues   ( (VallstVerbosityVector)1 << 14 )
#define VallstVerbosity_equConversionNotice   ( (VallstVerbosityVector)1 << 15 )
#define VallstVerbosity_nonAxInfo   ( (VallstVerbosityVector)1 << 16 )
#define VallstVerbosity_optimizeInfo   ( (VallstVerbosityVector)1 << 17 )
#define VallstVerbosity_redundancyNotice   ( (VallstVerbosityVector)1 << 18 )
#define VallstVerbosity_lesserHashError   ( (VallstVerbosityVector)1 << 19 )
#define VallstVerbosity_simpProgressDetails   ( (VallstVerbosityVector)1 << 22 )
#define VallstVerbosity_failedProofImprovementNotice   ( (VallstVerbosityVector)1 << 23 )
#define VallstVerbosity_proofImprovementDetails   ( (VallstVerbosityVector)1 << 24 )
#define VallstVerbosity_hashDetails   ( (VallstVerbosityVector)1 << 25 )
#define VallstVerbosity_restartDetails   ( (VallstVerbosityVector)1 << 26 )
#define VallstVerbosity_progressDetails   ( (VallstVerbosityVector)1 << 27 )
#define VallstVerbosity_branchingDetails   ( (VallstVerbosityVector)1 << 28 )
#define VallstVerbosity_midairPruneNotice   ( (VallstVerbosityVector)1 << 29 )
#define VallstVerbosity_midairPruneDetails   ( (VallstVerbosityVector)1 << 30 )
#define VallstVerbosity_ignoredContradictionNotice   ( (VallstVerbosityVector)1 << 31 )

Problem types

#define VallstProblemType_default   0
#define VallstProblemType_undef   1
#define VallstProblemType_atsp   2
#define VallstProblemType_tsp   3
#define VallstProblemType_pb   4

Defines

#define VallstLiteral_MAX   UINT32_MAX
#define VallstFormulaN_MAX   UINT32_MAX
#define VallstLiteralN_noPrologueNrOfVars   (VallstLiteral_MAX)
#define VallstLiteralN_parseError   (VallstLiteral_MAX-1)
#define VallstLiteralN_fileError   (VallstLiteral_MAX-2)
#define VallstFormulaN_undef   VallstFormulaN_MAX
#define vallst_ggcditEdgeToLit(i, j, dim)   ( 2 * ( ((dim)-1) * (i) + (j) + ((j)<(i)) ) )
#define vallst_ggcditLitToEdge(p, dim, i, j)
#define vallst_ggcditLitToEdgeFst(p, dim)   ( ( (p)/2 - 1 ) / ((dim)-1) )

Typedefs

typedef VallstInstance_ VallstInstance
typedef uint32_t VallstLiteral
typedef VallstLiteral VallstLiteralN
typedef uint32_t VallstFormulaN
typedef VallstLiteralN VallstFormulaType
typedef uint64_t VallstVerbosityVector
typedef void * VallstFormulaName
typedef VallstFormulaNames_ VallstFormulaNames

Enumerations

enum  VallstResult {
  VallstResult_proofOfFalse,
  VallstResult_model,
  VallstResult_timeLimitExceeded,
  VallstResult_interupt,
  VallstResult_notEnoughMemory,
  VallstResult_fileError,
  VallstResult_parseError,
  VallstResult_proofOfFalseGivenSearchAssumptions,
  VallstResult_modelOfSearchAssumptions,
  VallstResult_other,
  VallstResult_otherIntMax = INT_MAX
}
enum  VallstCallbackResult {
  VallstCallbackResult_continue,
  VallstCallbackResult_interupt
}

Functions

VallstInstancevallst_newInstance (VallstLiteralN nrOfVars, VallstFormulaN nrOf3ClausesEstimate, VallstFormulaN nrOfLitOccsEstimate)
bool vallst_propagateNrOf3ClausesEstimate (VallstInstance *vi)
bool vallst_propagateNrOfLitOccsEstimate (VallstInstance *vi)
void vallst_setFstNrOfLevelsAllocSize (VallstInstance *vi, VallstLiteralN size)
void vallst_setMaxHashLoad (VallstInstance *vi, double maxLoad)
void vallst_setNonAxChunkSizeAxDep (VallstInstance *vi, double value)
void vallst_setNonAxChunkSizeConst (VallstInstance *vi, VallstFormulaN value)
void vallst_setNonAxChunkSizeVarDep (VallstInstance *vi, double value)
void vallst_setNrOf3ClausesEstimate (VallstInstance *vi, VallstFormulaN pNrOf3Clauses)
void vallst_setNrOfFreeChunksCap (VallstInstance *vi, unsigned int cap)
void vallst_setNrOfLitOccsEstimate (VallstInstance *vi, VallstFormulaN pNrOfLitOccs)
VallstResult vallst_addAxiom (VallstInstance *vi, VallstLiteral *axiom, VallstLiteralN size, VallstFormulaType type)
VallstResult vallst_addConsequence (VallstInstance *vi, VallstLiteral *nonAxiom, VallstLiteralN size, VallstFormulaType type)
VallstResult vallst_addNamedAxiom (VallstInstance *vi, VallstLiteral *axiom, VallstLiteralN size, VallstFormulaType type, VallstFormulaName *namePtr)
VallstResult vallst_alterAxiomIncMT (VallstInstance *vi, VallstFormulaName name, VallstLiteralN c)
VallstResult vallst_alterAxiomIncMTMKeepAboves (VallstInstance *vi, VallstFormulaName name, VallstLiteralN c)
bool vallst_extendNrOfVars (VallstInstance *vi, VallstLiteralN nrOfVars)
VallstFormulaType vallst_formulaType (VallstFormulaName formulaName)
VallstLiteralN vallst_getConst (VallstFormulaName name)
int vallst_getFullLitValue (VallstInstance *vi, VallstLiteral p)
bool vallst_getKeepAboves (VallstInstance *vi)
bool vallst_getLitValue (VallstInstance *vi, VallstLiteral p)
VallstLiteralN vallst_getNrOfVarsAllocated (VallstInstance *vi)
VallstLiteralN vallst_getTotalSum (VallstFormulaName name)
bool vallst_isConstraint (VallstFormulaName name)
bool vallst_lessThanEqMultToMoreThanMult (VallstLiteral *a, VallstLiteralN size)
bool vallst_lessThanEqToMoreThan (VallstLiteral *a, VallstLiteralN size)
VallstLiteral vallst_neg (VallstLiteral p)
void vallst_setKeepAboves (VallstInstance *vi, bool b)
void vallst_setStartConst (VallstInstance *vi, VallstLiteralN c)
VallstLiteralN vallst_sumOpenTrue (VallstInstance *vi, VallstFormulaName name)
VallstLiteralN vallst_sumTrue (VallstInstance *vi, VallstFormulaName name)
VallstLiteralN vallst_getAbortThreshold (VallstInstance *vi)
VallstLiteralN vallst_getLevel (VallstInstance *vi)
unsigned int vallst_getNoAbortTime (VallstInstance *vi)
bool vallst_makeCurrentAssumptionsSuggestions (VallstInstance *vi)
VallstResult vallst_makeSearchAssumption (VallstInstance *vi, VallstLiteral p)
void vallst_moveToLevel0 (VallstInstance *vi)
void vallst_removeAssumptions (VallstInstance *vi)
void vallst_removeLastAssumption (VallstInstance *vi)
VallstResult vallst_search (VallstInstance *vi)
void vallst_setAbortThreshold (VallstInstance *vi, VallstLiteralN n)
void vallst_setBufferResetFrequency (VallstInstance *vi, VallstFormulaN freq)
void vallst_setBufferSizeConst (VallstInstance *vi, VallstFormulaN value)
void vallst_setBufferSizeNonAxDep (VallstInstance *vi, double value)
void vallst_setBufferSizeVarDep (VallstInstance *vi, double value)
void vallst_setCCLeeway (VallstInstance *vi, double ccLeeway)
void vallst_setCreatePhantomConflictClauses (VallstInstance *vi, bool b)
void vallst_setFirstRestart (VallstInstance *vi, VallstFormulaN n)
void vallst_setGoodClauseSize (VallstInstance *vi, VallstFormulaN size)
void vallst_setGoodLevel (VallstInstance *vi, VallstFormulaN size)
void vallst_setHeurAxSize (VallstInstance *vi, VallstFormulaN size)
void vallst_setImproveProofLevel (VallstInstance *vi, VallstLiteralN lvl)
void vallst_setKeepCCMetaMetaThreshold (VallstInstance *vi, VallstLiteralN threshold)
void vallst_setKeepConflictClauseLengthThreshold (VallstInstance *vi, VallstLiteralN threshold)
void vallst_setLitPairStrFunc (VallstInstance *vi, double(*litPairStrFunc)(double *varStrPtr), long double(*litPairStrFuncl)(long double *varStrPtr))
void vallst_setLooseTheorySizeLeeway (VallstInstance *vi, double leeway)
void vallst_setNoAbortTime (VallstInstance *vi, unsigned int secs)
void vallst_setTightTheorySizeLeeway (VallstInstance *vi, double leeway)
void vallst_setLooseTheoryMetaSizeLeeway (VallstInstance *vi, double leeway)
void vallst_setTightTheoryMetaSizeLeeway (VallstInstance *vi, double leeway)
void vallst_setLooseTheorySizeLeewayKeep (VallstInstance *vi, double leeway)
void vallst_setTightTheorySizeLeewayKeep (VallstInstance *vi, double leeway)
void vallst_setLooseTimeLimitBase (VallstInstance *vi, unsigned int k)
void vallst_setLooseTimeLimitMod (VallstInstance *vi, unsigned int k)
void vallst_setTightTimeLimitBase (VallstInstance *vi, unsigned int k)
void vallst_setTightTimeLimitMod (VallstInstance *vi, unsigned int k)
void vallst_setMaxSkippedSimps (VallstInstance *vi, VallstFormulaN size)
void vallst_setMetaMetaPruneEnd (VallstInstance *vi, VallstLiteralN end)
void vallst_setMetaMetaPruneFrequency (VallstInstance *vi, VallstFormulaN freq)
void vallst_setMetaMetaPruneStart (VallstInstance *vi, VallstLiteralN start)
void vallst_setMetaPruneEnd (VallstInstance *vi, VallstLiteralN end)
void vallst_setMetaPruneFrequency (VallstInstance *vi, VallstFormulaN freq)
void vallst_setMetaPruneStart (VallstInstance *vi, VallstLiteralN start)
void vallst_setNextBatchSizeConst (VallstInstance *vi, double value)
void vallst_setPositiveHeurAxSign (VallstInstance *vi, bool b)
void vallst_setPositiveSign (VallstInstance *vi, bool b)
void vallst_setRandomBranchSign (VallstInstance *vi, unsigned int prob)
void vallst_setRandomFormulaLit (VallstInstance *vi, unsigned int prob)
void vallst_setRemoveTmpCauses (VallstInstance *vi, bool b)
void vallst_setResetBuffersBetweenSearches (VallstInstance *vi, bool b)
void vallst_setRestartFunc (VallstInstance *vi, VallstFormulaN(*restartSizeFunc)(VallstInstance *vi, VallstFormulaN lastSize, VallstFormulaN nrOfRestarts))
bool vallst_setRestartPredefFunc (VallstInstance *vi, unsigned char f)
void vallst_setRestartProlongCap (VallstInstance *vi, double cap)
void vallst_setRestartStart (VallstInstance *vi, VallstFormulaN size)
void vallst_setStartWithBinFstBcp (VallstInstance *vi, bool b)
void vallst_setStrengthLeeway (VallstInstance *vi, double leeway)
void vallst_setStrengthLeewayFormula (VallstInstance *vi, double leeway)
void vallst_setStrengthLeewaySize (VallstInstance *vi, VallstFormulaN leewaySize)
void vallst_setStrengthLeewaySizeFormula (VallstInstance *vi, VallstFormulaN leewaySize)
void vallst_setTightCCLeeway (VallstInstance *vi, double leeway)
void vallst_setTightKeepCCThreshold (VallstInstance *vi, VallstLiteralN threshold)
void vallst_setTightMetaMetaPruneEnd (VallstInstance *vi, VallstLiteralN end)
void vallst_setTightMetaMetaPruneStart (VallstInstance *vi, VallstLiteralN start)
void vallst_setTightMetaPruneStart (VallstInstance *vi, VallstLiteralN start)
void vallst_setUseDoppelganger (VallstInstance *vi, bool b)
bool vallst_getSubstEqus (VallstInstance *vi)
void vallst_setConvert3ClausesIntoEqus (VallstInstance *vi, bool b)
void vallst_setSimpTimeLimitFast (VallstInstance *vi, unsigned int ms)
void vallst_setSimpTimeLimitSlow (VallstInstance *vi, unsigned int ms)
bool vallst_setSimpSetting (VallstInstance *vi, VallstLiteralN level, VallstLiteralN sublevel, VallstLiteralN nrOfVars, VallstLiteralN nrOfIterations)
bool vallst_setSimpSettingSlow (VallstInstance *vi, VallstLiteralN level, VallstLiteralN sublevel, VallstLiteralN nrOfVars, VallstLiteralN nrOfIterations)
VallstResult vallst_simplify (VallstInstance *vi)
VallstResult vallst_simplifySlow (VallstInstance *vi)
void vallst_setSubstEqus (VallstInstance *vi, bool b)
unsigned char vallst_substEqus (VallstInstance *vi)
bool vallst_closeInTheoryFile (VallstInstance *vi)
FILE * vallst_getInTheoryFile (VallstInstance *vi)
char * vallst_getInTheoryFileName (VallstInstance *vi)
unsigned char vallst_getProblemType (VallstInstance *vi)
VallstResult vallst_parseCommandLineOptions (VallstInstance *vi, int argC, char **argV)
VallstResult vallst_readInTheoryBody (VallstInstance *vi, VallstLiteralN pNrOfVars, VallstFormulaName *(*newNamePtrFunc)(void *newNamePtrFuncArg, VallstInstance *vi, bool *errorFlag), void *newNamePtrFuncArg)
VallstLiteralN vallst_readInTheoryHead (VallstInstance *vi)
void vallst_setIgnorePrologue (VallstInstance *vi, bool b)
void vallst_setInTheoryFile (VallstInstance *vi, FILE *f)
void vallst_setInTheoryFileName (VallstInstance *vi, char *fileName)
void vallst_setPBVarPrefixChar (VallstInstance *vi, bool b)
void vallst_setProblemType (VallstInstance *vi, unsigned char type)
void vallst_setVarMapFile (VallstInstance *vi, FILE *f)
void vallst_setVarMapFileName (VallstInstance *vi, char *fileName)
bool vallst_closeChangingSettingFile (VallstInstance *vi)
bool vallst_closeOutTheoryFile (VallstInstance *vi)
FILE * vallst_getChangingSettingFile (VallstInstance *vi)
char * vallst_getChangingSettingFileName (VallstInstance *vi)
bool vallst_getCompleteModel (VallstInstance *vi)
FILE * vallst_getOutTheoryFile (VallstInstance *vi)
char * vallst_getOutTheoryFileName (VallstInstance *vi)
bool vallst_getPrintChangingSetting (VallstInstance *vi)
bool vallst_getPrintOutTheory (VallstInstance *vi)
FILE * vallst_getResultFile (VallstInstance *vi)
char * vallst_getResultFileName (VallstInstance *vi)
VallstVerbosityVector vallst_getVerbosityVector (VallstInstance *vi)
void vallst_hashStateCheck (FILE *f, VallstInstance *vi, bool forcePrint)
bool vallst_printAllGgcditTours (FILE *f, VallstInstance *vi)
bool vallst_printChangingSetting (VallstInstance *vi)
void vallst_printChangingSettingToFile (VallstInstance *vi, FILE *file)
void vallst_printEstimatedPrologues (FILE *f, VallstInstance *vi, VallstLiteralN pNrOfVars)
bool vallst_printGgcditTour (FILE *f, VallstInstance *vi, VallstFormulaName a)
void vallst_printHashInfo (FILE *f, VallstInstance *vi)
void vallst_printModel (FILE *file, VallstInstance *vi)
void vallst_printNrOfUncheckedVars (FILE *f, VallstInstance *vi)
void vallst_printNrOfVarsSet (FILE *f, VallstInstance *vi)
void vallst_printPrologues (FILE *f, VallstInstance *vi)
void vallst_printSettings (FILE *f, VallstInstance *vi, char sep)
bool vallst_printTheory (VallstInstance *vi, VallstFormulaNames *optMax)
void vallst_printTheoryToFile (VallstInstance *vi, FILE *file, VallstFormulaNames *optMax)
void vallst_printTimePassed (FILE *f, VallstInstance *vi)
void vallst_printVallstResult (FILE *f, VallstResult result)
void vallst_setChangingSettingFile (VallstInstance *vi, FILE *f)
void vallst_setChangingSettingFileName (VallstInstance *vi, char *fileName)
void vallst_setCompleteModel (VallstInstance *vi, bool b)
void vallst_setOutTheoryFile (VallstInstance *vi, FILE *f)
void vallst_setOutTheoryFileName (VallstInstance *vi, char *fileName)
void vallst_setPrintChangingSetting (VallstInstance *vi, bool b)
void vallst_setPrintOutTheory (VallstInstance *vi, bool b)
void vallst_setResultFile (VallstInstance *vi, FILE *f)
void vallst_setResultFileName (VallstInstance *vi, char *fileName)
void vallst_setVerbosityLevel (VallstInstance *vi, unsigned int vl)
void vallst_setVerbosityVector (VallstInstance *vi, VallstVerbosityVector vv)
void vallst_setCallback (VallstInstance *vi, VallstCallbackResult(*callbackFunc)(void *callbackArg), void *callbackArg)
bool vallst_extendFormulaNameArray (VallstFormulaNames *names)
VallstFormulaNamesvallst_newFormulaNameArray (VallstFormulaN n)
bool vallst_getBreadthFstOptStrat (VallstInstance *vi)
bool vallst_maxConstraints (VallstInstance *vi, VallstFormulaNames *names, VallstFormulaN pushedConstraintPos, VallstLiteralN *constraintIncs, bool *levelCreated)
void vallst_setBreadthFstOptStrat (VallstInstance *vi, bool b)
unsigned int vallst_getSeed (VallstInstance *vi)
void vallst_setSeed (VallstInstance *vi, unsigned int seed)
void vallst_setTimeLimitInMilliSec (VallstInstance *vi, long long int milliSec, bool startFromCurrentClock)
void vallst_setTimeLimitInSec (VallstInstance *vi, unsigned int sec, bool startFromCurrentClock)


Detailed Description

Vallst's API. Vallst is a boolean constraint solver.

See API functions grouped for a list of all API functions grouped into categories.

Definition in file vallstAPI.h.


Define Documentation

#define VallstFormulaN_MAX   UINT32_MAX
 

The maximum value of the type VallstFormulaN.

Definition at line 392 of file vallstAPI.h.

#define VallstFormulaN_undef   VallstFormulaN_MAX
 

An undefined VallstFormulaN.

Examples:
vallst.c.

Definition at line 408 of file vallstAPI.h.

#define VallstLiteral_MAX   UINT32_MAX
 

The maximum value of the type VallstLiteral.

Definition at line 383 of file vallstAPI.h.

#define VallstLiteralN_fileError   (VallstLiteral_MAX-2)
 

File error.

Examples:
vallst.c.

Definition at line 405 of file vallstAPI.h.

#define VallstLiteralN_noPrologueNrOfVars   (VallstLiteral_MAX)
 

No prologue nrOfVars was present. This is not treated as an error.

Examples:
vallst.c.

Definition at line 399 of file vallstAPI.h.

#define VallstLiteralN_parseError   (VallstLiteral_MAX-1)
 

Parse error.

Examples:
vallst.c.

Definition at line 402 of file vallstAPI.h.


Typedef Documentation

typedef uint32_t VallstFormulaN
 

A type for counting formulas.

Examples:
vallst.c.

Definition at line 389 of file vallstAPI.h.

typedef void* VallstFormulaName
 

The type for names for formulas.

Examples:
vallst.c.

Definition at line 710 of file vallstAPI.h.

typedef struct VallstFormulaNames_ VallstFormulaNames
 

A dynamic array of type VallstFormulaName.

Definition at line 714 of file vallstAPI.h.

typedef VallstLiteralN VallstFormulaType
 

A type for formula formats.

Definition at line 442 of file vallstAPI.h.

typedef struct VallstInstance_ VallstInstance
 

The main structure containing everything.

Examples:
vallst.c.

Definition at line 373 of file vallstAPI.h.

typedef uint32_t VallstLiteral
 

The type for literals. 2, 3, 4, ... are literals.

(If you want you can change this to e.g. uint16_t. See note in vallstTypes.h.)

Definition at line 380 of file vallstAPI.h.

typedef VallstLiteral VallstLiteralN
 

A type for counting literals.

Examples:
vallst.c.

Definition at line 386 of file vallstAPI.h.

typedef uint64_t VallstVerbosityVector
 

Each bit in a verbosity vector decides if some particular info should be printed when appropriate. See masks for the verbosity vector below for what each bit means.

Definition at line 601 of file vallstAPI.h.


Enumeration Type Documentation

enum VallstCallbackResult
 

A result type used for callback functions.

Enumerator:
VallstCallbackResult_continue  Continue as normal.
VallstCallbackResult_interupt  Interupt and possibly save what has been achieved so far.
Examples:
vallst.c.

Definition at line 588 of file vallstAPI.h.

enum VallstResult
 

A result type used for various functions.

Enumerator:
VallstResult_proofOfFalse  A proof of false was found.
VallstResult_model  A model was found.
VallstResult_timeLimitExceeded  The time limit has been exceeded.
VallstResult_interupt  An interupt signal was received.
VallstResult_notEnoughMemory  Not enough memory could be allocated.
VallstResult_fileError  Some file error occurred.
VallstResult_parseError  A parse error occurred.
VallstResult_proofOfFalseGivenSearchAssumptions  There is no model where the extra search assumptions are true as well.
VallstResult_modelOfSearchAssumptions  Model where the extra search assumptions are true as well.
VallstResult_other  VallstResult_other* constants are for miscellaneous other results.
VallstResult_otherIntMax  VallstResult_otherIntMax ensures that the VallstResult type is large.
Examples:
vallst.c.

Definition at line 413 of file vallstAPI.h.


Copyright (C) 2004-2005 Daniel Vallstrom. See the various vallst files for license notices.

Generated on Mon Jul 18 11:34:14 2005 for Vallst by doxygen 1.4.3.