X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=lttv%2Flttv%2Fsync%2Fevent_analysis_linreg.c;h=764a635fa5e536f127a015adb51d6d13d163662d;hb=c6356aa749f534f9bc0aa6315d41bff0e69a6ef9;hp=10dc8d78de9af947d6fb2c06dd057f14a9b9e11e;hpb=10341d26543c63ff318a4cf5cb163bccdc58b19d;p=lttv.git diff --git a/lttv/lttv/sync/event_analysis_linreg.c b/lttv/lttv/sync/event_analysis_linreg.c index 10dc8d78..764a635f 100644 --- a/lttv/lttv/sync/event_analysis_linreg.c +++ b/lttv/lttv/sync/event_analysis_linreg.c @@ -27,7 +27,7 @@ #include #include -#include "sync_chain_lttv.h" +#include "sync_chain.h" #include "event_analysis_linreg.h" @@ -44,8 +44,8 @@ static void destroyAnalysisLinReg(SyncState* const syncState); static void analyzeExchangeLinReg(SyncState* const syncState, Exchange* const exchange); static GArray* finalizeAnalysisLinReg(SyncState* const syncState); static void printAnalysisStatsLinReg(SyncState* const syncState); -static void writeAnalysisGraphsPlotsLinReg(FILE* stream, SyncState* const - syncState, const unsigned int i, const unsigned int j); +static void writeAnalysisGraphsPlotsLinReg(SyncState* const syncState, const + unsigned int i, const unsigned int j); // Functions specific to this module static void registerAnalysisLinReg() __attribute__((constructor (102))); @@ -71,13 +71,12 @@ static AnalysisModule analysisModuleLinReg= { .name= "linreg", .initAnalysis= &initAnalysisLinReg, .destroyAnalysis= &destroyAnalysisLinReg, - .analyzeMessage= NULL, .analyzeExchange= &analyzeExchangeLinReg, - .analyzeBroadcast= NULL, .finalizeAnalysis= &finalizeAnalysisLinReg, .printAnalysisStats= &printAnalysisStatsLinReg, - .writeAnalysisGraphsPlots= &writeAnalysisGraphsPlotsLinReg, - .writeAnalysisGraphsOptions= NULL, + .graphFunctions= { + .writeTraceTraceForePlots= &writeAnalysisGraphsPlotsLinReg, + } }; @@ -193,14 +192,14 @@ static void analyzeExchangeLinReg(SyncState* const syncState, Exchange* const ex // Calculate the intermediate values for the // least-squares analysis - dji= ((double) ackedMessage->inE->time - (double) ackedMessage->outE->time - + (double) exchange->message->outE->time - (double) - exchange->message->inE->time) / 2; - eji= fabs((double) ackedMessage->inE->time - (double) - ackedMessage->outE->time - (double) exchange->message->outE->time + - (double) exchange->message->inE->time) / 2; - timoy= ((double) ackedMessage->outE->time + (double) - exchange->message->inE->time) / 2; + dji= ((double) ackedMessage->inE->cpuTime - (double) ackedMessage->outE->cpuTime + + (double) exchange->message->outE->cpuTime - (double) + exchange->message->inE->cpuTime) / 2; + eji= fabs((double) ackedMessage->inE->cpuTime - (double) + ackedMessage->outE->cpuTime - (double) exchange->message->outE->cpuTime + + (double) exchange->message->inE->cpuTime) / 2; + timoy= ((double) ackedMessage->outE->cpuTime + (double) + exchange->message->inE->cpuTime) / 2; ni= ackedMessage->outE->traceNum; nj= ackedMessage->inE->traceNum; fit= &analysisData->fitArray[nj][ni]; @@ -745,13 +744,12 @@ static gint gcfGraphTraceCompare(gconstpointer a, gconstpointer b) * Write the analysis-specific graph lines in the gnuplot script. * * Args: - * stream: stream where to write the data * syncState: container for synchronization data * i: first trace number, on the x axis * j: second trace number, garanteed to be larger than i */ -void writeAnalysisGraphsPlotsLinReg(FILE* stream, SyncState* const syncState, - const unsigned int i, const unsigned int j) +void writeAnalysisGraphsPlotsLinReg(SyncState* const syncState, const unsigned + int i, const unsigned int j) { AnalysisDataLinReg* analysisData; Fit* fit; @@ -759,7 +757,7 @@ void writeAnalysisGraphsPlotsLinReg(FILE* stream, SyncState* const syncState, analysisData= (AnalysisDataLinReg*) syncState->analysisData; fit= &analysisData->fitArray[j][i]; - fprintf(stream, + fprintf(syncState->graphsStream, "\t%7g + %7g * x " "title \"Linreg conversion\" with lines " "linecolor rgb \"gray60\" linetype 1, \\\n",