Select Git revision
mouse.hpp 2.31 KiB
#include "kissinference/kissinference.h"
#include <stddef.h>
#include <onnxruntime_c_api.h>
#include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>
#define _USE_MATH_DEFINES
#include <math.h>
#define KISS_STRERROR_LEN 256
struct kiss_priv
{
const struct OrtApiBase *base_api;
const struct OrtApi *api;
OrtEnv *env;
OrtSession *session;
char err[KISS_STRERROR_LEN];
};
struct kiss_inference_req
{
struct kiss_network *net;
const char **input_names;
const OrtValue **input_tensors;
float *input_array;
OrtValue *input;
const char **output_names;
OrtValue **output_tensors;
void *user_data;
};
void kiss_inference_req_free(struct kiss_inference_req *req)
{
free(req->output_names);
if(req->input_array)
free(req->input_array);
free(req->input_tensors);
free(req->input_names);
free(req);
}
const struct kiss_version_fixed kiss_get_version(void)
{
static const struct kiss_version_fixed version = {1, 1, 0};
return version;
}
static void kiss_free_str_array(char **array)
{
char **ptr = array;
for(; *ptr; ptr++)
free(*ptr);
free(array);
}
void kiss_free_network(struct kiss_network *net)
{
if(net) {
kiss_free_network_prealloc(net);
free(net);
}
}
void kiss_free_network_prealloc(struct kiss_network *net)