Grassroots Infrastructure
The Grassroots Infrastructure is a suite of computing tools to help users and developers use scientific data infrastructure that can easily be interconnected.
statistics.h
Go to the documentation of this file.
1 /*
2  * statistics.h
3  *
4  * Created on: 13 Mar 2022
5  * Author: billy
6  */
7 
8 #ifndef CORE_SHARED_UTIL_INCLUDE_STATISTICS_H_
9 #define CORE_SHARED_UTIL_INCLUDE_STATISTICS_H_
10 
11 #include <stddef.h>
12 
13 #include "jansson.h"
14 
15 
16 #include "typedefs.h"
18 
19 
20 
21 typedef struct Statistics
22 {
24 
25  double64 st_min;
26 
27  double64 st_max;
28 
29  double64 st_mean;
30 
31  double64 st_variance;
32 
33  double64 st_std_dev;
34 
35  double64 st_sum;
36 
37 } Statistics;
38 
39 
40 
41 typedef struct StatisticsTool
42 {
44 
45  size_t st_num_values;
46 
47  double64 *st_values_p;
48 
50 
52 
53 
54 
55 
58 #ifdef __cplusplus
59 extern "C"
60 {
61 #endif
62 
63 
65 
66 
68 
69 
70 GRASSROOTS_UTIL_API bool AddStatisticsValue (StatisticsTool *stats_tool_p, const double64 value);
71 
72 
74 
75 
77 
78 
80 
81 
83 
84 
86 
87 
88 GRASSROOTS_UTIL_API json_t *GetStatisticsAsJSON (const Statistics *stats_p);
89 
90 
91 GRASSROOTS_UTIL_API Statistics *GetStatisticsFromJSON (const json_t *stats_json_p);
92 
93 
94 #ifdef __cplusplus
95 }
96 #endif
97 
98 
99 
100 
101 #endif /* CORE_SHARED_UTIL_INCLUDE_STATISTICS_H_ */
StatisticsTool::st_current_index
size_t st_current_index
Definition: statistics.h:49
ClearStatistics
void ClearStatistics(Statistics *stats_p)
Statistics
Definition: statistics.h:21
grassroots_util_library.h
Statistics::st_population_size
size_t st_population_size
Definition: statistics.h:23
Statistics::st_min
double64 st_min
Definition: statistics.h:25
FreeStatisticsTool
void FreeStatisticsTool(StatisticsTool *stats_tool_p)
Statistics::st_mean
double64 st_mean
Definition: statistics.h:29
CopyStatistics
Statistics * CopyStatistics(const Statistics *src_p)
StatisticsTool
Definition: statistics.h:41
typedefs.h
GetStatisticsAsJSON
json_t * GetStatisticsAsJSON(const Statistics *stats_p)
ResetStatisticsTool
void ResetStatisticsTool(StatisticsTool *stats_tool_p)
StatisticsTool::st_num_values
size_t st_num_values
Definition: statistics.h:45
Statistics::st_variance
double64 st_variance
Definition: statistics.h:31
Statistics::st_sum
double64 st_sum
Definition: statistics.h:35
Statistics::st_std_dev
double64 st_std_dev
Definition: statistics.h:33
StatisticsTool::st_values_p
double64 * st_values_p
Definition: statistics.h:47
StatisticsTool::st_stats
Statistics st_stats
Definition: statistics.h:43
AllocateStatisticsTool
StatisticsTool * AllocateStatisticsTool(size_t num_entries)
GetStatisticsFromJSON
Statistics * GetStatisticsFromJSON(const json_t *stats_json_p)
GRASSROOTS_UTIL_API
#define GRASSROOTS_UTIL_API
Definition: grassroots_util_library.h:47
Statistics::st_max
double64 st_max
Definition: statistics.h:27
FreeStatistics
void FreeStatistics(Statistics *stats_p)
CalculateStatistics
void CalculateStatistics(StatisticsTool *stats_tool_p)
AddStatisticsValue
bool AddStatisticsValue(StatisticsTool *stats_tool_p, const double64 value)