#if !defined(_XVEC_H_) #define _XVEC_H_ 1 #include #include #include typedef enum { XVEC_ADD_INT = 0, XVEC_SUB_INT, XVEC_ADD_FLOAT, XVEC_SUB_FLOAT } xvec_op_t; typedef struct { int count; int elsize; void* data; } xvec_t; typedef struct { int count; xvec_t idxs; xvec_t vals; } xvec_idval_t; extern int xvec_init(xvec_t*, int, int); extern void xvec_fini(xvec_t*); extern int xvec_zero(xvec_t*); extern int xvec_resize(xvec_t*, int); extern int xvec_op(xvec_t*, xvec_t*, xvec_op_t); extern int xvec_dup(xvec_t**, xvec_t*); extern int xvec_put(xvec_t*, int, void*); extern int xvec_get(xvec_t*, int, void*); extern int xvec_idval_init(xvec_idval_t*, int); extern void xvec_idval_fini(xvec_idval_t*); extern int xvec_idval_store(xvec_idval_t*, int, float); extern int xvec_idval_store_idx(xvec_idval_t*, int); extern int xvec_fill_idval(xvec_idval_t*, xvec_t*); extern int xvec_idval(xvec_t*, xvec_idval_t*, xvec_op_t); #endif