tinysvm_wrap.c
来自「机器学习工具:非常流行的一种分类器」· C语言 代码 · 共 1,300 行 · 第 1/3 页
C
1,300 行
/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 1.3.6u-20010826-1259 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */#define SWIGPYTHON/*********************************************************************** * common.swg * * This file contains generic SWIG runtime support for pointer * type checking as well as a few commonly used macros to control * external linkage. * * Author : David Beazley (beazley@cs.uchicago.edu) * * Copyright (c) 1999-2000, The University of Chicago * * This file may be freely redistributed without license or fee provided * this copyright message remains intact. ************************************************************************/#include <string.h>#if defined(_WIN32) || defined(__WIN32__)# if defined(_MSC_VER)# if defined(STATIC_LINKED)# define SWIGEXPORT(a) a# else# define SWIGEXPORT(a) __declspec(dllexport) a# endif# else# if defined(__BORLANDC__)# define SWIGEXPORT(a) a _export# else# define SWIGEXPORT(a) a# endif#endif#else# define SWIGEXPORT(a) a#endif#ifdef SWIG_GLOBAL#define SWIGRUNTIME(a) SWIGEXPORT(a)#else#define SWIGRUNTIME(a) static a#endif#ifdef __cplusplusextern "C" {#endiftypedef struct swig_type_info { const char *name; void *(*converter)(void *); const char *str; struct swig_type_info *next; struct swig_type_info *prev;} swig_type_info;#ifdef SWIG_NOINCLUDESWIGEXPORT(swig_type_info *) SWIG_TypeRegister(swig_type_info *);SWIGEXPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *);SWIGEXPORT(void *) SWIG_TypeCast(swig_type_info *, void *);SWIGEXPORT(swig_type_info *) SWIG_TypeQuery(const char *);#elsestatic swig_type_info *swig_type_list = 0;/* Register a type mapping with the type-checking */SWIGRUNTIME(swig_type_info *)SWIG_TypeRegister(swig_type_info *ti){ swig_type_info *tc, *head, *ret, *next; /* Check to see if this type has already been registered */ tc = swig_type_list; while (tc) { if (strcmp(tc->name, ti->name) == 0) { /* Already exists in the table. Just add additional types to the list */ head = tc; next = tc->next; goto l1; } tc = tc->prev; } head = ti; next = 0; /* Place in list */ ti->prev = swig_type_list; swig_type_list = ti; /* Build linked lists */ l1: ret = head; tc = ti + 1; /* Patch up the rest of the links */ while (tc->name) { head->next = tc; tc->prev = head; head = tc; tc++; } head->next = next; return ret;}/* Check the typename */SWIGRUNTIME(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *ty){ swig_type_info *s; if (!ty) return 0; /* Void pointer */ s = ty->next; /* First element always just a name */ while (s) { if (strcmp(s->name,c) == 0) { if (s == ty->next) return s; /* Move s to the top of the linked list */ s->prev->next = s->next; if (s->next) { s->next->prev = s->prev; } /* Insert s as second element in the list */ s->next = ty->next; if (ty->next) ty->next->prev = s; ty->next = s; return s; } s = s->next; } return 0;}/* Cast a pointer (needed for C++ inheritance */SWIGRUNTIME(void *) SWIG_TypeCast(swig_type_info *ty, void *ptr) { if ((!ty) || (!ty->converter)) return ptr; return (*ty->converter)(ptr);}/* Search for a swig_type_info structure */SWIGRUNTIME(swig_type_info *)SWIG_TypeQuery(const char *name) { swig_type_info *ty = swig_type_list; while (ty) { if (ty->str && (strcmp(name,ty->str) == 0)) return ty; if (ty->name && (strcmp(name,ty->name) == 0)) return ty; ty = ty->prev; } return 0;}#endif#ifdef __cplusplus}#endif/*********************************************************************** * python.swg * * This file contains the runtime support for Python modules * and includes code for managing global variables and pointer * type checking. * * Author : David Beazley (beazley@cs.uchicago.edu) ************************************************************************/#include <stdlib.h>#include "Python.h"#ifdef __cplusplusextern "C" {#endif#define SWIG_PY_INT 1#define SWIG_PY_FLOAT 2#define SWIG_PY_STRING 3#define SWIG_PY_POINTER 4/* Constant information structure */typedef struct swig_const_info { int type; char *name; long lvalue; double dvalue; void *pvalue; swig_type_info **ptype;} swig_const_info;#ifdef SWIG_NOINCLUDESWIGEXPORT(PyObject *) SWIG_newvarlink();SWIGEXPORT(void) SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *));SWIGEXPORT(int) SWIG_ConvertPtr(PyObject *, void **, swig_type_info *, int);SWIGEXPORT(void) SWIG_MakePtr(char *c, void *, swig_type_info *);SWIGEXPORT(PyObject *) SWIG_NewPointerObj(void *, swig_type_info *);SWIGEXPORT(void) SWIG_InstallConstants(PyObject *d, swig_const_info constants[]);#else/* ----------------------------------------------------------------------------- * global variable support code. * ----------------------------------------------------------------------------- */typedef struct swig_globalvar { char *name; /* Name of global variable */ PyObject *(*get_attr)(void); /* Return the current value */ int (*set_attr)(PyObject *); /* Set the value */ struct swig_globalvar *next;} swig_globalvar;typedef struct swig_varlinkobject { PyObject_HEAD swig_globalvar *vars;} swig_varlinkobject;static PyObject *swig_varlink_repr(swig_varlinkobject *v) { v = v; return PyString_FromString("<Global variables>");}static intswig_varlink_print(swig_varlinkobject *v, FILE *fp, int flags) { swig_globalvar *var; flags = flags; fprintf(fp,"Global variables { "); for (var = v->vars; var; var=var->next) { fprintf(fp,"%s", var->name); if (var->next) fprintf(fp,", "); } fprintf(fp," }\n"); return 0;}static PyObject *swig_varlink_getattr(swig_varlinkobject *v, char *n) { swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { return (*var->get_attr)(); } var = var->next; } PyErr_SetString(PyExc_NameError,"Unknown C global variable"); return NULL;}static intswig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) { swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { return (*var->set_attr)(p); } var = var->next; } PyErr_SetString(PyExc_NameError,"Unknown C global variable"); return 1;}statichere PyTypeObject varlinktype = { PyObject_HEAD_INIT(0) 0, "swigvarlink", /* Type name */ sizeof(swig_varlinkobject), /* Basic size */ 0, /* Itemsize */ 0, /* Deallocator */ (printfunc) swig_varlink_print, /* Print */ (getattrfunc) swig_varlink_getattr, /* get attr */ (setattrfunc) swig_varlink_setattr, /* Set attr */ 0, /* tp_compare */ (reprfunc) swig_varlink_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_mapping*/ 0, /* tp_hash */};/* Create a variable linking object for use later */SWIGRUNTIME(PyObject *)SWIG_newvarlink(void) { swig_varlinkobject *result = 0; result = PyMem_NEW(swig_varlinkobject,1); varlinktype.ob_type = &PyType_Type; /* Patch varlinktype into a PyType */ result->ob_type = &varlinktype; result->vars = 0; result->ob_refcnt = 0; Py_XINCREF((PyObject *) result); return ((PyObject*) result);}SWIGRUNTIME(void)SWIG_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { swig_varlinkobject *v; swig_globalvar *gv; v= (swig_varlinkobject *) p; gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); gv->name = (char *) malloc(strlen(name)+1); strcpy(gv->name,name); gv->get_attr = get_attr; gv->set_attr = set_attr; gv->next = v->vars; v->vars = gv;}/* Convert a pointer value */SWIGRUNTIME(int)SWIG_ConvertPtr(PyObject *obj, void **ptr, swig_type_info *ty, int flags) { unsigned long p; register int d; swig_type_info *tc; char *c; static PyObject *SWIG_this = 0; int newref = 0; if (!obj || (obj == Py_None)) { *ptr = 0; return 0; }#ifdef SWIG_COBJECT_TYPES if (!(PyCObject_Check(obj))) { if (!SWIG_this) SWIG_this = PyString_InternFromString("this"); obj = PyObject_GetAttr(obj,SWIG_this); newref = 1; if (!obj) goto type_error; if (!PyCObject_Check(obj)) { Py_DECREF(obj); goto type_error; } } *ptr = PyCObject_AsVoidPtr(obj); c = (char *) PyCObject_GetDesc(obj); if (newref) Py_DECREF(obj); goto cobject;#else if (!(PyString_Check(obj))) { if (!SWIG_this) SWIG_this = PyString_InternFromString("this"); obj = PyObject_GetAttr(obj,SWIG_this); newref = 1; if (!obj) goto type_error; if (!PyString_Check(obj)) { Py_DECREF(obj); goto type_error; } } c = PyString_AsString(obj); p = 0; /* Pointer values must start with leading underscore */ if (*c != '_') { *ptr = (void *) 0; if (strcmp(c,"NULL") == 0) { if (newref) Py_DECREF(obj); return 0; } else { if (newref) Py_DECREF(obj); goto type_error; } } c++; /* Extract hex value from pointer */ while ((d = *c)) { if ((d >= '0') && (d <= '9')) p = (p << 4) + (d - '0'); else if ((d >= 'a') && (d <= 'f')) p = (p << 4) + (d - ('a'-10)); else break; c++; } *ptr = (void *) p; if (newref) Py_DECREF(obj);#endif#ifdef SWIG_COBJECT_TYPEScobject:#endif if (ty) { tc = SWIG_TypeCheck(c,ty); if (!tc) goto type_error; *ptr = SWIG_TypeCast(tc,(void*)p); } return 0;type_error: if (flags) { if (ty) { char *temp = (char *) malloc(64+strlen(ty->name)); sprintf(temp,"Type error. Expected %s", ty->name); PyErr_SetString(PyExc_TypeError, temp); free((char *) temp); } else { PyErr_SetString(PyExc_TypeError,"Expected a pointer"); } } return -1;}/* Take a pointer and convert it to a string */SWIGRUNTIME(void) SWIG_MakePtr(char *c, void *ptr, swig_type_info *ty) { static char hex[17] = "0123456789abcdef"; unsigned long p, s; char result[32], *r; r = result; p = (unsigned long) ptr; if (p > 0) { while (p > 0) { s = p & 0xf; *(r++) = hex[s]; p = p >> 4; } *r = '_'; while (r >= result) *(c++) = *(r--); strcpy (c, ty->name); } else { strcpy (c, "NULL"); }}/* Create a new pointer object */SWIGRUNTIME(PyObject *)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?