commit last state
[ppam-mpi.git] / code / src / Util / types.h
CommitLineData
81923e5c
BA
1#ifndef PPAM_TYPES_H
2#define PPAM_TYPES_H
3
4#include <stdint.h>
5
6// types of work given to a slave
7#define WORKTAG 1
8#define DIETAG 2
9
10// 256 characters for file name should be enough
11#define NCHAR_FNAME 256
12
13typedef unsigned char Byte;
14
15typedef double Real;
16
17// Type to describe a job to be done in a node
18//TODO: merge with packed version to avoid extra copy by MPI
19typedef struct Work_t {
20 // "structural" parameters:
21 char* inputFileName;
22 uint32_t nbSeries;
23 uint32_t* ranks;
24 // clustering parameters [to be completed]:
25 uint32_t nbClusters;
26 uint32_t clustOnMedoids; //a boolean, but 1 byte storage would be inefficient
27 uint32_t p_for_dissims;
28} Work_t;
29
30// Type returned by a worker (clusters labels and medoids)
31//TODO: merge with packed version to avoid extra copy by MPI
32typedef struct Result_t {
33 // parameters describing sizes
34 uint32_t nbClusters;
35 // informative parameters:
36 uint32_t* medoids_ID;
37 uint32_t* medoids_ranks;
38} Result_t;
39
40// data structure to store a customer ID + [time-]serie
41typedef struct PowerCurve {
42 uint32_t ID;
43 Real* values;
44} PowerCurve;
45
46#endif