/** * Convenience method to compute a metric over an indices trace, excluding * resets. * * @param trace Trace of indices * @return */ public virtual Metric <int> mmGetMetricFromTrace(IndicesTrace trace) { List <HashSet <int> > data = null; BoolsTrace excludeResets = mmGetTraceResets(); if (excludeResets != null) { int[] i = { 0 }; data = trace.items.Where(t => !excludeResets.items[i[0]++]).ToList(); } trace.items = data; CountsTrace iTrace = trace.makeCountsTrace(); return(Metric <int> .createFromTrace(iTrace, mmGetTraceResets())); }
/** * Returns a {@code Metric} object created from the specified {@link Trace} * @param trace * @param excludeResets * @return */ public static Metric <TNumber> createFromTrace <T>(T trace, BoolsTrace excludeResets) where T : Trace <TNumber>, ITrace { List <TNumber> data = (List <TNumber>)trace.items; if (excludeResets != null) { data = new List <TNumber>(); for (int k = 0; k < trace.items.Count; k++) { if (!excludeResets.items[k]) { TNumber n = trace.items[k]; data.Add(n); } } } return(new Metric <TNumber>(trace.monitor, trace.title, data)); }
public virtual List <Metric <int> > mmGetDefaultMetrics(int verbosity) { BoolsTrace resetsTrace = mmGetTraceResets(); List <Metric <int> > metrics = new List <Metric <int> >(); List <ITrace> utilTraces = mmGetDefaultTraces(verbosity); for (int i = 0; i < utilTraces.Count - 3; i++) { metrics.Add(Metric <int> .createFromTrace((Trace <int>)utilTraces[i], resetsTrace)); } for (int i = utilTraces.Count - 3; i < utilTraces.Count - 1; i++) { metrics.Add(Metric <int> .createFromTrace((Trace <int>)utilTraces[i], null)); } metrics.Add(mmGetMetricSequencesPredictedActiveCellsPerColumn()); metrics.Add(mmGetMetricSequencesPredictedActiveCellsShared()); return(metrics); }
//public abstract List<Metric> mmGetDefaultMetrics(int verbosity); public virtual string mmPrettyPrintTraces(List <ITrace> traces, BoolsTrace breakOnResets) { throw new NotImplementedException(); }