2017-04-07 03:51:36 +08:00
|
|
|
#ifndef SDUST_H
|
|
|
|
|
#define SDUST_H
|
|
|
|
|
|
|
|
|
|
struct sdust_buf_s;
|
|
|
|
|
typedef struct sdust_buf_s sdust_buf_t;
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
extern "C" {
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// the simple interface
|
2017-04-07 22:45:50 +08:00
|
|
|
uint64_t *sdust(void *km, const uint8_t *seq, int l_seq, int T, int W, int *n);
|
2017-04-07 03:51:36 +08:00
|
|
|
|
|
|
|
|
// the following interface dramatically reduce heap allocations when sdust is frequently called.
|
2017-04-07 22:45:50 +08:00
|
|
|
sdust_buf_t *sdust_buf_init(void *km);
|
2017-04-07 03:51:36 +08:00
|
|
|
void sdust_buf_destroy(sdust_buf_t *buf);
|
|
|
|
|
const uint64_t *sdust_core(const uint8_t *seq, int l_seq, int T, int W, int *n, sdust_buf_t *buf);
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#endif
|