/** * display memory usage * @param r */ public static void displayMemoryUsage(Runtime r) { if (logger.isDebugEnabled()) logger.debug("free: "+ (r.freeMemory() /1024) + "kb; total: "+(r.totalMemory()/1024) +"kb; max: "+(r.maxMemory()/1024)+"kb; "+ Rounding.toString((100.0d*r.freeMemory() / r.totalMemory()),1)+"% free; "+ Rounding.toString((100.0d*r.totalMemory() / r.maxMemory()),1)+"% allocated; " ); }
/** * Round a float value to a specified number of decimal * places. Calls round(double,int) internally. * * @param val the value to be rounded. * @param places the number of decimal places to round to. * @return val rounded to places decimal places. * @since 1.1.0 */ public static float round(float val, int places) { return (float)round((double)val, places); }
@Override public void writeEvaluationResult(PrintWriter out) { //String summary = null; for(String[] line : output) { if (line.length >= 3 && line[0].equals("map") && line[1].equals("all")) { System.out.println("Average Precision: " + Rounding.toString(Double.parseDouble(line[2]), 4)); } out.println(ArrayUtils.join(line, '\t')); } }
/** * Round a float value to a specified number of decimal * places. Calls round(double,int) internally. * * @param val the value to be rounded. * @param places the number of decimal places to round to. * @return val rounded to places decimal places. * @since 1.1.0 */ public static float round(float val, int places) { return (float)round((double)val, places); }
@Override public void writeEvaluationResult(PrintWriter out) { //String summary = null; for(String[] line : output) { if (line.length >= 3 && line[0].equals("map") && line[1].equals("all")) { System.out.println("Average Precision: " + Rounding.toString(Double.parseDouble(line[2]), 4)); } out.println(ArrayUtils.join(line, '\t')); } }
out.println("____________________________________"); out.println( "Average Precision: " + Rounding.toString(meanAveragePrecision, 4)); out.println( "R Precision : " + Rounding.toString(meanRelevantPrecision, 4)); out.println("____________________________________"); for(int precisionRank : PRECISION_RANKS) out.printf("Precision at %d : %s\n", precisionRank, Rounding.toString(precisionAtRank.get(precisionRank), 4)); out.printf("Precision at %d%%: %s\n", precisionPercent, Rounding.toString(precisionAtRecall.get(precisionPercent), 4)); "Average Precision: " + Rounding.toString(meanAveragePrecision, 4)); System.out.println("Average Precision: " + Rounding.toString(meanAveragePrecision, 4));
out.println("____________________________________"); out.println( "Average Precision: " + Rounding.toString(meanAveragePrecision, 4)); out.println( "R Precision : " + Rounding.toString(meanRelevantPrecision, 4)); out.println("____________________________________"); for(int precisionRank : PRECISION_RANKS) out.printf("Precision at %d : %s\n", precisionRank, Rounding.toString(precisionAtRank.get(precisionRank), 4)); out.printf("Precision at %d%%: %s\n", precisionPercent, Rounding.toString(precisionAtRecall.get(precisionPercent), 4)); "Average Precision: " + Rounding.toString(meanAveragePrecision, 4)); System.out.println("Average Precision: " + Rounding.toString(meanAveragePrecision, 4));
/** * Output the evaluation result of each query to the specific file. * @param resultEvalFilename String the name of the file in which to * save the evaluation results. */ public void writeEvaluationResultOfEachQuery(String resultEvalFilename) { try { final PrintWriter out = new PrintWriter(Files.writeFileWriter(resultEvalFilename)); final StringBuilder sb = new StringBuilder(); for (int i = 0; i < this.queryNo.length; i++) sb.append( queryNo[i] + " " + Rounding.toString( this.averagePrecisionOfEachQuery[i], 4) + ApplicationSetup.EOL); out.print(sb.toString()); out.close(); } catch (IOException fnfe) { logger.error("Couldn't create evaluation file "+ resultEvalFilename , fnfe); } } /**
/** * Output the evaluation result of each query to the specific file. * @param resultEvalFilename String the name of the file in which to * save the evaluation results. */ public void writeEvaluationResultOfEachQuery(String resultEvalFilename) { try { final PrintWriter out = new PrintWriter(Files.writeFileWriter(resultEvalFilename)); final StringBuilder sb = new StringBuilder(); for (int i = 0; i < this.queryNo.length; i++) sb.append( queryNo[i] + " " + Rounding.toString( this.averagePrecisionOfEachQuery[i], 4) + ApplicationSetup.EOL); out.print(sb.toString()); out.close(); } catch (IOException fnfe) { logger.error("Couldn't create evaluation file "+ resultEvalFilename , fnfe); } } /**
/** * Output the evaluation result of each query to the specific file. * @param resultEvalFilename String the name of the file in which to * save the evaluation results. */ public void writeEvaluationResultOfEachQuery(String resultEvalFilename) { int[] queryids = queryNumbers.toArray(); Arrays.sort(queryids); try { final PrintWriter out = new PrintWriter(Files.writeFileWriter(resultEvalFilename)); final StringBuilder sb = new StringBuilder(); for (int i = 0; i < this.queryNumbers.size(); i++) { sb.append( queryids[i] + " " + Rounding.toString( recipRank.get(queryids[i]), 4) + ApplicationSetup.EOL); } out.print(sb.toString()); out.close(); } catch (IOException fnfe) { logger.error("Couldn't write evaluation file "+resultEvalFilename, fnfe); } } /**
/** * Output the evaluation result of each query to the specific file. * @param resultEvalFilename String the name of the file in which to * save the evaluation results. */ public void writeEvaluationResultOfEachQuery(String resultEvalFilename) { int[] queryids = queryNumbers.toArray(); Arrays.sort(queryids); try { final PrintWriter out = new PrintWriter(Files.writeFileWriter(resultEvalFilename)); final StringBuilder sb = new StringBuilder(); for (int i = 0; i < this.queryNumbers.size(); i++) { sb.append( queryids[i] + " " + Rounding.toString( recipRank.get(queryids[i]), 4) + ApplicationSetup.EOL); } out.print(sb.toString()); out.close(); } catch (IOException fnfe) { logger.error("Couldn't write evaluation file "+resultEvalFilename, fnfe); } } /**
@Test public void testNonIntegers1DP() { assertEquals("0.1", Rounding.toString(0.1d,1)); assertEquals("0.1", Rounding.toString(0.11d,1)); assertEquals("0.1", Rounding.toString(0.111111111111111d,1)); assertEquals("100.0", Rounding.toString(100,1)); assertEquals("100.4", Rounding.toString(100.4d,1)); assertEquals("100.4", Rounding.toString(100.44d,1)); assertEquals("100.5", Rounding.toString(100.45d,1)); assertEquals("100.5", Rounding.toString(100.49999999d,1)); }
@Test public void testNonIntegers9DP() { assertEquals("0.000000000", Rounding.toString(0,9)); assertEquals("0.100000000", Rounding.toString(0.1d,9)); assertEquals("0.110000000", Rounding.toString(0.11d,9)); assertEquals("0.111111111", Rounding.toString(0.111111111111111d,9)); assertEquals("0.111149000", Rounding.toString(0.111149d,9)); assertEquals("0.111150000", Rounding.toString(0.11115d,9)); }
@Test public void testNonIntegers6DP() { assertEquals("0.000000", Rounding.toString(0,6)); assertEquals("0.100000", Rounding.toString(0.1d,6)); assertEquals("0.110000", Rounding.toString(0.11d,6)); assertEquals("0.111111", Rounding.toString(0.111111111111111d,6)); assertEquals("0.111149", Rounding.toString(0.111149d,6)); assertEquals("0.111150", Rounding.toString(0.11115d,6)); }
@Test public void testNonIntegers4DP() { assertEquals("0.1000", Rounding.toString(0.1d,4)); assertEquals("0.1100", Rounding.toString(0.11d,4)); assertEquals("0.1111", Rounding.toString(0.111111111111111d,4)); assertEquals("0.1111", Rounding.toString(0.111149d,4)); assertEquals("0.1112", Rounding.toString(0.11115d,4)); }
@Test public void testIntegers() { assertEquals("-100", Rounding.toString(-100,0)); assertEquals("0", Rounding.toString(0,0)); assertEquals("1", Rounding.toString(1,0)); assertEquals("100", Rounding.toString(100,0)); assertEquals("100", Rounding.toString(100.4d,0)); assertEquals("100", Rounding.toString(100.49999999d,0)); assertEquals("101", Rounding.toString(100.5d,0)); }
@Test public void testNonIntegers5DP() { assertEquals("0.00000", Rounding.toString(0,5)); assertEquals("0.10000", Rounding.toString(0.1d,5)); assertEquals("0.11000", Rounding.toString(0.11d,5)); assertEquals("0.11111", Rounding.toString(0.111111111111111d,5)); assertEquals("0.11115", Rounding.toString(0.111149d,5)); assertEquals("0.11115", Rounding.toString(0.11115d,5)); }
@Test public void testNonIntegers7DP() { assertEquals("0.0000000", Rounding.toString(0,7)); assertEquals("0.1000000", Rounding.toString(0.1d,7)); assertEquals("0.1100000", Rounding.toString(0.11d,7)); assertEquals("0.1111111", Rounding.toString(0.111111111111111d,7)); assertEquals("0.1111490", Rounding.toString(0.111149d,7)); assertEquals("0.1111500", Rounding.toString(0.11115d,7)); }
@Test public void testNonIntegers8DP() { assertEquals("0.00000000", Rounding.toString(0,8)); assertEquals("0.10000000", Rounding.toString(0.1d,8)); assertEquals("0.11000000", Rounding.toString(0.11d,8)); assertEquals("0.11111111", Rounding.toString(0.111111111111111d,8)); assertEquals("0.11114900", Rounding.toString(0.111149d,8)); assertEquals("0.11115000", Rounding.toString(0.11115d,8)); }