// Create a report file TQErrCode CBITManager::CreateReportFile(QString ReportFileName) { try { // Create HTML report CHTML_BITReport HTML_BITReport(ReportFileName); CreateReport(&HTML_BITReport); } catch(EQException& QException) { QMonitor.ErrorMessage(QException.GetErrorMsg()); } return Q_NO_ERROR; }
void CSimulateVariableWind::CalculateFire(){ Process_Set_Text(_TL("Simulando...")); m_CentralPoints .Clear(); m_AdjPoints .Clear(); m_CentralPoints.Clear(); if (m_pDEM->is_InGrid(m_iGridX, m_iGridY,false)){ m_CentralPoints.Add(m_iGridX, m_iGridY); m_pTimeGrid->Set_Value(m_iGridX, m_iGridY,0.0); }//if if (CalculateFireSpreading(m_fTimeLimit)){ m_pTimeGrid->Set_NoData_Value(0.); CreateReport(); }//if }//method
void AddReports() { pRepOut = CreateReport("out", "Standard Output with Columns","Prints an array of data, with each row representing an independent run~you can customize the report to include a variety of columns","stdout","ReportOut"); AddReportParmString(pRepOut,"Columns to Display (ubcsat -hc for info)","default"); AddReportParmUInt(pRepOut,"Delay: Set to 1 to print after all runs are complete",&bReportOutputSuppress,0); pRepOut->bActive = TRUE; pRepStats = CreateReport("stats","Statistics Report","Shows summary statistics from all runs~you can customize the report to include a variety of statistics","stdout","ReportStats"); pRepStats->bActive = TRUE; AddReportParmString(pRepStats,"Statistics to Display (ubcsat -hs for info)","default"); pRepRTD = CreateReport("rtd","Run-Length and Run-Time Distribution","Similar to (-r out), except results are sorted by search steps,~and include successful runs~you can customize the report to include a variety of columns", "stdout","ReportRTD,SortByStepPerformance"); AddReportParmString(pRepRTD,"Columns to Display (ubcsat -hc for info)","rtd"); pRepModel = CreateReport("model","Solution Model","Prints the solution model found from the last run executed~is turned on automatically with the -solve parameter~output format example is: -1 2 3 -4 ... ~meaning variables (1,4) are true, and variables (2,3) are false","stdout","ReportModelPrint"); pRepCNFStats = CreateReport("cnfstats","Instance Statistics","Provides additional information about the properties of the instance","stdout","ReportCNFStatsPrint"); pRepState = CreateReport("state","State Information Trace","Provides detailed state information for each search step, including:~the solution quality, the variable flipped, and the state of all variables","stdout","ReportStatePrint"); AddReportParmUInt(pRepState,"Only print when in local minima",&bReportStateLMOnly,0); AddReportParmFloat(pRepState,"Only print at a specific Solution Quality (all if -1)",&fReportStateQuality,-1.0f); pRepSolution = CreateReport("solution","Solutions","Prints solutions for every successful run in the format:~1001001101...~where variable 1 is true, 2 is false, 3 is false, etc...","stdout","ReportSolutionPrint"); pRepUniqueSol = CreateReport("uniquesol","Unique Solutions","Prints the same as (-r solution), except only unique solutions (no repeats)","stdout","ReportUniqueSolPrint"); pRepBestSol = CreateReport("bestsol","Best Candidate Solutions","Similar to (-r solution), but includes variable assignments for the~best solution quality encountered when no solution is found","stdout","ReportBestSolPrint"); pRepBestStep = CreateReport("beststep","Steps of Each New Best Solution Quality","Print step information for each new best solution encountered","stdout","ReportBestStepPrint"); AddReportParmUInt(pRepBestStep,"Include the variable assignment for each new best",&bReportBestStepVars,0); pRepTrajBestLM = CreateReport("tbestlm","Trajectory Best Local Minima","Very similar to (-r beststep), except it ignores best solutions that~are improved upon in the next step","stdout","ReportTrajBestLM"); pRepOptClauses = CreateReport("unsatclauses","Unsatisfied Clauses","Print unsatisfied clauses when the run is complete~mostly useful when -target > 0 -- the format is:~1101111...~where clause 3 was unsatisfied when the run terminated","stdout","ReportUnsatClausesPrint"); AddReportParmUInt(pRepOptClauses,"Only Include runs where -target solution was reached",&bReportOptClausesSol,0); pRepFalseHist = CreateReport("falsehist","Number of False Clauses Histogram","Prints a count (histogram) that shows the distribution~of the number of false clauses throughout the search","stdout","ReportFalseHistPrint"); AddReportParmUInt(pRepFalseHist,"Only include data from the last N steps",&iReportFalseHistCount,0); pRepDistance = CreateReport("distance","Hamming Distance Information","Detailed information for each step of the Hamming Distance~to the closest known solution~Note: Requires solution file (-filesol)","stdout","ReportDistancePrint"); AddReportParmUInt(pRepDistance,"Only print when in local minima",&bReportDistanceLMOnly,0); pRepDistHist = CreateReport("disthist","Hamming Distance Histogram","Prints a count (histogram) that shows the distribution~of the Hamming distance from the solution(s) throughout the search~Note: Requires solution file (-filesol)","stdout","ReportDistHistPrint"); AddReportParmUInt(pRepDistHist,"Only include data from the last N steps",&iReportDistHistCount,0); pRepFlipCounts = CreateReport("flipcount","Variable Flip Count","Prints the number of times each variable was flipped~restarts are counted in the first column (nullflips)","stdout","ReportFlipCountsPrint"); pRepBiasCounts = CreateReport("biascount","Variable Bias Count","Prints the number of steps each variable was true and false","stdout","ReportBiasCountsPrint"); pRepUnsatCounts = CreateReport("unsatcount","Clause Unsatisfied Count","Prints the number of steps that each clause was unsatisfied","stdout","ReportUnsatCountsPrint"); pRepVarLast = CreateReport("varlastflip","Step of Last Variable Flip","Prints the step of the last time each variable was flipped","stdout","ReportVarLastPrint"); pRepClauseLast = CreateReport("clauselast","Step of Last Clause Unsatisfied","Prints the last step each clause was unsatisfied","stdout","ReportClauseLastPrint"); pRepSQGrid = CreateReport("sqgrid","Solution Quality Grid","Prints the solution quality at key step values","stdout","ReportSQGridPrint"); AddReportParmUInt(pRepSQGrid,"# of key step points per decade",&iLogDistStepsPerDecade,10); pRepPenalty = CreateReport("penalty","Clause Penalties","Prints the Clause penalties (weights) from DLS algorithms (i.e.: SAPS,PAWS)~Note: the renormalize to total overrides renormalize to base","stdout","ReportPenaltyPrint"); AddReportParmUInt(pRepPenalty,"Re-normalise to base so an untouched clause is equal to 1",&bReportPenaltyReNormBase,1); AddReportParmUInt(pRepPenalty,"Re-normalise to total so sum of all penalties equals 1",&bReportPenaltyReNormFraction,0); AddReportParmUInt(pRepPenalty,"Print penalties every local min (0=end of run only)",&bReportPenaltyEveryLM,0); pRepPenMean = CreateReport("penmean","Clause Penalties (Mean)","Mean of clause penalties throughout the run","stdout","ReportPenMeanPrint"); AddReportParmUInt(pRepPenMean,"Re-normalise to base so an untouched clause is equal to 1",&bReportPenaltyReNormBase,1); AddReportParmUInt(pRepPenMean,"Re-normalise to total so sum of all penalties equals 1",&bReportPenaltyReNormFraction,0); pRepPenStddev = CreateReport("penstddev","Clause Penalties (Stddev)","StdDev of clause penalties throughout the run","stdout","ReportPenStddevPrint"); AddReportParmUInt(pRepPenStddev,"Re-normalise to base so an untouched clause is equal to 1",&bReportPenaltyReNormBase,1); AddReportParmUInt(pRepPenStddev,"Re-normalise to total so sum of all penalties equals 1",&bReportPenaltyReNormFraction,0); pRepPenCV = CreateReport("pencv","Clause Penalties (CV)","CV of clause penalties throughout the run","stdout","ReportPenCVPrint"); AddReportParmUInt(pRepPenCV,"Re-normalise to base so an untouched clause is equal to 1",&bReportPenaltyReNormBase,1); AddReportParmUInt(pRepPenCV,"Re-normalise to total so sum of all penalties equals 1",&bReportPenaltyReNormFraction,0); pRepMobility = CreateReport("mobility","Mobility Report","Mean Hamming distances for windows of sizes 1..length~Parameter 2 will normalize output so 1 is maximum value","stdout","ReportMobilityPrint"); AddReportParmUInt(pRepMobility,"Largest mobility window length to display [default = n]",&iReportMobilityDisplay,0); AddReportParmUInt(pRepMobility,"Normalize Mobility values: Mobility/min(n,windowsize)",&bReportMobilityNormalized,0); pRepMobFixed = CreateReport("mobfixed","Mobility For a Fixed Window Size","Provides step-by-step Mobility data for a fixed window size~1st parameter sets the size of the window,~2nd parameter includes or ignores(default) the first 1..size steps~both parameters affect column results (mobx, mobxcv, etc.)~to set parameters without running report, use~-r mobfixed null INT BOOL","stdout","ReportMobFixedPrint"); AddReportParmUInt(pRepMobFixed,"Mobility window size [default = n]",&iMobFixedWindow,0); AddReportParmUInt(pRepMobFixed,"Include first (1..windowsize) steps",&bMobilityFixedIncludeStart,0); pRepMobFixedFreq = CreateReport("mobfixedfreq","Mobility Fixed Window Histogram","Mobility frequency counts for a fixed window size~must use the same parameter settings as (-r mobfixed)","stdout","ReportMobFixedFreqPrint"); AddReportParmUInt(pRepMobFixedFreq,"Mobility window size [default = n]",&iMobFixedWindow,0); AddReportParmUInt(pRepMobFixedFreq,"Include first (1..windowsize) steps ",&bMobilityFixedIncludeStart,0); pRepAutoCorr = CreateReport("autocorr","Autocorrelation Report","Autocorrelation Length (ACL) and autocorrelation values for lengths 1..max~if the ACL is greater than max, it returns an ACL value of max~parameters affect column (acl) results~to set parameters without running report, use~-r autocorr null INT FL","stdout","ReportAutoCorrPrint"); AddReportParmUInt(pRepAutoCorr,"Maximum window length [default = n]",&iAutoCorrMaxLen,0); AddReportParmFloat(pRepAutoCorr,"Cutoff Value for finding ACL [default = 1/e]",&fAutoCorrCutoff,0.3678794f); pRepTriggers = CreateReport("triggers","Trigger Report","Prints Out All Active Triggers","stdout","ReportTriggersPrint"); AddReportParmUInt(pRepTriggers,"Show All Triggers (not just active) [default = 0]",&bReportTriggersAll,0); pRepSATComp = CreateReport("satcomp","SAT Competition","Prints required output for 2005 SAT Competition (use -solve)","stdout","ReportSatCompetitionPrint"); /***************************************************************************/ AddColumnComposite("default","run,found,best,beststep,steps"); AddColumnComposite("default_w","run,found,best_w,beststep_w,steps"); AddColumnComposite("rtd","prob,steps,timesteps"); AddColumnUInt("run","Run Number", " ", " Run", " No.", "%5u", &iRun,"",ColTypeFinal); AddColumnUInt("found","Target Solution Quality Found? (1 => yes)", "F", "N", "D", "%1u" ,&bSolutionFound,"",ColTypeFinal); AddColumnUInt("steps","Total Number of Search Steps", " Total", " Search", " Steps", "%10u", &iStep,"",ColTypeFinal); AddStatCol("steps","Steps","mean+cv+median",TRUE); AddColumnFloat("time","Time in seconds, measured (not accurate for short runs)", " CPU Time", "in seconds", "(measured)", "%10.6f", &fRunTime,"",ColTypeFinal); AddStatCol("time","MeasuredCPUTime","mean",FALSE); AddColumnUInt("best","Best (Lowest) # of False Clauses Found", " Best", "Sol'n", "Found", "%5u", &iNumFalse,"",ColTypeMin); AddStatCol("best","BestSolution","mean",FALSE); AddColumnFloat("best_w","Best Weighted Solution Quality Found", " Best", " Solution", " Quality", "%12.8f", &fBestSumFalseW,"",ColTypeMin); AddStatCol("best_w","BestWeightedSolution","mean",FALSE); AddColumnUInt("worst","Worst (Highest) # of False Clauses Found", "Worst", "Sol'n", "Found", "%5u", &iNumFalse,"",ColTypeMax); AddStatCol("worst","WorstSolution","mean",FALSE); AddColumnFloat("worst_w","Worst Weighted Solution Quality Found", " Worst", " Solution", " Quality", "%12.8f", &fSumFalseW,"",ColTypeMax); AddStatCol("worst_w","WorstWeightedSolution","mean",FALSE); AddColumnUInt("last","Last (on final step) # of False Clauses", " Last", "Sol'n", "Found", "%5u", &iNumFalse,"",ColTypeFinal); AddStatCol("last","LastSolution","mean",FALSE); AddColumnFloat("last_w","Last (on final step) Weighted Solution Quality", " Last", " Solution", " Quality", "%12.8f", &fSumFalseW,"",ColTypeFinal); AddStatCol("last_w","LastWeightedSolution","mean",FALSE); AddColumnUInt("start","Start (on first step) # of False Clauses", "Start", "Sol'n", "Found", "%5u", &iStartNumFalse,"StartFalse",ColTypeFinal); AddStatCol("start","StartSolution","mean",FALSE); AddColumnFloat("start_w","Start (on first step) Weighted Solution Quality", " Start", " Solution", " Quality", "%12.8f", &fStartSumFalseW,"StartFalse",ColTypeFinal); AddStatCol("start_w","StartWeightedSolution","mean",FALSE); AddColumnUInt("beststep","Step of Best (Lowest) # of False Clauses Found", " Step", " of", " Best", "%10u", &iBestStepNumFalse,"BestFalse",ColTypeFinal); AddStatCol("beststep","BestStep","mean",FALSE); AddColumnUInt("beststep_w","Step of Best Weighted Solution Quality Found", " Step", " of", " W Best", "%10u", &iBestStepSumFalseW,"BestFalse",ColTypeFinal); AddStatCol("beststep_w","BestWeightedStep","mean",FALSE); AddColumnFloat("bestavgimpr","Mean Improvement per Step to Best Solution", " Average", " Improve.", " To Best", "%9.7f", &fImproveMean,"ImproveMean",ColTypeFinal); AddStatCol("bestavgimpr","BestAvgImprovement","mean",FALSE); AddColumnFloat("bestavgimpr_w","Mean Improvement per Step to Best Solution Quality", " Average", " Improve.", "To W Best", "%9.7f", &fImproveMeanW,"ImproveMean",ColTypeFinal); AddStatCol("bestavgimpr_w","BestWeightedAvgImprovement","mean",FALSE); AddColumnUInt("firstlm","First Local Minimum # of False Clauses", "False", "@ 1st", "L.Min", "%5u", &iFirstLM,"FirstLM",ColTypeFinal); AddStatCol("firstlm","FirstLocalMin","mean",FALSE); AddColumnFloat("firstlm_w","First Weighted Local Minimum Solution Quality", " Solution", " Quality", " @ 1st WLMin", "%12.8f", &fFirstLMW,"FirstLM",ColTypeFinal); AddStatCol("firstlm_w","FirstWeightedLocalMin","mean",FALSE); AddColumnUInt("firstlmstep","Step of the First Local Minimum Encountered", " Step", "of1st", "L.Min", "%5u", &iFirstLMStep,"FirstLM",ColTypeFinal); AddStatCol("firstlmstep","FirstLocalMinStep","mean",FALSE); AddColumnUInt("firstlmstep_w","Step of the First Weighted Local Minimum Encountered", " Step", "of1st", "WLMin", "%5u", &iFirstLMStepW,"FirstLM",ColTypeFinal); AddStatCol("firstlmstep_w","FirstWeightedLocalMinStep","mean",FALSE); AddColumnFloat("firstlmratio","Improvement from 1st LM: (start-firstlm)/(start-best)", " First", "Local Min", " Ratio", "%9.7f", &fFirstLMRatio,"FirstLMRatio",ColTypeFinal); AddStatCol("firstlmratio","FirstLocalMinRatio","mean",FALSE); AddColumnFloat("firstlmratio_w","Improve from 1st WLM: (startw - firstlmw)/(startw-bestw)", " First W.", "Local Min", " Ratio", "%9.6f", &fFirstLMRatioW,"FirstLMRatio",ColTypeFinal); AddStatCol("firstlmratio_w","FirstWeightedLocalMinRatio","mean",FALSE); AddColumnFloat("tbestlmmean","Mean of the Trajectory Best LM (# False)", " Traj.", "Best LM", " Mean", "%7.3f", &fTrajBestLMMean,"TrajBestLM",ColTypeFinal); AddStatCol("tbestlmmean","TrajBestLocalMinMean","mean",FALSE); AddColumnFloat("tbestlmmean_w","Mean of the Trajectory Best LM (W.Sol'n Quality)", " Traj.", "Best LM", " Mean", "%7.3f", &fTrajBestLMMeanW,"TrajBestLM",ColTypeFinal); AddStatCol("tbestlmmean_w","TrajBestLocalMinWeightedMean","mean",FALSE); AddColumnFloat("tbestlmcv","C.V. of the Trajectory Best LM (# False)", " Traj.", "Best LM", " C.V.", "%7.5f", &fTrajBestLMCV,"TrajBestLM",ColTypeFinal); AddStatCol("tbestlmcv","TrajBestLocalMinCV","mean",FALSE); AddColumnFloat("tbestlmcv_w","C.V. of the Trajectory Best LM (W.Sol'n Quality)", " Traj.", "Best LM", " C.V.", "%7.5f", &fTrajBestLMCVW,"TrajBestLM",ColTypeFinal); AddStatCol("tbestlmcv_w","TrajBestLocalMinWeightedCV","mean",FALSE); AddColumnUInt("qualmean","Average (Mean) # of False Clauses", "Average", " # of", " False", "%7.3f", &iNumFalse,"",ColTypeMean); AddStatCol("qualmean","SolutionQualityMean","mean",FALSE); AddColumnFloat("qualmean_w","Average (Mean) of Weighted Solution Quality", "Average", "W.Sol'n", "Quality", "%7.3f", &fSumFalseW,"",ColTypeMean); AddStatCol("qualmean_w","WeightedSolutionQualityMean","mean",FALSE); AddColumnUInt("qualstddev","Std.Dev. # of False Clauses", "Std.Dev", " # of", " False", "%7.3f", &iNumFalse,"",ColTypeStddev); AddStatCol("qualstddev","SolutionQualityStdDev","mean",FALSE); AddColumnFloat("qualstddev_w","Std.Dev. of Weighted Solution Quality", "Std.Dev", "W.Sol'n", "Quality", "%7.3f", &fSumFalseW,"",ColTypeStddev); AddStatCol("qualstddev_w","WeightedSolutionQualityStdDev","mean",FALSE); AddColumnUInt("qualcv","Coeff. of Var. # of False Clauses", " C.V.", " # of", " False", "%7.3f", &iNumFalse,"",ColTypeCV); AddStatCol("qualcv","SolutionQualityCV","mean",FALSE); AddColumnFloat("qualcv_w","Coeff. of Var. of Weighted Solution Quality", " C.V.", "W.Sol'n", "Quality", "%7.3f", &fSumFalseW,"",ColTypeCV); AddStatCol("qualcv_w","WeightedSolutionQualityCV","mean",FALSE); AddColumnUInt("seed","Starting Seed For the Run", " ", " Starting", " Seed", "%10u", &iStartSeed,"StartSeed",ColTypeFinal); AddColumnUInt("nullflips","Number of Null Flips", " Number", " of Null", " Flips", "%10u", &iNumNullFlips,"NullFlips",ColTypeFinal); AddStatCol("nullflips","NullFlips","mean",FALSE); AddColumnUInt("percentnull","Percent of Null Flips", "Percent", " Null", " Flips", "%7.4f", &iNumNullFlips,"NullFlips",ColTypeFinalDivStep100); AddStatCol("percentnull","PercentNull","mean",FALSE); AddColumnUInt("restarts","Number of Restarts", " Number", " of", "Restarts", "%8u", &iNumRestarts,"NumRestarts",ColTypeFinal); AddStatCol("restarts","NumRestarts","mean",FALSE); AddColumnUInt("rand","Number of Random Decisions", " Number", " of Random", " Decisions", "%10u", &iNumRandomCalls,"CountRandom",ColTypeFinal); AddStatCol("rand","NumRandomDecisions","mean",FALSE); AddColumnUInt("randstep","Mean Number of Random Decisions Per Step", "Avg. Rand", "Decisions", " per step", "%9.3f", &iNumRandomCalls,"CountRandom",ColTypeFinalDivStep); AddStatCol("randstep","RandomDecisionsPerStep","mean",FALSE); AddColumnUInt("candidates","Mean Number of Flip Candidates (not all algs support it)", " Mean #", "of Flip", " Candid", "%7.4f", &iNumCandidates,"",ColTypeMean); AddStatCol("candidates","FlipCandidatesMean","mean",FALSE); AddColumnUInt("localmins","Number of Local Minima Encountered", " Number", " of Local", " Minima", "%10u", &iNumLocalMins,"LocalMins",ColTypeFinal); AddStatCol("localmins","LocalMins","mean",FALSE); AddColumnUInt("percentlocal","Percent of Steps in Local Minima", "Percent", " Local", " Minima", "%7.4f", &iNumLocalMins,"LocalMins",ColTypeFinalDivStep100); AddStatCol("percentlocal","PercentLocal","mean",FALSE); AddColumnFloat("flipcountcv","CV of the Variable Flip Count Distribution", " CV of", " Flip", " Count", "%7.5f", &fFlipCountsCV,"FlipCountStats",ColTypeFinal); AddStatCol("flipcountcv","FlipCountCV","mean",FALSE); AddColumnFloat("biasmax","Mean Frac. # steps vars spent same state as their most freq.", " Max", " Pol-", " arity", "%5.4f", &fMeanMaxBias,"BiasStats",ColTypeFinal); AddStatCol("biasmax","BiasMaxMean","mean",FALSE); AddColumnFloat("biasfinal","Mean Frac. # steps vars spent same as their final state", " Final", " Pol-", " arity", "%5.4f", &fMeanFinalBias,"BiasStats",ColTypeFinal); AddStatCol("biasfinal","BiasFinalMean","mean",FALSE); AddColumnFloat("unsatcountcv","CV of the Clause Unsat Count Distribution", " CV of", " Unsat", " Count", "%7.5f", &fUnsatCountsCV,"UnsatCountStats",ColTypeFinal); AddStatCol("unsatcountcv","UnsatCountCV","mean",FALSE); AddColumnUInt("soldistance","Mean Hamming Distance from Closest Known Solution(s)", " Mean", "Dist To", "kn.soln", "%7.2f", &iSolutionDistance,"SolutionDistance",ColTypeMean); AddStatCol("soldistance","SolutionDistanceMean","mean",FALSE); AddColumnFloat("fdc","Fitness-Distance Correlation Factor (calc. in LM)", "Fitness", "Distnce", " Calc", "%7.3f", &fFDCRun,"FDCRun",ColTypeFinal); AddStatCol("fdc","FDC","mean",FALSE); AddColumnUInt("acl","Auto-Correlation Length", "Auto", "Corr", "Len.", "%4u", &iAutoCorrLen,"AutoCorr",ColTypeFinal); AddStatCol("acl","ACL","mean",FALSE); AddColumnFloat("acone","Auto-Correlation of distance one", " Auto-", " Corr.", " (one)", "%7.5f", &fAutoCorrOneVal,"AutoCorrOne",ColTypeFinal); AddStatCol("acone","ACOne","mean",FALSE); AddColumnFloat("estacl","Estimated Auto-Correlation Length from AC of 1", " ", " Est.", " ACL", "%7.2f", &fAutoCorrOneEst,"AutoCorrOne",ColTypeFinal); AddStatCol("estacl","EstACL","mean",FALSE); AddColumnFloat("branchfact","Mean Branching Factor (# possible sidesteps / #vars)", " Mean", "Branch", " Fact", "%6.4f", &fBranchFactor, "BranchFactor", ColTypeMean); AddStatCol("branchfact","BranchFactorMean","mean",FALSE); AddColumnFloat("branchfact_w","Mean Weighted Branching Factor", "W.Mean", "Branch", " Fact", "%6.4f", &fBranchFactorW, "BranchFactorW", ColTypeMean); AddStatCol("branchfact_w","WeightedBranchFactorMean","mean",FALSE); AddColumnFloat("mobn","Mean Mobility for window size n (# of vars)", "Mobility", "Window N", " Mean", "%8.3f", &fMobilityColNMean,"MobilityColumn,InitMobilityColumnN",ColTypeFinal); AddStatCol("mobn","MobilitySizeNMean","mean",FALSE); AddColumnFloat("mobx","Mean Mobility for window size x (see -r mobfixed)", "Mobility", "Window X", " Mean", "%8.3f", &fMobilityColXMean,"MobilityColumn,InitMobilityColumnX",ColTypeFinal); AddStatCol("mobx","MobilitySizeXMean","mean",FALSE); AddColumnFloat("normmobn","Normalized Mean Mobility for window size n (# of vars) ", "Norm Mob", "Window N", " Mean", "%8.6f", &fMobilityColNMeanNorm,"MobilityColumn,InitMobilityColumnN",ColTypeFinal); AddStatCol("normmobn","NormalizedMobilitySizeN","mean",FALSE); AddColumnFloat("normmobx","Normalized Mean Mobility for window size x (see -r mobfixed)", "Norm Mob", "Window X", " Mean", "%8.6f", &fMobilityColXMeanNorm,"MobilityColumn,InitMobilityColumnX",ColTypeFinal); AddStatCol("normmobx","NormalizedMobilitySizeXMean","mean",FALSE); AddColumnFloat("mobncv","Mobility C.V. for window size n (# of vars)", "Mobility", "Window N", " C.V.", "%8.6f", &fMobilityColNCV,"MobilityColumn,InitMobilityColumnN",ColTypeFinal); AddStatCol("mobncv","MobilitySizeNMean","mean",FALSE); AddColumnFloat("mobxcv","Mobility C.V. for window size x (see -r mobfixed)", "Mobility", "Window X", " C.V.", "%8.5f", &fMobilityColXCV,"MobilityColumn,InitMobilityColumnX",ColTypeFinal); AddStatCol("mobxcv","MobilitySizeXMean","mean",FALSE); AddColumnUInt("upsteps","Number of Up (Backward) Steps", " Number", " of Up", " Steps", "%10u", &iNumUpSteps,"StepsUpDownSide",ColTypeFinal); AddColumnUInt("upsteps_w","Number of Up (Backward) Weighted Steps", " Number", " of Up", " W. Steps", "%10u", &iNumUpStepsW,"StepsUpDownSide",ColTypeFinal); AddColumnUInt("percentup","Percent of Up (Backward) Steps", "Percent", " of Up", " Steps", "%7.4f", &iNumUpSteps,"StepsUpDownSide",ColTypeFinalDivStep100); AddStatCol("percentup","PercentUpSteps","mean",FALSE); AddColumnUInt("percentup_w","Percent of Up (Backward) Weighted Steps", "Percent", " of Up", "W.Steps", "%7.4f", &iNumUpStepsW,"StepsUpDownSide",ColTypeFinalDivStep100); AddStatCol("percentup_w","PercentWeightedUpSteps","mean",FALSE); AddColumnUInt("downsteps","Number of Down (Improving) Steps", " Number", " of Down", " Steps", "%10u", &iNumDownSteps,"StepsUpDownSide",ColTypeFinal); AddColumnUInt("downsteps_w","Number of Down (Improving) Weighted Steps", " Number", " of Down", " W.Steps", "%10u", &iNumDownStepsW,"StepsUpDownSide",ColTypeFinal); AddColumnUInt("percentdown","Percent of Down (Improving) Steps", "Percent", "of Down", " Steps", "%7.4f", &iNumDownSteps,"StepsUpDownSide",ColTypeFinalDivStep100); AddStatCol("percentdown","PercentUpSteps","mean",FALSE); AddColumnUInt("percentdown_w","Percent of Down (Improving) Weighted Steps", "Percent", "of Down", "W.Steps", "%7.4f", &iNumDownStepsW,"StepsUpDownSide",ColTypeFinalDivStep100); AddStatCol("percentdown_w","PercentWeightedUpSteps","mean",FALSE); AddColumnUInt("sidesteps","Number of Sideways (Plateau) Steps", " Number of", " Sideways", " Steps", "%10u", &iNumSideSteps,"StepsUpDownSide",ColTypeFinal); AddColumnUInt("sidesteps_w","Number of Sideways (Plateau) Weighted Steps", " Number of", " Sideways", " W. Steps", "%10u", &iNumSideStepsW,"StepsUpDownSide",ColTypeFinal); AddColumnUInt("percentside","Percent of Sideways (Plateau) Steps", "Percent", "Sideway", " Steps", "%7.4f", &iNumSideSteps,"StepsUpDownSide",ColTypeFinalDivStep100); AddStatCol("percentside","PercentSideSteps","mean",FALSE); AddColumnUInt("percentside_w","Percent of Sideways (Plateau) Weighted Steps", "Percent", "Sideway", "W.Steps", "%7.4f", &iNumSideStepsW,"StepsUpDownSide",ColTypeFinalDivStep100); AddStatCol("percentside_w","PercentWeightedSideSteps","mean",FALSE); AddColumnFloat("timesteps","Time in seconds, calculated based on steps (RTD Only)", " CPU Time", "in seconds", "(by steps)", "%10.6f", &fDummy,"UpdateTimes,ActivateStepsFoundColumns",ColTypeFinal); AddStatCol("timesteps","CPUTime","mean+cv+median",TRUE); AddColumnFloat("prob","Probability of Success (RTD Only)", " Prob", " of", "Success", "%7.5f", &fDummy,"UpdatePercents",ColTypeFinal); /***************************************************************************/ AddContainerStat("default","instinfo,totaltime,fps,runs,numsolve,percentsolve,steps,timesteps"); AddStatCustom("numclauses","Number of Clauses","Clauses","%u",(void *)&iNumClauses,DTypeUInt,"",""); AddStatCustom("numvars","Number of Variables","Variables","%u",(void *)&iNumVars,DTypeUInt,"",""); AddStatCustom("numlits","Number of Total Literals","TotalLiterals","%u",(void *)&iNumLits,DTypeUInt,"",""); AddContainerStat("instinfo","numvars,numclauses,numlits"); AddStatCustom("runs","Runs Executed","RunsExecuted","%u",(void *)&iRun,DTypeUInt,"",""); AddStatCustom("numsolve","Number of Successful Runs","SuccessfulRuns","%u",(void *)&iNumSolutionsFound,DTypeUInt,"",""); AddStatCustom("percentsolve","Percent of Successful Runs","PercentSuccess","%-6.2f",(void *)&fPercentSuccess,DTypeFloat,"","CalcPercentSolve"); AddStatCustom("totaltime","Total Time Elapsed","TotalCPUTimeElapsed","%-10.3f",(void *)&fTotalTime,DTypeFloat,"",""); AddStatCustom("fps","Flips Per Second","FlipsPerSecond","%-7.f",(void *)&fFlipsPerSecond,DTypeFloat,"","CalcFPS"); AddStatCustom("numunique","Number of Unique Solutions Found","UniqueSolutions","%u",(void *)&iNumUniqueSolutions,DTypeUInt,"","UniqueSolutions"); AddStatCustom("instname","File Name of the Instance","InstFileName","%s",(void *)&sFilenameIn,DTypeString,"",""); AddStatCustom("alginfo","Algorithm Parameters","AlgParameters","%s",(void *)&sStringAlgParms,DTypeString,"","StringAlgParms"); AddStatCustom("version","UBCSAT Version Information","UBCSATVersion","%s",(void *)&pVersion,DTypeString,"",""); }