/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 1.3.21
 * 
 * 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. 
 * ----------------------------------------------------------------------------- */

/*************************************************************** -*- c -*-
 * perl5/precommon.swg
 *
 * Rename all exported symbols from common.swg, to avoid symbol
 * clashes if multiple interpreters are included
 *
 ************************************************************************/

#define SWIG_TypeRegister    SWIG_Perl_TypeRegister
#define SWIG_TypeCheck       SWIG_Perl_TypeCheck
#define SWIG_TypeCast        SWIG_Perl_TypeCast
#define SWIG_TypeDynamicCast SWIG_Perl_TypeDynamicCast
#define SWIG_TypeName        SWIG_Perl_TypeName
#define SWIG_TypeQuery       SWIG_Perl_TypeQuery
#define SWIG_TypeClientData  SWIG_Perl_TypeClientData
#define SWIG_PackData        SWIG_Perl_PackData 
#define SWIG_UnpackData      SWIG_Perl_UnpackData 


/***********************************************************************
 * 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__) || defined(__CYGWIN__)
#  if defined(_MSC_VER) || defined(__GNUC__)
#    if defined(STATIC_LINKED)
#      define SWIGEXPORT(a) a
#      define SWIGIMPORT(a) extern a
#    else
#      define SWIGEXPORT(a) __declspec(dllexport) a
#      define SWIGIMPORT(a) extern a
#    endif
#  else
#    if defined(__BORLANDC__)
#      define SWIGEXPORT(a) a _export
#      define SWIGIMPORT(a) a _export
#    else
#      define SWIGEXPORT(a) a
#      define SWIGIMPORT(a) a
#    endif
#  endif
#else
#  define SWIGEXPORT(a) a
#  define SWIGIMPORT(a) a
#endif

#ifdef SWIG_GLOBAL
#  define SWIGRUNTIME(a) SWIGEXPORT(a)
#else
#  define SWIGRUNTIME(a) static a
#endif

#ifdef __cplusplus
extern "C" {
#endif

typedef void *(*swig_converter_func)(void *);
typedef struct swig_type_info *(*swig_dycast_func)(void **);

typedef struct swig_type_info {
  const char             *name;
  swig_converter_func     converter;
  const char             *str;
  void                   *clientdata;
  swig_dycast_func        dcast;
  struct swig_type_info  *next;
  struct swig_type_info  *prev;
} swig_type_info;

#ifdef SWIG_NOINCLUDE

SWIGIMPORT(swig_type_info *) SWIG_TypeRegister(swig_type_info *);
SWIGIMPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *);
SWIGIMPORT(void *)           SWIG_TypeCast(swig_type_info *, void *);
SWIGIMPORT(swig_type_info *) SWIG_TypeDynamicCast(swig_type_info *, void **);
SWIGIMPORT(const char *)     SWIG_TypeName(const swig_type_info *);
SWIGIMPORT(swig_type_info *) SWIG_TypeQuery(const char *);
SWIGIMPORT(void)             SWIG_TypeClientData(swig_type_info *, void *);
SWIGIMPORT(char *)           SWIG_PackData(char *, void *, int);
SWIGIMPORT(char *)           SWIG_UnpackData(char *, void *, int);

#else

static 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 */
      if (tc->clientdata) ti->clientdata = tc->clientdata;
      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++;
  }
  if (next) next->prev = head;
  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 */
  do {
    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;
      s->prev = ty;
      return s;
    }
    s = s->next;
  } while (s && (s != ty->next));
  return 0;
}

/* Cast a pointer up an inheritance hierarchy */
SWIGRUNTIME(void *) 
SWIG_TypeCast(swig_type_info *ty, void *ptr) {
  if ((!ty) || (!ty->converter)) return ptr;
  return (*ty->converter)(ptr);
}

/* Dynamic pointer casting. Down an inheritance hierarchy */
SWIGRUNTIME(swig_type_info *) 
SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
  swig_type_info *lastty = ty;
  if (!ty || !ty->dcast) return ty;
  while (ty && (ty->dcast)) {
    ty = (*ty->dcast)(ptr);
    if (ty) lastty = ty;
  }
  return lastty;
}

/* Return the name associated with this type */
SWIGRUNTIME(const char *)
SWIG_TypeName(const swig_type_info *ty) {
  return ty->name;
}

/* 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;
}

/* Set the clientdata field for a type */
SWIGRUNTIME(void)
SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
  swig_type_info *tc, *equiv;
  if (ti->clientdata == clientdata) return;
  ti->clientdata = clientdata;
  equiv = ti->next;
  while (equiv) {
    if (!equiv->converter) {
      tc = swig_type_list;
      while (tc) {
        if ((strcmp(tc->name, equiv->name) == 0))
          SWIG_TypeClientData(tc,clientdata);
        tc = tc->prev;
      }
    }
    equiv = equiv->next;
  }
}

/* Pack binary data into a string */
SWIGRUNTIME(char *)
SWIG_PackData(char *c, void *ptr, int sz) {
  static char hex[17] = "0123456789abcdef";
  int i;
  unsigned char *u = (unsigned char *) ptr;
  register unsigned char uu;
  for (i = 0; i < sz; i++,u++) {
    uu = *u;
    *(c++) = hex[(uu & 0xf0) >> 4];
    *(c++) = hex[uu & 0xf];
  }
  return c;
}

/* Unpack binary data from a string */
SWIGRUNTIME(char *)
SWIG_UnpackData(char *c, void *ptr, int sz) {
  register unsigned char uu = 0;
  register int d;
  unsigned char *u = (unsigned char *) ptr;
  int i;
  for (i = 0; i < sz; i++, u++) {
    d = *(c++);
    if ((d >= '0') && (d <= '9'))
      uu = ((d - '0') << 4);
    else if ((d >= 'a') && (d <= 'f'))
      uu = ((d - ('a'-10)) << 4);
    d = *(c++);
    if ((d >= '0') && (d <= '9'))
      uu |= (d - '0');
    else if ((d >= 'a') && (d <= 'f'))
      uu |= (d - ('a'-10));
    *u = uu;
  }
  return c;
}

#endif

#ifdef __cplusplus
}
#endif

/* ---------------------------------------------------------------------- -*- c -*-
 * perl5.swg
 *
 * Perl5 runtime library
 * $Header: /cvsroot/SWIG/Lib/perl5/perlrun.swg,v 1.14 2003/12/04 19:14:14 beazley 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

#ifndef pTHX_
#define pTHX_
#endif

#include <string.h>
#ifdef __cplusplus
}
#endif

/* Macro to call an XS function */

#ifdef PERL_OBJECT 
#  define SWIG_CALLXS(_name) _name(cv,pPerl) 
#else 
#  ifndef MULTIPLICITY 
#    define SWIG_CALLXS(_name) _name(cv) 
#  else 
#    define SWIG_CALLXS(_name) _name(PERL_GET_THX, cv) 
#  endif 
#endif 

/* Contract support */

#define SWIG_contract_assert(expr,msg) if (!(expr)) { SWIG_croak(msg); } else

/* Note: SwigMagicFuncHack is a typedef used to get the C++ compiler to just shut up already */

#ifdef PERL_OBJECT
#define MAGIC_PPERL  CPerlObj *pPerl = (CPerlObj *) this;
typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *);

#ifdef __cplusplus
extern "C" {
#endif
typedef int (CPerlObj::*SwigMagicFuncHack)(SV *, MAGIC *);
#ifdef __cplusplus
}
#endif

#define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
#define SWIGCLASS_STATIC
#else
#define MAGIC_PPERL
#define SWIGCLASS_STATIC static
#ifndef MULTIPLICITY
#define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
typedef int (*SwigMagicFunc)(SV *, MAGIC *);

#ifdef __cplusplus
extern "C" {
#endif
typedef int (*SwigMagicFuncHack)(SV *, MAGIC *);
#ifdef __cplusplus
}
#endif


#else
#define SWIG_MAGIC(a,b) (struct interpreter *interp, SV *a, MAGIC *b)
typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *);
#ifdef __cplusplus
extern "C" {
#endif
typedef int (*SwigMagicFuncHack)(struct interpreter *, SV *, MAGIC *);
#ifdef __cplusplus
}
#endif

#endif
#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 __cplusplus
extern "C" {
#endif

#define SWIG_OWNER 1
#define SWIG_SHADOW 2

/* Common SWIG API */

#ifdef PERL_OBJECT
#  define SWIG_ConvertPtr(obj, pp, type, flags) \
     SWIG_Perl_ConvertPtr(pPerl, obj, pp, type, flags)
#  define SWIG_NewPointerObj(p, type, flags) \
     SWIG_Perl_NewPointerObj(pPerl, p, type, flags)
#  define SWIG_MakePackedObj(sv, p, s, type)	\
     SWIG_Perl_MakePackedObj(pPerl, sv, p, s, type)
#  define SWIG_ConvertPacked(obj, p, s, type, flags) \
     SWIG_Perl_ConvertPacked(pPerl, obj, p, s, type, flags)

#else
#  define SWIG_ConvertPtr(obj, pp, type, flags) \
     SWIG_Perl_ConvertPtr(obj, pp, type, flags)
#  define SWIG_NewPointerObj(p, type, flags) \
     SWIG_Perl_NewPointerObj(p, type, flags)
#  define SWIG_MakePackedObj(sv, p, s, type)	\
     SWIG_Perl_MakePackedObj(sv, p, s, type )
#  define SWIG_ConvertPacked(obj, p, s, type, flags) \
     SWIG_Perl_ConvertPacked(obj, p, s, type, flags)
#endif

/* Perl-specific API */
#ifdef PERL_OBJECT
#  define SWIG_MakePtr(sv, ptr, type, flags) \
     SWIG_Perl_MakePtr(pPerl, sv, ptr, type, flags)
#  define SWIG_TypeCheckRV(rv, ty) \
     SWIG_Perl_TypeCheckRV(pPerl, rv, ty)
#  define SWIG_SetError(str) \
     SWIG_Perl_SetError(pPerl, str)
#else
#  define SWIG_MakePtr(sv, ptr, type, flags) \
     SWIG_Perl_MakePtr(sv, ptr, type, flags)
#  define SWIG_TypeCheckRV(rv, ty) \
     SWIG_Perl_TypeCheckRV(rv, ty)
#  define SWIG_SetError(str) \
     SWIG_Perl_SetError(str)
#  define SWIG_SetErrorSV(str) \
     SWIG_Perl_SetErrorSV(str)
#endif

#define SWIG_SetErrorf SWIG_Perl_SetErrorf


#ifdef PERL_OBJECT
#  define SWIG_MAYBE_PERL_OBJECT CPerlObj *pPerl,
#else
#  define SWIG_MAYBE_PERL_OBJECT
#endif

#ifdef SWIG_NOINCLUDE

SWIGIMPORT(int)               SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT SV *, void **, swig_type_info *, int flags);
SWIGIMPORT(void)              SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *, void *, swig_type_info *, int flags);
SWIGIMPORT(SV *)              SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT void *, swig_type_info *, int flags);
SWIGIMPORT(void)              SWIG_Perl_MakePackedObj(SWIG_MAYBE_PERL_OBJECT SV *, void *, int, swig_type_info *);
SWIGIMPORT(int)               SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_OBJECT SV *, void *, int, swig_type_info *, int flags);
SWIGIMPORT(swig_type_info *)  SWIG_Perl_TypeCheckRV(SWIG_MAYBE_PERL_OBJECT SV *rv, swig_type_info *ty);
SWIGIMPORT(SV *)              SWIG_Perl_SetError(SWIG_MAYBE_PERL_OBJECT char *);

#else

SWIGRUNTIME(swig_type_info *)
SWIG_Perl_TypeCheckRV(SWIG_MAYBE_PERL_OBJECT SV *rv, swig_type_info *ty) {
  swig_type_info *s;
  if (!ty) return 0;        /* Void pointer */
  s = ty->next;             /* First element always just a name */
  do {
    if (sv_derived_from(rv, (char *) s->name)) {
      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;
      s->prev = ty;
      return s;
    }
    s = s->next;
  } while (s && (s != ty->next));
  return 0;
}

/* Function for getting a pointer value */

SWIGRUNTIME(int) 
SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags) {
  swig_type_info *tc;
  void *voidptr = (void *)0;

  /* 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);
    IV tmp = 0;
    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));
    }
    voidptr = (void *)tmp;
    if (!_t) {
      *(ptr) = voidptr;
      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 */
    tc = SWIG_TypeCheckRV(sv,_t);
    if (!tc) {
      *ptr = voidptr;
      return -1;
    }
    *ptr = SWIG_TypeCast(tc,voidptr);
    return 0;
  }
  *ptr = voidptr;
  return 0;
}

SWIGRUNTIME(void)
SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, int flags) {
  if (ptr && (flags & SWIG_SHADOW)) {
    SV *self;
    SV *obj=newSV(0);
    HV *hash=newHV();
    HV *stash;
    sv_setref_pv(obj, (char *) t->name, ptr);
    stash=SvSTASH(SvRV(obj));
    if (flags & SWIG_OWNER) {
      HV *hv;
      GV *gv=*(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
      if (!isGV(gv))
        gv_init(gv, stash, "OWNER", 5, FALSE);
      hv=GvHVn(gv);
      hv_store_ent(hv, obj, newSViv(1), 0);
    }
    sv_magic((SV *)hash, (SV *)obj, 'P', Nullch, 0);
    SvREFCNT_dec(obj);
    self=newRV_noinc((SV *)hash);
    sv_setsv(sv, self);
    SvREFCNT_dec((SV *)self);
    sv_bless(sv, stash);
  }
  else {
    sv_setref_pv(sv, (char *) t->name, ptr);
  }
}

SWIGRUNTIME(SV *)
SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT void *ptr, swig_type_info *t, int flags) {
  SV *result = sv_newmortal();
  SWIG_MakePtr(result, ptr, t, flags);
  return result;
}

SWIGRUNTIME(void)
  SWIG_Perl_MakePackedObj(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, int sz, swig_type_info *type) {
  char result[1024];
  char *r = result;
  if ((2*sz + 1 + strlen(type->name)) > 1000) return;
  *(r++) = '_';
  r = SWIG_PackData(r,ptr,sz);
  strcpy(r,type->name);
  sv_setpv(sv, result);
}

/* Convert a packed value value */
SWIGRUNTIME(int)
SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_OBJECT SV *obj, void *ptr, int sz, swig_type_info *ty, int flags) {
  swig_type_info *tc;
  char  *c = 0;

  if ((!obj) || (!SvOK(obj))) return -1;
  c = SvPV(obj, PL_na);
  /* Pointer values must start with leading underscore */
  if (*c != '_') return -1;
  c++;
  c = SWIG_UnpackData(c,ptr,sz);
  if (ty) {
    tc = SWIG_TypeCheck(c,ty);
    if (!tc) return -1;
  }
  return 0;
}

SWIGRUNTIME(void)
SWIG_Perl_SetError(SWIG_MAYBE_PERL_OBJECT const char *error) {
  if (error) sv_setpv(perl_get_sv("@", TRUE), error);
}

SWIGRUNTIME(void)
SWIG_Perl_SetErrorSV(SWIG_MAYBE_PERL_OBJECT SV *error) {
  if (error) sv_setsv(perl_get_sv("@", TRUE), error);
}

SWIGRUNTIME(void)
SWIG_Perl_SetErrorf(const char *fmt, ...) {
  va_list args;
  va_start(args, fmt);
  sv_vsetpvfn(perl_get_sv("@", TRUE), fmt, strlen(fmt), &args, Null(SV**), 0, Null(bool*));
  va_end(args);
}

#endif

/* Macros for low-level exception handling */
#define SWIG_fail       goto fail
#define SWIG_croak(x)   { SWIG_SetError(x); goto fail; }
#define SWIG_croakSV(x) { SWIG_SetErrorSV(x); goto fail; }
/* most preprocessors do not support vararg macros :-( */
/* #define SWIG_croakf(x...) { SWIG_SetErrorf(x); goto fail; } */


typedef XS(SwigPerlWrapper);
typedef SwigPerlWrapper *SwigPerlWrapperPtr;

/* Structure for command table */
typedef struct {
  const char         *name;
  SwigPerlWrapperPtr  wrapper;
} swig_command_info;

/* Information for constant table */

#define SWIG_INT     1
#define SWIG_FLOAT   2
#define SWIG_STRING  3
#define SWIG_POINTER 4
#define SWIG_BINARY  5

/* Constant information structure */
typedef struct swig_constant_info {
    int              type;
    const char      *name;
    long             lvalue;
    double           dvalue;
    void            *pvalue;
    swig_type_info **ptype;
} swig_constant_info;

#ifdef __cplusplus
}
#endif

/* Structure for variable table */
typedef struct {
  const char   *name;
  SwigMagicFunc   set;
  SwigMagicFunc   get;
  swig_type_info  **type;
} swig_variable_info;

/* Magic variable code */
#ifndef PERL_OBJECT
#define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c)
  #ifndef MULTIPLICITY
     static void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) {
  #else
     static void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *)) {
  #endif
#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 = (SwigMagicFuncHack) get;
  mg->mg_virtual->svt_set = (SwigMagicFuncHack) set;
  mg->mg_virtual->svt_len = 0;
  mg->mg_virtual->svt_clear = 0;
  mg->mg_virtual->svt_free = 0;
}






#ifdef do_open
  #undef do_open
#endif
#ifdef do_close
  #undef do_close
#endif
#ifdef scalar
  #undef scalar
#endif
#ifdef list
  #undef list
#endif
#ifdef apply
  #undef apply
#endif
#ifdef convert
  #undef convert
#endif
#ifdef Error
  #undef Error
#endif
#ifdef form
  #undef form
#endif
#ifdef vform
  #undef vform
#endif
#ifdef LABEL
  #undef LABEL
#endif
#ifdef METHOD
  #undef METHOD
#endif
#ifdef Move
  #undef Move
#endif
#ifdef yylex
  #undef yylex
#endif
#ifdef yyparse
  #undef yyparse
#endif
#ifdef yyerror
  #undef yyerror
#endif
#ifdef invert
  #undef invert
#endif
#ifdef ref
  #undef ref
#endif
#ifdef ENTER
  #undef ENTER
#endif


/* -------- TYPES TABLE (BEGIN) -------- */

#define  SWIGTYPE_p_psListIterator swig_types[0] 
#define  SWIGTYPE_p_psMetadataIterator swig_types[1] 
#define  SWIGTYPE_p_p_psC64 swig_types[2] 
#define  SWIGTYPE_p_psC64 swig_types[3] 
#define  SWIGTYPE_p_p_psS8 swig_types[4] 
#define  SWIGTYPE_p_psChip swig_types[5] 
#define  SWIGTYPE_p_psErr swig_types[6] 
#define  SWIGTYPE_p_psPlaneDistort swig_types[7] 
#define  SWIGTYPE_p_p_psVector swig_types[8] 
#define  SWIGTYPE_p_psVector swig_types[9] 
#define  SWIGTYPE_p_psImage_data swig_types[10] 
#define  SWIGTYPE_p_psReadout swig_types[11] 
#define  SWIGTYPE_p_size_t swig_types[12] 
#define  SWIGTYPE_p_p_psPolynomial1D swig_types[13] 
#define  SWIGTYPE_p_psDPolynomial1D swig_types[14] 
#define  SWIGTYPE_p_psPolynomial1D swig_types[15] 
#define  SWIGTYPE_p_p_psU32 swig_types[16] 
#define  SWIGTYPE_p_psU32 swig_types[17] 
#define  SWIGTYPE_p_fitsfile swig_types[18] 
#define  SWIGTYPE_p_psImage swig_types[19] 
#define  SWIGTYPE_p_psList swig_types[20] 
#define  SWIGTYPE_p_psMetadataItem swig_types[21] 
#define  SWIGTYPE_p_psHash swig_types[22] 
#define  SWIGTYPE_p_p_psKernelType swig_types[23] 
#define  SWIGTYPE_p_p_psS32 swig_types[24] 
#define  SWIGTYPE_p_psS32 swig_types[25] 
#define  SWIGTYPE_p_psStats swig_types[26] 
#define  SWIGTYPE_p_psBitSet swig_types[27] 
#define  SWIGTYPE_p_psPhotSystem swig_types[28] 
#define  SWIGTYPE_p_psRandom swig_types[29] 
#define  SWIGTYPE_p_psMetadataItem_data swig_types[30] 
#define  SWIGTYPE_p_psMinimization swig_types[31] 
#define  SWIGTYPE_p_regex_t swig_types[32] 
#define  SWIGTYPE_p_psLookupStatusType swig_types[33] 
#define  SWIGTYPE_p_psArray swig_types[34] 
#define  SWIGTYPE_p_psFixedPattern swig_types[35] 
#define  SWIGTYPE_p_psCell swig_types[36] 
#define  SWIGTYPE_p_psDPolynomial4D swig_types[37] 
#define  SWIGTYPE_p_psPolynomial4D swig_types[38] 
#define  SWIGTYPE_p_p_psU64 swig_types[39] 
#define  SWIGTYPE_p_p_psU16 swig_types[40] 
#define  SWIGTYPE_p_psLookupTable swig_types[41] 
#define  SWIGTYPE_p_psU16 swig_types[42] 
#define  SWIGTYPE_p_psU64 swig_types[43] 
#define  SWIGTYPE_p_timeval swig_types[44] 
#define  SWIGTYPE_p_void swig_types[45] 
#define  SWIGTYPE_p_p_void swig_types[46] 
#define  SWIGTYPE_p_psBool swig_types[47] 
#define  SWIGTYPE_psMinimizeChi2PowellFunc swig_types[48] 
#define  SWIGTYPE_psMinimizePowellFunc swig_types[49] 
#define  SWIGTYPE_p_p_double swig_types[50] 
#define  SWIGTYPE_p_psType swig_types[51] 
#define  SWIGTYPE_p_p_psS64 swig_types[52] 
#define  SWIGTYPE_p_p_psS16 swig_types[53] 
#define  SWIGTYPE_p_psS16 swig_types[54] 
#define  SWIGTYPE_p_psS64 swig_types[55] 
#define  SWIGTYPE_p_psPtr swig_types[56] 
#define  SWIGTYPE_p_p_psPtr swig_types[57] 
#define  SWIGTYPE_psPtr swig_types[58] 
#define  SWIGTYPE_p_pthread_mutex_t swig_types[59] 
#define  SWIGTYPE_p_psObservatory swig_types[60] 
#define  SWIGTYPE_p_psScalar_data swig_types[61] 
#define  SWIGTYPE_p_psVector_data swig_types[62] 
#define  SWIGTYPE_psMinimizeLMChi2Func swig_types[63] 
#define  SWIGTYPE_p_psMath swig_types[64] 
#define  SWIGTYPE_p_tm swig_types[65] 
#define  SWIGTYPE_p_p_psComponent swig_types[66] 
#define  SWIGTYPE_p_p_p_psComponent swig_types[67] 
#define  SWIGTYPE_p_psDPolynomial2D swig_types[68] 
#define  SWIGTYPE_p_psPolynomial2D swig_types[69] 
#define  SWIGTYPE_psComparePtrFcn swig_types[70] 
#define  SWIGTYPE_p_psPlaneTransform swig_types[71] 
#define  SWIGTYPE_p_psSphereTransform swig_types[72] 
#define  SWIGTYPE_p_psPhotTransform swig_types[73] 
#define  SWIGTYPE_p_psSpline1D swig_types[74] 
#define  SWIGTYPE_p_psProjection swig_types[75] 
#define  SWIGTYPE_p_psFPA swig_types[76] 
#define  SWIGTYPE_p_psErrorDescription swig_types[77] 
#define  SWIGTYPE_p_psHashBucket swig_types[78] 
#define  SWIGTYPE_p_p_psHashBucket swig_types[79] 
#define  SWIGTYPE_p_p_p_p_psF32 swig_types[80] 
#define  SWIGTYPE_p_p_p_psF32 swig_types[81] 
#define  SWIGTYPE_p_psF32 swig_types[82] 
#define  SWIGTYPE_p_p_psF32 swig_types[83] 
#define  SWIGTYPE_p_gsl_rng swig_types[84] 
#define  SWIGTYPE_p_psGrommit swig_types[85] 
#define  SWIGTYPE_psMemProblemCallback swig_types[86] 
#define  SWIGTYPE_psMemExhaustedCallback swig_types[87] 
#define  SWIGTYPE_psMemAllocateCallback swig_types[88] 
#define  SWIGTYPE_psMemFreeCallback swig_types[89] 
#define  SWIGTYPE_p_psHistogram swig_types[90] 
#define  SWIGTYPE_p_p_psC32 swig_types[91] 
#define  SWIGTYPE_p_psC32 swig_types[92] 
#define  SWIGTYPE_p_psTime swig_types[93] 
#define  SWIGTYPE_p_p_p_p_psU8 swig_types[94] 
#define  SWIGTYPE_p_p_p_psU8 swig_types[95] 
#define  SWIGTYPE_p_psU8 swig_types[96] 
#define  SWIGTYPE_p_p_psU8 swig_types[97] 
#define  SWIGTYPE_p_psFits swig_types[98] 
#define  SWIGTYPE_p_psListElem swig_types[99] 
#define  SWIGTYPE_p_psKernel swig_types[100] 
#define  SWIGTYPE_psFreeFcn swig_types[101] 
#define  SWIGTYPE_p_psDPolynomial3D swig_types[102] 
#define  SWIGTYPE_p_psPolynomial3D swig_types[103] 
#define  SWIGTYPE_p_p_p_p_psF64 swig_types[104] 
#define  SWIGTYPE_p_p_p_psF64 swig_types[105] 
#define  SWIGTYPE_p_psF64 swig_types[106] 
#define  SWIGTYPE_p_p_psF64 swig_types[107] 
#define  SWIGTYPE_p_psExposure swig_types[108] 
#define  SWIGTYPE_p_p_p_psMemBlock swig_types[109] 
#define  SWIGTYPE_p_psMemBlock swig_types[110] 
#define  SWIGTYPE_p_psSphere swig_types[111] 
#define  SWIGTYPE_p_psPlane swig_types[112] 
#define  SWIGTYPE_p_psScalar swig_types[113] 
#define  SWIGTYPE_p_psMetadata swig_types[114] 
#define  SWIGTYPE_p_FILE swig_types[115] 
#define  SWIGTYPE_p_psRegion swig_types[116] 
static swig_type_info *swig_types[118];

/* -------- TYPES TABLE (END) -------- */

#define SWIG_init    boot_pslib

#define SWIG_name   "pslibc::boot_pslib"
#define SWIG_prefix "pslibc::"

#ifdef __cplusplus
extern "C"
#endif
#ifndef PERL_OBJECT
#ifndef MULTIPLICITY
SWIGEXPORT(void) SWIG_init (CV* cv);
#else
SWIGEXPORT(void) SWIG_init (pTHXo_ CV* cv);
#endif
#else
SWIGEXPORT(void) SWIG_init (CV *cv, CPerlObj *);
#endif


#define PS_ALLOW_MALLOC 
#define SWIG
#include "pslib.h"

/* SWIG uses malloc/free - make it use the pslib memory functions instead. */
/* 
#define malloc(S)    psAlloc(S)
#define realloc(P,S) psRealloc(P,S)
#define free(P)      psFree(P)
*/



typedef struct { float re, im; } swig_psC32;  ///< 32-bit complex floating point
typedef struct { double re, im; } swig_psC64; ///< 64-bit complex floating point



psErrorCode psError(psErrorCode code, psBool new, const char* msg) {
    return p_psError("UNKNOWN",0,"SWIG",code,new,msg);
}

psPtr psAlloc(size_t size) {
    return p_psAlloc(size,"UNKNOWN",0);
}

psPtr psRealloc(psPtr ptr, size_t size) {
    return p_psRealloc(ptr,size,"UNKNOWN",0);
}

void psFree(psPtr ptr) {
    p_psFree(ptr,"UNKNOWN",0);
}

psPtr psMemIncrRefCounter(psPtr vptr) {
    return p_psMemIncrRefCounter(vptr,"UNKNOWN",0);
}

psPtr psMemDecrRefCounter(psPtr vptr) {
    return p_psMemDecrRefCounter(vptr,"UNKNOWN",0);
}

void psTrace(const char* facil, psS32 myLevel, const char* msg) {
    p_psTrace(facil, myLevel, msg);
}

psS32 psMemCheckLeaksToStderr(psMemoryId id0, psMemBlock*** arr, psBool persistence) {
    return psMemCheckLeaks(id0, arr, stderr, persistence);
}
psS32 psMemCheckLeaksToStdout(psMemoryId id0, psMemBlock*** arr, psBool persistence) {
    return psMemCheckLeaks(id0, arr, stdout, persistence);
}



typedef union {
        psU8**  U8;                    ///< Unsigned 8-bit integer data.
        psU16** U16;                   ///< Unsigned 16-bit integer data.
        psU32** U32;                   ///< Unsigned 32-bit integer data.
        psU64** U64;                   ///< Unsigned 64-bit integer data.
        psS8**  S8;                    ///< Signed 8-bit integer data.
        psS16** S16;                   ///< Signed 16-bit integer data.
        psS32** S32;                   ///< Signed 32-bit integer data.
        psS64** S64;                   ///< Signed 64-bit integer data.
        psF32** F32;                   ///< Single-precision float data.
        psF64** F64;                   ///< Double-precision float data.
        psC32** C32;                   ///< Single-precision complex data.
        psC64** C64;                   ///< Double-precision complex data.
        psPtr** PTR;                   ///< Void pointers.
        psPtr*  V;                     ///< Pointer to data.
    } psImage_data;



typedef union {
        psU8 U8;                ///< Unsigned 8-bit integer data.
        psU16 U16;              ///< Unsigned 16-bit integer data.
        psU32 U32;              ///< Unsigned 32-bit integer data.
        psU64 U64;              ///< Unsigned 64-bit integer data.
        psS8 S8;                ///< Signed 8-bit integer data.
        psS16 S16;              ///< Signed 16-bit integer data.
        psS32 S32;              ///< Signed 32-bit integer data.
        psS64 S64;              ///< Signed 64-bit integer data.
        psF32 F32;              ///< Single-precision float data.
        psF64 F64;              ///< Double-precision float data.
        psC32 C32;              ///< Single-precision complex data.
        psC64 C64;              ///< Double-precision complex data.
    } psScalar_data;



typedef union {
        psU8* U8;               ///< Unsigned 8-bit integer data.
        psU16* U16;             ///< Unsigned 16-bit integer data.
        psU32* U32;             ///< Unsigned 32-bit integer data.
        psU64* U64;             ///< Unsigned 64-bit integer data.
        psS8* S8;               ///< Signed 8-bit integer data.
        psS16* S16;             ///< Signed 16-bit integer data.
        psS32* S32;             ///< Signed 32-bit integer data.
        psS64* S64;             ///< Signed 64-bit integer data.
        psF32* F32;             ///< Single-precision float data.
        psF64* F64;             ///< Double-precision float data.
        psC32* C32;             ///< Single-precision complex data.
        psC64* C64;             ///< Double-precision complex data.
    } psVector_data;



typedef union {
        psBool B;                      ///< boolean data
        psS32 S32;                     ///< Signed 32-bit integer data.
        psF32 F32;                     ///< Single-precision float data.
        psF64 F64;                     ///< Double-precision float data.
        psList *list;                  ///< List data.
        psMetadata *md;                ///< Metadata data.
        psPtr V;                       ///< Pointer to other type of data.
    } psMetadataItem_data;


char const *psMetadataItem_get_STR(psMetadataItem *self){
       if (self->type != PS_META_STR) {
	  return NULL;
       } else {
	  return self->data.V;
       }
    }
#ifdef PERL_OBJECT
#define MAGIC_CLASS _wrap_pslib_var::
class _wrap_pslib_var : public CPerlObj {
public:
#else
#define MAGIC_CLASS
#endif
SWIGCLASS_STATIC int swig_magic_readonly(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    sv = sv; mg = mg;
    croak("Value is read-only.");
    return 0;
}


#ifdef PERL_OBJECT
};
#endif

#ifdef __cplusplus
extern "C" {
#endif
XS(_wrap_psC32_re_set) {
    {
        psC32 *arg1 = (psC32 *) 0 ;
        float arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psC32_re_set(self,re);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psC32,0) < 0) {
                SWIG_croak("Type error in argument 1 of psC32_re_set. Expected _p_psC32");
            }
        }
        arg2 = (float) SvNV(ST(1));
        
        if (arg1) (arg1)->re = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psC32_re_get) {
    {
        psC32 *arg1 = (psC32 *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psC32_re_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psC32,0) < 0) {
                SWIG_croak("Type error in argument 1 of psC32_re_get. Expected _p_psC32");
            }
        }
        result = (float) ((arg1)->re);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psC32_im_set) {
    {
        psC32 *arg1 = (psC32 *) 0 ;
        float arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psC32_im_set(self,im);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psC32,0) < 0) {
                SWIG_croak("Type error in argument 1 of psC32_im_set. Expected _p_psC32");
            }
        }
        arg2 = (float) SvNV(ST(1));
        
        if (arg1) (arg1)->im = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psC32_im_get) {
    {
        psC32 *arg1 = (psC32 *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psC32_im_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psC32,0) < 0) {
                SWIG_croak("Type error in argument 1 of psC32_im_get. Expected _p_psC32");
            }
        }
        result = (float) ((arg1)->im);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psC32) {
    {
        psC32 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psC32();");
        }
        result = (psC32 *)(psC32 *) calloc(1, sizeof(psC32));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psC32, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psC32) {
    {
        psC32 *arg1 = (psC32 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psC32(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psC32,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psC32. Expected _p_psC32");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psC64_re_set) {
    {
        psC64 *arg1 = (psC64 *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psC64_re_set(self,re);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 1 of psC64_re_set. Expected _p_psC64");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->re = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psC64_re_get) {
    {
        psC64 *arg1 = (psC64 *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psC64_re_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 1 of psC64_re_get. Expected _p_psC64");
            }
        }
        result = (double) ((arg1)->re);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psC64_im_set) {
    {
        psC64 *arg1 = (psC64 *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psC64_im_set(self,im);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 1 of psC64_im_set. Expected _p_psC64");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->im = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psC64_im_get) {
    {
        psC64 *arg1 = (psC64 *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psC64_im_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 1 of psC64_im_get. Expected _p_psC64");
            }
        }
        result = (double) ((arg1)->im);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psC64) {
    {
        psC64 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psC64();");
        }
        result = (psC64 *)(psC64 *) calloc(1, sizeof(psC64));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psC64, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psC64) {
    {
        psC64 *arg1 = (psC64 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psC64(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psC64. Expected _p_psC64");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psType_type_set) {
    {
        psType *arg1 = (psType *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psType_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psType,0) < 0) {
                SWIG_croak("Type error in argument 1 of psType_type_set. Expected _p_psType");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->type = (psElemType )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psType_type_get) {
    {
        psType *arg1 = (psType *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psType_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psType,0) < 0) {
                SWIG_croak("Type error in argument 1 of psType_type_get. Expected _p_psType");
            }
        }
        result = (int) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psType_dimen_set) {
    {
        psType *arg1 = (psType *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psType_dimen_set(self,dimen);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psType,0) < 0) {
                SWIG_croak("Type error in argument 1 of psType_dimen_set. Expected _p_psType");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->dimen = (psDimen )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psType_dimen_get) {
    {
        psType *arg1 = (psType *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psType_dimen_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psType,0) < 0) {
                SWIG_croak("Type error in argument 1 of psType_dimen_get. Expected _p_psType");
            }
        }
        result = (int) ((arg1)->dimen);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psType) {
    {
        psType *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psType();");
        }
        result = (psType *)(psType *) calloc(1, sizeof(psType));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psType, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psType) {
    {
        psType *arg1 = (psType *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psType(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psType,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psType. Expected _p_psType");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMath_type_set) {
    {
        psMath *arg1 = (psMath *) 0 ;
        psType *arg2 = (psType *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMath_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMath,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMath_type_set. Expected _p_psMath");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psType,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMath_type_set. Expected _p_psType");
            }
        }
        if (arg1) (arg1)->type = *arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMath_type_get) {
    {
        psMath *arg1 = (psMath *) 0 ;
        psType *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMath_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMath,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMath_type_get. Expected _p_psMath");
            }
        }
        result = (psType *)& ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psType, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psMath) {
    {
        psMath *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psMath();");
        }
        result = (psMath *)(psMath *) calloc(1, sizeof(psMath));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMath, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psMath) {
    {
        psMath *arg1 = (psMath *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psMath(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMath,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psMath. Expected _p_psMath");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psAbort) {
    {
        char *arg1 ;
        char *arg2 ;
        void *arg3 = 0 ;
        int argvi = 0;
        dXSARGS;
        
        if (items < 2) {
            SWIG_croak("Usage: psAbort(name,fmt,...);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        psAbort((char const *)arg1,(char const *)arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLibVersion) {
    {
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: psLibVersion();");
        }
        result = (char *)psLibVersion();
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLibInit) {
    {
        bool arg1 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psLibInit(predictable,timeConfig);");
        }
        arg1 = (bool) SvIV(ST(0));
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        psLibInit(arg1,(char const *)arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLibFinalize) {
    {
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: psLibFinalize();");
        }
        psLibFinalize();
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErrorDescription_code_set) {
    {
        psErrorDescription *arg1 = (psErrorDescription *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psErrorDescription_code_set(self,code);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psErrorDescription,0) < 0) {
                SWIG_croak("Type error in argument 1 of psErrorDescription_code_set. Expected _p_psErrorDescription");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->code = (psErrorCode )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErrorDescription_code_get) {
    {
        psErrorDescription *arg1 = (psErrorDescription *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psErrorDescription_code_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psErrorDescription,0) < 0) {
                SWIG_croak("Type error in argument 1 of psErrorDescription_code_get. Expected _p_psErrorDescription");
            }
        }
        result = (int) ((arg1)->code);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErrorDescription_description_set) {
    {
        psErrorDescription *arg1 = (psErrorDescription *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psErrorDescription_description_set(self,description);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psErrorDescription,0) < 0) {
                SWIG_croak("Type error in argument 1 of psErrorDescription_description_set. Expected _p_psErrorDescription");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg2) {
                arg1->description = (char const *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->description,arg2);
            } else {
                arg1->description = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErrorDescription_description_get) {
    {
        psErrorDescription *arg1 = (psErrorDescription *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psErrorDescription_description_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psErrorDescription,0) < 0) {
                SWIG_croak("Type error in argument 1 of psErrorDescription_description_get. Expected _p_psErrorDescription");
            }
        }
        result = (char *) ((arg1)->description);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psErrorDescription) {
    {
        psErrorDescription *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psErrorDescription();");
        }
        result = (psErrorDescription *)(psErrorDescription *) calloc(1, sizeof(psErrorDescription));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psErrorDescription, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psErrorDescription) {
    {
        psErrorDescription *arg1 = (psErrorDescription *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psErrorDescription(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psErrorDescription,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psErrorDescription. Expected _p_psErrorDescription");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErrorDescriptionAlloc) {
    {
        int arg1 ;
        char *arg2 ;
        psErrorDescription *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psErrorDescriptionAlloc(code,description);");
        }
        arg1 = (int) SvIV(ST(0));
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (psErrorDescription *)psErrorDescriptionAlloc((psErrorCode )arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psErrorDescription, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErrorCodeString) {
    {
        int arg1 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psErrorCodeString(code);");
        }
        arg1 = (int) SvIV(ST(0));
        result = (char *)psErrorCodeString((psErrorCode )arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErrorRegister) {
    {
        psErrorDescription *arg1 = (psErrorDescription *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psErrorRegister(errors,nerror);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psErrorDescription,0) < 0) {
                SWIG_croak("Type error in argument 1 of psErrorRegister. Expected _p_psErrorDescription");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        psErrorRegister((psErrorDescription const *)arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psErrorUnregister) {
    {
        int arg1 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: p_psErrorUnregister(code);");
        }
        arg1 = (int) SvIV(ST(0));
        result = (psBool)p_psErrorUnregister((psErrorCode )arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErr_name_set) {
    {
        psErr *arg1 = (psErr *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psErr_name_set(self,name);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psErr,0) < 0) {
                SWIG_croak("Type error in argument 1 of psErr_name_set. Expected _p_psErr");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg1->name) free((char*)arg1->name);
            if (arg2) {
                arg1->name = (char *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->name,arg2);
            } else {
                arg1->name = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErr_name_get) {
    {
        psErr *arg1 = (psErr *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psErr_name_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psErr,0) < 0) {
                SWIG_croak("Type error in argument 1 of psErr_name_get. Expected _p_psErr");
            }
        }
        result = (char *) ((arg1)->name);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErr_code_set) {
    {
        psErr *arg1 = (psErr *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psErr_code_set(self,code);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psErr,0) < 0) {
                SWIG_croak("Type error in argument 1 of psErr_code_set. Expected _p_psErr");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->code = (psErrorCode )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErr_code_get) {
    {
        psErr *arg1 = (psErr *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psErr_code_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psErr,0) < 0) {
                SWIG_croak("Type error in argument 1 of psErr_code_get. Expected _p_psErr");
            }
        }
        result = (int) ((arg1)->code);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErr_msg_set) {
    {
        psErr *arg1 = (psErr *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psErr_msg_set(self,msg);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psErr,0) < 0) {
                SWIG_croak("Type error in argument 1 of psErr_msg_set. Expected _p_psErr");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg1->msg) free((char*)arg1->msg);
            if (arg2) {
                arg1->msg = (char *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->msg,arg2);
            } else {
                arg1->msg = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErr_msg_get) {
    {
        psErr *arg1 = (psErr *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psErr_msg_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psErr,0) < 0) {
                SWIG_croak("Type error in argument 1 of psErr_msg_get. Expected _p_psErr");
            }
        }
        result = (char *) ((arg1)->msg);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psErr) {
    {
        psErr *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psErr();");
        }
        result = (psErr *)(psErr *) calloc(1, sizeof(psErr));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psErr, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psErr) {
    {
        psErr *arg1 = (psErr *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psErr(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psErr,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psErr. Expected _p_psErr");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErrorGet) {
    {
        psS32 arg1 ;
        psErr *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psErrorGet(which);");
        }
        arg1 = (psS32) SvIV(ST(0));
        result = (psErr *)psErrorGet(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psErr, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErrorLast) {
    {
        psErr *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: psErrorLast();");
        }
        result = (psErr *)psErrorLast();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psErr, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErrorClear) {
    {
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: psErrorClear();");
        }
        psErrorClear();
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErrorGetStackSize) {
    {
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: psErrorGetStackSize();");
        }
        result = (psS32)psErrorGetStackSize();
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErrorStackPrint) {
    {
        FILE *arg1 = (FILE *) 0 ;
        char *arg2 ;
        void *arg3 = 0 ;
        int argvi = 0;
        dXSARGS;
        
        if (items < 2) {
            SWIG_croak("Usage: psErrorStackPrint(fd,fmt,...);");
        }
        {
            if (!SvOK(ST(0))) {
                arg1 = NULL;      
            } else {
                arg1 = PerlIO_findFILE(IoIFP(sv_2io(ST(0))));
            }
            
            
            
            
            
            
            
            
            
            
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        psErrorStackPrint(arg1,(char const *)arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psError) {
    {
        char *arg1 ;
        int arg2 ;
        char *arg3 ;
        int arg4 ;
        psBool arg5 ;
        char *arg6 ;
        void *arg7 = 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if (items < 6) {
            SWIG_croak("Usage: p_psError(file,lineno,func,code,new,fmt,...);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        arg4 = (int) SvIV(ST(3));
        arg5 = (psBool) SvIV(ST(4));
        if (!SvOK((SV*) ST(5))) arg6 = 0;
        else arg6 = (char *) SvPV(ST(5), PL_na);
        result = (int)p_psError((char const *)arg1,arg2,(char const *)arg3,(psErrorCode )arg4,arg5,(char const *)arg6,arg7);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psWarning) {
    {
        char *arg1 ;
        int arg2 ;
        char *arg3 ;
        char *arg4 ;
        void *arg5 = 0 ;
        int argvi = 0;
        dXSARGS;
        
        if (items < 4) {
            SWIG_croak("Usage: p_psWarning(file,lineno,func,fmt,...);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        if (!SvOK((SV*) ST(3))) arg4 = 0;
        else arg4 = (char *) SvPV(ST(3), PL_na);
        p_psWarning((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4,arg5);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psErrAlloc) {
    {
        char *arg1 ;
        int arg2 ;
        char *arg3 ;
        psErr *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psErrAlloc(name,code,msg);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        result = (psErr *)psErrAlloc((char const *)arg1,(psErrorCode )arg2,(char const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psErr, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLogSetDestination) {
    {
        char *arg1 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psLogSetDestination(dest);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (psBool)psLogSetDestination((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLogSetLevel) {
    {
        psS32 arg1 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psLogSetLevel(level);");
        }
        arg1 = (psS32) SvIV(ST(0));
        result = (psS32)psLogSetLevel(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLogSetFormat) {
    {
        char *arg1 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psLogSetFormat(fmt);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        psLogSetFormat((char const *)arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLogMsg) {
    {
        char *arg1 ;
        psS32 arg2 ;
        char *arg3 ;
        void *arg4 = 0 ;
        int argvi = 0;
        dXSARGS;
        
        if (items < 3) {
            SWIG_croak("Usage: psLogMsg(name,myLevel,fmt,...);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (psS32) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        psLogMsg((char const *)arg1,arg2,(char const *)arg3,arg4);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_startblock_get) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemBlock_startblock_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_startblock_get. Expected _p_psMemBlock");
            }
        }
        result = (psPtr)(psPtr) ((arg1)->startblock);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_previousBlock_set) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        struct psMemBlock *arg2 = (struct psMemBlock *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMemBlock_previousBlock_set(self,previousBlock);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_previousBlock_set. Expected _p_psMemBlock");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMemBlock_previousBlock_set. Expected _p_psMemBlock");
            }
        }
        if (arg1) (arg1)->previousBlock = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_previousBlock_get) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        struct psMemBlock *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemBlock_previousBlock_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_previousBlock_get. Expected _p_psMemBlock");
            }
        }
        result = (struct psMemBlock *) ((arg1)->previousBlock);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMemBlock, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_nextBlock_set) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        struct psMemBlock *arg2 = (struct psMemBlock *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMemBlock_nextBlock_set(self,nextBlock);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_nextBlock_set. Expected _p_psMemBlock");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMemBlock_nextBlock_set. Expected _p_psMemBlock");
            }
        }
        if (arg1) (arg1)->nextBlock = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_nextBlock_get) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        struct psMemBlock *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemBlock_nextBlock_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_nextBlock_get. Expected _p_psMemBlock");
            }
        }
        result = (struct psMemBlock *) ((arg1)->nextBlock);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMemBlock, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_freeFcn_set) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        psFreeFcn arg2 = (psFreeFcn) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMemBlock_freeFcn_set(self,freeFcn);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_freeFcn_set. Expected _p_psMemBlock");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_psFreeFcn,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMemBlock_freeFcn_set. Expected _psFreeFcn");
            }
        }
        if (arg1) (arg1)->freeFcn = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_freeFcn_get) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        psFreeFcn result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemBlock_freeFcn_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_freeFcn_get. Expected _p_psMemBlock");
            }
        }
        result = (psFreeFcn) ((arg1)->freeFcn);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psFreeFcn, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_userMemorySize_set) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        size_t arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMemBlock_userMemorySize_set(self,userMemorySize);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_userMemorySize_set. Expected _p_psMemBlock");
            }
        }
        arg2 = (size_t) SvUV(ST(1));
        if (arg1) (arg1)->userMemorySize = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_userMemorySize_get) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        size_t result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemBlock_userMemorySize_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_userMemorySize_get. Expected _p_psMemBlock");
            }
        }
        result =  ((arg1)->userMemorySize);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_id_get) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        psMemoryId result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemBlock_id_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_id_get. Expected _p_psMemBlock");
            }
        }
        result = (psMemoryId)(psMemoryId) ((arg1)->id);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_file_set) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMemBlock_file_set(self,file);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_file_set. Expected _p_psMemBlock");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg2) {
                arg1->file = (char const *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->file,arg2);
            } else {
                arg1->file = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_file_get) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemBlock_file_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_file_get. Expected _p_psMemBlock");
            }
        }
        result = (char *) ((arg1)->file);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_lineno_get) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemBlock_lineno_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_lineno_get. Expected _p_psMemBlock");
            }
        }
        result = (psS32)(psS32) ((arg1)->lineno);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_refCounterMutex_set) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        pthread_mutex_t arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMemBlock_refCounterMutex_set(self,refCounterMutex);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_refCounterMutex_set. Expected _p_psMemBlock");
            }
        }
        {
            pthread_mutex_t * argp;
            if (SWIG_ConvertPtr(ST(1),(void **) &argp, SWIGTYPE_p_pthread_mutex_t,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMemBlock_refCounterMutex_set. Expected _p_pthread_mutex_t");
            }
            arg2 = *argp;
        }
        if (arg1) (arg1)->refCounterMutex = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_refCounterMutex_get) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        pthread_mutex_t result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemBlock_refCounterMutex_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_refCounterMutex_get. Expected _p_psMemBlock");
            }
        }
        result =  ((arg1)->refCounterMutex);
        
        {
            pthread_mutex_t * resultobj = (pthread_mutex_t *) malloc(sizeof(pthread_mutex_t));
            memmove(resultobj, &result, sizeof(pthread_mutex_t));
            ST(argvi) = sv_newmortal();
            SWIG_MakePtr(ST(argvi++), (void *) resultobj, SWIGTYPE_p_pthread_mutex_t, 0|SWIG_OWNER);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_refCounter_set) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        psReferenceCount arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMemBlock_refCounter_set(self,refCounter);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_refCounter_set. Expected _p_psMemBlock");
            }
        }
        arg2 = (psReferenceCount) SvUV(ST(1));
        if (arg1) (arg1)->refCounter = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_refCounter_get) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        psReferenceCount result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemBlock_refCounter_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_refCounter_get. Expected _p_psMemBlock");
            }
        }
        result = (psReferenceCount) ((arg1)->refCounter);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_persistent_set) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        psBool arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMemBlock_persistent_set(self,persistent);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_persistent_set. Expected _p_psMemBlock");
            }
        }
        arg2 = (psBool) SvIV(ST(1));
        if (arg1) (arg1)->persistent = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_persistent_get) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemBlock_persistent_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_persistent_get. Expected _p_psMemBlock");
            }
        }
        result = (psBool) ((arg1)->persistent);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemBlock_endblock_get) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemBlock_endblock_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemBlock_endblock_get. Expected _p_psMemBlock");
            }
        }
        result = (psPtr)(psPtr) ((arg1)->endblock);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psMemBlock) {
    {
        psMemBlock *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psMemBlock();");
        }
        result = (psMemBlock *)(psMemBlock *) calloc(1, sizeof(psMemBlock));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMemBlock, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psMemBlock) {
    {
        psMemBlock *arg1 = (psMemBlock *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psMemBlock(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psMemBlock. Expected _p_psMemBlock");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psAlloc) {
    {
        size_t arg1 ;
        char *arg2 ;
        psS32 arg3 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psAlloc(size,file,lineno);");
        }
        arg1 = (size_t) SvUV(ST(0));
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (psS32) SvIV(ST(2));
        result = (psPtr)p_psAlloc(arg1,(char const *)arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psMemSetDeallocator) {
    {
        psPtr arg1 = (psPtr) 0 ;
        psFreeFcn arg2 = (psFreeFcn) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: p_psMemSetDeallocator(ptr,freeFcn);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psMemSetDeallocator. Expected _psPtr");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_psFreeFcn,0) < 0) {
                SWIG_croak("Type error in argument 2 of p_psMemSetDeallocator. Expected _psFreeFcn");
            }
        }
        p_psMemSetDeallocator(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psMemGetDeallocator) {
    {
        psPtr arg1 = (psPtr) 0 ;
        psFreeFcn result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: p_psMemGetDeallocator(ptr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psMemGetDeallocator. Expected _psPtr");
            }
        }
        result = (psFreeFcn)p_psMemGetDeallocator(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psFreeFcn, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psMemSetPersistent) {
    {
        psPtr arg1 = (psPtr) 0 ;
        psBool arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: p_psMemSetPersistent(ptr,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psMemSetPersistent. Expected _psPtr");
            }
        }
        arg2 = (psBool) SvIV(ST(1));
        p_psMemSetPersistent(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psMemGetPersistent) {
    {
        psPtr arg1 = (psPtr) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: p_psMemGetPersistent(ptr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psMemGetPersistent. Expected _psPtr");
            }
        }
        result = (psBool)p_psMemGetPersistent(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psRealloc) {
    {
        psPtr arg1 = (psPtr) 0 ;
        size_t arg2 ;
        char *arg3 ;
        psS32 arg4 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: p_psRealloc(ptr,size,file,lineno);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psRealloc. Expected _psPtr");
            }
        }
        arg2 = (size_t) SvUV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        arg4 = (psS32) SvIV(ST(3));
        result = (psPtr)p_psRealloc(arg1,arg2,(char const *)arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psFree) {
    {
        psPtr arg1 = (psPtr) 0 ;
        char *arg2 ;
        psS32 arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psFree(ptr,file,lineno);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psFree. Expected _psPtr");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (psS32) SvIV(ST(2));
        p_psFree(arg1,(char const *)arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemCheckLeaks) {
    {
        psMemoryId arg1 ;
        psMemBlock ***arg2 = (psMemBlock ***) 0 ;
        FILE *arg3 = (FILE *) 0 ;
        psBool arg4 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psMemCheckLeaks(id0,arr,fd,persistence);");
        }
        arg1 = (psMemoryId) SvUV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMemCheckLeaks. Expected _p_p_p_psMemBlock");
            }
        }
        {
            if (!SvOK(ST(2))) {
                arg3 = NULL;      
            } else {
                arg3 = PerlIO_findFILE(IoIFP(sv_2io(ST(2))));
            }
            
            
            
            
            
            
            
            
            
            
        }
        arg4 = (psBool) SvIV(ST(3));
        result = (psS32)psMemCheckLeaks(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemCheckCorruption) {
    {
        psBool arg1 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemCheckCorruption(abort_on_error);");
        }
        arg1 = (psBool) SvIV(ST(0));
        result = (psS32)psMemCheckCorruption(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemGetRefCounter) {
    {
        psPtr arg1 = (psPtr) 0 ;
        psReferenceCount result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemGetRefCounter(vptr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemGetRefCounter. Expected _psPtr");
            }
        }
        result = (psReferenceCount)psMemGetRefCounter(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psMemIncrRefCounter) {
    {
        psPtr arg1 = (psPtr) 0 ;
        char *arg2 ;
        psS32 arg3 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psMemIncrRefCounter(vptr,file,lineno);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psMemIncrRefCounter. Expected _psPtr");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (psS32) SvIV(ST(2));
        result = (psPtr)p_psMemIncrRefCounter(arg1,(char const *)arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psMemDecrRefCounter) {
    {
        psPtr arg1 = (psPtr) 0 ;
        char *arg2 ;
        psS32 arg3 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psMemDecrRefCounter(vptr,file,lineno);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psMemDecrRefCounter. Expected _psPtr");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (psS32) SvIV(ST(2));
        result = (psPtr)p_psMemDecrRefCounter(arg1,(char const *)arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemProblemCallbackSet) {
    {
        psMemProblemCallback arg1 = (psMemProblemCallback) 0 ;
        psMemProblemCallback result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemProblemCallbackSet(func);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_psMemProblemCallback,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemProblemCallbackSet. Expected _psMemProblemCallback");
            }
        }
        result = (psMemProblemCallback)psMemProblemCallbackSet(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psMemProblemCallback, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemExhaustedCallbackSet) {
    {
        psMemExhaustedCallback arg1 = (psMemExhaustedCallback) 0 ;
        psMemExhaustedCallback result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemExhaustedCallbackSet(func);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_psMemExhaustedCallback,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemExhaustedCallbackSet. Expected _psMemExhaustedCallback");
            }
        }
        result = (psMemExhaustedCallback)psMemExhaustedCallbackSet(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psMemExhaustedCallback, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemAllocateCallbackSet) {
    {
        psMemAllocateCallback arg1 = (psMemAllocateCallback) 0 ;
        psMemAllocateCallback result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemAllocateCallbackSet(func);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_psMemAllocateCallback,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemAllocateCallbackSet. Expected _psMemAllocateCallback");
            }
        }
        result = (psMemAllocateCallback)psMemAllocateCallbackSet(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psMemAllocateCallback, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemFreeCallbackSet) {
    {
        psMemFreeCallback arg1 = (psMemFreeCallback) 0 ;
        psMemFreeCallback result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemFreeCallbackSet(func);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_psMemFreeCallback,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemFreeCallbackSet. Expected _psMemFreeCallback");
            }
        }
        result = (psMemFreeCallback)psMemFreeCallbackSet(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psMemFreeCallback, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemGetId) {
    {
        psMemoryId result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: psMemGetId();");
        }
        result = (psMemoryId)psMemGetId();
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemAllocateCallbackSetID) {
    {
        psMemoryId arg1 ;
        psMemoryId result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemAllocateCallbackSetID(id);");
        }
        arg1 = (psMemoryId) SvUV(ST(0));
        result = (psMemoryId)psMemAllocateCallbackSetID(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemFreeCallbackSetID) {
    {
        psMemoryId arg1 ;
        psMemoryId result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemFreeCallbackSetID(id);");
        }
        arg1 = (psMemoryId) SvUV(ST(0));
        result = (psMemoryId)psMemFreeCallbackSetID(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStringCopy) {
    {
        char *arg1 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStringCopy(str);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (char *)psStringCopy((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStringNCopy) {
    {
        char *arg1 ;
        psS32 arg2 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStringNCopy(str,nChar);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (psS32) SvIV(ST(1));
        result = (char *)psStringNCopy((char const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psComponent_name_set) {
    {
        p_psComponent *arg1 = (p_psComponent *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: p_psComponent_name_set(self,name);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_psComponent,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psComponent_name_set. Expected _p_p_psComponent");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg2) {
                arg1->name = (char const *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->name,arg2);
            } else {
                arg1->name = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psComponent_name_get) {
    {
        p_psComponent *arg1 = (p_psComponent *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: p_psComponent_name_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_psComponent,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psComponent_name_get. Expected _p_p_psComponent");
            }
        }
        result = (char *) ((arg1)->name);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psComponent_level_set) {
    {
        p_psComponent *arg1 = (p_psComponent *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: p_psComponent_level_set(self,level);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_psComponent,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psComponent_level_set. Expected _p_p_psComponent");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->level = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psComponent_level_get) {
    {
        p_psComponent *arg1 = (p_psComponent *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: p_psComponent_level_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_psComponent,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psComponent_level_get. Expected _p_p_psComponent");
            }
        }
        result = (psS32) ((arg1)->level);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psComponent_p_psSpecified_set) {
    {
        p_psComponent *arg1 = (p_psComponent *) 0 ;
        bool arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: p_psComponent_p_psSpecified_set(self,p_psSpecified);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_psComponent,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psComponent_p_psSpecified_set. Expected _p_p_psComponent");
            }
        }
        arg2 = (bool) SvIV(ST(1));
        if (arg1) (arg1)->p_psSpecified = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psComponent_p_psSpecified_get) {
    {
        p_psComponent *arg1 = (p_psComponent *) 0 ;
        bool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: p_psComponent_p_psSpecified_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_psComponent,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psComponent_p_psSpecified_get. Expected _p_p_psComponent");
            }
        }
        result = (bool) ((arg1)->p_psSpecified);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psComponent_n_set) {
    {
        p_psComponent *arg1 = (p_psComponent *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: p_psComponent_n_set(self,n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_psComponent,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psComponent_n_set. Expected _p_p_psComponent");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->n = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psComponent_n_get) {
    {
        p_psComponent *arg1 = (p_psComponent *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: p_psComponent_n_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_psComponent,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psComponent_n_get. Expected _p_p_psComponent");
            }
        }
        result = (psS32) ((arg1)->n);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psComponent_subcomp_set) {
    {
        p_psComponent *arg1 = (p_psComponent *) 0 ;
        struct p_psComponent **arg2 = (struct p_psComponent **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: p_psComponent_subcomp_set(self,subcomp);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_psComponent,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psComponent_subcomp_set. Expected _p_p_psComponent");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_psComponent,0) < 0) {
                SWIG_croak("Type error in argument 2 of p_psComponent_subcomp_set. Expected _p_p_p_psComponent");
            }
        }
        if (arg1) (arg1)->subcomp = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psComponent_subcomp_get) {
    {
        p_psComponent *arg1 = (p_psComponent *) 0 ;
        struct p_psComponent **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: p_psComponent_subcomp_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_psComponent,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psComponent_subcomp_get. Expected _p_p_psComponent");
            }
        }
        result = (struct p_psComponent **) ((arg1)->subcomp);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_p_psComponent, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_p_psComponent) {
    {
        p_psComponent *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_p_psComponent();");
        }
        result = (p_psComponent *)(p_psComponent *) calloc(1, sizeof(p_psComponent));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psComponent, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_p_psComponent) {
    {
        p_psComponent *arg1 = (p_psComponent *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_p_psComponent(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_psComponent,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_p_psComponent. Expected _p_p_psComponent");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psTrace) {
    {
        char *arg1 ;
        psS32 arg2 ;
        void *arg3 = 0 ;
        int argvi = 0;
        dXSARGS;
        
        if (items < 2) {
            SWIG_croak("Usage: p_psTrace(facil,myLevel,...);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (psS32) SvIV(ST(1));
        p_psTrace((char const *)arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTraceSetLevel) {
    {
        char *arg1 ;
        psS32 arg2 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psTraceSetLevel(facil,level);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (psS32) SvIV(ST(1));
        result = (psBool)psTraceSetLevel((char const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTraceGetLevel) {
    {
        char *arg1 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTraceGetLevel(facil);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (psS32)psTraceGetLevel((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTraceReset) {
    {
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: psTraceReset();");
        }
        psTraceReset();
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTracePrintLevels) {
    {
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: psTracePrintLevels();");
        }
        psTracePrintLevels();
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTraceSetDestination) {
    {
        FILE *arg1 = (FILE *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTraceSetDestination(fp);");
        }
        {
            if (!SvOK(ST(0))) {
                arg1 = NULL;      
            } else {
                arg1 = PerlIO_findFILE(IoIFP(sv_2io(ST(0))));
            }
            
            
            
            
            
            
            
            
            
            
        }
        psTraceSetDestination(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psError) {
    {
        int arg1 ;
        psBool arg2 ;
        char *arg3 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psError(code,new,msg);");
        }
        arg1 = (int) SvIV(ST(0));
        arg2 = (psBool) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        result = (int)psError((psErrorCode )arg1,arg2,(char const *)arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psAlloc) {
    {
        size_t arg1 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psAlloc(size);");
        }
        arg1 = (size_t) SvUV(ST(0));
        result = (psPtr)psAlloc(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRealloc) {
    {
        psPtr arg1 = (psPtr) 0 ;
        size_t arg2 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psRealloc(ptr,size);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRealloc. Expected _psPtr");
            }
        }
        arg2 = (size_t) SvUV(ST(1));
        result = (psPtr)psRealloc(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFree) {
    {
        psPtr arg1 = (psPtr) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFree(ptr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFree. Expected _psPtr");
            }
        }
        psFree(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemIncrRefCounter) {
    {
        psPtr arg1 = (psPtr) 0 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemIncrRefCounter(vptr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemIncrRefCounter. Expected _psPtr");
            }
        }
        result = (psPtr)psMemIncrRefCounter(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemDecrRefCounter) {
    {
        psPtr arg1 = (psPtr) 0 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMemDecrRefCounter(vptr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMemDecrRefCounter. Expected _psPtr");
            }
        }
        result = (psPtr)psMemDecrRefCounter(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTrace) {
    {
        char *arg1 ;
        psS32 arg2 ;
        char *arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psTrace(facil,myLevel,msg);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (psS32) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        psTrace((char const *)arg1,arg2,(char const *)arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemCheckLeaksToStderr) {
    {
        psMemoryId arg1 ;
        psMemBlock ***arg2 = (psMemBlock ***) 0 ;
        psBool arg3 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMemCheckLeaksToStderr(id0,arr,persistence);");
        }
        arg1 = (psMemoryId) SvUV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMemCheckLeaksToStderr. Expected _p_p_p_psMemBlock");
            }
        }
        arg3 = (psBool) SvIV(ST(2));
        result = (psS32)psMemCheckLeaksToStderr(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMemCheckLeaksToStdout) {
    {
        psMemoryId arg1 ;
        psMemBlock ***arg2 = (psMemBlock ***) 0 ;
        psBool arg3 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMemCheckLeaksToStdout(id0,arr,persistence);");
        }
        arg1 = (psMemoryId) SvUV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_psMemBlock,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMemCheckLeaksToStdout. Expected _p_p_p_psMemBlock");
            }
        }
        arg3 = (psBool) SvIV(ST(2));
        result = (psS32)psMemCheckLeaksToStdout(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernel_image_set) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psKernel_image_set(self,image);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernel_image_set. Expected _p_psKernel");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psKernel_image_set. Expected _p_psImage");
            }
        }
        if (arg1) (arg1)->image = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernel_image_get) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psKernel_image_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernel_image_get. Expected _p_psKernel");
            }
        }
        result = (psImage *) ((arg1)->image);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernel_xMin_set) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psKernel_xMin_set(self,xMin);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernel_xMin_set. Expected _p_psKernel");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->xMin = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernel_xMin_get) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psKernel_xMin_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernel_xMin_get. Expected _p_psKernel");
            }
        }
        result = (psS32) ((arg1)->xMin);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernel_yMin_set) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psKernel_yMin_set(self,yMin);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernel_yMin_set. Expected _p_psKernel");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->yMin = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernel_yMin_get) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psKernel_yMin_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernel_yMin_get. Expected _p_psKernel");
            }
        }
        result = (psS32) ((arg1)->yMin);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernel_xMax_set) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psKernel_xMax_set(self,xMax);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernel_xMax_set. Expected _p_psKernel");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->xMax = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernel_xMax_get) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psKernel_xMax_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernel_xMax_get. Expected _p_psKernel");
            }
        }
        result = (psS32) ((arg1)->xMax);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernel_yMax_set) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psKernel_yMax_set(self,yMax);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernel_yMax_set. Expected _p_psKernel");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->yMax = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernel_yMax_get) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psKernel_yMax_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernel_yMax_get. Expected _p_psKernel");
            }
        }
        result = (psS32) ((arg1)->yMax);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernel_kernel_set) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        psKernelType **arg2 = (psKernelType **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psKernel_kernel_set(self,kernel);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernel_kernel_set. Expected _p_psKernel");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psKernelType,0) < 0) {
                SWIG_croak("Type error in argument 2 of psKernel_kernel_set. Expected _p_p_psKernelType");
            }
        }
        if (arg1) (arg1)->kernel = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernel_kernel_get) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        psKernelType **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psKernel_kernel_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernel_kernel_get. Expected _p_psKernel");
            }
        }
        result = (psKernelType **) ((arg1)->kernel);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psKernelType, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernel_p_kernelRows_set) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        psKernelType **arg2 = (psKernelType **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psKernel_p_kernelRows_set(self,p_kernelRows);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernel_p_kernelRows_set. Expected _p_psKernel");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psKernelType,0) < 0) {
                SWIG_croak("Type error in argument 2 of psKernel_p_kernelRows_set. Expected _p_p_psKernelType");
            }
        }
        if (arg1) (arg1)->p_kernelRows = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernel_p_kernelRows_get) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        psKernelType **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psKernel_p_kernelRows_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernel_p_kernelRows_get. Expected _p_psKernel");
            }
        }
        result = (psKernelType **) ((arg1)->p_kernelRows);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psKernelType, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psKernel) {
    {
        psKernel *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psKernel();");
        }
        result = (psKernel *)(psKernel *) calloc(1, sizeof(psKernel));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psKernel, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psKernel) {
    {
        psKernel *arg1 = (psKernel *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psKernel(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psKernel. Expected _p_psKernel");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernelAlloc) {
    {
        psS32 arg1 ;
        psS32 arg2 ;
        psS32 arg3 ;
        psS32 arg4 ;
        psKernel *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psKernelAlloc(xMin,xMax,yMin,yMax);");
        }
        arg1 = (psS32) SvIV(ST(0));
        arg2 = (psS32) SvIV(ST(1));
        arg3 = (psS32) SvIV(ST(2));
        arg4 = (psS32) SvIV(ST(3));
        result = (psKernel *)psKernelAlloc(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psKernel, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psKernelGenerate) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psBool arg4 ;
        psKernel *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psKernelGenerate(tShifts,xShifts,yShifts,relative);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psKernelGenerate. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psKernelGenerate. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psKernelGenerate. Expected _p_psVector");
            }
        }
        arg4 = (psBool) SvIV(ST(3));
        result = (psKernel *)psKernelGenerate((psVector const *)arg1,(psVector const *)arg2,(psVector const *)arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psKernel, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageConvolve) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psKernel *arg3 = (psKernel *) 0 ;
        psBool arg4 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psImageConvolve(out,in,kernel,direct);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageConvolve. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageConvolve. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psKernel,0) < 0) {
                SWIG_croak("Type error in argument 3 of psImageConvolve. Expected _p_psKernel");
            }
        }
        arg4 = (psBool) SvIV(ST(3));
        result = (psImage *)psImageConvolve(arg1,(psImage const *)arg2,(psKernel const *)arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageSubset) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psS32 arg2 ;
        psS32 arg3 ;
        psS32 arg4 ;
        psS32 arg5 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psImageSubset(image,col0,row0,col1,row1);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageSubset. Expected _p_psImage");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        arg3 = (psS32) SvIV(ST(2));
        arg4 = (psS32) SvIV(ST(3));
        arg5 = (psS32) SvIV(ST(4));
        result = (psImage *)psImageSubset(arg1,arg2,arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageSubsection) {
    {
        psImage *arg1 = (psImage *) 0 ;
        char *arg2 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImageSubsection(image,section);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageSubsection. Expected _p_psImage");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (psImage *)psImageSubsection(arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageTrim) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psS32 arg2 ;
        psS32 arg3 ;
        psS32 arg4 ;
        psS32 arg5 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psImageTrim(image,col0,row0,col1,row1);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageTrim. Expected _p_psImage");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        arg3 = (psS32) SvIV(ST(2));
        arg4 = (psS32) SvIV(ST(3));
        arg5 = (psS32) SvIV(ST(4));
        result = (psImage *)psImageTrim(arg1,arg2,arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageSlice) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psImage *arg3 = (psImage *) 0 ;
        psImage *arg4 = (psImage *) 0 ;
        psU32 arg5 ;
        psS32 arg6 ;
        psS32 arg7 ;
        psS32 arg8 ;
        psS32 arg9 ;
        int arg10 ;
        psStats *arg11 = (psStats *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 11) || (items > 11)) {
            SWIG_croak("Usage: psImageSlice(out,slicePositions,input,mask,maskVal,col0,row0,col1,row1,direction,stats);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageSlice. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageSlice. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 3 of psImageSlice. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 4 of psImageSlice. Expected _p_psImage");
            }
        }
        arg5 = (psU32) SvUV(ST(4));
        arg6 = (psS32) SvIV(ST(5));
        arg7 = (psS32) SvIV(ST(6));
        arg8 = (psS32) SvIV(ST(7));
        arg9 = (psS32) SvIV(ST(8));
        arg10 = (int) SvIV(ST(9));
        {
            if (SWIG_ConvertPtr(ST(10), (void **) &arg11, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 11 of psImageSlice. Expected _p_psStats");
            }
        }
        result = (psVector *)psImageSlice(arg1,arg2,(psImage const *)arg3,(psImage const *)arg4,arg5,arg6,arg7,arg8,arg9,(psImageCutDirection )arg10,(psStats const *)arg11);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageCut) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psImage *arg4 = (psImage *) 0 ;
        psImage *arg5 = (psImage *) 0 ;
        psU32 arg6 ;
        float arg7 ;
        float arg8 ;
        float arg9 ;
        float arg10 ;
        psU32 arg11 ;
        int arg12 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 12) || (items > 12)) {
            SWIG_croak("Usage: psImageCut(out,cutCols,cutRows,input,mask,maskVal,startCol,startRow,endCol,endRow,nSamples,mode);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageCut. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageCut. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psImageCut. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 4 of psImageCut. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 5 of psImageCut. Expected _p_psImage");
            }
        }
        arg6 = (psU32) SvUV(ST(5));
        arg7 = (float) SvNV(ST(6));
        
        arg8 = (float) SvNV(ST(7));
        
        arg9 = (float) SvNV(ST(8));
        
        arg10 = (float) SvNV(ST(9));
        
        arg11 = (psU32) SvUV(ST(10));
        arg12 = (int) SvIV(ST(11));
        result = (psVector *)psImageCut(arg1,arg2,arg3,(psImage const *)arg4,(psImage const *)arg5,arg6,arg7,arg8,arg9,arg10,arg11,(psImageInterpolateMode )arg12);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageRadialCut) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psImage *arg3 = (psImage *) 0 ;
        psU32 arg4 ;
        float arg5 ;
        float arg6 ;
        psVector *arg7 = (psVector *) 0 ;
        psStats *arg8 = (psStats *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 8) || (items > 8)) {
            SWIG_croak("Usage: psImageRadialCut(out,input,mask,maskVal,centerCol,centerRow,radii,stats);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageRadialCut. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageRadialCut. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 3 of psImageRadialCut. Expected _p_psImage");
            }
        }
        arg4 = (psU32) SvUV(ST(3));
        arg5 = (float) SvNV(ST(4));
        
        arg6 = (float) SvNV(ST(5));
        
        {
            if (SWIG_ConvertPtr(ST(6), (void **) &arg7, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 7 of psImageRadialCut. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(7), (void **) &arg8, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 8 of psImageRadialCut. Expected _p_psStats");
            }
        }
        result = (psVector *)psImageRadialCut(arg1,(psImage const *)arg2,(psImage const *)arg3,arg4,arg5,arg6,(psVector const *)arg7,(psStats const *)arg8);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageFFT) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        int arg3 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psImageFFT(out,in,direction);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageFFT. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageFFT. Expected _p_psImage");
            }
        }
        arg3 = (int) SvIV(ST(2));
        result = (psImage *)psImageFFT(arg1,(psImage const *)arg2,(psFFTFlags )arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageReal) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImageReal(out,in);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageReal. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageReal. Expected _p_psImage");
            }
        }
        result = (psImage *)psImageReal(arg1,(psImage const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageImaginary) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImageImaginary(out,in);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageImaginary. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageImaginary. Expected _p_psImage");
            }
        }
        result = (psImage *)psImageImaginary(arg1,(psImage const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageComplex) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psImage *arg3 = (psImage *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psImageComplex(out,real,imag);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageComplex. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageComplex. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 3 of psImageComplex. Expected _p_psImage");
            }
        }
        result = (psImage *)psImageComplex(arg1,(psImage const *)arg2,(psImage const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageConjugate) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImageConjugate(out,in);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageConjugate. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageConjugate. Expected _p_psImage");
            }
        }
        result = (psImage *)psImageConjugate(arg1,(psImage const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImagePowerSpectrum) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImagePowerSpectrum(out,in);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImagePowerSpectrum. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImagePowerSpectrum. Expected _p_psImage");
            }
        }
        result = (psImage *)psImagePowerSpectrum(arg1,(psImage const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_type_get) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psType *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_type_get. Expected _p_psImage");
            }
        }
        result = (psType *)& ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psType, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_numCols_get) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psU32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_numCols_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_numCols_get. Expected _p_psImage");
            }
        }
        result = (psU32)(psU32) ((arg1)->numCols);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_numRows_get) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psU32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_numRows_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_numRows_get. Expected _p_psImage");
            }
        }
        result = (psU32)(psU32) ((arg1)->numRows);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_col0_get) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_col0_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_col0_get. Expected _p_psImage");
            }
        }
        result = (psS32)(psS32) ((arg1)->col0);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_row0_get) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_row0_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_row0_get. Expected _p_psImage");
            }
        }
        result = (psS32)(psS32) ((arg1)->row0);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_parent_set) {
    {
        psImage *arg1 = (psImage *) 0 ;
        struct psImage *arg2 = (struct psImage *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_parent_set(self,parent);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_parent_set. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_parent_set. Expected _p_psImage");
            }
        }
        if (arg1) (arg1)->parent = (struct psImage const *)arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_parent_get) {
    {
        psImage *arg1 = (psImage *) 0 ;
        struct psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_parent_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_parent_get. Expected _p_psImage");
            }
        }
        result = (struct psImage *) ((arg1)->parent);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_children_set) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psArray *arg2 = (psArray *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_children_set(self,children);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_children_set. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_children_set. Expected _p_psArray");
            }
        }
        if (arg1) (arg1)->children = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_children_get) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_children_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_children_get. Expected _p_psImage");
            }
        }
        result = (psArray *) ((arg1)->children);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_rawDataBuffer_set) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psPtr arg2 = (psPtr) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_rawDataBuffer_set(self,rawDataBuffer);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_rawDataBuffer_set. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_rawDataBuffer_set. Expected _psPtr");
            }
        }
        if (arg1) (arg1)->rawDataBuffer = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_rawDataBuffer_get) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_rawDataBuffer_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_rawDataBuffer_get. Expected _p_psImage");
            }
        }
        result = (psPtr) ((arg1)->rawDataBuffer);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_get) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage_data *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_get. Expected _p_psImage");
            }
        }
        result = (psImage_data *)& ((arg1)->data);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage_data, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psImage) {
    {
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psImage();");
        }
        result = (psImage *)(psImage *) calloc(1, sizeof(psImage));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psImage) {
    {
        psImage *arg1 = (psImage *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psImage(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psImage. Expected _p_psImage");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_U8_set) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psU8 **arg2 = (psU8 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_data_U8_set(self,U8);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_U8_set. Expected _p_psImage_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psU8,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_data_U8_set. Expected _p_p_psU8");
            }
        }
        if (arg1) (arg1)->U8 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_U8_get) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psU8 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_U8_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_U8_get. Expected _p_psImage_data");
            }
        }
        result = (psU8 **) ((arg1)->U8);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psU8, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_U16_set) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psU16 **arg2 = (psU16 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_data_U16_set(self,U16);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_U16_set. Expected _p_psImage_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psU16,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_data_U16_set. Expected _p_p_psU16");
            }
        }
        if (arg1) (arg1)->U16 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_U16_get) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psU16 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_U16_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_U16_get. Expected _p_psImage_data");
            }
        }
        result = (psU16 **) ((arg1)->U16);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psU16, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_U32_set) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psU32 **arg2 = (psU32 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_data_U32_set(self,U32);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_U32_set. Expected _p_psImage_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psU32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_data_U32_set. Expected _p_p_psU32");
            }
        }
        if (arg1) (arg1)->U32 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_U32_get) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psU32 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_U32_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_U32_get. Expected _p_psImage_data");
            }
        }
        result = (psU32 **) ((arg1)->U32);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psU32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_U64_set) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psU64 **arg2 = (psU64 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_data_U64_set(self,U64);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_U64_set. Expected _p_psImage_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psU64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_data_U64_set. Expected _p_p_psU64");
            }
        }
        if (arg1) (arg1)->U64 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_U64_get) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psU64 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_U64_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_U64_get. Expected _p_psImage_data");
            }
        }
        result = (psU64 **) ((arg1)->U64);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psU64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_S8_set) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psS8 **arg2 = (psS8 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_data_S8_set(self,S8);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_S8_set. Expected _p_psImage_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psS8,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_data_S8_set. Expected _p_p_psS8");
            }
        }
        if (arg1) (arg1)->S8 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_S8_get) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psS8 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_S8_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_S8_get. Expected _p_psImage_data");
            }
        }
        result = (psS8 **) ((arg1)->S8);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psS8, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_S16_set) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psS16 **arg2 = (psS16 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_data_S16_set(self,S16);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_S16_set. Expected _p_psImage_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psS16,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_data_S16_set. Expected _p_p_psS16");
            }
        }
        if (arg1) (arg1)->S16 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_S16_get) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psS16 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_S16_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_S16_get. Expected _p_psImage_data");
            }
        }
        result = (psS16 **) ((arg1)->S16);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psS16, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_S32_set) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psS32 **arg2 = (psS32 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_data_S32_set(self,S32);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_S32_set. Expected _p_psImage_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psS32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_data_S32_set. Expected _p_p_psS32");
            }
        }
        if (arg1) (arg1)->S32 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_S32_get) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psS32 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_S32_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_S32_get. Expected _p_psImage_data");
            }
        }
        result = (psS32 **) ((arg1)->S32);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psS32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_S64_set) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psS64 **arg2 = (psS64 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_data_S64_set(self,S64);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_S64_set. Expected _p_psImage_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psS64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_data_S64_set. Expected _p_p_psS64");
            }
        }
        if (arg1) (arg1)->S64 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_S64_get) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psS64 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_S64_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_S64_get. Expected _p_psImage_data");
            }
        }
        result = (psS64 **) ((arg1)->S64);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psS64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_F32_set) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psF32 **arg2 = (psF32 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_data_F32_set(self,F32);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_F32_set. Expected _p_psImage_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psF32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_data_F32_set. Expected _p_p_psF32");
            }
        }
        if (arg1) (arg1)->F32 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_F32_get) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psF32 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_F32_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_F32_get. Expected _p_psImage_data");
            }
        }
        result = (psF32 **) ((arg1)->F32);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psF32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_F64_set) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psF64 **arg2 = (psF64 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_data_F64_set(self,F64);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_F64_set. Expected _p_psImage_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psF64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_data_F64_set. Expected _p_p_psF64");
            }
        }
        if (arg1) (arg1)->F64 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_F64_get) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psF64 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_F64_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_F64_get. Expected _p_psImage_data");
            }
        }
        result = (psF64 **) ((arg1)->F64);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psF64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_C32_set) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psC32 **arg2 = (psC32 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_data_C32_set(self,C32);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_C32_set. Expected _p_psImage_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psC32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_data_C32_set. Expected _p_p_psC32");
            }
        }
        if (arg1) (arg1)->C32 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_C32_get) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psC32 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_C32_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_C32_get. Expected _p_psImage_data");
            }
        }
        result = (psC32 **) ((arg1)->C32);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psC32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_C64_set) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psC64 **arg2 = (psC64 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_data_C64_set(self,C64);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_C64_set. Expected _p_psImage_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_data_C64_set. Expected _p_p_psC64");
            }
        }
        if (arg1) (arg1)->C64 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_C64_get) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psC64 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_C64_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_C64_get. Expected _p_psImage_data");
            }
        }
        result = (psC64 **) ((arg1)->C64);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psC64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_PTR_set) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psPtr **arg2 = (psPtr **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_data_PTR_set(self,PTR);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_PTR_set. Expected _p_psImage_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psPtr,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_data_PTR_set. Expected _p_p_psPtr");
            }
        }
        if (arg1) (arg1)->PTR = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_PTR_get) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psPtr **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_PTR_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_PTR_get. Expected _p_psImage_data");
            }
        }
        result = (psPtr **) ((arg1)->PTR);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psPtr, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_V_set) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psPtr *arg2 = (psPtr *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImage_data_V_set(self,V);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_V_set. Expected _p_psImage_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPtr,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImage_data_V_set. Expected _p_psPtr");
            }
        }
        if (arg1) (arg1)->V = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImage_data_V_get) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        psPtr *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImage_data_V_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImage_data_V_get. Expected _p_psImage_data");
            }
        }
        result = (psPtr *) ((arg1)->V);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPtr, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psImage_data) {
    {
        psImage_data *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psImage_data();");
        }
        result = (psImage_data *)(psImage_data *) calloc(1, sizeof(psImage_data));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage_data, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psImage_data) {
    {
        psImage_data *arg1 = (psImage_data *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psImage_data(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psImage_data. Expected _p_psImage_data");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRegion_x0_set) {
    {
        psRegion *arg1 = (psRegion *) 0 ;
        psF32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psRegion_x0_set(self,x0);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRegion,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRegion_x0_set. Expected _p_psRegion");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        if (arg1) (arg1)->x0 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRegion_x0_get) {
    {
        psRegion *arg1 = (psRegion *) 0 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psRegion_x0_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRegion,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRegion_x0_get. Expected _p_psRegion");
            }
        }
        result = (psF32) ((arg1)->x0);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRegion_x1_set) {
    {
        psRegion *arg1 = (psRegion *) 0 ;
        psF32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psRegion_x1_set(self,x1);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRegion,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRegion_x1_set. Expected _p_psRegion");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        if (arg1) (arg1)->x1 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRegion_x1_get) {
    {
        psRegion *arg1 = (psRegion *) 0 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psRegion_x1_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRegion,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRegion_x1_get. Expected _p_psRegion");
            }
        }
        result = (psF32) ((arg1)->x1);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRegion_y0_set) {
    {
        psRegion *arg1 = (psRegion *) 0 ;
        psF32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psRegion_y0_set(self,y0);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRegion,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRegion_y0_set. Expected _p_psRegion");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        if (arg1) (arg1)->y0 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRegion_y0_get) {
    {
        psRegion *arg1 = (psRegion *) 0 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psRegion_y0_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRegion,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRegion_y0_get. Expected _p_psRegion");
            }
        }
        result = (psF32) ((arg1)->y0);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRegion_y1_set) {
    {
        psRegion *arg1 = (psRegion *) 0 ;
        psF32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psRegion_y1_set(self,y1);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRegion,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRegion_y1_set. Expected _p_psRegion");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        if (arg1) (arg1)->y1 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRegion_y1_get) {
    {
        psRegion *arg1 = (psRegion *) 0 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psRegion_y1_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRegion,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRegion_y1_get. Expected _p_psRegion");
            }
        }
        result = (psF32) ((arg1)->y1);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psRegion) {
    {
        psRegion *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psRegion();");
        }
        result = (psRegion *)(psRegion *) calloc(1, sizeof(psRegion));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psRegion, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psRegion) {
    {
        psRegion *arg1 = (psRegion *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psRegion(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRegion,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psRegion. Expected _p_psRegion");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageAlloc) {
    {
        psU32 arg1 ;
        psU32 arg2 ;
        int arg3 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psImageAlloc(numCols,numRows,type);");
        }
        arg1 = (psU32) SvUV(ST(0));
        arg2 = (psU32) SvUV(ST(1));
        arg3 = (int) SvIV(ST(2));
        result = (psImage *)psImageAlloc(arg1,arg2,(psElemType )arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRegionAlloc) {
    {
        psF32 arg1 ;
        psF32 arg2 ;
        psF32 arg3 ;
        psF32 arg4 ;
        psRegion *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psRegionAlloc(x0,x1,y0,y1);");
        }
        arg1 = (psF32) SvNV(ST(0));
        
        arg2 = (psF32) SvNV(ST(1));
        
        arg3 = (psF32) SvNV(ST(2));
        
        arg4 = (psF32) SvNV(ST(3));
        
        result = (psRegion *)psRegionAlloc(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psRegion, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRegionFromString) {
    {
        char *arg1 ;
        psRegion *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psRegionFromString(region);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (psRegion *)psRegionFromString(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psRegion, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRegionToString) {
    {
        psRegion *arg1 = (psRegion *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psRegionToString(region);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRegion,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRegionToString. Expected _p_psRegion");
            }
        }
        result = (char *)psRegionToString(arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageRecycle) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psU32 arg2 ;
        psU32 arg3 ;
        int arg4 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psImageRecycle(old,numCols,numRows,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageRecycle. Expected _p_psImage");
            }
        }
        arg2 = (psU32) SvUV(ST(1));
        arg3 = (psU32) SvUV(ST(2));
        arg4 = (int) SvIV(ST(3));
        result = (psImage *)psImageRecycle(arg1,arg2,arg3,(psElemType )arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageCopy) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        int arg3 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psImageCopy(output,input,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageCopy. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageCopy. Expected _p_psImage");
            }
        }
        arg3 = (int) SvIV(ST(2));
        result = (psImage *)psImageCopy(arg1,(psImage const *)arg2,(psElemType )arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageFreeChildren) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psImageFreeChildren(image);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageFreeChildren. Expected _p_psImage");
            }
        }
        result = (psS32)psImageFreeChildren(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImagePixelInterpolate) {
    {
        psImage *arg1 = (psImage *) 0 ;
        float arg2 ;
        float arg3 ;
        psImage *arg4 = (psImage *) 0 ;
        psU32 arg5 ;
        psC64 arg6 ;
        int arg7 ;
        psC64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 7) || (items > 7)) {
            SWIG_croak("Usage: psImagePixelInterpolate(input,x,y,mask,maskVal,unexposedValue,mode);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImagePixelInterpolate. Expected _p_psImage");
            }
        }
        arg2 = (float) SvNV(ST(1));
        
        arg3 = (float) SvNV(ST(2));
        
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 4 of psImagePixelInterpolate. Expected _p_psImage");
            }
        }
        arg5 = (psU32) SvUV(ST(4));
        {
            psC64 * argp;
            if (SWIG_ConvertPtr(ST(5),(void **) &argp, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 6 of psImagePixelInterpolate. Expected _p_psC64");
            }
            arg6 = *argp;
        }
        arg7 = (int) SvIV(ST(6));
        result = psImagePixelInterpolate((psImage const *)arg1,arg2,arg3,(psImage const *)arg4,arg5,arg6,(psImageInterpolateMode )arg7);
        
        {
            psC64 * resultobj = (psC64 *) malloc(sizeof(psC64));
            memmove(resultobj, &result, sizeof(psC64));
            ST(argvi) = sv_newmortal();
            SWIG_MakePtr(ST(argvi++), (void *) resultobj, SWIGTYPE_p_psC64, SWIG_SHADOW|SWIG_OWNER);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageReadSection) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psS32 arg2 ;
        psS32 arg3 ;
        psS32 arg4 ;
        psS32 arg5 ;
        psS32 arg6 ;
        char *arg7 ;
        psS32 arg8 ;
        char *arg9 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 9) || (items > 9)) {
            SWIG_croak("Usage: psImageReadSection(output,col0,row0,numCols,numRows,z,extname,extnum,filename);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageReadSection. Expected _p_psImage");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        arg3 = (psS32) SvIV(ST(2));
        arg4 = (psS32) SvIV(ST(3));
        arg5 = (psS32) SvIV(ST(4));
        arg6 = (psS32) SvIV(ST(5));
        if (!SvOK((SV*) ST(6))) arg7 = 0;
        else arg7 = (char *) SvPV(ST(6), PL_na);
        arg8 = (psS32) SvIV(ST(7));
        if (!SvOK((SV*) ST(8))) arg9 = 0;
        else arg9 = (char *) SvPV(ST(8), PL_na);
        result = (psImage *)psImageReadSection(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageWriteSection) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psS32 arg2 ;
        psS32 arg3 ;
        psS32 arg4 ;
        char *arg5 ;
        psS32 arg6 ;
        char *arg7 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 7) || (items > 7)) {
            SWIG_croak("Usage: psImageWriteSection(input,col0,row0,z,extname,extnum,filename);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageWriteSection. Expected _p_psImage");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        arg3 = (psS32) SvIV(ST(2));
        arg4 = (psS32) SvIV(ST(3));
        if (!SvOK((SV*) ST(4))) arg5 = 0;
        else arg5 = (char *) SvPV(ST(4), PL_na);
        arg6 = (psS32) SvIV(ST(5));
        if (!SvOK((SV*) ST(6))) arg7 = 0;
        else arg7 = (char *) SvPV(ST(6), PL_na);
        result = (psBool)psImageWriteSection(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageClip) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psF64 arg2 ;
        psF64 arg3 ;
        psF64 arg4 ;
        psF64 arg5 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psImageClip(input,min,vmin,max,vmax);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageClip. Expected _p_psImage");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        arg3 = (psF64) SvNV(ST(2));
        
        arg4 = (psF64) SvNV(ST(3));
        
        arg5 = (psF64) SvNV(ST(4));
        
        result = (psS32)psImageClip(arg1,arg2,arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageClipComplexRegion) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psC64 arg2 ;
        psC64 arg3 ;
        psC64 arg4 ;
        psC64 arg5 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psImageClipComplexRegion(input,min,vmin,max,vmax);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageClipComplexRegion. Expected _p_psImage");
            }
        }
        {
            psC64 * argp;
            if (SWIG_ConvertPtr(ST(1),(void **) &argp, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageClipComplexRegion. Expected _p_psC64");
            }
            arg2 = *argp;
        }
        {
            psC64 * argp;
            if (SWIG_ConvertPtr(ST(2),(void **) &argp, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 3 of psImageClipComplexRegion. Expected _p_psC64");
            }
            arg3 = *argp;
        }
        {
            psC64 * argp;
            if (SWIG_ConvertPtr(ST(3),(void **) &argp, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 4 of psImageClipComplexRegion. Expected _p_psC64");
            }
            arg4 = *argp;
        }
        {
            psC64 * argp;
            if (SWIG_ConvertPtr(ST(4),(void **) &argp, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 5 of psImageClipComplexRegion. Expected _p_psC64");
            }
            arg5 = *argp;
        }
        result = (psS32)psImageClipComplexRegion(arg1,arg2,arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageClipNaN) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psF64 arg2 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImageClipNaN(input,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageClipNaN. Expected _p_psImage");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        result = (psS32)psImageClipNaN(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageOverlaySection) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psS32 arg3 ;
        psS32 arg4 ;
        char *arg5 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psImageOverlaySection(image,overlay,col0,row0,op);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageOverlaySection. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageOverlaySection. Expected _p_psImage");
            }
        }
        arg3 = (psS32) SvIV(ST(2));
        arg4 = (psS32) SvIV(ST(3));
        if (!SvOK((SV*) ST(4))) arg5 = 0;
        else arg5 = (char *) SvPV(ST(4), PL_na);
        result = (psS32)psImageOverlaySection(arg1,(psImage const *)arg2,arg3,arg4,(char const *)arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageRebin) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psImage *arg3 = (psImage *) 0 ;
        psMaskType arg4 ;
        psU32 arg5 ;
        psStats *arg6 = (psStats *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 6) || (items > 6)) {
            SWIG_croak("Usage: psImageRebin(out,in,mask,maskVal,scale,stats);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageRebin. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageRebin. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 3 of psImageRebin. Expected _p_psImage");
            }
        }
        arg4 = (psMaskType) SvUV(ST(3));
        arg5 = (psU32) SvUV(ST(4));
        {
            if (SWIG_ConvertPtr(ST(5), (void **) &arg6, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 6 of psImageRebin. Expected _p_psStats");
            }
        }
        result = (psImage *)psImageRebin(arg1,(psImage const *)arg2,(psImage const *)arg3,arg4,arg5,(psStats const *)arg6);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageResample) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psS32 arg3 ;
        int arg4 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psImageResample(out,in,scale,mode);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageResample. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageResample. Expected _p_psImage");
            }
        }
        arg3 = (psS32) SvIV(ST(2));
        arg4 = (int) SvIV(ST(3));
        result = (psImage *)psImageResample(arg1,(psImage const *)arg2,arg3,(psImageInterpolateMode )arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageRotate) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        float arg3 ;
        psC64 arg4 ;
        int arg5 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psImageRotate(out,in,angle,unexposedValue,mode);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageRotate. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageRotate. Expected _p_psImage");
            }
        }
        arg3 = (float) SvNV(ST(2));
        
        {
            psC64 * argp;
            if (SWIG_ConvertPtr(ST(3),(void **) &argp, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 4 of psImageRotate. Expected _p_psC64");
            }
            arg4 = *argp;
        }
        arg5 = (int) SvIV(ST(4));
        result = (psImage *)psImageRotate(arg1,(psImage const *)arg2,arg3,arg4,(psImageInterpolateMode )arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageShift) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        float arg3 ;
        float arg4 ;
        psC64 arg5 ;
        int arg6 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 6) || (items > 6)) {
            SWIG_croak("Usage: psImageShift(out,in,dx,dy,unexposedValue,mode);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageShift. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageShift. Expected _p_psImage");
            }
        }
        arg3 = (float) SvNV(ST(2));
        
        arg4 = (float) SvNV(ST(3));
        
        {
            psC64 * argp;
            if (SWIG_ConvertPtr(ST(4),(void **) &argp, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 5 of psImageShift. Expected _p_psC64");
            }
            arg5 = *argp;
        }
        arg6 = (int) SvIV(ST(5));
        result = (psImage *)psImageShift(arg1,(psImage const *)arg2,arg3,arg4,arg5,(psImageInterpolateMode )arg6);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageRoll) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psS32 arg3 ;
        psS32 arg4 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psImageRoll(out,in,dx,dy);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageRoll. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageRoll. Expected _p_psImage");
            }
        }
        arg3 = (psS32) SvIV(ST(2));
        arg4 = (psS32) SvIV(ST(3));
        result = (psImage *)psImageRoll(arg1,(psImage const *)arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageTransform) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psImage *arg3 = (psImage *) 0 ;
        int arg4 ;
        psPlaneTransform *arg5 = (psPlaneTransform *) 0 ;
        psImage *arg6 = (psImage *) 0 ;
        int arg7 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 7) || (items > 7)) {
            SWIG_croak("Usage: psImageTransform(output,input,inputMask,inputMaskVal,outToIn,combineMask,combineMaskVal);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageTransform. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageTransform. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 3 of psImageTransform. Expected _p_psImage");
            }
        }
        arg4 = (int) SvIV(ST(3));
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 5 of psImageTransform. Expected _p_psPlaneTransform");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(5), (void **) &arg6, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 6 of psImageTransform. Expected _p_psImage");
            }
        }
        arg7 = (int) SvIV(ST(6));
        result = (psImage *)psImageTransform(arg1,(psImage const *)arg2,(psImage const *)arg3,arg4,(psPlaneTransform const *)arg5,(psImage const *)arg6,arg7);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageStats) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psImage *arg3 = (psImage *) 0 ;
        psS32 arg4 ;
        psStats *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psImageStats(stats,in,mask,maskVal);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageStats. Expected _p_psStats");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageStats. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 3 of psImageStats. Expected _p_psImage");
            }
        }
        arg4 = (psS32) SvIV(ST(3));
        result = (psStats *)psImageStats(arg1,(psImage const *)arg2,(psImage const *)arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psStats, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageHistogram) {
    {
        psHistogram *arg1 = (psHistogram *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psImage *arg3 = (psImage *) 0 ;
        psU32 arg4 ;
        psHistogram *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psImageHistogram(out,in,mask,maskVal);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHistogram,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageHistogram. Expected _p_psHistogram");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageHistogram. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 3 of psImageHistogram. Expected _p_psImage");
            }
        }
        arg4 = (psU32) SvUV(ST(3));
        result = (psHistogram *)psImageHistogram(arg1,(psImage const *)arg2,(psImage const *)arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psHistogram, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageFitPolynomial) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psPolynomial2D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImageFitPolynomial(coeffs,input);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageFitPolynomial. Expected _p_psPolynomial2D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageFitPolynomial. Expected _p_psImage");
            }
        }
        result = (psPolynomial2D *)psImageFitPolynomial(arg1,(psImage const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPolynomial2D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psImageEvalPolynomial) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psPolynomial2D *arg2 = (psPolynomial2D *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psImageEvalPolynomial(input,coeffs);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psImageEvalPolynomial. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 2 of psImageEvalPolynomial. Expected _p_psPolynomial2D");
            }
        }
        result = (psImage *)psImageEvalPolynomial(arg1,(psPolynomial2D const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFits_p_fd_set) {
    {
        psFits *arg1 = (psFits *) 0 ;
        fitsfile *arg2 = (fitsfile *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFits_p_fd_set(self,p_fd);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFits_p_fd_set. Expected _p_psFits");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_fitsfile,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFits_p_fd_set. Expected _p_fitsfile");
            }
        }
        if (arg1) (arg1)->p_fd = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFits_p_fd_get) {
    {
        psFits *arg1 = (psFits *) 0 ;
        fitsfile *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFits_p_fd_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFits_p_fd_get. Expected _p_psFits");
            }
        }
        result = (fitsfile *) ((arg1)->p_fd);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_fitsfile, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFits_filename_set) {
    {
        psFits *arg1 = (psFits *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFits_filename_set(self,filename);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFits_filename_set. Expected _p_psFits");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg2) {
                arg1->filename = (char const *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->filename,arg2);
            } else {
                arg1->filename = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFits_filename_get) {
    {
        psFits *arg1 = (psFits *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFits_filename_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFits_filename_get. Expected _p_psFits");
            }
        }
        result = (char *) ((arg1)->filename);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psFits) {
    {
        psFits *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psFits();");
        }
        result = (psFits *)(psFits *) calloc(1, sizeof(psFits));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psFits, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psFits) {
    {
        psFits *arg1 = (psFits *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psFits(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psFits. Expected _p_psFits");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsAlloc) {
    {
        char *arg1 ;
        psFits *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFitsAlloc(name);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (psFits *)psFitsAlloc((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psFits, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsMoveExtName) {
    {
        psFits *arg1 = (psFits *) 0 ;
        char *arg2 ;
        bool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFitsMoveExtName(fits,extname);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsMoveExtName. Expected _p_psFits");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (bool)psFitsMoveExtName((psFits const *)arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsMoveExtNum) {
    {
        psFits *arg1 = (psFits *) 0 ;
        int arg2 ;
        bool arg3 ;
        bool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psFitsMoveExtNum(fits,extnum,relative);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsMoveExtNum. Expected _p_psFits");
            }
        }
        arg2 = (int) SvIV(ST(1));
        arg3 = (bool) SvIV(ST(2));
        result = (bool)psFitsMoveExtNum((psFits const *)arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsGetExtNum) {
    {
        psFits *arg1 = (psFits *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFitsGetExtNum(fits);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsGetExtNum. Expected _p_psFits");
            }
        }
        result = (int)psFitsGetExtNum((psFits const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsGetExtName) {
    {
        psFits *arg1 = (psFits *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFitsGetExtName(fits);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsGetExtName. Expected _p_psFits");
            }
        }
        result = (char *)psFitsGetExtName((psFits const *)arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsSetExtName) {
    {
        psFits *arg1 = (psFits *) 0 ;
        char *arg2 ;
        bool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFitsSetExtName(fits,name);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsSetExtName. Expected _p_psFits");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (bool)psFitsSetExtName((psFits const *)arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsGetSize) {
    {
        psFits *arg1 = (psFits *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFitsGetSize(fits);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsGetSize. Expected _p_psFits");
            }
        }
        result = (int)psFitsGetSize((psFits const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsGetExtType) {
    {
        psFits *arg1 = (psFits *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFitsGetExtType(fits);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsGetExtType. Expected _p_psFits");
            }
        }
        result = (int)psFitsGetExtType((psFits const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsReadHeader) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psFits *arg2 = (psFits *) 0 ;
        psMetadata *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFitsReadHeader(out,fits);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsReadHeader. Expected _p_psMetadata");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFitsReadHeader. Expected _p_psFits");
            }
        }
        result = (psMetadata *)psFitsReadHeader(arg1,(psFits const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadata, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsReadHeaderSet) {
    {
        psHash *arg1 = (psHash *) 0 ;
        psFits *arg2 = (psFits *) 0 ;
        psHash *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFitsReadHeaderSet(out,fits);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHash,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsReadHeaderSet. Expected _p_psHash");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFitsReadHeaderSet. Expected _p_psFits");
            }
        }
        result = (psHash *)psFitsReadHeaderSet(arg1,(psFits const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psHash, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsWriteHeader) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psFits *arg2 = (psFits *) 0 ;
        bool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFitsWriteHeader(header,fits);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsWriteHeader. Expected _p_psMetadata");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFitsWriteHeader. Expected _p_psFits");
            }
        }
        result = (bool)psFitsWriteHeader((psMetadata const *)arg1,(psFits const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsReadImage) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psFits *arg2 = (psFits *) 0 ;
        psRegion arg3 ;
        int arg4 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psFitsReadImage(out,fits,region,z);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsReadImage. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFitsReadImage. Expected _p_psFits");
            }
        }
        {
            psRegion * argp;
            if (SWIG_ConvertPtr(ST(2),(void **) &argp, SWIGTYPE_p_psRegion,0) < 0) {
                SWIG_croak("Type error in argument 3 of psFitsReadImage. Expected _p_psRegion");
            }
            arg3 = *argp;
        }
        arg4 = (int) SvIV(ST(3));
        result = (psImage *)psFitsReadImage(arg1,(psFits const *)arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsWriteImage) {
    {
        psFits *arg1 = (psFits *) 0 ;
        psMetadata *arg2 = (psMetadata *) 0 ;
        psImage *arg3 = (psImage *) 0 ;
        int arg4 ;
        char *arg5 ;
        bool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psFitsWriteImage(fits,header,input,depth,extname);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsWriteImage. Expected _p_psFits");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFitsWriteImage. Expected _p_psMetadata");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 3 of psFitsWriteImage. Expected _p_psImage");
            }
        }
        arg4 = (int) SvIV(ST(3));
        if (!SvOK((SV*) ST(4))) arg5 = 0;
        else arg5 = (char *) SvPV(ST(4), PL_na);
        result = (bool)psFitsWriteImage((psFits const *)arg1,(psMetadata const *)arg2,(psImage const *)arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsUpdateImage) {
    {
        psFits *arg1 = (psFits *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psRegion arg3 ;
        int arg4 ;
        bool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psFitsUpdateImage(fits,input,region,z);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsUpdateImage. Expected _p_psFits");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFitsUpdateImage. Expected _p_psImage");
            }
        }
        {
            psRegion * argp;
            if (SWIG_ConvertPtr(ST(2),(void **) &argp, SWIGTYPE_p_psRegion,0) < 0) {
                SWIG_croak("Type error in argument 3 of psFitsUpdateImage. Expected _p_psRegion");
            }
            arg3 = *argp;
        }
        arg4 = (int) SvIV(ST(3));
        result = (bool)psFitsUpdateImage((psFits const *)arg1,(psImage const *)arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsReadTableRow) {
    {
        psFits *arg1 = (psFits *) 0 ;
        int arg2 ;
        psMetadata *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFitsReadTableRow(fits,row);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsReadTableRow. Expected _p_psFits");
            }
        }
        arg2 = (int) SvIV(ST(1));
        result = (psMetadata *)psFitsReadTableRow((psFits const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadata, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsReadTableColumn) {
    {
        psFits *arg1 = (psFits *) 0 ;
        char *arg2 ;
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFitsReadTableColumn(fits,colname);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsReadTableColumn. Expected _p_psFits");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (psArray *)psFitsReadTableColumn((psFits const *)arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsReadTableColumnNum) {
    {
        psFits *arg1 = (psFits *) 0 ;
        char *arg2 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFitsReadTableColumnNum(fits,colname);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsReadTableColumnNum. Expected _p_psFits");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (psVector *)psFitsReadTableColumnNum((psFits const *)arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsReadTable) {
    {
        psFits *arg1 = (psFits *) 0 ;
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFitsReadTable(fits);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsReadTable. Expected _p_psFits");
            }
        }
        result = (psArray *)psFitsReadTable((psFits const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsWriteTable) {
    {
        psFits *arg1 = (psFits *) 0 ;
        psMetadata *arg2 = (psMetadata *) 0 ;
        psArray *arg3 = (psArray *) 0 ;
        char *arg4 ;
        bool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psFitsWriteTable(fits,header,table,extname);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsWriteTable. Expected _p_psFits");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFitsWriteTable. Expected _p_psMetadata");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 3 of psFitsWriteTable. Expected _p_psArray");
            }
        }
        if (!SvOK((SV*) ST(3))) arg4 = 0;
        else arg4 = (char *) SvPV(ST(3), PL_na);
        result = (bool)psFitsWriteTable((psFits const *)arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFitsUpdateTable) {
    {
        psFits *arg1 = (psFits *) 0 ;
        psMetadata *arg2 = (psMetadata *) 0 ;
        int arg3 ;
        bool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psFitsUpdateTable(fits,data,row);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFits,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFitsUpdateTable. Expected _p_psFits");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFitsUpdateTable. Expected _p_psMetadata");
            }
        }
        arg3 = (int) SvIV(ST(2));
        result = (bool)psFitsUpdateTable((psFits const *)arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTable_fileName_set) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psLookupTable_fileName_set(self,fileName);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTable_fileName_set. Expected _p_psLookupTable");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg2) {
                arg1->fileName = (char const *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->fileName,arg2);
            } else {
                arg1->fileName = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTable_fileName_get) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psLookupTable_fileName_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTable_fileName_get. Expected _p_psLookupTable");
            }
        }
        result = (char *) ((arg1)->fileName);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTable_numRows_set) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psU64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psLookupTable_numRows_set(self,numRows);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTable_numRows_set. Expected _p_psLookupTable");
            }
        }
        arg2 = (psU64) SvUV(ST(1));
        if (arg1) (arg1)->numRows = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTable_numRows_get) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psU64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psLookupTable_numRows_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTable_numRows_get. Expected _p_psLookupTable");
            }
        }
        result = (psU64) ((arg1)->numRows);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTable_numCols_set) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psU64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psLookupTable_numCols_set(self,numCols);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTable_numCols_set. Expected _p_psLookupTable");
            }
        }
        arg2 = (psU64) SvUV(ST(1));
        if (arg1) (arg1)->numCols = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTable_numCols_get) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psU64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psLookupTable_numCols_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTable_numCols_get. Expected _p_psLookupTable");
            }
        }
        result = (psU64) ((arg1)->numCols);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTable_validFrom_set) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psLookupTable_validFrom_set(self,validFrom);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTable_validFrom_set. Expected _p_psLookupTable");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->validFrom = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTable_validFrom_get) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psLookupTable_validFrom_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTable_validFrom_get. Expected _p_psLookupTable");
            }
        }
        result = (psF64) ((arg1)->validFrom);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTable_validTo_set) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psLookupTable_validTo_set(self,validTo);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTable_validTo_set. Expected _p_psLookupTable");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->validTo = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTable_validTo_get) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psLookupTable_validTo_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTable_validTo_get. Expected _p_psLookupTable");
            }
        }
        result = (psF64) ((arg1)->validTo);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTable_index_set) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psLookupTable_index_set(self,index);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTable_index_set. Expected _p_psLookupTable");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psLookupTable_index_set. Expected _p_psVector");
            }
        }
        if (arg1) (arg1)->index = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTable_index_get) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psLookupTable_index_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTable_index_get. Expected _p_psLookupTable");
            }
        }
        result = (psVector *) ((arg1)->index);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTable_values_set) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psArray *arg2 = (psArray *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psLookupTable_values_set(self,values);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTable_values_set. Expected _p_psLookupTable");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 2 of psLookupTable_values_set. Expected _p_psArray");
            }
        }
        if (arg1) (arg1)->values = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTable_values_get) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psLookupTable_values_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTable_values_get. Expected _p_psLookupTable");
            }
        }
        result = (psArray *) ((arg1)->values);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psLookupTable) {
    {
        psLookupTable *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psLookupTable();");
        }
        result = (psLookupTable *)(psLookupTable *) calloc(1, sizeof(psLookupTable));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psLookupTable, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psLookupTable) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psLookupTable(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psLookupTable. Expected _p_psLookupTable");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTableAlloc) {
    {
        char *arg1 ;
        psF64 arg2 ;
        psF64 arg3 ;
        psLookupTable *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psLookupTableAlloc(fileName,validFrom,validTo);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (psF64) SvNV(ST(1));
        
        arg3 = (psF64) SvNV(ST(2));
        
        result = (psLookupTable *)psLookupTableAlloc((char const *)arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psLookupTable, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTableRead) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psLookupTable *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psLookupTableRead(table);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTableRead. Expected _p_psLookupTable");
            }
        }
        result = (psLookupTable *)psLookupTableRead(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psLookupTable, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTableInterpolate) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psF64 arg2 ;
        psU64 arg3 ;
        psLookupStatusType *arg4 = (psLookupStatusType *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psLookupTableInterpolate(table,index,column,status);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTableInterpolate. Expected _p_psLookupTable");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        arg3 = (psU64) SvUV(ST(2));
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psLookupStatusType,0) < 0) {
                SWIG_croak("Type error in argument 4 of psLookupTableInterpolate. Expected _p_psLookupStatusType");
            }
        }
        result = (psF64)psLookupTableInterpolate(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psLookupTableInterpolateAll) {
    {
        psLookupTable *arg1 = (psLookupTable *) 0 ;
        psF64 arg2 ;
        psVector *arg3 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psLookupTableInterpolateAll(table,index,stats);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 1 of psLookupTableInterpolateAll. Expected _p_psLookupTable");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psLookupTableInterpolateAll. Expected _p_psVector");
            }
        }
        result = (psVector *)psLookupTableInterpolateAll(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGaussian) {
    {
        psF32 arg1 ;
        psF32 arg2 ;
        psF32 arg3 ;
        psBool arg4 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psGaussian(x,mean,stddev,normal);");
        }
        arg1 = (psF32) SvNV(ST(0));
        
        arg2 = (psF32) SvNV(ST(1));
        
        arg3 = (psF32) SvNV(ST(2));
        
        arg4 = (psBool) SvIV(ST(3));
        result = (psF32)psGaussian(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psGaussianDev) {
    {
        psF32 arg1 ;
        psF32 arg2 ;
        psS32 arg3 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psGaussianDev(mean,sigma,Npts);");
        }
        arg1 = (psF32) SvNV(ST(0));
        
        arg2 = (psF32) SvNV(ST(1));
        
        arg3 = (psS32) SvIV(ST(2));
        result = (psVector *)p_psGaussianDev(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial1D_type_set) {
    {
        psPolynomial1D *arg1 = (psPolynomial1D *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial1D_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial1D_type_set. Expected _p_psPolynomial1D");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->type = (psPolynomialType )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial1D_type_get) {
    {
        psPolynomial1D *arg1 = (psPolynomial1D *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial1D_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial1D_type_get. Expected _p_psPolynomial1D");
            }
        }
        result = (int) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial1D_n_set) {
    {
        psPolynomial1D *arg1 = (psPolynomial1D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial1D_n_set(self,n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial1D_n_set. Expected _p_psPolynomial1D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->n = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial1D_n_get) {
    {
        psPolynomial1D *arg1 = (psPolynomial1D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial1D_n_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial1D_n_get. Expected _p_psPolynomial1D");
            }
        }
        result = (psS32) ((arg1)->n);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial1D_coeff_set) {
    {
        psPolynomial1D *arg1 = (psPolynomial1D *) 0 ;
        psF32 *arg2 = (psF32 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial1D_coeff_set(self,coeff);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial1D_coeff_set. Expected _p_psPolynomial1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psF32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial1D_coeff_set. Expected _p_psF32");
            }
        }
        if (arg1) (arg1)->coeff = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial1D_coeff_get) {
    {
        psPolynomial1D *arg1 = (psPolynomial1D *) 0 ;
        psF32 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial1D_coeff_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial1D_coeff_get. Expected _p_psPolynomial1D");
            }
        }
        result = (psF32 *) ((arg1)->coeff);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psF32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial1D_coeffErr_set) {
    {
        psPolynomial1D *arg1 = (psPolynomial1D *) 0 ;
        psF32 *arg2 = (psF32 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial1D_coeffErr_set(self,coeffErr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial1D_coeffErr_set. Expected _p_psPolynomial1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psF32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial1D_coeffErr_set. Expected _p_psF32");
            }
        }
        if (arg1) (arg1)->coeffErr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial1D_coeffErr_get) {
    {
        psPolynomial1D *arg1 = (psPolynomial1D *) 0 ;
        psF32 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial1D_coeffErr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial1D_coeffErr_get. Expected _p_psPolynomial1D");
            }
        }
        result = (psF32 *) ((arg1)->coeffErr);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psF32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial1D_mask_set) {
    {
        psPolynomial1D *arg1 = (psPolynomial1D *) 0 ;
        psU8 *arg2 = (psU8 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial1D_mask_set(self,mask);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial1D_mask_set. Expected _p_psPolynomial1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psU8,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial1D_mask_set. Expected _p_psU8");
            }
        }
        if (arg1) (arg1)->mask = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial1D_mask_get) {
    {
        psPolynomial1D *arg1 = (psPolynomial1D *) 0 ;
        psU8 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial1D_mask_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial1D_mask_get. Expected _p_psPolynomial1D");
            }
        }
        result = (psU8 *) ((arg1)->mask);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psU8, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psPolynomial1D) {
    {
        psPolynomial1D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psPolynomial1D();");
        }
        result = (psPolynomial1D *)(psPolynomial1D *) calloc(1, sizeof(psPolynomial1D));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPolynomial1D, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psPolynomial1D) {
    {
        psPolynomial1D *arg1 = (psPolynomial1D *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psPolynomial1D(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psPolynomial1D. Expected _p_psPolynomial1D");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2D_type_set) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial2D_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial2D_type_set. Expected _p_psPolynomial2D");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->type = (psPolynomialType )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2D_type_get) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial2D_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial2D_type_get. Expected _p_psPolynomial2D");
            }
        }
        result = (int) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2D_nX_set) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial2D_nX_set(self,nX);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial2D_nX_set. Expected _p_psPolynomial2D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nX = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2D_nX_get) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial2D_nX_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial2D_nX_get. Expected _p_psPolynomial2D");
            }
        }
        result = (psS32) ((arg1)->nX);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2D_nY_set) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial2D_nY_set(self,nY);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial2D_nY_set. Expected _p_psPolynomial2D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nY = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2D_nY_get) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial2D_nY_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial2D_nY_get. Expected _p_psPolynomial2D");
            }
        }
        result = (psS32) ((arg1)->nY);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2D_coeff_set) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        psF32 **arg2 = (psF32 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial2D_coeff_set(self,coeff);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial2D_coeff_set. Expected _p_psPolynomial2D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psF32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial2D_coeff_set. Expected _p_p_psF32");
            }
        }
        if (arg1) (arg1)->coeff = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2D_coeff_get) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        psF32 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial2D_coeff_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial2D_coeff_get. Expected _p_psPolynomial2D");
            }
        }
        result = (psF32 **) ((arg1)->coeff);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psF32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2D_coeffErr_set) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        psF32 **arg2 = (psF32 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial2D_coeffErr_set(self,coeffErr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial2D_coeffErr_set. Expected _p_psPolynomial2D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psF32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial2D_coeffErr_set. Expected _p_p_psF32");
            }
        }
        if (arg1) (arg1)->coeffErr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2D_coeffErr_get) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        psF32 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial2D_coeffErr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial2D_coeffErr_get. Expected _p_psPolynomial2D");
            }
        }
        result = (psF32 **) ((arg1)->coeffErr);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psF32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2D_mask_set) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        psU8 **arg2 = (psU8 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial2D_mask_set(self,mask);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial2D_mask_set. Expected _p_psPolynomial2D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psU8,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial2D_mask_set. Expected _p_p_psU8");
            }
        }
        if (arg1) (arg1)->mask = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2D_mask_get) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        psU8 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial2D_mask_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial2D_mask_get. Expected _p_psPolynomial2D");
            }
        }
        result = (psU8 **) ((arg1)->mask);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psU8, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psPolynomial2D) {
    {
        psPolynomial2D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psPolynomial2D();");
        }
        result = (psPolynomial2D *)(psPolynomial2D *) calloc(1, sizeof(psPolynomial2D));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPolynomial2D, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psPolynomial2D) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psPolynomial2D(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psPolynomial2D. Expected _p_psPolynomial2D");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3D_type_set) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial3D_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3D_type_set. Expected _p_psPolynomial3D");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->type = (psPolynomialType )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3D_type_get) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial3D_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3D_type_get. Expected _p_psPolynomial3D");
            }
        }
        result = (int) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3D_nX_set) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial3D_nX_set(self,nX);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3D_nX_set. Expected _p_psPolynomial3D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nX = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3D_nX_get) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial3D_nX_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3D_nX_get. Expected _p_psPolynomial3D");
            }
        }
        result = (psS32) ((arg1)->nX);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3D_nY_set) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial3D_nY_set(self,nY);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3D_nY_set. Expected _p_psPolynomial3D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nY = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3D_nY_get) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial3D_nY_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3D_nY_get. Expected _p_psPolynomial3D");
            }
        }
        result = (psS32) ((arg1)->nY);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3D_nZ_set) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial3D_nZ_set(self,nZ);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3D_nZ_set. Expected _p_psPolynomial3D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nZ = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3D_nZ_get) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial3D_nZ_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3D_nZ_get. Expected _p_psPolynomial3D");
            }
        }
        result = (psS32) ((arg1)->nZ);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3D_coeff_set) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        psF32 ***arg2 = (psF32 ***) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial3D_coeff_set(self,coeff);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3D_coeff_set. Expected _p_psPolynomial3D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_psF32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial3D_coeff_set. Expected _p_p_p_psF32");
            }
        }
        if (arg1) (arg1)->coeff = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3D_coeff_get) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        psF32 ***result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial3D_coeff_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3D_coeff_get. Expected _p_psPolynomial3D");
            }
        }
        result = (psF32 ***) ((arg1)->coeff);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_p_psF32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3D_coeffErr_set) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        psF32 ***arg2 = (psF32 ***) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial3D_coeffErr_set(self,coeffErr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3D_coeffErr_set. Expected _p_psPolynomial3D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_psF32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial3D_coeffErr_set. Expected _p_p_p_psF32");
            }
        }
        if (arg1) (arg1)->coeffErr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3D_coeffErr_get) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        psF32 ***result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial3D_coeffErr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3D_coeffErr_get. Expected _p_psPolynomial3D");
            }
        }
        result = (psF32 ***) ((arg1)->coeffErr);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_p_psF32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3D_mask_set) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        psU8 ***arg2 = (psU8 ***) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial3D_mask_set(self,mask);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3D_mask_set. Expected _p_psPolynomial3D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_psU8,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial3D_mask_set. Expected _p_p_p_psU8");
            }
        }
        if (arg1) (arg1)->mask = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3D_mask_get) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        psU8 ***result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial3D_mask_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3D_mask_get. Expected _p_psPolynomial3D");
            }
        }
        result = (psU8 ***) ((arg1)->mask);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_p_psU8, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psPolynomial3D) {
    {
        psPolynomial3D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psPolynomial3D();");
        }
        result = (psPolynomial3D *)(psPolynomial3D *) calloc(1, sizeof(psPolynomial3D));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPolynomial3D, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psPolynomial3D) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psPolynomial3D(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psPolynomial3D. Expected _p_psPolynomial3D");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_type_set) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial4D_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_type_set. Expected _p_psPolynomial4D");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->type = (psPolynomialType )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_type_get) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial4D_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_type_get. Expected _p_psPolynomial4D");
            }
        }
        result = (int) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_nW_set) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial4D_nW_set(self,nW);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_nW_set. Expected _p_psPolynomial4D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nW = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_nW_get) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial4D_nW_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_nW_get. Expected _p_psPolynomial4D");
            }
        }
        result = (psS32) ((arg1)->nW);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_nX_set) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial4D_nX_set(self,nX);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_nX_set. Expected _p_psPolynomial4D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nX = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_nX_get) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial4D_nX_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_nX_get. Expected _p_psPolynomial4D");
            }
        }
        result = (psS32) ((arg1)->nX);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_nY_set) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial4D_nY_set(self,nY);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_nY_set. Expected _p_psPolynomial4D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nY = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_nY_get) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial4D_nY_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_nY_get. Expected _p_psPolynomial4D");
            }
        }
        result = (psS32) ((arg1)->nY);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_nZ_set) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial4D_nZ_set(self,nZ);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_nZ_set. Expected _p_psPolynomial4D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nZ = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_nZ_get) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial4D_nZ_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_nZ_get. Expected _p_psPolynomial4D");
            }
        }
        result = (psS32) ((arg1)->nZ);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_coeff_set) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psF32 ****arg2 = (psF32 ****) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial4D_coeff_set(self,coeff);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_coeff_set. Expected _p_psPolynomial4D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_p_psF32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial4D_coeff_set. Expected _p_p_p_p_psF32");
            }
        }
        if (arg1) (arg1)->coeff = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_coeff_get) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psF32 ****result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial4D_coeff_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_coeff_get. Expected _p_psPolynomial4D");
            }
        }
        result = (psF32 ****) ((arg1)->coeff);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_p_p_psF32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_coeffErr_set) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psF32 ****arg2 = (psF32 ****) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial4D_coeffErr_set(self,coeffErr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_coeffErr_set. Expected _p_psPolynomial4D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_p_psF32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial4D_coeffErr_set. Expected _p_p_p_p_psF32");
            }
        }
        if (arg1) (arg1)->coeffErr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_coeffErr_get) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psF32 ****result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial4D_coeffErr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_coeffErr_get. Expected _p_psPolynomial4D");
            }
        }
        result = (psF32 ****) ((arg1)->coeffErr);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_p_p_psF32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_mask_set) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psU8 ****arg2 = (psU8 ****) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial4D_mask_set(self,mask);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_mask_set. Expected _p_psPolynomial4D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_p_psU8,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial4D_mask_set. Expected _p_p_p_p_psU8");
            }
        }
        if (arg1) (arg1)->mask = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4D_mask_get) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psU8 ****result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPolynomial4D_mask_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4D_mask_get. Expected _p_psPolynomial4D");
            }
        }
        result = (psU8 ****) ((arg1)->mask);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_p_p_psU8, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psPolynomial4D) {
    {
        psPolynomial4D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psPolynomial4D();");
        }
        result = (psPolynomial4D *)(psPolynomial4D *) calloc(1, sizeof(psPolynomial4D));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPolynomial4D, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psPolynomial4D) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psPolynomial4D(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psPolynomial4D. Expected _p_psPolynomial4D");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial1DAlloc) {
    {
        psS32 arg1 ;
        int arg2 ;
        psPolynomial1D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial1DAlloc(n,type);");
        }
        arg1 = (psS32) SvIV(ST(0));
        arg2 = (int) SvIV(ST(1));
        result = (psPolynomial1D *)psPolynomial1DAlloc(arg1,(psPolynomialType )arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPolynomial1D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2DAlloc) {
    {
        psS32 arg1 ;
        psS32 arg2 ;
        int arg3 ;
        psPolynomial2D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psPolynomial2DAlloc(nX,nY,type);");
        }
        arg1 = (psS32) SvIV(ST(0));
        arg2 = (psS32) SvIV(ST(1));
        arg3 = (int) SvIV(ST(2));
        result = (psPolynomial2D *)psPolynomial2DAlloc(arg1,arg2,(psPolynomialType )arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPolynomial2D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3DAlloc) {
    {
        psS32 arg1 ;
        psS32 arg2 ;
        psS32 arg3 ;
        int arg4 ;
        psPolynomial3D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psPolynomial3DAlloc(nX,nY,nZ,type);");
        }
        arg1 = (psS32) SvIV(ST(0));
        arg2 = (psS32) SvIV(ST(1));
        arg3 = (psS32) SvIV(ST(2));
        arg4 = (int) SvIV(ST(3));
        result = (psPolynomial3D *)psPolynomial3DAlloc(arg1,arg2,arg3,(psPolynomialType )arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPolynomial3D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4DAlloc) {
    {
        psS32 arg1 ;
        psS32 arg2 ;
        psS32 arg3 ;
        psS32 arg4 ;
        int arg5 ;
        psPolynomial4D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psPolynomial4DAlloc(nW,nX,nY,nZ,type);");
        }
        arg1 = (psS32) SvIV(ST(0));
        arg2 = (psS32) SvIV(ST(1));
        arg3 = (psS32) SvIV(ST(2));
        arg4 = (psS32) SvIV(ST(3));
        arg5 = (int) SvIV(ST(4));
        result = (psPolynomial4D *)psPolynomial4DAlloc(arg1,arg2,arg3,arg4,(psPolynomialType )arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPolynomial4D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial1DEval) {
    {
        psPolynomial1D *arg1 = (psPolynomial1D *) 0 ;
        psF32 arg2 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial1DEval(myPoly,x);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial1DEval. Expected _p_psPolynomial1D");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        result = (psF32)psPolynomial1DEval((psPolynomial1D const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2DEval) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        psF32 arg2 ;
        psF32 arg3 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psPolynomial2DEval(myPoly,x,y);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial2DEval. Expected _p_psPolynomial2D");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        arg3 = (psF32) SvNV(ST(2));
        
        result = (psF32)psPolynomial2DEval((psPolynomial2D const *)arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3DEval) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        psF32 arg2 ;
        psF32 arg3 ;
        psF32 arg4 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psPolynomial3DEval(myPoly,x,y,z);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3DEval. Expected _p_psPolynomial3D");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        arg3 = (psF32) SvNV(ST(2));
        
        arg4 = (psF32) SvNV(ST(3));
        
        result = (psF32)psPolynomial3DEval((psPolynomial3D const *)arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4DEval) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psF32 arg2 ;
        psF32 arg3 ;
        psF32 arg4 ;
        psF32 arg5 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psPolynomial4DEval(myPoly,w,x,y,z);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4DEval. Expected _p_psPolynomial4D");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        arg3 = (psF32) SvNV(ST(2));
        
        arg4 = (psF32) SvNV(ST(3));
        
        arg5 = (psF32) SvNV(ST(4));
        
        result = (psF32)psPolynomial4DEval((psPolynomial4D const *)arg1,arg2,arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial1DEvalVector) {
    {
        psPolynomial1D *arg1 = (psPolynomial1D *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPolynomial1DEvalVector(myPoly,x);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial1DEvalVector. Expected _p_psPolynomial1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial1DEvalVector. Expected _p_psVector");
            }
        }
        result = (psVector *)psPolynomial1DEvalVector((psPolynomial1D const *)arg1,(psVector const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial2DEvalVector) {
    {
        psPolynomial2D *arg1 = (psPolynomial2D *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psPolynomial2DEvalVector(myPoly,x,y);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial2DEvalVector. Expected _p_psPolynomial2D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial2DEvalVector. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psPolynomial2DEvalVector. Expected _p_psVector");
            }
        }
        result = (psVector *)psPolynomial2DEvalVector((psPolynomial2D const *)arg1,(psVector const *)arg2,(psVector const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial3DEvalVector) {
    {
        psPolynomial3D *arg1 = (psPolynomial3D *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psVector *arg4 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psPolynomial3DEvalVector(myPoly,x,y,z);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial3DEvalVector. Expected _p_psPolynomial3D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial3DEvalVector. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psPolynomial3DEvalVector. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 4 of psPolynomial3DEvalVector. Expected _p_psVector");
            }
        }
        result = (psVector *)psPolynomial3DEvalVector((psPolynomial3D const *)arg1,(psVector const *)arg2,(psVector const *)arg3,(psVector const *)arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPolynomial4DEvalVector) {
    {
        psPolynomial4D *arg1 = (psPolynomial4D *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psVector *arg4 = (psVector *) 0 ;
        psVector *arg5 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psPolynomial4DEvalVector(myPoly,w,x,y,z);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPolynomial4DEvalVector. Expected _p_psPolynomial4D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPolynomial4DEvalVector. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psPolynomial4DEvalVector. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 4 of psPolynomial4DEvalVector. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 5 of psPolynomial4DEvalVector. Expected _p_psVector");
            }
        }
        result = (psVector *)psPolynomial4DEvalVector((psPolynomial4D const *)arg1,(psVector const *)arg2,(psVector const *)arg3,(psVector const *)arg4,(psVector const *)arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial1D_type_set) {
    {
        psDPolynomial1D *arg1 = (psDPolynomial1D *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial1D_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial1D_type_set. Expected _p_psDPolynomial1D");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->type = (psPolynomialType )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial1D_type_get) {
    {
        psDPolynomial1D *arg1 = (psDPolynomial1D *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial1D_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial1D_type_get. Expected _p_psDPolynomial1D");
            }
        }
        result = (int) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial1D_n_set) {
    {
        psDPolynomial1D *arg1 = (psDPolynomial1D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial1D_n_set(self,n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial1D_n_set. Expected _p_psDPolynomial1D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->n = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial1D_n_get) {
    {
        psDPolynomial1D *arg1 = (psDPolynomial1D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial1D_n_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial1D_n_get. Expected _p_psDPolynomial1D");
            }
        }
        result = (psS32) ((arg1)->n);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial1D_coeff_set) {
    {
        psDPolynomial1D *arg1 = (psDPolynomial1D *) 0 ;
        psF64 *arg2 = (psF64 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial1D_coeff_set(self,coeff);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial1D_coeff_set. Expected _p_psDPolynomial1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psF64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial1D_coeff_set. Expected _p_psF64");
            }
        }
        if (arg1) (arg1)->coeff = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial1D_coeff_get) {
    {
        psDPolynomial1D *arg1 = (psDPolynomial1D *) 0 ;
        psF64 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial1D_coeff_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial1D_coeff_get. Expected _p_psDPolynomial1D");
            }
        }
        result = (psF64 *) ((arg1)->coeff);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psF64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial1D_coeffErr_set) {
    {
        psDPolynomial1D *arg1 = (psDPolynomial1D *) 0 ;
        psF64 *arg2 = (psF64 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial1D_coeffErr_set(self,coeffErr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial1D_coeffErr_set. Expected _p_psDPolynomial1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psF64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial1D_coeffErr_set. Expected _p_psF64");
            }
        }
        if (arg1) (arg1)->coeffErr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial1D_coeffErr_get) {
    {
        psDPolynomial1D *arg1 = (psDPolynomial1D *) 0 ;
        psF64 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial1D_coeffErr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial1D_coeffErr_get. Expected _p_psDPolynomial1D");
            }
        }
        result = (psF64 *) ((arg1)->coeffErr);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psF64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial1D_mask_set) {
    {
        psDPolynomial1D *arg1 = (psDPolynomial1D *) 0 ;
        psU8 *arg2 = (psU8 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial1D_mask_set(self,mask);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial1D_mask_set. Expected _p_psDPolynomial1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psU8,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial1D_mask_set. Expected _p_psU8");
            }
        }
        if (arg1) (arg1)->mask = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial1D_mask_get) {
    {
        psDPolynomial1D *arg1 = (psDPolynomial1D *) 0 ;
        psU8 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial1D_mask_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial1D_mask_get. Expected _p_psDPolynomial1D");
            }
        }
        result = (psU8 *) ((arg1)->mask);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psU8, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psDPolynomial1D) {
    {
        psDPolynomial1D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psDPolynomial1D();");
        }
        result = (psDPolynomial1D *)(psDPolynomial1D *) calloc(1, sizeof(psDPolynomial1D));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psDPolynomial1D, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psDPolynomial1D) {
    {
        psDPolynomial1D *arg1 = (psDPolynomial1D *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psDPolynomial1D(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psDPolynomial1D. Expected _p_psDPolynomial1D");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2D_type_set) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial2D_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial2D_type_set. Expected _p_psDPolynomial2D");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->type = (psPolynomialType )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2D_type_get) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial2D_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial2D_type_get. Expected _p_psDPolynomial2D");
            }
        }
        result = (int) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2D_nX_set) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial2D_nX_set(self,nX);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial2D_nX_set. Expected _p_psDPolynomial2D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nX = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2D_nX_get) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial2D_nX_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial2D_nX_get. Expected _p_psDPolynomial2D");
            }
        }
        result = (psS32) ((arg1)->nX);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2D_nY_set) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial2D_nY_set(self,nY);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial2D_nY_set. Expected _p_psDPolynomial2D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nY = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2D_nY_get) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial2D_nY_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial2D_nY_get. Expected _p_psDPolynomial2D");
            }
        }
        result = (psS32) ((arg1)->nY);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2D_coeff_set) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        psF64 **arg2 = (psF64 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial2D_coeff_set(self,coeff);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial2D_coeff_set. Expected _p_psDPolynomial2D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psF64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial2D_coeff_set. Expected _p_p_psF64");
            }
        }
        if (arg1) (arg1)->coeff = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2D_coeff_get) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        psF64 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial2D_coeff_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial2D_coeff_get. Expected _p_psDPolynomial2D");
            }
        }
        result = (psF64 **) ((arg1)->coeff);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psF64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2D_coeffErr_set) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        psF64 **arg2 = (psF64 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial2D_coeffErr_set(self,coeffErr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial2D_coeffErr_set. Expected _p_psDPolynomial2D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psF64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial2D_coeffErr_set. Expected _p_p_psF64");
            }
        }
        if (arg1) (arg1)->coeffErr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2D_coeffErr_get) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        psF64 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial2D_coeffErr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial2D_coeffErr_get. Expected _p_psDPolynomial2D");
            }
        }
        result = (psF64 **) ((arg1)->coeffErr);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psF64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2D_mask_set) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        psU8 **arg2 = (psU8 **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial2D_mask_set(self,mask);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial2D_mask_set. Expected _p_psDPolynomial2D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psU8,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial2D_mask_set. Expected _p_p_psU8");
            }
        }
        if (arg1) (arg1)->mask = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2D_mask_get) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        psU8 **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial2D_mask_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial2D_mask_get. Expected _p_psDPolynomial2D");
            }
        }
        result = (psU8 **) ((arg1)->mask);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psU8, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psDPolynomial2D) {
    {
        psDPolynomial2D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psDPolynomial2D();");
        }
        result = (psDPolynomial2D *)(psDPolynomial2D *) calloc(1, sizeof(psDPolynomial2D));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psDPolynomial2D, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psDPolynomial2D) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psDPolynomial2D(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psDPolynomial2D. Expected _p_psDPolynomial2D");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3D_type_set) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial3D_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3D_type_set. Expected _p_psDPolynomial3D");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->type = (psPolynomialType )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3D_type_get) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial3D_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3D_type_get. Expected _p_psDPolynomial3D");
            }
        }
        result = (int) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3D_nX_set) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial3D_nX_set(self,nX);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3D_nX_set. Expected _p_psDPolynomial3D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nX = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3D_nX_get) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial3D_nX_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3D_nX_get. Expected _p_psDPolynomial3D");
            }
        }
        result = (psS32) ((arg1)->nX);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3D_nY_set) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial3D_nY_set(self,nY);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3D_nY_set. Expected _p_psDPolynomial3D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nY = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3D_nY_get) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial3D_nY_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3D_nY_get. Expected _p_psDPolynomial3D");
            }
        }
        result = (psS32) ((arg1)->nY);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3D_nZ_set) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial3D_nZ_set(self,nZ);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3D_nZ_set. Expected _p_psDPolynomial3D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nZ = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3D_nZ_get) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial3D_nZ_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3D_nZ_get. Expected _p_psDPolynomial3D");
            }
        }
        result = (psS32) ((arg1)->nZ);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3D_coeff_set) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        psF64 ***arg2 = (psF64 ***) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial3D_coeff_set(self,coeff);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3D_coeff_set. Expected _p_psDPolynomial3D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_psF64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial3D_coeff_set. Expected _p_p_p_psF64");
            }
        }
        if (arg1) (arg1)->coeff = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3D_coeff_get) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        psF64 ***result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial3D_coeff_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3D_coeff_get. Expected _p_psDPolynomial3D");
            }
        }
        result = (psF64 ***) ((arg1)->coeff);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_p_psF64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3D_coeffErr_set) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        psF64 ***arg2 = (psF64 ***) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial3D_coeffErr_set(self,coeffErr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3D_coeffErr_set. Expected _p_psDPolynomial3D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_psF64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial3D_coeffErr_set. Expected _p_p_p_psF64");
            }
        }
        if (arg1) (arg1)->coeffErr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3D_coeffErr_get) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        psF64 ***result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial3D_coeffErr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3D_coeffErr_get. Expected _p_psDPolynomial3D");
            }
        }
        result = (psF64 ***) ((arg1)->coeffErr);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_p_psF64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3D_mask_set) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        psU8 ***arg2 = (psU8 ***) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial3D_mask_set(self,mask);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3D_mask_set. Expected _p_psDPolynomial3D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_psU8,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial3D_mask_set. Expected _p_p_p_psU8");
            }
        }
        if (arg1) (arg1)->mask = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3D_mask_get) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        psU8 ***result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial3D_mask_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3D_mask_get. Expected _p_psDPolynomial3D");
            }
        }
        result = (psU8 ***) ((arg1)->mask);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_p_psU8, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psDPolynomial3D) {
    {
        psDPolynomial3D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psDPolynomial3D();");
        }
        result = (psDPolynomial3D *)(psDPolynomial3D *) calloc(1, sizeof(psDPolynomial3D));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psDPolynomial3D, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psDPolynomial3D) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psDPolynomial3D(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psDPolynomial3D. Expected _p_psDPolynomial3D");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_type_set) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial4D_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_type_set. Expected _p_psDPolynomial4D");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->type = (psPolynomialType )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_type_get) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial4D_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_type_get. Expected _p_psDPolynomial4D");
            }
        }
        result = (int) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_nW_set) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial4D_nW_set(self,nW);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_nW_set. Expected _p_psDPolynomial4D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nW = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_nW_get) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial4D_nW_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_nW_get. Expected _p_psDPolynomial4D");
            }
        }
        result = (psS32) ((arg1)->nW);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_nX_set) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial4D_nX_set(self,nX);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_nX_set. Expected _p_psDPolynomial4D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nX = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_nX_get) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial4D_nX_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_nX_get. Expected _p_psDPolynomial4D");
            }
        }
        result = (psS32) ((arg1)->nX);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_nY_set) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial4D_nY_set(self,nY);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_nY_set. Expected _p_psDPolynomial4D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nY = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_nY_get) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial4D_nY_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_nY_get. Expected _p_psDPolynomial4D");
            }
        }
        result = (psS32) ((arg1)->nY);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_nZ_set) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial4D_nZ_set(self,nZ);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_nZ_set. Expected _p_psDPolynomial4D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nZ = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_nZ_get) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial4D_nZ_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_nZ_get. Expected _p_psDPolynomial4D");
            }
        }
        result = (psS32) ((arg1)->nZ);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_coeff_set) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psF64 ****arg2 = (psF64 ****) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial4D_coeff_set(self,coeff);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_coeff_set. Expected _p_psDPolynomial4D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_p_psF64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial4D_coeff_set. Expected _p_p_p_p_psF64");
            }
        }
        if (arg1) (arg1)->coeff = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_coeff_get) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psF64 ****result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial4D_coeff_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_coeff_get. Expected _p_psDPolynomial4D");
            }
        }
        result = (psF64 ****) ((arg1)->coeff);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_p_p_psF64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_coeffErr_set) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psF64 ****arg2 = (psF64 ****) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial4D_coeffErr_set(self,coeffErr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_coeffErr_set. Expected _p_psDPolynomial4D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_p_psF64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial4D_coeffErr_set. Expected _p_p_p_p_psF64");
            }
        }
        if (arg1) (arg1)->coeffErr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_coeffErr_get) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psF64 ****result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial4D_coeffErr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_coeffErr_get. Expected _p_psDPolynomial4D");
            }
        }
        result = (psF64 ****) ((arg1)->coeffErr);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_p_p_psF64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_mask_set) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psU8 ****arg2 = (psU8 ****) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial4D_mask_set(self,mask);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_mask_set. Expected _p_psDPolynomial4D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_p_p_psU8,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial4D_mask_set. Expected _p_p_p_p_psU8");
            }
        }
        if (arg1) (arg1)->mask = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4D_mask_get) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psU8 ****result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psDPolynomial4D_mask_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4D_mask_get. Expected _p_psDPolynomial4D");
            }
        }
        result = (psU8 ****) ((arg1)->mask);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_p_p_psU8, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psDPolynomial4D) {
    {
        psDPolynomial4D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psDPolynomial4D();");
        }
        result = (psDPolynomial4D *)(psDPolynomial4D *) calloc(1, sizeof(psDPolynomial4D));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psDPolynomial4D, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psDPolynomial4D) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psDPolynomial4D(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psDPolynomial4D. Expected _p_psDPolynomial4D");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial1DAlloc) {
    {
        psS32 arg1 ;
        int arg2 ;
        psDPolynomial1D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial1DAlloc(n,type);");
        }
        arg1 = (psS32) SvIV(ST(0));
        arg2 = (int) SvIV(ST(1));
        result = (psDPolynomial1D *)psDPolynomial1DAlloc(arg1,(psPolynomialType )arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psDPolynomial1D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2DAlloc) {
    {
        psS32 arg1 ;
        psS32 arg2 ;
        int arg3 ;
        psDPolynomial2D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psDPolynomial2DAlloc(nX,nY,type);");
        }
        arg1 = (psS32) SvIV(ST(0));
        arg2 = (psS32) SvIV(ST(1));
        arg3 = (int) SvIV(ST(2));
        result = (psDPolynomial2D *)psDPolynomial2DAlloc(arg1,arg2,(psPolynomialType )arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psDPolynomial2D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3DAlloc) {
    {
        psS32 arg1 ;
        psS32 arg2 ;
        psS32 arg3 ;
        int arg4 ;
        psDPolynomial3D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psDPolynomial3DAlloc(nX,nY,nZ,type);");
        }
        arg1 = (psS32) SvIV(ST(0));
        arg2 = (psS32) SvIV(ST(1));
        arg3 = (psS32) SvIV(ST(2));
        arg4 = (int) SvIV(ST(3));
        result = (psDPolynomial3D *)psDPolynomial3DAlloc(arg1,arg2,arg3,(psPolynomialType )arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psDPolynomial3D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4DAlloc) {
    {
        psS32 arg1 ;
        psS32 arg2 ;
        psS32 arg3 ;
        psS32 arg4 ;
        int arg5 ;
        psDPolynomial4D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psDPolynomial4DAlloc(nW,nX,nY,nZ,type);");
        }
        arg1 = (psS32) SvIV(ST(0));
        arg2 = (psS32) SvIV(ST(1));
        arg3 = (psS32) SvIV(ST(2));
        arg4 = (psS32) SvIV(ST(3));
        arg5 = (int) SvIV(ST(4));
        result = (psDPolynomial4D *)psDPolynomial4DAlloc(arg1,arg2,arg3,arg4,(psPolynomialType )arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psDPolynomial4D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial1DEval) {
    {
        psDPolynomial1D *arg1 = (psDPolynomial1D *) 0 ;
        psF64 arg2 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial1DEval(myPoly,x);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial1DEval. Expected _p_psDPolynomial1D");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        result = (psF64)psDPolynomial1DEval((psDPolynomial1D const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2DEval) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        psF64 arg2 ;
        psF64 arg3 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psDPolynomial2DEval(myPoly,x,y);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial2DEval. Expected _p_psDPolynomial2D");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        arg3 = (psF64) SvNV(ST(2));
        
        result = (psF64)psDPolynomial2DEval((psDPolynomial2D const *)arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3DEval) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        psF64 arg2 ;
        psF64 arg3 ;
        psF64 arg4 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psDPolynomial3DEval(myPoly,x,y,z);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3DEval. Expected _p_psDPolynomial3D");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        arg3 = (psF64) SvNV(ST(2));
        
        arg4 = (psF64) SvNV(ST(3));
        
        result = (psF64)psDPolynomial3DEval((psDPolynomial3D const *)arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4DEval) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psF64 arg2 ;
        psF64 arg3 ;
        psF64 arg4 ;
        psF64 arg5 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psDPolynomial4DEval(myPoly,w,x,y,z);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4DEval. Expected _p_psDPolynomial4D");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        arg3 = (psF64) SvNV(ST(2));
        
        arg4 = (psF64) SvNV(ST(3));
        
        arg5 = (psF64) SvNV(ST(4));
        
        result = (psF64)psDPolynomial4DEval((psDPolynomial4D const *)arg1,arg2,arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial1DEvalVector) {
    {
        psDPolynomial1D *arg1 = (psDPolynomial1D *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDPolynomial1DEvalVector(myPoly,x);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial1DEvalVector. Expected _p_psDPolynomial1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial1DEvalVector. Expected _p_psVector");
            }
        }
        result = (psVector *)psDPolynomial1DEvalVector((psDPolynomial1D const *)arg1,(psVector const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial2DEvalVector) {
    {
        psDPolynomial2D *arg1 = (psDPolynomial2D *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psDPolynomial2DEvalVector(myPoly,x,y);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial2DEvalVector. Expected _p_psDPolynomial2D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial2DEvalVector. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psDPolynomial2DEvalVector. Expected _p_psVector");
            }
        }
        result = (psVector *)psDPolynomial2DEvalVector((psDPolynomial2D const *)arg1,(psVector const *)arg2,(psVector const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial3DEvalVector) {
    {
        psDPolynomial3D *arg1 = (psDPolynomial3D *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psVector *arg4 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psDPolynomial3DEvalVector(myPoly,x,y,z);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial3DEvalVector. Expected _p_psDPolynomial3D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial3DEvalVector. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psDPolynomial3DEvalVector. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 4 of psDPolynomial3DEvalVector. Expected _p_psVector");
            }
        }
        result = (psVector *)psDPolynomial3DEvalVector((psDPolynomial3D const *)arg1,(psVector const *)arg2,(psVector const *)arg3,(psVector const *)arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDPolynomial4DEvalVector) {
    {
        psDPolynomial4D *arg1 = (psDPolynomial4D *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psVector *arg4 = (psVector *) 0 ;
        psVector *arg5 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psDPolynomial4DEvalVector(myPoly,w,x,y,z);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDPolynomial4DEvalVector. Expected _p_psDPolynomial4D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDPolynomial4DEvalVector. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psDPolynomial4DEvalVector. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 4 of psDPolynomial4DEvalVector. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 5 of psDPolynomial4DEvalVector. Expected _p_psVector");
            }
        }
        result = (psVector *)psDPolynomial4DEvalVector((psDPolynomial4D const *)arg1,(psVector const *)arg2,(psVector const *)arg3,(psVector const *)arg4,(psVector const *)arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpline1D_n_set) {
    {
        psSpline1D *arg1 = (psSpline1D *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSpline1D_n_set(self,n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSpline1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSpline1D_n_set. Expected _p_psSpline1D");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->n = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpline1D_n_get) {
    {
        psSpline1D *arg1 = (psSpline1D *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSpline1D_n_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSpline1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSpline1D_n_get. Expected _p_psSpline1D");
            }
        }
        result = (psS32) ((arg1)->n);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpline1D_spline_set) {
    {
        psSpline1D *arg1 = (psSpline1D *) 0 ;
        psPolynomial1D **arg2 = (psPolynomial1D **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSpline1D_spline_set(self,spline);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSpline1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSpline1D_spline_set. Expected _p_psSpline1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 2 of psSpline1D_spline_set. Expected _p_p_psPolynomial1D");
            }
        }
        if (arg1) (arg1)->spline = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpline1D_spline_get) {
    {
        psSpline1D *arg1 = (psSpline1D *) 0 ;
        psPolynomial1D **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSpline1D_spline_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSpline1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSpline1D_spline_get. Expected _p_psSpline1D");
            }
        }
        result = (psPolynomial1D **) ((arg1)->spline);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psPolynomial1D, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpline1D_p_psDeriv2_set) {
    {
        psSpline1D *arg1 = (psSpline1D *) 0 ;
        psF32 *arg2 = (psF32 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSpline1D_p_psDeriv2_set(self,p_psDeriv2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSpline1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSpline1D_p_psDeriv2_set. Expected _p_psSpline1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psF32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psSpline1D_p_psDeriv2_set. Expected _p_psF32");
            }
        }
        if (arg1) (arg1)->p_psDeriv2 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpline1D_p_psDeriv2_get) {
    {
        psSpline1D *arg1 = (psSpline1D *) 0 ;
        psF32 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSpline1D_p_psDeriv2_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSpline1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSpline1D_p_psDeriv2_get. Expected _p_psSpline1D");
            }
        }
        result = (psF32 *) ((arg1)->p_psDeriv2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psF32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpline1D_domains_set) {
    {
        psSpline1D *arg1 = (psSpline1D *) 0 ;
        psF32 *arg2 = (psF32 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSpline1D_domains_set(self,domains);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSpline1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSpline1D_domains_set. Expected _p_psSpline1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psF32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psSpline1D_domains_set. Expected _p_psF32");
            }
        }
        if (arg1) (arg1)->domains = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpline1D_domains_get) {
    {
        psSpline1D *arg1 = (psSpline1D *) 0 ;
        psF32 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSpline1D_domains_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSpline1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSpline1D_domains_get. Expected _p_psSpline1D");
            }
        }
        result = (psF32 *) ((arg1)->domains);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psF32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpline1D_knots_set) {
    {
        psSpline1D *arg1 = (psSpline1D *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSpline1D_knots_set(self,knots);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSpline1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSpline1D_knots_set. Expected _p_psSpline1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psSpline1D_knots_set. Expected _p_psVector");
            }
        }
        if (arg1) (arg1)->knots = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpline1D_knots_get) {
    {
        psSpline1D *arg1 = (psSpline1D *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSpline1D_knots_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSpline1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSpline1D_knots_get. Expected _p_psSpline1D");
            }
        }
        result = (psVector *) ((arg1)->knots);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psSpline1D) {
    {
        psSpline1D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psSpline1D();");
        }
        result = (psSpline1D *)(psSpline1D *) calloc(1, sizeof(psSpline1D));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSpline1D, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psSpline1D) {
    {
        psSpline1D *arg1 = (psSpline1D *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psSpline1D(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSpline1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psSpline1D. Expected _p_psSpline1D");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpline1DAlloc) {
    {
        psS32 arg1 ;
        psS32 arg2 ;
        psF32 arg3 ;
        psF32 arg4 ;
        psSpline1D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psSpline1DAlloc(n,order,min,max);");
        }
        arg1 = (psS32) SvIV(ST(0));
        arg2 = (psS32) SvIV(ST(1));
        arg3 = (psF32) SvNV(ST(2));
        
        arg4 = (psF32) SvNV(ST(3));
        
        result = (psSpline1D *)psSpline1DAlloc(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSpline1D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpline1DAllocGeneric) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psS32 arg2 ;
        psSpline1D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSpline1DAllocGeneric(bounds,order);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSpline1DAllocGeneric. Expected _p_psVector");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        result = (psSpline1D *)psSpline1DAllocGeneric((psVector const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSpline1D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpline1DEval) {
    {
        psSpline1D *arg1 = (psSpline1D *) 0 ;
        psF32 arg2 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSpline1DEval(spline,x);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSpline1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSpline1DEval. Expected _p_psSpline1D");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        result = (psF32)psSpline1DEval((psSpline1D const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpline1DEvalVector) {
    {
        psSpline1D *arg1 = (psSpline1D *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSpline1DEvalVector(spline,x);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSpline1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSpline1DEvalVector. Expected _p_psSpline1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psSpline1DEvalVector. Expected _p_psVector");
            }
        }
        result = (psVector *)psSpline1DEvalVector((psSpline1D const *)arg1,(psVector const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psVectorBinDisect) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psScalar *arg2 = (psScalar *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: p_psVectorBinDisect(bins,x);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psVectorBinDisect. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psScalar,0) < 0) {
                SWIG_croak("Type error in argument 2 of p_psVectorBinDisect. Expected _p_psScalar");
            }
        }
        result = (psS32)p_psVectorBinDisect(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psVectorInterpolate) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psS32 arg3 ;
        psScalar *arg4 = (psScalar *) 0 ;
        psScalar *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: p_psVectorInterpolate(domain,range,order,x);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psVectorInterpolate. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of p_psVectorInterpolate. Expected _p_psVector");
            }
        }
        arg3 = (psS32) SvIV(ST(2));
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psScalar,0) < 0) {
                SWIG_croak("Type error in argument 4 of p_psVectorInterpolate. Expected _p_psScalar");
            }
        }
        result = (psScalar *)p_psVectorInterpolate(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psScalar, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMatrixLUD) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psVector **arg2 = (psVector **) 0 ;
        psImage *arg3 = (psImage *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMatrixLUD(outImage,outPerm,inImage);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMatrixLUD. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMatrixLUD. Expected _p_p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 3 of psMatrixLUD. Expected _p_psImage");
            }
        }
        result = (psImage *)psMatrixLUD(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMatrixLUSolve) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psVector *arg4 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psMatrixLUSolve(outVector,luImage,inVector,inPerm);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMatrixLUSolve. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMatrixLUSolve. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psMatrixLUSolve. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 4 of psMatrixLUSolve. Expected _p_psVector");
            }
        }
        result = (psVector *)psMatrixLUSolve(arg1,(psImage const *)arg2,(psVector const *)arg3,(psVector const *)arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMatrixInvert) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psF32 *arg3 = (psF32 *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMatrixInvert(outImage,inImage,det);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMatrixInvert. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMatrixInvert. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psF32,0) < 0) {
                SWIG_croak("Type error in argument 3 of psMatrixInvert. Expected _p_psF32");
            }
        }
        result = (psImage *)psMatrixInvert(arg1,(psImage const *)arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMatrixDeterminant) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psF32 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMatrixDeterminant(inMatrix);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMatrixDeterminant. Expected _p_psImage");
            }
        }
        result = (psF32 *)psMatrixDeterminant((psImage const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psF32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMatrixMultiply) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psImage *arg3 = (psImage *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMatrixMultiply(outImage,inImage1,inImage2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMatrixMultiply. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMatrixMultiply. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 3 of psMatrixMultiply. Expected _p_psImage");
            }
        }
        result = (psImage *)psMatrixMultiply(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMatrixTranspose) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMatrixTranspose(outImage,inImage);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMatrixTranspose. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMatrixTranspose. Expected _p_psImage");
            }
        }
        result = (psImage *)psMatrixTranspose(arg1,(psImage const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMatrixEigenvectors) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMatrixEigenvectors(outImage,inImage);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMatrixEigenvectors. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMatrixEigenvectors. Expected _p_psImage");
            }
        }
        result = (psImage *)psMatrixEigenvectors(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMatrixToVector) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMatrixToVector(outVector,inImage);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMatrixToVector. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMatrixToVector. Expected _p_psImage");
            }
        }
        result = (psVector *)psMatrixToVector(arg1,(psImage const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorToMatrix) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVectorToMatrix(outImage,inVector);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorToMatrix. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVectorToMatrix. Expected _p_psVector");
            }
        }
        result = (psImage *)psVectorToMatrix(arg1,(psVector const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psBinaryOp) {
    {
        psPtr arg1 = (psPtr) 0 ;
        psPtr arg2 = (psPtr) 0 ;
        char *arg3 ;
        psPtr arg4 = (psPtr) 0 ;
        psType *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psBinaryOp(out,in1,op,in2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psBinaryOp. Expected _psPtr");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psBinaryOp. Expected _psPtr");
            }
        }
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, 0,0) < 0) {
                SWIG_croak("Type error in argument 4 of psBinaryOp. Expected _psPtr");
            }
        }
        result = (psType *)psBinaryOp(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psType, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psUnaryOp) {
    {
        psPtr arg1 = (psPtr) 0 ;
        psPtr arg2 = (psPtr) 0 ;
        char *arg3 ;
        psType *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psUnaryOp(out,in,op);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psUnaryOp. Expected _psPtr");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psUnaryOp. Expected _psPtr");
            }
        }
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        result = (psType *)psUnaryOp(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psType, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimization_maxIter_set) {
    {
        psMinimization *arg1 = (psMinimization *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMinimization_maxIter_set(self,maxIter);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMinimization,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimization_maxIter_set. Expected _p_psMinimization");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->maxIter = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimization_maxIter_get) {
    {
        psMinimization *arg1 = (psMinimization *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMinimization_maxIter_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMinimization,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimization_maxIter_get. Expected _p_psMinimization");
            }
        }
        result = (psS32) ((arg1)->maxIter);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimization_tol_set) {
    {
        psMinimization *arg1 = (psMinimization *) 0 ;
        psF32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMinimization_tol_set(self,tol);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMinimization,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimization_tol_set. Expected _p_psMinimization");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        if (arg1) (arg1)->tol = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimization_tol_get) {
    {
        psMinimization *arg1 = (psMinimization *) 0 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMinimization_tol_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMinimization,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimization_tol_get. Expected _p_psMinimization");
            }
        }
        result = (psF32) ((arg1)->tol);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimization_value_set) {
    {
        psMinimization *arg1 = (psMinimization *) 0 ;
        psF32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMinimization_value_set(self,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMinimization,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimization_value_set. Expected _p_psMinimization");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        if (arg1) (arg1)->value = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimization_value_get) {
    {
        psMinimization *arg1 = (psMinimization *) 0 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMinimization_value_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMinimization,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimization_value_get. Expected _p_psMinimization");
            }
        }
        result = (psF32) ((arg1)->value);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimization_iter_set) {
    {
        psMinimization *arg1 = (psMinimization *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMinimization_iter_set(self,iter);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMinimization,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimization_iter_set. Expected _p_psMinimization");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->iter = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimization_iter_get) {
    {
        psMinimization *arg1 = (psMinimization *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMinimization_iter_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMinimization,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimization_iter_get. Expected _p_psMinimization");
            }
        }
        result = (psS32) ((arg1)->iter);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimization_lastDelta_set) {
    {
        psMinimization *arg1 = (psMinimization *) 0 ;
        psF32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMinimization_lastDelta_set(self,lastDelta);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMinimization,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimization_lastDelta_set. Expected _p_psMinimization");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        if (arg1) (arg1)->lastDelta = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimization_lastDelta_get) {
    {
        psMinimization *arg1 = (psMinimization *) 0 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMinimization_lastDelta_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMinimization,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimization_lastDelta_get. Expected _p_psMinimization");
            }
        }
        result = (psF32) ((arg1)->lastDelta);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psMinimization) {
    {
        psMinimization *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psMinimization();");
        }
        result = (psMinimization *)(psMinimization *) calloc(1, sizeof(psMinimization));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMinimization, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psMinimization) {
    {
        psMinimization *arg1 = (psMinimization *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psMinimization(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMinimization,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psMinimization. Expected _p_psMinimization");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimizationAlloc) {
    {
        psS32 arg1 ;
        psF32 arg2 ;
        psMinimization *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMinimizationAlloc(maxIter,tol);");
        }
        arg1 = (psS32) SvIV(ST(0));
        arg2 = (psF32) SvNV(ST(1));
        
        result = (psMinimization *)psMinimizationAlloc(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMinimization, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorFitPolynomial1D) {
    {
        psPolynomial1D *arg1 = (psPolynomial1D *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psVector *arg4 = (psVector *) 0 ;
        psPolynomial1D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psVectorFitPolynomial1D(myPoly,x,y,yErr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPolynomial1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorFitPolynomial1D. Expected _p_psPolynomial1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVectorFitPolynomial1D. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psVectorFitPolynomial1D. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 4 of psVectorFitPolynomial1D. Expected _p_psVector");
            }
        }
        result = (psPolynomial1D *)psVectorFitPolynomial1D(arg1,(psVector const *)arg2,(psVector const *)arg3,(psVector const *)arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPolynomial1D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorFitSpline1D) {
    {
        psSpline1D *arg1 = (psSpline1D *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psVector *arg4 = (psVector *) 0 ;
        psSpline1D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psVectorFitSpline1D(mySpline,x,y,yErr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSpline1D,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorFitSpline1D. Expected _p_psSpline1D");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVectorFitSpline1D. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psVectorFitSpline1D. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 4 of psVectorFitSpline1D. Expected _p_psVector");
            }
        }
        result = (psSpline1D *)psVectorFitSpline1D(arg1,(psVector const *)arg2,(psVector const *)arg3,(psVector const *)arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSpline1D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimizeLMChi2) {
    {
        psMinimization *arg1 = (psMinimization *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psVector *arg4 = (psVector *) 0 ;
        psArray *arg5 = (psArray *) 0 ;
        psVector *arg6 = (psVector *) 0 ;
        psVector *arg7 = (psVector *) 0 ;
        psMinimizeLMChi2Func arg8 = (psMinimizeLMChi2Func) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 8) || (items > 8)) {
            SWIG_croak("Usage: psMinimizeLMChi2(min,covar,params,paramMask,x,y,yErr,func);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMinimization,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimizeLMChi2. Expected _p_psMinimization");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMinimizeLMChi2. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psMinimizeLMChi2. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 4 of psMinimizeLMChi2. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 5 of psMinimizeLMChi2. Expected _p_psArray");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(5), (void **) &arg6, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 6 of psMinimizeLMChi2. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(6), (void **) &arg7, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 7 of psMinimizeLMChi2. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(7), (void **) &arg8, SWIGTYPE_psMinimizeLMChi2Func,0) < 0) {
                SWIG_croak("Type error in argument 8 of psMinimizeLMChi2. Expected _psMinimizeLMChi2Func");
            }
        }
        result = (psBool)psMinimizeLMChi2(arg1,arg2,arg3,(psVector const *)arg4,(psArray const *)arg5,(psVector const *)arg6,(psVector const *)arg7,arg8);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimizePowell) {
    {
        psMinimization *arg1 = (psMinimization *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psArray *arg4 = (psArray *) 0 ;
        psMinimizePowellFunc arg5 = (psMinimizePowellFunc) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psMinimizePowell(min,params,paramMask,coords,func);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMinimization,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimizePowell. Expected _p_psMinimization");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMinimizePowell. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psMinimizePowell. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 4 of psMinimizePowell. Expected _p_psArray");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_psMinimizePowellFunc,0) < 0) {
                SWIG_croak("Type error in argument 5 of psMinimizePowell. Expected _psMinimizePowellFunc");
            }
        }
        result = (psBool)psMinimizePowell(arg1,arg2,(psVector const *)arg3,(psArray const *)arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimizeLMChi2Gauss1D) {
    {
        psImage *arg1 = (psImage *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psArray *arg3 = (psArray *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMinimizeLMChi2Gauss1D(deriv,params,coords);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimizeLMChi2Gauss1D. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMinimizeLMChi2Gauss1D. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 3 of psMinimizeLMChi2Gauss1D. Expected _p_psArray");
            }
        }
        result = (psVector *)psMinimizeLMChi2Gauss1D(arg1,(psVector const *)arg2,(psArray const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimizePowellChi2Gauss1D) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psArray *arg2 = (psArray *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMinimizePowellChi2Gauss1D(params,coords);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimizePowellChi2Gauss1D. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMinimizePowellChi2Gauss1D. Expected _p_psArray");
            }
        }
        result = (psVector *)psMinimizePowellChi2Gauss1D((psVector const *)arg1,(psArray const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMinimizeChi2Powell) {
    {
        psMinimization *arg1 = (psMinimization *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psArray *arg4 = (psArray *) 0 ;
        psVector *arg5 = (psVector *) 0 ;
        psVector *arg6 = (psVector *) 0 ;
        psMinimizeChi2PowellFunc arg7 = (psMinimizeChi2PowellFunc) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 7) || (items > 7)) {
            SWIG_croak("Usage: psMinimizeChi2Powell(min,params,paramMask,coords,value,error,func);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMinimization,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMinimizeChi2Powell. Expected _p_psMinimization");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMinimizeChi2Powell. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psMinimizeChi2Powell. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 4 of psMinimizeChi2Powell. Expected _p_psArray");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 5 of psMinimizeChi2Powell. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(5), (void **) &arg6, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 6 of psMinimizeChi2Powell. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(6), (void **) &arg7, SWIGTYPE_psMinimizeChi2PowellFunc,0) < 0) {
                SWIG_croak("Type error in argument 7 of psMinimizeChi2Powell. Expected _psMinimizeChi2PowellFunc");
            }
        }
        result = (psBool)psMinimizeChi2Powell(arg1,arg2,(psVector const *)arg3,(psArray const *)arg4,(psVector const *)arg5,(psVector const *)arg6,arg7);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRandom_type_set) {
    {
        psRandom *arg1 = (psRandom *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psRandom_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRandom,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRandom_type_set. Expected _p_psRandom");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->type = (psRandomType )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRandom_type_get) {
    {
        psRandom *arg1 = (psRandom *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psRandom_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRandom,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRandom_type_get. Expected _p_psRandom");
            }
        }
        result = (int) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRandom_gsl_set) {
    {
        psRandom *arg1 = (psRandom *) 0 ;
        gsl_rng *arg2 = (gsl_rng *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psRandom_gsl_set(self,gsl);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRandom,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRandom_gsl_set. Expected _p_psRandom");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_gsl_rng,0) < 0) {
                SWIG_croak("Type error in argument 2 of psRandom_gsl_set. Expected _p_gsl_rng");
            }
        }
        if (arg1) (arg1)->gsl = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRandom_gsl_get) {
    {
        psRandom *arg1 = (psRandom *) 0 ;
        gsl_rng *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psRandom_gsl_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRandom,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRandom_gsl_get. Expected _p_psRandom");
            }
        }
        result = (gsl_rng *) ((arg1)->gsl);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_gsl_rng, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psRandom) {
    {
        psRandom *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psRandom();");
        }
        result = (psRandom *)(psRandom *) calloc(1, sizeof(psRandom));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psRandom, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psRandom) {
    {
        psRandom *arg1 = (psRandom *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psRandom(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRandom,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psRandom. Expected _p_psRandom");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRandomAlloc) {
    {
        int arg1 ;
        psU64 arg2 ;
        psRandom *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psRandomAlloc(type,seed);");
        }
        arg1 = (int) SvIV(ST(0));
        arg2 = (psU64) SvUV(ST(1));
        result = (psRandom *)psRandomAlloc((psRandomType )arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psRandom, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRandomReset) {
    {
        psRandom *arg1 = (psRandom *) 0 ;
        psU64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psRandomReset(rand,seed);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRandom,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRandomReset. Expected _p_psRandom");
            }
        }
        arg2 = (psU64) SvUV(ST(1));
        psRandomReset(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRandomUniform) {
    {
        psRandom *arg1 = (psRandom *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psRandomUniform(r);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRandom,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRandomUniform. Expected _p_psRandom");
            }
        }
        result = (psF64)psRandomUniform((psRandom const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRandomGaussian) {
    {
        psRandom *arg1 = (psRandom *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psRandomGaussian(r);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRandom,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRandomGaussian. Expected _p_psRandom");
            }
        }
        result = (psF64)psRandomGaussian((psRandom const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psRandomPoisson) {
    {
        psRandom *arg1 = (psRandom *) 0 ;
        psF64 arg2 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psRandomPoisson(r,mean);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psRandom,0) < 0) {
                SWIG_croak("Type error in argument 1 of psRandomPoisson. Expected _p_psRandom");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        result = (psF64)psRandomPoisson((psRandom const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_sampleMean_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_sampleMean_set(self,sampleMean);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_sampleMean_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->sampleMean = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_sampleMean_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_sampleMean_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_sampleMean_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->sampleMean);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_sampleMedian_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_sampleMedian_set(self,sampleMedian);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_sampleMedian_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->sampleMedian = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_sampleMedian_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_sampleMedian_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_sampleMedian_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->sampleMedian);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_sampleStdev_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_sampleStdev_set(self,sampleStdev);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_sampleStdev_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->sampleStdev = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_sampleStdev_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_sampleStdev_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_sampleStdev_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->sampleStdev);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_sampleUQ_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_sampleUQ_set(self,sampleUQ);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_sampleUQ_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->sampleUQ = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_sampleUQ_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_sampleUQ_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_sampleUQ_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->sampleUQ);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_sampleLQ_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_sampleLQ_set(self,sampleLQ);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_sampleLQ_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->sampleLQ = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_sampleLQ_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_sampleLQ_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_sampleLQ_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->sampleLQ);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustMean_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_robustMean_set(self,robustMean);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustMean_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->robustMean = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustMean_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_robustMean_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustMean_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->robustMean);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustMedian_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_robustMedian_set(self,robustMedian);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustMedian_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->robustMedian = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustMedian_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_robustMedian_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustMedian_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->robustMedian);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustMode_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_robustMode_set(self,robustMode);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustMode_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->robustMode = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustMode_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_robustMode_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustMode_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->robustMode);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustStdev_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_robustStdev_set(self,robustStdev);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustStdev_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->robustStdev = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustStdev_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_robustStdev_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustStdev_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->robustStdev);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustUQ_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_robustUQ_set(self,robustUQ);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustUQ_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->robustUQ = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustUQ_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_robustUQ_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustUQ_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->robustUQ);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustLQ_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_robustLQ_set(self,robustLQ);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustLQ_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->robustLQ = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustLQ_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_robustLQ_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustLQ_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->robustLQ);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustN50_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_robustN50_set(self,robustN50);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustN50_set. Expected _p_psStats");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->robustN50 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustN50_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_robustN50_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustN50_get. Expected _p_psStats");
            }
        }
        result = (psS32) ((arg1)->robustN50);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustNfit_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_robustNfit_set(self,robustNfit);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustNfit_set. Expected _p_psStats");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->robustNfit = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_robustNfit_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_robustNfit_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_robustNfit_get. Expected _p_psStats");
            }
        }
        result = (psS32) ((arg1)->robustNfit);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_clippedMean_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_clippedMean_set(self,clippedMean);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_clippedMean_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->clippedMean = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_clippedMean_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_clippedMean_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_clippedMean_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->clippedMean);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_clippedStdev_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_clippedStdev_set(self,clippedStdev);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_clippedStdev_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->clippedStdev = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_clippedStdev_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_clippedStdev_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_clippedStdev_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->clippedStdev);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_clippedNvalues_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_clippedNvalues_set(self,clippedNvalues);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_clippedNvalues_set. Expected _p_psStats");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->clippedNvalues = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_clippedNvalues_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_clippedNvalues_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_clippedNvalues_get. Expected _p_psStats");
            }
        }
        result = (psS32) ((arg1)->clippedNvalues);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_clipSigma_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_clipSigma_set(self,clipSigma);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_clipSigma_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->clipSigma = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_clipSigma_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_clipSigma_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_clipSigma_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->clipSigma);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_clipIter_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_clipIter_set(self,clipIter);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_clipIter_set. Expected _p_psStats");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->clipIter = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_clipIter_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_clipIter_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_clipIter_get. Expected _p_psStats");
            }
        }
        result = (psS32) ((arg1)->clipIter);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_min_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_min_set(self,min);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_min_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->min = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_min_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_min_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_min_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->min);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_max_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_max_set(self,max);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_max_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->max = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_max_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_max_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_max_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->max);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_binsize_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_binsize_set(self,binsize);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_binsize_set. Expected _p_psStats");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->binsize = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_binsize_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_binsize_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_binsize_get. Expected _p_psStats");
            }
        }
        result = (psF64) ((arg1)->binsize);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_options_set) {
    {
        psStats *arg1 = (psStats *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psStats_options_set(self,options);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_options_set. Expected _p_psStats");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->options = (psStatsOptions )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStats_options_get) {
    {
        psStats *arg1 = (psStats *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStats_options_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psStats_options_get. Expected _p_psStats");
            }
        }
        result = (int) ((arg1)->options);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psStats) {
    {
        psStats *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psStats();");
        }
        result = (psStats *)(psStats *) calloc(1, sizeof(psStats));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psStats, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psStats) {
    {
        psStats *arg1 = (psStats *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psStats(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psStats. Expected _p_psStats");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorStats) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psVector *arg4 = (psVector *) 0 ;
        psU32 arg5 ;
        psStats *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psVectorStats(stats,in,errors,mask,maskVal);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorStats. Expected _p_psStats");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVectorStats. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psVectorStats. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 4 of psVectorStats. Expected _p_psVector");
            }
        }
        arg5 = (psU32) SvUV(ST(4));
        result = (psStats *)psVectorStats(arg1,(psVector const *)arg2,(psVector const *)arg3,(psVector const *)arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psStats, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psStatsAlloc) {
    {
        int arg1 ;
        psStats *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psStatsAlloc(options);");
        }
        arg1 = (int) SvIV(ST(0));
        result = (psStats *)psStatsAlloc((psStatsOptions )arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psStats, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHistogram_bounds_set) {
    {
        psHistogram *arg1 = (psHistogram *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psHistogram_bounds_set(self,bounds);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHistogram,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHistogram_bounds_set. Expected _p_psHistogram");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psHistogram_bounds_set. Expected _p_psVector");
            }
        }
        if (arg1) (arg1)->bounds = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHistogram_bounds_get) {
    {
        psHistogram *arg1 = (psHistogram *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psHistogram_bounds_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHistogram,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHistogram_bounds_get. Expected _p_psHistogram");
            }
        }
        result = (psVector *) ((arg1)->bounds);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHistogram_nums_set) {
    {
        psHistogram *arg1 = (psHistogram *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psHistogram_nums_set(self,nums);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHistogram,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHistogram_nums_set. Expected _p_psHistogram");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psHistogram_nums_set. Expected _p_psVector");
            }
        }
        if (arg1) (arg1)->nums = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHistogram_nums_get) {
    {
        psHistogram *arg1 = (psHistogram *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psHistogram_nums_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHistogram,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHistogram_nums_get. Expected _p_psHistogram");
            }
        }
        result = (psVector *) ((arg1)->nums);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHistogram_minNum_set) {
    {
        psHistogram *arg1 = (psHistogram *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psHistogram_minNum_set(self,minNum);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHistogram,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHistogram_minNum_set. Expected _p_psHistogram");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->minNum = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHistogram_minNum_get) {
    {
        psHistogram *arg1 = (psHistogram *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psHistogram_minNum_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHistogram,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHistogram_minNum_get. Expected _p_psHistogram");
            }
        }
        result = (psS32) ((arg1)->minNum);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHistogram_maxNum_set) {
    {
        psHistogram *arg1 = (psHistogram *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psHistogram_maxNum_set(self,maxNum);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHistogram,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHistogram_maxNum_set. Expected _p_psHistogram");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->maxNum = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHistogram_maxNum_get) {
    {
        psHistogram *arg1 = (psHistogram *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psHistogram_maxNum_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHistogram,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHistogram_maxNum_get. Expected _p_psHistogram");
            }
        }
        result = (psS32) ((arg1)->maxNum);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHistogram_uniform_set) {
    {
        psHistogram *arg1 = (psHistogram *) 0 ;
        psBool arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psHistogram_uniform_set(self,uniform);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHistogram,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHistogram_uniform_set. Expected _p_psHistogram");
            }
        }
        arg2 = (psBool) SvIV(ST(1));
        if (arg1) (arg1)->uniform = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHistogram_uniform_get) {
    {
        psHistogram *arg1 = (psHistogram *) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psHistogram_uniform_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHistogram,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHistogram_uniform_get. Expected _p_psHistogram");
            }
        }
        result = (psBool) ((arg1)->uniform);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psHistogram) {
    {
        psHistogram *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psHistogram();");
        }
        result = (psHistogram *)(psHistogram *) calloc(1, sizeof(psHistogram));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psHistogram, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psHistogram) {
    {
        psHistogram *arg1 = (psHistogram *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psHistogram(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHistogram,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psHistogram. Expected _p_psHistogram");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHistogramAlloc) {
    {
        psF32 arg1 ;
        psF32 arg2 ;
        psS32 arg3 ;
        psHistogram *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psHistogramAlloc(lower,upper,n);");
        }
        arg1 = (psF32) SvNV(ST(0));
        
        arg2 = (psF32) SvNV(ST(1));
        
        arg3 = (psS32) SvIV(ST(2));
        result = (psHistogram *)psHistogramAlloc(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psHistogram, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHistogramAllocGeneric) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psHistogram *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psHistogramAllocGeneric(bounds);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHistogramAllocGeneric. Expected _p_psVector");
            }
        }
        result = (psHistogram *)psHistogramAllocGeneric((psVector const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psHistogram, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorHistogram) {
    {
        psHistogram *arg1 = (psHistogram *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psVector *arg4 = (psVector *) 0 ;
        psU32 arg5 ;
        psHistogram *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psVectorHistogram(out,in,errors,mask,maskVal);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHistogram,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorHistogram. Expected _p_psHistogram");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVectorHistogram. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psVectorHistogram. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 4 of psVectorHistogram. Expected _p_psVector");
            }
        }
        arg5 = (psU32) SvUV(ST(4));
        result = (psHistogram *)psVectorHistogram(arg1,(psVector const *)arg2,(psVector const *)arg3,(psVector const *)arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psHistogram, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psGetStatValue) {
    {
        psStats *arg1 = (psStats *) 0 ;
        psF64 *arg2 = (psF64 *) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: p_psGetStatValue(stats,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psStats,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psGetStatValue. Expected _p_psStats");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psF64,0) < 0) {
                SWIG_croak("Type error in argument 2 of p_psGetStatValue. Expected _p_psF64");
            }
        }
        result = (psBool)p_psGetStatValue((psStats const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psNormalizeVectorRangeU8) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psU8 arg2 ;
        psU8 arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psNormalizeVectorRangeU8(myData,low,high);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psNormalizeVectorRangeU8. Expected _p_psVector");
            }
        }
        arg2 = (psU8) SvUV(ST(1));
        arg3 = (psU8) SvUV(ST(2));
        p_psNormalizeVectorRangeU8(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psNormalizeVectorRangeU16) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psU16 arg2 ;
        psU16 arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psNormalizeVectorRangeU16(myData,low,high);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psNormalizeVectorRangeU16. Expected _p_psVector");
            }
        }
        arg2 = (psU16) SvUV(ST(1));
        arg3 = (psU16) SvUV(ST(2));
        p_psNormalizeVectorRangeU16(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psNormalizeVectorRangeU32) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psU32 arg2 ;
        psU32 arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psNormalizeVectorRangeU32(myData,low,high);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psNormalizeVectorRangeU32. Expected _p_psVector");
            }
        }
        arg2 = (psU32) SvUV(ST(1));
        arg3 = (psU32) SvUV(ST(2));
        p_psNormalizeVectorRangeU32(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psNormalizeVectorRangeU64) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psU64 arg2 ;
        psU64 arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psNormalizeVectorRangeU64(myData,low,high);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psNormalizeVectorRangeU64. Expected _p_psVector");
            }
        }
        arg2 = (psU64) SvUV(ST(1));
        arg3 = (psU64) SvUV(ST(2));
        p_psNormalizeVectorRangeU64(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psNormalizeVectorRangeS8) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psS8 arg2 ;
        psS8 arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psNormalizeVectorRangeS8(myData,low,high);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psNormalizeVectorRangeS8. Expected _p_psVector");
            }
        }
        arg2 = (psS8) *SvPV(ST(1),PL_na);
        arg3 = (psS8) *SvPV(ST(2),PL_na);
        p_psNormalizeVectorRangeS8(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psNormalizeVectorRangeS16) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psS16 arg2 ;
        psS16 arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psNormalizeVectorRangeS16(myData,low,high);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psNormalizeVectorRangeS16. Expected _p_psVector");
            }
        }
        arg2 = (psS16) SvIV(ST(1));
        arg3 = (psS16) SvIV(ST(2));
        p_psNormalizeVectorRangeS16(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psNormalizeVectorRangeS32) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psS32 arg2 ;
        psS32 arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psNormalizeVectorRangeS32(myData,low,high);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psNormalizeVectorRangeS32. Expected _p_psVector");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        arg3 = (psS32) SvIV(ST(2));
        p_psNormalizeVectorRangeS32(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psNormalizeVectorRangeS64) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psS64 arg2 ;
        psS64 arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psNormalizeVectorRangeS64(myData,low,high);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psNormalizeVectorRangeS64. Expected _p_psVector");
            }
        }
        arg2 = (psS64) strtoll(SvPV(ST(1), PL_na), 0, 0);
        arg3 = (psS64) strtoll(SvPV(ST(2), PL_na), 0, 0);
        p_psNormalizeVectorRangeS64(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psNormalizeVectorRangeF32) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psF32 arg2 ;
        psF32 arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psNormalizeVectorRangeF32(myData,low,high);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psNormalizeVectorRangeF32. Expected _p_psVector");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        arg3 = (psF32) SvNV(ST(2));
        
        p_psNormalizeVectorRangeF32(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psNormalizeVectorRangeF64) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psF64 arg2 ;
        psF64 arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: p_psNormalizeVectorRangeF64(myData,low,high);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psNormalizeVectorRangeF64. Expected _p_psVector");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        arg3 = (psF64) SvNV(ST(2));
        
        p_psNormalizeVectorRangeF64(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorFFT) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        int arg3 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psVectorFFT(out,in,direction);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorFFT. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVectorFFT. Expected _p_psVector");
            }
        }
        arg3 = (int) SvIV(ST(2));
        result = (psVector *)psVectorFFT(arg1,(psVector const *)arg2,(psFFTFlags )arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorReal) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVectorReal(out,in);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorReal. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVectorReal. Expected _p_psVector");
            }
        }
        result = (psVector *)psVectorReal(arg1,(psVector const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorImaginary) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVectorImaginary(out,in);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorImaginary. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVectorImaginary. Expected _p_psVector");
            }
        }
        result = (psVector *)psVectorImaginary(arg1,(psVector const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorComplex) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *arg3 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psVectorComplex(out,real,imag);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorComplex. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVectorComplex. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 3 of psVectorComplex. Expected _p_psVector");
            }
        }
        result = (psVector *)psVectorComplex(arg1,(psVector const *)arg2,(psVector const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorConjugate) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVectorConjugate(out,in);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorConjugate. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVectorConjugate. Expected _p_psVector");
            }
        }
        result = (psVector *)psVectorConjugate(arg1,(psVector const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorPowerSpectrum) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVectorPowerSpectrum(out,in);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorPowerSpectrum. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVectorPowerSpectrum. Expected _p_psVector");
            }
        }
        result = (psVector *)psVectorPowerSpectrum(arg1,(psVector const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArray_nalloc_set) {
    {
        psArray *arg1 = (psArray *) 0 ;
        psU32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psArray_nalloc_set(self,nalloc);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of psArray_nalloc_set. Expected _p_psArray");
            }
        }
        arg2 = (psU32) SvUV(ST(1));
        if (arg1) (arg1)->nalloc = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArray_nalloc_get) {
    {
        psArray *arg1 = (psArray *) 0 ;
        psU32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psArray_nalloc_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of psArray_nalloc_get. Expected _p_psArray");
            }
        }
        result = (psU32) ((arg1)->nalloc);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArray_n_set) {
    {
        psArray *arg1 = (psArray *) 0 ;
        psU32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psArray_n_set(self,n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of psArray_n_set. Expected _p_psArray");
            }
        }
        arg2 = (psU32) SvUV(ST(1));
        if (arg1) (arg1)->n = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArray_n_get) {
    {
        psArray *arg1 = (psArray *) 0 ;
        psU32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psArray_n_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of psArray_n_get. Expected _p_psArray");
            }
        }
        result = (psU32) ((arg1)->n);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArray_data_set) {
    {
        psArray *arg1 = (psArray *) 0 ;
        psPtr *arg2 = (psPtr *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psArray_data_set(self,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of psArray_data_set. Expected _p_psArray");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPtr,0) < 0) {
                SWIG_croak("Type error in argument 2 of psArray_data_set. Expected _p_psPtr");
            }
        }
        if (arg1) (arg1)->data = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArray_data_get) {
    {
        psArray *arg1 = (psArray *) 0 ;
        psPtr *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psArray_data_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of psArray_data_get. Expected _p_psArray");
            }
        }
        result = (psPtr *) ((arg1)->data);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPtr, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psArray) {
    {
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psArray();");
        }
        result = (psArray *)(psArray *) calloc(1, sizeof(psArray));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psArray) {
    {
        psArray *arg1 = (psArray *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psArray(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psArray. Expected _p_psArray");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArrayAlloc) {
    {
        psU32 arg1 ;
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psArrayAlloc(nalloc);");
        }
        arg1 = (psU32) SvUV(ST(0));
        result = (psArray *)psArrayAlloc(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArrayRealloc) {
    {
        psArray *arg1 = (psArray *) 0 ;
        psU32 arg2 ;
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psArrayRealloc(psArr,nalloc);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of psArrayRealloc. Expected _p_psArray");
            }
        }
        arg2 = (psU32) SvUV(ST(1));
        result = (psArray *)psArrayRealloc(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArrayAdd) {
    {
        psArray *arg1 = (psArray *) 0 ;
        int arg2 ;
        psPtr arg3 = (psPtr) 0 ;
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psArrayAdd(psArr,delta,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of psArrayAdd. Expected _p_psArray");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, 0,0) < 0) {
                SWIG_croak("Type error in argument 3 of psArrayAdd. Expected _psPtr");
            }
        }
        result = (psArray *)psArrayAdd(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArrayRemove) {
    {
        psArray *arg1 = (psArray *) 0 ;
        psPtr arg2 = (psPtr) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psArrayRemove(psArr,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of psArrayRemove. Expected _p_psArray");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psArrayRemove. Expected _psPtr");
            }
        }
        result = (psBool)psArrayRemove(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArrayElementFree) {
    {
        psArray *arg1 = (psArray *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psArrayElementFree(psArr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of psArrayElementFree. Expected _p_psArray");
            }
        }
        psArrayElementFree(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArraySort) {
    {
        psArray *arg1 = (psArray *) 0 ;
        psComparePtrFcn arg2 = (psComparePtrFcn) 0 ;
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psArraySort(in,compare);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of psArraySort. Expected _p_psArray");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_psComparePtrFcn,0) < 0) {
                SWIG_croak("Type error in argument 2 of psArraySort. Expected _psComparePtrFcn");
            }
        }
        result = (psArray *)psArraySort(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArraySet) {
    {
        psArray *arg1 = (psArray *) 0 ;
        psU32 arg2 ;
        void *arg3 = (void *) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psArraySet(in,position,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of psArraySet. Expected _p_psArray");
            }
        }
        arg2 = (psU32) SvUV(ST(1));
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, 0,0) < 0) {
                SWIG_croak("Type error in argument 3 of psArraySet. Expected _p_void");
            }
        }
        result = (psBool)psArraySet(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArrayGet) {
    {
        psArray *arg1 = (psArray *) 0 ;
        psU32 arg2 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psArrayGet(in,position);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of psArrayGet. Expected _p_psArray");
            }
        }
        arg2 = (psU32) SvUV(ST(1));
        result = (void *)psArrayGet(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psBitSet_n_set) {
    {
        psBitSet *arg1 = (psBitSet *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psBitSet_n_set(self,n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBitSet,0) < 0) {
                SWIG_croak("Type error in argument 1 of psBitSet_n_set. Expected _p_psBitSet");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->n = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psBitSet_n_get) {
    {
        psBitSet *arg1 = (psBitSet *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psBitSet_n_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBitSet,0) < 0) {
                SWIG_croak("Type error in argument 1 of psBitSet_n_get. Expected _p_psBitSet");
            }
        }
        result = (psS32) ((arg1)->n);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psBitSet_bits_set) {
    {
        psBitSet *arg1 = (psBitSet *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psBitSet_bits_set(self,bits);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBitSet,0) < 0) {
                SWIG_croak("Type error in argument 1 of psBitSet_bits_set. Expected _p_psBitSet");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg1->bits) free((char*)arg1->bits);
            if (arg2) {
                arg1->bits = (char *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->bits,arg2);
            } else {
                arg1->bits = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psBitSet_bits_get) {
    {
        psBitSet *arg1 = (psBitSet *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psBitSet_bits_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBitSet,0) < 0) {
                SWIG_croak("Type error in argument 1 of psBitSet_bits_get. Expected _p_psBitSet");
            }
        }
        result = (char *) ((arg1)->bits);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psBitSet) {
    {
        psBitSet *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psBitSet();");
        }
        result = (psBitSet *)(psBitSet *) calloc(1, sizeof(psBitSet));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psBitSet, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psBitSet) {
    {
        psBitSet *arg1 = (psBitSet *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psBitSet(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBitSet,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psBitSet. Expected _p_psBitSet");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psBitSetAlloc) {
    {
        psS32 arg1 ;
        psBitSet *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psBitSetAlloc(n);");
        }
        arg1 = (psS32) SvIV(ST(0));
        result = (psBitSet *)psBitSetAlloc(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psBitSet, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psBitSetSet) {
    {
        psBitSet *arg1 = (psBitSet *) 0 ;
        psS32 arg2 ;
        psBitSet *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psBitSetSet(inMask,bit);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBitSet,0) < 0) {
                SWIG_croak("Type error in argument 1 of psBitSetSet. Expected _p_psBitSet");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        result = (psBitSet *)psBitSetSet(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psBitSet, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psBitSetClear) {
    {
        psBitSet *arg1 = (psBitSet *) 0 ;
        psS32 arg2 ;
        psBitSet *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psBitSetClear(inMask,bit);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBitSet,0) < 0) {
                SWIG_croak("Type error in argument 1 of psBitSetClear. Expected _p_psBitSet");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        result = (psBitSet *)psBitSetClear(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psBitSet, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psBitSetTest) {
    {
        psBitSet *arg1 = (psBitSet *) 0 ;
        psS32 arg2 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psBitSetTest(inMask,bit);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBitSet,0) < 0) {
                SWIG_croak("Type error in argument 1 of psBitSetTest. Expected _p_psBitSet");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        result = (psBool)psBitSetTest((psBitSet const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psBitSetOp) {
    {
        psBitSet *arg1 = (psBitSet *) 0 ;
        psBitSet *arg2 = (psBitSet *) 0 ;
        char *arg3 ;
        psBitSet *arg4 = (psBitSet *) 0 ;
        psBitSet *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psBitSetOp(outMask,inMask1,operator,inMask2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBitSet,0) < 0) {
                SWIG_croak("Type error in argument 1 of psBitSetOp. Expected _p_psBitSet");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psBitSet,0) < 0) {
                SWIG_croak("Type error in argument 2 of psBitSetOp. Expected _p_psBitSet");
            }
        }
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_psBitSet,0) < 0) {
                SWIG_croak("Type error in argument 4 of psBitSetOp. Expected _p_psBitSet");
            }
        }
        result = (psBitSet *)psBitSetOp(arg1,(psBitSet const *)arg2,arg3,(psBitSet const *)arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psBitSet, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psBitSetNot) {
    {
        psBitSet *arg1 = (psBitSet *) 0 ;
        psBitSet *arg2 = (psBitSet *) 0 ;
        psBitSet *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psBitSetNot(outBitSet,inBitSet);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBitSet,0) < 0) {
                SWIG_croak("Type error in argument 1 of psBitSetNot. Expected _p_psBitSet");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psBitSet,0) < 0) {
                SWIG_croak("Type error in argument 2 of psBitSetNot. Expected _p_psBitSet");
            }
        }
        result = (psBitSet *)psBitSetNot(arg1,(psBitSet const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psBitSet, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psBitSetToString) {
    {
        psBitSet *arg1 = (psBitSet *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psBitSetToString(inMask);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBitSet,0) < 0) {
                SWIG_croak("Type error in argument 1 of psBitSetToString. Expected _p_psBitSet");
            }
        }
        result = (char *)psBitSetToString((psBitSet const *)arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareS8Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareS8Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareS8Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareS8Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareS8Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareS16Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareS16Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareS16Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareS16Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareS16Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareS32Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareS32Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareS32Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareS32Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareS32Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareS64Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareS64Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareS64Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareS64Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareS64Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareU8Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareU8Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareU8Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareU8Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareU8Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareU16Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareU16Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareU16Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareU16Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareU16Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareU32Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareU32Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareU32Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareU32Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareU32Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareU64Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareU64Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareU64Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareU64Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareU64Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareF32Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareF32Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareF32Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareF32Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareF32Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareF64Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareF64Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareF64Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareF64Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareF64Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingS8Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingS8Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingS8Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingS8Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareDescendingS8Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingS16Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingS16Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingS16Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingS16Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareDescendingS16Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingS32Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingS32Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingS32Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingS32Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareDescendingS32Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingS64Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingS64Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingS64Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingS64Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareDescendingS64Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingU8Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingU8Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingU8Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingU8Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareDescendingU8Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingU16Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingU16Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingU16Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingU16Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareDescendingU16Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingU32Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingU32Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingU32Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingU32Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareDescendingU32Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingU64Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingU64Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingU64Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingU64Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareDescendingU64Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingF32Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingF32Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingF32Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingF32Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareDescendingF32Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingF64Ptr) {
    {
        void **arg1 = (void **) 0 ;
        void **arg2 = (void **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingF64Ptr(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingF64Ptr. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingF64Ptr. Expected _p_p_void");
            }
        }
        result = (int)psCompareDescendingF64Ptr((void const **)arg1,(void const **)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareS8) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareS8(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareS8. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareS8. Expected _p_void");
            }
        }
        result = (int)psCompareS8((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareS16) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareS16(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareS16. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareS16. Expected _p_void");
            }
        }
        result = (int)psCompareS16((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareS32) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareS32(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareS32. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareS32. Expected _p_void");
            }
        }
        result = (int)psCompareS32((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareS64) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareS64(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareS64. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareS64. Expected _p_void");
            }
        }
        result = (int)psCompareS64((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareU8) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareU8(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareU8. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareU8. Expected _p_void");
            }
        }
        result = (int)psCompareU8((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareU16) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareU16(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareU16. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareU16. Expected _p_void");
            }
        }
        result = (int)psCompareU16((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareU32) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareU32(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareU32. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareU32. Expected _p_void");
            }
        }
        result = (int)psCompareU32((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareU64) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareU64(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareU64. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareU64. Expected _p_void");
            }
        }
        result = (int)psCompareU64((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareF32) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareF32(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareF32. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareF32. Expected _p_void");
            }
        }
        result = (int)psCompareF32((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareF64) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareF64(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareF64. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareF64. Expected _p_void");
            }
        }
        result = (int)psCompareF64((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingS8) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingS8(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingS8. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingS8. Expected _p_void");
            }
        }
        result = (int)psCompareDescendingS8((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingS16) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingS16(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingS16. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingS16. Expected _p_void");
            }
        }
        result = (int)psCompareDescendingS16((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingS32) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingS32(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingS32. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingS32. Expected _p_void");
            }
        }
        result = (int)psCompareDescendingS32((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingS64) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingS64(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingS64. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingS64. Expected _p_void");
            }
        }
        result = (int)psCompareDescendingS64((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingU8) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingU8(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingU8. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingU8. Expected _p_void");
            }
        }
        result = (int)psCompareDescendingU8((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingU16) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingU16(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingU16. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingU16. Expected _p_void");
            }
        }
        result = (int)psCompareDescendingU16((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingU32) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingU32(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingU32. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingU32. Expected _p_void");
            }
        }
        result = (int)psCompareDescendingU32((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingU64) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingU64(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingU64. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingU64. Expected _p_void");
            }
        }
        result = (int)psCompareDescendingU64((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingF32) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingF32(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingF32. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingF32. Expected _p_void");
            }
        }
        result = (int)psCompareDescendingF32((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCompareDescendingF64) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCompareDescendingF64(a,b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCompareDescendingF64. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCompareDescendingF64. Expected _p_void");
            }
        }
        result = (int)psCompareDescendingF64((void const *)arg1,(void const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHashBucket_key_set) {
    {
        psHashBucket *arg1 = (psHashBucket *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psHashBucket_key_set(self,key);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHashBucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHashBucket_key_set. Expected _p_psHashBucket");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg1->key) free((char*)arg1->key);
            if (arg2) {
                arg1->key = (char *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->key,arg2);
            } else {
                arg1->key = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHashBucket_key_get) {
    {
        psHashBucket *arg1 = (psHashBucket *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psHashBucket_key_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHashBucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHashBucket_key_get. Expected _p_psHashBucket");
            }
        }
        result = (char *) ((arg1)->key);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHashBucket_data_set) {
    {
        psHashBucket *arg1 = (psHashBucket *) 0 ;
        psPtr arg2 = (psPtr) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psHashBucket_data_set(self,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHashBucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHashBucket_data_set. Expected _p_psHashBucket");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psHashBucket_data_set. Expected _psPtr");
            }
        }
        if (arg1) (arg1)->data = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHashBucket_data_get) {
    {
        psHashBucket *arg1 = (psHashBucket *) 0 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psHashBucket_data_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHashBucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHashBucket_data_get. Expected _p_psHashBucket");
            }
        }
        result = (psPtr) ((arg1)->data);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHashBucket_next_set) {
    {
        psHashBucket *arg1 = (psHashBucket *) 0 ;
        struct psHashBucket *arg2 = (struct psHashBucket *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psHashBucket_next_set(self,next);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHashBucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHashBucket_next_set. Expected _p_psHashBucket");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psHashBucket,0) < 0) {
                SWIG_croak("Type error in argument 2 of psHashBucket_next_set. Expected _p_psHashBucket");
            }
        }
        if (arg1) (arg1)->next = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHashBucket_next_get) {
    {
        psHashBucket *arg1 = (psHashBucket *) 0 ;
        struct psHashBucket *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psHashBucket_next_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHashBucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHashBucket_next_get. Expected _p_psHashBucket");
            }
        }
        result = (struct psHashBucket *) ((arg1)->next);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psHashBucket, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psHashBucket) {
    {
        psHashBucket *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psHashBucket();");
        }
        result = (psHashBucket *)(psHashBucket *) calloc(1, sizeof(psHashBucket));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psHashBucket, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psHashBucket) {
    {
        psHashBucket *arg1 = (psHashBucket *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psHashBucket(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHashBucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psHashBucket. Expected _p_psHashBucket");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHash_nbucket_set) {
    {
        psHash *arg1 = (psHash *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psHash_nbucket_set(self,nbucket);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHash,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHash_nbucket_set. Expected _p_psHash");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nbucket = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHash_nbucket_get) {
    {
        psHash *arg1 = (psHash *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psHash_nbucket_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHash,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHash_nbucket_get. Expected _p_psHash");
            }
        }
        result = (psS32) ((arg1)->nbucket);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHash_buckets_set) {
    {
        psHash *arg1 = (psHash *) 0 ;
        psHashBucket **arg2 = (psHashBucket **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psHash_buckets_set(self,buckets);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHash,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHash_buckets_set. Expected _p_psHash");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_psHashBucket,0) < 0) {
                SWIG_croak("Type error in argument 2 of psHash_buckets_set. Expected _p_p_psHashBucket");
            }
        }
        if (arg1) (arg1)->buckets = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHash_buckets_get) {
    {
        psHash *arg1 = (psHash *) 0 ;
        psHashBucket **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psHash_buckets_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHash,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHash_buckets_get. Expected _p_psHash");
            }
        }
        result = (psHashBucket **) ((arg1)->buckets);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_psHashBucket, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psHash) {
    {
        psHash *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psHash();");
        }
        result = (psHash *)(psHash *) calloc(1, sizeof(psHash));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psHash, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psHash) {
    {
        psHash *arg1 = (psHash *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psHash(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHash,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psHash. Expected _p_psHash");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHashAlloc) {
    {
        psS32 arg1 ;
        psHash *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psHashAlloc(nbucket);");
        }
        arg1 = (psS32) SvIV(ST(0));
        result = (psHash *)psHashAlloc(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psHash, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHashAdd) {
    {
        psHash *arg1 = (psHash *) 0 ;
        char *arg2 ;
        psPtr arg3 = (psPtr) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psHashAdd(table,key,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHash,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHashAdd. Expected _p_psHash");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, 0,0) < 0) {
                SWIG_croak("Type error in argument 3 of psHashAdd. Expected _psPtr");
            }
        }
        result = (psBool)psHashAdd(arg1,(char const *)arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHashLookup) {
    {
        psHash *arg1 = (psHash *) 0 ;
        char *arg2 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psHashLookup(table,key);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHash,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHashLookup. Expected _p_psHash");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (psPtr)psHashLookup(arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHashRemove) {
    {
        psHash *arg1 = (psHash *) 0 ;
        char *arg2 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psHashRemove(table,key);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHash,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHashRemove. Expected _p_psHash");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (psBool)psHashRemove(arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHashKeyList) {
    {
        psHash *arg1 = (psHash *) 0 ;
        psList *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psHashKeyList(table);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHash,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHashKeyList. Expected _p_psHash");
            }
        }
        result = (psList *)psHashKeyList(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psList, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psHashToArray) {
    {
        psHash *arg1 = (psHash *) 0 ;
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psHashToArray(table);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psHash,0) < 0) {
                SWIG_croak("Type error in argument 1 of psHashToArray. Expected _p_psHash");
            }
        }
        result = (psArray *)psHashToArray(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListElem_prev_set) {
    {
        psListElem *arg1 = (psListElem *) 0 ;
        struct psListElem *arg2 = (struct psListElem *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListElem_prev_set(self,prev);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListElem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListElem_prev_set. Expected _p_psListElem");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psListElem,0) < 0) {
                SWIG_croak("Type error in argument 2 of psListElem_prev_set. Expected _p_psListElem");
            }
        }
        if (arg1) (arg1)->prev = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListElem_prev_get) {
    {
        psListElem *arg1 = (psListElem *) 0 ;
        struct psListElem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psListElem_prev_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListElem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListElem_prev_get. Expected _p_psListElem");
            }
        }
        result = (struct psListElem *) ((arg1)->prev);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psListElem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListElem_next_set) {
    {
        psListElem *arg1 = (psListElem *) 0 ;
        struct psListElem *arg2 = (struct psListElem *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListElem_next_set(self,next);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListElem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListElem_next_set. Expected _p_psListElem");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psListElem,0) < 0) {
                SWIG_croak("Type error in argument 2 of psListElem_next_set. Expected _p_psListElem");
            }
        }
        if (arg1) (arg1)->next = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListElem_next_get) {
    {
        psListElem *arg1 = (psListElem *) 0 ;
        struct psListElem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psListElem_next_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListElem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListElem_next_get. Expected _p_psListElem");
            }
        }
        result = (struct psListElem *) ((arg1)->next);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psListElem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListElem_data_set) {
    {
        psListElem *arg1 = (psListElem *) 0 ;
        psPtr arg2 = (psPtr) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListElem_data_set(self,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListElem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListElem_data_set. Expected _p_psListElem");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psListElem_data_set. Expected _psPtr");
            }
        }
        if (arg1) (arg1)->data = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListElem_data_get) {
    {
        psListElem *arg1 = (psListElem *) 0 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psListElem_data_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListElem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListElem_data_get. Expected _p_psListElem");
            }
        }
        result = (psPtr) ((arg1)->data);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psListElem) {
    {
        psListElem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psListElem();");
        }
        result = (psListElem *)(psListElem *) calloc(1, sizeof(psListElem));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psListElem, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psListElem) {
    {
        psListElem *arg1 = (psListElem *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psListElem(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListElem,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psListElem. Expected _p_psListElem");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psList_size_set) {
    {
        psList *arg1 = (psList *) 0 ;
        psU32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psList_size_set(self,size);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psList_size_set. Expected _p_psList");
            }
        }
        arg2 = (psU32) SvUV(ST(1));
        if (arg1) (arg1)->size = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psList_size_get) {
    {
        psList *arg1 = (psList *) 0 ;
        psU32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psList_size_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psList_size_get. Expected _p_psList");
            }
        }
        result = (psU32) ((arg1)->size);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psList_head_set) {
    {
        psList *arg1 = (psList *) 0 ;
        psListElem *arg2 = (psListElem *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psList_head_set(self,head);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psList_head_set. Expected _p_psList");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psListElem,0) < 0) {
                SWIG_croak("Type error in argument 2 of psList_head_set. Expected _p_psListElem");
            }
        }
        if (arg1) (arg1)->head = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psList_head_get) {
    {
        psList *arg1 = (psList *) 0 ;
        psListElem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psList_head_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psList_head_get. Expected _p_psList");
            }
        }
        result = (psListElem *) ((arg1)->head);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psListElem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psList_tail_set) {
    {
        psList *arg1 = (psList *) 0 ;
        psListElem *arg2 = (psListElem *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psList_tail_set(self,tail);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psList_tail_set. Expected _p_psList");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psListElem,0) < 0) {
                SWIG_croak("Type error in argument 2 of psList_tail_set. Expected _p_psListElem");
            }
        }
        if (arg1) (arg1)->tail = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psList_tail_get) {
    {
        psList *arg1 = (psList *) 0 ;
        psListElem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psList_tail_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psList_tail_get. Expected _p_psList");
            }
        }
        result = (psListElem *) ((arg1)->tail);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psListElem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psList_iterators_set) {
    {
        psList *arg1 = (psList *) 0 ;
        psArray *arg2 = (psArray *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psList_iterators_set(self,iterators);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psList_iterators_set. Expected _p_psList");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 2 of psList_iterators_set. Expected _p_psArray");
            }
        }
        if (arg1) (arg1)->iterators = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psList_iterators_get) {
    {
        psList *arg1 = (psList *) 0 ;
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psList_iterators_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psList_iterators_get. Expected _p_psList");
            }
        }
        result = (psArray *) ((arg1)->iterators);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psList_lock_set) {
    {
        psList *arg1 = (psList *) 0 ;
        pthread_mutex_t arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psList_lock_set(self,lock);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psList_lock_set. Expected _p_psList");
            }
        }
        {
            pthread_mutex_t * argp;
            if (SWIG_ConvertPtr(ST(1),(void **) &argp, SWIGTYPE_p_pthread_mutex_t,0) < 0) {
                SWIG_croak("Type error in argument 2 of psList_lock_set. Expected _p_pthread_mutex_t");
            }
            arg2 = *argp;
        }
        if (arg1) (arg1)->lock = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psList_lock_get) {
    {
        psList *arg1 = (psList *) 0 ;
        pthread_mutex_t result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psList_lock_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psList_lock_get. Expected _p_psList");
            }
        }
        result =  ((arg1)->lock);
        
        {
            pthread_mutex_t * resultobj = (pthread_mutex_t *) malloc(sizeof(pthread_mutex_t));
            memmove(resultobj, &result, sizeof(pthread_mutex_t));
            ST(argvi) = sv_newmortal();
            SWIG_MakePtr(ST(argvi++), (void *) resultobj, SWIGTYPE_p_pthread_mutex_t, 0|SWIG_OWNER);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psList) {
    {
        psList *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psList();");
        }
        result = (psList *)(psList *) calloc(1, sizeof(psList));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psList, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psList) {
    {
        psList *arg1 = (psList *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psList(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psList. Expected _p_psList");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListIterator_list_set) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        psList *arg2 = (psList *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListIterator_list_set(self,list);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListIterator_list_set. Expected _p_psListIterator");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 2 of psListIterator_list_set. Expected _p_psList");
            }
        }
        if (arg1) (arg1)->list = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListIterator_list_get) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        psList *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psListIterator_list_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListIterator_list_get. Expected _p_psListIterator");
            }
        }
        result = (psList *) ((arg1)->list);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psList, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListIterator_cursor_set) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        psListElem *arg2 = (psListElem *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListIterator_cursor_set(self,cursor);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListIterator_cursor_set. Expected _p_psListIterator");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psListElem,0) < 0) {
                SWIG_croak("Type error in argument 2 of psListIterator_cursor_set. Expected _p_psListElem");
            }
        }
        if (arg1) (arg1)->cursor = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListIterator_cursor_get) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        psListElem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psListIterator_cursor_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListIterator_cursor_get. Expected _p_psListIterator");
            }
        }
        result = (psListElem *) ((arg1)->cursor);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psListElem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListIterator_index_set) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListIterator_index_set(self,index);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListIterator_index_set. Expected _p_psListIterator");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->index = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListIterator_index_get) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psListIterator_index_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListIterator_index_get. Expected _p_psListIterator");
            }
        }
        result = (int) ((arg1)->index);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListIterator_offEnd_set) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        bool arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListIterator_offEnd_set(self,offEnd);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListIterator_offEnd_set. Expected _p_psListIterator");
            }
        }
        arg2 = (bool) SvIV(ST(1));
        if (arg1) (arg1)->offEnd = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListIterator_offEnd_get) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        bool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psListIterator_offEnd_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListIterator_offEnd_get. Expected _p_psListIterator");
            }
        }
        result = (bool) ((arg1)->offEnd);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListIterator_mutable_set) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        bool arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListIterator_mutable_set(self,mutable);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListIterator_mutable_set. Expected _p_psListIterator");
            }
        }
        arg2 = (bool) SvIV(ST(1));
        if (arg1) (arg1)->mutable = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListIterator_mutable_get) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        bool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psListIterator_mutable_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListIterator_mutable_get. Expected _p_psListIterator");
            }
        }
        result = (bool) ((arg1)->mutable);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psListIterator) {
    {
        psListIterator *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psListIterator();");
        }
        result = (psListIterator *)(psListIterator *) calloc(1, sizeof(psListIterator));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psListIterator, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psListIterator) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psListIterator(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psListIterator. Expected _p_psListIterator");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListAlloc) {
    {
        psPtr arg1 = (psPtr) 0 ;
        psList *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psListAlloc(data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListAlloc. Expected _psPtr");
            }
        }
        result = (psList *)psListAlloc(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psList, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListIteratorAlloc) {
    {
        psList *arg1 = (psList *) 0 ;
        int arg2 ;
        bool arg3 ;
        psListIterator *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psListIteratorAlloc(list,location,mutable);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListIteratorAlloc. Expected _p_psList");
            }
        }
        arg2 = (int) SvIV(ST(1));
        arg3 = (bool) SvIV(ST(2));
        result = (psListIterator *)psListIteratorAlloc(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psListIterator, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListIteratorSet) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        int arg2 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListIteratorSet(iterator,location);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListIteratorSet. Expected _p_psListIterator");
            }
        }
        arg2 = (int) SvIV(ST(1));
        result = (psBool)psListIteratorSet(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListAdd) {
    {
        psList *arg1 = (psList *) 0 ;
        psS32 arg2 ;
        psPtr arg3 = (psPtr) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psListAdd(list,location,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListAdd. Expected _p_psList");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, 0,0) < 0) {
                SWIG_croak("Type error in argument 3 of psListAdd. Expected _psPtr");
            }
        }
        result = (psBool)psListAdd(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListAddAfter) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        psPtr arg2 = (psPtr) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListAddAfter(list,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListAddAfter. Expected _p_psListIterator");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psListAddAfter. Expected _psPtr");
            }
        }
        result = (psBool)psListAddAfter(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListAddBefore) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        psPtr arg2 = (psPtr) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListAddBefore(list,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListAddBefore. Expected _p_psListIterator");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psListAddBefore. Expected _psPtr");
            }
        }
        result = (psBool)psListAddBefore(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListRemove) {
    {
        psList *arg1 = (psList *) 0 ;
        psS32 arg2 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListRemove(list,location);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListRemove. Expected _p_psList");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        result = (psBool)psListRemove(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListRemoveData) {
    {
        psList *arg1 = (psList *) 0 ;
        psPtr arg2 = (psPtr) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListRemoveData(list,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListRemoveData. Expected _p_psList");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psListRemoveData. Expected _psPtr");
            }
        }
        result = (psBool)psListRemoveData(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListGet) {
    {
        psList *arg1 = (psList *) 0 ;
        psS32 arg2 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListGet(list,location);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListGet. Expected _p_psList");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        result = (psPtr)psListGet(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListGetAndIncrement) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psListGetAndIncrement(iterator);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListGetAndIncrement. Expected _p_psListIterator");
            }
        }
        result = (psPtr)psListGetAndIncrement(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListGetAndDecrement) {
    {
        psListIterator *arg1 = (psListIterator *) 0 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psListGetAndDecrement(iterator);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListGetAndDecrement. Expected _p_psListIterator");
            }
        }
        result = (psPtr)psListGetAndDecrement(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListToArray) {
    {
        psList *arg1 = (psList *) 0 ;
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psListToArray(dlist);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListToArray. Expected _p_psList");
            }
        }
        result = (psArray *)psListToArray(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psArrayToList) {
    {
        psArray *arg1 = (psArray *) 0 ;
        psList *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psArrayToList(arr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 1 of psArrayToList. Expected _p_psArray");
            }
        }
        result = (psList *)psArrayToList(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psList, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psListSort) {
    {
        psList *arg1 = (psList *) 0 ;
        psComparePtrFcn arg2 = (psComparePtrFcn) 0 ;
        psList *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psListSort(list,compare);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 1 of psListSort. Expected _p_psList");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_psComparePtrFcn,0) < 0) {
                SWIG_croak("Type error in argument 2 of psListSort. Expected _psComparePtrFcn");
            }
        }
        result = (psList *)psListSort(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psList, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_type_set) {
    {
        psScalar *arg1 = (psScalar *) 0 ;
        psType *arg2 = (psType *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psScalar_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_type_set. Expected _p_psScalar");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psType,0) < 0) {
                SWIG_croak("Type error in argument 2 of psScalar_type_set. Expected _p_psType");
            }
        }
        if (arg1) (arg1)->type = *arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_type_get) {
    {
        psScalar *arg1 = (psScalar *) 0 ;
        psType *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalar_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_type_get. Expected _p_psScalar");
            }
        }
        result = (psType *)& ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psType, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_get) {
    {
        psScalar *arg1 = (psScalar *) 0 ;
        psScalar_data *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalar_data_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_get. Expected _p_psScalar");
            }
        }
        result = (psScalar_data *)& ((arg1)->data);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psScalar_data, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psScalar) {
    {
        psScalar *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psScalar();");
        }
        result = (psScalar *)(psScalar *) calloc(1, sizeof(psScalar));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psScalar, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psScalar) {
    {
        psScalar *arg1 = (psScalar *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psScalar(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psScalar. Expected _p_psScalar");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_U8_set) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psU8 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psScalar_data_U8_set(self,U8);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_U8_set. Expected _p_psScalar_data");
            }
        }
        arg2 = (psU8) SvUV(ST(1));
        if (arg1) (arg1)->U8 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_U8_get) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psU8 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalar_data_U8_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_U8_get. Expected _p_psScalar_data");
            }
        }
        result = (psU8) ((arg1)->U8);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_U16_set) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psU16 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psScalar_data_U16_set(self,U16);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_U16_set. Expected _p_psScalar_data");
            }
        }
        arg2 = (psU16) SvUV(ST(1));
        if (arg1) (arg1)->U16 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_U16_get) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psU16 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalar_data_U16_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_U16_get. Expected _p_psScalar_data");
            }
        }
        result = (psU16) ((arg1)->U16);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_U32_set) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psU32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psScalar_data_U32_set(self,U32);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_U32_set. Expected _p_psScalar_data");
            }
        }
        arg2 = (psU32) SvUV(ST(1));
        if (arg1) (arg1)->U32 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_U32_get) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psU32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalar_data_U32_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_U32_get. Expected _p_psScalar_data");
            }
        }
        result = (psU32) ((arg1)->U32);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_U64_set) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psU64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psScalar_data_U64_set(self,U64);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_U64_set. Expected _p_psScalar_data");
            }
        }
        arg2 = (psU64) SvUV(ST(1));
        if (arg1) (arg1)->U64 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_U64_get) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psU64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalar_data_U64_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_U64_get. Expected _p_psScalar_data");
            }
        }
        result = (psU64) ((arg1)->U64);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_S8_set) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psS8 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psScalar_data_S8_set(self,S8);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_S8_set. Expected _p_psScalar_data");
            }
        }
        arg2 = (psS8) *SvPV(ST(1),PL_na);
        if (arg1) (arg1)->S8 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_S8_get) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psS8 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalar_data_S8_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_S8_get. Expected _p_psScalar_data");
            }
        }
        result = (psS8) ((arg1)->S8);
        
        ST(argvi) = sv_newmortal();
        sv_setpvn((SV*)ST(argvi++), &result, 1);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_S16_set) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psS16 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psScalar_data_S16_set(self,S16);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_S16_set. Expected _p_psScalar_data");
            }
        }
        arg2 = (psS16) SvIV(ST(1));
        if (arg1) (arg1)->S16 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_S16_get) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psS16 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalar_data_S16_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_S16_get. Expected _p_psScalar_data");
            }
        }
        result = (psS16) ((arg1)->S16);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_S32_set) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psScalar_data_S32_set(self,S32);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_S32_set. Expected _p_psScalar_data");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->S32 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_S32_get) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalar_data_S32_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_S32_get. Expected _p_psScalar_data");
            }
        }
        result = (psS32) ((arg1)->S32);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_S64_set) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psS64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psScalar_data_S64_set(self,S64);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_S64_set. Expected _p_psScalar_data");
            }
        }
        arg2 = (psS64) strtoll(SvPV(ST(1), PL_na), 0, 0);
        if (arg1) (arg1)->S64 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_S64_get) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psS64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalar_data_S64_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_S64_get. Expected _p_psScalar_data");
            }
        }
        result = (psS64) ((arg1)->S64);
        
        {
            char temp[256];
            sprintf(temp,"%lld", result);
            ST(argvi) = sv_newmortal();
            sv_setpv((SV*)ST(argvi++), temp);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_F32_set) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psF32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psScalar_data_F32_set(self,F32);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_F32_set. Expected _p_psScalar_data");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        if (arg1) (arg1)->F32 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_F32_get) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalar_data_F32_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_F32_get. Expected _p_psScalar_data");
            }
        }
        result = (psF32) ((arg1)->F32);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_F64_set) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psScalar_data_F64_set(self,F64);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_F64_set. Expected _p_psScalar_data");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->F64 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_F64_get) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalar_data_F64_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_F64_get. Expected _p_psScalar_data");
            }
        }
        result = (psF64) ((arg1)->F64);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_C32_set) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psC32 *arg2 = (psC32 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psScalar_data_C32_set(self,C32);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_C32_set. Expected _p_psScalar_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psC32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psScalar_data_C32_set. Expected _p_psC32");
            }
        }
        if (arg1) (arg1)->C32 = *arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_C32_get) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psC32 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalar_data_C32_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_C32_get. Expected _p_psScalar_data");
            }
        }
        result = (psC32 *)& ((arg1)->C32);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psC32, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_C64_set) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psC64 *arg2 = (psC64 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psScalar_data_C64_set(self,C64);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_C64_set. Expected _p_psScalar_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psScalar_data_C64_set. Expected _p_psC64");
            }
        }
        if (arg1) (arg1)->C64 = *arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalar_data_C64_get) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        psC64 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalar_data_C64_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalar_data_C64_get. Expected _p_psScalar_data");
            }
        }
        result = (psC64 *)& ((arg1)->C64);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psC64, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psScalar_data) {
    {
        psScalar_data *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psScalar_data();");
        }
        result = (psScalar_data *)(psScalar_data *) calloc(1, sizeof(psScalar_data));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psScalar_data, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psScalar_data) {
    {
        psScalar_data *arg1 = (psScalar_data *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psScalar_data(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psScalar_data. Expected _p_psScalar_data");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalarAlloc) {
    {
        psC64 arg1 ;
        int arg2 ;
        psScalar *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psScalarAlloc(value,dataType);");
        }
        {
            psC64 * argp;
            if (SWIG_ConvertPtr(ST(0),(void **) &argp, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalarAlloc. Expected _p_psC64");
            }
            arg1 = *argp;
        }
        arg2 = (int) SvIV(ST(1));
        result = (psScalar *)psScalarAlloc(arg1,(psElemType )arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psScalar, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psScalarCopy) {
    {
        psScalar *arg1 = (psScalar *) 0 ;
        psScalar *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psScalarCopy(scalar);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psScalar,0) < 0) {
                SWIG_croak("Type error in argument 1 of psScalarCopy. Expected _p_psScalar");
            }
        }
        result = (psScalar *)psScalarCopy(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psScalar, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_type_set) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psType *arg2 = (psType *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_type_set. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psType,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVector_type_set. Expected _p_psType");
            }
        }
        if (arg1) (arg1)->type = *arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_type_get) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psType *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_type_get. Expected _p_psVector");
            }
        }
        result = (psType *)& ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psType, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_nalloc_set) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psU32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_nalloc_set(self,nalloc);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_nalloc_set. Expected _p_psVector");
            }
        }
        arg2 = (psU32) SvUV(ST(1));
        if (arg1) (arg1)->nalloc = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_nalloc_get) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psU32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_nalloc_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_nalloc_get. Expected _p_psVector");
            }
        }
        result = (psU32) ((arg1)->nalloc);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_n_set) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psU32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_n_set(self,n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_n_set. Expected _p_psVector");
            }
        }
        arg2 = (psU32) SvUV(ST(1));
        if (arg1) (arg1)->n = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_n_get) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psU32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_n_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_n_get. Expected _p_psVector");
            }
        }
        result = (psU32) ((arg1)->n);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_get) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psVector_data *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_data_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_get. Expected _p_psVector");
            }
        }
        result = (psVector_data *)& ((arg1)->data);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector_data, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psVector) {
    {
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psVector();");
        }
        result = (psVector *)(psVector *) calloc(1, sizeof(psVector));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psVector) {
    {
        psVector *arg1 = (psVector *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psVector(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psVector. Expected _p_psVector");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_U8_set) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psU8 *arg2 = (psU8 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_data_U8_set(self,U8);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_U8_set. Expected _p_psVector_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psU8,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVector_data_U8_set. Expected _p_psU8");
            }
        }
        if (arg1) (arg1)->U8 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_U8_get) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psU8 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_data_U8_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_U8_get. Expected _p_psVector_data");
            }
        }
        result = (psU8 *) ((arg1)->U8);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psU8, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_U16_set) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psU16 *arg2 = (psU16 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_data_U16_set(self,U16);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_U16_set. Expected _p_psVector_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psU16,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVector_data_U16_set. Expected _p_psU16");
            }
        }
        if (arg1) (arg1)->U16 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_U16_get) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psU16 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_data_U16_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_U16_get. Expected _p_psVector_data");
            }
        }
        result = (psU16 *) ((arg1)->U16);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psU16, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_U32_set) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psU32 *arg2 = (psU32 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_data_U32_set(self,U32);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_U32_set. Expected _p_psVector_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psU32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVector_data_U32_set. Expected _p_psU32");
            }
        }
        if (arg1) (arg1)->U32 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_U32_get) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psU32 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_data_U32_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_U32_get. Expected _p_psVector_data");
            }
        }
        result = (psU32 *) ((arg1)->U32);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psU32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_U64_set) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psU64 *arg2 = (psU64 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_data_U64_set(self,U64);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_U64_set. Expected _p_psVector_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psU64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVector_data_U64_set. Expected _p_psU64");
            }
        }
        if (arg1) (arg1)->U64 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_U64_get) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psU64 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_data_U64_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_U64_get. Expected _p_psVector_data");
            }
        }
        result = (psU64 *) ((arg1)->U64);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psU64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_S8_set) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psS8 *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_data_S8_set(self,S8);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_S8_set. Expected _p_psVector_data");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (psS8 *) SvPV(ST(1), PL_na);
        {
            if (arg1->S8) free((char*)arg1->S8);
            if (arg2) {
                arg1->S8 = (psS8 *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->S8,arg2);
            } else {
                arg1->S8 = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_S8_get) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psS8 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_data_S8_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_S8_get. Expected _p_psVector_data");
            }
        }
        result = (psS8 *) ((arg1)->S8);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_S16_set) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psS16 *arg2 = (psS16 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_data_S16_set(self,S16);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_S16_set. Expected _p_psVector_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psS16,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVector_data_S16_set. Expected _p_psS16");
            }
        }
        if (arg1) (arg1)->S16 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_S16_get) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psS16 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_data_S16_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_S16_get. Expected _p_psVector_data");
            }
        }
        result = (psS16 *) ((arg1)->S16);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psS16, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_S32_set) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psS32 *arg2 = (psS32 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_data_S32_set(self,S32);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_S32_set. Expected _p_psVector_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psS32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVector_data_S32_set. Expected _p_psS32");
            }
        }
        if (arg1) (arg1)->S32 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_S32_get) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psS32 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_data_S32_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_S32_get. Expected _p_psVector_data");
            }
        }
        result = (psS32 *) ((arg1)->S32);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psS32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_S64_set) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psS64 *arg2 = (psS64 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_data_S64_set(self,S64);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_S64_set. Expected _p_psVector_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psS64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVector_data_S64_set. Expected _p_psS64");
            }
        }
        if (arg1) (arg1)->S64 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_S64_get) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psS64 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_data_S64_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_S64_get. Expected _p_psVector_data");
            }
        }
        result = (psS64 *) ((arg1)->S64);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psS64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_F32_set) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psF32 *arg2 = (psF32 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_data_F32_set(self,F32);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_F32_set. Expected _p_psVector_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psF32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVector_data_F32_set. Expected _p_psF32");
            }
        }
        if (arg1) (arg1)->F32 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_F32_get) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psF32 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_data_F32_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_F32_get. Expected _p_psVector_data");
            }
        }
        result = (psF32 *) ((arg1)->F32);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psF32, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_F64_set) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psF64 *arg2 = (psF64 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_data_F64_set(self,F64);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_F64_set. Expected _p_psVector_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psF64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVector_data_F64_set. Expected _p_psF64");
            }
        }
        if (arg1) (arg1)->F64 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_F64_get) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psF64 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_data_F64_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_F64_get. Expected _p_psVector_data");
            }
        }
        result = (psF64 *) ((arg1)->F64);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psF64, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_C32_set) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psC32 *arg2 = (psC32 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_data_C32_set(self,C32);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_C32_set. Expected _p_psVector_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psC32,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVector_data_C32_set. Expected _p_psC32");
            }
        }
        if (arg1) (arg1)->C32 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_C32_get) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psC32 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_data_C32_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_C32_get. Expected _p_psVector_data");
            }
        }
        result = (psC32 *) ((arg1)->C32);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psC32, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_C64_set) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psC64 *arg2 = (psC64 *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVector_data_C64_set(self,C64);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_C64_set. Expected _p_psVector_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psC64,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVector_data_C64_set. Expected _p_psC64");
            }
        }
        if (arg1) (arg1)->C64 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVector_data_C64_get) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        psC64 *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psVector_data_C64_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVector_data_C64_get. Expected _p_psVector_data");
            }
        }
        result = (psC64 *) ((arg1)->C64);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psC64, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psVector_data) {
    {
        psVector_data *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psVector_data();");
        }
        result = (psVector_data *)(psVector_data *) calloc(1, sizeof(psVector_data));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector_data, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psVector_data) {
    {
        psVector_data *arg1 = (psVector_data *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psVector_data(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psVector_data. Expected _p_psVector_data");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorAlloc) {
    {
        psU32 arg1 ;
        int arg2 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVectorAlloc(nalloc,dataType);");
        }
        arg1 = (psU32) SvUV(ST(0));
        arg2 = (int) SvIV(ST(1));
        result = (psVector *)psVectorAlloc(arg1,(psElemType )arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorRealloc) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psU32 arg2 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVectorRealloc(psVec,nalloc);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorRealloc. Expected _p_psVector");
            }
        }
        arg2 = (psU32) SvUV(ST(1));
        result = (psVector *)psVectorRealloc(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorRecycle) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psU32 arg2 ;
        int arg3 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psVectorRecycle(psVec,nalloc,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorRecycle. Expected _p_psVector");
            }
        }
        arg2 = (psU32) SvUV(ST(1));
        arg3 = (int) SvIV(ST(2));
        result = (psVector *)psVectorRecycle(arg1,arg2,(psElemType )arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorCopy) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        int arg3 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psVectorCopy(out,in,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorCopy. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVectorCopy. Expected _p_psVector");
            }
        }
        arg3 = (int) SvIV(ST(2));
        result = (psVector *)psVectorCopy(arg1,(psVector const *)arg2,(psElemType )arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorSort) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVectorSort(outVector,inVector);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorSort. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVectorSort. Expected _p_psVector");
            }
        }
        result = (psVector *)psVectorSort(arg1,(psVector const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorSortIndex) {
    {
        psVector *arg1 = (psVector *) 0 ;
        psVector *arg2 = (psVector *) 0 ;
        psVector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVectorSortIndex(outVector,inVector);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorSortIndex. Expected _p_psVector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 2 of psVectorSortIndex. Expected _p_psVector");
            }
        }
        result = (psVector *)psVectorSortIndex(arg1,(psVector const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psVector, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psVectorToString) {
    {
        psVector *arg1 = (psVector *) 0 ;
        int arg2 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psVectorToString(vector,maxLength);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of psVectorToString. Expected _p_psVector");
            }
        }
        arg2 = (int) SvIV(ST(1));
        result = (char *)psVectorToString(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psVectorGetElementF64) {
    {
        psVector *arg1 = (psVector *) 0 ;
        int arg2 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: p_psVectorGetElementF64(vector,position);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psVectorGetElementF64. Expected _p_psVector");
            }
        }
        arg2 = (int) SvIV(ST(1));
        result = (psF64)p_psVectorGetElementF64(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommit_latitude_get) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommit_latitude_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommit_latitude_get. Expected _p_psGrommit");
            }
        }
        result = (double)(double) ((arg1)->latitude);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommit_sinLat_get) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommit_sinLat_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommit_sinLat_get. Expected _p_psGrommit");
            }
        }
        result = (double)(double) ((arg1)->sinLat);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommit_cosLat_get) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommit_cosLat_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommit_cosLat_get. Expected _p_psGrommit");
            }
        }
        result = (double)(double) ((arg1)->cosLat);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommit_abberationMag_get) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommit_abberationMag_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommit_abberationMag_get. Expected _p_psGrommit");
            }
        }
        result = (double)(double) ((arg1)->abberationMag);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommit_height_get) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommit_height_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommit_height_get. Expected _p_psGrommit");
            }
        }
        result = (double)(double) ((arg1)->height);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommit_temperature_get) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommit_temperature_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommit_temperature_get. Expected _p_psGrommit");
            }
        }
        result = (double)(double) ((arg1)->temperature);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommit_pressure_get) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommit_pressure_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommit_pressure_get. Expected _p_psGrommit");
            }
        }
        result = (double)(double) ((arg1)->pressure);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommit_humidity_get) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommit_humidity_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommit_humidity_get. Expected _p_psGrommit");
            }
        }
        result = (double)(double) ((arg1)->humidity);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommit_wavelength_get) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommit_wavelength_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommit_wavelength_get. Expected _p_psGrommit");
            }
        }
        result = (double)(double) ((arg1)->wavelength);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommit_lapseRate_get) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommit_lapseRate_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommit_lapseRate_get. Expected _p_psGrommit");
            }
        }
        result = (double)(double) ((arg1)->lapseRate);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommit_refractA_get) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommit_refractA_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommit_refractA_get. Expected _p_psGrommit");
            }
        }
        result = (double)(double) ((arg1)->refractA);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommit_refractB_get) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommit_refractB_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommit_refractB_get. Expected _p_psGrommit");
            }
        }
        result = (double)(double) ((arg1)->refractB);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommit_longitudeOffset_get) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommit_longitudeOffset_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommit_longitudeOffset_get. Expected _p_psGrommit");
            }
        }
        result = (double)(double) ((arg1)->longitudeOffset);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommit_siderealTime_get) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommit_siderealTime_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommit_siderealTime_get. Expected _p_psGrommit");
            }
        }
        result = (double)(double) ((arg1)->siderealTime);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psGrommit) {
    {
        psGrommit *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psGrommit();");
        }
        result = (psGrommit *)(psGrommit *) calloc(1, sizeof(psGrommit));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psGrommit, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psGrommit) {
    {
        psGrommit *arg1 = (psGrommit *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psGrommit(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psGrommit. Expected _p_psGrommit");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_nX_set) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFixedPattern_nX_set(self,nX);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_nX_set. Expected _p_psFixedPattern");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nX = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_nX_get) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFixedPattern_nX_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_nX_get. Expected _p_psFixedPattern");
            }
        }
        result = (psS32) ((arg1)->nX);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_nY_set) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFixedPattern_nY_set(self,nY);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_nY_set. Expected _p_psFixedPattern");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->nY = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_nY_get) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFixedPattern_nY_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_nY_get. Expected _p_psFixedPattern");
            }
        }
        result = (psS32) ((arg1)->nY);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_x0_set) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFixedPattern_x0_set(self,x0);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_x0_set. Expected _p_psFixedPattern");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->x0 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_x0_get) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFixedPattern_x0_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_x0_get. Expected _p_psFixedPattern");
            }
        }
        result = (double) ((arg1)->x0);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_y0_set) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFixedPattern_y0_set(self,y0);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_y0_set. Expected _p_psFixedPattern");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->y0 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_y0_get) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFixedPattern_y0_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_y0_get. Expected _p_psFixedPattern");
            }
        }
        result = (double) ((arg1)->y0);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_xScale_set) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFixedPattern_xScale_set(self,xScale);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_xScale_set. Expected _p_psFixedPattern");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->xScale = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_xScale_get) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFixedPattern_xScale_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_xScale_get. Expected _p_psFixedPattern");
            }
        }
        result = (double) ((arg1)->xScale);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_yScale_set) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFixedPattern_yScale_set(self,yScale);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_yScale_set. Expected _p_psFixedPattern");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->yScale = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_yScale_get) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFixedPattern_yScale_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_yScale_get. Expected _p_psFixedPattern");
            }
        }
        result = (double) ((arg1)->yScale);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_p_ps_xRows_set) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFixedPattern_p_ps_xRows_set(self,p_ps_xRows);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_p_ps_xRows_set. Expected _p_psFixedPattern");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->p_ps_xRows = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_p_ps_xRows_get) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFixedPattern_p_ps_xRows_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_p_ps_xRows_get. Expected _p_psFixedPattern");
            }
        }
        result = (psS32) ((arg1)->p_ps_xRows);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_p_ps_xCols_set) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFixedPattern_p_ps_xCols_set(self,p_ps_xCols);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_p_ps_xCols_set. Expected _p_psFixedPattern");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->p_ps_xCols = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_p_ps_xCols_get) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFixedPattern_p_ps_xCols_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_p_ps_xCols_get. Expected _p_psFixedPattern");
            }
        }
        result = (psS32) ((arg1)->p_ps_xCols);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_p_ps_yRows_set) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFixedPattern_p_ps_yRows_set(self,p_ps_yRows);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_p_ps_yRows_set. Expected _p_psFixedPattern");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->p_ps_yRows = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_p_ps_yRows_get) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFixedPattern_p_ps_yRows_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_p_ps_yRows_get. Expected _p_psFixedPattern");
            }
        }
        result = (psS32) ((arg1)->p_ps_yRows);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_p_ps_yCols_set) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFixedPattern_p_ps_yCols_set(self,p_ps_yCols);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_p_ps_yCols_set. Expected _p_psFixedPattern");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->p_ps_yCols = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_p_ps_yCols_get) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFixedPattern_p_ps_yCols_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_p_ps_yCols_get. Expected _p_psFixedPattern");
            }
        }
        result = (psS32) ((arg1)->p_ps_yCols);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_x_set) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        double **arg2 = (double **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFixedPattern_x_set(self,x);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_x_set. Expected _p_psFixedPattern");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_double,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFixedPattern_x_set. Expected _p_p_double");
            }
        }
        if (arg1) (arg1)->x = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_x_get) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        double **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFixedPattern_x_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_x_get. Expected _p_psFixedPattern");
            }
        }
        result = (double **) ((arg1)->x);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_double, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_y_set) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        double **arg2 = (double **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFixedPattern_y_set(self,y);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_y_set. Expected _p_psFixedPattern");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_double,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFixedPattern_y_set. Expected _p_p_double");
            }
        }
        if (arg1) (arg1)->y = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPattern_y_get) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        double **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFixedPattern_y_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFixedPattern_y_get. Expected _p_psFixedPattern");
            }
        }
        result = (double **) ((arg1)->y);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_double, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psFixedPattern) {
    {
        psFixedPattern *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psFixedPattern();");
        }
        result = (psFixedPattern *)(psFixedPattern *) calloc(1, sizeof(psFixedPattern));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psFixedPattern, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psFixedPattern) {
    {
        psFixedPattern *arg1 = (psFixedPattern *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psFixedPattern(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psFixedPattern. Expected _p_psFixedPattern");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadout_col0_get) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psReadout_col0_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of psReadout_col0_get. Expected _p_psReadout");
            }
        }
        result = (psS32)(psS32) ((arg1)->col0);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadout_row0_get) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psReadout_row0_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of psReadout_row0_get. Expected _p_psReadout");
            }
        }
        result = (psS32)(psS32) ((arg1)->row0);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadout_colParity_get) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psReadout_colParity_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of psReadout_colParity_get. Expected _p_psReadout");
            }
        }
        result = (int)(int) ((arg1)->colParity);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadout_rowParity_get) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psReadout_rowParity_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of psReadout_rowParity_get. Expected _p_psReadout");
            }
        }
        result = (int)(int) ((arg1)->rowParity);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadout_colBins_get) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        psU32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psReadout_colBins_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of psReadout_colBins_get. Expected _p_psReadout");
            }
        }
        result = (psU32)(psU32) ((arg1)->colBins);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadout_rowBins_get) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        psU32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psReadout_rowBins_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of psReadout_rowBins_get. Expected _p_psReadout");
            }
        }
        result = (psU32)(psU32) ((arg1)->rowBins);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadout_image_set) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psReadout_image_set(self,image);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of psReadout_image_set. Expected _p_psReadout");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psReadout_image_set. Expected _p_psImage");
            }
        }
        if (arg1) (arg1)->image = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadout_image_get) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psReadout_image_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of psReadout_image_get. Expected _p_psReadout");
            }
        }
        result = (psImage *) ((arg1)->image);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadout_mask_set) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        psImage *arg2 = (psImage *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psReadout_mask_set(self,mask);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of psReadout_mask_set. Expected _p_psReadout");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 2 of psReadout_mask_set. Expected _p_psImage");
            }
        }
        if (arg1) (arg1)->mask = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadout_mask_get) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        psImage *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psReadout_mask_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of psReadout_mask_get. Expected _p_psReadout");
            }
        }
        result = (psImage *) ((arg1)->mask);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psImage, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadout_objects_set) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        psList *arg2 = (psList *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psReadout_objects_set(self,objects);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of psReadout_objects_set. Expected _p_psReadout");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 2 of psReadout_objects_set. Expected _p_psList");
            }
        }
        if (arg1) (arg1)->objects = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadout_objects_get) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        psList *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psReadout_objects_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of psReadout_objects_get. Expected _p_psReadout");
            }
        }
        result = (psList *) ((arg1)->objects);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psList, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadout_metadata_set) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        psMetadata *arg2 = (psMetadata *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psReadout_metadata_set(self,metadata);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of psReadout_metadata_set. Expected _p_psReadout");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 2 of psReadout_metadata_set. Expected _p_psMetadata");
            }
        }
        if (arg1) (arg1)->metadata = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadout_metadata_get) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        psMetadata *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psReadout_metadata_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of psReadout_metadata_get. Expected _p_psReadout");
            }
        }
        result = (psMetadata *) ((arg1)->metadata);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadata, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psReadout) {
    {
        psReadout *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psReadout();");
        }
        result = (psReadout *)(psReadout *) calloc(1, sizeof(psReadout));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psReadout, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psReadout) {
    {
        psReadout *arg1 = (psReadout *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psReadout(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psReadout,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psReadout. Expected _p_psReadout");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_col0_get) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psCell_col0_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_col0_get. Expected _p_psCell");
            }
        }
        result = (psS32)(psS32) ((arg1)->col0);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_row0_get) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psCell_row0_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_row0_get. Expected _p_psCell");
            }
        }
        result = (psS32)(psS32) ((arg1)->row0);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_readouts_set) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psArray *arg2 = (psArray *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCell_readouts_set(self,readouts);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_readouts_set. Expected _p_psCell");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCell_readouts_set. Expected _p_psArray");
            }
        }
        if (arg1) (arg1)->readouts = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_readouts_get) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psCell_readouts_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_readouts_get. Expected _p_psCell");
            }
        }
        result = (psArray *) ((arg1)->readouts);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_metadata_set) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psMetadata *arg2 = (psMetadata *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCell_metadata_set(self,metadata);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_metadata_set. Expected _p_psCell");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCell_metadata_set. Expected _p_psMetadata");
            }
        }
        if (arg1) (arg1)->metadata = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_metadata_get) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psMetadata *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psCell_metadata_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_metadata_get. Expected _p_psCell");
            }
        }
        result = (psMetadata *) ((arg1)->metadata);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadata, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_toChip_set) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psPlaneTransform *arg2 = (psPlaneTransform *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCell_toChip_set(self,toChip);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_toChip_set. Expected _p_psCell");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCell_toChip_set. Expected _p_psPlaneTransform");
            }
        }
        if (arg1) (arg1)->toChip = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_toChip_get) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psPlaneTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psCell_toChip_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_toChip_get. Expected _p_psCell");
            }
        }
        result = (psPlaneTransform *) ((arg1)->toChip);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_fromChip_set) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psPlaneTransform *arg2 = (psPlaneTransform *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCell_fromChip_set(self,fromChip);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_fromChip_set. Expected _p_psCell");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCell_fromChip_set. Expected _p_psPlaneTransform");
            }
        }
        if (arg1) (arg1)->fromChip = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_fromChip_get) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psPlaneTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psCell_fromChip_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_fromChip_get. Expected _p_psCell");
            }
        }
        result = (psPlaneTransform *) ((arg1)->fromChip);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_toFPA_set) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psPlaneTransform *arg2 = (psPlaneTransform *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCell_toFPA_set(self,toFPA);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_toFPA_set. Expected _p_psCell");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCell_toFPA_set. Expected _p_psPlaneTransform");
            }
        }
        if (arg1) (arg1)->toFPA = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_toFPA_get) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psPlaneTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psCell_toFPA_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_toFPA_get. Expected _p_psCell");
            }
        }
        result = (psPlaneTransform *) ((arg1)->toFPA);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_toTP_set) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psPlaneTransform *arg2 = (psPlaneTransform *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCell_toTP_set(self,toTP);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_toTP_set. Expected _p_psCell");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCell_toTP_set. Expected _p_psPlaneTransform");
            }
        }
        if (arg1) (arg1)->toTP = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_toTP_get) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psPlaneTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psCell_toTP_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_toTP_get. Expected _p_psCell");
            }
        }
        result = (psPlaneTransform *) ((arg1)->toTP);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_toSky_set) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psPlaneTransform *arg2 = (psPlaneTransform *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCell_toSky_set(self,toSky);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_toSky_set. Expected _p_psCell");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCell_toSky_set. Expected _p_psPlaneTransform");
            }
        }
        if (arg1) (arg1)->toSky = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_toSky_get) {
    {
        psCell *arg1 = (psCell *) 0 ;
        psPlaneTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psCell_toSky_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_toSky_get. Expected _p_psCell");
            }
        }
        result = (psPlaneTransform *) ((arg1)->toSky);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_parent_set) {
    {
        psCell *arg1 = (psCell *) 0 ;
        struct psChip *arg2 = (struct psChip *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCell_parent_set(self,parent);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_parent_set. Expected _p_psCell");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCell_parent_set. Expected _p_psChip");
            }
        }
        if (arg1) (arg1)->parent = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCell_parent_get) {
    {
        psCell *arg1 = (psCell *) 0 ;
        struct psChip *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psCell_parent_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCell_parent_get. Expected _p_psCell");
            }
        }
        result = (struct psChip *) ((arg1)->parent);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psChip, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psCell) {
    {
        psCell *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psCell();");
        }
        result = (psCell *)(psCell *) calloc(1, sizeof(psCell));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psCell, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psCell) {
    {
        psCell *arg1 = (psCell *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psCell(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psCell. Expected _p_psCell");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psChip_col0_get) {
    {
        psChip *arg1 = (psChip *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psChip_col0_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 1 of psChip_col0_get. Expected _p_psChip");
            }
        }
        result = (psS32)(psS32) ((arg1)->col0);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psChip_row0_get) {
    {
        psChip *arg1 = (psChip *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psChip_row0_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 1 of psChip_row0_get. Expected _p_psChip");
            }
        }
        result = (psS32)(psS32) ((arg1)->row0);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psChip_cells_set) {
    {
        psChip *arg1 = (psChip *) 0 ;
        psArray *arg2 = (psArray *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psChip_cells_set(self,cells);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 1 of psChip_cells_set. Expected _p_psChip");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 2 of psChip_cells_set. Expected _p_psArray");
            }
        }
        if (arg1) (arg1)->cells = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psChip_cells_get) {
    {
        psChip *arg1 = (psChip *) 0 ;
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psChip_cells_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 1 of psChip_cells_get. Expected _p_psChip");
            }
        }
        result = (psArray *) ((arg1)->cells);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psChip_metadata_set) {
    {
        psChip *arg1 = (psChip *) 0 ;
        psMetadata *arg2 = (psMetadata *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psChip_metadata_set(self,metadata);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 1 of psChip_metadata_set. Expected _p_psChip");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 2 of psChip_metadata_set. Expected _p_psMetadata");
            }
        }
        if (arg1) (arg1)->metadata = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psChip_metadata_get) {
    {
        psChip *arg1 = (psChip *) 0 ;
        psMetadata *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psChip_metadata_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 1 of psChip_metadata_get. Expected _p_psChip");
            }
        }
        result = (psMetadata *) ((arg1)->metadata);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadata, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psChip_toFPA_set) {
    {
        psChip *arg1 = (psChip *) 0 ;
        psPlaneTransform *arg2 = (psPlaneTransform *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psChip_toFPA_set(self,toFPA);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 1 of psChip_toFPA_set. Expected _p_psChip");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 2 of psChip_toFPA_set. Expected _p_psPlaneTransform");
            }
        }
        if (arg1) (arg1)->toFPA = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psChip_toFPA_get) {
    {
        psChip *arg1 = (psChip *) 0 ;
        psPlaneTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psChip_toFPA_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 1 of psChip_toFPA_get. Expected _p_psChip");
            }
        }
        result = (psPlaneTransform *) ((arg1)->toFPA);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psChip_fromFPA_set) {
    {
        psChip *arg1 = (psChip *) 0 ;
        psPlaneTransform *arg2 = (psPlaneTransform *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psChip_fromFPA_set(self,fromFPA);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 1 of psChip_fromFPA_set. Expected _p_psChip");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 2 of psChip_fromFPA_set. Expected _p_psPlaneTransform");
            }
        }
        if (arg1) (arg1)->fromFPA = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psChip_fromFPA_get) {
    {
        psChip *arg1 = (psChip *) 0 ;
        psPlaneTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psChip_fromFPA_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 1 of psChip_fromFPA_get. Expected _p_psChip");
            }
        }
        result = (psPlaneTransform *) ((arg1)->fromFPA);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psChip_parent_set) {
    {
        psChip *arg1 = (psChip *) 0 ;
        struct psFPA *arg2 = (struct psFPA *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psChip_parent_set(self,parent);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 1 of psChip_parent_set. Expected _p_psChip");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 2 of psChip_parent_set. Expected _p_psFPA");
            }
        }
        if (arg1) (arg1)->parent = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psChip_parent_get) {
    {
        psChip *arg1 = (psChip *) 0 ;
        struct psFPA *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psChip_parent_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 1 of psChip_parent_get. Expected _p_psChip");
            }
        }
        result = (struct psFPA *) ((arg1)->parent);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psFPA, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psChip) {
    {
        psChip *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psChip();");
        }
        result = (psChip *)(psChip *) calloc(1, sizeof(psChip));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psChip, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psChip) {
    {
        psChip *arg1 = (psChip *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psChip(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psChip. Expected _p_psChip");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_chips_set) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psArray *arg2 = (psArray *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFPA_chips_set(self,chips);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_chips_set. Expected _p_psFPA");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFPA_chips_set. Expected _p_psArray");
            }
        }
        if (arg1) (arg1)->chips = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_chips_get) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psArray *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFPA_chips_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_chips_get. Expected _p_psFPA");
            }
        }
        result = (psArray *) ((arg1)->chips);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psArray, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_metadata_set) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psMetadata *arg2 = (psMetadata *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFPA_metadata_set(self,metadata);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_metadata_set. Expected _p_psFPA");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFPA_metadata_set. Expected _p_psMetadata");
            }
        }
        if (arg1) (arg1)->metadata = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_metadata_get) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psMetadata *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFPA_metadata_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_metadata_get. Expected _p_psFPA");
            }
        }
        result = (psMetadata *) ((arg1)->metadata);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadata, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_fromTangentPlane_set) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psPlaneDistort *arg2 = (psPlaneDistort *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFPA_fromTangentPlane_set(self,fromTangentPlane);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_fromTangentPlane_set. Expected _p_psFPA");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlaneDistort,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFPA_fromTangentPlane_set. Expected _p_psPlaneDistort");
            }
        }
        if (arg1) (arg1)->fromTangentPlane = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_fromTangentPlane_get) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psPlaneDistort *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFPA_fromTangentPlane_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_fromTangentPlane_get. Expected _p_psFPA");
            }
        }
        result = (psPlaneDistort *) ((arg1)->fromTangentPlane);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneDistort, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_toTangentPlane_set) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psPlaneDistort *arg2 = (psPlaneDistort *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFPA_toTangentPlane_set(self,toTangentPlane);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_toTangentPlane_set. Expected _p_psFPA");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlaneDistort,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFPA_toTangentPlane_set. Expected _p_psPlaneDistort");
            }
        }
        if (arg1) (arg1)->toTangentPlane = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_toTangentPlane_get) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psPlaneDistort *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFPA_toTangentPlane_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_toTangentPlane_get. Expected _p_psFPA");
            }
        }
        result = (psPlaneDistort *) ((arg1)->toTangentPlane);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneDistort, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_pattern_set) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psFixedPattern *arg2 = (psFixedPattern *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFPA_pattern_set(self,pattern);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_pattern_set. Expected _p_psFPA");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psFixedPattern,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFPA_pattern_set. Expected _p_psFixedPattern");
            }
        }
        if (arg1) (arg1)->pattern = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_pattern_get) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psFixedPattern *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFPA_pattern_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_pattern_get. Expected _p_psFPA");
            }
        }
        result = (psFixedPattern *) ((arg1)->pattern);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psFixedPattern, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_exposure_set) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        struct psExposure *arg2 = (struct psExposure *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFPA_exposure_set(self,exposure);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_exposure_set. Expected _p_psFPA");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFPA_exposure_set. Expected _p_psExposure");
            }
        }
        if (arg1) (arg1)->exposure = (struct psExposure const *)arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_exposure_get) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        struct psExposure *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFPA_exposure_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_exposure_get. Expected _p_psFPA");
            }
        }
        result = (struct psExposure *) ((arg1)->exposure);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psExposure, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_grommit_set) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psGrommit *arg2 = (psGrommit *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFPA_grommit_set(self,grommit);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_grommit_set. Expected _p_psFPA");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFPA_grommit_set. Expected _p_psGrommit");
            }
        }
        if (arg1) (arg1)->grommit = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_grommit_get) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psGrommit *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFPA_grommit_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_grommit_get. Expected _p_psFPA");
            }
        }
        result = (psGrommit *) ((arg1)->grommit);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psGrommit, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_colorPlus_set) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psPhotSystem *arg2 = (psPhotSystem *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFPA_colorPlus_set(self,colorPlus);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_colorPlus_set. Expected _p_psFPA");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPhotSystem,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFPA_colorPlus_set. Expected _p_psPhotSystem");
            }
        }
        if (arg1) (arg1)->colorPlus = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_colorPlus_get) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psPhotSystem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFPA_colorPlus_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_colorPlus_get. Expected _p_psFPA");
            }
        }
        result = (psPhotSystem *) ((arg1)->colorPlus);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPhotSystem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_colorMinus_set) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psPhotSystem *arg2 = (psPhotSystem *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFPA_colorMinus_set(self,colorMinus);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_colorMinus_set. Expected _p_psFPA");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPhotSystem,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFPA_colorMinus_set. Expected _p_psPhotSystem");
            }
        }
        if (arg1) (arg1)->colorMinus = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_colorMinus_get) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psPhotSystem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFPA_colorMinus_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_colorMinus_get. Expected _p_psFPA");
            }
        }
        result = (psPhotSystem *) ((arg1)->colorMinus);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPhotSystem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_projection_set) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psProjection *arg2 = (psProjection *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFPA_projection_set(self,projection);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_projection_set. Expected _p_psFPA");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psProjection,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFPA_projection_set. Expected _p_psProjection");
            }
        }
        if (arg1) (arg1)->projection = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_projection_get) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        psProjection *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFPA_projection_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_projection_get. Expected _p_psFPA");
            }
        }
        result = (psProjection *) ((arg1)->projection);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psProjection, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_rmsX_set) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        float arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFPA_rmsX_set(self,rmsX);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_rmsX_set. Expected _p_psFPA");
            }
        }
        arg2 = (float) SvNV(ST(1));
        
        if (arg1) (arg1)->rmsX = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_rmsX_get) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFPA_rmsX_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_rmsX_get. Expected _p_psFPA");
            }
        }
        result = (float) ((arg1)->rmsX);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_rmsY_set) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        float arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFPA_rmsY_set(self,rmsY);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_rmsY_set. Expected _p_psFPA");
            }
        }
        arg2 = (float) SvNV(ST(1));
        
        if (arg1) (arg1)->rmsY = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_rmsY_get) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFPA_rmsY_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_rmsY_get. Expected _p_psFPA");
            }
        }
        result = (float) ((arg1)->rmsY);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_chi2_set) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        float arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFPA_chi2_set(self,chi2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_chi2_set. Expected _p_psFPA");
            }
        }
        arg2 = (float) SvNV(ST(1));
        
        if (arg1) (arg1)->chi2 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPA_chi2_get) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psFPA_chi2_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of psFPA_chi2_get. Expected _p_psFPA");
            }
        }
        result = (float) ((arg1)->chi2);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psFPA) {
    {
        psFPA *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psFPA();");
        }
        result = (psFPA *)(psFPA *) calloc(1, sizeof(psFPA));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psFPA, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psFPA) {
    {
        psFPA *arg1 = (psFPA *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psFPA(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psFPA. Expected _p_psFPA");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psObservatory_name_set) {
    {
        psObservatory *arg1 = (psObservatory *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psObservatory_name_set(self,name);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psObservatory,0) < 0) {
                SWIG_croak("Type error in argument 1 of psObservatory_name_set. Expected _p_psObservatory");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg2) {
                arg1->name = (char const *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->name,arg2);
            } else {
                arg1->name = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psObservatory_name_get) {
    {
        psObservatory *arg1 = (psObservatory *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psObservatory_name_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psObservatory,0) < 0) {
                SWIG_croak("Type error in argument 1 of psObservatory_name_get. Expected _p_psObservatory");
            }
        }
        result = (char *) ((arg1)->name);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psObservatory_latitude_get) {
    {
        psObservatory *arg1 = (psObservatory *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psObservatory_latitude_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psObservatory,0) < 0) {
                SWIG_croak("Type error in argument 1 of psObservatory_latitude_get. Expected _p_psObservatory");
            }
        }
        result = (double)(double) ((arg1)->latitude);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psObservatory_longitude_get) {
    {
        psObservatory *arg1 = (psObservatory *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psObservatory_longitude_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psObservatory,0) < 0) {
                SWIG_croak("Type error in argument 1 of psObservatory_longitude_get. Expected _p_psObservatory");
            }
        }
        result = (double)(double) ((arg1)->longitude);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psObservatory_height_get) {
    {
        psObservatory *arg1 = (psObservatory *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psObservatory_height_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psObservatory,0) < 0) {
                SWIG_croak("Type error in argument 1 of psObservatory_height_get. Expected _p_psObservatory");
            }
        }
        result = (double)(double) ((arg1)->height);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psObservatory_tlr_get) {
    {
        psObservatory *arg1 = (psObservatory *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psObservatory_tlr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psObservatory,0) < 0) {
                SWIG_croak("Type error in argument 1 of psObservatory_tlr_get. Expected _p_psObservatory");
            }
        }
        result = (double)(double) ((arg1)->tlr);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psObservatory) {
    {
        psObservatory *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psObservatory();");
        }
        result = (psObservatory *)(psObservatory *) calloc(1, sizeof(psObservatory));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psObservatory, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psObservatory) {
    {
        psObservatory *arg1 = (psObservatory *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psObservatory(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psObservatory,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psObservatory. Expected _p_psObservatory");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_ra_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_ra_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_ra_get. Expected _p_psExposure");
            }
        }
        result = (double)(double) ((arg1)->ra);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_dec_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_dec_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_dec_get. Expected _p_psExposure");
            }
        }
        result = (double)(double) ((arg1)->dec);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_hourAngle_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_hourAngle_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_hourAngle_get. Expected _p_psExposure");
            }
        }
        result = (double)(double) ((arg1)->hourAngle);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_zenithDistance_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_zenithDistance_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_zenithDistance_get. Expected _p_psExposure");
            }
        }
        result = (double)(double) ((arg1)->zenithDistance);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_azimuth_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_azimuth_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_azimuth_get. Expected _p_psExposure");
            }
        }
        result = (double)(double) ((arg1)->azimuth);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_time_set) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        psTime *arg2 = (psTime *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psExposure_time_set(self,time);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_time_set. Expected _p_psExposure");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 2 of psExposure_time_set. Expected _p_psTime");
            }
        }
        if (arg1) (arg1)->time = (psTime const *)arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_time_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        psTime *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_time_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_time_get. Expected _p_psExposure");
            }
        }
        result = (psTime *) ((arg1)->time);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psTime, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_rotAngle_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_rotAngle_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_rotAngle_get. Expected _p_psExposure");
            }
        }
        result = (float)(float) ((arg1)->rotAngle);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_temperature_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_temperature_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_temperature_get. Expected _p_psExposure");
            }
        }
        result = (float)(float) ((arg1)->temperature);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_pressure_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_pressure_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_pressure_get. Expected _p_psExposure");
            }
        }
        result = (float)(float) ((arg1)->pressure);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_humidity_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_humidity_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_humidity_get. Expected _p_psExposure");
            }
        }
        result = (float)(float) ((arg1)->humidity);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_exposureTime_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_exposureTime_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_exposureTime_get. Expected _p_psExposure");
            }
        }
        result = (float)(float) ((arg1)->exposureTime);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_wavelength_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_wavelength_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_wavelength_get. Expected _p_psExposure");
            }
        }
        result = (float)(float) ((arg1)->wavelength);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_observatory_set) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        psObservatory *arg2 = (psObservatory *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psExposure_observatory_set(self,observatory);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_observatory_set. Expected _p_psExposure");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psObservatory,0) < 0) {
                SWIG_croak("Type error in argument 2 of psExposure_observatory_set. Expected _p_psObservatory");
            }
        }
        if (arg1) (arg1)->observatory = (psObservatory const *)arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_observatory_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        psObservatory *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_observatory_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_observatory_get. Expected _p_psExposure");
            }
        }
        result = (psObservatory *) ((arg1)->observatory);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psObservatory, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_lst_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_lst_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_lst_get. Expected _p_psExposure");
            }
        }
        result = (double)(double) ((arg1)->lst);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_positionAngle_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_positionAngle_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_positionAngle_get. Expected _p_psExposure");
            }
        }
        result = (float)(float) ((arg1)->positionAngle);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_parallacticAngle_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_parallacticAngle_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_parallacticAngle_get. Expected _p_psExposure");
            }
        }
        result = (float)(float) ((arg1)->parallacticAngle);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_airmass_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_airmass_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_airmass_get. Expected _p_psExposure");
            }
        }
        result = (float)(float) ((arg1)->airmass);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_parallacticFactor_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_parallacticFactor_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_parallacticFactor_get. Expected _p_psExposure");
            }
        }
        result = (float)(float) ((arg1)->parallacticFactor);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_cameraName_set) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psExposure_cameraName_set(self,cameraName);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_cameraName_set. Expected _p_psExposure");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg2) {
                arg1->cameraName = (char const *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->cameraName,arg2);
            } else {
                arg1->cameraName = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_cameraName_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_cameraName_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_cameraName_get. Expected _p_psExposure");
            }
        }
        result = (char *) ((arg1)->cameraName);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_telescopeName_set) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psExposure_telescopeName_set(self,telescopeName);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_telescopeName_set. Expected _p_psExposure");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg2) {
                arg1->telescopeName = (char const *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->telescopeName,arg2);
            } else {
                arg1->telescopeName = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposure_telescopeName_get) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psExposure_telescopeName_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psExposure_telescopeName_get. Expected _p_psExposure");
            }
        }
        result = (char *) ((arg1)->telescopeName);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psExposure) {
    {
        psExposure *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psExposure();");
        }
        result = (psExposure *)(psExposure *) calloc(1, sizeof(psExposure));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psExposure, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psExposure) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psExposure(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psExposure. Expected _p_psExposure");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFixedPatternAlloc) {
    {
        double arg1 ;
        double arg2 ;
        double arg3 ;
        double arg4 ;
        psImage *arg5 = (psImage *) 0 ;
        psImage *arg6 = (psImage *) 0 ;
        psFixedPattern *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 6) || (items > 6)) {
            SWIG_croak("Usage: psFixedPatternAlloc(x0,y0,xScale,yScale,x,y);");
        }
        arg1 = (double) SvNV(ST(0));
        
        arg2 = (double) SvNV(ST(1));
        
        arg3 = (double) SvNV(ST(2));
        
        arg4 = (double) SvNV(ST(3));
        
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 5 of psFixedPatternAlloc. Expected _p_psImage");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(5), (void **) &arg6, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 6 of psFixedPatternAlloc. Expected _p_psImage");
            }
        }
        result = (psFixedPattern *)psFixedPatternAlloc(arg1,arg2,arg3,arg4,(psImage const *)arg5,(psImage const *)arg6);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psFixedPattern, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psExposureAlloc) {
    {
        double arg1 ;
        double arg2 ;
        double arg3 ;
        double arg4 ;
        double arg5 ;
        psTime *arg6 = (psTime *) 0 ;
        float arg7 ;
        float arg8 ;
        float arg9 ;
        float arg10 ;
        float arg11 ;
        float arg12 ;
        psObservatory *arg13 = (psObservatory *) 0 ;
        psExposure *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 13) || (items > 13)) {
            SWIG_croak("Usage: psExposureAlloc(ra,dec,hourAngle,zenithDistance,azimuth,time,rotAngle,temperature,pressure,humidity,exposureTime,wavelength,observatory);");
        }
        arg1 = (double) SvNV(ST(0));
        
        arg2 = (double) SvNV(ST(1));
        
        arg3 = (double) SvNV(ST(2));
        
        arg4 = (double) SvNV(ST(3));
        
        arg5 = (double) SvNV(ST(4));
        
        {
            if (SWIG_ConvertPtr(ST(5), (void **) &arg6, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 6 of psExposureAlloc. Expected _p_psTime");
            }
        }
        arg7 = (float) SvNV(ST(6));
        
        arg8 = (float) SvNV(ST(7));
        
        arg9 = (float) SvNV(ST(8));
        
        arg10 = (float) SvNV(ST(9));
        
        arg11 = (float) SvNV(ST(10));
        
        arg12 = (float) SvNV(ST(11));
        
        {
            if (SWIG_ConvertPtr(ST(12), (void **) &arg13, SWIGTYPE_p_psObservatory,0) < 0) {
                SWIG_croak("Type error in argument 13 of psExposureAlloc. Expected _p_psObservatory");
            }
        }
        result = (psExposure *)psExposureAlloc(arg1,arg2,arg3,arg4,arg5,(psTime const *)arg6,arg7,arg8,arg9,arg10,arg11,arg12,(psObservatory const *)arg13);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psExposure, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psObservatoryAlloc) {
    {
        char *arg1 ;
        double arg2 ;
        double arg3 ;
        double arg4 ;
        double arg5 ;
        psObservatory *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psObservatoryAlloc(name,latitude,longitude,height,tlr);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (double) SvNV(ST(1));
        
        arg3 = (double) SvNV(ST(2));
        
        arg4 = (double) SvNV(ST(3));
        
        arg5 = (double) SvNV(ST(4));
        
        result = (psObservatory *)psObservatoryAlloc((char const *)arg1,arg2,arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psObservatory, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psFPAAlloc) {
    {
        psS32 arg1 ;
        psExposure *arg2 = (psExposure *) 0 ;
        psFPA *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psFPAAlloc(nChips,exp);");
        }
        arg1 = (psS32) SvIV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 2 of psFPAAlloc. Expected _p_psExposure");
            }
        }
        result = (psFPA *)psFPAAlloc(arg1,(psExposure const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psFPA, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psChipAlloc) {
    {
        psS32 arg1 ;
        psFPA *arg2 = (psFPA *) 0 ;
        psChip *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psChipAlloc(nCells,parentFPA);");
        }
        arg1 = (psS32) SvIV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 2 of psChipAlloc. Expected _p_psFPA");
            }
        }
        result = (psChip *)psChipAlloc(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psChip, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCellAlloc) {
    {
        psS32 arg1 ;
        psChip *arg2 = (psChip *) 0 ;
        psCell *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCellAlloc(nReadouts,parentChip);");
        }
        arg1 = (psS32) SvIV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCellAlloc. Expected _p_psChip");
            }
        }
        result = (psCell *)psCellAlloc(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psCell, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psReadoutAlloc) {
    {
        psReadout *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: psReadoutAlloc();");
        }
        result = (psReadout *)psReadoutAlloc();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psReadout, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psGrommitAlloc) {
    {
        psExposure *arg1 = (psExposure *) 0 ;
        psGrommit *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psGrommitAlloc(exp);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psExposure,0) < 0) {
                SWIG_croak("Type error in argument 1 of psGrommitAlloc. Expected _p_psExposure");
            }
        }
        result = (psGrommit *)psGrommitAlloc((psExposure const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psGrommit, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCellInFPA) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psFPA *arg2 = (psFPA *) 0 ;
        psCell *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCellInFPA(coord,FPA);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCellInFPA. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCellInFPA. Expected _p_psFPA");
            }
        }
        result = (psCell *)psCellInFPA((psPlane const *)arg1,(psFPA const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psCell, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psChipInFPA) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psFPA *arg2 = (psFPA *) 0 ;
        psChip *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psChipInFPA(coord,FPA);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psChipInFPA. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 2 of psChipInFPA. Expected _p_psFPA");
            }
        }
        result = (psChip *)psChipInFPA((psPlane const *)arg1,(psFPA const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psChip, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCellInChip) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psChip *arg2 = (psChip *) 0 ;
        psCell *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psCellInChip(coord,chip);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCellInChip. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCellInChip. Expected _p_psChip");
            }
        }
        result = (psCell *)psCellInChip((psPlane const *)arg1,(psChip const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psCell, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCoordCellToChip) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psPlane *arg2 = (psPlane *) 0 ;
        psCell *arg3 = (psCell *) 0 ;
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psCoordCellToChip(out,in,cell);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCoordCellToChip. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCoordCellToChip. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 3 of psCoordCellToChip. Expected _p_psCell");
            }
        }
        result = (psPlane *)psCoordCellToChip(arg1,(psPlane const *)arg2,(psCell const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCoordChipToFPA) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psPlane *arg2 = (psPlane *) 0 ;
        psChip *arg3 = (psChip *) 0 ;
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psCoordChipToFPA(out,in,chip);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCoordChipToFPA. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCoordChipToFPA. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 3 of psCoordChipToFPA. Expected _p_psChip");
            }
        }
        result = (psPlane *)psCoordChipToFPA(arg1,(psPlane const *)arg2,(psChip const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCoordFPAToTP) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psPlane *arg2 = (psPlane *) 0 ;
        double arg3 ;
        double arg4 ;
        psFPA *arg5 = (psFPA *) 0 ;
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psCoordFPAToTP(out,in,color,magnitude,fpa);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCoordFPAToTP. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCoordFPAToTP. Expected _p_psPlane");
            }
        }
        arg3 = (double) SvNV(ST(2));
        
        arg4 = (double) SvNV(ST(3));
        
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 5 of psCoordFPAToTP. Expected _p_psFPA");
            }
        }
        result = (psPlane *)psCoordFPAToTP(arg1,(psPlane const *)arg2,arg3,arg4,(psFPA const *)arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCoordTPToSky) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        psPlane *arg2 = (psPlane *) 0 ;
        psGrommit *arg3 = (psGrommit *) 0 ;
        psSphere *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psCoordTPToSky(out,in,grommit);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCoordTPToSky. Expected _p_psSphere");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCoordTPToSky. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 3 of psCoordTPToSky. Expected _p_psGrommit");
            }
        }
        result = (psSphere *)psCoordTPToSky(arg1,(psPlane const *)arg2,(psGrommit const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphere, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCoordCellToFPA) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psPlane *arg2 = (psPlane *) 0 ;
        psCell *arg3 = (psCell *) 0 ;
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psCoordCellToFPA(out,in,cell);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCoordCellToFPA. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCoordCellToFPA. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 3 of psCoordCellToFPA. Expected _p_psCell");
            }
        }
        result = (psPlane *)psCoordCellToFPA(arg1,(psPlane const *)arg2,(psCell const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCoordCellToSky) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        psPlane *arg2 = (psPlane *) 0 ;
        double arg3 ;
        double arg4 ;
        psCell *arg5 = (psCell *) 0 ;
        psSphere *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psCoordCellToSky(out,in,color,magnitude,cell);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCoordCellToSky. Expected _p_psSphere");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCoordCellToSky. Expected _p_psPlane");
            }
        }
        arg3 = (double) SvNV(ST(2));
        
        arg4 = (double) SvNV(ST(3));
        
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 5 of psCoordCellToSky. Expected _p_psCell");
            }
        }
        result = (psSphere *)psCoordCellToSky(arg1,(psPlane const *)arg2,arg3,arg4,(psCell const *)arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphere, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCoordCellToSkyQuick) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        psPlane *arg2 = (psPlane *) 0 ;
        psCell *arg3 = (psCell *) 0 ;
        psSphere *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psCoordCellToSkyQuick(out,in,cell);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCoordCellToSkyQuick. Expected _p_psSphere");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCoordCellToSkyQuick. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 3 of psCoordCellToSkyQuick. Expected _p_psCell");
            }
        }
        result = (psSphere *)psCoordCellToSkyQuick(arg1,(psPlane const *)arg2,(psCell const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphere, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCoordSkyToTP) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psSphere *arg2 = (psSphere *) 0 ;
        psGrommit *arg3 = (psGrommit *) 0 ;
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psCoordSkyToTP(out,in,grommit);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCoordSkyToTP. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCoordSkyToTP. Expected _p_psSphere");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psGrommit,0) < 0) {
                SWIG_croak("Type error in argument 3 of psCoordSkyToTP. Expected _p_psGrommit");
            }
        }
        result = (psPlane *)psCoordSkyToTP(arg1,(psSphere const *)arg2,(psGrommit const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCoordTPToFPA) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psPlane *arg2 = (psPlane *) 0 ;
        double arg3 ;
        double arg4 ;
        psFPA *arg5 = (psFPA *) 0 ;
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psCoordTPToFPA(out,in,color,magnitude,fpa);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCoordTPToFPA. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCoordTPToFPA. Expected _p_psPlane");
            }
        }
        arg3 = (double) SvNV(ST(2));
        
        arg4 = (double) SvNV(ST(3));
        
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psFPA,0) < 0) {
                SWIG_croak("Type error in argument 5 of psCoordTPToFPA. Expected _p_psFPA");
            }
        }
        result = (psPlane *)psCoordTPToFPA(arg1,(psPlane const *)arg2,arg3,arg4,(psFPA const *)arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCoordFPAToChip) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psPlane *arg2 = (psPlane *) 0 ;
        psChip *arg3 = (psChip *) 0 ;
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psCoordFPAToChip(out,in,chip);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCoordFPAToChip. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCoordFPAToChip. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psChip,0) < 0) {
                SWIG_croak("Type error in argument 3 of psCoordFPAToChip. Expected _p_psChip");
            }
        }
        result = (psPlane *)psCoordFPAToChip(arg1,(psPlane const *)arg2,(psChip const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCoordChipToCell) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psPlane *arg2 = (psPlane *) 0 ;
        psCell *arg3 = (psCell *) 0 ;
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psCoordChipToCell(out,in,cell);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCoordChipToCell. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCoordChipToCell. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 3 of psCoordChipToCell. Expected _p_psCell");
            }
        }
        result = (psPlane *)psCoordChipToCell(arg1,(psPlane const *)arg2,(psCell const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCoordSkyToCell) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psSphere *arg2 = (psSphere *) 0 ;
        double arg3 ;
        double arg4 ;
        psCell *arg5 = (psCell *) 0 ;
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psCoordSkyToCell(out,in,color,magnitude,cell);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCoordSkyToCell. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCoordSkyToCell. Expected _p_psSphere");
            }
        }
        arg3 = (double) SvNV(ST(2));
        
        arg4 = (double) SvNV(ST(3));
        
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 5 of psCoordSkyToCell. Expected _p_psCell");
            }
        }
        result = (psPlane *)psCoordSkyToCell(arg1,(psSphere const *)arg2,arg3,arg4,(psCell const *)arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psCoordSkyToCellQuick) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psSphere *arg2 = (psSphere *) 0 ;
        psCell *arg3 = (psCell *) 0 ;
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psCoordSkyToCellQuick(out,in,cell);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psCoordSkyToCellQuick. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 2 of psCoordSkyToCellQuick. Expected _p_psSphere");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psCell,0) < 0) {
                SWIG_croak("Type error in argument 3 of psCoordSkyToCellQuick. Expected _p_psCell");
            }
        }
        result = (psPlane *)psCoordSkyToCellQuick(arg1,(psSphere const *)arg2,(psCell const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlane_x_set) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPlane_x_set(self,x);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlane_x_set. Expected _p_psPlane");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->x = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlane_x_get) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPlane_x_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlane_x_get. Expected _p_psPlane");
            }
        }
        result = (double) ((arg1)->x);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlane_y_set) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPlane_y_set(self,y);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlane_y_set. Expected _p_psPlane");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->y = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlane_y_get) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPlane_y_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlane_y_get. Expected _p_psPlane");
            }
        }
        result = (double) ((arg1)->y);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlane_xErr_set) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPlane_xErr_set(self,xErr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlane_xErr_set. Expected _p_psPlane");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->xErr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlane_xErr_get) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPlane_xErr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlane_xErr_get. Expected _p_psPlane");
            }
        }
        result = (double) ((arg1)->xErr);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlane_yErr_set) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPlane_yErr_set(self,yErr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlane_yErr_set. Expected _p_psPlane");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->yErr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlane_yErr_get) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPlane_yErr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlane_yErr_get. Expected _p_psPlane");
            }
        }
        result = (double) ((arg1)->yErr);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psPlane) {
    {
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psPlane();");
        }
        result = (psPlane *)(psPlane *) calloc(1, sizeof(psPlane));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psPlane) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psPlane(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psPlane. Expected _p_psPlane");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphere_r_set) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSphere_r_set(self,r);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphere_r_set. Expected _p_psSphere");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->r = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphere_r_get) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSphere_r_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphere_r_get. Expected _p_psSphere");
            }
        }
        result = (double) ((arg1)->r);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphere_d_set) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSphere_d_set(self,d);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphere_d_set. Expected _p_psSphere");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->d = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphere_d_get) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSphere_d_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphere_d_get. Expected _p_psSphere");
            }
        }
        result = (double) ((arg1)->d);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphere_rErr_set) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSphere_rErr_set(self,rErr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphere_rErr_set. Expected _p_psSphere");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->rErr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphere_rErr_get) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSphere_rErr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphere_rErr_get. Expected _p_psSphere");
            }
        }
        result = (double) ((arg1)->rErr);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphere_dErr_set) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSphere_dErr_set(self,dErr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphere_dErr_set. Expected _p_psSphere");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->dErr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphere_dErr_get) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSphere_dErr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphere_dErr_get. Expected _p_psSphere");
            }
        }
        result = (double) ((arg1)->dErr);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psSphere) {
    {
        psSphere *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psSphere();");
        }
        result = (psSphere *)(psSphere *) calloc(1, sizeof(psSphere));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphere, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psSphere) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psSphere(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psSphere. Expected _p_psSphere");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneTransform_x_set) {
    {
        psPlaneTransform *arg1 = (psPlaneTransform *) 0 ;
        psDPolynomial2D *arg2 = (psDPolynomial2D *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPlaneTransform_x_set(self,x);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlaneTransform_x_set. Expected _p_psPlaneTransform");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPlaneTransform_x_set. Expected _p_psDPolynomial2D");
            }
        }
        if (arg1) (arg1)->x = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneTransform_x_get) {
    {
        psPlaneTransform *arg1 = (psPlaneTransform *) 0 ;
        psDPolynomial2D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPlaneTransform_x_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlaneTransform_x_get. Expected _p_psPlaneTransform");
            }
        }
        result = (psDPolynomial2D *) ((arg1)->x);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psDPolynomial2D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneTransform_y_set) {
    {
        psPlaneTransform *arg1 = (psPlaneTransform *) 0 ;
        psDPolynomial2D *arg2 = (psDPolynomial2D *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPlaneTransform_y_set(self,y);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlaneTransform_y_set. Expected _p_psPlaneTransform");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psDPolynomial2D,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPlaneTransform_y_set. Expected _p_psDPolynomial2D");
            }
        }
        if (arg1) (arg1)->y = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneTransform_y_get) {
    {
        psPlaneTransform *arg1 = (psPlaneTransform *) 0 ;
        psDPolynomial2D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPlaneTransform_y_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlaneTransform_y_get. Expected _p_psPlaneTransform");
            }
        }
        result = (psDPolynomial2D *) ((arg1)->y);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psDPolynomial2D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psPlaneTransform) {
    {
        psPlaneTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psPlaneTransform();");
        }
        result = (psPlaneTransform *)(psPlaneTransform *) calloc(1, sizeof(psPlaneTransform));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneTransform, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psPlaneTransform) {
    {
        psPlaneTransform *arg1 = (psPlaneTransform *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psPlaneTransform(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psPlaneTransform. Expected _p_psPlaneTransform");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneDistort_x_set) {
    {
        psPlaneDistort *arg1 = (psPlaneDistort *) 0 ;
        psDPolynomial4D *arg2 = (psDPolynomial4D *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPlaneDistort_x_set(self,x);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneDistort,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlaneDistort_x_set. Expected _p_psPlaneDistort");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPlaneDistort_x_set. Expected _p_psDPolynomial4D");
            }
        }
        if (arg1) (arg1)->x = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneDistort_x_get) {
    {
        psPlaneDistort *arg1 = (psPlaneDistort *) 0 ;
        psDPolynomial4D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPlaneDistort_x_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneDistort,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlaneDistort_x_get. Expected _p_psPlaneDistort");
            }
        }
        result = (psDPolynomial4D *) ((arg1)->x);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psDPolynomial4D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneDistort_y_set) {
    {
        psPlaneDistort *arg1 = (psPlaneDistort *) 0 ;
        psDPolynomial4D *arg2 = (psDPolynomial4D *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPlaneDistort_y_set(self,y);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneDistort,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlaneDistort_y_set. Expected _p_psPlaneDistort");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psDPolynomial4D,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPlaneDistort_y_set. Expected _p_psDPolynomial4D");
            }
        }
        if (arg1) (arg1)->y = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneDistort_y_get) {
    {
        psPlaneDistort *arg1 = (psPlaneDistort *) 0 ;
        psDPolynomial4D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPlaneDistort_y_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneDistort,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlaneDistort_y_get. Expected _p_psPlaneDistort");
            }
        }
        result = (psDPolynomial4D *) ((arg1)->y);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psDPolynomial4D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psPlaneDistort) {
    {
        psPlaneDistort *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psPlaneDistort();");
        }
        result = (psPlaneDistort *)(psPlaneDistort *) calloc(1, sizeof(psPlaneDistort));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneDistort, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psPlaneDistort) {
    {
        psPlaneDistort *arg1 = (psPlaneDistort *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psPlaneDistort(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneDistort,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psPlaneDistort. Expected _p_psPlaneDistort");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereTransform_alphaP_set) {
    {
        psSphereTransform *arg1 = (psSphereTransform *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSphereTransform_alphaP_set(self,alphaP);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphereTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphereTransform_alphaP_set. Expected _p_psSphereTransform");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->alphaP = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereTransform_alphaP_get) {
    {
        psSphereTransform *arg1 = (psSphereTransform *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSphereTransform_alphaP_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphereTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphereTransform_alphaP_get. Expected _p_psSphereTransform");
            }
        }
        result = (double) ((arg1)->alphaP);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereTransform_cosDeltaP_set) {
    {
        psSphereTransform *arg1 = (psSphereTransform *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSphereTransform_cosDeltaP_set(self,cosDeltaP);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphereTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphereTransform_cosDeltaP_set. Expected _p_psSphereTransform");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->cosDeltaP = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereTransform_cosDeltaP_get) {
    {
        psSphereTransform *arg1 = (psSphereTransform *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSphereTransform_cosDeltaP_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphereTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphereTransform_cosDeltaP_get. Expected _p_psSphereTransform");
            }
        }
        result = (double) ((arg1)->cosDeltaP);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereTransform_sinDeltaP_set) {
    {
        psSphereTransform *arg1 = (psSphereTransform *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSphereTransform_sinDeltaP_set(self,sinDeltaP);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphereTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphereTransform_sinDeltaP_set. Expected _p_psSphereTransform");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->sinDeltaP = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereTransform_sinDeltaP_get) {
    {
        psSphereTransform *arg1 = (psSphereTransform *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSphereTransform_sinDeltaP_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphereTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphereTransform_sinDeltaP_get. Expected _p_psSphereTransform");
            }
        }
        result = (double) ((arg1)->sinDeltaP);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereTransform_phiP_set) {
    {
        psSphereTransform *arg1 = (psSphereTransform *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psSphereTransform_phiP_set(self,phiP);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphereTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphereTransform_phiP_set. Expected _p_psSphereTransform");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->phiP = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereTransform_phiP_get) {
    {
        psSphereTransform *arg1 = (psSphereTransform *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSphereTransform_phiP_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphereTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphereTransform_phiP_get. Expected _p_psSphereTransform");
            }
        }
        result = (double) ((arg1)->phiP);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psSphereTransform) {
    {
        psSphereTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psSphereTransform();");
        }
        result = (psSphereTransform *)(psSphereTransform *) calloc(1, sizeof(psSphereTransform));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphereTransform, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psSphereTransform) {
    {
        psSphereTransform *arg1 = (psSphereTransform *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psSphereTransform(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphereTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psSphereTransform. Expected _p_psSphereTransform");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psProjection_R_set) {
    {
        psProjection *arg1 = (psProjection *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psProjection_R_set(self,R);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psProjection,0) < 0) {
                SWIG_croak("Type error in argument 1 of psProjection_R_set. Expected _p_psProjection");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->R = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psProjection_R_get) {
    {
        psProjection *arg1 = (psProjection *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psProjection_R_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psProjection,0) < 0) {
                SWIG_croak("Type error in argument 1 of psProjection_R_get. Expected _p_psProjection");
            }
        }
        result = (double) ((arg1)->R);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psProjection_D_set) {
    {
        psProjection *arg1 = (psProjection *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psProjection_D_set(self,D);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psProjection,0) < 0) {
                SWIG_croak("Type error in argument 1 of psProjection_D_set. Expected _p_psProjection");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->D = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psProjection_D_get) {
    {
        psProjection *arg1 = (psProjection *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psProjection_D_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psProjection,0) < 0) {
                SWIG_croak("Type error in argument 1 of psProjection_D_get. Expected _p_psProjection");
            }
        }
        result = (double) ((arg1)->D);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psProjection_Xs_set) {
    {
        psProjection *arg1 = (psProjection *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psProjection_Xs_set(self,Xs);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psProjection,0) < 0) {
                SWIG_croak("Type error in argument 1 of psProjection_Xs_set. Expected _p_psProjection");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->Xs = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psProjection_Xs_get) {
    {
        psProjection *arg1 = (psProjection *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psProjection_Xs_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psProjection,0) < 0) {
                SWIG_croak("Type error in argument 1 of psProjection_Xs_get. Expected _p_psProjection");
            }
        }
        result = (double) ((arg1)->Xs);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psProjection_Ys_set) {
    {
        psProjection *arg1 = (psProjection *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psProjection_Ys_set(self,Ys);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psProjection,0) < 0) {
                SWIG_croak("Type error in argument 1 of psProjection_Ys_set. Expected _p_psProjection");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->Ys = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psProjection_Ys_get) {
    {
        psProjection *arg1 = (psProjection *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psProjection_Ys_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psProjection,0) < 0) {
                SWIG_croak("Type error in argument 1 of psProjection_Ys_get. Expected _p_psProjection");
            }
        }
        result = (double) ((arg1)->Ys);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psProjection_type_set) {
    {
        psProjection *arg1 = (psProjection *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psProjection_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psProjection,0) < 0) {
                SWIG_croak("Type error in argument 1 of psProjection_type_set. Expected _p_psProjection");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->type = (psProjectionType )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psProjection_type_get) {
    {
        psProjection *arg1 = (psProjection *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psProjection_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psProjection,0) < 0) {
                SWIG_croak("Type error in argument 1 of psProjection_type_get. Expected _p_psProjection");
            }
        }
        result = (int) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psProjection) {
    {
        psProjection *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psProjection();");
        }
        result = (psProjection *)(psProjection *) calloc(1, sizeof(psProjection));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psProjection, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psProjection) {
    {
        psProjection *arg1 = (psProjection *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psProjection(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psProjection,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psProjection. Expected _p_psProjection");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneAlloc) {
    {
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: psPlaneAlloc();");
        }
        result = (psPlane *)psPlaneAlloc();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereAlloc) {
    {
        psSphere *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: psSphereAlloc();");
        }
        result = (psSphere *)psSphereAlloc();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphere, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneTransformAlloc) {
    {
        psS32 arg1 ;
        psS32 arg2 ;
        psPlaneTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPlaneTransformAlloc(n1,n2);");
        }
        arg1 = (psS32) SvIV(ST(0));
        arg2 = (psS32) SvIV(ST(1));
        result = (psPlaneTransform *)psPlaneTransformAlloc(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneTransformApply) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psPlaneTransform *arg2 = (psPlaneTransform *) 0 ;
        psPlane *arg3 = (psPlane *) 0 ;
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psPlaneTransformApply(out,transform,coords);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlaneTransformApply. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPlaneTransformApply. Expected _p_psPlaneTransform");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 3 of psPlaneTransformApply. Expected _p_psPlane");
            }
        }
        result = (psPlane *)psPlaneTransformApply(arg1,(psPlaneTransform const *)arg2,(psPlane const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneDistortAlloc) {
    {
        psS32 arg1 ;
        psS32 arg2 ;
        psS32 arg3 ;
        psS32 arg4 ;
        psPlaneDistort *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psPlaneDistortAlloc(n1,n2,n3,n4);");
        }
        arg1 = (psS32) SvIV(ST(0));
        arg2 = (psS32) SvIV(ST(1));
        arg3 = (psS32) SvIV(ST(2));
        arg4 = (psS32) SvIV(ST(3));
        result = (psPlaneDistort *)psPlaneDistortAlloc(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneDistort, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneDistortApply) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psPlaneDistort *arg2 = (psPlaneDistort *) 0 ;
        psPlane *arg3 = (psPlane *) 0 ;
        float arg4 ;
        float arg5 ;
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psPlaneDistortApply(out,transform,coords,term3,term4);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlaneDistortApply. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlaneDistort,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPlaneDistortApply. Expected _p_psPlaneDistort");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 3 of psPlaneDistortApply. Expected _p_psPlane");
            }
        }
        arg4 = (float) SvNV(ST(3));
        
        arg5 = (float) SvNV(ST(4));
        
        result = (psPlane *)psPlaneDistortApply(arg1,(psPlaneDistort const *)arg2,(psPlane const *)arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereTransformAlloc) {
    {
        double arg1 ;
        double arg2 ;
        double arg3 ;
        psSphereTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psSphereTransformAlloc(alphaP,deltaP,phiP);");
        }
        arg1 = (double) SvNV(ST(0));
        
        arg2 = (double) SvNV(ST(1));
        
        arg3 = (double) SvNV(ST(2));
        
        result = (psSphereTransform *)psSphereTransformAlloc(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphereTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereTransformApply) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        psSphereTransform *arg2 = (psSphereTransform *) 0 ;
        psSphere *arg3 = (psSphere *) 0 ;
        psSphere *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psSphereTransformApply(out,transform,coord);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphereTransformApply. Expected _p_psSphere");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psSphereTransform,0) < 0) {
                SWIG_croak("Type error in argument 2 of psSphereTransformApply. Expected _p_psSphereTransform");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 3 of psSphereTransformApply. Expected _p_psSphere");
            }
        }
        result = (psSphere *)psSphereTransformApply(arg1,(psSphereTransform const *)arg2,(psSphere const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphere, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereTransformICRSToEcliptic) {
    {
        psTime *arg1 = (psTime *) 0 ;
        psSphereTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSphereTransformICRSToEcliptic(time);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphereTransformICRSToEcliptic. Expected _p_psTime");
            }
        }
        result = (psSphereTransform *)psSphereTransformICRSToEcliptic(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphereTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereTransformEclipticToICRS) {
    {
        psTime *arg1 = (psTime *) 0 ;
        psSphereTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psSphereTransformEclipticToICRS(time);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphereTransformEclipticToICRS. Expected _p_psTime");
            }
        }
        result = (psSphereTransform *)psSphereTransformEclipticToICRS(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphereTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereTransformICRSToGalactic) {
    {
        psSphereTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: psSphereTransformICRSToGalactic();");
        }
        result = (psSphereTransform *)psSphereTransformICRSToGalactic();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphereTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereTransformGalacticToICRS) {
    {
        psSphereTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: psSphereTransformGalacticToICRS();");
        }
        result = (psSphereTransform *)psSphereTransformGalacticToICRS();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphereTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psProjectionAlloc) {
    {
        psF64 arg1 ;
        psF64 arg2 ;
        psF64 arg3 ;
        psF64 arg4 ;
        int arg5 ;
        psProjection *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psProjectionAlloc(R,D,Xs,Ys,type);");
        }
        arg1 = (psF64) SvNV(ST(0));
        
        arg2 = (psF64) SvNV(ST(1));
        
        arg3 = (psF64) SvNV(ST(2));
        
        arg4 = (psF64) SvNV(ST(3));
        
        arg5 = (int) SvIV(ST(4));
        result = (psProjection *)psProjectionAlloc(arg1,arg2,arg3,arg4,(psProjectionType )arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psProjection, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psProject) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        psProjection *arg2 = (psProjection *) 0 ;
        psPlane *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psProject(coord,projection);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psProject. Expected _p_psSphere");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psProjection,0) < 0) {
                SWIG_croak("Type error in argument 2 of psProject. Expected _p_psProjection");
            }
        }
        result = (psPlane *)psProject((psSphere const *)arg1,(psProjection const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlane, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psDeproject) {
    {
        psPlane *arg1 = (psPlane *) 0 ;
        psProjection *arg2 = (psProjection *) 0 ;
        psSphere *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psDeproject(coord,projection);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlane,0) < 0) {
                SWIG_croak("Type error in argument 1 of psDeproject. Expected _p_psPlane");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psProjection,0) < 0) {
                SWIG_croak("Type error in argument 2 of psDeproject. Expected _p_psProjection");
            }
        }
        result = (psSphere *)psDeproject((psPlane const *)arg1,(psProjection const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphere, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereGetOffset) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        psSphere *arg2 = (psSphere *) 0 ;
        int arg3 ;
        int arg4 ;
        psSphere *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psSphereGetOffset(position1,position2,mode,unit);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphereGetOffset. Expected _p_psSphere");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 2 of psSphereGetOffset. Expected _p_psSphere");
            }
        }
        arg3 = (int) SvIV(ST(2));
        arg4 = (int) SvIV(ST(3));
        result = (psSphere *)psSphereGetOffset((psSphere const *)arg1,(psSphere const *)arg2,(psSphereOffsetMode )arg3,(psSphereOffsetUnit )arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphere, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSphereSetOffset) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        psSphere *arg2 = (psSphere *) 0 ;
        int arg3 ;
        int arg4 ;
        psSphere *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psSphereSetOffset(position,offset,mode,unit);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSphereSetOffset. Expected _p_psSphere");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 2 of psSphereSetOffset. Expected _p_psSphere");
            }
        }
        arg3 = (int) SvIV(ST(2));
        arg4 = (int) SvIV(ST(3));
        result = (psSphere *)psSphereSetOffset((psSphere const *)arg1,(psSphere const *)arg2,(psSphereOffsetMode )arg3,(psSphereOffsetUnit )arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphere, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psSpherePrecess) {
    {
        psSphere *arg1 = (psSphere *) 0 ;
        psTime *arg2 = (psTime *) 0 ;
        psTime *arg3 = (psTime *) 0 ;
        psSphere *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psSpherePrecess(coords,fromTime,toTime);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psSphere,0) < 0) {
                SWIG_croak("Type error in argument 1 of psSpherePrecess. Expected _p_psSphere");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 2 of psSpherePrecess. Expected _p_psTime");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 3 of psSpherePrecess. Expected _p_psTime");
            }
        }
        result = (psSphere *)psSpherePrecess(arg1,(psTime const *)arg2,(psTime const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphere, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psPlaneTransformLinearInvert) {
    {
        psPlaneTransform *arg1 = (psPlaneTransform *) 0 ;
        psPlaneTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: p_psPlaneTransformLinearInvert(transform);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psPlaneTransformLinearInvert. Expected _p_psPlaneTransform");
            }
        }
        result = (psPlaneTransform *)p_psPlaneTransformLinearInvert(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psIsProjectionLinear) {
    {
        psPlaneTransform *arg1 = (psPlaneTransform *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: p_psIsProjectionLinear(transform);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of p_psIsProjectionLinear. Expected _p_psPlaneTransform");
            }
        }
        result = (psS32)p_psIsProjectionLinear(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneTransformInvert) {
    {
        psPlaneTransform *arg1 = (psPlaneTransform *) 0 ;
        psPlaneTransform *arg2 = (psPlaneTransform *) 0 ;
        psRegion *arg3 = (psRegion *) 0 ;
        int arg4 ;
        psPlaneTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psPlaneTransformInvert(out,in,region,nSamples);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlaneTransformInvert. Expected _p_psPlaneTransform");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPlaneTransformInvert. Expected _p_psPlaneTransform");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psRegion,0) < 0) {
                SWIG_croak("Type error in argument 3 of psPlaneTransformInvert. Expected _p_psRegion");
            }
        }
        arg4 = (int) SvIV(ST(3));
        result = (psPlaneTransform *)psPlaneTransformInvert(arg1,(psPlaneTransform const *)arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneTransformCombine) {
    {
        psPlaneTransform *arg1 = (psPlaneTransform *) 0 ;
        psPlaneTransform *arg2 = (psPlaneTransform *) 0 ;
        psPlaneTransform *arg3 = (psPlaneTransform *) 0 ;
        psPlaneTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psPlaneTransformCombine(out,trans1,trans2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlaneTransformCombine. Expected _p_psPlaneTransform");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPlaneTransformCombine. Expected _p_psPlaneTransform");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 3 of psPlaneTransformCombine. Expected _p_psPlaneTransform");
            }
        }
        result = (psPlaneTransform *)psPlaneTransformCombine(arg1,(psPlaneTransform const *)arg2,(psPlaneTransform const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPlaneTransform, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPlaneTransformFit) {
    {
        psPlaneTransform *arg1 = (psPlaneTransform *) 0 ;
        psArray *arg2 = (psArray *) 0 ;
        psArray *arg3 = (psArray *) 0 ;
        int arg4 ;
        float arg5 ;
        bool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psPlaneTransformFit(trans,source,dest,nRejIter,sigmaClip);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPlaneTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPlaneTransformFit. Expected _p_psPlaneTransform");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPlaneTransformFit. Expected _p_psArray");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psArray,0) < 0) {
                SWIG_croak("Type error in argument 3 of psPlaneTransformFit. Expected _p_psArray");
            }
        }
        arg4 = (int) SvIV(ST(3));
        arg5 = (float) SvNV(ST(4));
        
        result = (bool)psPlaneTransformFit(arg1,(psArray const *)arg2,(psArray const *)arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadata_list_set) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psList *arg2 = (psList *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadata_list_set(self,list);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadata_list_set. Expected _p_psMetadata");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMetadata_list_set. Expected _p_psList");
            }
        }
        if (arg1) (arg1)->list = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadata_list_get) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psList *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadata_list_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadata_list_get. Expected _p_psMetadata");
            }
        }
        result = (psList *) ((arg1)->list);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psList, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadata_table_set) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psHash *arg2 = (psHash *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadata_table_set(self,table);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadata_table_set. Expected _p_psMetadata");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psHash,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMetadata_table_set. Expected _p_psHash");
            }
        }
        if (arg1) (arg1)->table = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadata_table_get) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psHash *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadata_table_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadata_table_get. Expected _p_psMetadata");
            }
        }
        result = (psHash *) ((arg1)->table);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psHash, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psMetadata) {
    {
        psMetadata *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psMetadata();");
        }
        result = (psMetadata *)(psMetadata *) calloc(1, sizeof(psMetadata));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadata, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psMetadata) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psMetadata(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psMetadata. Expected _p_psMetadata");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataIterator_iter_set) {
    {
        psMetadataIterator *arg1 = (psMetadataIterator *) 0 ;
        psListIterator *arg2 = (psListIterator *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataIterator_iter_set(self,iter);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataIterator_iter_set. Expected _p_psMetadataIterator");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psListIterator,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMetadataIterator_iter_set. Expected _p_psListIterator");
            }
        }
        if (arg1) (arg1)->iter = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataIterator_iter_get) {
    {
        psMetadataIterator *arg1 = (psMetadataIterator *) 0 ;
        psListIterator *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataIterator_iter_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataIterator_iter_get. Expected _p_psMetadataIterator");
            }
        }
        result = (psListIterator *) ((arg1)->iter);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psListIterator, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataIterator_preg_set) {
    {
        psMetadataIterator *arg1 = (psMetadataIterator *) 0 ;
        regex_t *arg2 = (regex_t *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataIterator_preg_set(self,preg);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataIterator_preg_set. Expected _p_psMetadataIterator");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_regex_t,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMetadataIterator_preg_set. Expected _p_regex_t");
            }
        }
        if (arg1) (arg1)->preg = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataIterator_preg_get) {
    {
        psMetadataIterator *arg1 = (psMetadataIterator *) 0 ;
        regex_t *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataIterator_preg_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataIterator_preg_get. Expected _p_psMetadataIterator");
            }
        }
        result = (regex_t *) ((arg1)->preg);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_regex_t, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psMetadataIterator) {
    {
        psMetadataIterator *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psMetadataIterator();");
        }
        result = (psMetadataIterator *)(psMetadataIterator *) calloc(1, sizeof(psMetadataIterator));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataIterator, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psMetadataIterator) {
    {
        psMetadataIterator *arg1 = (psMetadataIterator *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psMetadataIterator(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psMetadataIterator. Expected _p_psMetadataIterator");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_id_get) {
    {
        psMetadataItem *arg1 = (psMetadataItem *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataItem_id_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_id_get. Expected _p_psMetadataItem");
            }
        }
        result = (psS32)(psS32) ((arg1)->id);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_name_set) {
    {
        psMetadataItem *arg1 = (psMetadataItem *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataItem_name_set(self,name);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_name_set. Expected _p_psMetadataItem");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg1->name) free((char*)arg1->name);
            if (arg2) {
                arg1->name = (char *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->name,arg2);
            } else {
                arg1->name = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_name_get) {
    {
        psMetadataItem *arg1 = (psMetadataItem *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataItem_name_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_name_get. Expected _p_psMetadataItem");
            }
        }
        result = (char *) ((arg1)->name);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_type_set) {
    {
        psMetadataItem *arg1 = (psMetadataItem *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataItem_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_type_set. Expected _p_psMetadataItem");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->type = (psMetadataType )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_type_get) {
    {
        psMetadataItem *arg1 = (psMetadataItem *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataItem_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_type_get. Expected _p_psMetadataItem");
            }
        }
        result = (int) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_comment_set) {
    {
        psMetadataItem *arg1 = (psMetadataItem *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataItem_comment_set(self,comment);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_comment_set. Expected _p_psMetadataItem");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg1->comment) free((char*)arg1->comment);
            if (arg2) {
                arg1->comment = (char *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->comment,arg2);
            } else {
                arg1->comment = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_comment_get) {
    {
        psMetadataItem *arg1 = (psMetadataItem *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataItem_comment_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_comment_get. Expected _p_psMetadataItem");
            }
        }
        result = (char *) ((arg1)->comment);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_get) {
    {
        psMetadataItem *arg1 = (psMetadataItem *) 0 ;
        psMetadataItem_data *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataItem_data_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_get. Expected _p_psMetadataItem");
            }
        }
        result = (psMetadataItem_data *)& ((arg1)->data);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataItem_data, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_get_STR) {
    {
        psMetadataItem *arg1 = (psMetadataItem *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataItem_get_STR(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_get_STR. Expected _p_psMetadataItem");
            }
        }
        result = (char *)psMetadataItem_get_STR(arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psMetadataItem) {
    {
        psMetadataItem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psMetadataItem();");
        }
        result = (psMetadataItem *)(psMetadataItem *) calloc(1, sizeof(psMetadataItem));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataItem, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psMetadataItem) {
    {
        psMetadataItem *arg1 = (psMetadataItem *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psMetadataItem(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psMetadataItem. Expected _p_psMetadataItem");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_B_set) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        psBool arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataItem_data_B_set(self,B);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_B_set. Expected _p_psMetadataItem_data");
            }
        }
        arg2 = (psBool) SvIV(ST(1));
        if (arg1) (arg1)->B = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_B_get) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataItem_data_B_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_B_get. Expected _p_psMetadataItem_data");
            }
        }
        result = (psBool) ((arg1)->B);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_S32_set) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        psS32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataItem_data_S32_set(self,S32);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_S32_set. Expected _p_psMetadataItem_data");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (arg1) (arg1)->S32 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_S32_get) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataItem_data_S32_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_S32_get. Expected _p_psMetadataItem_data");
            }
        }
        result = (psS32) ((arg1)->S32);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_F32_set) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        psF32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataItem_data_F32_set(self,F32);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_F32_set. Expected _p_psMetadataItem_data");
            }
        }
        arg2 = (psF32) SvNV(ST(1));
        
        if (arg1) (arg1)->F32 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_F32_get) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataItem_data_F32_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_F32_get. Expected _p_psMetadataItem_data");
            }
        }
        result = (psF32) ((arg1)->F32);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_F64_set) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        psF64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataItem_data_F64_set(self,F64);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_F64_set. Expected _p_psMetadataItem_data");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        if (arg1) (arg1)->F64 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_F64_get) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataItem_data_F64_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_F64_get. Expected _p_psMetadataItem_data");
            }
        }
        result = (psF64) ((arg1)->F64);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_list_set) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        psList *arg2 = (psList *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataItem_data_list_set(self,list);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_list_set. Expected _p_psMetadataItem_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMetadataItem_data_list_set. Expected _p_psList");
            }
        }
        if (arg1) (arg1)->list = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_list_get) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        psList *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataItem_data_list_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_list_get. Expected _p_psMetadataItem_data");
            }
        }
        result = (psList *) ((arg1)->list);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psList, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_md_set) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        psMetadata *arg2 = (psMetadata *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataItem_data_md_set(self,md);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_md_set. Expected _p_psMetadataItem_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMetadataItem_data_md_set. Expected _p_psMetadata");
            }
        }
        if (arg1) (arg1)->md = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_md_get) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        psMetadata *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataItem_data_md_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_md_get. Expected _p_psMetadataItem_data");
            }
        }
        result = (psMetadata *) ((arg1)->md);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadata, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_V_set) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        psPtr arg2 = (psPtr) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataItem_data_V_set(self,V);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_V_set. Expected _p_psMetadataItem_data");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMetadataItem_data_V_set. Expected _psPtr");
            }
        }
        if (arg1) (arg1)->V = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItem_data_V_get) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataItem_data_V_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataItem_data_V_get. Expected _p_psMetadataItem_data");
            }
        }
        result = (psPtr) ((arg1)->V);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psMetadataItem_data) {
    {
        psMetadataItem_data *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psMetadataItem_data();");
        }
        result = (psMetadataItem_data *)(psMetadataItem_data *) calloc(1, sizeof(psMetadataItem_data));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataItem_data, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psMetadataItem_data) {
    {
        psMetadataItem_data *arg1 = (psMetadataItem_data *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psMetadataItem_data(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataItem_data,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psMetadataItem_data. Expected _p_psMetadataItem_data");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItemAlloc) {
    {
        char *arg1 ;
        int arg2 ;
        char *arg3 ;
        void *arg4 = 0 ;
        psMetadataItem *result;
        int argvi = 0;
        dXSARGS;
        
        if (items < 3) {
            SWIG_croak("Usage: psMetadataItemAlloc(name,type,comment,...);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        result = (psMetadataItem *)psMetadataItemAlloc((char const *)arg1,(psMetadataType )arg2,(char const *)arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataItem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItemAllocStr) {
    {
        char *arg1 ;
        char *arg2 ;
        char *arg3 ;
        psMetadataItem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataItemAllocStr(name,comment,value);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        result = (psMetadataItem *)psMetadataItemAllocStr((char const *)arg1,(char const *)arg2,(char const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataItem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItemAllocF32) {
    {
        char *arg1 ;
        char *arg2 ;
        psF32 arg3 ;
        psMetadataItem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataItemAllocF32(name,comment,value);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (psF32) SvNV(ST(2));
        
        result = (psMetadataItem *)psMetadataItemAllocF32((char const *)arg1,(char const *)arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataItem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItemAllocF64) {
    {
        char *arg1 ;
        char *arg2 ;
        psF64 arg3 ;
        psMetadataItem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataItemAllocF64(name,comment,value);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (psF64) SvNV(ST(2));
        
        result = (psMetadataItem *)psMetadataItemAllocF64((char const *)arg1,(char const *)arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataItem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItemAllocS32) {
    {
        char *arg1 ;
        char *arg2 ;
        psS32 arg3 ;
        psMetadataItem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataItemAllocS32(name,comment,value);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (psS32) SvIV(ST(2));
        result = (psMetadataItem *)psMetadataItemAllocS32((char const *)arg1,(char const *)arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataItem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItemAllocBool) {
    {
        char *arg1 ;
        char *arg2 ;
        psBool arg3 ;
        psMetadataItem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataItemAllocBool(name,comment,value);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (psBool) SvIV(ST(2));
        result = (psMetadataItem *)psMetadataItemAllocBool((char const *)arg1,(char const *)arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataItem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataAlloc) {
    {
        psMetadata *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: psMetadataAlloc();");
        }
        result = (psMetadata *)psMetadataAlloc();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadata, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataAddItem) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psMetadataItem *arg2 = (psMetadataItem *) 0 ;
        psS32 arg3 ;
        psS32 arg4 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psMetadataAddItem(md,item,location,flags);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataAddItem. Expected _p_psMetadata");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMetadataItem,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMetadataAddItem. Expected _p_psMetadataItem");
            }
        }
        arg3 = (psS32) SvIV(ST(2));
        arg4 = (psS32) SvIV(ST(3));
        result = (psBool)psMetadataAddItem(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataAdd) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psS32 arg2 ;
        char *arg3 ;
        int arg4 ;
        char *arg5 ;
        void *arg6 = 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if (items < 5) {
            SWIG_croak("Usage: psMetadataAdd(md,location,name,type,comment,...);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataAdd. Expected _p_psMetadata");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        arg4 = (int) SvIV(ST(3));
        if (!SvOK((SV*) ST(4))) arg5 = 0;
        else arg5 = (char *) SvPV(ST(4), PL_na);
        result = (psBool)psMetadataAdd(arg1,arg2,(char const *)arg3,arg4,(char const *)arg5,arg6);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataAddS32) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psS32 arg2 ;
        char *arg3 ;
        char *arg4 ;
        psS32 arg5 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psMetadataAddS32(md,location,name,comment,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataAddS32. Expected _p_psMetadata");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        if (!SvOK((SV*) ST(3))) arg4 = 0;
        else arg4 = (char *) SvPV(ST(3), PL_na);
        arg5 = (psS32) SvIV(ST(4));
        result = (psBool)psMetadataAddS32(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataAddF32) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psS32 arg2 ;
        char *arg3 ;
        char *arg4 ;
        psF32 arg5 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psMetadataAddF32(md,location,name,comment,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataAddF32. Expected _p_psMetadata");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        if (!SvOK((SV*) ST(3))) arg4 = 0;
        else arg4 = (char *) SvPV(ST(3), PL_na);
        arg5 = (psF32) SvNV(ST(4));
        
        result = (psBool)psMetadataAddF32(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataAddF64) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psS32 arg2 ;
        char *arg3 ;
        char *arg4 ;
        psF64 arg5 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psMetadataAddF64(md,location,name,comment,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataAddF64. Expected _p_psMetadata");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        if (!SvOK((SV*) ST(3))) arg4 = 0;
        else arg4 = (char *) SvPV(ST(3), PL_na);
        arg5 = (psF64) SvNV(ST(4));
        
        result = (psBool)psMetadataAddF64(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataAddList) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psS32 arg2 ;
        char *arg3 ;
        char *arg4 ;
        psList *arg5 = (psList *) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psMetadataAddList(md,location,name,comment,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataAddList. Expected _p_psMetadata");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        if (!SvOK((SV*) ST(3))) arg4 = 0;
        else arg4 = (char *) SvPV(ST(3), PL_na);
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psList,0) < 0) {
                SWIG_croak("Type error in argument 5 of psMetadataAddList. Expected _p_psList");
            }
        }
        result = (psBool)psMetadataAddList(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataAddStr) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psS32 arg2 ;
        char *arg3 ;
        char *arg4 ;
        char *arg5 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psMetadataAddStr(md,location,name,comment,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataAddStr. Expected _p_psMetadata");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        if (!SvOK((SV*) ST(3))) arg4 = 0;
        else arg4 = (char *) SvPV(ST(3), PL_na);
        if (!SvOK((SV*) ST(4))) arg5 = 0;
        else arg5 = (char *) SvPV(ST(4), PL_na);
        result = (psBool)psMetadataAddStr(arg1,arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataAddVector) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psS32 arg2 ;
        char *arg3 ;
        char *arg4 ;
        psVector *arg5 = (psVector *) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psMetadataAddVector(md,location,name,comment,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataAddVector. Expected _p_psMetadata");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        if (!SvOK((SV*) ST(3))) arg4 = 0;
        else arg4 = (char *) SvPV(ST(3), PL_na);
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psVector,0) < 0) {
                SWIG_croak("Type error in argument 5 of psMetadataAddVector. Expected _p_psVector");
            }
        }
        result = (psBool)psMetadataAddVector(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataAddImage) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psS32 arg2 ;
        char *arg3 ;
        char *arg4 ;
        psImage *arg5 = (psImage *) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psMetadataAddImage(md,location,name,comment,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataAddImage. Expected _p_psMetadata");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        if (!SvOK((SV*) ST(3))) arg4 = 0;
        else arg4 = (char *) SvPV(ST(3), PL_na);
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psImage,0) < 0) {
                SWIG_croak("Type error in argument 5 of psMetadataAddImage. Expected _p_psImage");
            }
        }
        result = (psBool)psMetadataAddImage(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataAddHash) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psS32 arg2 ;
        char *arg3 ;
        char *arg4 ;
        psHash *arg5 = (psHash *) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psMetadataAddHash(md,location,name,comment,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataAddHash. Expected _p_psMetadata");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        if (!SvOK((SV*) ST(3))) arg4 = 0;
        else arg4 = (char *) SvPV(ST(3), PL_na);
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psHash,0) < 0) {
                SWIG_croak("Type error in argument 5 of psMetadataAddHash. Expected _p_psHash");
            }
        }
        result = (psBool)psMetadataAddHash(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataAddLookupTable) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psS32 arg2 ;
        char *arg3 ;
        char *arg4 ;
        psLookupTable *arg5 = (psLookupTable *) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psMetadataAddLookupTable(md,location,name,comment,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataAddLookupTable. Expected _p_psMetadata");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        if (!SvOK((SV*) ST(3))) arg4 = 0;
        else arg4 = (char *) SvPV(ST(3), PL_na);
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_psLookupTable,0) < 0) {
                SWIG_croak("Type error in argument 5 of psMetadataAddLookupTable. Expected _p_psLookupTable");
            }
        }
        result = (psBool)psMetadataAddLookupTable(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataAddUnknown) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psS32 arg2 ;
        char *arg3 ;
        char *arg4 ;
        psPtr arg5 = (psPtr) 0 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: psMetadataAddUnknown(md,location,name,comment,value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataAddUnknown. Expected _p_psMetadata");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        if (!SvOK((SV*) ST(3))) arg4 = 0;
        else arg4 = (char *) SvPV(ST(3), PL_na);
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, 0,0) < 0) {
                SWIG_croak("Type error in argument 5 of psMetadataAddUnknown. Expected _psPtr");
            }
        }
        result = (psBool)psMetadataAddUnknown(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataRemove) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psS32 arg2 ;
        char *arg3 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataRemove(md,where,key);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataRemove. Expected _p_psMetadata");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        result = (psBool)psMetadataRemove(arg1,arg2,(char const *)arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataLookup) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        char *arg2 ;
        psMetadataItem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataLookup(md,key);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataLookup. Expected _p_psMetadata");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (psMetadataItem *)psMetadataLookup(arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataItem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataLookupF64) {
    {
        psBool *arg1 = (psBool *) 0 ;
        psMetadata *arg2 = (psMetadata *) 0 ;
        char *arg3 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataLookupF64(status,md,key);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBool,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataLookupF64. Expected _p_psBool");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMetadataLookupF64. Expected _p_psMetadata");
            }
        }
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        result = (psF64)psMetadataLookupF64(arg1,arg2,(char const *)arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataLookupF32) {
    {
        psBool *arg1 = (psBool *) 0 ;
        psMetadata *arg2 = (psMetadata *) 0 ;
        char *arg3 ;
        psF32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataLookupF32(status,md,key);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBool,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataLookupF32. Expected _p_psBool");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMetadataLookupF32. Expected _p_psMetadata");
            }
        }
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        result = (psF32)psMetadataLookupF32(arg1,arg2,(char const *)arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataLookupS32) {
    {
        psBool *arg1 = (psBool *) 0 ;
        psMetadata *arg2 = (psMetadata *) 0 ;
        char *arg3 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataLookupS32(status,md,key);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBool,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataLookupS32. Expected _p_psBool");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMetadataLookupS32. Expected _p_psMetadata");
            }
        }
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        result = (psS32)psMetadataLookupS32(arg1,arg2,(char const *)arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataLookupBool) {
    {
        psBool *arg1 = (psBool *) 0 ;
        psMetadata *arg2 = (psMetadata *) 0 ;
        char *arg3 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataLookupBool(status,md,key);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBool,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataLookupBool. Expected _p_psBool");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMetadataLookupBool. Expected _p_psMetadata");
            }
        }
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        result = (psBool)psMetadataLookupBool(arg1,arg2,(char const *)arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataLookupPtr) {
    {
        psBool *arg1 = (psBool *) 0 ;
        psMetadata *arg2 = (psMetadata *) 0 ;
        char *arg3 ;
        psPtr result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataLookupPtr(status,md,key);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psBool,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataLookupPtr. Expected _p_psBool");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 2 of psMetadataLookupPtr. Expected _p_psMetadata");
            }
        }
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        result = (psPtr)psMetadataLookupPtr(arg1,arg2,(char const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_psPtr, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataGet) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psS32 arg2 ;
        psMetadataItem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataGet(md,location);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataGet. Expected _p_psMetadata");
            }
        }
        arg2 = (psS32) SvIV(ST(1));
        result = (psMetadataItem *)psMetadataGet(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataItem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataIteratorAlloc) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        int arg2 ;
        char *arg3 ;
        psMetadataIterator *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataIteratorAlloc(md,location,regex);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataIteratorAlloc. Expected _p_psMetadata");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        result = (psMetadataIterator *)psMetadataIteratorAlloc(arg1,arg2,(char const *)arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataIterator, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataIteratorSet) {
    {
        psMetadataIterator *arg1 = (psMetadataIterator *) 0 ;
        int arg2 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psMetadataIteratorSet(iterator,location);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataIteratorSet. Expected _p_psMetadataIterator");
            }
        }
        arg2 = (int) SvIV(ST(1));
        result = (psBool)psMetadataIteratorSet(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataGetAndIncrement) {
    {
        psMetadataIterator *arg1 = (psMetadataIterator *) 0 ;
        psMetadataItem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataGetAndIncrement(iterator);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataGetAndIncrement. Expected _p_psMetadataIterator");
            }
        }
        result = (psMetadataItem *)psMetadataGetAndIncrement(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataItem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataGetAndDecrement) {
    {
        psMetadataIterator *arg1 = (psMetadataIterator *) 0 ;
        psMetadataItem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psMetadataGetAndDecrement(iterator);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadataIterator,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataGetAndDecrement. Expected _p_psMetadataIterator");
            }
        }
        result = (psMetadataItem *)psMetadataGetAndDecrement(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadataItem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataItemPrint) {
    {
        FILE *arg1 = (FILE *) 0 ;
        char *arg2 ;
        psMetadataItem *arg3 = (psMetadataItem *) 0 ;
        bool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataItemPrint(fd,format,metadataItem);");
        }
        {
            if (!SvOK(ST(0))) {
                arg1 = NULL;      
            } else {
                arg1 = PerlIO_findFILE(IoIFP(sv_2io(ST(0))));
            }
            
            
            
            
            
            
            
            
            
            
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_psMetadataItem,0) < 0) {
                SWIG_croak("Type error in argument 3 of psMetadataItemPrint. Expected _p_psMetadataItem");
            }
        }
        result = (bool)psMetadataItemPrint(arg1,(char const *)arg2,(psMetadataItem const *)arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataReadHeader) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        char *arg2 ;
        psS32 arg3 ;
        char *arg4 ;
        psMetadata *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: psMetadataReadHeader(output,extName,extNum,fileName);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataReadHeader. Expected _p_psMetadata");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (psS32) SvIV(ST(2));
        if (!SvOK((SV*) ST(3))) arg4 = 0;
        else arg4 = (char *) SvPV(ST(3), PL_na);
        result = (psMetadata *)psMetadataReadHeader(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadata, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataParseConfig) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psU32 *arg2 = (psU32 *) 0 ;
        char *arg3 ;
        psBool arg4 ;
        psMetadata *result;
        unsigned int temp2 ;
        int argvi = 0;
        dXSARGS;
        
        arg2 = &temp2;
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataParseConfig(md,fileName,overwrite);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataParseConfig. Expected _p_psMetadata");
            }
        }
        if (!SvOK((SV*) ST(1))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(1), PL_na);
        arg4 = (psBool) SvIV(ST(2));
        result = (psMetadata *)psMetadataParseConfig(arg1,arg2,(char const *)arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadata, SWIG_SHADOW|0);
        {
            if (argvi >= items) {
                EXTEND(sp,1);
            }
            ST(argvi) = sv_newmortal();
            sv_setuv(ST(argvi),(UV) *(arg2));
            argvi++;
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psMetadataParseConfigXml) {
    {
        psMetadata *arg1 = (psMetadata *) 0 ;
        psU32 *arg2 = (psU32 *) 0 ;
        char *arg3 ;
        psBool arg4 ;
        psMetadata *result;
        unsigned int temp2 ;
        int argvi = 0;
        dXSARGS;
        
        arg2 = &temp2;
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: psMetadataParseConfigXml(md,fileName,overwrite);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psMetadata,0) < 0) {
                SWIG_croak("Type error in argument 1 of psMetadataParseConfigXml. Expected _p_psMetadata");
            }
        }
        if (!SvOK((SV*) ST(1))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(1), PL_na);
        arg4 = (psBool) SvIV(ST(2));
        result = (psMetadata *)psMetadataParseConfigXml(arg1,arg2,(char const *)arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psMetadata, SWIG_SHADOW|0);
        {
            if (argvi >= items) {
                EXTEND(sp,1);
            }
            ST(argvi) = sv_newmortal();
            sv_setuv(ST(argvi),(UV) *(arg2));
            argvi++;
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotSystem_ID_get) {
    {
        psPhotSystem *arg1 = (psPhotSystem *) 0 ;
        psS32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPhotSystem_ID_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotSystem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotSystem_ID_get. Expected _p_psPhotSystem");
            }
        }
        result = (psS32)(psS32) ((arg1)->ID);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotSystem_name_set) {
    {
        psPhotSystem *arg1 = (psPhotSystem *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPhotSystem_name_set(self,name);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotSystem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotSystem_name_set. Expected _p_psPhotSystem");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg2) {
                arg1->name = (char const *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->name,arg2);
            } else {
                arg1->name = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotSystem_name_get) {
    {
        psPhotSystem *arg1 = (psPhotSystem *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPhotSystem_name_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotSystem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotSystem_name_get. Expected _p_psPhotSystem");
            }
        }
        result = (char *) ((arg1)->name);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotSystem_camera_set) {
    {
        psPhotSystem *arg1 = (psPhotSystem *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPhotSystem_camera_set(self,camera);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotSystem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotSystem_camera_set. Expected _p_psPhotSystem");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg2) {
                arg1->camera = (char const *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->camera,arg2);
            } else {
                arg1->camera = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotSystem_camera_get) {
    {
        psPhotSystem *arg1 = (psPhotSystem *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPhotSystem_camera_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotSystem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotSystem_camera_get. Expected _p_psPhotSystem");
            }
        }
        result = (char *) ((arg1)->camera);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotSystem_filter_set) {
    {
        psPhotSystem *arg1 = (psPhotSystem *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPhotSystem_filter_set(self,filter);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotSystem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotSystem_filter_set. Expected _p_psPhotSystem");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg2) {
                arg1->filter = (char const *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->filter,arg2);
            } else {
                arg1->filter = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotSystem_filter_get) {
    {
        psPhotSystem *arg1 = (psPhotSystem *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPhotSystem_filter_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotSystem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotSystem_filter_get. Expected _p_psPhotSystem");
            }
        }
        result = (char *) ((arg1)->filter);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotSystem_detector_set) {
    {
        psPhotSystem *arg1 = (psPhotSystem *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPhotSystem_detector_set(self,detector);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotSystem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotSystem_detector_set. Expected _p_psPhotSystem");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg2) {
                arg1->detector = (char const *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->detector,arg2);
            } else {
                arg1->detector = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotSystem_detector_get) {
    {
        psPhotSystem *arg1 = (psPhotSystem *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPhotSystem_detector_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotSystem,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotSystem_detector_get. Expected _p_psPhotSystem");
            }
        }
        result = (char *) ((arg1)->detector);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psPhotSystem) {
    {
        psPhotSystem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psPhotSystem();");
        }
        result = (psPhotSystem *)(psPhotSystem *) calloc(1, sizeof(psPhotSystem));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPhotSystem, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psPhotSystem) {
    {
        psPhotSystem *arg1 = (psPhotSystem *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psPhotSystem(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotSystem,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psPhotSystem. Expected _p_psPhotSystem");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotTransform_src_get) {
    {
        psPhotTransform *arg1 = (psPhotTransform *) 0 ;
        psPhotSystem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPhotTransform_src_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotTransform_src_get. Expected _p_psPhotTransform");
            }
        }
        result = (psPhotSystem *)& ((arg1)->src);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPhotSystem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotTransform_dst_get) {
    {
        psPhotTransform *arg1 = (psPhotTransform *) 0 ;
        psPhotSystem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPhotTransform_dst_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotTransform_dst_get. Expected _p_psPhotTransform");
            }
        }
        result = (psPhotSystem *)& ((arg1)->dst);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPhotSystem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotTransform_pP_get) {
    {
        psPhotTransform *arg1 = (psPhotTransform *) 0 ;
        psPhotSystem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPhotTransform_pP_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotTransform_pP_get. Expected _p_psPhotTransform");
            }
        }
        result = (psPhotSystem *)& ((arg1)->pP);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPhotSystem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotTransform_pM_get) {
    {
        psPhotTransform *arg1 = (psPhotTransform *) 0 ;
        psPhotSystem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPhotTransform_pM_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotTransform_pM_get. Expected _p_psPhotTransform");
            }
        }
        result = (psPhotSystem *)& ((arg1)->pM);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPhotSystem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotTransform_sP_get) {
    {
        psPhotTransform *arg1 = (psPhotTransform *) 0 ;
        psPhotSystem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPhotTransform_sP_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotTransform_sP_get. Expected _p_psPhotTransform");
            }
        }
        result = (psPhotSystem *)& ((arg1)->sP);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPhotSystem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotTransform_sM_get) {
    {
        psPhotTransform *arg1 = (psPhotTransform *) 0 ;
        psPhotSystem *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPhotTransform_sM_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotTransform_sM_get. Expected _p_psPhotTransform");
            }
        }
        result = (psPhotSystem *)& ((arg1)->sM);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPhotSystem, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotTransform_pA_set) {
    {
        psPhotTransform *arg1 = (psPhotTransform *) 0 ;
        float arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPhotTransform_pA_set(self,pA);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotTransform_pA_set. Expected _p_psPhotTransform");
            }
        }
        arg2 = (float) SvNV(ST(1));
        
        if (arg1) (arg1)->pA = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotTransform_pA_get) {
    {
        psPhotTransform *arg1 = (psPhotTransform *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPhotTransform_pA_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotTransform_pA_get. Expected _p_psPhotTransform");
            }
        }
        result = (float) ((arg1)->pA);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotTransform_sA_set) {
    {
        psPhotTransform *arg1 = (psPhotTransform *) 0 ;
        float arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPhotTransform_sA_set(self,sA);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotTransform_sA_set. Expected _p_psPhotTransform");
            }
        }
        arg2 = (float) SvNV(ST(1));
        
        if (arg1) (arg1)->sA = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotTransform_sA_get) {
    {
        psPhotTransform *arg1 = (psPhotTransform *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPhotTransform_sA_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotTransform_sA_get. Expected _p_psPhotTransform");
            }
        }
        result = (float) ((arg1)->sA);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotTransform_transform_set) {
    {
        psPhotTransform *arg1 = (psPhotTransform *) 0 ;
        psPolynomial3D *arg2 = (psPolynomial3D *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psPhotTransform_transform_set(self,transform);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotTransform_transform_set. Expected _p_psPhotTransform");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psPolynomial3D,0) < 0) {
                SWIG_croak("Type error in argument 2 of psPhotTransform_transform_set. Expected _p_psPolynomial3D");
            }
        }
        if (arg1) (arg1)->transform = *arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psPhotTransform_transform_get) {
    {
        psPhotTransform *arg1 = (psPhotTransform *) 0 ;
        psPolynomial3D *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psPhotTransform_transform_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of psPhotTransform_transform_get. Expected _p_psPhotTransform");
            }
        }
        result = (psPolynomial3D *)& ((arg1)->transform);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPolynomial3D, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psPhotTransform) {
    {
        psPhotTransform *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psPhotTransform();");
        }
        result = (psPhotTransform *)(psPhotTransform *) calloc(1, sizeof(psPhotTransform));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psPhotTransform, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psPhotTransform) {
    {
        psPhotTransform *arg1 = (psPhotTransform *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psPhotTransform(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psPhotTransform,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psPhotTransform. Expected _p_psPhotTransform");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTime_sec_set) {
    {
        psTime *arg1 = (psTime *) 0 ;
        psS64 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psTime_sec_set(self,sec);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTime_sec_set. Expected _p_psTime");
            }
        }
        arg2 = (psS64) strtoll(SvPV(ST(1), PL_na), 0, 0);
        if (arg1) (arg1)->sec = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTime_sec_get) {
    {
        psTime *arg1 = (psTime *) 0 ;
        psS64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTime_sec_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTime_sec_get. Expected _p_psTime");
            }
        }
        result = (psS64) ((arg1)->sec);
        
        {
            char temp[256];
            sprintf(temp,"%lld", result);
            ST(argvi) = sv_newmortal();
            sv_setpv((SV*)ST(argvi++), temp);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTime_usec_set) {
    {
        psTime *arg1 = (psTime *) 0 ;
        psU32 arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psTime_usec_set(self,usec);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTime_usec_set. Expected _p_psTime");
            }
        }
        arg2 = (psU32) SvUV(ST(1));
        if (arg1) (arg1)->usec = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTime_usec_get) {
    {
        psTime *arg1 = (psTime *) 0 ;
        psU32 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTime_usec_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTime_usec_get. Expected _p_psTime");
            }
        }
        result = (psU32) ((arg1)->usec);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTime_type_set) {
    {
        psTime *arg1 = (psTime *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psTime_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTime_type_set. Expected _p_psTime");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->type = (psTimeType )arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTime_type_get) {
    {
        psTime *arg1 = (psTime *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTime_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTime_type_get. Expected _p_psTime");
            }
        }
        result = (int) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_psTime) {
    {
        psTime *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_psTime();");
        }
        result = (psTime *)(psTime *) calloc(1, sizeof(psTime));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psTime, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_psTime) {
    {
        psTime *arg1 = (psTime *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_psTime(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_psTime. Expected _p_psTime");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psTimeInit) {
    {
        char *arg1 ;
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: p_psTimeInit(fileName);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (psBool)p_psTimeInit((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psTimeFinalize) {
    {
        psBool result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: p_psTimeFinalize();");
        }
        result = (psBool)p_psTimeFinalize();
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeAlloc) {
    {
        int arg1 ;
        psTime *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeAlloc(type);");
        }
        arg1 = (int) SvIV(ST(0));
        result = (psTime *)psTimeAlloc((psTimeType )arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psTime, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeGetTime) {
    {
        int arg1 ;
        psTime *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeGetTime(type);");
        }
        arg1 = (int) SvIV(ST(0));
        result = (psTime *)psTimeGetTime((psTimeType )arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psTime, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeConvert) {
    {
        psTime *arg1 = (psTime *) 0 ;
        int arg2 ;
        psTime *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psTimeConvert(time,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeConvert. Expected _p_psTime");
            }
        }
        arg2 = (int) SvIV(ST(1));
        result = (psTime *)psTimeConvert(arg1,(psTimeType )arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psTime, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeToLST) {
    {
        psTime *arg1 = (psTime *) 0 ;
        double arg2 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psTimeToLST(time,longitude);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeToLST. Expected _p_psTime");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        result = (double)psTimeToLST(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeGetUT1Delta) {
    {
        psTime *arg1 = (psTime *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeGetUT1Delta(time);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeGetUT1Delta. Expected _p_psTime");
            }
        }
        result = (double)psTimeGetUT1Delta((psTime const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeGetTAIDelta) {
    {
        psTime *arg1 = (psTime *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeGetTAIDelta(time);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeGetTAIDelta. Expected _p_psTime");
            }
        }
        result = (double)psTimeGetTAIDelta((psTime const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeGetPoleCoords) {
    {
        psTime *arg1 = (psTime *) 0 ;
        struct psSphere *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeGetPoleCoords(time);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeGetPoleCoords. Expected _p_psTime");
            }
        }
        result = (struct psSphere *)psTimeGetPoleCoords((psTime const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psSphere, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeLeapseconds) {
    {
        psTime *arg1 = (psTime *) 0 ;
        psTime *arg2 = (psTime *) 0 ;
        psS64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psTimeLeapseconds(time1,time2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeLeapseconds. Expected _p_psTime");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 2 of psTimeLeapseconds. Expected _p_psTime");
            }
        }
        result = (psS64)psTimeLeapseconds((psTime const *)arg1,(psTime const *)arg2);
        
        {
            char temp[256];
            sprintf(temp,"%lld", result);
            ST(argvi) = sv_newmortal();
            sv_setpv((SV*)ST(argvi++), temp);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeToJD) {
    {
        psTime *arg1 = (psTime *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeToJD(time);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeToJD. Expected _p_psTime");
            }
        }
        result = (double)psTimeToJD((psTime const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeToMJD) {
    {
        psTime *arg1 = (psTime *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeToMJD(time);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeToMJD. Expected _p_psTime");
            }
        }
        result = (double)psTimeToMJD((psTime const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeToISOTime) {
    {
        psTime *arg1 = (psTime *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeToISOTime(time);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeToISOTime. Expected _p_psTime");
            }
        }
        result = (char *)psTimeToISOTime((psTime const *)arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeToTimeval) {
    {
        psTime *arg1 = (psTime *) 0 ;
        struct timeval result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeToTimeval(time);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeToTimeval. Expected _p_psTime");
            }
        }
        result = psTimeToTimeval((psTime const *)arg1);
        
        {
            struct timeval * resultobj = (struct timeval *) malloc(sizeof(struct timeval));
            memmove(resultobj, &result, sizeof(struct timeval));
            ST(argvi) = sv_newmortal();
            SWIG_MakePtr(ST(argvi++), (void *) resultobj, SWIGTYPE_p_timeval, 0|SWIG_OWNER);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeToTM) {
    {
        psTime *arg1 = (psTime *) 0 ;
        struct tm *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeToTM(time);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeToTM. Expected _p_psTime");
            }
        }
        result = (struct tm *)psTimeToTM((psTime const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_tm, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeFromJD) {
    {
        double arg1 ;
        psTime *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeFromJD(time);");
        }
        arg1 = (double) SvNV(ST(0));
        
        result = (psTime *)psTimeFromJD(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psTime, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeFromMJD) {
    {
        double arg1 ;
        psTime *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeFromMJD(time);");
        }
        arg1 = (double) SvNV(ST(0));
        
        result = (psTime *)psTimeFromMJD(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psTime, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeFromISOTime) {
    {
        char *arg1 ;
        psTime *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeFromISOTime(time);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (psTime *)psTimeFromISOTime((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psTime, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeFromTimeval) {
    {
        struct timeval *arg1 = (struct timeval *) 0 ;
        psTime *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeFromTimeval(time);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_timeval,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeFromTimeval. Expected _p_timeval");
            }
        }
        result = (psTime *)psTimeFromTimeval((struct timeval const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psTime, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeFromTM) {
    {
        struct tm *arg1 = (struct tm *) 0 ;
        psTime *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: psTimeFromTM(time);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_tm,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeFromTM. Expected _p_tm");
            }
        }
        result = (psTime *)psTimeFromTM((struct tm const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psTime, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeMath) {
    {
        psTime *arg1 = (psTime *) 0 ;
        psF64 arg2 ;
        psTime *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psTimeMath(time,delta);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeMath. Expected _p_psTime");
            }
        }
        arg2 = (psF64) SvNV(ST(1));
        
        result = (psTime *)psTimeMath((psTime const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_psTime, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_psTimeDelta) {
    {
        psTime *arg1 = (psTime *) 0 ;
        psTime *arg2 = (psTime *) 0 ;
        psF64 result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: psTimeDelta(time1,time2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 1 of psTimeDelta. Expected _p_psTime");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_psTime,0) < 0) {
                SWIG_croak("Type error in argument 2 of psTimeDelta. Expected _p_psTime");
            }
        }
        result = (psF64)psTimeDelta((psTime const *)arg1,(psTime const *)arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_p_psGetConfigFileName) {
    {
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: p_psGetConfigFileName();");
        }
        result = (char *)p_psGetConfigFileName();
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}



/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */

static swig_type_info _swigt__p_psListIterator[] = {{"pslib::psListIterator", 0, "psListIterator *", 0},{"pslib::psListIterator"},{0}};
static swig_type_info _swigt__p_psMetadataIterator[] = {{"pslib::psMetadataIterator", 0, "psMetadataIterator *", 0},{"pslib::psMetadataIterator"},{0}};
static swig_type_info _swigt__p_p_psC64[] = {{"_p_p_psC64", 0, "psC64 **", 0},{"_p_p_psC64"},{0}};
static swig_type_info _swigt__p_psC64[] = {{"pslib::psC64", 0, "psC64 *", 0},{"pslib::psC64"},{0}};
static swig_type_info _swigt__p_p_psS8[] = {{"_p_p_psS8", 0, "psS8 **", 0},{"_p_p_psS8"},{0}};
static swig_type_info _swigt__p_psChip[] = {{"pslib::psChip", 0, "psChip *", 0},{"pslib::psChip"},{0}};
static swig_type_info _swigt__p_psErr[] = {{"pslib::psErr", 0, "psErr *", 0},{"pslib::psErr"},{0}};
static swig_type_info _swigt__p_psPlaneDistort[] = {{"pslib::psPlaneDistort", 0, "psPlaneDistort *", 0},{"pslib::psPlaneDistort"},{0}};
static swig_type_info _swigt__p_p_psVector[] = {{"_p_p_psVector", 0, "psVector **", 0},{"_p_p_psVector"},{0}};
static swig_type_info _swigt__p_psVector[] = {{"pslib::psVector", 0, "psVector *", 0},{"pslib::psVector"},{0}};
static swig_type_info _swigt__p_psImage_data[] = {{"pslib::psImage_data", 0, "psImage_data *", 0},{"pslib::psImage_data"},{0}};
static swig_type_info _swigt__p_psReadout[] = {{"pslib::psReadout", 0, "psReadout *", 0},{"pslib::psReadout"},{0}};
static swig_type_info _swigt__p_size_t[] = {{"_p_size_t", 0, "size_t *", 0},{"_p_size_t"},{0}};
static swig_type_info _swigt__p_p_psPolynomial1D[] = {{"_p_p_psPolynomial1D", 0, "psPolynomial1D **", 0},{"_p_p_psPolynomial1D"},{0}};
static swig_type_info _swigt__p_psDPolynomial1D[] = {{"pslib::psDPolynomial1D", 0, "psDPolynomial1D *", 0},{"pslib::psDPolynomial1D"},{0}};
static swig_type_info _swigt__p_psPolynomial1D[] = {{"pslib::psPolynomial1D", 0, "psPolynomial1D *", 0},{"pslib::psPolynomial1D"},{0}};
static swig_type_info _swigt__p_p_psU32[] = {{"_p_p_psU32", 0, "psU32 **", 0},{"_p_p_psU32"},{0}};
static swig_type_info _swigt__p_psU32[] = {{"_p_psU32", 0, "psU32 *", 0},{"_p_psU32"},{0}};
static swig_type_info _swigt__p_fitsfile[] = {{"_p_fitsfile", 0, "fitsfile *", 0},{"_p_fitsfile"},{0}};
static swig_type_info _swigt__p_psImage[] = {{"pslib::psImage", 0, "psImage *", 0},{"pslib::psImage"},{0}};
static swig_type_info _swigt__p_psList[] = {{"pslib::psList", 0, "psList *", 0},{"pslib::psList"},{0}};
static swig_type_info _swigt__p_psMetadataItem[] = {{"pslib::psMetadataItem", 0, "psMetadataItem const *", 0},{"pslib::psMetadataItem"},{0}};
static swig_type_info _swigt__p_psHash[] = {{"pslib::psHash", 0, "psHash *", 0},{"pslib::psHash"},{0}};
static swig_type_info _swigt__p_p_psKernelType[] = {{"_p_p_psKernelType", 0, "psKernelType **", 0},{"_p_p_psKernelType"},{"_p_p_psF32"},{0}};
static swig_type_info _swigt__p_p_psS32[] = {{"_p_p_psS32", 0, "psS32 **", 0},{"_p_p_psS32"},{0}};
static swig_type_info _swigt__p_psS32[] = {{"_p_psS32", 0, "psS32 *", 0},{"_p_psS32"},{0}};
static swig_type_info _swigt__p_psStats[] = {{"pslib::psStats", 0, "psStats *", 0},{"pslib::psStats"},{0}};
static swig_type_info _swigt__p_psBitSet[] = {{"pslib::psBitSet", 0, "psBitSet *", 0},{"pslib::psBitSet"},{0}};
static swig_type_info _swigt__p_psPhotSystem[] = {{"pslib::psPhotSystem", 0, "psPhotSystem *", 0},{"pslib::psPhotSystem"},{0}};
static swig_type_info _swigt__p_psRandom[] = {{"pslib::psRandom", 0, "psRandom *", 0},{"pslib::psRandom"},{0}};
static swig_type_info _swigt__p_psMetadataItem_data[] = {{"pslib::psMetadataItem_data", 0, "psMetadataItem_data *", 0},{"pslib::psMetadataItem_data"},{0}};
static swig_type_info _swigt__p_psMinimization[] = {{"pslib::psMinimization", 0, "psMinimization *", 0},{"pslib::psMinimization"},{0}};
static swig_type_info _swigt__p_regex_t[] = {{"_p_regex_t", 0, "regex_t *", 0},{"_p_regex_t"},{0}};
static swig_type_info _swigt__p_psLookupStatusType[] = {{"_p_psLookupStatusType", 0, "psLookupStatusType *", 0},{"_p_psLookupStatusType"},{0}};
static swig_type_info _swigt__p_psArray[] = {{"pslib::psArray", 0, "psArray *", 0},{"pslib::psArray"},{0}};
static swig_type_info _swigt__p_psFixedPattern[] = {{"pslib::psFixedPattern", 0, "psFixedPattern *", 0},{"pslib::psFixedPattern"},{0}};
static swig_type_info _swigt__p_psCell[] = {{"pslib::psCell", 0, "psCell *", 0},{"pslib::psCell"},{0}};
static swig_type_info _swigt__p_psDPolynomial4D[] = {{"pslib::psDPolynomial4D", 0, "psDPolynomial4D *", 0},{"pslib::psDPolynomial4D"},{0}};
static swig_type_info _swigt__p_psPolynomial4D[] = {{"pslib::psPolynomial4D", 0, "psPolynomial4D *", 0},{"pslib::psPolynomial4D"},{0}};
static swig_type_info _swigt__p_p_psU64[] = {{"_p_p_psU64", 0, "psU64 **", 0},{"_p_p_psU64"},{0}};
static swig_type_info _swigt__p_p_psU16[] = {{"_p_p_psU16", 0, "psU16 **", 0},{"_p_p_psU16"},{0}};
static swig_type_info _swigt__p_psLookupTable[] = {{"pslib::psLookupTable", 0, "psLookupTable *", 0},{"pslib::psLookupTable"},{0}};
static swig_type_info _swigt__p_psU16[] = {{"_p_psU16", 0, "psU16 *", 0},{"_p_psU16"},{0}};
static swig_type_info _swigt__p_psU64[] = {{"_p_psU64", 0, "psU64 *", 0},{"_p_psU64"},{0}};
static swig_type_info _swigt__p_timeval[] = {{"_p_timeval", 0, "struct timeval *", 0},{"_p_timeval"},{0}};
static swig_type_info _swigt__p_void[] = {{"_p_void", 0, "void *", 0},{"_p_void"},{"_psPtr"},{0}};
static swig_type_info _swigt__p_p_void[] = {{"_p_p_void", 0, "void **", 0},{"_p_p_void"},{"_p_psPtr"},{0}};
static swig_type_info _swigt__p_psBool[] = {{"_p_psBool", 0, "psBool *", 0},{"_p_psBool"},{0}};
static swig_type_info _swigt__psMinimizeChi2PowellFunc[] = {{"_psMinimizeChi2PowellFunc", 0, "psMinimizeChi2PowellFunc", 0},{"_psMinimizeChi2PowellFunc"},{0}};
static swig_type_info _swigt__psMinimizePowellFunc[] = {{"_psMinimizePowellFunc", 0, "psMinimizePowellFunc", 0},{"_psMinimizePowellFunc"},{0}};
static swig_type_info _swigt__p_p_double[] = {{"_p_p_double", 0, "double **", 0},{"_p_p_double"},{"_p_p_psF64"},{0}};
static swig_type_info _swigt__p_psType[] = {{"pslib::psType", 0, "psType *", 0},{"pslib::psType"},{0}};
static swig_type_info _swigt__p_p_psS64[] = {{"_p_p_psS64", 0, "psS64 **", 0},{"_p_p_psS64"},{0}};
static swig_type_info _swigt__p_p_psS16[] = {{"_p_p_psS16", 0, "psS16 **", 0},{"_p_p_psS16"},{0}};
static swig_type_info _swigt__p_psS16[] = {{"_p_psS16", 0, "psS16 *", 0},{"_p_psS16"},{0}};
static swig_type_info _swigt__p_psS64[] = {{"_p_psS64", 0, "psS64 *", 0},{"_p_psS64"},{0}};
static swig_type_info _swigt__p_psPtr[] = {{"_p_psPtr", 0, "psPtr *", 0},{"_p_psPtr"},{"_p_p_void"},{0}};
static swig_type_info _swigt__p_p_psPtr[] = {{"_p_p_psPtr", 0, "psPtr **", 0},{"_p_p_psPtr"},{0}};
static swig_type_info _swigt__psPtr[] = {{"_psPtr", 0, "psPtr", 0},{"_psPtr"},{"_p_void"},{0}};
static swig_type_info _swigt__p_pthread_mutex_t[] = {{"_p_pthread_mutex_t", 0, "pthread_mutex_t *", 0},{"_p_pthread_mutex_t"},{0}};
static swig_type_info _swigt__p_psObservatory[] = {{"pslib::psObservatory", 0, "psObservatory *", 0},{"pslib::psObservatory"},{0}};
static swig_type_info _swigt__p_psScalar_data[] = {{"pslib::psScalar_data", 0, "psScalar_data *", 0},{"pslib::psScalar_data"},{0}};
static swig_type_info _swigt__p_psVector_data[] = {{"pslib::psVector_data", 0, "psVector_data *", 0},{"pslib::psVector_data"},{0}};
static swig_type_info _swigt__psMinimizeLMChi2Func[] = {{"_psMinimizeLMChi2Func", 0, "psMinimizeLMChi2Func", 0},{"_psMinimizeLMChi2Func"},{0}};
static swig_type_info _swigt__p_psMath[] = {{"pslib::psMath", 0, "psMath *", 0},{"pslib::psMath"},{0}};
static swig_type_info _swigt__p_tm[] = {{"_p_tm", 0, "struct tm *", 0},{"_p_tm"},{0}};
static swig_type_info _swigt__p_p_psComponent[] = {{"pslib::p_psComponent", 0, "p_psComponent *", 0},{"pslib::p_psComponent"},{0}};
static swig_type_info _swigt__p_p_p_psComponent[] = {{"_p_p_p_psComponent", 0, "struct p_psComponent **", 0},{"_p_p_p_psComponent"},{0}};
static swig_type_info _swigt__p_psDPolynomial2D[] = {{"pslib::psDPolynomial2D", 0, "psDPolynomial2D *", 0},{"pslib::psDPolynomial2D"},{0}};
static swig_type_info _swigt__p_psPolynomial2D[] = {{"pslib::psPolynomial2D", 0, "psPolynomial2D *", 0},{"pslib::psPolynomial2D"},{0}};
static swig_type_info _swigt__psComparePtrFcn[] = {{"_psComparePtrFcn", 0, "psComparePtrFcn", 0},{"_psComparePtrFcn"},{0}};
static swig_type_info _swigt__p_psPlaneTransform[] = {{"pslib::psPlaneTransform", 0, "psPlaneTransform *", 0},{"pslib::psPlaneTransform"},{0}};
static swig_type_info _swigt__p_psSphereTransform[] = {{"pslib::psSphereTransform", 0, "psSphereTransform *", 0},{"pslib::psSphereTransform"},{0}};
static swig_type_info _swigt__p_psPhotTransform[] = {{"pslib::psPhotTransform", 0, "psPhotTransform *", 0},{"pslib::psPhotTransform"},{0}};
static swig_type_info _swigt__p_psSpline1D[] = {{"pslib::psSpline1D", 0, "psSpline1D *", 0},{"pslib::psSpline1D"},{0}};
static swig_type_info _swigt__p_psProjection[] = {{"pslib::psProjection", 0, "psProjection *", 0},{"pslib::psProjection"},{0}};
static swig_type_info _swigt__p_psFPA[] = {{"pslib::psFPA", 0, "psFPA *", 0},{"pslib::psFPA"},{0}};
static swig_type_info _swigt__p_psErrorDescription[] = {{"pslib::psErrorDescription", 0, "psErrorDescription *", 0},{"pslib::psErrorDescription"},{0}};
static swig_type_info _swigt__p_psHashBucket[] = {{"pslib::psHashBucket", 0, "psHashBucket *", 0},{"pslib::psHashBucket"},{0}};
static swig_type_info _swigt__p_p_psHashBucket[] = {{"_p_p_psHashBucket", 0, "psHashBucket **", 0},{"_p_p_psHashBucket"},{0}};
static swig_type_info _swigt__p_p_p_p_psF32[] = {{"_p_p_p_p_psF32", 0, "psF32 ****", 0},{"_p_p_p_p_psF32"},{0}};
static swig_type_info _swigt__p_p_p_psF32[] = {{"_p_p_p_psF32", 0, "psF32 ***", 0},{"_p_p_p_psF32"},{0}};
static swig_type_info _swigt__p_psF32[] = {{"_p_psF32", 0, "psF32 *", 0},{"_p_psF32"},{0}};
static swig_type_info _swigt__p_p_psF32[] = {{"_p_p_psF32", 0, "psF32 **", 0},{"_p_p_psKernelType"},{"_p_p_psF32"},{0}};
static swig_type_info _swigt__p_gsl_rng[] = {{"_p_gsl_rng", 0, "gsl_rng *", 0},{"_p_gsl_rng"},{0}};
static swig_type_info _swigt__p_psGrommit[] = {{"pslib::psGrommit", 0, "psGrommit *", 0},{"pslib::psGrommit"},{0}};
static swig_type_info _swigt__psMemProblemCallback[] = {{"_psMemProblemCallback", 0, "psMemProblemCallback", 0},{"_psMemProblemCallback"},{0}};
static swig_type_info _swigt__psMemExhaustedCallback[] = {{"_psMemExhaustedCallback", 0, "psMemExhaustedCallback", 0},{"_psMemExhaustedCallback"},{0}};
static swig_type_info _swigt__psMemAllocateCallback[] = {{"_psMemAllocateCallback", 0, "psMemAllocateCallback", 0},{"_psMemAllocateCallback"},{"_psMemFreeCallback"},{0}};
static swig_type_info _swigt__psMemFreeCallback[] = {{"_psMemFreeCallback", 0, "psMemFreeCallback", 0},{"_psMemFreeCallback"},{"_psMemAllocateCallback"},{0}};
static swig_type_info _swigt__p_psHistogram[] = {{"pslib::psHistogram", 0, "psHistogram *", 0},{"pslib::psHistogram"},{0}};
static swig_type_info _swigt__p_p_psC32[] = {{"_p_p_psC32", 0, "psC32 **", 0},{"_p_p_psC32"},{0}};
static swig_type_info _swigt__p_psC32[] = {{"pslib::psC32", 0, "psC32 *", 0},{"pslib::psC32"},{0}};
static swig_type_info _swigt__p_psTime[] = {{"pslib::psTime", 0, "psTime const *", 0},{"pslib::psTime"},{0}};
static swig_type_info _swigt__p_p_p_p_psU8[] = {{"_p_p_p_p_psU8", 0, "psU8 ****", 0},{"_p_p_p_p_psU8"},{0}};
static swig_type_info _swigt__p_p_p_psU8[] = {{"_p_p_p_psU8", 0, "psU8 ***", 0},{"_p_p_p_psU8"},{0}};
static swig_type_info _swigt__p_psU8[] = {{"_p_psU8", 0, "psU8 *", 0},{"_p_psU8"},{0}};
static swig_type_info _swigt__p_p_psU8[] = {{"_p_p_psU8", 0, "psU8 **", 0},{"_p_p_psU8"},{0}};
static swig_type_info _swigt__p_psFits[] = {{"pslib::psFits", 0, "psFits *", 0},{"pslib::psFits"},{0}};
static swig_type_info _swigt__p_psListElem[] = {{"pslib::psListElem", 0, "psListElem *", 0},{"pslib::psListElem"},{0}};
static swig_type_info _swigt__p_psKernel[] = {{"pslib::psKernel", 0, "psKernel *", 0},{"pslib::psKernel"},{0}};
static swig_type_info _swigt__psFreeFcn[] = {{"_psFreeFcn", 0, "psFreeFcn", 0},{"_psFreeFcn"},{0}};
static swig_type_info _swigt__p_psDPolynomial3D[] = {{"pslib::psDPolynomial3D", 0, "psDPolynomial3D *", 0},{"pslib::psDPolynomial3D"},{0}};
static swig_type_info _swigt__p_psPolynomial3D[] = {{"pslib::psPolynomial3D", 0, "psPolynomial3D *", 0},{"pslib::psPolynomial3D"},{0}};
static swig_type_info _swigt__p_p_p_p_psF64[] = {{"_p_p_p_p_psF64", 0, "psF64 ****", 0},{"_p_p_p_p_psF64"},{0}};
static swig_type_info _swigt__p_p_p_psF64[] = {{"_p_p_p_psF64", 0, "psF64 ***", 0},{"_p_p_p_psF64"},{0}};
static swig_type_info _swigt__p_psF64[] = {{"_p_psF64", 0, "psF64 *", 0},{"_p_psF64"},{0}};
static swig_type_info _swigt__p_p_psF64[] = {{"_p_p_psF64", 0, "psF64 **", 0},{"_p_p_double"},{"_p_p_psF64"},{0}};
static swig_type_info _swigt__p_psExposure[] = {{"pslib::psExposure", 0, "psExposure *", 0},{"pslib::psExposure"},{0}};
static swig_type_info _swigt__p_p_p_psMemBlock[] = {{"_p_p_p_psMemBlock", 0, "psMemBlock ***", 0},{"_p_p_p_psMemBlock"},{0}};
static swig_type_info _swigt__p_psMemBlock[] = {{"pslib::psMemBlock", 0, "psMemBlock *", 0},{"pslib::psMemBlock"},{0}};
static swig_type_info _swigt__p_psSphere[] = {{"pslib::psSphere", 0, "struct psSphere *", 0},{"pslib::psSphere"},{0}};
static swig_type_info _swigt__p_psPlane[] = {{"pslib::psPlane", 0, "psPlane *", 0},{"pslib::psPlane"},{0}};
static swig_type_info _swigt__p_psScalar[] = {{"pslib::psScalar", 0, "psScalar *", 0},{"pslib::psScalar"},{0}};
static swig_type_info _swigt__p_psMetadata[] = {{"pslib::psMetadata", 0, "psMetadata *", 0},{"pslib::psMetadata"},{0}};
static swig_type_info _swigt__p_FILE[] = {{"_p_FILE", 0, "FILE *", 0},{"_p_FILE"},{0}};
static swig_type_info _swigt__p_psRegion[] = {{"pslib::psRegion", 0, "psRegion *", 0},{"pslib::psRegion"},{0}};

static swig_type_info *swig_types_initial[] = {
_swigt__p_psListIterator, 
_swigt__p_psMetadataIterator, 
_swigt__p_p_psC64, 
_swigt__p_psC64, 
_swigt__p_p_psS8, 
_swigt__p_psChip, 
_swigt__p_psErr, 
_swigt__p_psPlaneDistort, 
_swigt__p_p_psVector, 
_swigt__p_psVector, 
_swigt__p_psImage_data, 
_swigt__p_psReadout, 
_swigt__p_size_t, 
_swigt__p_p_psPolynomial1D, 
_swigt__p_psDPolynomial1D, 
_swigt__p_psPolynomial1D, 
_swigt__p_p_psU32, 
_swigt__p_psU32, 
_swigt__p_fitsfile, 
_swigt__p_psImage, 
_swigt__p_psList, 
_swigt__p_psMetadataItem, 
_swigt__p_psHash, 
_swigt__p_p_psKernelType, 
_swigt__p_p_psS32, 
_swigt__p_psS32, 
_swigt__p_psStats, 
_swigt__p_psBitSet, 
_swigt__p_psPhotSystem, 
_swigt__p_psRandom, 
_swigt__p_psMetadataItem_data, 
_swigt__p_psMinimization, 
_swigt__p_regex_t, 
_swigt__p_psLookupStatusType, 
_swigt__p_psArray, 
_swigt__p_psFixedPattern, 
_swigt__p_psCell, 
_swigt__p_psDPolynomial4D, 
_swigt__p_psPolynomial4D, 
_swigt__p_p_psU64, 
_swigt__p_p_psU16, 
_swigt__p_psLookupTable, 
_swigt__p_psU16, 
_swigt__p_psU64, 
_swigt__p_timeval, 
_swigt__p_void, 
_swigt__p_p_void, 
_swigt__p_psBool, 
_swigt__psMinimizeChi2PowellFunc, 
_swigt__psMinimizePowellFunc, 
_swigt__p_p_double, 
_swigt__p_psType, 
_swigt__p_p_psS64, 
_swigt__p_p_psS16, 
_swigt__p_psS16, 
_swigt__p_psS64, 
_swigt__p_psPtr, 
_swigt__p_p_psPtr, 
_swigt__psPtr, 
_swigt__p_pthread_mutex_t, 
_swigt__p_psObservatory, 
_swigt__p_psScalar_data, 
_swigt__p_psVector_data, 
_swigt__psMinimizeLMChi2Func, 
_swigt__p_psMath, 
_swigt__p_tm, 
_swigt__p_p_psComponent, 
_swigt__p_p_p_psComponent, 
_swigt__p_psDPolynomial2D, 
_swigt__p_psPolynomial2D, 
_swigt__psComparePtrFcn, 
_swigt__p_psPlaneTransform, 
_swigt__p_psSphereTransform, 
_swigt__p_psPhotTransform, 
_swigt__p_psSpline1D, 
_swigt__p_psProjection, 
_swigt__p_psFPA, 
_swigt__p_psErrorDescription, 
_swigt__p_psHashBucket, 
_swigt__p_p_psHashBucket, 
_swigt__p_p_p_p_psF32, 
_swigt__p_p_p_psF32, 
_swigt__p_psF32, 
_swigt__p_p_psF32, 
_swigt__p_gsl_rng, 
_swigt__p_psGrommit, 
_swigt__psMemProblemCallback, 
_swigt__psMemExhaustedCallback, 
_swigt__psMemAllocateCallback, 
_swigt__psMemFreeCallback, 
_swigt__p_psHistogram, 
_swigt__p_p_psC32, 
_swigt__p_psC32, 
_swigt__p_psTime, 
_swigt__p_p_p_p_psU8, 
_swigt__p_p_p_psU8, 
_swigt__p_psU8, 
_swigt__p_p_psU8, 
_swigt__p_psFits, 
_swigt__p_psListElem, 
_swigt__p_psKernel, 
_swigt__psFreeFcn, 
_swigt__p_psDPolynomial3D, 
_swigt__p_psPolynomial3D, 
_swigt__p_p_p_p_psF64, 
_swigt__p_p_p_psF64, 
_swigt__p_psF64, 
_swigt__p_p_psF64, 
_swigt__p_psExposure, 
_swigt__p_p_p_psMemBlock, 
_swigt__p_psMemBlock, 
_swigt__p_psSphere, 
_swigt__p_psPlane, 
_swigt__p_psScalar, 
_swigt__p_psMetadata, 
_swigt__p_FILE, 
_swigt__p_psRegion, 
0
};


/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */

static swig_constant_info swig_constants[] = {
{ SWIG_INT,     (char *) SWIG_prefix "PS_TYPE_S8", (long) PS_TYPE_S8, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TYPE_S16", (long) PS_TYPE_S16, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TYPE_S32", (long) PS_TYPE_S32, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TYPE_S64", (long) PS_TYPE_S64, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TYPE_U8", (long) PS_TYPE_U8, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TYPE_U16", (long) PS_TYPE_U16, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TYPE_U32", (long) PS_TYPE_U32, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TYPE_U64", (long) PS_TYPE_U64, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TYPE_F32", (long) PS_TYPE_F32, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TYPE_F64", (long) PS_TYPE_F64, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TYPE_C32", (long) PS_TYPE_C32, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TYPE_C64", (long) PS_TYPE_C64, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TYPE_BOOL", (long) PS_TYPE_BOOL, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TYPE_PTR", (long) PS_TYPE_PTR, 0, 0, 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_MASK_NAME", 0, 0, (void *)"psU8", 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_MIN_U8", (long) 0, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_MIN_U16", (long) 0, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_MIN_U32", (long) 0, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_MIN_U64", (long) 0, 0, 0, 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_BOOL_NAME", 0, 0, (void *)"psBool", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_S8_NAME", 0, 0, (void *)"psS8", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_S16_NAME", 0, 0, (void *)"psS16", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_S32_NAME", 0, 0, (void *)"psS32", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_S64_NAME", 0, 0, (void *)"psS64", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_U8_NAME", 0, 0, (void *)"psU8", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_U16_NAME", 0, 0, (void *)"psU16", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_U32_NAME", 0, 0, (void *)"psU32", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_U64_NAME", 0, 0, (void *)"psU64", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_F32_NAME", 0, 0, (void *)"psF32", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_F64_NAME", 0, 0, (void *)"psF64", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_C32_NAME", 0, 0, (void *)"psC32", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_C64_NAME", 0, 0, (void *)"psC64", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_PTR_NAME", 0, 0, (void *)"psPtr", 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_BADPIXEL_BITMASK", (long) 0x0f, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_DIMEN_SCALAR", (long) PS_DIMEN_SCALAR, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_DIMEN_VECTOR", (long) PS_DIMEN_VECTOR, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_DIMEN_TRANSV", (long) PS_DIMEN_TRANSV, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_DIMEN_IMAGE", (long) PS_DIMEN_IMAGE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_DIMEN_OTHER", (long) PS_DIMEN_OTHER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ERR_NONE", (long) PS_ERR_NONE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ERR_BASE", (long) PS_ERR_BASE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ERR_UNKNOWN", (long) PS_ERR_UNKNOWN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ERR_IO", (long) PS_ERR_IO, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ERR_LOCATION_INVALID", (long) PS_ERR_LOCATION_INVALID, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ERR_MEMORY_CORRUPTION", (long) PS_ERR_MEMORY_CORRUPTION, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ERR_MEMORY_DEREF_USAGE", (long) PS_ERR_MEMORY_DEREF_USAGE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ERR_BAD_PARAMETER_VALUE", (long) PS_ERR_BAD_PARAMETER_VALUE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ERR_BAD_PARAMETER_TYPE", (long) PS_ERR_BAD_PARAMETER_TYPE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ERR_BAD_PARAMETER_NULL", (long) PS_ERR_BAD_PARAMETER_NULL, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ERR_BAD_PARAMETER_SIZE", (long) PS_ERR_BAD_PARAMETER_SIZE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ERR_UNEXPECTED_NULL", (long) PS_ERR_UNEXPECTED_NULL, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ERR_OS_CALL_FAILED", (long) PS_ERR_OS_CALL_FAILED, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ERR_N_ERR_CLASSES", (long) PS_ERR_N_ERR_CLASSES, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_LOG_ABORT", (long) PS_LOG_ABORT, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_LOG_ERROR", (long) PS_LOG_ERROR, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_LOG_WARN", (long) PS_LOG_WARN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_LOG_INFO", (long) PS_LOG_INFO, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_LOG_NONE", (long) PS_LOG_NONE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_LOG_TO_STDERR", (long) PS_LOG_TO_STDERR, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_LOG_TO_STDOUT", (long) PS_LOG_TO_STDOUT, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TRACE_H", (long) 1, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_UNKNOWN_TRACE_LEVEL", (long) -9999, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_DEFAULT_TRACE_LEVEL", (long) -1, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_THE_OTHER_DEFAULT_TRACE_LEVEL", (long) 0, 0, 0, 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_TYPE_KERNEL_NAME", 0, 0, (void *)"psF32", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_AREA_NEGATIVE", 0, 0, (void *)"Specified number of rows (%d) or columns (%d) is invalid.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_NOT_AN_IMAGE", 0, 0, (void *)"The input psImage must have a PS_DIMEN_IMAGE dimension type.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_IMAGE_NULL", 0, 0, (void *)"Can not operate on a NULL psImage.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_IMAGE_TYPE_UNSUPPORTED", 0, 0, (void *)"Specified psImage type, %s, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_INTERPOLATE_METHOD_INVALID", 0, 0, (void *)"Specified interpolation method (%d) is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_REGION_NULL", 0, 0, (void *)"Specified psRegion is NULL.  Operation could not be performed.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_SUBSET_RANGE_INVALID", 0, 0, (void *)"Specified subset range, [%d:%d,%d:%d], is invalid or outside input psImage\'s boundaries, [0:%d,0:%d].", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_SUBSET_RANGE_MALFORMED", 0, 0, (void *)"Specified subset range, [%d:%d,%d:%d], is invalid.  Ranges must be incremental.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_SUBSECTION_NULL", 0, 0, (void *)"Specified subsection string can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_SUBSECTION_INVALID", 0, 0, (void *)"Specified subsection string, \'%s\', can not be parsed.  Must be in the form \'[x1:x2,y1:y2]\'.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_NOT_PARENT", 0, 0, (void *)"Specified psImage can not be a child of another psImage.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_INPLACE_NOTSUPPORTED", 0, 0, (void *)"Specified input and output psImage can not reference the same psImage.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_SUBSET_ZERO_SIZE", 0, 0, (void *)"Specified subset, [%d:%d,%d:%d], contains no pixel data.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_IMAGE_MASK_SIZE", 0, 0, (void *)"Input psImage mask size, %dx%d, does not match psImage input size, %dx%d.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_IMAGE_MASK_TYPE", 0, 0, (void *)"Input psImage mask type, %s, is not the supported mask datatype of %s.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_BAD_STAT", 0, 0, (void *)"Specified statistic option, %d, is not valid.  Must specify one and only one statistic type.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_NO_STAT_OPTIONS", 0, 0, (void *)"Specified statistic option did not indicate any operation to perform.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_STAT_NULL", 0, 0, (void *)"Specified statistic can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_SLICE_DIRECTION_INVALID", 0, 0, (void *)"Specified slice direction, %d, is invalid.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_PARAMETER_OUTOF_TYPERANGE", 0, 0, (void *)"Specified %s value, %g, is outside of psImage type\'s range (%s: %g to %g).", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_nSamples_TOOSMALL", 0, 0, (void *)"Specified number of samples, %d, must be greater than 1 to make a line.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_LINE_NOT_IN_IMAGE", 0, 0, (void *)"Specified line, (%f,%f)->(%f,%f), does not entirely lie in psImage\'s boundaries, [0:%d,0:%d].", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_RADII_VECTOR_NULL", 0, 0, (void *)"Specified radii vector can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_CENTER_NOT_IN_IMAGE", 0, 0, (void *)"Specified center, (%g,%g), is outside of the psImage boundaries, [0:%d,0:%d].", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_RADII_VECTOR_TOOSMALL", 0, 0, (void *)"Input radii vector size, %d, can not be less than 2.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageFFT_IMAGE_TYPE_UNSUPPORTED", 0, 0, (void *)"Input psImage type (%s) is not supported. Valid image types are psF32 and psC32.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageFFT_REVERSE_NOT_COMPLEX", 0, 0, (void *)"Input psImage (%s) is not complex.  Reverse FFT operation requires a complex psImage input.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageFFT_FORWARD_NOT_REAL", 0, 0, (void *)"Input psImage (%s) is not real.  Forward FFT operation requires a real psImage input.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageFFT_FFTW_PLAN_NULL", 0, 0, (void *)"Could not create a valid FFT plan to perform the transform.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageFFT_REAL_IMAG_TYPE_MISMATCH", 0, 0, (void *)"Real psImage type (%s) and imaginary psImage type (%s) must be the same.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageFFT_REAL_IMAG_SIZE_MISMATCH", 0, 0, (void *)"Real psImage size (%dx%d) and imaginary psImage size (%dx%d) must be the same.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageFFT_NONREAL_NOTSUPPORTED", 0, 0, (void *)"Input psImage type, %s, is required to be either psF32 or psF64.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageFFT_NONCOMPLEX_NOTSUPPORTED", 0, 0, (void *)"Input psImage type, %s, is required to be either psC32 or psC64.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageFFT_REAL_FORWARD_NOTSUPPORTED", 0, 0, (void *)"The PS_FFT_FORWARD and PS_FFT_REAL_RESULT combinition is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageFFT_FORWARD_REVERSE", 0, 0, (void *)"Can not specify both PS_FFT_FORWARD and PS_FFT_REVERSE options.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageFFT_NO_DIRECTION_OPTION", 0, 0, (void *)"Must specify either PS_FFT_FORWARD or PS_FFT_REVERSE option.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_FILENAME_NULL", 0, 0, (void *)"Specified filename can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_FILENAME_INVALID", 0, 0, (void *)"Could not open file,\'%s\'.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_EXTNAME_INVALID", 0, 0, (void *)"Could not find HDU with extension name \'%s\' in file %s.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_EXTNUM_INVALID", 0, 0, (void *)"Could not find HDU #%d in file %s.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_DATATYPE_UNKNOWN", 0, 0, (void *)"Could not determine image data type for file %s.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_IMAGE_DIM_UNKNOWN", 0, 0, (void *)"Could not determine image dimensions for file %s.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_IMAGE_SIZE_UNKNOWN", 0, 0, (void *)"Could not determine image size for file %s.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_IMAGE_DIMENSION_UNSUPPORTED", 0, 0, (void *)"Image number of dimensions, %d, is not valid.  Only two or three dimensions supported for FITS I/O.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_FITS_TYPE_UNSUPPORTED", 0, 0, (void *)"FITS image type, BITPIX=%d, in file %s is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_READ_FAILED", 0, 0, (void *)"Reading from FITS file %s failed.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_TYPE_UNSUPPORTED", 0, 0, (void *)"Input psImage type, %s, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_WRITE_EXTNUM_INVALID", 0, 0, (void *)"Specified extension number, %d, must not exceed number of HDUs, %d, by more than one.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_FILENAME_CREATE_FAILED", 0, 0, (void *)"Could not create file,\'%s\'.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_CREATE_EXTENSION_FAILED", 0, 0, (void *)"Could not create EXTNAME keyword for file,\'%s\'.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_CREATE_HDU_FAILED", 0, 0, (void *)"Could not create HDU for writing psImage in file,\'%s\'.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageIO_WRITE_FAILED", 0, 0, (void *)"Could not write psImage data to file,\'%s\'.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageManip_MAXMIN", 0, 0, (void *)"Specified min value, %g, can not be greater than the specified max value, %g.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageManip_MAXMIN_REAL", 0, 0, (void *)"Specified real-portion of min value, %g, can not be greater than the real-portion of max value, %g.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageManip_MAXMIN_IMAG", 0, 0, (void *)"Specified imaginary-portion of min value, %g, can not be greater than the imaginary-portion of max value, %g.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageManip_OPERATION_NULL", 0, 0, (void *)"Operation can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageManip_OVERLAY_TYPE_MISMATCH", 0, 0, (void *)"Input overlay psImage type, %s, must match input psImage type, %s.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageManip_CLIP_VALUE_INVALID", 0, 0, (void *)"Specified %s value, %g%+gi, is not the the range of input psImage\'s valid pixel values (%s), i.e. [%g:%g].", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageManip_OVERLAY_OPERATOR_INVALID", 0, 0, (void *)"Specified operation, \'%s\', is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageManip_SCALE_NOT_POSITIVE", 0, 0, (void *)"Specified scale value, %d, must be a positive value.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageManip_INTERPOLATION_MODE_UNSUPPORTED", 0, 0, (void *)"Specified interpolation mode, %d, is unsupported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageConvolve_SHIFT_NULL", 0, 0, (void *)"Specified shift vectors can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageConvolve_KERNEL_NULL", 0, 0, (void *)"Specified psKernel can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageConvolve_SHIFT_TYPE_MISMATCH", 0, 0, (void *)"Input t-, x-, and y-shift vector types (%s/%s/%s) must match.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageConvolve_FFT_FAILED", 0, 0, (void *)"Failed to perform a fourier transform of input image.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageConvolve_KERNEL_FFT_FAILED", 0, 0, (void *)"Failed to perform a fourier transform of kernel.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageConvolve_KERNEL_TOO_LARGE", 0, 0, (void *)"Specified psKernel size, %dx%d, can not be larger than input psImage size, %dx%d.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImage_COEFF_NULL", 0, 0, (void *)"Polynomial coefficients cannot be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psImageManip_TRANSFORM_NULL", 0, 0, (void *)"Specified input transform can not be NULL", 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_CUT_X_POS", (long) PS_CUT_X_POS, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_CUT_X_NEG", (long) PS_CUT_X_NEG, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_CUT_Y_POS", (long) PS_CUT_Y_POS, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_CUT_Y_NEG", (long) PS_CUT_Y_NEG, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_INTERPOLATE_FLAT", (long) PS_INTERPOLATE_FLAT, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_INTERPOLATE_BILINEAR", (long) PS_INTERPOLATE_BILINEAR, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_INTERPOLATE_LANCZOS2", (long) PS_INTERPOLATE_LANCZOS2, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_INTERPOLATE_LANCZOS3", (long) PS_INTERPOLATE_LANCZOS3, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_INTERPOLATE_LANCZOS4", (long) PS_INTERPOLATE_LANCZOS4, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_INTERPOLATE_BILINEAR_VARIANCE", (long) PS_INTERPOLATE_BILINEAR_VARIANCE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_INTERPOLATE_LANCZOS2_VARIANCE", (long) PS_INTERPOLATE_LANCZOS2_VARIANCE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_INTERPOLATE_LANCZOS3_VARIANCE", (long) PS_INTERPOLATE_LANCZOS3_VARIANCE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_INTERPOLATE_LANCZOS4_VARIANCE", (long) PS_INTERPOLATE_LANCZOS4_VARIANCE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_INTERPOLATE_NUM_MODES", (long) PS_INTERPOLATE_NUM_MODES, 0, 0, 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psLookupTable_FILE_NOT_FOUND", 0, 0, (void *)"Failed to open file %s.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psLookupTable_PARSE_VALUE", 0, 0, (void *)"Unable to parse string, %s on line %lld.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psLookupTable_PARSE_TYPE", 0, 0, (void *)"Unable to parse type, %s on line %lld.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psLookupTable_PARSE_GENERAL", 0, 0, (void *)"Unable to read lookup table item, %s on line %lld", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psLookupTable_INTERPOLATE_HIGH", 0, 0, (void *)"High index too big, %d.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psLookupTable_INTERPOLATE_LOW", 0, 0, (void *)"Low index too small, %d.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psLookupTable_DIVIDE_BY_ZERO", 0, 0, (void *)"Divide by zero error during interpolation.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psLookupTable_INVALID_TYPE", 0, 0, (void *)"Invalid psLookupType, %d;", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psLookupTable_TABLE_INVALID", 0, 0, (void *)"Lookup table is invalid.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_NULL", 0, 0, (void *)"The input psFits object can not NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_FILENAME_INVALID", 0, 0, (void *)"Could not open file,\'%s\'.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_FILENAME_NULL", 0, 0, (void *)"Specified filename can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_EXTNAME_NULL", 0, 0, (void *)"Specified extension name can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_EXTNAME_INVALID", 0, 0, (void *)"Could not find HDU \'%s\' in file %s.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_EXTNUM_ABS_MOVE_FAILED", 0, 0, (void *)"Could not move to specified HDU #%d in file %s.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_EXTNUM_REL_MOVE_FAILED", 0, 0, (void *)"Could not move %d HDUs from current position in file %s.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_GET_EXTNUM_FAILED", 0, 0, (void *)"Failed to determine the current HDU number in file %s.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_GETNUMHDUS_FAILED", 0, 0, (void *)"Failed to determine the number of HDUs in file %s.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_GETHDUTYPE_FAILED", 0, 0, (void *)"Failed to determine an HDU type in file %s.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_GETNUMKEYS_FAILED", 0, 0, (void *)"Failed to determine the number of header keys in file %s.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_GET_TABLE_SIZE_FAILED", 0, 0, (void *)"Failed to determine the size of the current HDU table.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_FILENAME_CREATE_FAILED", 0, 0, (void *)"Could not create file,\'%s\'.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_TYPE_UNSUPPORTED", 0, 0, (void *)"Specified type, %s, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_CREATE_HDU_FAILED", 0, 0, (void *)"Could not create new image HDU in file,\'%s\'.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_GET_HDU_TYPE_FAILED", 0, 0, (void *)"Could not determine the HDU type.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_NOT_IMAGE_TYPE", 0, 0, (void *)"Current FITS HDU type must be an image.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_NOT_TABLE_TYPE", 0, 0, (void *)"Current FITS HDU type must be a table.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_TABLE_EMPTY", 0, 0, (void *)"Can\'t create a table without any rows.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_CFITSIO_ERROR", 0, 0, (void *)"CFITSIO error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_METATYPE_INVALID", 0, 0, (void *)"Specified FITS metadata type, %c, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_METADATA_ADD_FAILED", 0, 0, (void *)"Failed to add metadata item, %s.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_WRITE_FAILED", 0, 0, (void *)"Could not write data to file,\'%s\'.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_IMAGE_NULL", 0, 0, (void *)"The input psImage was NULL.  Need a non-NULL psImage for operation to be performed.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_METADATA_NULL", 0, 0, (void *)"The input psMetadata was NULL.  Need a non-NULL psMetadata for operation to be performed.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_METADATA_PTYPE_UNSUPPORTED", 0, 0, (void *)"A metadata item\'s primative type, %d, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_ROW_INVALID", 0, 0, (void *)"Specified row, %d, is not valid for current table of %d rows.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_GET_TABLE_ELEMENT", 0, 0, (void *)"Failed to retrieve table element (%d,%d).\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_FIND_COLUMN", 0, 0, (void *)"Specified column, %s, was not found.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_GET_COLTYPE", 0, 0, (void *)"Could not determine the datatype of the table column.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_TABLE_READ_COL", 0, 0, (void *)"Failed to read table column.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_DATATYPE_UNKNOWN", 0, 0, (void *)"Could not determine image data type.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_IMAGE_DIM_UNKNOWN", 0, 0, (void *)"Could not determine image dimensions.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_IMAGE_DIMENSION_UNSUPPORTED", 0, 0, (void *)"Image number of dimensions, %d, is not valid.  Only two or three dimensions supported for FITS I/O.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_IMAGE_SIZE_UNKNOWN", 0, 0, (void *)"Could not determine image size.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_FITS_TYPE_UNSUPPORTED", 0, 0, (void *)"FITS image type, BITPIX=%d, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_READ_FAILED", 0, 0, (void *)"Reading FITS file failed.\nCFITSIO Error: %s", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_IMAGE_UPDATE_TYPE_MISMATCH", 0, 0, (void *)"Can not update a %s image given a %s image.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFits_FITS_Z_SMALL", 0, 0, (void *)"Current FITS HDU has %d z-planes, but z-plane %d was specified.", 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_FITS_TYPE_NONE", (long) PS_FITS_TYPE_NONE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_FITS_TYPE_IMAGE", (long) PS_FITS_TYPE_IMAGE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_FITS_TYPE_BINARY_TABLE", (long) PS_FITS_TYPE_BINARY_TABLE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_FITS_TYPE_ASCII_TABLE", (long) PS_FITS_TYPE_ASCII_TABLE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_FITS_TYPE_ANY", (long) PS_FITS_TYPE_ANY, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_LOOKUP_SUCCESS", (long) PS_LOOKUP_SUCCESS, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_LOOKUP_PAST_TOP", (long) PS_LOOKUP_PAST_TOP, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_LOOKUP_PAST_BOTTOM", (long) PS_LOOKUP_PAST_BOTTOM, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_LOOKUP_ERROR", (long) PS_LOOKUP_ERROR, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_PARSE_SUCCESS", (long) PS_PARSE_SUCCESS, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_PARSE_ERROR_TYPE", (long) PS_PARSE_ERROR_TYPE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_PARSE_ERROR_VALUE", (long) PS_PARSE_ERROR_VALUE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_PARSE_ERROR_GENERAL", (long) PS_PARSE_ERROR_GENERAL, 0, 0, 0},
{ SWIG_FLOAT,   (char *) SWIG_prefix "PS_DETERMINE_BRACKET_STEP_SIZE", 0, (double) 0.10, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_MAX_LMM_ITERATIONS", (long) 100, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_MAX_MINIMIZE_ITERATIONS", (long) 100, 0, 0, 0},
{ SWIG_FLOAT,   (char *) SWIG_prefix "PS_LEFT_SPLINE_DERIV", 0, (double) 0.0, 0, 0},
{ SWIG_FLOAT,   (char *) SWIG_prefix "PS_RIGHT_SPLINE_DERIV", 0, (double) 0.0, 0, 0},
{ SWIG_FLOAT,   (char *) SWIG_prefix "PS_ONE", 0, (double) 1.0, 0, 0},
{ SWIG_FLOAT,   (char *) SWIG_prefix "PS_PI", 0, (double) 3.1415926535897932384626433832795029, 0, 0},
{ SWIG_FLOAT,   (char *) SWIG_prefix "PS_PI_2", 0, (double) 1.5707963267948966192313216916397514, 0, 0},
{ SWIG_FLOAT,   (char *) SWIG_prefix "PS_PI_4", 0, (double) 0.7853981633974483096156608458198757, 0, 0},
{ SWIG_FLOAT,   (char *) SWIG_prefix "PS_1_PI", 0, (double) 0.3183098861837906715377675267450287, 0, 0},
{ SWIG_FLOAT,   (char *) SWIG_prefix "PS_2_PI", 0, (double) 0.6366197723675813430755350534900574, 0, 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psVectorFFT_TYPE_NOT_F32_C32", 0, 0, (void *)"Input psVector type, %s, is not supported. Valid data types are psF32 and psC32.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psVectorFFT_REVERSE_NOT_COMPLEX", 0, 0, (void *)"Input psVector (%s) is not complex.  Reverse FFT operation requires a complex input.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psVectorFFT_FORWARD_NOT_REAL", 0, 0, (void *)"Input psVector (%s) is not real.  Forward FFT operation requires a real input.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psVectorFFT_FFTW_PLAN_NULL", 0, 0, (void *)"Could not create a valid FFT plan to perform the transform.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psVectorFFT_TYPE_UNSUPPORTED", 0, 0, (void *)"Specified psVector type, %s, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psVectorFFT_REAL_IMAG_TYPE_MISMATCH", 0, 0, (void *)"Real psVector type, %s, and imaginary psVector type, %s, must be the same.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psVectorFFT_REAL_IMAG_SIZE_MISMATCH", 0, 0, (void *)"Real psVector size, %d, and imaginary psVector size, %d, must be the same.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psVectorFFT_NONREAL_NOTSUPPORTED", 0, 0, (void *)"Input psVector type, %s, is required to be either psF32 or psF64.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psVectorFFT_NONCOMPLEX_NOTSUPPORTED", 0, 0, (void *)"Input psVector type, %s, is required to be either psC32 or psC64.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psVectorFFT_DIRECTION_NOTSET", 0, 0, (void *)"Must specify the direction as either PS_FFT_FORWARD or PS_FFT_REVERSE.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psStats_NOT_F32_F64", 0, 0, (void *)"Invalid data type, %s.  Only psF32 and psF64 data types are supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psStats_VECTOR_TYPE_UNSUPPORTED", 0, 0, (void *)"Input psVector type, %s, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psStats_YVAL_OUT_OF_RANGE", 0, 0, (void *)"Specified yVal, %g, is not within y-range, %g to %g.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psStats_ROBUST_QUARTILE_BINS_FAILED", 0, 0, (void *)"Could not determine the robust lower/upper quartile bin numbers.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psStats_STATS_FAILED", 0, 0, (void *)"Failed to calculate the specified statistic.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psStats_STATS_SAMPLE_MEDIAN_SORT_PROBLEM", 0, 0, (void *)"Failed to sort input data.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psStats_STATS_VECTOR_BIN_DISECT_PROBLEM", 0, 0, (void *)"Failed to determine the bin number of a data element.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psStats_STATS_FIT_QUADRATIC_POLYNOMIAL_1D_FIT", 0, 0, (void *)"Failed to fit a 1-dimensional polynomial to the three specified data points.  Returning NAN.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psStats_STATS_FIT_QUADRATIC_POLY_MEDIAN", 0, 0, (void *)"Failed to determine the median of the fitted polynomial.  Returning NAN.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psStats_ROBUST_STATS_CLIPPED_STATS", 0, 0, (void *)"Failed to determine clipped statistics.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psStats_STATS_POLY_MEDIAN_OUT_OF_RANGE", 0, 0, (void *)"The requested y-value does not fall with the specified range of x-values.  Returning NAN.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFunctions_INVALID_POLYNOMIAL_TYPE", 0, 0, (void *)"Unknown polynomial type 0x%x found.  Evaluation failed.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFunctions_TYPE_NOT_SUPPORTED", 0, 0, (void *)"Input psVector type, %s, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psFunctions_NOT_ENOUGH_DATAPOINTS", 0, 0, (void *)"Given vector does not have enough data points for %d-order interpolation.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psRandom_UNKNOWN_RANDFOM_NUMBER_GENERATOR_TYPE", 0, 0, (void *)"Unknown Random Number Generator Type", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psRandom_NULL_RANDOM_VAR", 0, 0, (void *)"Random variable is NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMatrix_COUNT_DIFFERS", 0, 0, (void *)"Number of elements inconsistent, %d vs %d.  Number of elements must match.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMatrix_IMAGE_SIZE_DIFFERS", 0, 0, (void *)"Specified psImage dimensions differed, %dx%d vs %dx%d.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMatrix_TYPE_MISMATCH", 0, 0, (void *)"Specified data type, %s, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMatrix_MIN_COMPLEX_SUPPORT", 0, 0, (void *)"The minimum operation is not supported with complex data.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMatrix_MAX_COMPLEX_SUPPORT", 0, 0, (void *)"The maximum operation is not supported with complex data.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMatrix_OPERATION_UNSUPPORTED", 0, 0, (void *)"Specified operation, %s, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMatrix_DIMEN_OTHER_FOUND", 0, 0, (void *)"%s\'s dimensionality is PS_DIMEN_OTHER, which is  not allowed.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMatrix_OUTPUT_VECTOR_NOT_CREATED", 0, 0, (void *)"Couldn\'t create a proper output psVector.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMatrix_OUTPUT_IMAGE_NOT_CREATED", 0, 0, (void *)"Couldn\'t create a proper output psImage.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMatrix_DIMEN_INVALID", 0, 0, (void *)"Specified parameter, %s, has invalid dimensionality, %d.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMatrix_VECTOR_EMPTY", 0, 0, (void *)"Input psVector contains no elements.  No data to perform operation with.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMatrix_IMAGE_EMPTY", 0, 0, (void *)"Input psImage contains no pixels.  No data to perform operation with.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMatrix_TRANSPOSE_MISMATCH", 0, 0, (void *)"Number of rows do not match number of columns.", 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_POLYNOMIAL_ORD", (long) PS_POLYNOMIAL_ORD, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_POLYNOMIAL_CHEB", (long) PS_POLYNOMIAL_CHEB, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_RANDOM_TAUS", (long) PS_RANDOM_TAUS, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_SAMPLE_MEAN", (long) PS_STAT_SAMPLE_MEAN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_SAMPLE_MEDIAN", (long) PS_STAT_SAMPLE_MEDIAN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_SAMPLE_STDEV", (long) PS_STAT_SAMPLE_STDEV, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_SAMPLE_QUARTILE", (long) PS_STAT_SAMPLE_QUARTILE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_ROBUST_MEAN", (long) PS_STAT_ROBUST_MEAN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_ROBUST_MEDIAN", (long) PS_STAT_ROBUST_MEDIAN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_ROBUST_MODE", (long) PS_STAT_ROBUST_MODE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_ROBUST_STDEV", (long) PS_STAT_ROBUST_STDEV, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_ROBUST_QUARTILE", (long) PS_STAT_ROBUST_QUARTILE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_CLIPPED_MEAN", (long) PS_STAT_CLIPPED_MEAN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_CLIPPED_STDEV", (long) PS_STAT_CLIPPED_STDEV, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_MAX", (long) PS_STAT_MAX, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_MIN", (long) PS_STAT_MIN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_USE_RANGE", (long) PS_STAT_USE_RANGE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_USE_BINSIZE", (long) PS_STAT_USE_BINSIZE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_STAT_ROBUST_FOR_SAMPLE", (long) PS_STAT_ROBUST_FOR_SAMPLE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_FFT_FORWARD", (long) PS_FFT_FORWARD, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_FFT_REVERSE", (long) PS_FFT_REVERSE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_FFT_REAL_RESULT", (long) PS_FFT_REAL_RESULT, 0, 0, 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORNAME_DOMAIN", 0, 0, (void *)"psLib.collections.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psArray_REALLOC_NULL", 0, 0, (void *)"psArrayRealloc must be given a non-NULL psArray to resize.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psArray_ARRAY_NULL", 0, 0, (void *)"Specified psArray can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psArray_POSITION_BEYOND_NALLOC", 0, 0, (void *)"Specified position, %d, is greater than the allocated size of the array, %d.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psVector_REALLOC_NULL", 0, 0, (void *)"psVectorRealloc must a given a non-NULL psVector to resize.  Desired datatype unknown.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psVector_NOT_A_VECTOR", 0, 0, (void *)"The input psVector must have a vector dimension type.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psVector_SORT_NULL", 0, 0, (void *)"psVectorSort can not sort a NULL psVector.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psVector_UNSUPPORTED_TYPE", 0, 0, (void *)"Input psVector is an unsupported type (%d).", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psBitSet_ALLOC_NEG_SIZE", 0, 0, (void *)"The number of bit in a psBitSet (%d) must be greater than zero.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psBitSet_SET_NULL", 0, 0, (void *)"Can not operate on a NULL psBitSet.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psBitSet_BIT_OUTOFRANGE", 0, 0, (void *)"The specified bit position (%d) is invalid.  Position must be between 0 and %d.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psBitSet_OPERATOR_NULL", 0, 0, (void *)"Specified operator is NULL.  Must specify desired operator.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psBitSet_OPERATOR_INVALID", 0, 0, (void *)"Specified operator, %s, is invalid.  Valid operators are AND, OR, and XOR.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psBitSet_FIRST_OPERAND_NULL", 0, 0, (void *)"First psBitSet operand can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psBitSet_SECOND_OPERAND_NULL", 0, 0, (void *)"Second psBitSet operand can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psBitSet_OPERANDS_SIZE_DIFFER", 0, 0, (void *)"The psBitSet operand must be the same size.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psBitSet_NOT_OP_FAILED", 0, 0, (void *)"Could not perform NOT operation.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psBitSet_OPERAND_NULL", 0, 0, (void *)"Operand can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psScalar_UNSUPPORTED_TYPE", 0, 0, (void *)"Specified datatype (%d) is unsupported by psScalar.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psScalar_COPY_NULL", 0, 0, (void *)"Can not copy a NULL psScalar.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psHash_KEY_NULL", 0, 0, (void *)"Input key can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psHash_TABLE_NULL", 0, 0, (void *)"Input psHash can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psHash_DATA_NULL", 0, 0, (void *)"Input data can not be NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psList_LOCATION_INVALID", 0, 0, (void *)"Specified location, %d, is invalid.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psList_ITERATOR_INVALID", 0, 0, (void *)"Specified iterator is not valid.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psList_ITERATOR_NULL", 0, 0, (void *)"Specified iterator is NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psList_ITERATOR_NONMUTABLE", 0, 0, (void *)"Specified iterator indicates list is non-mutable.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psList_LIST_NULL", 0, 0, (void *)"Specified psList reference is NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psList_DATA_NULL", 0, 0, (void *)"Specified data item is NULL.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psList_DATA_NOT_FOUND", 0, 0, (void *)"Specified data item is not found in the psList.", 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_LIST_HEAD", (long) PS_LIST_HEAD, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_LIST_TAIL", (long) PS_LIST_TAIL, 0, 0, 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_FILE_NOT_FOUND", 0, 0, (void *)"Failed to open file %s.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_FILE_TOO_MANY_ROWS", 0, 0, (void *)"Too many rows found in file %s. Max number of rows allowed is %d.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_TIME_POSTDATES_TABLE", 0, 0, (void *)"Specified psTime postdates (%g) the table of %s information.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_TIME_PREDATES_TABLE", 0, 0, (void *)"Specified psTime predates (%g) the table of %s information.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_TIME_POSTDATES_TABLES", 0, 0, (void *)"Specified psTime postdates (%g) all tables of %s information.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_TIME_PREDATES_TABLES", 0, 0, (void *)"Specified psTime predates (%g) all tables of %s information.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_TABLE_DUPLICATE_ROWS", 0, 0, (void *)"The %s table was found to have two rows of the same time value.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_TYPE_UNKNOWN", 0, 0, (void *)"Specified type, %d, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_TYPE_INCORRECT", 0, 0, (void *)"Specified type, %d, is incorrect.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_TYPE_MISMATCH", 0, 0, (void *)"Specified psTime parameters must have same type.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_GET_TOD_FAILED", 0, 0, (void *)"Failed to determine the current time from gettimeofday function.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_CONVERT_TIME_TO_STRING_FAILED", 0, 0, (void *)"Failed to convert a time via strftime function.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_APPEND_MSEC_FAILED", 0, 0, (void *)"Failed to append millisecond to time string with snprintf function.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_USEC_INVALID", 0, 0, (void *)"The psTime usec attribute value, %u, is invalid.  Must be less than 1e6.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_ISOTIME_MALFORMED", 0, 0, (void *)"Specified ISO Time string, \'%s\', is malformed.  Must be in \'YYYY-MM-DDThh:mm:ss.sss\' format.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_INTERPOLATION_FAILED", 0, 0, (void *)"Failed time table interpolation.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_INTERPOLATION_FAILED_NAME", 0, 0, (void *)"Failed time table interpolation for \'%s\'.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED", 0, 0, (void *)"Failed find \'%s\' in time metadata.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_BAD_TABLE_COUNT", 0, 0, (void *)"Incorrect number of table files entered. Found: %d. Expected: %d.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psTime_BAD_VECTOR", 0, 0, (void *)"Incorrect vector size. Size: %d, Expected %d.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psCoord_PROJECTION_TYPE_UNDEFINED", 0, 0, (void *)"The projection type, %s, is undefined.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psCoord_PROJECTION_TYPE_UNKNOWN", 0, 0, (void *)"The projection type, %d, is unknown.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psCoord_UNITS_UNKNOWN", 0, 0, (void *)"Specified units, 0x%x, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psCoord_OFFSET_MODE_UNKNOWN", 0, 0, (void *)"Specified offset mode, 0x%x, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psCoord_INVALID_MJD", 0, 0, (void *)"Specified time is less than 1900.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psAstrometry_NONLINEAR_TRANSFORM", 0, 0, (void *)"The %s transfrom is not linear.  Only linear transforms are supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_METATYPE_INVALID", 0, 0, (void *)"Specified psMetadataType, %d, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_FORMAT_INVALID", 0, 0, (void *)"Specified print format, %%%c, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH", 0, 0, (void *)"Specified psMetadataType, %d, is incorrect. Expected %d.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_ADD_LIST_FAILED", 0, 0, (void *)"Failed to add metadata item, %s, to items list.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_ADD_TABLE_FAILED", 0, 0, (void *)"Failed to add metadata item, %s, to items table.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_REMOVE_LIST_FAILED", 0, 0, (void *)"Failed to remove metadata item, %s, from metadata list.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_REMOVE_LIST_INDEX_FAILED", 0, 0, (void *)"Failed to remove metadata item, at index %d, from metadata list.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_REMOVE_TABLE_FAILED", 0, 0, (void *)"Failed to remove metadata item, %s, from metadata table.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_ADD_COLLECTION_FAILED", 0, 0, (void *)"Failed to add metadata item, %s, to metadata collection list.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_ADD_FAILED", 0, 0, (void *)"Failed to add metadata item to metadata collection list.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_FIND_FAILED", 0, 0, (void *)"Could not find metadata item, %s.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_FIND_INDEX_FAILED", 0, 0, (void *)"Could not find metadata item at index %d.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_DUPLICATE_NOT_ALLOWED", 0, 0, (void *)"Duplicate metadata item name is not allowed.  Use a psMetadataFlags option to allow such action.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_REGEX_INVALID", 0, 0, (void *)"Specified regular expression is invalid.  %s.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadata_LOCATION_INVALID", 0, 0, (void *)"Specified location, %d, is invalid.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadataIO_TYPE_INVALID", 0, 0, (void *)"Specified type, %d, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadataIO_EXTNUM_NOTPOSITIVE", 0, 0, (void *)"Specified extension number, %d, is invalid.  Value must be positive if no extension name is given.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadataIO_FITS_METATYPE_INVALID", 0, 0, (void *)"Specified FITS metadata type, %c, is not supported.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadataIO_ADD_FAILED", 0, 0, (void *)"Failed to add metadata item, %s.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadataIO_FILE_OPEN_FAILED", 0, 0, (void *)"Failed to open file \'%s\'. Check if it exists and it has the proper permissions.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadataIO_FILE_MULTIPLE_CHAR", 0, 0, (void *)"More than one \'%c\' character not allowed.  Found on line %u of %s.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadataIO_FILE_ELEMENT_NULL", 0, 0, (void *)"Failed to read a metadata %s on line %u of %s.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadataIO_FILE_TYPE_INVALID", 0, 0, (void *)"Metadata type \'%s\', found on line %u of %s, is not invalid.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadataIO_OVERWRITE_ITEM", 0, 0, (void *)"Duplicate Metadata item, %s, found on line %u of %s.  Overwrite not allowed.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadataIO_PARSE_FAILED", 0, 0, (void *)"Failed to parse the value \'%s\' of metadata item %s, type %s, on line %u of %s.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadataIO_NO_NAME", 0, 0, (void *)"Failed to find key \'name\' in table on line %u of %s.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadataIO_TYPE_INVALID_LINE_FILE", 0, 0, (void *)"Specified type, %s, is not supported on line %u of %s.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadataIO_TAG_MISMATCH", 0, 0, (void *)"Start tag, %s and end tag, %s do not agree.", 0},
{ SWIG_STRING,  (char *) SWIG_prefix "PS_ERRORTEXT_psMetadataIO_TAG_UNKNOWN", 0, 0, (void *)"Invalid end tag name, %s.", 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_PROJ_TAN", (long) PS_PROJ_TAN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_PROJ_SIN", (long) PS_PROJ_SIN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_PROJ_AIT", (long) PS_PROJ_AIT, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_PROJ_PAR", (long) PS_PROJ_PAR, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_PROJ_NTYPE", (long) PS_PROJ_NTYPE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_SPHERICAL", (long) PS_SPHERICAL, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_LINEAR", (long) PS_LINEAR, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ARCSEC", (long) PS_ARCSEC, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_ARCMIN", (long) PS_ARCMIN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_DEGREE", (long) PS_DEGREE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_RADIAN", (long) PS_RADIAN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_S32", (long) PS_META_S32, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_F32", (long) PS_META_F32, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_F64", (long) PS_META_F64, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_BOOL", (long) PS_META_BOOL, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_LIST", (long) PS_META_LIST, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_STR", (long) PS_META_STR, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_VEC", (long) PS_META_VEC, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_IMG", (long) PS_META_IMG, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_HASH", (long) PS_META_HASH, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_LOOKUPTABLE", (long) PS_META_LOOKUPTABLE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_JPEG", (long) PS_META_JPEG, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_PNG", (long) PS_META_PNG, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_ASTROM", (long) PS_META_ASTROM, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_UNKNOWN", (long) PS_META_UNKNOWN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_MULTI", (long) PS_META_MULTI, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_DEFAULT", (long) PS_META_DEFAULT, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_REPLACE", (long) PS_META_REPLACE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_META_DUPLICATE_OK", (long) PS_META_DUPLICATE_OK, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_METADATA_FLAGS_MASK", (long) 0xFF000000, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_METADATA_TYPE_MASK", (long) 0x00FFFFFF, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TIME_TAI", (long) PS_TIME_TAI, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "PS_TIME_UTC", (long) PS_TIME_UTC, 0, 0, 0},
{0}
};
#ifdef __cplusplus
}
#endif
static swig_variable_info swig_variables[] = {
{0}
};
static swig_command_info swig_commands[] = {
{"pslibc::psC32_re_set", _wrap_psC32_re_set},
{"pslibc::psC32_re_get", _wrap_psC32_re_get},
{"pslibc::psC32_im_set", _wrap_psC32_im_set},
{"pslibc::psC32_im_get", _wrap_psC32_im_get},
{"pslibc::new_psC32", _wrap_new_psC32},
{"pslibc::delete_psC32", _wrap_delete_psC32},
{"pslibc::psC64_re_set", _wrap_psC64_re_set},
{"pslibc::psC64_re_get", _wrap_psC64_re_get},
{"pslibc::psC64_im_set", _wrap_psC64_im_set},
{"pslibc::psC64_im_get", _wrap_psC64_im_get},
{"pslibc::new_psC64", _wrap_new_psC64},
{"pslibc::delete_psC64", _wrap_delete_psC64},
{"pslibc::psType_type_set", _wrap_psType_type_set},
{"pslibc::psType_type_get", _wrap_psType_type_get},
{"pslibc::psType_dimen_set", _wrap_psType_dimen_set},
{"pslibc::psType_dimen_get", _wrap_psType_dimen_get},
{"pslibc::new_psType", _wrap_new_psType},
{"pslibc::delete_psType", _wrap_delete_psType},
{"pslibc::psMath_type_set", _wrap_psMath_type_set},
{"pslibc::psMath_type_get", _wrap_psMath_type_get},
{"pslibc::new_psMath", _wrap_new_psMath},
{"pslibc::delete_psMath", _wrap_delete_psMath},
{"pslibc::psAbort", _wrap_psAbort},
{"pslibc::psLibVersion", _wrap_psLibVersion},
{"pslibc::psLibInit", _wrap_psLibInit},
{"pslibc::psLibFinalize", _wrap_psLibFinalize},
{"pslibc::psErrorDescription_code_set", _wrap_psErrorDescription_code_set},
{"pslibc::psErrorDescription_code_get", _wrap_psErrorDescription_code_get},
{"pslibc::psErrorDescription_description_set", _wrap_psErrorDescription_description_set},
{"pslibc::psErrorDescription_description_get", _wrap_psErrorDescription_description_get},
{"pslibc::new_psErrorDescription", _wrap_new_psErrorDescription},
{"pslibc::delete_psErrorDescription", _wrap_delete_psErrorDescription},
{"pslibc::psErrorDescriptionAlloc", _wrap_psErrorDescriptionAlloc},
{"pslibc::psErrorCodeString", _wrap_psErrorCodeString},
{"pslibc::psErrorRegister", _wrap_psErrorRegister},
{"pslibc::p_psErrorUnregister", _wrap_p_psErrorUnregister},
{"pslibc::psErr_name_set", _wrap_psErr_name_set},
{"pslibc::psErr_name_get", _wrap_psErr_name_get},
{"pslibc::psErr_code_set", _wrap_psErr_code_set},
{"pslibc::psErr_code_get", _wrap_psErr_code_get},
{"pslibc::psErr_msg_set", _wrap_psErr_msg_set},
{"pslibc::psErr_msg_get", _wrap_psErr_msg_get},
{"pslibc::new_psErr", _wrap_new_psErr},
{"pslibc::delete_psErr", _wrap_delete_psErr},
{"pslibc::psErrorGet", _wrap_psErrorGet},
{"pslibc::psErrorLast", _wrap_psErrorLast},
{"pslibc::psErrorClear", _wrap_psErrorClear},
{"pslibc::psErrorGetStackSize", _wrap_psErrorGetStackSize},
{"pslibc::psErrorStackPrint", _wrap_psErrorStackPrint},
{"pslibc::p_psError", _wrap_p_psError},
{"pslibc::p_psWarning", _wrap_p_psWarning},
{"pslibc::psErrAlloc", _wrap_psErrAlloc},
{"pslibc::psLogSetDestination", _wrap_psLogSetDestination},
{"pslibc::psLogSetLevel", _wrap_psLogSetLevel},
{"pslibc::psLogSetFormat", _wrap_psLogSetFormat},
{"pslibc::psLogMsg", _wrap_psLogMsg},
{"pslibc::psMemBlock_startblock_get", _wrap_psMemBlock_startblock_get},
{"pslibc::psMemBlock_previousBlock_set", _wrap_psMemBlock_previousBlock_set},
{"pslibc::psMemBlock_previousBlock_get", _wrap_psMemBlock_previousBlock_get},
{"pslibc::psMemBlock_nextBlock_set", _wrap_psMemBlock_nextBlock_set},
{"pslibc::psMemBlock_nextBlock_get", _wrap_psMemBlock_nextBlock_get},
{"pslibc::psMemBlock_freeFcn_set", _wrap_psMemBlock_freeFcn_set},
{"pslibc::psMemBlock_freeFcn_get", _wrap_psMemBlock_freeFcn_get},
{"pslibc::psMemBlock_userMemorySize_set", _wrap_psMemBlock_userMemorySize_set},
{"pslibc::psMemBlock_userMemorySize_get", _wrap_psMemBlock_userMemorySize_get},
{"pslibc::psMemBlock_id_get", _wrap_psMemBlock_id_get},
{"pslibc::psMemBlock_file_set", _wrap_psMemBlock_file_set},
{"pslibc::psMemBlock_file_get", _wrap_psMemBlock_file_get},
{"pslibc::psMemBlock_lineno_get", _wrap_psMemBlock_lineno_get},
{"pslibc::psMemBlock_refCounterMutex_set", _wrap_psMemBlock_refCounterMutex_set},
{"pslibc::psMemBlock_refCounterMutex_get", _wrap_psMemBlock_refCounterMutex_get},
{"pslibc::psMemBlock_refCounter_set", _wrap_psMemBlock_refCounter_set},
{"pslibc::psMemBlock_refCounter_get", _wrap_psMemBlock_refCounter_get},
{"pslibc::psMemBlock_persistent_set", _wrap_psMemBlock_persistent_set},
{"pslibc::psMemBlock_persistent_get", _wrap_psMemBlock_persistent_get},
{"pslibc::psMemBlock_endblock_get", _wrap_psMemBlock_endblock_get},
{"pslibc::new_psMemBlock", _wrap_new_psMemBlock},
{"pslibc::delete_psMemBlock", _wrap_delete_psMemBlock},
{"pslibc::p_psAlloc", _wrap_p_psAlloc},
{"pslibc::p_psMemSetDeallocator", _wrap_p_psMemSetDeallocator},
{"pslibc::p_psMemGetDeallocator", _wrap_p_psMemGetDeallocator},
{"pslibc::p_psMemSetPersistent", _wrap_p_psMemSetPersistent},
{"pslibc::p_psMemGetPersistent", _wrap_p_psMemGetPersistent},
{"pslibc::p_psRealloc", _wrap_p_psRealloc},
{"pslibc::p_psFree", _wrap_p_psFree},
{"pslibc::psMemCheckLeaks", _wrap_psMemCheckLeaks},
{"pslibc::psMemCheckCorruption", _wrap_psMemCheckCorruption},
{"pslibc::psMemGetRefCounter", _wrap_psMemGetRefCounter},
{"pslibc::p_psMemIncrRefCounter", _wrap_p_psMemIncrRefCounter},
{"pslibc::p_psMemDecrRefCounter", _wrap_p_psMemDecrRefCounter},
{"pslibc::psMemProblemCallbackSet", _wrap_psMemProblemCallbackSet},
{"pslibc::psMemExhaustedCallbackSet", _wrap_psMemExhaustedCallbackSet},
{"pslibc::psMemAllocateCallbackSet", _wrap_psMemAllocateCallbackSet},
{"pslibc::psMemFreeCallbackSet", _wrap_psMemFreeCallbackSet},
{"pslibc::psMemGetId", _wrap_psMemGetId},
{"pslibc::psMemAllocateCallbackSetID", _wrap_psMemAllocateCallbackSetID},
{"pslibc::psMemFreeCallbackSetID", _wrap_psMemFreeCallbackSetID},
{"pslibc::psStringCopy", _wrap_psStringCopy},
{"pslibc::psStringNCopy", _wrap_psStringNCopy},
{"pslibc::p_psComponent_name_set", _wrap_p_psComponent_name_set},
{"pslibc::p_psComponent_name_get", _wrap_p_psComponent_name_get},
{"pslibc::p_psComponent_level_set", _wrap_p_psComponent_level_set},
{"pslibc::p_psComponent_level_get", _wrap_p_psComponent_level_get},
{"pslibc::p_psComponent_p_psSpecified_set", _wrap_p_psComponent_p_psSpecified_set},
{"pslibc::p_psComponent_p_psSpecified_get", _wrap_p_psComponent_p_psSpecified_get},
{"pslibc::p_psComponent_n_set", _wrap_p_psComponent_n_set},
{"pslibc::p_psComponent_n_get", _wrap_p_psComponent_n_get},
{"pslibc::p_psComponent_subcomp_set", _wrap_p_psComponent_subcomp_set},
{"pslibc::p_psComponent_subcomp_get", _wrap_p_psComponent_subcomp_get},
{"pslibc::new_p_psComponent", _wrap_new_p_psComponent},
{"pslibc::delete_p_psComponent", _wrap_delete_p_psComponent},
{"pslibc::p_psTrace", _wrap_p_psTrace},
{"pslibc::psTraceSetLevel", _wrap_psTraceSetLevel},
{"pslibc::psTraceGetLevel", _wrap_psTraceGetLevel},
{"pslibc::psTraceReset", _wrap_psTraceReset},
{"pslibc::psTracePrintLevels", _wrap_psTracePrintLevels},
{"pslibc::psTraceSetDestination", _wrap_psTraceSetDestination},
{"pslibc::psError", _wrap_psError},
{"pslibc::psAlloc", _wrap_psAlloc},
{"pslibc::psRealloc", _wrap_psRealloc},
{"pslibc::psFree", _wrap_psFree},
{"pslibc::psMemIncrRefCounter", _wrap_psMemIncrRefCounter},
{"pslibc::psMemDecrRefCounter", _wrap_psMemDecrRefCounter},
{"pslibc::psTrace", _wrap_psTrace},
{"pslibc::psMemCheckLeaksToStderr", _wrap_psMemCheckLeaksToStderr},
{"pslibc::psMemCheckLeaksToStdout", _wrap_psMemCheckLeaksToStdout},
{"pslibc::psKernel_image_set", _wrap_psKernel_image_set},
{"pslibc::psKernel_image_get", _wrap_psKernel_image_get},
{"pslibc::psKernel_xMin_set", _wrap_psKernel_xMin_set},
{"pslibc::psKernel_xMin_get", _wrap_psKernel_xMin_get},
{"pslibc::psKernel_yMin_set", _wrap_psKernel_yMin_set},
{"pslibc::psKernel_yMin_get", _wrap_psKernel_yMin_get},
{"pslibc::psKernel_xMax_set", _wrap_psKernel_xMax_set},
{"pslibc::psKernel_xMax_get", _wrap_psKernel_xMax_get},
{"pslibc::psKernel_yMax_set", _wrap_psKernel_yMax_set},
{"pslibc::psKernel_yMax_get", _wrap_psKernel_yMax_get},
{"pslibc::psKernel_kernel_set", _wrap_psKernel_kernel_set},
{"pslibc::psKernel_kernel_get", _wrap_psKernel_kernel_get},
{"pslibc::psKernel_p_kernelRows_set", _wrap_psKernel_p_kernelRows_set},
{"pslibc::psKernel_p_kernelRows_get", _wrap_psKernel_p_kernelRows_get},
{"pslibc::new_psKernel", _wrap_new_psKernel},
{"pslibc::delete_psKernel", _wrap_delete_psKernel},
{"pslibc::psKernelAlloc", _wrap_psKernelAlloc},
{"pslibc::psKernelGenerate", _wrap_psKernelGenerate},
{"pslibc::psImageConvolve", _wrap_psImageConvolve},
{"pslibc::psImageSubset", _wrap_psImageSubset},
{"pslibc::psImageSubsection", _wrap_psImageSubsection},
{"pslibc::psImageTrim", _wrap_psImageTrim},
{"pslibc::psImageSlice", _wrap_psImageSlice},
{"pslibc::psImageCut", _wrap_psImageCut},
{"pslibc::psImageRadialCut", _wrap_psImageRadialCut},
{"pslibc::psImageFFT", _wrap_psImageFFT},
{"pslibc::psImageReal", _wrap_psImageReal},
{"pslibc::psImageImaginary", _wrap_psImageImaginary},
{"pslibc::psImageComplex", _wrap_psImageComplex},
{"pslibc::psImageConjugate", _wrap_psImageConjugate},
{"pslibc::psImagePowerSpectrum", _wrap_psImagePowerSpectrum},
{"pslibc::psImage_type_get", _wrap_psImage_type_get},
{"pslibc::psImage_numCols_get", _wrap_psImage_numCols_get},
{"pslibc::psImage_numRows_get", _wrap_psImage_numRows_get},
{"pslibc::psImage_col0_get", _wrap_psImage_col0_get},
{"pslibc::psImage_row0_get", _wrap_psImage_row0_get},
{"pslibc::psImage_parent_set", _wrap_psImage_parent_set},
{"pslibc::psImage_parent_get", _wrap_psImage_parent_get},
{"pslibc::psImage_children_set", _wrap_psImage_children_set},
{"pslibc::psImage_children_get", _wrap_psImage_children_get},
{"pslibc::psImage_rawDataBuffer_set", _wrap_psImage_rawDataBuffer_set},
{"pslibc::psImage_rawDataBuffer_get", _wrap_psImage_rawDataBuffer_get},
{"pslibc::psImage_data_get", _wrap_psImage_data_get},
{"pslibc::new_psImage", _wrap_new_psImage},
{"pslibc::delete_psImage", _wrap_delete_psImage},
{"pslibc::psImage_data_U8_set", _wrap_psImage_data_U8_set},
{"pslibc::psImage_data_U8_get", _wrap_psImage_data_U8_get},
{"pslibc::psImage_data_U16_set", _wrap_psImage_data_U16_set},
{"pslibc::psImage_data_U16_get", _wrap_psImage_data_U16_get},
{"pslibc::psImage_data_U32_set", _wrap_psImage_data_U32_set},
{"pslibc::psImage_data_U32_get", _wrap_psImage_data_U32_get},
{"pslibc::psImage_data_U64_set", _wrap_psImage_data_U64_set},
{"pslibc::psImage_data_U64_get", _wrap_psImage_data_U64_get},
{"pslibc::psImage_data_S8_set", _wrap_psImage_data_S8_set},
{"pslibc::psImage_data_S8_get", _wrap_psImage_data_S8_get},
{"pslibc::psImage_data_S16_set", _wrap_psImage_data_S16_set},
{"pslibc::psImage_data_S16_get", _wrap_psImage_data_S16_get},
{"pslibc::psImage_data_S32_set", _wrap_psImage_data_S32_set},
{"pslibc::psImage_data_S32_get", _wrap_psImage_data_S32_get},
{"pslibc::psImage_data_S64_set", _wrap_psImage_data_S64_set},
{"pslibc::psImage_data_S64_get", _wrap_psImage_data_S64_get},
{"pslibc::psImage_data_F32_set", _wrap_psImage_data_F32_set},
{"pslibc::psImage_data_F32_get", _wrap_psImage_data_F32_get},
{"pslibc::psImage_data_F64_set", _wrap_psImage_data_F64_set},
{"pslibc::psImage_data_F64_get", _wrap_psImage_data_F64_get},
{"pslibc::psImage_data_C32_set", _wrap_psImage_data_C32_set},
{"pslibc::psImage_data_C32_get", _wrap_psImage_data_C32_get},
{"pslibc::psImage_data_C64_set", _wrap_psImage_data_C64_set},
{"pslibc::psImage_data_C64_get", _wrap_psImage_data_C64_get},
{"pslibc::psImage_data_PTR_set", _wrap_psImage_data_PTR_set},
{"pslibc::psImage_data_PTR_get", _wrap_psImage_data_PTR_get},
{"pslibc::psImage_data_V_set", _wrap_psImage_data_V_set},
{"pslibc::psImage_data_V_get", _wrap_psImage_data_V_get},
{"pslibc::new_psImage_data", _wrap_new_psImage_data},
{"pslibc::delete_psImage_data", _wrap_delete_psImage_data},
{"pslibc::psRegion_x0_set", _wrap_psRegion_x0_set},
{"pslibc::psRegion_x0_get", _wrap_psRegion_x0_get},
{"pslibc::psRegion_x1_set", _wrap_psRegion_x1_set},
{"pslibc::psRegion_x1_get", _wrap_psRegion_x1_get},
{"pslibc::psRegion_y0_set", _wrap_psRegion_y0_set},
{"pslibc::psRegion_y0_get", _wrap_psRegion_y0_get},
{"pslibc::psRegion_y1_set", _wrap_psRegion_y1_set},
{"pslibc::psRegion_y1_get", _wrap_psRegion_y1_get},
{"pslibc::new_psRegion", _wrap_new_psRegion},
{"pslibc::delete_psRegion", _wrap_delete_psRegion},
{"pslibc::psImageAlloc", _wrap_psImageAlloc},
{"pslibc::psRegionAlloc", _wrap_psRegionAlloc},
{"pslibc::psRegionFromString", _wrap_psRegionFromString},
{"pslibc::psRegionToString", _wrap_psRegionToString},
{"pslibc::psImageRecycle", _wrap_psImageRecycle},
{"pslibc::psImageCopy", _wrap_psImageCopy},
{"pslibc::psImageFreeChildren", _wrap_psImageFreeChildren},
{"pslibc::psImagePixelInterpolate", _wrap_psImagePixelInterpolate},
{"pslibc::psImageReadSection", _wrap_psImageReadSection},
{"pslibc::psImageWriteSection", _wrap_psImageWriteSection},
{"pslibc::psImageClip", _wrap_psImageClip},
{"pslibc::psImageClipComplexRegion", _wrap_psImageClipComplexRegion},
{"pslibc::psImageClipNaN", _wrap_psImageClipNaN},
{"pslibc::psImageOverlaySection", _wrap_psImageOverlaySection},
{"pslibc::psImageRebin", _wrap_psImageRebin},
{"pslibc::psImageResample", _wrap_psImageResample},
{"pslibc::psImageRotate", _wrap_psImageRotate},
{"pslibc::psImageShift", _wrap_psImageShift},
{"pslibc::psImageRoll", _wrap_psImageRoll},
{"pslibc::psImageTransform", _wrap_psImageTransform},
{"pslibc::psImageStats", _wrap_psImageStats},
{"pslibc::psImageHistogram", _wrap_psImageHistogram},
{"pslibc::psImageFitPolynomial", _wrap_psImageFitPolynomial},
{"pslibc::psImageEvalPolynomial", _wrap_psImageEvalPolynomial},
{"pslibc::psFits_p_fd_set", _wrap_psFits_p_fd_set},
{"pslibc::psFits_p_fd_get", _wrap_psFits_p_fd_get},
{"pslibc::psFits_filename_set", _wrap_psFits_filename_set},
{"pslibc::psFits_filename_get", _wrap_psFits_filename_get},
{"pslibc::new_psFits", _wrap_new_psFits},
{"pslibc::delete_psFits", _wrap_delete_psFits},
{"pslibc::psFitsAlloc", _wrap_psFitsAlloc},
{"pslibc::psFitsMoveExtName", _wrap_psFitsMoveExtName},
{"pslibc::psFitsMoveExtNum", _wrap_psFitsMoveExtNum},
{"pslibc::psFitsGetExtNum", _wrap_psFitsGetExtNum},
{"pslibc::psFitsGetExtName", _wrap_psFitsGetExtName},
{"pslibc::psFitsSetExtName", _wrap_psFitsSetExtName},
{"pslibc::psFitsGetSize", _wrap_psFitsGetSize},
{"pslibc::psFitsGetExtType", _wrap_psFitsGetExtType},
{"pslibc::psFitsReadHeader", _wrap_psFitsReadHeader},
{"pslibc::psFitsReadHeaderSet", _wrap_psFitsReadHeaderSet},
{"pslibc::psFitsWriteHeader", _wrap_psFitsWriteHeader},
{"pslibc::psFitsReadImage", _wrap_psFitsReadImage},
{"pslibc::psFitsWriteImage", _wrap_psFitsWriteImage},
{"pslibc::psFitsUpdateImage", _wrap_psFitsUpdateImage},
{"pslibc::psFitsReadTableRow", _wrap_psFitsReadTableRow},
{"pslibc::psFitsReadTableColumn", _wrap_psFitsReadTableColumn},
{"pslibc::psFitsReadTableColumnNum", _wrap_psFitsReadTableColumnNum},
{"pslibc::psFitsReadTable", _wrap_psFitsReadTable},
{"pslibc::psFitsWriteTable", _wrap_psFitsWriteTable},
{"pslibc::psFitsUpdateTable", _wrap_psFitsUpdateTable},
{"pslibc::psLookupTable_fileName_set", _wrap_psLookupTable_fileName_set},
{"pslibc::psLookupTable_fileName_get", _wrap_psLookupTable_fileName_get},
{"pslibc::psLookupTable_numRows_set", _wrap_psLookupTable_numRows_set},
{"pslibc::psLookupTable_numRows_get", _wrap_psLookupTable_numRows_get},
{"pslibc::psLookupTable_numCols_set", _wrap_psLookupTable_numCols_set},
{"pslibc::psLookupTable_numCols_get", _wrap_psLookupTable_numCols_get},
{"pslibc::psLookupTable_validFrom_set", _wrap_psLookupTable_validFrom_set},
{"pslibc::psLookupTable_validFrom_get", _wrap_psLookupTable_validFrom_get},
{"pslibc::psLookupTable_validTo_set", _wrap_psLookupTable_validTo_set},
{"pslibc::psLookupTable_validTo_get", _wrap_psLookupTable_validTo_get},
{"pslibc::psLookupTable_index_set", _wrap_psLookupTable_index_set},
{"pslibc::psLookupTable_index_get", _wrap_psLookupTable_index_get},
{"pslibc::psLookupTable_values_set", _wrap_psLookupTable_values_set},
{"pslibc::psLookupTable_values_get", _wrap_psLookupTable_values_get},
{"pslibc::new_psLookupTable", _wrap_new_psLookupTable},
{"pslibc::delete_psLookupTable", _wrap_delete_psLookupTable},
{"pslibc::psLookupTableAlloc", _wrap_psLookupTableAlloc},
{"pslibc::psLookupTableRead", _wrap_psLookupTableRead},
{"pslibc::psLookupTableInterpolate", _wrap_psLookupTableInterpolate},
{"pslibc::psLookupTableInterpolateAll", _wrap_psLookupTableInterpolateAll},
{"pslibc::psGaussian", _wrap_psGaussian},
{"pslibc::p_psGaussianDev", _wrap_p_psGaussianDev},
{"pslibc::psPolynomial1D_type_set", _wrap_psPolynomial1D_type_set},
{"pslibc::psPolynomial1D_type_get", _wrap_psPolynomial1D_type_get},
{"pslibc::psPolynomial1D_n_set", _wrap_psPolynomial1D_n_set},
{"pslibc::psPolynomial1D_n_get", _wrap_psPolynomial1D_n_get},
{"pslibc::psPolynomial1D_coeff_set", _wrap_psPolynomial1D_coeff_set},
{"pslibc::psPolynomial1D_coeff_get", _wrap_psPolynomial1D_coeff_get},
{"pslibc::psPolynomial1D_coeffErr_set", _wrap_psPolynomial1D_coeffErr_set},
{"pslibc::psPolynomial1D_coeffErr_get", _wrap_psPolynomial1D_coeffErr_get},
{"pslibc::psPolynomial1D_mask_set", _wrap_psPolynomial1D_mask_set},
{"pslibc::psPolynomial1D_mask_get", _wrap_psPolynomial1D_mask_get},
{"pslibc::new_psPolynomial1D", _wrap_new_psPolynomial1D},
{"pslibc::delete_psPolynomial1D", _wrap_delete_psPolynomial1D},
{"pslibc::psPolynomial2D_type_set", _wrap_psPolynomial2D_type_set},
{"pslibc::psPolynomial2D_type_get", _wrap_psPolynomial2D_type_get},
{"pslibc::psPolynomial2D_nX_set", _wrap_psPolynomial2D_nX_set},
{"pslibc::psPolynomial2D_nX_get", _wrap_psPolynomial2D_nX_get},
{"pslibc::psPolynomial2D_nY_set", _wrap_psPolynomial2D_nY_set},
{"pslibc::psPolynomial2D_nY_get", _wrap_psPolynomial2D_nY_get},
{"pslibc::psPolynomial2D_coeff_set", _wrap_psPolynomial2D_coeff_set},
{"pslibc::psPolynomial2D_coeff_get", _wrap_psPolynomial2D_coeff_get},
{"pslibc::psPolynomial2D_coeffErr_set", _wrap_psPolynomial2D_coeffErr_set},
{"pslibc::psPolynomial2D_coeffErr_get", _wrap_psPolynomial2D_coeffErr_get},
{"pslibc::psPolynomial2D_mask_set", _wrap_psPolynomial2D_mask_set},
{"pslibc::psPolynomial2D_mask_get", _wrap_psPolynomial2D_mask_get},
{"pslibc::new_psPolynomial2D", _wrap_new_psPolynomial2D},
{"pslibc::delete_psPolynomial2D", _wrap_delete_psPolynomial2D},
{"pslibc::psPolynomial3D_type_set", _wrap_psPolynomial3D_type_set},
{"pslibc::psPolynomial3D_type_get", _wrap_psPolynomial3D_type_get},
{"pslibc::psPolynomial3D_nX_set", _wrap_psPolynomial3D_nX_set},
{"pslibc::psPolynomial3D_nX_get", _wrap_psPolynomial3D_nX_get},
{"pslibc::psPolynomial3D_nY_set", _wrap_psPolynomial3D_nY_set},
{"pslibc::psPolynomial3D_nY_get", _wrap_psPolynomial3D_nY_get},
{"pslibc::psPolynomial3D_nZ_set", _wrap_psPolynomial3D_nZ_set},
{"pslibc::psPolynomial3D_nZ_get", _wrap_psPolynomial3D_nZ_get},
{"pslibc::psPolynomial3D_coeff_set", _wrap_psPolynomial3D_coeff_set},
{"pslibc::psPolynomial3D_coeff_get", _wrap_psPolynomial3D_coeff_get},
{"pslibc::psPolynomial3D_coeffErr_set", _wrap_psPolynomial3D_coeffErr_set},
{"pslibc::psPolynomial3D_coeffErr_get", _wrap_psPolynomial3D_coeffErr_get},
{"pslibc::psPolynomial3D_mask_set", _wrap_psPolynomial3D_mask_set},
{"pslibc::psPolynomial3D_mask_get", _wrap_psPolynomial3D_mask_get},
{"pslibc::new_psPolynomial3D", _wrap_new_psPolynomial3D},
{"pslibc::delete_psPolynomial3D", _wrap_delete_psPolynomial3D},
{"pslibc::psPolynomial4D_type_set", _wrap_psPolynomial4D_type_set},
{"pslibc::psPolynomial4D_type_get", _wrap_psPolynomial4D_type_get},
{"pslibc::psPolynomial4D_nW_set", _wrap_psPolynomial4D_nW_set},
{"pslibc::psPolynomial4D_nW_get", _wrap_psPolynomial4D_nW_get},
{"pslibc::psPolynomial4D_nX_set", _wrap_psPolynomial4D_nX_set},
{"pslibc::psPolynomial4D_nX_get", _wrap_psPolynomial4D_nX_get},
{"pslibc::psPolynomial4D_nY_set", _wrap_psPolynomial4D_nY_set},
{"pslibc::psPolynomial4D_nY_get", _wrap_psPolynomial4D_nY_get},
{"pslibc::psPolynomial4D_nZ_set", _wrap_psPolynomial4D_nZ_set},
{"pslibc::psPolynomial4D_nZ_get", _wrap_psPolynomial4D_nZ_get},
{"pslibc::psPolynomial4D_coeff_set", _wrap_psPolynomial4D_coeff_set},
{"pslibc::psPolynomial4D_coeff_get", _wrap_psPolynomial4D_coeff_get},
{"pslibc::psPolynomial4D_coeffErr_set", _wrap_psPolynomial4D_coeffErr_set},
{"pslibc::psPolynomial4D_coeffErr_get", _wrap_psPolynomial4D_coeffErr_get},
{"pslibc::psPolynomial4D_mask_set", _wrap_psPolynomial4D_mask_set},
{"pslibc::psPolynomial4D_mask_get", _wrap_psPolynomial4D_mask_get},
{"pslibc::new_psPolynomial4D", _wrap_new_psPolynomial4D},
{"pslibc::delete_psPolynomial4D", _wrap_delete_psPolynomial4D},
{"pslibc::psPolynomial1DAlloc", _wrap_psPolynomial1DAlloc},
{"pslibc::psPolynomial2DAlloc", _wrap_psPolynomial2DAlloc},
{"pslibc::psPolynomial3DAlloc", _wrap_psPolynomial3DAlloc},
{"pslibc::psPolynomial4DAlloc", _wrap_psPolynomial4DAlloc},
{"pslibc::psPolynomial1DEval", _wrap_psPolynomial1DEval},
{"pslibc::psPolynomial2DEval", _wrap_psPolynomial2DEval},
{"pslibc::psPolynomial3DEval", _wrap_psPolynomial3DEval},
{"pslibc::psPolynomial4DEval", _wrap_psPolynomial4DEval},
{"pslibc::psPolynomial1DEvalVector", _wrap_psPolynomial1DEvalVector},
{"pslibc::psPolynomial2DEvalVector", _wrap_psPolynomial2DEvalVector},
{"pslibc::psPolynomial3DEvalVector", _wrap_psPolynomial3DEvalVector},
{"pslibc::psPolynomial4DEvalVector", _wrap_psPolynomial4DEvalVector},
{"pslibc::psDPolynomial1D_type_set", _wrap_psDPolynomial1D_type_set},
{"pslibc::psDPolynomial1D_type_get", _wrap_psDPolynomial1D_type_get},
{"pslibc::psDPolynomial1D_n_set", _wrap_psDPolynomial1D_n_set},
{"pslibc::psDPolynomial1D_n_get", _wrap_psDPolynomial1D_n_get},
{"pslibc::psDPolynomial1D_coeff_set", _wrap_psDPolynomial1D_coeff_set},
{"pslibc::psDPolynomial1D_coeff_get", _wrap_psDPolynomial1D_coeff_get},
{"pslibc::psDPolynomial1D_coeffErr_set", _wrap_psDPolynomial1D_coeffErr_set},
{"pslibc::psDPolynomial1D_coeffErr_get", _wrap_psDPolynomial1D_coeffErr_get},
{"pslibc::psDPolynomial1D_mask_set", _wrap_psDPolynomial1D_mask_set},
{"pslibc::psDPolynomial1D_mask_get", _wrap_psDPolynomial1D_mask_get},
{"pslibc::new_psDPolynomial1D", _wrap_new_psDPolynomial1D},
{"pslibc::delete_psDPolynomial1D", _wrap_delete_psDPolynomial1D},
{"pslibc::psDPolynomial2D_type_set", _wrap_psDPolynomial2D_type_set},
{"pslibc::psDPolynomial2D_type_get", _wrap_psDPolynomial2D_type_get},
{"pslibc::psDPolynomial2D_nX_set", _wrap_psDPolynomial2D_nX_set},
{"pslibc::psDPolynomial2D_nX_get", _wrap_psDPolynomial2D_nX_get},
{"pslibc::psDPolynomial2D_nY_set", _wrap_psDPolynomial2D_nY_set},
{"pslibc::psDPolynomial2D_nY_get", _wrap_psDPolynomial2D_nY_get},
{"pslibc::psDPolynomial2D_coeff_set", _wrap_psDPolynomial2D_coeff_set},
{"pslibc::psDPolynomial2D_coeff_get", _wrap_psDPolynomial2D_coeff_get},
{"pslibc::psDPolynomial2D_coeffErr_set", _wrap_psDPolynomial2D_coeffErr_set},
{"pslibc::psDPolynomial2D_coeffErr_get", _wrap_psDPolynomial2D_coeffErr_get},
{"pslibc::psDPolynomial2D_mask_set", _wrap_psDPolynomial2D_mask_set},
{"pslibc::psDPolynomial2D_mask_get", _wrap_psDPolynomial2D_mask_get},
{"pslibc::new_psDPolynomial2D", _wrap_new_psDPolynomial2D},
{"pslibc::delete_psDPolynomial2D", _wrap_delete_psDPolynomial2D},
{"pslibc::psDPolynomial3D_type_set", _wrap_psDPolynomial3D_type_set},
{"pslibc::psDPolynomial3D_type_get", _wrap_psDPolynomial3D_type_get},
{"pslibc::psDPolynomial3D_nX_set", _wrap_psDPolynomial3D_nX_set},
{"pslibc::psDPolynomial3D_nX_get", _wrap_psDPolynomial3D_nX_get},
{"pslibc::psDPolynomial3D_nY_set", _wrap_psDPolynomial3D_nY_set},
{"pslibc::psDPolynomial3D_nY_get", _wrap_psDPolynomial3D_nY_get},
{"pslibc::psDPolynomial3D_nZ_set", _wrap_psDPolynomial3D_nZ_set},
{"pslibc::psDPolynomial3D_nZ_get", _wrap_psDPolynomial3D_nZ_get},
{"pslibc::psDPolynomial3D_coeff_set", _wrap_psDPolynomial3D_coeff_set},
{"pslibc::psDPolynomial3D_coeff_get", _wrap_psDPolynomial3D_coeff_get},
{"pslibc::psDPolynomial3D_coeffErr_set", _wrap_psDPolynomial3D_coeffErr_set},
{"pslibc::psDPolynomial3D_coeffErr_get", _wrap_psDPolynomial3D_coeffErr_get},
{"pslibc::psDPolynomial3D_mask_set", _wrap_psDPolynomial3D_mask_set},
{"pslibc::psDPolynomial3D_mask_get", _wrap_psDPolynomial3D_mask_get},
{"pslibc::new_psDPolynomial3D", _wrap_new_psDPolynomial3D},
{"pslibc::delete_psDPolynomial3D", _wrap_delete_psDPolynomial3D},
{"pslibc::psDPolynomial4D_type_set", _wrap_psDPolynomial4D_type_set},
{"pslibc::psDPolynomial4D_type_get", _wrap_psDPolynomial4D_type_get},
{"pslibc::psDPolynomial4D_nW_set", _wrap_psDPolynomial4D_nW_set},
{"pslibc::psDPolynomial4D_nW_get", _wrap_psDPolynomial4D_nW_get},
{"pslibc::psDPolynomial4D_nX_set", _wrap_psDPolynomial4D_nX_set},
{"pslibc::psDPolynomial4D_nX_get", _wrap_psDPolynomial4D_nX_get},
{"pslibc::psDPolynomial4D_nY_set", _wrap_psDPolynomial4D_nY_set},
{"pslibc::psDPolynomial4D_nY_get", _wrap_psDPolynomial4D_nY_get},
{"pslibc::psDPolynomial4D_nZ_set", _wrap_psDPolynomial4D_nZ_set},
{"pslibc::psDPolynomial4D_nZ_get", _wrap_psDPolynomial4D_nZ_get},
{"pslibc::psDPolynomial4D_coeff_set", _wrap_psDPolynomial4D_coeff_set},
{"pslibc::psDPolynomial4D_coeff_get", _wrap_psDPolynomial4D_coeff_get},
{"pslibc::psDPolynomial4D_coeffErr_set", _wrap_psDPolynomial4D_coeffErr_set},
{"pslibc::psDPolynomial4D_coeffErr_get", _wrap_psDPolynomial4D_coeffErr_get},
{"pslibc::psDPolynomial4D_mask_set", _wrap_psDPolynomial4D_mask_set},
{"pslibc::psDPolynomial4D_mask_get", _wrap_psDPolynomial4D_mask_get},
{"pslibc::new_psDPolynomial4D", _wrap_new_psDPolynomial4D},
{"pslibc::delete_psDPolynomial4D", _wrap_delete_psDPolynomial4D},
{"pslibc::psDPolynomial1DAlloc", _wrap_psDPolynomial1DAlloc},
{"pslibc::psDPolynomial2DAlloc", _wrap_psDPolynomial2DAlloc},
{"pslibc::psDPolynomial3DAlloc", _wrap_psDPolynomial3DAlloc},
{"pslibc::psDPolynomial4DAlloc", _wrap_psDPolynomial4DAlloc},
{"pslibc::psDPolynomial1DEval", _wrap_psDPolynomial1DEval},
{"pslibc::psDPolynomial2DEval", _wrap_psDPolynomial2DEval},
{"pslibc::psDPolynomial3DEval", _wrap_psDPolynomial3DEval},
{"pslibc::psDPolynomial4DEval", _wrap_psDPolynomial4DEval},
{"pslibc::psDPolynomial1DEvalVector", _wrap_psDPolynomial1DEvalVector},
{"pslibc::psDPolynomial2DEvalVector", _wrap_psDPolynomial2DEvalVector},
{"pslibc::psDPolynomial3DEvalVector", _wrap_psDPolynomial3DEvalVector},
{"pslibc::psDPolynomial4DEvalVector", _wrap_psDPolynomial4DEvalVector},
{"pslibc::psSpline1D_n_set", _wrap_psSpline1D_n_set},
{"pslibc::psSpline1D_n_get", _wrap_psSpline1D_n_get},
{"pslibc::psSpline1D_spline_set", _wrap_psSpline1D_spline_set},
{"pslibc::psSpline1D_spline_get", _wrap_psSpline1D_spline_get},
{"pslibc::psSpline1D_p_psDeriv2_set", _wrap_psSpline1D_p_psDeriv2_set},
{"pslibc::psSpline1D_p_psDeriv2_get", _wrap_psSpline1D_p_psDeriv2_get},
{"pslibc::psSpline1D_domains_set", _wrap_psSpline1D_domains_set},
{"pslibc::psSpline1D_domains_get", _wrap_psSpline1D_domains_get},
{"pslibc::psSpline1D_knots_set", _wrap_psSpline1D_knots_set},
{"pslibc::psSpline1D_knots_get", _wrap_psSpline1D_knots_get},
{"pslibc::new_psSpline1D", _wrap_new_psSpline1D},
{"pslibc::delete_psSpline1D", _wrap_delete_psSpline1D},
{"pslibc::psSpline1DAlloc", _wrap_psSpline1DAlloc},
{"pslibc::psSpline1DAllocGeneric", _wrap_psSpline1DAllocGeneric},
{"pslibc::psSpline1DEval", _wrap_psSpline1DEval},
{"pslibc::psSpline1DEvalVector", _wrap_psSpline1DEvalVector},
{"pslibc::p_psVectorBinDisect", _wrap_p_psVectorBinDisect},
{"pslibc::p_psVectorInterpolate", _wrap_p_psVectorInterpolate},
{"pslibc::psMatrixLUD", _wrap_psMatrixLUD},
{"pslibc::psMatrixLUSolve", _wrap_psMatrixLUSolve},
{"pslibc::psMatrixInvert", _wrap_psMatrixInvert},
{"pslibc::psMatrixDeterminant", _wrap_psMatrixDeterminant},
{"pslibc::psMatrixMultiply", _wrap_psMatrixMultiply},
{"pslibc::psMatrixTranspose", _wrap_psMatrixTranspose},
{"pslibc::psMatrixEigenvectors", _wrap_psMatrixEigenvectors},
{"pslibc::psMatrixToVector", _wrap_psMatrixToVector},
{"pslibc::psVectorToMatrix", _wrap_psVectorToMatrix},
{"pslibc::psBinaryOp", _wrap_psBinaryOp},
{"pslibc::psUnaryOp", _wrap_psUnaryOp},
{"pslibc::psMinimization_maxIter_set", _wrap_psMinimization_maxIter_set},
{"pslibc::psMinimization_maxIter_get", _wrap_psMinimization_maxIter_get},
{"pslibc::psMinimization_tol_set", _wrap_psMinimization_tol_set},
{"pslibc::psMinimization_tol_get", _wrap_psMinimization_tol_get},
{"pslibc::psMinimization_value_set", _wrap_psMinimization_value_set},
{"pslibc::psMinimization_value_get", _wrap_psMinimization_value_get},
{"pslibc::psMinimization_iter_set", _wrap_psMinimization_iter_set},
{"pslibc::psMinimization_iter_get", _wrap_psMinimization_iter_get},
{"pslibc::psMinimization_lastDelta_set", _wrap_psMinimization_lastDelta_set},
{"pslibc::psMinimization_lastDelta_get", _wrap_psMinimization_lastDelta_get},
{"pslibc::new_psMinimization", _wrap_new_psMinimization},
{"pslibc::delete_psMinimization", _wrap_delete_psMinimization},
{"pslibc::psMinimizationAlloc", _wrap_psMinimizationAlloc},
{"pslibc::psVectorFitPolynomial1D", _wrap_psVectorFitPolynomial1D},
{"pslibc::psVectorFitSpline1D", _wrap_psVectorFitSpline1D},
{"pslibc::psMinimizeLMChi2", _wrap_psMinimizeLMChi2},
{"pslibc::psMinimizePowell", _wrap_psMinimizePowell},
{"pslibc::psMinimizeLMChi2Gauss1D", _wrap_psMinimizeLMChi2Gauss1D},
{"pslibc::psMinimizePowellChi2Gauss1D", _wrap_psMinimizePowellChi2Gauss1D},
{"pslibc::psMinimizeChi2Powell", _wrap_psMinimizeChi2Powell},
{"pslibc::psRandom_type_set", _wrap_psRandom_type_set},
{"pslibc::psRandom_type_get", _wrap_psRandom_type_get},
{"pslibc::psRandom_gsl_set", _wrap_psRandom_gsl_set},
{"pslibc::psRandom_gsl_get", _wrap_psRandom_gsl_get},
{"pslibc::new_psRandom", _wrap_new_psRandom},
{"pslibc::delete_psRandom", _wrap_delete_psRandom},
{"pslibc::psRandomAlloc", _wrap_psRandomAlloc},
{"pslibc::psRandomReset", _wrap_psRandomReset},
{"pslibc::psRandomUniform", _wrap_psRandomUniform},
{"pslibc::psRandomGaussian", _wrap_psRandomGaussian},
{"pslibc::psRandomPoisson", _wrap_psRandomPoisson},
{"pslibc::psStats_sampleMean_set", _wrap_psStats_sampleMean_set},
{"pslibc::psStats_sampleMean_get", _wrap_psStats_sampleMean_get},
{"pslibc::psStats_sampleMedian_set", _wrap_psStats_sampleMedian_set},
{"pslibc::psStats_sampleMedian_get", _wrap_psStats_sampleMedian_get},
{"pslibc::psStats_sampleStdev_set", _wrap_psStats_sampleStdev_set},
{"pslibc::psStats_sampleStdev_get", _wrap_psStats_sampleStdev_get},
{"pslibc::psStats_sampleUQ_set", _wrap_psStats_sampleUQ_set},
{"pslibc::psStats_sampleUQ_get", _wrap_psStats_sampleUQ_get},
{"pslibc::psStats_sampleLQ_set", _wrap_psStats_sampleLQ_set},
{"pslibc::psStats_sampleLQ_get", _wrap_psStats_sampleLQ_get},
{"pslibc::psStats_robustMean_set", _wrap_psStats_robustMean_set},
{"pslibc::psStats_robustMean_get", _wrap_psStats_robustMean_get},
{"pslibc::psStats_robustMedian_set", _wrap_psStats_robustMedian_set},
{"pslibc::psStats_robustMedian_get", _wrap_psStats_robustMedian_get},
{"pslibc::psStats_robustMode_set", _wrap_psStats_robustMode_set},
{"pslibc::psStats_robustMode_get", _wrap_psStats_robustMode_get},
{"pslibc::psStats_robustStdev_set", _wrap_psStats_robustStdev_set},
{"pslibc::psStats_robustStdev_get", _wrap_psStats_robustStdev_get},
{"pslibc::psStats_robustUQ_set", _wrap_psStats_robustUQ_set},
{"pslibc::psStats_robustUQ_get", _wrap_psStats_robustUQ_get},
{"pslibc::psStats_robustLQ_set", _wrap_psStats_robustLQ_set},
{"pslibc::psStats_robustLQ_get", _wrap_psStats_robustLQ_get},
{"pslibc::psStats_robustN50_set", _wrap_psStats_robustN50_set},
{"pslibc::psStats_robustN50_get", _wrap_psStats_robustN50_get},
{"pslibc::psStats_robustNfit_set", _wrap_psStats_robustNfit_set},
{"pslibc::psStats_robustNfit_get", _wrap_psStats_robustNfit_get},
{"pslibc::psStats_clippedMean_set", _wrap_psStats_clippedMean_set},
{"pslibc::psStats_clippedMean_get", _wrap_psStats_clippedMean_get},
{"pslibc::psStats_clippedStdev_set", _wrap_psStats_clippedStdev_set},
{"pslibc::psStats_clippedStdev_get", _wrap_psStats_clippedStdev_get},
{"pslibc::psStats_clippedNvalues_set", _wrap_psStats_clippedNvalues_set},
{"pslibc::psStats_clippedNvalues_get", _wrap_psStats_clippedNvalues_get},
{"pslibc::psStats_clipSigma_set", _wrap_psStats_clipSigma_set},
{"pslibc::psStats_clipSigma_get", _wrap_psStats_clipSigma_get},
{"pslibc::psStats_clipIter_set", _wrap_psStats_clipIter_set},
{"pslibc::psStats_clipIter_get", _wrap_psStats_clipIter_get},
{"pslibc::psStats_min_set", _wrap_psStats_min_set},
{"pslibc::psStats_min_get", _wrap_psStats_min_get},
{"pslibc::psStats_max_set", _wrap_psStats_max_set},
{"pslibc::psStats_max_get", _wrap_psStats_max_get},
{"pslibc::psStats_binsize_set", _wrap_psStats_binsize_set},
{"pslibc::psStats_binsize_get", _wrap_psStats_binsize_get},
{"pslibc::psStats_options_set", _wrap_psStats_options_set},
{"pslibc::psStats_options_get", _wrap_psStats_options_get},
{"pslibc::new_psStats", _wrap_new_psStats},
{"pslibc::delete_psStats", _wrap_delete_psStats},
{"pslibc::psVectorStats", _wrap_psVectorStats},
{"pslibc::psStatsAlloc", _wrap_psStatsAlloc},
{"pslibc::psHistogram_bounds_set", _wrap_psHistogram_bounds_set},
{"pslibc::psHistogram_bounds_get", _wrap_psHistogram_bounds_get},
{"pslibc::psHistogram_nums_set", _wrap_psHistogram_nums_set},
{"pslibc::psHistogram_nums_get", _wrap_psHistogram_nums_get},
{"pslibc::psHistogram_minNum_set", _wrap_psHistogram_minNum_set},
{"pslibc::psHistogram_minNum_get", _wrap_psHistogram_minNum_get},
{"pslibc::psHistogram_maxNum_set", _wrap_psHistogram_maxNum_set},
{"pslibc::psHistogram_maxNum_get", _wrap_psHistogram_maxNum_get},
{"pslibc::psHistogram_uniform_set", _wrap_psHistogram_uniform_set},
{"pslibc::psHistogram_uniform_get", _wrap_psHistogram_uniform_get},
{"pslibc::new_psHistogram", _wrap_new_psHistogram},
{"pslibc::delete_psHistogram", _wrap_delete_psHistogram},
{"pslibc::psHistogramAlloc", _wrap_psHistogramAlloc},
{"pslibc::psHistogramAllocGeneric", _wrap_psHistogramAllocGeneric},
{"pslibc::psVectorHistogram", _wrap_psVectorHistogram},
{"pslibc::p_psGetStatValue", _wrap_p_psGetStatValue},
{"pslibc::p_psNormalizeVectorRangeU8", _wrap_p_psNormalizeVectorRangeU8},
{"pslibc::p_psNormalizeVectorRangeU16", _wrap_p_psNormalizeVectorRangeU16},
{"pslibc::p_psNormalizeVectorRangeU32", _wrap_p_psNormalizeVectorRangeU32},
{"pslibc::p_psNormalizeVectorRangeU64", _wrap_p_psNormalizeVectorRangeU64},
{"pslibc::p_psNormalizeVectorRangeS8", _wrap_p_psNormalizeVectorRangeS8},
{"pslibc::p_psNormalizeVectorRangeS16", _wrap_p_psNormalizeVectorRangeS16},
{"pslibc::p_psNormalizeVectorRangeS32", _wrap_p_psNormalizeVectorRangeS32},
{"pslibc::p_psNormalizeVectorRangeS64", _wrap_p_psNormalizeVectorRangeS64},
{"pslibc::p_psNormalizeVectorRangeF32", _wrap_p_psNormalizeVectorRangeF32},
{"pslibc::p_psNormalizeVectorRangeF64", _wrap_p_psNormalizeVectorRangeF64},
{"pslibc::psVectorFFT", _wrap_psVectorFFT},
{"pslibc::psVectorReal", _wrap_psVectorReal},
{"pslibc::psVectorImaginary", _wrap_psVectorImaginary},
{"pslibc::psVectorComplex", _wrap_psVectorComplex},
{"pslibc::psVectorConjugate", _wrap_psVectorConjugate},
{"pslibc::psVectorPowerSpectrum", _wrap_psVectorPowerSpectrum},
{"pslibc::psArray_nalloc_set", _wrap_psArray_nalloc_set},
{"pslibc::psArray_nalloc_get", _wrap_psArray_nalloc_get},
{"pslibc::psArray_n_set", _wrap_psArray_n_set},
{"pslibc::psArray_n_get", _wrap_psArray_n_get},
{"pslibc::psArray_data_set", _wrap_psArray_data_set},
{"pslibc::psArray_data_get", _wrap_psArray_data_get},
{"pslibc::new_psArray", _wrap_new_psArray},
{"pslibc::delete_psArray", _wrap_delete_psArray},
{"pslibc::psArrayAlloc", _wrap_psArrayAlloc},
{"pslibc::psArrayRealloc", _wrap_psArrayRealloc},
{"pslibc::psArrayAdd", _wrap_psArrayAdd},
{"pslibc::psArrayRemove", _wrap_psArrayRemove},
{"pslibc::psArrayElementFree", _wrap_psArrayElementFree},
{"pslibc::psArraySort", _wrap_psArraySort},
{"pslibc::psArraySet", _wrap_psArraySet},
{"pslibc::psArrayGet", _wrap_psArrayGet},
{"pslibc::psBitSet_n_set", _wrap_psBitSet_n_set},
{"pslibc::psBitSet_n_get", _wrap_psBitSet_n_get},
{"pslibc::psBitSet_bits_set", _wrap_psBitSet_bits_set},
{"pslibc::psBitSet_bits_get", _wrap_psBitSet_bits_get},
{"pslibc::new_psBitSet", _wrap_new_psBitSet},
{"pslibc::delete_psBitSet", _wrap_delete_psBitSet},
{"pslibc::psBitSetAlloc", _wrap_psBitSetAlloc},
{"pslibc::psBitSetSet", _wrap_psBitSetSet},
{"pslibc::psBitSetClear", _wrap_psBitSetClear},
{"pslibc::psBitSetTest", _wrap_psBitSetTest},
{"pslibc::psBitSetOp", _wrap_psBitSetOp},
{"pslibc::psBitSetNot", _wrap_psBitSetNot},
{"pslibc::psBitSetToString", _wrap_psBitSetToString},
{"pslibc::psCompareS8Ptr", _wrap_psCompareS8Ptr},
{"pslibc::psCompareS16Ptr", _wrap_psCompareS16Ptr},
{"pslibc::psCompareS32Ptr", _wrap_psCompareS32Ptr},
{"pslibc::psCompareS64Ptr", _wrap_psCompareS64Ptr},
{"pslibc::psCompareU8Ptr", _wrap_psCompareU8Ptr},
{"pslibc::psCompareU16Ptr", _wrap_psCompareU16Ptr},
{"pslibc::psCompareU32Ptr", _wrap_psCompareU32Ptr},
{"pslibc::psCompareU64Ptr", _wrap_psCompareU64Ptr},
{"pslibc::psCompareF32Ptr", _wrap_psCompareF32Ptr},
{"pslibc::psCompareF64Ptr", _wrap_psCompareF64Ptr},
{"pslibc::psCompareDescendingS8Ptr", _wrap_psCompareDescendingS8Ptr},
{"pslibc::psCompareDescendingS16Ptr", _wrap_psCompareDescendingS16Ptr},
{"pslibc::psCompareDescendingS32Ptr", _wrap_psCompareDescendingS32Ptr},
{"pslibc::psCompareDescendingS64Ptr", _wrap_psCompareDescendingS64Ptr},
{"pslibc::psCompareDescendingU8Ptr", _wrap_psCompareDescendingU8Ptr},
{"pslibc::psCompareDescendingU16Ptr", _wrap_psCompareDescendingU16Ptr},
{"pslibc::psCompareDescendingU32Ptr", _wrap_psCompareDescendingU32Ptr},
{"pslibc::psCompareDescendingU64Ptr", _wrap_psCompareDescendingU64Ptr},
{"pslibc::psCompareDescendingF32Ptr", _wrap_psCompareDescendingF32Ptr},
{"pslibc::psCompareDescendingF64Ptr", _wrap_psCompareDescendingF64Ptr},
{"pslibc::psCompareS8", _wrap_psCompareS8},
{"pslibc::psCompareS16", _wrap_psCompareS16},
{"pslibc::psCompareS32", _wrap_psCompareS32},
{"pslibc::psCompareS64", _wrap_psCompareS64},
{"pslibc::psCompareU8", _wrap_psCompareU8},
{"pslibc::psCompareU16", _wrap_psCompareU16},
{"pslibc::psCompareU32", _wrap_psCompareU32},
{"pslibc::psCompareU64", _wrap_psCompareU64},
{"pslibc::psCompareF32", _wrap_psCompareF32},
{"pslibc::psCompareF64", _wrap_psCompareF64},
{"pslibc::psCompareDescendingS8", _wrap_psCompareDescendingS8},
{"pslibc::psCompareDescendingS16", _wrap_psCompareDescendingS16},
{"pslibc::psCompareDescendingS32", _wrap_psCompareDescendingS32},
{"pslibc::psCompareDescendingS64", _wrap_psCompareDescendingS64},
{"pslibc::psCompareDescendingU8", _wrap_psCompareDescendingU8},
{"pslibc::psCompareDescendingU16", _wrap_psCompareDescendingU16},
{"pslibc::psCompareDescendingU32", _wrap_psCompareDescendingU32},
{"pslibc::psCompareDescendingU64", _wrap_psCompareDescendingU64},
{"pslibc::psCompareDescendingF32", _wrap_psCompareDescendingF32},
{"pslibc::psCompareDescendingF64", _wrap_psCompareDescendingF64},
{"pslibc::psHashBucket_key_set", _wrap_psHashBucket_key_set},
{"pslibc::psHashBucket_key_get", _wrap_psHashBucket_key_get},
{"pslibc::psHashBucket_data_set", _wrap_psHashBucket_data_set},
{"pslibc::psHashBucket_data_get", _wrap_psHashBucket_data_get},
{"pslibc::psHashBucket_next_set", _wrap_psHashBucket_next_set},
{"pslibc::psHashBucket_next_get", _wrap_psHashBucket_next_get},
{"pslibc::new_psHashBucket", _wrap_new_psHashBucket},
{"pslibc::delete_psHashBucket", _wrap_delete_psHashBucket},
{"pslibc::psHash_nbucket_set", _wrap_psHash_nbucket_set},
{"pslibc::psHash_nbucket_get", _wrap_psHash_nbucket_get},
{"pslibc::psHash_buckets_set", _wrap_psHash_buckets_set},
{"pslibc::psHash_buckets_get", _wrap_psHash_buckets_get},
{"pslibc::new_psHash", _wrap_new_psHash},
{"pslibc::delete_psHash", _wrap_delete_psHash},
{"pslibc::psHashAlloc", _wrap_psHashAlloc},
{"pslibc::psHashAdd", _wrap_psHashAdd},
{"pslibc::psHashLookup", _wrap_psHashLookup},
{"pslibc::psHashRemove", _wrap_psHashRemove},
{"pslibc::psHashKeyList", _wrap_psHashKeyList},
{"pslibc::psHashToArray", _wrap_psHashToArray},
{"pslibc::psListElem_prev_set", _wrap_psListElem_prev_set},
{"pslibc::psListElem_prev_get", _wrap_psListElem_prev_get},
{"pslibc::psListElem_next_set", _wrap_psListElem_next_set},
{"pslibc::psListElem_next_get", _wrap_psListElem_next_get},
{"pslibc::psListElem_data_set", _wrap_psListElem_data_set},
{"pslibc::psListElem_data_get", _wrap_psListElem_data_get},
{"pslibc::new_psListElem", _wrap_new_psListElem},
{"pslibc::delete_psListElem", _wrap_delete_psListElem},
{"pslibc::psList_size_set", _wrap_psList_size_set},
{"pslibc::psList_size_get", _wrap_psList_size_get},
{"pslibc::psList_head_set", _wrap_psList_head_set},
{"pslibc::psList_head_get", _wrap_psList_head_get},
{"pslibc::psList_tail_set", _wrap_psList_tail_set},
{"pslibc::psList_tail_get", _wrap_psList_tail_get},
{"pslibc::psList_iterators_set", _wrap_psList_iterators_set},
{"pslibc::psList_iterators_get", _wrap_psList_iterators_get},
{"pslibc::psList_lock_set", _wrap_psList_lock_set},
{"pslibc::psList_lock_get", _wrap_psList_lock_get},
{"pslibc::new_psList", _wrap_new_psList},
{"pslibc::delete_psList", _wrap_delete_psList},
{"pslibc::psListIterator_list_set", _wrap_psListIterator_list_set},
{"pslibc::psListIterator_list_get", _wrap_psListIterator_list_get},
{"pslibc::psListIterator_cursor_set", _wrap_psListIterator_cursor_set},
{"pslibc::psListIterator_cursor_get", _wrap_psListIterator_cursor_get},
{"pslibc::psListIterator_index_set", _wrap_psListIterator_index_set},
{"pslibc::psListIterator_index_get", _wrap_psListIterator_index_get},
{"pslibc::psListIterator_offEnd_set", _wrap_psListIterator_offEnd_set},
{"pslibc::psListIterator_offEnd_get", _wrap_psListIterator_offEnd_get},
{"pslibc::psListIterator_mutable_set", _wrap_psListIterator_mutable_set},
{"pslibc::psListIterator_mutable_get", _wrap_psListIterator_mutable_get},
{"pslibc::new_psListIterator", _wrap_new_psListIterator},
{"pslibc::delete_psListIterator", _wrap_delete_psListIterator},
{"pslibc::psListAlloc", _wrap_psListAlloc},
{"pslibc::psListIteratorAlloc", _wrap_psListIteratorAlloc},
{"pslibc::psListIteratorSet", _wrap_psListIteratorSet},
{"pslibc::psListAdd", _wrap_psListAdd},
{"pslibc::psListAddAfter", _wrap_psListAddAfter},
{"pslibc::psListAddBefore", _wrap_psListAddBefore},
{"pslibc::psListRemove", _wrap_psListRemove},
{"pslibc::psListRemoveData", _wrap_psListRemoveData},
{"pslibc::psListGet", _wrap_psListGet},
{"pslibc::psListGetAndIncrement", _wrap_psListGetAndIncrement},
{"pslibc::psListGetAndDecrement", _wrap_psListGetAndDecrement},
{"pslibc::psListToArray", _wrap_psListToArray},
{"pslibc::psArrayToList", _wrap_psArrayToList},
{"pslibc::psListSort", _wrap_psListSort},
{"pslibc::psScalar_type_set", _wrap_psScalar_type_set},
{"pslibc::psScalar_type_get", _wrap_psScalar_type_get},
{"pslibc::psScalar_data_get", _wrap_psScalar_data_get},
{"pslibc::new_psScalar", _wrap_new_psScalar},
{"pslibc::delete_psScalar", _wrap_delete_psScalar},
{"pslibc::psScalar_data_U8_set", _wrap_psScalar_data_U8_set},
{"pslibc::psScalar_data_U8_get", _wrap_psScalar_data_U8_get},
{"pslibc::psScalar_data_U16_set", _wrap_psScalar_data_U16_set},
{"pslibc::psScalar_data_U16_get", _wrap_psScalar_data_U16_get},
{"pslibc::psScalar_data_U32_set", _wrap_psScalar_data_U32_set},
{"pslibc::psScalar_data_U32_get", _wrap_psScalar_data_U32_get},
{"pslibc::psScalar_data_U64_set", _wrap_psScalar_data_U64_set},
{"pslibc::psScalar_data_U64_get", _wrap_psScalar_data_U64_get},
{"pslibc::psScalar_data_S8_set", _wrap_psScalar_data_S8_set},
{"pslibc::psScalar_data_S8_get", _wrap_psScalar_data_S8_get},
{"pslibc::psScalar_data_S16_set", _wrap_psScalar_data_S16_set},
{"pslibc::psScalar_data_S16_get", _wrap_psScalar_data_S16_get},
{"pslibc::psScalar_data_S32_set", _wrap_psScalar_data_S32_set},
{"pslibc::psScalar_data_S32_get", _wrap_psScalar_data_S32_get},
{"pslibc::psScalar_data_S64_set", _wrap_psScalar_data_S64_set},
{"pslibc::psScalar_data_S64_get", _wrap_psScalar_data_S64_get},
{"pslibc::psScalar_data_F32_set", _wrap_psScalar_data_F32_set},
{"pslibc::psScalar_data_F32_get", _wrap_psScalar_data_F32_get},
{"pslibc::psScalar_data_F64_set", _wrap_psScalar_data_F64_set},
{"pslibc::psScalar_data_F64_get", _wrap_psScalar_data_F64_get},
{"pslibc::psScalar_data_C32_set", _wrap_psScalar_data_C32_set},
{"pslibc::psScalar_data_C32_get", _wrap_psScalar_data_C32_get},
{"pslibc::psScalar_data_C64_set", _wrap_psScalar_data_C64_set},
{"pslibc::psScalar_data_C64_get", _wrap_psScalar_data_C64_get},
{"pslibc::new_psScalar_data", _wrap_new_psScalar_data},
{"pslibc::delete_psScalar_data", _wrap_delete_psScalar_data},
{"pslibc::psScalarAlloc", _wrap_psScalarAlloc},
{"pslibc::psScalarCopy", _wrap_psScalarCopy},
{"pslibc::psVector_type_set", _wrap_psVector_type_set},
{"pslibc::psVector_type_get", _wrap_psVector_type_get},
{"pslibc::psVector_nalloc_set", _wrap_psVector_nalloc_set},
{"pslibc::psVector_nalloc_get", _wrap_psVector_nalloc_get},
{"pslibc::psVector_n_set", _wrap_psVector_n_set},
{"pslibc::psVector_n_get", _wrap_psVector_n_get},
{"pslibc::psVector_data_get", _wrap_psVector_data_get},
{"pslibc::new_psVector", _wrap_new_psVector},
{"pslibc::delete_psVector", _wrap_delete_psVector},
{"pslibc::psVector_data_U8_set", _wrap_psVector_data_U8_set},
{"pslibc::psVector_data_U8_get", _wrap_psVector_data_U8_get},
{"pslibc::psVector_data_U16_set", _wrap_psVector_data_U16_set},
{"pslibc::psVector_data_U16_get", _wrap_psVector_data_U16_get},
{"pslibc::psVector_data_U32_set", _wrap_psVector_data_U32_set},
{"pslibc::psVector_data_U32_get", _wrap_psVector_data_U32_get},
{"pslibc::psVector_data_U64_set", _wrap_psVector_data_U64_set},
{"pslibc::psVector_data_U64_get", _wrap_psVector_data_U64_get},
{"pslibc::psVector_data_S8_set", _wrap_psVector_data_S8_set},
{"pslibc::psVector_data_S8_get", _wrap_psVector_data_S8_get},
{"pslibc::psVector_data_S16_set", _wrap_psVector_data_S16_set},
{"pslibc::psVector_data_S16_get", _wrap_psVector_data_S16_get},
{"pslibc::psVector_data_S32_set", _wrap_psVector_data_S32_set},
{"pslibc::psVector_data_S32_get", _wrap_psVector_data_S32_get},
{"pslibc::psVector_data_S64_set", _wrap_psVector_data_S64_set},
{"pslibc::psVector_data_S64_get", _wrap_psVector_data_S64_get},
{"pslibc::psVector_data_F32_set", _wrap_psVector_data_F32_set},
{"pslibc::psVector_data_F32_get", _wrap_psVector_data_F32_get},
{"pslibc::psVector_data_F64_set", _wrap_psVector_data_F64_set},
{"pslibc::psVector_data_F64_get", _wrap_psVector_data_F64_get},
{"pslibc::psVector_data_C32_set", _wrap_psVector_data_C32_set},
{"pslibc::psVector_data_C32_get", _wrap_psVector_data_C32_get},
{"pslibc::psVector_data_C64_set", _wrap_psVector_data_C64_set},
{"pslibc::psVector_data_C64_get", _wrap_psVector_data_C64_get},
{"pslibc::new_psVector_data", _wrap_new_psVector_data},
{"pslibc::delete_psVector_data", _wrap_delete_psVector_data},
{"pslibc::psVectorAlloc", _wrap_psVectorAlloc},
{"pslibc::psVectorRealloc", _wrap_psVectorRealloc},
{"pslibc::psVectorRecycle", _wrap_psVectorRecycle},
{"pslibc::psVectorCopy", _wrap_psVectorCopy},
{"pslibc::psVectorSort", _wrap_psVectorSort},
{"pslibc::psVectorSortIndex", _wrap_psVectorSortIndex},
{"pslibc::psVectorToString", _wrap_psVectorToString},
{"pslibc::p_psVectorGetElementF64", _wrap_p_psVectorGetElementF64},
{"pslibc::psGrommit_latitude_get", _wrap_psGrommit_latitude_get},
{"pslibc::psGrommit_sinLat_get", _wrap_psGrommit_sinLat_get},
{"pslibc::psGrommit_cosLat_get", _wrap_psGrommit_cosLat_get},
{"pslibc::psGrommit_abberationMag_get", _wrap_psGrommit_abberationMag_get},
{"pslibc::psGrommit_height_get", _wrap_psGrommit_height_get},
{"pslibc::psGrommit_temperature_get", _wrap_psGrommit_temperature_get},
{"pslibc::psGrommit_pressure_get", _wrap_psGrommit_pressure_get},
{"pslibc::psGrommit_humidity_get", _wrap_psGrommit_humidity_get},
{"pslibc::psGrommit_wavelength_get", _wrap_psGrommit_wavelength_get},
{"pslibc::psGrommit_lapseRate_get", _wrap_psGrommit_lapseRate_get},
{"pslibc::psGrommit_refractA_get", _wrap_psGrommit_refractA_get},
{"pslibc::psGrommit_refractB_get", _wrap_psGrommit_refractB_get},
{"pslibc::psGrommit_longitudeOffset_get", _wrap_psGrommit_longitudeOffset_get},
{"pslibc::psGrommit_siderealTime_get", _wrap_psGrommit_siderealTime_get},
{"pslibc::new_psGrommit", _wrap_new_psGrommit},
{"pslibc::delete_psGrommit", _wrap_delete_psGrommit},
{"pslibc::psFixedPattern_nX_set", _wrap_psFixedPattern_nX_set},
{"pslibc::psFixedPattern_nX_get", _wrap_psFixedPattern_nX_get},
{"pslibc::psFixedPattern_nY_set", _wrap_psFixedPattern_nY_set},
{"pslibc::psFixedPattern_nY_get", _wrap_psFixedPattern_nY_get},
{"pslibc::psFixedPattern_x0_set", _wrap_psFixedPattern_x0_set},
{"pslibc::psFixedPattern_x0_get", _wrap_psFixedPattern_x0_get},
{"pslibc::psFixedPattern_y0_set", _wrap_psFixedPattern_y0_set},
{"pslibc::psFixedPattern_y0_get", _wrap_psFixedPattern_y0_get},
{"pslibc::psFixedPattern_xScale_set", _wrap_psFixedPattern_xScale_set},
{"pslibc::psFixedPattern_xScale_get", _wrap_psFixedPattern_xScale_get},
{"pslibc::psFixedPattern_yScale_set", _wrap_psFixedPattern_yScale_set},
{"pslibc::psFixedPattern_yScale_get", _wrap_psFixedPattern_yScale_get},
{"pslibc::psFixedPattern_p_ps_xRows_set", _wrap_psFixedPattern_p_ps_xRows_set},
{"pslibc::psFixedPattern_p_ps_xRows_get", _wrap_psFixedPattern_p_ps_xRows_get},
{"pslibc::psFixedPattern_p_ps_xCols_set", _wrap_psFixedPattern_p_ps_xCols_set},
{"pslibc::psFixedPattern_p_ps_xCols_get", _wrap_psFixedPattern_p_ps_xCols_get},
{"pslibc::psFixedPattern_p_ps_yRows_set", _wrap_psFixedPattern_p_ps_yRows_set},
{"pslibc::psFixedPattern_p_ps_yRows_get", _wrap_psFixedPattern_p_ps_yRows_get},
{"pslibc::psFixedPattern_p_ps_yCols_set", _wrap_psFixedPattern_p_ps_yCols_set},
{"pslibc::psFixedPattern_p_ps_yCols_get", _wrap_psFixedPattern_p_ps_yCols_get},
{"pslibc::psFixedPattern_x_set", _wrap_psFixedPattern_x_set},
{"pslibc::psFixedPattern_x_get", _wrap_psFixedPattern_x_get},
{"pslibc::psFixedPattern_y_set", _wrap_psFixedPattern_y_set},
{"pslibc::psFixedPattern_y_get", _wrap_psFixedPattern_y_get},
{"pslibc::new_psFixedPattern", _wrap_new_psFixedPattern},
{"pslibc::delete_psFixedPattern", _wrap_delete_psFixedPattern},
{"pslibc::psReadout_col0_get", _wrap_psReadout_col0_get},
{"pslibc::psReadout_row0_get", _wrap_psReadout_row0_get},
{"pslibc::psReadout_colParity_get", _wrap_psReadout_colParity_get},
{"pslibc::psReadout_rowParity_get", _wrap_psReadout_rowParity_get},
{"pslibc::psReadout_colBins_get", _wrap_psReadout_colBins_get},
{"pslibc::psReadout_rowBins_get", _wrap_psReadout_rowBins_get},
{"pslibc::psReadout_image_set", _wrap_psReadout_image_set},
{"pslibc::psReadout_image_get", _wrap_psReadout_image_get},
{"pslibc::psReadout_mask_set", _wrap_psReadout_mask_set},
{"pslibc::psReadout_mask_get", _wrap_psReadout_mask_get},
{"pslibc::psReadout_objects_set", _wrap_psReadout_objects_set},
{"pslibc::psReadout_objects_get", _wrap_psReadout_objects_get},
{"pslibc::psReadout_metadata_set", _wrap_psReadout_metadata_set},
{"pslibc::psReadout_metadata_get", _wrap_psReadout_metadata_get},
{"pslibc::new_psReadout", _wrap_new_psReadout},
{"pslibc::delete_psReadout", _wrap_delete_psReadout},
{"pslibc::psCell_col0_get", _wrap_psCell_col0_get},
{"pslibc::psCell_row0_get", _wrap_psCell_row0_get},
{"pslibc::psCell_readouts_set", _wrap_psCell_readouts_set},
{"pslibc::psCell_readouts_get", _wrap_psCell_readouts_get},
{"pslibc::psCell_metadata_set", _wrap_psCell_metadata_set},
{"pslibc::psCell_metadata_get", _wrap_psCell_metadata_get},
{"pslibc::psCell_toChip_set", _wrap_psCell_toChip_set},
{"pslibc::psCell_toChip_get", _wrap_psCell_toChip_get},
{"pslibc::psCell_fromChip_set", _wrap_psCell_fromChip_set},
{"pslibc::psCell_fromChip_get", _wrap_psCell_fromChip_get},
{"pslibc::psCell_toFPA_set", _wrap_psCell_toFPA_set},
{"pslibc::psCell_toFPA_get", _wrap_psCell_toFPA_get},
{"pslibc::psCell_toTP_set", _wrap_psCell_toTP_set},
{"pslibc::psCell_toTP_get", _wrap_psCell_toTP_get},
{"pslibc::psCell_toSky_set", _wrap_psCell_toSky_set},
{"pslibc::psCell_toSky_get", _wrap_psCell_toSky_get},
{"pslibc::psCell_parent_set", _wrap_psCell_parent_set},
{"pslibc::psCell_parent_get", _wrap_psCell_parent_get},
{"pslibc::new_psCell", _wrap_new_psCell},
{"pslibc::delete_psCell", _wrap_delete_psCell},
{"pslibc::psChip_col0_get", _wrap_psChip_col0_get},
{"pslibc::psChip_row0_get", _wrap_psChip_row0_get},
{"pslibc::psChip_cells_set", _wrap_psChip_cells_set},
{"pslibc::psChip_cells_get", _wrap_psChip_cells_get},
{"pslibc::psChip_metadata_set", _wrap_psChip_metadata_set},
{"pslibc::psChip_metadata_get", _wrap_psChip_metadata_get},
{"pslibc::psChip_toFPA_set", _wrap_psChip_toFPA_set},
{"pslibc::psChip_toFPA_get", _wrap_psChip_toFPA_get},
{"pslibc::psChip_fromFPA_set", _wrap_psChip_fromFPA_set},
{"pslibc::psChip_fromFPA_get", _wrap_psChip_fromFPA_get},
{"pslibc::psChip_parent_set", _wrap_psChip_parent_set},
{"pslibc::psChip_parent_get", _wrap_psChip_parent_get},
{"pslibc::new_psChip", _wrap_new_psChip},
{"pslibc::delete_psChip", _wrap_delete_psChip},
{"pslibc::psFPA_chips_set", _wrap_psFPA_chips_set},
{"pslibc::psFPA_chips_get", _wrap_psFPA_chips_get},
{"pslibc::psFPA_metadata_set", _wrap_psFPA_metadata_set},
{"pslibc::psFPA_metadata_get", _wrap_psFPA_metadata_get},
{"pslibc::psFPA_fromTangentPlane_set", _wrap_psFPA_fromTangentPlane_set},
{"pslibc::psFPA_fromTangentPlane_get", _wrap_psFPA_fromTangentPlane_get},
{"pslibc::psFPA_toTangentPlane_set", _wrap_psFPA_toTangentPlane_set},
{"pslibc::psFPA_toTangentPlane_get", _wrap_psFPA_toTangentPlane_get},
{"pslibc::psFPA_pattern_set", _wrap_psFPA_pattern_set},
{"pslibc::psFPA_pattern_get", _wrap_psFPA_pattern_get},
{"pslibc::psFPA_exposure_set", _wrap_psFPA_exposure_set},
{"pslibc::psFPA_exposure_get", _wrap_psFPA_exposure_get},
{"pslibc::psFPA_grommit_set", _wrap_psFPA_grommit_set},
{"pslibc::psFPA_grommit_get", _wrap_psFPA_grommit_get},
{"pslibc::psFPA_colorPlus_set", _wrap_psFPA_colorPlus_set},
{"pslibc::psFPA_colorPlus_get", _wrap_psFPA_colorPlus_get},
{"pslibc::psFPA_colorMinus_set", _wrap_psFPA_colorMinus_set},
{"pslibc::psFPA_colorMinus_get", _wrap_psFPA_colorMinus_get},
{"pslibc::psFPA_projection_set", _wrap_psFPA_projection_set},
{"pslibc::psFPA_projection_get", _wrap_psFPA_projection_get},
{"pslibc::psFPA_rmsX_set", _wrap_psFPA_rmsX_set},
{"pslibc::psFPA_rmsX_get", _wrap_psFPA_rmsX_get},
{"pslibc::psFPA_rmsY_set", _wrap_psFPA_rmsY_set},
{"pslibc::psFPA_rmsY_get", _wrap_psFPA_rmsY_get},
{"pslibc::psFPA_chi2_set", _wrap_psFPA_chi2_set},
{"pslibc::psFPA_chi2_get", _wrap_psFPA_chi2_get},
{"pslibc::new_psFPA", _wrap_new_psFPA},
{"pslibc::delete_psFPA", _wrap_delete_psFPA},
{"pslibc::psObservatory_name_set", _wrap_psObservatory_name_set},
{"pslibc::psObservatory_name_get", _wrap_psObservatory_name_get},
{"pslibc::psObservatory_latitude_get", _wrap_psObservatory_latitude_get},
{"pslibc::psObservatory_longitude_get", _wrap_psObservatory_longitude_get},
{"pslibc::psObservatory_height_get", _wrap_psObservatory_height_get},
{"pslibc::psObservatory_tlr_get", _wrap_psObservatory_tlr_get},
{"pslibc::new_psObservatory", _wrap_new_psObservatory},
{"pslibc::delete_psObservatory", _wrap_delete_psObservatory},
{"pslibc::psExposure_ra_get", _wrap_psExposure_ra_get},
{"pslibc::psExposure_dec_get", _wrap_psExposure_dec_get},
{"pslibc::psExposure_hourAngle_get", _wrap_psExposure_hourAngle_get},
{"pslibc::psExposure_zenithDistance_get", _wrap_psExposure_zenithDistance_get},
{"pslibc::psExposure_azimuth_get", _wrap_psExposure_azimuth_get},
{"pslibc::psExposure_time_set", _wrap_psExposure_time_set},
{"pslibc::psExposure_time_get", _wrap_psExposure_time_get},
{"pslibc::psExposure_rotAngle_get", _wrap_psExposure_rotAngle_get},
{"pslibc::psExposure_temperature_get", _wrap_psExposure_temperature_get},
{"pslibc::psExposure_pressure_get", _wrap_psExposure_pressure_get},
{"pslibc::psExposure_humidity_get", _wrap_psExposure_humidity_get},
{"pslibc::psExposure_exposureTime_get", _wrap_psExposure_exposureTime_get},
{"pslibc::psExposure_wavelength_get", _wrap_psExposure_wavelength_get},
{"pslibc::psExposure_observatory_set", _wrap_psExposure_observatory_set},
{"pslibc::psExposure_observatory_get", _wrap_psExposure_observatory_get},
{"pslibc::psExposure_lst_get", _wrap_psExposure_lst_get},
{"pslibc::psExposure_positionAngle_get", _wrap_psExposure_positionAngle_get},
{"pslibc::psExposure_parallacticAngle_get", _wrap_psExposure_parallacticAngle_get},
{"pslibc::psExposure_airmass_get", _wrap_psExposure_airmass_get},
{"pslibc::psExposure_parallacticFactor_get", _wrap_psExposure_parallacticFactor_get},
{"pslibc::psExposure_cameraName_set", _wrap_psExposure_cameraName_set},
{"pslibc::psExposure_cameraName_get", _wrap_psExposure_cameraName_get},
{"pslibc::psExposure_telescopeName_set", _wrap_psExposure_telescopeName_set},
{"pslibc::psExposure_telescopeName_get", _wrap_psExposure_telescopeName_get},
{"pslibc::new_psExposure", _wrap_new_psExposure},
{"pslibc::delete_psExposure", _wrap_delete_psExposure},
{"pslibc::psFixedPatternAlloc", _wrap_psFixedPatternAlloc},
{"pslibc::psExposureAlloc", _wrap_psExposureAlloc},
{"pslibc::psObservatoryAlloc", _wrap_psObservatoryAlloc},
{"pslibc::psFPAAlloc", _wrap_psFPAAlloc},
{"pslibc::psChipAlloc", _wrap_psChipAlloc},
{"pslibc::psCellAlloc", _wrap_psCellAlloc},
{"pslibc::psReadoutAlloc", _wrap_psReadoutAlloc},
{"pslibc::psGrommitAlloc", _wrap_psGrommitAlloc},
{"pslibc::psCellInFPA", _wrap_psCellInFPA},
{"pslibc::psChipInFPA", _wrap_psChipInFPA},
{"pslibc::psCellInChip", _wrap_psCellInChip},
{"pslibc::psCoordCellToChip", _wrap_psCoordCellToChip},
{"pslibc::psCoordChipToFPA", _wrap_psCoordChipToFPA},
{"pslibc::psCoordFPAToTP", _wrap_psCoordFPAToTP},
{"pslibc::psCoordTPToSky", _wrap_psCoordTPToSky},
{"pslibc::psCoordCellToFPA", _wrap_psCoordCellToFPA},
{"pslibc::psCoordCellToSky", _wrap_psCoordCellToSky},
{"pslibc::psCoordCellToSkyQuick", _wrap_psCoordCellToSkyQuick},
{"pslibc::psCoordSkyToTP", _wrap_psCoordSkyToTP},
{"pslibc::psCoordTPToFPA", _wrap_psCoordTPToFPA},
{"pslibc::psCoordFPAToChip", _wrap_psCoordFPAToChip},
{"pslibc::psCoordChipToCell", _wrap_psCoordChipToCell},
{"pslibc::psCoordSkyToCell", _wrap_psCoordSkyToCell},
{"pslibc::psCoordSkyToCellQuick", _wrap_psCoordSkyToCellQuick},
{"pslibc::psPlane_x_set", _wrap_psPlane_x_set},
{"pslibc::psPlane_x_get", _wrap_psPlane_x_get},
{"pslibc::psPlane_y_set", _wrap_psPlane_y_set},
{"pslibc::psPlane_y_get", _wrap_psPlane_y_get},
{"pslibc::psPlane_xErr_set", _wrap_psPlane_xErr_set},
{"pslibc::psPlane_xErr_get", _wrap_psPlane_xErr_get},
{"pslibc::psPlane_yErr_set", _wrap_psPlane_yErr_set},
{"pslibc::psPlane_yErr_get", _wrap_psPlane_yErr_get},
{"pslibc::new_psPlane", _wrap_new_psPlane},
{"pslibc::delete_psPlane", _wrap_delete_psPlane},
{"pslibc::psSphere_r_set", _wrap_psSphere_r_set},
{"pslibc::psSphere_r_get", _wrap_psSphere_r_get},
{"pslibc::psSphere_d_set", _wrap_psSphere_d_set},
{"pslibc::psSphere_d_get", _wrap_psSphere_d_get},
{"pslibc::psSphere_rErr_set", _wrap_psSphere_rErr_set},
{"pslibc::psSphere_rErr_get", _wrap_psSphere_rErr_get},
{"pslibc::psSphere_dErr_set", _wrap_psSphere_dErr_set},
{"pslibc::psSphere_dErr_get", _wrap_psSphere_dErr_get},
{"pslibc::new_psSphere", _wrap_new_psSphere},
{"pslibc::delete_psSphere", _wrap_delete_psSphere},
{"pslibc::psPlaneTransform_x_set", _wrap_psPlaneTransform_x_set},
{"pslibc::psPlaneTransform_x_get", _wrap_psPlaneTransform_x_get},
{"pslibc::psPlaneTransform_y_set", _wrap_psPlaneTransform_y_set},
{"pslibc::psPlaneTransform_y_get", _wrap_psPlaneTransform_y_get},
{"pslibc::new_psPlaneTransform", _wrap_new_psPlaneTransform},
{"pslibc::delete_psPlaneTransform", _wrap_delete_psPlaneTransform},
{"pslibc::psPlaneDistort_x_set", _wrap_psPlaneDistort_x_set},
{"pslibc::psPlaneDistort_x_get", _wrap_psPlaneDistort_x_get},
{"pslibc::psPlaneDistort_y_set", _wrap_psPlaneDistort_y_set},
{"pslibc::psPlaneDistort_y_get", _wrap_psPlaneDistort_y_get},
{"pslibc::new_psPlaneDistort", _wrap_new_psPlaneDistort},
{"pslibc::delete_psPlaneDistort", _wrap_delete_psPlaneDistort},
{"pslibc::psSphereTransform_alphaP_set", _wrap_psSphereTransform_alphaP_set},
{"pslibc::psSphereTransform_alphaP_get", _wrap_psSphereTransform_alphaP_get},
{"pslibc::psSphereTransform_cosDeltaP_set", _wrap_psSphereTransform_cosDeltaP_set},
{"pslibc::psSphereTransform_cosDeltaP_get", _wrap_psSphereTransform_cosDeltaP_get},
{"pslibc::psSphereTransform_sinDeltaP_set", _wrap_psSphereTransform_sinDeltaP_set},
{"pslibc::psSphereTransform_sinDeltaP_get", _wrap_psSphereTransform_sinDeltaP_get},
{"pslibc::psSphereTransform_phiP_set", _wrap_psSphereTransform_phiP_set},
{"pslibc::psSphereTransform_phiP_get", _wrap_psSphereTransform_phiP_get},
{"pslibc::new_psSphereTransform", _wrap_new_psSphereTransform},
{"pslibc::delete_psSphereTransform", _wrap_delete_psSphereTransform},
{"pslibc::psProjection_R_set", _wrap_psProjection_R_set},
{"pslibc::psProjection_R_get", _wrap_psProjection_R_get},
{"pslibc::psProjection_D_set", _wrap_psProjection_D_set},
{"pslibc::psProjection_D_get", _wrap_psProjection_D_get},
{"pslibc::psProjection_Xs_set", _wrap_psProjection_Xs_set},
{"pslibc::psProjection_Xs_get", _wrap_psProjection_Xs_get},
{"pslibc::psProjection_Ys_set", _wrap_psProjection_Ys_set},
{"pslibc::psProjection_Ys_get", _wrap_psProjection_Ys_get},
{"pslibc::psProjection_type_set", _wrap_psProjection_type_set},
{"pslibc::psProjection_type_get", _wrap_psProjection_type_get},
{"pslibc::new_psProjection", _wrap_new_psProjection},
{"pslibc::delete_psProjection", _wrap_delete_psProjection},
{"pslibc::psPlaneAlloc", _wrap_psPlaneAlloc},
{"pslibc::psSphereAlloc", _wrap_psSphereAlloc},
{"pslibc::psPlaneTransformAlloc", _wrap_psPlaneTransformAlloc},
{"pslibc::psPlaneTransformApply", _wrap_psPlaneTransformApply},
{"pslibc::psPlaneDistortAlloc", _wrap_psPlaneDistortAlloc},
{"pslibc::psPlaneDistortApply", _wrap_psPlaneDistortApply},
{"pslibc::psSphereTransformAlloc", _wrap_psSphereTransformAlloc},
{"pslibc::psSphereTransformApply", _wrap_psSphereTransformApply},
{"pslibc::psSphereTransformICRSToEcliptic", _wrap_psSphereTransformICRSToEcliptic},
{"pslibc::psSphereTransformEclipticToICRS", _wrap_psSphereTransformEclipticToICRS},
{"pslibc::psSphereTransformICRSToGalactic", _wrap_psSphereTransformICRSToGalactic},
{"pslibc::psSphereTransformGalacticToICRS", _wrap_psSphereTransformGalacticToICRS},
{"pslibc::psProjectionAlloc", _wrap_psProjectionAlloc},
{"pslibc::psProject", _wrap_psProject},
{"pslibc::psDeproject", _wrap_psDeproject},
{"pslibc::psSphereGetOffset", _wrap_psSphereGetOffset},
{"pslibc::psSphereSetOffset", _wrap_psSphereSetOffset},
{"pslibc::psSpherePrecess", _wrap_psSpherePrecess},
{"pslibc::p_psPlaneTransformLinearInvert", _wrap_p_psPlaneTransformLinearInvert},
{"pslibc::p_psIsProjectionLinear", _wrap_p_psIsProjectionLinear},
{"pslibc::psPlaneTransformInvert", _wrap_psPlaneTransformInvert},
{"pslibc::psPlaneTransformCombine", _wrap_psPlaneTransformCombine},
{"pslibc::psPlaneTransformFit", _wrap_psPlaneTransformFit},
{"pslibc::psMetadata_list_set", _wrap_psMetadata_list_set},
{"pslibc::psMetadata_list_get", _wrap_psMetadata_list_get},
{"pslibc::psMetadata_table_set", _wrap_psMetadata_table_set},
{"pslibc::psMetadata_table_get", _wrap_psMetadata_table_get},
{"pslibc::new_psMetadata", _wrap_new_psMetadata},
{"pslibc::delete_psMetadata", _wrap_delete_psMetadata},
{"pslibc::psMetadataIterator_iter_set", _wrap_psMetadataIterator_iter_set},
{"pslibc::psMetadataIterator_iter_get", _wrap_psMetadataIterator_iter_get},
{"pslibc::psMetadataIterator_preg_set", _wrap_psMetadataIterator_preg_set},
{"pslibc::psMetadataIterator_preg_get", _wrap_psMetadataIterator_preg_get},
{"pslibc::new_psMetadataIterator", _wrap_new_psMetadataIterator},
{"pslibc::delete_psMetadataIterator", _wrap_delete_psMetadataIterator},
{"pslibc::psMetadataItem_id_get", _wrap_psMetadataItem_id_get},
{"pslibc::psMetadataItem_name_set", _wrap_psMetadataItem_name_set},
{"pslibc::psMetadataItem_name_get", _wrap_psMetadataItem_name_get},
{"pslibc::psMetadataItem_type_set", _wrap_psMetadataItem_type_set},
{"pslibc::psMetadataItem_type_get", _wrap_psMetadataItem_type_get},
{"pslibc::psMetadataItem_comment_set", _wrap_psMetadataItem_comment_set},
{"pslibc::psMetadataItem_comment_get", _wrap_psMetadataItem_comment_get},
{"pslibc::psMetadataItem_data_get", _wrap_psMetadataItem_data_get},
{"pslibc::psMetadataItem_get_STR", _wrap_psMetadataItem_get_STR},
{"pslibc::new_psMetadataItem", _wrap_new_psMetadataItem},
{"pslibc::delete_psMetadataItem", _wrap_delete_psMetadataItem},
{"pslibc::psMetadataItem_data_B_set", _wrap_psMetadataItem_data_B_set},
{"pslibc::psMetadataItem_data_B_get", _wrap_psMetadataItem_data_B_get},
{"pslibc::psMetadataItem_data_S32_set", _wrap_psMetadataItem_data_S32_set},
{"pslibc::psMetadataItem_data_S32_get", _wrap_psMetadataItem_data_S32_get},
{"pslibc::psMetadataItem_data_F32_set", _wrap_psMetadataItem_data_F32_set},
{"pslibc::psMetadataItem_data_F32_get", _wrap_psMetadataItem_data_F32_get},
{"pslibc::psMetadataItem_data_F64_set", _wrap_psMetadataItem_data_F64_set},
{"pslibc::psMetadataItem_data_F64_get", _wrap_psMetadataItem_data_F64_get},
{"pslibc::psMetadataItem_data_list_set", _wrap_psMetadataItem_data_list_set},
{"pslibc::psMetadataItem_data_list_get", _wrap_psMetadataItem_data_list_get},
{"pslibc::psMetadataItem_data_md_set", _wrap_psMetadataItem_data_md_set},
{"pslibc::psMetadataItem_data_md_get", _wrap_psMetadataItem_data_md_get},
{"pslibc::psMetadataItem_data_V_set", _wrap_psMetadataItem_data_V_set},
{"pslibc::psMetadataItem_data_V_get", _wrap_psMetadataItem_data_V_get},
{"pslibc::new_psMetadataItem_data", _wrap_new_psMetadataItem_data},
{"pslibc::delete_psMetadataItem_data", _wrap_delete_psMetadataItem_data},
{"pslibc::psMetadataItemAlloc", _wrap_psMetadataItemAlloc},
{"pslibc::psMetadataItemAllocStr", _wrap_psMetadataItemAllocStr},
{"pslibc::psMetadataItemAllocF32", _wrap_psMetadataItemAllocF32},
{"pslibc::psMetadataItemAllocF64", _wrap_psMetadataItemAllocF64},
{"pslibc::psMetadataItemAllocS32", _wrap_psMetadataItemAllocS32},
{"pslibc::psMetadataItemAllocBool", _wrap_psMetadataItemAllocBool},
{"pslibc::psMetadataAlloc", _wrap_psMetadataAlloc},
{"pslibc::psMetadataAddItem", _wrap_psMetadataAddItem},
{"pslibc::psMetadataAdd", _wrap_psMetadataAdd},
{"pslibc::psMetadataAddS32", _wrap_psMetadataAddS32},
{"pslibc::psMetadataAddF32", _wrap_psMetadataAddF32},
{"pslibc::psMetadataAddF64", _wrap_psMetadataAddF64},
{"pslibc::psMetadataAddList", _wrap_psMetadataAddList},
{"pslibc::psMetadataAddStr", _wrap_psMetadataAddStr},
{"pslibc::psMetadataAddVector", _wrap_psMetadataAddVector},
{"pslibc::psMetadataAddImage", _wrap_psMetadataAddImage},
{"pslibc::psMetadataAddHash", _wrap_psMetadataAddHash},
{"pslibc::psMetadataAddLookupTable", _wrap_psMetadataAddLookupTable},
{"pslibc::psMetadataAddUnknown", _wrap_psMetadataAddUnknown},
{"pslibc::psMetadataRemove", _wrap_psMetadataRemove},
{"pslibc::psMetadataLookup", _wrap_psMetadataLookup},
{"pslibc::psMetadataLookupF64", _wrap_psMetadataLookupF64},
{"pslibc::psMetadataLookupF32", _wrap_psMetadataLookupF32},
{"pslibc::psMetadataLookupS32", _wrap_psMetadataLookupS32},
{"pslibc::psMetadataLookupBool", _wrap_psMetadataLookupBool},
{"pslibc::psMetadataLookupPtr", _wrap_psMetadataLookupPtr},
{"pslibc::psMetadataGet", _wrap_psMetadataGet},
{"pslibc::psMetadataIteratorAlloc", _wrap_psMetadataIteratorAlloc},
{"pslibc::psMetadataIteratorSet", _wrap_psMetadataIteratorSet},
{"pslibc::psMetadataGetAndIncrement", _wrap_psMetadataGetAndIncrement},
{"pslibc::psMetadataGetAndDecrement", _wrap_psMetadataGetAndDecrement},
{"pslibc::psMetadataItemPrint", _wrap_psMetadataItemPrint},
{"pslibc::psMetadataReadHeader", _wrap_psMetadataReadHeader},
{"pslibc::psMetadataParseConfig", _wrap_psMetadataParseConfig},
{"pslibc::psMetadataParseConfigXml", _wrap_psMetadataParseConfigXml},
{"pslibc::psPhotSystem_ID_get", _wrap_psPhotSystem_ID_get},
{"pslibc::psPhotSystem_name_set", _wrap_psPhotSystem_name_set},
{"pslibc::psPhotSystem_name_get", _wrap_psPhotSystem_name_get},
{"pslibc::psPhotSystem_camera_set", _wrap_psPhotSystem_camera_set},
{"pslibc::psPhotSystem_camera_get", _wrap_psPhotSystem_camera_get},
{"pslibc::psPhotSystem_filter_set", _wrap_psPhotSystem_filter_set},
{"pslibc::psPhotSystem_filter_get", _wrap_psPhotSystem_filter_get},
{"pslibc::psPhotSystem_detector_set", _wrap_psPhotSystem_detector_set},
{"pslibc::psPhotSystem_detector_get", _wrap_psPhotSystem_detector_get},
{"pslibc::new_psPhotSystem", _wrap_new_psPhotSystem},
{"pslibc::delete_psPhotSystem", _wrap_delete_psPhotSystem},
{"pslibc::psPhotTransform_src_get", _wrap_psPhotTransform_src_get},
{"pslibc::psPhotTransform_dst_get", _wrap_psPhotTransform_dst_get},
{"pslibc::psPhotTransform_pP_get", _wrap_psPhotTransform_pP_get},
{"pslibc::psPhotTransform_pM_get", _wrap_psPhotTransform_pM_get},
{"pslibc::psPhotTransform_sP_get", _wrap_psPhotTransform_sP_get},
{"pslibc::psPhotTransform_sM_get", _wrap_psPhotTransform_sM_get},
{"pslibc::psPhotTransform_pA_set", _wrap_psPhotTransform_pA_set},
{"pslibc::psPhotTransform_pA_get", _wrap_psPhotTransform_pA_get},
{"pslibc::psPhotTransform_sA_set", _wrap_psPhotTransform_sA_set},
{"pslibc::psPhotTransform_sA_get", _wrap_psPhotTransform_sA_get},
{"pslibc::psPhotTransform_transform_set", _wrap_psPhotTransform_transform_set},
{"pslibc::psPhotTransform_transform_get", _wrap_psPhotTransform_transform_get},
{"pslibc::new_psPhotTransform", _wrap_new_psPhotTransform},
{"pslibc::delete_psPhotTransform", _wrap_delete_psPhotTransform},
{"pslibc::psTime_sec_set", _wrap_psTime_sec_set},
{"pslibc::psTime_sec_get", _wrap_psTime_sec_get},
{"pslibc::psTime_usec_set", _wrap_psTime_usec_set},
{"pslibc::psTime_usec_get", _wrap_psTime_usec_get},
{"pslibc::psTime_type_set", _wrap_psTime_type_set},
{"pslibc::psTime_type_get", _wrap_psTime_type_get},
{"pslibc::new_psTime", _wrap_new_psTime},
{"pslibc::delete_psTime", _wrap_delete_psTime},
{"pslibc::p_psTimeInit", _wrap_p_psTimeInit},
{"pslibc::p_psTimeFinalize", _wrap_p_psTimeFinalize},
{"pslibc::psTimeAlloc", _wrap_psTimeAlloc},
{"pslibc::psTimeGetTime", _wrap_psTimeGetTime},
{"pslibc::psTimeConvert", _wrap_psTimeConvert},
{"pslibc::psTimeToLST", _wrap_psTimeToLST},
{"pslibc::psTimeGetUT1Delta", _wrap_psTimeGetUT1Delta},
{"pslibc::psTimeGetTAIDelta", _wrap_psTimeGetTAIDelta},
{"pslibc::psTimeGetPoleCoords", _wrap_psTimeGetPoleCoords},
{"pslibc::psTimeLeapseconds", _wrap_psTimeLeapseconds},
{"pslibc::psTimeToJD", _wrap_psTimeToJD},
{"pslibc::psTimeToMJD", _wrap_psTimeToMJD},
{"pslibc::psTimeToISOTime", _wrap_psTimeToISOTime},
{"pslibc::psTimeToTimeval", _wrap_psTimeToTimeval},
{"pslibc::psTimeToTM", _wrap_psTimeToTM},
{"pslibc::psTimeFromJD", _wrap_psTimeFromJD},
{"pslibc::psTimeFromMJD", _wrap_psTimeFromMJD},
{"pslibc::psTimeFromISOTime", _wrap_psTimeFromISOTime},
{"pslibc::psTimeFromTimeval", _wrap_psTimeFromTimeval},
{"pslibc::psTimeFromTM", _wrap_psTimeFromTM},
{"pslibc::psTimeMath", _wrap_psTimeMath},
{"pslibc::psTimeDelta", _wrap_psTimeDelta},
{"pslibc::p_psGetConfigFileName", _wrap_p_psGetConfigFileName},
{0,0}
};

#ifdef __cplusplus
extern "C"
#endif

XS(SWIG_init) {
    dXSARGS;
    int i;
    static int _init = 0;
    if (!_init) {
        for (i = 0; swig_types_initial[i]; i++) {
            swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]);
        }	
        _init = 1;
    }
    
    /* Install commands */
    for (i = 0; swig_commands[i].name; i++) {
        newXS((char*) swig_commands[i].name,swig_commands[i].wrapper, (char*)__FILE__);
    }
    
    /* Install variables */
    for (i = 0; swig_variables[i].name; i++) {
        SV *sv;
        sv = perl_get_sv((char*) swig_variables[i].name, TRUE | 0x2);
        if (swig_variables[i].type) {
            SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0);
        } else {
            sv_setiv(sv,(IV) 0);
        }
        swig_create_magic(sv, (char *) swig_variables[i].name, swig_variables[i].set, swig_variables[i].get); 
    }
    
    /* Install constant */
    for (i = 0; swig_constants[i].type; i++) {
        SV *sv;
        sv = perl_get_sv((char*)swig_constants[i].name, TRUE | 0x2);
        switch(swig_constants[i].type) {
            case SWIG_INT:
            sv_setiv(sv, (IV) swig_constants[i].lvalue);
            break;
            case SWIG_FLOAT:
            sv_setnv(sv, (double) swig_constants[i].dvalue);
            break;
            case SWIG_STRING:
            sv_setpv(sv, (char *) swig_constants[i].pvalue);
            break;
            case SWIG_POINTER:
            SWIG_MakePtr(sv, swig_constants[i].pvalue, *(swig_constants[i].ptype),0);
            break;
            case SWIG_BINARY:
            SWIG_MakePackedObj(sv, swig_constants[i].pvalue, swig_constants[i].lvalue, *(swig_constants[i].ptype));
            break;
            default:
            break;
        }
        SvREADONLY_on(sv);
    }
    
    SWIG_TypeClientData(SWIGTYPE_p_psC32, (void*) "pslib::psC32");
    SWIG_TypeClientData(SWIGTYPE_p_psC64, (void*) "pslib::psC64");
    SWIG_TypeClientData(SWIGTYPE_p_psType, (void*) "pslib::psType");
    SWIG_TypeClientData(SWIGTYPE_p_psMath, (void*) "pslib::psMath");
    SWIG_TypeClientData(SWIGTYPE_p_psErrorDescription, (void*) "pslib::psErrorDescription");
    SWIG_TypeClientData(SWIGTYPE_p_psErr, (void*) "pslib::psErr");
    SWIG_TypeClientData(SWIGTYPE_p_psMemBlock, (void*) "pslib::psMemBlock");
    SWIG_TypeClientData(SWIGTYPE_p_p_psComponent, (void*) "pslib::p_psComponent");
    SWIG_TypeClientData(SWIGTYPE_p_psKernel, (void*) "pslib::psKernel");
    SWIG_TypeClientData(SWIGTYPE_p_psImage, (void*) "pslib::psImage");
    SWIG_TypeClientData(SWIGTYPE_p_psImage_data, (void*) "pslib::psImage_data");
    SWIG_TypeClientData(SWIGTYPE_p_psRegion, (void*) "pslib::psRegion");
    SWIG_TypeClientData(SWIGTYPE_p_psFits, (void*) "pslib::psFits");
    SWIG_TypeClientData(SWIGTYPE_p_psLookupTable, (void*) "pslib::psLookupTable");
    SWIG_TypeClientData(SWIGTYPE_p_psPolynomial1D, (void*) "pslib::psPolynomial1D");
    SWIG_TypeClientData(SWIGTYPE_p_psPolynomial2D, (void*) "pslib::psPolynomial2D");
    SWIG_TypeClientData(SWIGTYPE_p_psPolynomial3D, (void*) "pslib::psPolynomial3D");
    SWIG_TypeClientData(SWIGTYPE_p_psPolynomial4D, (void*) "pslib::psPolynomial4D");
    SWIG_TypeClientData(SWIGTYPE_p_psDPolynomial1D, (void*) "pslib::psDPolynomial1D");
    SWIG_TypeClientData(SWIGTYPE_p_psDPolynomial2D, (void*) "pslib::psDPolynomial2D");
    SWIG_TypeClientData(SWIGTYPE_p_psDPolynomial3D, (void*) "pslib::psDPolynomial3D");
    SWIG_TypeClientData(SWIGTYPE_p_psDPolynomial4D, (void*) "pslib::psDPolynomial4D");
    SWIG_TypeClientData(SWIGTYPE_p_psSpline1D, (void*) "pslib::psSpline1D");
    SWIG_TypeClientData(SWIGTYPE_p_psMinimization, (void*) "pslib::psMinimization");
    SWIG_TypeClientData(SWIGTYPE_p_psRandom, (void*) "pslib::psRandom");
    SWIG_TypeClientData(SWIGTYPE_p_psStats, (void*) "pslib::psStats");
    SWIG_TypeClientData(SWIGTYPE_p_psHistogram, (void*) "pslib::psHistogram");
    SWIG_TypeClientData(SWIGTYPE_p_psArray, (void*) "pslib::psArray");
    SWIG_TypeClientData(SWIGTYPE_p_psBitSet, (void*) "pslib::psBitSet");
    SWIG_TypeClientData(SWIGTYPE_p_psHashBucket, (void*) "pslib::psHashBucket");
    SWIG_TypeClientData(SWIGTYPE_p_psHash, (void*) "pslib::psHash");
    SWIG_TypeClientData(SWIGTYPE_p_psListElem, (void*) "pslib::psListElem");
    SWIG_TypeClientData(SWIGTYPE_p_psList, (void*) "pslib::psList");
    SWIG_TypeClientData(SWIGTYPE_p_psListIterator, (void*) "pslib::psListIterator");
    SWIG_TypeClientData(SWIGTYPE_p_psScalar, (void*) "pslib::psScalar");
    SWIG_TypeClientData(SWIGTYPE_p_psScalar_data, (void*) "pslib::psScalar_data");
    SWIG_TypeClientData(SWIGTYPE_p_psVector, (void*) "pslib::psVector");
    SWIG_TypeClientData(SWIGTYPE_p_psVector_data, (void*) "pslib::psVector_data");
    SWIG_TypeClientData(SWIGTYPE_p_psGrommit, (void*) "pslib::psGrommit");
    SWIG_TypeClientData(SWIGTYPE_p_psFixedPattern, (void*) "pslib::psFixedPattern");
    SWIG_TypeClientData(SWIGTYPE_p_psReadout, (void*) "pslib::psReadout");
    SWIG_TypeClientData(SWIGTYPE_p_psCell, (void*) "pslib::psCell");
    SWIG_TypeClientData(SWIGTYPE_p_psChip, (void*) "pslib::psChip");
    SWIG_TypeClientData(SWIGTYPE_p_psFPA, (void*) "pslib::psFPA");
    SWIG_TypeClientData(SWIGTYPE_p_psObservatory, (void*) "pslib::psObservatory");
    SWIG_TypeClientData(SWIGTYPE_p_psExposure, (void*) "pslib::psExposure");
    SWIG_TypeClientData(SWIGTYPE_p_psPlane, (void*) "pslib::psPlane");
    SWIG_TypeClientData(SWIGTYPE_p_psSphere, (void*) "pslib::psSphere");
    SWIG_TypeClientData(SWIGTYPE_p_psPlaneTransform, (void*) "pslib::psPlaneTransform");
    SWIG_TypeClientData(SWIGTYPE_p_psPlaneDistort, (void*) "pslib::psPlaneDistort");
    SWIG_TypeClientData(SWIGTYPE_p_psSphereTransform, (void*) "pslib::psSphereTransform");
    SWIG_TypeClientData(SWIGTYPE_p_psProjection, (void*) "pslib::psProjection");
    SWIG_TypeClientData(SWIGTYPE_p_psMetadata, (void*) "pslib::psMetadata");
    SWIG_TypeClientData(SWIGTYPE_p_psMetadataIterator, (void*) "pslib::psMetadataIterator");
    SWIG_TypeClientData(SWIGTYPE_p_psMetadataItem, (void*) "pslib::psMetadataItem");
    SWIG_TypeClientData(SWIGTYPE_p_psMetadataItem_data, (void*) "pslib::psMetadataItem_data");
    SWIG_TypeClientData(SWIGTYPE_p_psPhotSystem, (void*) "pslib::psPhotSystem");
    SWIG_TypeClientData(SWIGTYPE_p_psPhotTransform, (void*) "pslib::psPhotTransform");
    SWIG_TypeClientData(SWIGTYPE_p_psTime, (void*) "pslib::psTime");
    ST(0) = &PL_sv_yes;
    XSRETURN(1);
}

