Program Listing for File core/utils.h#

Return to documentation for file (oti/core/utils.h)

#ifndef OTI_CORE_UTILS_H
#define OTI_CORE_UTILS_H

extern void (*__PY_ERROR_OTI_EXIT)(int64_t);
extern uint64_t is_python_error_def;

// extern void (**__PY_ERROR_OTI_EXIT_ptr)(int64_t);
// extern uint64_t* is_python_error_def_ptr;

void set_global_test(int x);
void print_global_test(void);
void print_python_error_def(void );
void start_python_error_function(void);
void set_python_error_function(void (*error_function)(int64_t));
void usage_python_error_function(void (*error_function)(int64_t), int64_t error_id, int64_t status);
void error_exit(int64_t error_id);

/**************************************************************************************************/
int64_t slice_size(int64_t start, int64_t stop, int64_t step);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
uint64_t binSearchUI64(  uint64_t elem, uint64_t* p_arr, uint64_t size, flag_t* flag);
// ----------------------------------------------------------------------------------------------------



/**************************************************************************************************/
void printArrayDBL(    double* ptr_, uint64_t n );
void printArrayUI64( uint64_t* ptr_, uint64_t n );
void printArrayUI16( uint16_t* ptr_, uint8_t  n );
void printArrayUI8(   uint8_t* ptr_, uint8_t  n );
// ----------------------------------------------------------------------------------------------------



/**************************************************************************************************/
uint8_t  array2d_getel_ui8_t(  uint8_t*  arr,uint64_t ncols, uint64_t i, uint64_t j );
uint16_t array2d_getel_ui16_t( uint16_t* arr,uint64_t ncols, uint64_t i, uint64_t j );
uint32_t array2d_getel_ui32_t( uint32_t* arr,uint64_t ncols, uint64_t i, uint64_t j );
uint64_t array2d_getel_ui64_t( uint64_t* arr,uint64_t ncols, uint64_t i, uint64_t j );
double   array2d_getel_f64_t(  double*   arr,uint64_t ncols, uint64_t i, uint64_t j );
float    array2d_getel_f32_t(  float*    arr,uint64_t ncols, uint64_t i, uint64_t j );
// ----------------------------------------------------------------------------------------------------


/**************************************************************************************************/
uint8_t is_openmp_compiled(void);
// ----------------------------------------------------------------------------------------------------



#endif