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

📄 tinysvm_wrap.c

📁 机器学习工具:非常流行的一种分类器
💻 C
📖 第 1 页 / 共 3 页
字号:
/* ---------------------------------------------------------------------------- * 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.  * ----------------------------------------------------------------------------- *//*********************************************************************** * 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/* ----------------------------------------------------------------------------- * perl5.swg * * Perl5 runtime library * $Header: /cl/lab/cvsroot/taku-ku/TinySVM/perl/TinySVM_wrap.c,v 1.2 2001/08/29 14:52:46 taku-ku Exp $ * ----------------------------------------------------------------------------- */#define SWIGPERL#define SWIGPERL5#ifdef __cplusplus/* Needed on some windows machines---since MS plays funny   games with the header files under C++ */#include <math.h>#include <stdlib.h>extern "C" {#endif#include "EXTERN.h"#include "perl.h"#include "XSUB.h"/* Get rid of free and malloc defined by perl */#undef free#undef malloc#include <string.h>#ifdef __cplusplus}#endif#ifdef PERL_OBJECT#define MAGIC_PPERL  CPerlObj *pPerl = (CPerlObj *) this;#define MAGIC_CAST   (int (CPerlObj::*)(SV *, MAGIC *))#define SWIGCLASS_STATIC #else#define MAGIC_PPERL#define MAGIC_CAST#define SWIGCLASS_STATIC static#endif#if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE)#define PerlIO_exportFILE(fh,fl) (FILE*)(fh)#endif/* Modifications for newer Perl 5.005 releases */#if !defined(PERL_REVISION) || ((PERL_REVISION >= 5) && ((PERL_VERSION < 5) || ((PERL_VERSION == 5) && (PERL_SUBVERSION < 50))))#ifndef PL_sv_yes#define PL_sv_yes sv_yes#endif#ifndef PL_sv_undef#define PL_sv_undef sv_undef#endif#ifndef PL_na#define PL_na na#endif#endif#include <stdlib.h>#ifdef __cplusplusextern "C" {#endif#ifdef SWIG_NOINCLUDE#ifndef PERL_OBJECTextern int SWIG_ConvertPtr(SV *, void **, swig_type_info *);extern void SWIG_MakePtr(SV *, void *, swig_type_info *);#elseextern int _SWIG_ConvertPtr(CPerlObj *, SV *, void **, swig_type_info *);extern void _SWIG_MakePtr(CPerlObj *, SV *, void *, swig_type_info *);#define SWIG_ConvertPtr(a,b,c) _SWIG_ConvertPtr(pPerl,a,b,c)#define SWIG_MakePtr(a,b,c) _SWIG_MakePtr(pPerl,a,b,c)#endif#endif/* Function for getting a pointer value */#ifndef PERL_OBJECTSWIGRUNTIME(int) SWIG_ConvertPtr(SV *sv, void **ptr, swig_type_info *_t)#else#define SWIG_ConvertPtr(a,b,c) _SWIG_GetConvert(pPerl,a,b,c)SWIGRUNTIME(int)_SWIG_ConvertPtr(CPerlObj *pPerl, SV *sv, void **ptr, swig_type_info *_t)#endif{  char *_c;  swig_type_info *tc;  IV   tmp;  /* If magical, apply more magic */  if (SvGMAGICAL(sv))    mg_get(sv);  /* Check to see if this is an object */  if (sv_isobject(sv)) {    SV *tsv = (SV*) SvRV(sv);    if ((SvTYPE(tsv) == SVt_PVHV)) {      MAGIC *mg;      if (SvMAGICAL(tsv)) {	mg = mg_find(tsv,'P');	if (mg) {	  SV *rsv = mg->mg_obj;	  if (sv_isobject(rsv)) {	    tmp = SvIV((SV*)SvRV(rsv));	  }	}      } else {	return -1;      }    } else {      tmp = SvIV((SV*)SvRV(sv));    }    if (!_t) {      *(ptr) = (void *) tmp;      return 0;    }  } else if (! SvOK(sv)) {            /* Check for undef */    *(ptr) = (void *) 0;    return 0;  } else if (SvTYPE(sv) == SVt_RV) {  /* Check for NULL pointer */    *(ptr) = (void *) 0;    if (!SvROK(sv))       return 0;    else      return -1;  } else {                            /* Don't know what it is */      *(ptr) = (void *) 0;      return -1;  }  if (_t) {    /* Now see if the types match */          _c = HvNAME(SvSTASH(SvRV(sv)));    tc = SWIG_TypeCheck(_c,_t);    if (!tc) {      *ptr = (void *) tmp;      return -1;    }    *ptr = SWIG_TypeCast(tc,(void *)tmp);    return 0;  }  *ptr = (void *) tmp;  return 0;}#ifndef PERL_OBJECTSWIGRUNTIME(void) SWIG_MakePtr(SV *sv, void *ptr, swig_type_info *t)#else#define SWIG_MakePtr(a,b,c) _SWIG_MakePtr(pPerl,a,b,c)SWIGRUNTIME(int *)_SWIG_MakePtr(CPerlObj *pPerl, SV *sv, void *ptr, swig_type_info *t)#endif{  sv_setref_pv(sv, (char *) t->name, ptr);}/* Magic variable code */#ifndef PERL_OBJECT#define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c)static void _swig_create_magic(SV *sv, const char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) {#else#define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c)static void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *)) {#endif  MAGIC *mg;  sv_magic(sv,sv,'U',(char *) name,strlen(name));  mg = mg_find(sv,'U');  mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));  mg->mg_virtual->svt_get = get;  mg->mg_virtual->svt_set = set;  mg->mg_virtual->svt_len = 0;  mg->mg_virtual->svt_clear = 0;  mg->mg_virtual->svt_free = 0;}#ifdef __cplusplus}#endif/* -------- TYPES TABLE (BEGIN) -------- */#define  SWIGTYPE_p_BaseExample swig_types[0] #define  SWIGTYPE_p_Example swig_types[1] #define  SWIGTYPE_p_Model swig_types[2] static swig_type_info *swig_types[4];/* -------- TYPES TABLE (END) -------- */#define SWIG_init    boot_TinySVM#define SWIG_name   "TinySVMc::boot_TinySVM"#define SWIG_varinit "TinySVMc::var_TinySVM_init();"#ifdef __cplusplusextern "C"#endif#ifndef PERL_OBJECTSWIGEXPORT(void) SWIG_init (CV* cv);#elseSWIGEXPORT(void) SWIG_init (CV *cv, CPerlObj *);#endif#include <tinysvm.h>#include <ctype.h>#include <string.h>#define BaseExample TinySVM::BaseExample#define Example TinySVM::Example #define Model TinySVM::Model#undef VALUEFUNC#define VALUEFUNC(f) ((VALUE (*)())f)#ifdef PERL_OBJECT#define MAGIC_CLASS _wrap_TinySVM_var::class _wrap_TinySVM_var : public CPerlObj {public:#else#define MAGIC_CLASS#endifSWIGCLASS_STATIC int swig_magic_readonly(SV *sv, MAGIC *mg) {    MAGIC_PPERL    sv = sv; mg = mg;    croak("Value is read-only.");    return 0;}#ifdef PERL_OBJECT};#endifXS(_wrap_BaseExample_add) {    BaseExample *arg0 ;    char *arg1 ;    int argvi = 0;    int result ;    dXSARGS;        if ((items < 2) || (items > 2))     croak("Usage: BaseExample_add(self,char const *);");    if (SWIG_ConvertPtr(ST(0),(void **) &arg0,SWIGTYPE_p_BaseExample) < 0) {        croak("Type error in argument 1 of BaseExample_add. Expected %s", SWIGTYPE_p_BaseExample->name);        XSRETURN(1);    }    if (! SvOK((SV*) ST(1))) {        arg1 = 0;     }    else {        arg1 = (char *) SvPV(ST(1),PL_na);     }    result = (int )arg0->add((char const *)arg1);    ST(argvi) = sv_newmortal();    sv_setiv(ST(argvi++),(IV) result);    XSRETURN(argvi);}XS(_wrap_BaseExample_set) {    BaseExample *arg0 ;    int arg1 ;    char *arg2 ;    int argvi = 0;    int result ;    dXSARGS;        if ((items < 3) || (items > 3))     croak("Usage: BaseExample_set(self,i,char const *);");    if (SWIG_ConvertPtr(ST(0),(void **) &arg0,SWIGTYPE_p_BaseExample) < 0) {        croak("Type error in argument 1 of BaseExample_set. Expected %s", SWIGTYPE_p_BaseExample->name);        XSRETURN(1);    }    arg1 = (int )SvIV(ST(1));    if (! SvOK((SV*) ST(2))) {        arg2 = 0;     }    else {        arg2 = (char *) SvPV(ST(2),PL_na);     }    result = (int )arg0->set(arg1,(char const *)arg2);    ST(argvi) = sv_newmortal();    sv_setiv(ST(argvi++),(IV) result);    XSRETURN(argvi);}XS(_wrap_BaseExample_get) {    BaseExample *arg0 ;    int arg1 ;    int argvi = 0;    char *result ;    dXSARGS;        if ((items < 2) || (items > 2))     croak("Usage: BaseExample_get(self,i);");    if (SWIG_ConvertPtr(ST(0),(void **) &arg0,SWIGTYPE_p_BaseExample) < 0) {        croak("Type error in argument 1 of BaseExample_get. Expected %s", SWIGTYPE_p_BaseExample->name);        XSRETURN(1);    }    arg1 = (int )SvIV(ST(1));    result = (char *)arg0->get(arg1);    ST(argvi) = sv_newmortal();    sv_setpv((SV*)ST(argvi++),(char *) result);    XSRETURN(argvi);}XS(_wrap_BaseExample_remove) {    BaseExample *arg0 ;    int arg1 ;    int argvi = 0;    int result ;    dXSARGS;        if ((items < 2) || (items > 2))     croak("Usage: BaseExample_remove(self,i);");    if (SWIG_ConvertPtr(ST(0),(void **) &arg0,SWIGTYPE_p_BaseExample) < 0) {        croak("Type error in argument 1 of BaseExample_remove. Expected %s", SWIGTYPE_p_BaseExample->name);        XSRETURN(1);    }    arg1 = (int )SvIV(ST(1));    result = (int )arg0->remove(arg1);    ST(argvi) = sv_newmortal();    sv_setiv(ST(argvi++),(IV) result);    XSRETURN(argvi);}XS(_wrap_BaseExample_clear) {    BaseExample *arg0 ;    int argvi = 0;    int result ;    dXSARGS;        if ((items < 1) || (items > 1))     croak("Usage: BaseExample_clear(self);");    if (SWIG_ConvertPtr(ST(0),(void **) &arg0,SWIGTYPE_p_BaseExample) < 0) {        croak("Type error in argument 1 of BaseExample_clear. Expected %s", SWIGTYPE_p_BaseExample->name);        XSRETURN(1);    }    result = (int )arg0->clear();    ST(argvi) = sv_newmortal();    sv_setiv(ST(argvi++),(IV) result);    XSRETURN(argvi);}XS(_wrap_BaseExample_size) {    BaseExample *arg0 ;    int argvi = 0;    int result ;

⌨️ 快捷键说明

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