Example #1
0
 private static void writeOutStats(LMethod lMethod, FurthestPointFromLineMethod furthestPointFromLineMethod, 
     int upperBoundOfPostVals, int initialHistRes, double[] posteriorValues, double[] centralDiffs, 
     double posteriorSum)
 {
     Console.WriteLine("Posterior mean: {0}", (posteriorSum) / ((double)posteriorValues.Length));
     int maxCentralDiffIdx = determineMaxCentralDiffIdx(upperBoundOfPostVals, centralDiffs);
     Console.WriteLine("Maximum central difference: {0}", maxCentralDiffIdx + initialHistRes);
     double[] xData = Enumerable.Range(initialHistRes, upperBoundOfPostVals - 1).Select(x => (double)x).ToArray();
     int kneePointIdx = lMethod.findBestKneePoint(xData, posteriorValues, xData.Length);
     Console.WriteLine("Knee point (L method): {0}", kneePointIdx + initialHistRes);
     kneePointIdx = lMethod.iterativeRefinementOfTheKnee(xData, posteriorValues);
     Console.WriteLine("Refined knee point (L method): {0}", kneePointIdx + initialHistRes);
     kneePointIdx = furthestPointFromLineMethod.findBestKneePoint(xData, posteriorValues);
     Console.WriteLine("Knee point ('furthest point from line' method): {0}", kneePointIdx + initialHistRes);
     writeOutPosteriorValues(posteriorValues);
 }
Example #2
0
 static void Main(string[] args)
 {
     InputParser inputParser = new InputParser();
     HistogramComputer histogramComputer = new HistogramComputer();
     KnuthPosteriorComputer knuthPosteriorComputer = new KnuthPosteriorComputer();
     LMethod lMethod = new LMethod();
     FurthestPointFromLineMethod furthestPointFromLineMethod = new FurthestPointFromLineMethod();
     string filename;
     int spaceDimension, pointNO, serverNO, upperBoundOfPostVals, initialHistRes;
     double[] minElems, maxElems, posteriorValues, centralDiffs;
     double posteriorSum;
     Console.WriteLine("How would you like to execute histogram building? " +
         "Would you like to apply stream mode?");
     Console.WriteLine("(Please choose this mode only if you have prior information about " +
         "object number and bounding box)");
     bool streamMode = bool.Parse(Console.ReadLine());
     if (streamMode)
     {
         handleStreamMode(inputParser, histogramComputer, knuthPosteriorComputer, out filename, out spaceDimension,
             out pointNO, out serverNO, out upperBoundOfPostVals, out initialHistRes, out minElems, out maxElems,
             out posteriorValues, out centralDiffs, out posteriorSum);
     }
     else
     {
         handleNormalMode(inputParser, histogramComputer, knuthPosteriorComputer, out filename, out spaceDimension,
             out pointNO, out serverNO, out upperBoundOfPostVals, out initialHistRes, out minElems, out maxElems,
             out posteriorValues, out centralDiffs, out posteriorSum);
     }
     writeOutStats(lMethod, furthestPointFromLineMethod, upperBoundOfPostVals, initialHistRes,
         posteriorValues, centralDiffs, posteriorSum);
     Console.WriteLine("Press any key to continue...");
     Console.Read();
 }