00001 #ifndef __EH_DATA_RECORD_H__
00002 #define __EH_DATA_RECORD_H__
00003
00004 #include <glib.h>
00005 #include <utils/eh_types.h>
00006 #include <utils/eh_symbol_table.h>
00007
00008 #define EH_FAST_DIM_ROW (0)
00009 #define EH_FAST_DIM_COL (1)
00010
00011 new_handle( Eh_data_record );
00012
00013 Eh_data_record eh_data_record_new ( void );
00014 Eh_data_record eh_data_record_destroy ( Eh_data_record p );
00015 void eh_data_record_print ( Eh_data_record p ,
00016 char *rec_name ,
00017 char *delim ,
00018 gboolean row_major ,
00019 gboolean with_header ,
00020 FILE *fp );
00021 int eh_data_record_size ( Eh_data_record p ,
00022 int dim );
00023 Eh_symbol_table eh_data_record_table ( Eh_data_record p );
00024 double* eh_data_record_row ( Eh_data_record p ,
00025 gssize row );
00026 double* eh_data_record_dup_row ( Eh_data_record p ,
00027 gssize row );
00028 void eh_data_record_set_row ( Eh_data_record p ,
00029 int row ,
00030 double* a );
00031 void eh_data_record_add_row ( Eh_data_record p ,
00032 double* a );
00033 void eh_data_record_add_column ( Eh_data_record p ,
00034 double* a );
00035 void eh_data_record_add_label ( Eh_data_record p ,
00036 char *label ,
00037 char *value );
00038 void eh_data_record_interpolate_rows( Eh_data_record p ,
00039 gssize row ,
00040 double* y ,
00041 gssize new_len );
00042 Eh_data_record* eh_data_record_scan_file ( const char* file ,
00043 const char* delim ,
00044 int fast_dim ,
00045 gboolean with_header ,
00046 GError** error );
00047 Eh_data_record eh_data_record_scan ( GScanner* s ,
00048 const char* delim ,
00049 int fast_dim ,
00050 gboolean with_header );
00051
00052 #endif
00053