RLPark 1.0.0
Reinforcement Learning Framework in Java

AverageLoggerRow.java

Go to the documentation of this file.
00001 package zephyr.plugin.core.api.internal.monitoring.fileloggers;
00002 
00003 import java.io.IOException;
00004 import java.util.ArrayList;
00005 
00006 
00007 public class AverageLoggerRow extends LoggerRow {
00008   private final int stepsToAvg;
00009   private final ArrayList<Double> arrayList;
00010 
00011   public AverageLoggerRow(String filepath, int stepsToAvg) throws IOException {
00012     super(filepath);
00013     this.stepsToAvg = stepsToAvg;
00014     arrayList = new ArrayList<Double>(stepsToAvg);
00015   }
00016 
00017   @Override
00018   public void writeRow(double... row) {
00019     assert row.length == 2;
00020     int time = (int) row[0];
00021     double errorSquare = row[1];
00022     arrayList.add(errorSquare);
00023     if (time % stepsToAvg == stepsToAvg - 1) {
00024       double avg = 0.0;
00025       for (Double val : arrayList)
00026         avg += val;
00027       avg = avg / stepsToAvg;
00028       super.writeRow(time - stepsToAvg / 2, avg);
00029       arrayList.clear();
00030       arrayList.ensureCapacity(stepsToAvg);
00031     }
00032   }
00033 }
 All Classes Namespaces Files Functions Variables Enumerations
Zephyr
RLPark