WildRiver
wildriver.h
Go to the documentation of this file.
1 
13 #ifndef WILDRIVER_H
14 #define WILDRIVER_H
15 
16 
17 
18 
19 #include <stdlib.h>
20 #include <stdint.h>
21 
22 
23 
24 /******************************************************************************
25 * MACROS **********************************************************************
26 ******************************************************************************/
27 
28 #define WILDRIVER_VER_MAJOR 1
29 #define WILDRIVER_VER_MINOR 0
30 #define WILDRIVER_VER_SUBMINOR 0
31 
32 
33 
34 
35 /******************************************************************************
36 * TYPES ***********************************************************************
37 ******************************************************************************/
38 
39 
40 #ifndef WILDRIVER_INDEX_TYPE
41 #define WILDRIVER_INDEX_TYPE size_t
42 #endif
44 
45 
46 #ifndef WILDRIVER_DIMENSION_TYPE
47 #define WILDRIVER_DIMENSION_TYPE uint32_t
48 #endif
50 
51 
52 #ifndef WILDRIVER_VALUE_TYPE
53 #define WILDRIVER_VALUE_TYPE double
54 #endif
56 
57 
58 typedef struct {
59  int mode;
63  void * fd;
65 
66 
67 typedef struct {
68  int mode;
71  int nvwgt;
72  int ewgt;
73  void * fd;
75 
76 
77 typedef struct {
78  int mode;
80  void * fd;
82 
83 
95 };
96 
97 
101 };
102 
103 
104 
105 /******************************************************************************
106 * FUNCTION PROTOTYPES *********************************************************
107 ******************************************************************************/
108 
109 
110 #ifdef __cplusplus
111 extern "C" {
112 #endif
113 
114 
124  char const * fname,
125  int mode);
126 
127 
144  wildriver_matrix_handle * handle,
145  wildriver_ind_t * rowptr,
146  wildriver_dim_t * rowind,
147  wildriver_val_t * rowval,
148  double * progress);
149 
150 
167  wildriver_matrix_handle * handle,
168  wildriver_ind_t const * rowptr,
169  wildriver_dim_t const * rowind,
170  wildriver_val_t const * rowval,
171  double * progress);
172 
173 
180  wildriver_matrix_handle * handle);
181 
182 
192  char const * fname,
193  int mode);
194 
195 
211  wildriver_graph_handle * handle,
212  wildriver_ind_t * xadj,
213  wildriver_dim_t * adjncy,
214  wildriver_val_t * vwgt,
215  wildriver_val_t * adjwgt,
216  double * progress);
217 
218 
225  wildriver_graph_handle * handle);
226 
227 
237  char const * fname,
238  int mode);
239 
240 
253  wildriver_vector_handle * handle,
254  wildriver_val_t * vals,
255  double * progress);
256 
257 
270  wildriver_vector_handle * handle,
271  wildriver_val_t const * vals,
272  double * progress);
273 
274 
281  wildriver_vector_handle * handle);
282 
283 
284 
285 /******************************************************************************
286 * DEPRECATED FUNCTIONS ********************************************************
287 ******************************************************************************/
288 
289 
304  char const * fname,
305  wildriver_dim_t * r_nrows,
306  wildriver_dim_t * r_ncols,
307  wildriver_ind_t * r_nnz,
308  wildriver_ind_t ** r_rowptr,
309  wildriver_dim_t ** r_rowind,
310  wildriver_val_t ** r_rowval);
311 
312 
327  char const * fname,
328  wildriver_dim_t nrows,
329  wildriver_dim_t ncols,
330  wildriver_ind_t nnz,
331  wildriver_ind_t const * rowptr,
332  wildriver_dim_t const * rowind,
333  wildriver_val_t const * rowval);
334 
335 
354  char const * fname,
355  wildriver_dim_t * r_nvtxs,
356  wildriver_ind_t * r_nedges,
357  int * r_nvwgts,
358  int * r_ewgts,
359  wildriver_ind_t ** r_xadj,
360  wildriver_dim_t ** r_adjncy,
361  wildriver_val_t ** r_vwgt,
362  wildriver_val_t ** r_adjwgt);
363 
364 
380  char const * fname,
381  wildriver_dim_t nvtxs,
382  wildriver_ind_t nedges,
383  int nvwgts,
384  wildriver_ind_t const * xadj,
385  wildriver_dim_t const * adjncy,
386  wildriver_val_t const * vwgt,
387  wildriver_val_t const * adjwgt);
388 
389 
390 
391 
392 #ifdef __cplusplus
393 }
394 #endif
395 
396 
397 
398 
399 #endif
wildriver_vector_handle * wildriver_open_vector(char const *fname, int mode)
Open a vector for reading. The returned handle must be closed.
void * fd
Definition: wildriver.h:80
void wildriver_close_matrix(wildriver_matrix_handle *handle)
Close an open matrix.
wildriver_matrix_handle * wildriver_open_matrix(char const *fname, int mode)
Open a matrix for reading. The returned handle must be closed.
wildriver_dim_t nrows
Definition: wildriver.h:60
Definition: wildriver.h:94
int wildriver_save_matrix(wildriver_matrix_handle *handle, wildriver_ind_t const *rowptr, wildriver_dim_t const *rowind, wildriver_val_t const *rowval, double *progress)
Save the matrix after setting nrows, ncols, and nnz in the handle.
Definition: wildriver.h:89
wildriver_ind_t size
Definition: wildriver.h:79
wildriver_graph_handle * wildriver_open_graph(char const *fname, int mode)
Open a graph for reading. The returned handle must be closed.
#define WILDRIVER_INDEX_TYPE
Definition: wildriver.h:41
WILDRIVER_DIMENSION_TYPE wildriver_dim_t
Definition: wildriver.h:49
int nvwgt
Definition: wildriver.h:71
Definition: wildriver.h:88
int wildriver_read_graph(char const *fname, wildriver_dim_t *r_nvtxs, wildriver_ind_t *r_nedges, int *r_nvwgts, int *r_ewgts, wildriver_ind_t **r_xadj, wildriver_dim_t **r_adjncy, wildriver_val_t **r_vwgt, wildriver_val_t **r_adjwgt)
Read a graph from the given path into a CSR data-structure.
wildriver_ind_t nedges
Definition: wildriver.h:70
int wildriver_load_matrix(wildriver_matrix_handle *handle, wildriver_ind_t *rowptr, wildriver_dim_t *rowind, wildriver_val_t *rowval, double *progress)
Load the matrix into the given memory locations.
Definition: wildriver.h:67
WILDRIVER_VALUE_TYPE wildriver_val_t
Definition: wildriver.h:55
int mode
Definition: wildriver.h:68
Definition: wildriver.h:99
Definition: wildriver.h:58
int wildriver_read_matrix(char const *fname, wildriver_dim_t *r_nrows, wildriver_dim_t *r_ncols, wildriver_ind_t *r_nnz, wildriver_ind_t **r_rowptr, wildriver_dim_t **r_rowind, wildriver_val_t **r_rowval)
Read a matrix from the given path into a CSR data-structure.
int mode
Definition: wildriver.h:59
Definition: wildriver.h:85
wildriver_dim_t nvtxs
Definition: wildriver.h:69
Definition: wildriver.h:100
void wildriver_close_graph(wildriver_graph_handle *handle)
Close an open graph.
#define WILDRIVER_DIMENSION_TYPE
Definition: wildriver.h:47
int wildriver_write_graph(char const *fname, wildriver_dim_t nvtxs, wildriver_ind_t nedges, int nvwgts, wildriver_ind_t const *xadj, wildriver_dim_t const *adjncy, wildriver_val_t const *vwgt, wildriver_val_t const *adjwgt)
Write a graph to the given path from a CSR data-structure.
Definition: wildriver.h:90
int wildriver_save_vector(wildriver_vector_handle *handle, wildriver_val_t const *vals, double *progress)
Save a vactor from the given memory location.
wildriver_format_t
Definition: wildriver.h:84
WILDRIVER_INDEX_TYPE wildriver_ind_t
Definition: wildriver.h:43
void * fd
Definition: wildriver.h:63
Definition: wildriver.h:87
wildriver_dim_t ncols
Definition: wildriver.h:61
int ewgt
Definition: wildriver.h:72
void wildriver_close_vector(wildriver_vector_handle *handle)
Close an open vector.
Definition: wildriver.h:91
Definition: wildriver.h:92
int mode
Definition: wildriver.h:78
wildriver_mode_t
Definition: wildriver.h:98
int wildriver_load_vector(wildriver_vector_handle *handle, wildriver_val_t *vals, double *progress)
Load a vector into the given memory location.
void * fd
Definition: wildriver.h:73
Definition: wildriver.h:86
int wildriver_write_matrix(char const *fname, wildriver_dim_t nrows, wildriver_dim_t ncols, wildriver_ind_t nnz, wildriver_ind_t const *rowptr, wildriver_dim_t const *rowind, wildriver_val_t const *rowval)
Write a matrix file to the given path from a CSR data-structure.
Definition: wildriver.h:93
wildriver_ind_t nnz
Definition: wildriver.h:62
Definition: wildriver.h:77
int wildriver_load_graph(wildriver_graph_handle *handle, wildriver_ind_t *xadj, wildriver_dim_t *adjncy, wildriver_val_t *vwgt, wildriver_val_t *adjwgt, double *progress)
Load the graph into the given memory locations.
#define WILDRIVER_VALUE_TYPE
Definition: wildriver.h:53