#include "data_structures.h"
+struct RttKey
+{
+ uint32_t saddr, daddr;
+};
+
typedef struct
{
unsigned int inversionNb,
tooFastNb,
- noRTTInfoNb;
-} TracePairStats;
+ noRTTInfoNb,
+ total;
+} MessageStats;
typedef struct
{
double broadcastDiffSum;
- TracePairStats** allStats;
+ unsigned int broadcastNb;
+
+ MessageStats** messageStats;
+ /* double* exchangeRtt[RttKey]
+ * For this table, saddr and daddr are swapped as necessary such that
+ * saddr < daddr */
+ GHashTable* exchangeRtt;
} AnalysisStatsEval;
-struct RttKey
+typedef struct
{
- uint32_t saddr, daddr;
-};
+ /* FILE* ttPoints[row][col] where
+ * row= outE->traceNum
+ * col= inE->traceNum
+ *
+ * This array contains file pointers to files where "trip times" (message
+ * latency) histogram values are outputted. Each trace-pair has two files,
+ * one for each message direction. The elements on the diagonal are not
+ * initialized.
+ */
+ FILE*** ttPoints;
+
+ // uint32_t ttBinsArray[row][col][binNum];
+ // Row and col have the same structure as ttPoints
+ uint32_t*** ttBinsArray;
+ // uint32_t ttBinsTotal[row][col];
+ // Row and col have the same structure as ttPoints
+ uint32_t** ttBinsTotal;
+
+ /* FILE* hrttPoints[traceNum][traceNum] where
+ * row > col, other elements are not initialized
+ *
+ * This array contains file pointers to files where half round trip times
+ * (evaluated from exchanges) histogram values are outputted.
+ */
+ FILE*** hrttPoints;
+
+ // uint32_t hrttBinsArray[row][col][binNum];
+ // Row and col have the same structure as hrttPoints
+ uint32_t*** hrttBinsArray;
+ // uint32_t hrttBinsTotal[row][col];
+ // Row and col have the same structure as hrttPoints
+ uint32_t** hrttBinsTotal;
+} AnalysisGraphsEval;
typedef struct
{
GHashTable* rttInfo;
AnalysisStatsEval* stats;
+ AnalysisGraphsEval* graphs;
} AnalysisDataEval;
#endif