#ifndef GENLIB_H
#define GENLIB_H 1
#include "genlib_common.h"
#ifndef GEN_WINDOWS
#ifndef _SIZE_T
#define _SIZE_T
typedef __typeof__(sizeof(int)) size_t;
#endif
#endif
#ifndef __INT32_TYPE__
#define __INT32_TYPE__ int
#endif
#ifdef MSP_ON_CLANG
typedef unsigned __INT32_TYPE__ uint32_t;
typedef unsigned __INT64_TYPE__ uint64_t;
#else
#ifdef __GNUC__
#include <stdint.h>
#endif
#endif
#define inf (__DBL_MAX__)
#define GEN_UINT_MAX (4294967295)
#define TWO_TO_32 (4294967296.0)
#define C74_CONST const
#ifdef C74_X64
typedef unsigned long long t_ptr_uint;
typedef long long t_ptr_int;
typedef double t_atom_float;
typedef t_ptr_uint t_getbytes_size;
#else
typedef unsigned long t_ptr_uint;
typedef long t_ptr_int;
typedef float t_atom_float;
typedef short t_getbytes_size;
#endif
typedef uint32_t t_uint32;
typedef t_ptr_int t_atom_long;
typedef t_ptr_int t_int; typedef t_ptr_uint t_ptr_size; typedef t_ptr_int t_atom_long; typedef t_atom_long t_max_err;
#define malloc_size(x) sizeof(x)
#include "basicmaths.h"
#undef RAND_MAX
#define RAND_MAX UINT32_MAX
#define tan(x) fastertanfull(x)
#define tanh(x) tanhf(x)
extern "C" {
void * genlib_obtain_reference_from_string(const char * name);
char *genlib_reference_getname(void *ref);
t_genlib_buffer *genlib_obtain_buffer_from_reference(void *ref);
t_genlib_err genlib_buffer_edit_begin(t_genlib_buffer *b);
t_genlib_err genlib_buffer_edit_end(t_genlib_buffer *b, long valid);
t_genlib_err genlib_buffer_getinfo(t_genlib_buffer *b, t_genlib_buffer_info *info);
void genlib_buffer_dirty(t_genlib_buffer *b);
t_genlib_err genlib_buffer_perform_begin(t_genlib_buffer *b);
void genlib_buffer_perform_end(t_genlib_buffer *b);
t_genlib_data *genlib_obtain_data_from_reference(void *ref);
t_genlib_err genlib_data_getinfo(t_genlib_data *b, t_genlib_data_info *info);
void genlib_data_resize(t_genlib_data *b, long dim, long channels);
void genlib_data_setbuffer(t_genlib_data *b, void *ref);
void genlib_data_release(t_genlib_data *b);
void genlib_data_setcursor(t_genlib_data *b, long cursor);
long genlib_data_getcursor(t_genlib_data *b);
void genlib_reset_complete(void *data);
size_t genlib_getstatesize(CommonState *cself, getparameter_method getmethod);
short genlib_getstate(CommonState *cself, char *state, getparameter_method getmethod);
short genlib_setstate(CommonState *cself, const char *state, setparameter_method setmethod);
};
#define genlib_sysmem_newptr(s) sysmem_newptr(s)
#define genlib_sysmem_newptrclear(s) sysmem_newptrclear(s)
#define genlib_sysmem_resizeptr(p, s) sysmem_resizeptr(p, s)
#define genlib_sysmem_resizeptrclear(p, s) sysmem_resizeptrclear(p, s)
#define genlib_sysmem_ptrsize(p) sysmem_ptrsize(p)
#define genlib_sysmem_freeptr(p) sysmem_freeptr(p)
#define genlib_sysmem_copyptr(s, d, b) sysmem_copyptr(s, d, b)
#define genlib_set_zero64(d, n) set_zero64(d, n)
#define genlib_ticks systime_ticks
#endif