⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svmc_wrap.c

📁 一个计算线性支持向量机的matlab源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
  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,  (char *)"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_Python_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_Python_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_Python_ConvertPtr(PyObject *obj, void **ptr, swig_type_info *ty, int flags) {  swig_type_info *tc;  char  *c = 0;  static PyObject *SWIG_this = 0;  int    newref = 0;  PyObject  *pyobj = 0;  if (!obj) return 0;  if (obj == Py_None) {    *ptr = 0;    return 0;  }#ifdef SWIG_COBJECT_TYPES  if (!(PyCObject_Check(obj))) {    if (!SWIG_this)      SWIG_this = PyString_FromString("this");    pyobj = obj;    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_FromString("this");    pyobj = obj;    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);  /* 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++;  c = SWIG_UnpackData(c,ptr,sizeof(void *));  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*) *ptr);  }  if ((pyobj) && (flags & SWIG_POINTER_DISOWN)) {    PyObject *zero = PyInt_FromLong(0);    PyObject_SetAttrString(pyobj,(char*)"thisown",zero);    Py_DECREF(zero);  }  return 0;type_error:  if (flags & SWIG_POINTER_EXCEPTION) {    if (ty && c) {      char *temp = (char *) malloc(64+strlen(ty->name)+strlen(c));      sprintf(temp,"Type error. Got %s, expected %s", c, ty->name);      PyErr_SetString(PyExc_TypeError, temp);      free((char *) temp);    } else {      PyErr_SetString(PyExc_TypeError,"Expected a pointer");    }  }  return -1;}/* Convert a pointer value, signal an exception on a type mismatch */SWIGRUNTIME(void *)SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) {  void *result;  SWIG_Python_ConvertPtr(obj, &result, ty, flags | SWIG_POINTER_EXCEPTION);  return result;}/* Convert a packed value value */SWIGRUNTIME(int)SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, int sz, swig_type_info *ty, int flags) {  swig_type_info *tc;  char  *c = 0;  if ((!obj) || (!PyString_Check(obj))) goto type_error;  c = PyString_AsString(obj);  /* Pointer values must start with leading underscore */  if (*c != '_') goto type_error;  c++;  c = SWIG_UnpackData(c,ptr,sz);  if (ty) {    tc = SWIG_TypeCheck(c,ty);    if (!tc) goto type_error;  }  return 0;type_error:  if (flags) {    if (ty && c) {      char *temp = (char *) malloc(64+strlen(ty->name)+strlen(c));      sprintf(temp,"Type error. Got %s, expected %s", c, ty->name);      PyErr_SetString(PyExc_TypeError, temp);      free((char *) temp);    } else {      PyErr_SetString(PyExc_TypeError,"Expected a pointer");    }  }  return -1;}/* Create a new pointer object */SWIGRUNTIME(PyObject *)SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int own) {  PyObject *robj;  if (!ptr) {    Py_INCREF(Py_None);    return Py_None;  }#ifdef SWIG_COBJECT_TYPES  robj = PyCObject_FromVoidPtrAndDesc((void *) ptr, (char *) type->name, NULL);#else  {    char result[1024];    char *r = result;    *(r++) = '_';    r = SWIG_PackData(r,&ptr,sizeof(void *));    strcpy(r,type->name);    robj = PyString_FromString(result);  }#endif  if (!robj || (robj == Py_None)) return robj;  if (type->clientdata) {    PyObject *inst;    PyObject *args = Py_BuildValue((char*)"(O)", robj);    Py_DECREF(robj);    inst = PyObject_CallObject((PyObject *) type->clientdata, args);    Py_DECREF(args);    if (inst) {      if (own) {        PyObject *n = PyInt_FromLong(1);        PyObject_SetAttrString(inst,(char*)"thisown",n);        Py_DECREF(n);      }      robj = inst;    }  }  return robj;}SWIGRUNTIME(PyObject *)SWIG_Python_NewPackedObj(void *ptr, int sz, swig_type_info *type) {  char result[1024];  char *r = result;  if ((2*sz + 1 + strlen(type->name)) > 1000) return 0;  *(r++) = '_';  r = SWIG_PackData(r,ptr,sz);  strcpy(r,type->name);  return PyString_FromString(result);}/* Install Constants */SWIGRUNTIME(void)SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) {  int i;  PyObject *obj;  for (i = 0; constants[i].type; i++) {    switch(constants[i].type) {    case SWIG_PY_INT:      obj = PyInt_FromLong(constants[i].lvalue);      break;    case SWIG_PY_FLOAT:      obj = PyFloat_FromDouble(constants[i].dvalue);      break;    case SWIG_PY_STRING:      obj = PyString_FromString((char *) constants[i].pvalue);      break;    case SWIG_PY_POINTER:      obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);      break;    case SWIG_PY_BINARY:      obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));      break;    default:      obj = 0;      break;    }    if (obj) {      PyDict_SetItemString(d,constants[i].name,obj);      Py_DECREF(obj);    }  }}#endif/* Contract support */#define SWIG_contract_assert(expr, msg) if (!(expr)) { PyErr_SetString(PyExc_RuntimeError, (char *) msg ); goto fail; } else#ifdef __cplusplus}#endif/* -------- TYPES TABLE (BEGIN) -------- */#define  SWIGTYPE_p_p_svm_node swig_types[0] #define  SWIGTYPE_p_svm_node swig_types[1] #define  SWIGTYPE_p_svm_parameter swig_types[2] #define  SWIGTYPE_p_double swig_types[3] #define  SWIGTYPE_p_svm_model swig_types[4] #define  SWIGTYPE_p_int swig_types[5] #define  SWIGTYPE_p_svm_problem swig_types[6] static swig_type_info *swig_types[8];/* -------- TYPES TABLE (END) -------- */#define SWIG_init    initsvmc#define SWIG_name    "svmc"#include "svm.h"static int *new_int(int nelements) {   return (int *) calloc(nelements,sizeof(int)); }static void delete_int(int *ary) {   free(ary); }static int int_getitem(int *ary, int index) {    return ary[index];}static void int_setitem(int *ary, int index, int value) {    ary[index] = value;}static double *new_double(int nelements) {   return (double *) calloc(nelements,sizeof(double)); }static void delete_double(double *ary) {   free(ary); }static double double_getitem(double *ary, int index) {    return ary[index];}static void double_setitem(double *ary, int index, double value) {    ary[index] = value;}struct svm_node *svm_node_array(int size){	return (struct svm_node *)malloc(sizeof(struct svm_node)*size);}void svm_node_array_set(struct svm_node *array, int i, int index, double value){	array[i].index = index;	array[i].value = value;}void svm_node_array_destroy(struct svm_node *array){	free(array);}struct svm_node **svm_node_matrix(int size){	return (struct svm_node **)malloc(sizeof(struct svm_node *)*size);	}void svm_node_matrix_set(struct svm_node **matrix, int i, struct svm_node* array){	matrix[i] = array;}void svm_node_matrix_destroy(struct svm_node **matrix){	free(matrix);}#ifdef __cplusplusextern "C" {#endifstatic PyObject *_wrap_svm_parameter_svm_type_set(PyObject *self, PyObject *args) {    PyObject *resultobj;    struct svm_parameter *arg1 = (struct svm_parameter *) 0 ;    int arg2 ;    PyObject * obj0 = 0 ;        if(!PyArg_ParseTuple(args,(char *)"Oi:svm_parameter_svm_type_set",&obj0,&arg2)) goto fail;    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_svm_parameter,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;    if (arg1) (arg1)->svm_type = arg2;        Py_INCREF(Py_None); resultobj = Py_None;    return resultobj;    fail:    return NULL;}static PyObject *_wrap_svm_parameter_svm_type_get(PyObject *self, PyObject *args) {    PyObject *resultobj;    struct svm_parameter *arg1 = (struct svm_parameter *) 0 ;    int result;    PyObject * obj0 = 0 ;        if(!PyArg_ParseTuple(args,(char *)"O:svm_parameter_svm_type_get",&obj0)) goto fail;    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_svm_parameter,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;    result = (int) ((arg1)->svm_type);        resultobj = PyInt_FromLong((long)result);    return resultobj;    fail:    return NULL;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -