From 7d024ff384c1943f5c6c5818525c022ab107208c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Gauthier?= Date: Wed, 15 Jun 2022 12:01:51 +0200 Subject: [PATCH] first part and skeletton of growthrate thread --- Code-C/growthrate.c | 39 +++++++++++++++++++++++++++++++++++++++ Code-C/growthrate.h | 4 ++++ Code-C/main | Bin 40128 -> 40128 bytes Code-C/main.c | 13 +++++++++++++ Code-C/power.c | 3 ++- 5 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 Code-C/growthrate.c create mode 100644 Code-C/growthrate.h diff --git a/Code-C/growthrate.c b/Code-C/growthrate.c new file mode 100644 index 0000000..2f8d4fc --- /dev/null +++ b/Code-C/growthrate.c @@ -0,0 +1,39 @@ +#include "average.h" +#include "getArray.h" +#include "fileGestion.h" +#include "initialParameters.h" +#include "queue.h" + +/** + * @brief realize the growthRate calcul + * + * @param p array with all the values that will be used for the calcul + * @param powerArray array where results are stocked + */ +void growthRateCalculation(long **p, double powerArray[]){ + for(int i = 1; i < nCol; i++){ + int j = 0; + powerArray[i] = 0; + while(j < nRow-1){ + double aire = ( pow(p[j][i],2) + pow(p[j+1][i],2) ) / 2 * period; + powerArray[i] += aire; + j++; + } + powerArray[i] *= invTimeBandWidth; + } +} + +/** + * @brief function that realize all the action to write one lign in the file growthRateData.csv + * + * @param rawDataFileName name of the raw data file to use to realize the calcul + */ +void growthRate(char* rawDataFileName){ + long **p = getRawDataArray(rawDataFileName), ; + double gRate[nCol -1]; + if(p !=NULL){ + growthRateCalculation(p,gRate); + appendDataInFile("averageData.csv",aver,nCol-1); + freeArray(p,nRow); + } +} \ No newline at end of file diff --git a/Code-C/growthrate.h b/Code-C/growthrate.h new file mode 100644 index 0000000..107db51 --- /dev/null +++ b/Code-C/growthrate.h @@ -0,0 +1,4 @@ +#include +#include + +void growthRate(char* rawDataFileName); \ No newline at end of file diff --git a/Code-C/main b/Code-C/main index 46f740e740872bbff6a062446db9ba1ab0f986be..d66df7a1eabb898d6c12672dd586839b7d357733 100755 GIT binary patch delta 4271 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 diff --git a/Code-C/main.c b/Code-C/main.c index a66d853..1264c28 100644 --- a/Code-C/main.c +++ b/Code-C/main.c @@ -61,6 +61,19 @@ void *threadCalculBoth(void *vargp){ } } +void *threadGrowthRate(void *vargp){ + Pqueue rawDataQueue = firstRawDataQueue; + char* fileName; + while(rawDataWriteFlag){ + while(queueGetNextE(rawDataQueue) != NULL){ + rawDataQueue = queueGetNextE(rawDataQueue); + fileName = queueGetTabChar(rawDataQueue); + GrowthRate(fileName); + remove(fileName); + } + } +} + int main(int argc , char** argv){ diff --git a/Code-C/power.c b/Code-C/power.c index 66f4f75..6ac6709 100644 --- a/Code-C/power.c +++ b/Code-C/power.c @@ -30,7 +30,7 @@ void powerCalculation(long **p, double powerArray[]){ * @param N number of rows in the file * @param M number of columns in the file */ -void power(char* rawDataFileName){ +double * power(char* rawDataFileName){ long **p = getRawDataArray(rawDataFileName); double pw[nCol-1]; if(p !=NULL){ @@ -38,4 +38,5 @@ void power(char* rawDataFileName){ appendDataInFile("powerData.csv",pw,nCol-1); freeArray(p,nRow); } + return pw; } \ No newline at end of file