00001 #ifndef OBSERVATION_H_
00002 #define OBSERVATION_H_
00003
00004 #include "cpm_model.h"
00005 #include <gsl/gsl_spline.h>
00006 #include <stdio.h>
00007 #ifdef HAVE_CONFIG_H
00008 #include "MPIBlib/benchmarks/mpib_measurement.h"
00009 #else
00010 #include "mpib_measurement.h"
00011 #endif
00012
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020
00022 typedef struct LinInterp_model {
00024 CPM_predictor predictor;
00026 int n;
00028 int num_points;
00030 gsl_spline** splines;
00032 gsl_interp_accel** accels;
00033 } LinInterp_model;
00034
00036 LinInterp_model* LinInterp_alloc(int size, int num_points);
00037
00039 void LinInterp_free(LinInterp_model* model);
00040
00042 void LinInterp_estimate(MPI_Comm comm, MPIB_precision precision, MPIB_msgset msgset, int parallel, LinInterp_model** _model);
00043
00045 void LinInterp_read(FILE* stream, LinInterp_model** model);
00046
00048 void LinInterp_write(FILE* stream, const LinInterp_model* model);
00049
00051 double LinInterp_predict_p2p(void* _this, int i, int j, int M);
00052
00053 #ifdef __cplusplus
00054 }
00055 #endif
00056
00060 #endif