public class ReportSummaryStatistics
extends java.lang.Object
RuntimeReport
Modifier and Type | Field and Description |
---|---|
private Algorithm |
algo
The algorithm that produced the runtimes
for this report summary.
|
private java.util.LongSummaryStatistics |
canonTime
Summary of the canonization runtime statistics.
|
private java.util.LongSummaryStatistics |
nativeSetupTime
Summary of the native setup runtime statistics.
|
private java.util.LongSummaryStatistics |
otherTime
Summary of other runtime statistics.
|
private java.util.List<RuntimeReport> |
reports
List of individual runtime reports that make up this summary.
|
private java.util.LongSummaryStatistics |
setupTime
Summary of the setup runtime statistics.
|
private java.util.LongSummaryStatistics |
totalTime
Summary of the total runtime statistics.
|
Constructor and Description |
---|
ReportSummaryStatistics(Algorithm algo,
GraphDataSet data)
Constructs a new summary report by running the given
algorithm on the graphs in the given data set.
|
Modifier and Type | Method and Description |
---|---|
void |
addReport(RuntimeReport report)
Appends a new report to this summary.
|
private static java.lang.String |
formatNanos(double nanos)
Formats the given number of nanoseconds as a string breaking
the time up into units of increasing magnitude as required.
|
double |
getCanonizationTimeAverage()
Gets the average canonization time for all runtime reports.
|
double |
getCanonizationTimeStdDev()
Gets the sample standard deviation for the canonization runtime.
|
double |
getNativeSetupTimeAverage()
Gets the average native setup time for all runtime reports.
|
double |
getNativeSetupTimeStdDev()
Gets the sample standard deviation for the native setup runtime.
|
double |
getOtherTimeAverage()
Gets the average 'other' time for all runtime reports.
|
double |
getOtherTimeStdDev()
Gets the sample standard deviation for the 'other' runtime.
|
java.util.List<RuntimeReport> |
getReports()
Gets the individual runtime reports that make up this summary.
|
double |
getSetupTimeAverage()
Gets the average setup time for all runtime reports.
|
double |
getSetupTimeStdDev()
Gets the sample standard deviation for the setup runtime.
|
double |
getTotalTimeAverage()
Gets the average total time for all runtime reports.
|
double |
getTotalTimeStdDev()
Gets the sample standard deviation for the total runtime.
|
void |
print()
Prints a runtime report with all the times formatted
together with their sample standard deviation.
|
void |
print(java.io.PrintStream out)
Prints a runtime report with all the times formatted
together with their sample standard deviation.
|
private double |
stdDev(java.util.LongSummaryStatistics stats,
java.util.function.Function<RuntimeReport,java.lang.Long> field)
Computes the sample standard deviation of the given field in the data set.
|
void |
writeData(java.io.PrintStream out)
Writes the data for this summary as a single line to the given stream.
|
private Algorithm algo
private java.util.List<RuntimeReport> reports
private java.util.LongSummaryStatistics setupTime
private java.util.LongSummaryStatistics nativeSetupTime
private java.util.LongSummaryStatistics canonTime
private java.util.LongSummaryStatistics otherTime
private java.util.LongSummaryStatistics totalTime
public ReportSummaryStatistics(Algorithm algo, GraphDataSet data) throws java.lang.InterruptedException
algo
- The algorithm to run.data
- The data set of run the algorithm on.java.lang.InterruptedException
- When the current thread is interrupted.Algorithm
,
GraphDataSet
public void addReport(RuntimeReport report) throws java.lang.IllegalArgumentException
report
- The report to append.java.lang.IllegalArgumentException
- When the given report
was not generated by the same algorithm as the
other reports in this summary.public double getSetupTimeStdDev()
RuntimeReport.getSetupTime()
public double getSetupTimeAverage()
RuntimeReport.getSetupTime()
public double getNativeSetupTimeStdDev()
RuntimeReport.getNativeSetupTime()
public double getNativeSetupTimeAverage()
RuntimeReport.getNativeSetupTime()
public double getCanonizationTimeStdDev()
RuntimeReport.getCanonizationTime()
public double getCanonizationTimeAverage()
RuntimeReport.getCanonizationTime()
public double getOtherTimeStdDev()
RuntimeReport.getOtherTime()
public double getOtherTimeAverage()
RuntimeReport.getOtherTime()
public double getTotalTimeStdDev()
RuntimeReport.getTotalTime()
public double getTotalTimeAverage()
RuntimeReport.getTotalTime()
public java.util.List<RuntimeReport> getReports()
public void print()
public void print(java.io.PrintStream out)
out
- The stream to write to.public void writeData(java.io.PrintStream out)
out
- The stream to write to.private static final java.lang.String formatNanos(double nanos)
nanos
- The nanosecond time to format (will be rounded to the nearest long).RuntimeReport.formatNanos(long)
private double stdDev(java.util.LongSummaryStatistics stats, java.util.function.Function<RuntimeReport,java.lang.Long> field)
stats
- Summary statistics of the field to compute the standard deviation for.field
- The field to compute the standard deviation of.