1 /* ----------------------------------------------------------------------------
2  * This file was automatically generated by SWIG (http://www.swig.org).
3  * Version 4.0.1
4  *
5  * This file is not intended to be easily readable and contains a number of
6  * coding conventions designed to improve portability and efficiency. Do not make
7  * changes to this file unless you know what you are doing--modify the SWIG
8  * interface file instead.
9  * ----------------------------------------------------------------------------- */
10 
11 
12 #ifndef SWIGPERL
13 #define SWIGPERL
14 #endif
15 
16 #define SWIG_CASTRANK_MODE
17 
18 /* -----------------------------------------------------------------------------
19  *  This section contains generic SWIG labels for method/variable
20  *  declarations/attributes, and other compiler dependent labels.
21  * ----------------------------------------------------------------------------- */
22 
23 /* template workaround for compilers that cannot correctly implement the C++ standard */
24 #ifndef SWIGTEMPLATEDISAMBIGUATOR
25 # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
26 #  define SWIGTEMPLATEDISAMBIGUATOR template
27 # elif defined(__HP_aCC)
28 /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
29 /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
30 #  define SWIGTEMPLATEDISAMBIGUATOR template
31 # else
32 #  define SWIGTEMPLATEDISAMBIGUATOR
33 # endif
34 #endif
35 
36 /* inline attribute */
37 #ifndef SWIGINLINE
38 # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
39 #   define SWIGINLINE inline
40 # else
41 #   define SWIGINLINE
42 # endif
43 #endif
44 
45 /* attribute recognised by some compilers to avoid 'unused' warnings */
46 #ifndef SWIGUNUSED
47 # if defined(__GNUC__)
48 #   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
49 #     define SWIGUNUSED __attribute__ ((__unused__))
50 #   else
51 #     define SWIGUNUSED
52 #   endif
53 # elif defined(__ICC)
54 #   define SWIGUNUSED __attribute__ ((__unused__))
55 # else
56 #   define SWIGUNUSED
57 # endif
58 #endif
59 
60 #ifndef SWIG_MSC_UNSUPPRESS_4505
61 # if defined(_MSC_VER)
62 #   pragma warning(disable : 4505) /* unreferenced local function has been removed */
63 # endif
64 #endif
65 
66 #ifndef SWIGUNUSEDPARM
67 # ifdef __cplusplus
68 #   define SWIGUNUSEDPARM(p)
69 # else
70 #   define SWIGUNUSEDPARM(p) p SWIGUNUSED
71 # endif
72 #endif
73 
74 /* internal SWIG method */
75 #ifndef SWIGINTERN
76 # define SWIGINTERN static SWIGUNUSED
77 #endif
78 
79 /* internal inline SWIG method */
80 #ifndef SWIGINTERNINLINE
81 # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
82 #endif
83 
84 /* exporting methods */
85 #if defined(__GNUC__)
86 #  if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
87 #    ifndef GCC_HASCLASSVISIBILITY
88 #      define GCC_HASCLASSVISIBILITY
89 #    endif
90 #  endif
91 #endif
92 
93 #ifndef SWIGEXPORT
94 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
95 #   if defined(STATIC_LINKED)
96 #     define SWIGEXPORT
97 #   else
98 #     define SWIGEXPORT __declspec(dllexport)
99 #   endif
100 # else
101 #   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
102 #     define SWIGEXPORT __attribute__ ((visibility("default")))
103 #   else
104 #     define SWIGEXPORT
105 #   endif
106 # endif
107 #endif
108 
109 /* calling conventions for Windows */
110 #ifndef SWIGSTDCALL
111 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
112 #   define SWIGSTDCALL __stdcall
113 # else
114 #   define SWIGSTDCALL
115 # endif
116 #endif
117 
118 /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
119 #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
120 # define _CRT_SECURE_NO_DEPRECATE
121 #endif
122 
123 /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
124 #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
125 # define _SCL_SECURE_NO_DEPRECATE
126 #endif
127 
128 /* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
129 #if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
130 # define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
131 #endif
132 
133 /* Intel's compiler complains if a variable which was never initialised is
134  * cast to void, which is a common idiom which we use to indicate that we
135  * are aware a variable isn't used.  So we just silence that warning.
136  * See: https://github.com/swig/swig/issues/192 for more discussion.
137  */
138 #ifdef __INTEL_COMPILER
139 # pragma warning disable 592
140 #endif
141 
142 /* -----------------------------------------------------------------------------
143  * swigrun.swg
144  *
145  * This file contains generic C API SWIG runtime support for pointer
146  * type checking.
147  * ----------------------------------------------------------------------------- */
148 
149 /* This should only be incremented when either the layout of swig_type_info changes,
150    or for whatever reason, the runtime changes incompatibly */
151 #define SWIG_RUNTIME_VERSION "4"
152 
153 /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
154 #ifdef SWIG_TYPE_TABLE
155 # define SWIG_QUOTE_STRING(x) #x
156 # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
157 # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
158 #else
159 # define SWIG_TYPE_TABLE_NAME
160 #endif
161 
162 /*
163   You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
164   creating a static or dynamic library from the SWIG runtime code.
165   In 99.9% of the cases, SWIG just needs to declare them as 'static'.
166 
167   But only do this if strictly necessary, ie, if you have problems
168   with your compiler or suchlike.
169 */
170 
171 #ifndef SWIGRUNTIME
172 # define SWIGRUNTIME SWIGINTERN
173 #endif
174 
175 #ifndef SWIGRUNTIMEINLINE
176 # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
177 #endif
178 
179 /*  Generic buffer size */
180 #ifndef SWIG_BUFFER_SIZE
181 # define SWIG_BUFFER_SIZE 1024
182 #endif
183 
184 /* Flags for pointer conversions */
185 #define SWIG_POINTER_DISOWN        0x1
186 #define SWIG_CAST_NEW_MEMORY       0x2
187 #define SWIG_POINTER_NO_NULL       0x4
188 
189 /* Flags for new pointer objects */
190 #define SWIG_POINTER_OWN           0x1
191 
192 
193 /*
194    Flags/methods for returning states.
195 
196    The SWIG conversion methods, as ConvertPtr, return an integer
197    that tells if the conversion was successful or not. And if not,
198    an error code can be returned (see swigerrors.swg for the codes).
199 
200    Use the following macros/flags to set or process the returning
201    states.
202 
203    In old versions of SWIG, code such as the following was usually written:
204 
205      if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
206        // success code
207      } else {
208        //fail code
209      }
210 
211    Now you can be more explicit:
212 
213     int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
214     if (SWIG_IsOK(res)) {
215       // success code
216     } else {
217       // fail code
218     }
219 
220    which is the same really, but now you can also do
221 
222     Type *ptr;
223     int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
224     if (SWIG_IsOK(res)) {
225       // success code
226       if (SWIG_IsNewObj(res) {
227         ...
228 	delete *ptr;
229       } else {
230         ...
231       }
232     } else {
233       // fail code
234     }
235 
236    I.e., now SWIG_ConvertPtr can return new objects and you can
237    identify the case and take care of the deallocation. Of course that
238    also requires SWIG_ConvertPtr to return new result values, such as
239 
240       int SWIG_ConvertPtr(obj, ptr,...) {
241         if (<obj is ok>) {
242           if (<need new object>) {
243             *ptr = <ptr to new allocated object>;
244             return SWIG_NEWOBJ;
245           } else {
246             *ptr = <ptr to old object>;
247             return SWIG_OLDOBJ;
248           }
249         } else {
250           return SWIG_BADOBJ;
251         }
252       }
253 
254    Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
255    more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
256    SWIG errors code.
257 
258    Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
259    allows to return the 'cast rank', for example, if you have this
260 
261        int food(double)
262        int fooi(int);
263 
264    and you call
265 
266       food(1)   // cast rank '1'  (1 -> 1.0)
267       fooi(1)   // cast rank '0'
268 
269    just use the SWIG_AddCast()/SWIG_CheckState()
270 */
271 
272 #define SWIG_OK                    (0)
273 #define SWIG_ERROR                 (-1)
274 #define SWIG_IsOK(r)               (r >= 0)
275 #define SWIG_ArgError(r)           ((r != SWIG_ERROR) ? r : SWIG_TypeError)
276 
277 /* The CastRankLimit says how many bits are used for the cast rank */
278 #define SWIG_CASTRANKLIMIT         (1 << 8)
279 /* The NewMask denotes the object was created (using new/malloc) */
280 #define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
281 /* The TmpMask is for in/out typemaps that use temporal objects */
282 #define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
283 /* Simple returning values */
284 #define SWIG_BADOBJ                (SWIG_ERROR)
285 #define SWIG_OLDOBJ                (SWIG_OK)
286 #define SWIG_NEWOBJ                (SWIG_OK | SWIG_NEWOBJMASK)
287 #define SWIG_TMPOBJ                (SWIG_OK | SWIG_TMPOBJMASK)
288 /* Check, add and del mask methods */
289 #define SWIG_AddNewMask(r)         (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
290 #define SWIG_DelNewMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
291 #define SWIG_IsNewObj(r)           (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
292 #define SWIG_AddTmpMask(r)         (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
293 #define SWIG_DelTmpMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
294 #define SWIG_IsTmpObj(r)           (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
295 
296 /* Cast-Rank Mode */
297 #if defined(SWIG_CASTRANK_MODE)
298 #  ifndef SWIG_TypeRank
299 #    define SWIG_TypeRank             unsigned long
300 #  endif
301 #  ifndef SWIG_MAXCASTRANK            /* Default cast allowed */
302 #    define SWIG_MAXCASTRANK          (2)
303 #  endif
304 #  define SWIG_CASTRANKMASK          ((SWIG_CASTRANKLIMIT) -1)
305 #  define SWIG_CastRank(r)           (r & SWIG_CASTRANKMASK)
SWIG_AddCast(int r)306 SWIGINTERNINLINE int SWIG_AddCast(int r) {
307   return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
308 }
SWIG_CheckState(int r)309 SWIGINTERNINLINE int SWIG_CheckState(int r) {
310   return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
311 }
312 #else /* no cast-rank mode */
313 #  define SWIG_AddCast(r) (r)
314 #  define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
315 #endif
316 
317 
318 #include <string.h>
319 
320 #ifdef __cplusplus
321 extern "C" {
322 #endif
323 
324 typedef void *(*swig_converter_func)(void *, int *);
325 typedef struct swig_type_info *(*swig_dycast_func)(void **);
326 
327 /* Structure to store information on one type */
328 typedef struct swig_type_info {
329   const char             *name;			/* mangled name of this type */
330   const char             *str;			/* human readable name of this type */
331   swig_dycast_func        dcast;		/* dynamic cast function down a hierarchy */
332   struct swig_cast_info  *cast;			/* linked list of types that can cast into this type */
333   void                   *clientdata;		/* language specific type data */
334   int                    owndata;		/* flag if the structure owns the clientdata */
335 } swig_type_info;
336 
337 /* Structure to store a type and conversion function used for casting */
338 typedef struct swig_cast_info {
339   swig_type_info         *type;			/* pointer to type that is equivalent to this type */
340   swig_converter_func     converter;		/* function to cast the void pointers */
341   struct swig_cast_info  *next;			/* pointer to next cast in linked list */
342   struct swig_cast_info  *prev;			/* pointer to the previous cast */
343 } swig_cast_info;
344 
345 /* Structure used to store module information
346  * Each module generates one structure like this, and the runtime collects
347  * all of these structures and stores them in a circularly linked list.*/
348 typedef struct swig_module_info {
349   swig_type_info         **types;		/* Array of pointers to swig_type_info structures that are in this module */
350   size_t                 size;		        /* Number of types in this module */
351   struct swig_module_info *next;		/* Pointer to next element in circularly linked list */
352   swig_type_info         **type_initial;	/* Array of initially generated type structures */
353   swig_cast_info         **cast_initial;	/* Array of initially generated casting structures */
354   void                    *clientdata;		/* Language specific module data */
355 } swig_module_info;
356 
357 /*
358   Compare two type names skipping the space characters, therefore
359   "char*" == "char *" and "Class<int>" == "Class<int >", etc.
360 
361   Return 0 when the two name types are equivalent, as in
362   strncmp, but skipping ' '.
363 */
364 SWIGRUNTIME int
SWIG_TypeNameComp(const char * f1,const char * l1,const char * f2,const char * l2)365 SWIG_TypeNameComp(const char *f1, const char *l1,
366 		  const char *f2, const char *l2) {
367   for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
368     while ((*f1 == ' ') && (f1 != l1)) ++f1;
369     while ((*f2 == ' ') && (f2 != l2)) ++f2;
370     if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
371   }
372   return (int)((l1 - f1) - (l2 - f2));
373 }
374 
375 /*
376   Check type equivalence in a name list like <name1>|<name2>|...
377   Return 0 if equal, -1 if nb < tb, 1 if nb > tb
378 */
379 SWIGRUNTIME int
SWIG_TypeCmp(const char * nb,const char * tb)380 SWIG_TypeCmp(const char *nb, const char *tb) {
381   int equiv = 1;
382   const char* te = tb + strlen(tb);
383   const char* ne = nb;
384   while (equiv != 0 && *ne) {
385     for (nb = ne; *ne; ++ne) {
386       if (*ne == '|') break;
387     }
388     equiv = SWIG_TypeNameComp(nb, ne, tb, te);
389     if (*ne) ++ne;
390   }
391   return equiv;
392 }
393 
394 /*
395   Check type equivalence in a name list like <name1>|<name2>|...
396   Return 0 if not equal, 1 if equal
397 */
398 SWIGRUNTIME int
SWIG_TypeEquiv(const char * nb,const char * tb)399 SWIG_TypeEquiv(const char *nb, const char *tb) {
400   return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0;
401 }
402 
403 /*
404   Check the typename
405 */
406 SWIGRUNTIME swig_cast_info *
SWIG_TypeCheck(const char * c,swig_type_info * ty)407 SWIG_TypeCheck(const char *c, swig_type_info *ty) {
408   if (ty) {
409     swig_cast_info *iter = ty->cast;
410     while (iter) {
411       if (strcmp(iter->type->name, c) == 0) {
412         if (iter == ty->cast)
413           return iter;
414         /* Move iter to the top of the linked list */
415         iter->prev->next = iter->next;
416         if (iter->next)
417           iter->next->prev = iter->prev;
418         iter->next = ty->cast;
419         iter->prev = 0;
420         if (ty->cast) ty->cast->prev = iter;
421         ty->cast = iter;
422         return iter;
423       }
424       iter = iter->next;
425     }
426   }
427   return 0;
428 }
429 
430 /*
431   Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
432 */
433 SWIGRUNTIME swig_cast_info *
SWIG_TypeCheckStruct(swig_type_info * from,swig_type_info * ty)434 SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
435   if (ty) {
436     swig_cast_info *iter = ty->cast;
437     while (iter) {
438       if (iter->type == from) {
439         if (iter == ty->cast)
440           return iter;
441         /* Move iter to the top of the linked list */
442         iter->prev->next = iter->next;
443         if (iter->next)
444           iter->next->prev = iter->prev;
445         iter->next = ty->cast;
446         iter->prev = 0;
447         if (ty->cast) ty->cast->prev = iter;
448         ty->cast = iter;
449         return iter;
450       }
451       iter = iter->next;
452     }
453   }
454   return 0;
455 }
456 
457 /*
458   Cast a pointer up an inheritance hierarchy
459 */
460 SWIGRUNTIMEINLINE void *
SWIG_TypeCast(swig_cast_info * ty,void * ptr,int * newmemory)461 SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
462   return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
463 }
464 
465 /*
466    Dynamic pointer casting. Down an inheritance hierarchy
467 */
468 SWIGRUNTIME swig_type_info *
SWIG_TypeDynamicCast(swig_type_info * ty,void ** ptr)469 SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
470   swig_type_info *lastty = ty;
471   if (!ty || !ty->dcast) return ty;
472   while (ty && (ty->dcast)) {
473     ty = (*ty->dcast)(ptr);
474     if (ty) lastty = ty;
475   }
476   return lastty;
477 }
478 
479 /*
480   Return the name associated with this type
481 */
482 SWIGRUNTIMEINLINE const char *
SWIG_TypeName(const swig_type_info * ty)483 SWIG_TypeName(const swig_type_info *ty) {
484   return ty->name;
485 }
486 
487 /*
488   Return the pretty name associated with this type,
489   that is an unmangled type name in a form presentable to the user.
490 */
491 SWIGRUNTIME const char *
SWIG_TypePrettyName(const swig_type_info * type)492 SWIG_TypePrettyName(const swig_type_info *type) {
493   /* The "str" field contains the equivalent pretty names of the
494      type, separated by vertical-bar characters.  We choose
495      to print the last name, as it is often (?) the most
496      specific. */
497   if (!type) return NULL;
498   if (type->str != NULL) {
499     const char *last_name = type->str;
500     const char *s;
501     for (s = type->str; *s; s++)
502       if (*s == '|') last_name = s+1;
503     return last_name;
504   }
505   else
506     return type->name;
507 }
508 
509 /*
510    Set the clientdata field for a type
511 */
512 SWIGRUNTIME void
SWIG_TypeClientData(swig_type_info * ti,void * clientdata)513 SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
514   swig_cast_info *cast = ti->cast;
515   /* if (ti->clientdata == clientdata) return; */
516   ti->clientdata = clientdata;
517 
518   while (cast) {
519     if (!cast->converter) {
520       swig_type_info *tc = cast->type;
521       if (!tc->clientdata) {
522 	SWIG_TypeClientData(tc, clientdata);
523       }
524     }
525     cast = cast->next;
526   }
527 }
528 SWIGRUNTIME void
SWIG_TypeNewClientData(swig_type_info * ti,void * clientdata)529 SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
530   SWIG_TypeClientData(ti, clientdata);
531   ti->owndata = 1;
532 }
533 
534 /*
535   Search for a swig_type_info structure only by mangled name
536   Search is a O(log #types)
537 
538   We start searching at module start, and finish searching when start == end.
539   Note: if start == end at the beginning of the function, we go all the way around
540   the circular list.
541 */
542 SWIGRUNTIME swig_type_info *
SWIG_MangledTypeQueryModule(swig_module_info * start,swig_module_info * end,const char * name)543 SWIG_MangledTypeQueryModule(swig_module_info *start,
544                             swig_module_info *end,
545 		            const char *name) {
546   swig_module_info *iter = start;
547   do {
548     if (iter->size) {
549       size_t l = 0;
550       size_t r = iter->size - 1;
551       do {
552 	/* since l+r >= 0, we can (>> 1) instead (/ 2) */
553 	size_t i = (l + r) >> 1;
554 	const char *iname = iter->types[i]->name;
555 	if (iname) {
556 	  int compare = strcmp(name, iname);
557 	  if (compare == 0) {
558 	    return iter->types[i];
559 	  } else if (compare < 0) {
560 	    if (i) {
561 	      r = i - 1;
562 	    } else {
563 	      break;
564 	    }
565 	  } else if (compare > 0) {
566 	    l = i + 1;
567 	  }
568 	} else {
569 	  break; /* should never happen */
570 	}
571       } while (l <= r);
572     }
573     iter = iter->next;
574   } while (iter != end);
575   return 0;
576 }
577 
578 /*
579   Search for a swig_type_info structure for either a mangled name or a human readable name.
580   It first searches the mangled names of the types, which is a O(log #types)
581   If a type is not found it then searches the human readable names, which is O(#types).
582 
583   We start searching at module start, and finish searching when start == end.
584   Note: if start == end at the beginning of the function, we go all the way around
585   the circular list.
586 */
587 SWIGRUNTIME swig_type_info *
SWIG_TypeQueryModule(swig_module_info * start,swig_module_info * end,const char * name)588 SWIG_TypeQueryModule(swig_module_info *start,
589                      swig_module_info *end,
590 		     const char *name) {
591   /* STEP 1: Search the name field using binary search */
592   swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
593   if (ret) {
594     return ret;
595   } else {
596     /* STEP 2: If the type hasn't been found, do a complete search
597        of the str field (the human readable name) */
598     swig_module_info *iter = start;
599     do {
600       size_t i = 0;
601       for (; i < iter->size; ++i) {
602 	if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
603 	  return iter->types[i];
604       }
605       iter = iter->next;
606     } while (iter != end);
607   }
608 
609   /* neither found a match */
610   return 0;
611 }
612 
613 /*
614    Pack binary data into a string
615 */
616 SWIGRUNTIME char *
SWIG_PackData(char * c,void * ptr,size_t sz)617 SWIG_PackData(char *c, void *ptr, size_t sz) {
618   static const char hex[17] = "0123456789abcdef";
619   const unsigned char *u = (unsigned char *) ptr;
620   const unsigned char *eu =  u + sz;
621   for (; u != eu; ++u) {
622     unsigned char uu = *u;
623     *(c++) = hex[(uu & 0xf0) >> 4];
624     *(c++) = hex[uu & 0xf];
625   }
626   return c;
627 }
628 
629 /*
630    Unpack binary data from a string
631 */
632 SWIGRUNTIME const char *
SWIG_UnpackData(const char * c,void * ptr,size_t sz)633 SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
634   unsigned char *u = (unsigned char *) ptr;
635   const unsigned char *eu = u + sz;
636   for (; u != eu; ++u) {
637     char d = *(c++);
638     unsigned char uu;
639     if ((d >= '0') && (d <= '9'))
640       uu = (unsigned char)((d - '0') << 4);
641     else if ((d >= 'a') && (d <= 'f'))
642       uu = (unsigned char)((d - ('a'-10)) << 4);
643     else
644       return (char *) 0;
645     d = *(c++);
646     if ((d >= '0') && (d <= '9'))
647       uu |= (unsigned char)(d - '0');
648     else if ((d >= 'a') && (d <= 'f'))
649       uu |= (unsigned char)(d - ('a'-10));
650     else
651       return (char *) 0;
652     *u = uu;
653   }
654   return c;
655 }
656 
657 /*
658    Pack 'void *' into a string buffer.
659 */
660 SWIGRUNTIME char *
SWIG_PackVoidPtr(char * buff,void * ptr,const char * name,size_t bsz)661 SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
662   char *r = buff;
663   if ((2*sizeof(void *) + 2) > bsz) return 0;
664   *(r++) = '_';
665   r = SWIG_PackData(r,&ptr,sizeof(void *));
666   if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
667   strcpy(r,name);
668   return buff;
669 }
670 
671 SWIGRUNTIME const char *
SWIG_UnpackVoidPtr(const char * c,void ** ptr,const char * name)672 SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
673   if (*c != '_') {
674     if (strcmp(c,"NULL") == 0) {
675       *ptr = (void *) 0;
676       return name;
677     } else {
678       return 0;
679     }
680   }
681   return SWIG_UnpackData(++c,ptr,sizeof(void *));
682 }
683 
684 SWIGRUNTIME char *
SWIG_PackDataName(char * buff,void * ptr,size_t sz,const char * name,size_t bsz)685 SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
686   char *r = buff;
687   size_t lname = (name ? strlen(name) : 0);
688   if ((2*sz + 2 + lname) > bsz) return 0;
689   *(r++) = '_';
690   r = SWIG_PackData(r,ptr,sz);
691   if (lname) {
692     strncpy(r,name,lname+1);
693   } else {
694     *r = 0;
695   }
696   return buff;
697 }
698 
699 SWIGRUNTIME const char *
SWIG_UnpackDataName(const char * c,void * ptr,size_t sz,const char * name)700 SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
701   if (*c != '_') {
702     if (strcmp(c,"NULL") == 0) {
703       memset(ptr,0,sz);
704       return name;
705     } else {
706       return 0;
707     }
708   }
709   return SWIG_UnpackData(++c,ptr,sz);
710 }
711 
712 #ifdef __cplusplus
713 }
714 #endif
715 
716 /*  Errors in SWIG */
717 #define  SWIG_UnknownError    	   -1
718 #define  SWIG_IOError        	   -2
719 #define  SWIG_RuntimeError   	   -3
720 #define  SWIG_IndexError     	   -4
721 #define  SWIG_TypeError      	   -5
722 #define  SWIG_DivisionByZero 	   -6
723 #define  SWIG_OverflowError  	   -7
724 #define  SWIG_SyntaxError    	   -8
725 #define  SWIG_ValueError     	   -9
726 #define  SWIG_SystemError    	   -10
727 #define  SWIG_AttributeError 	   -11
728 #define  SWIG_MemoryError    	   -12
729 #define  SWIG_NullReferenceError   -13
730 
731 
732 
733 #ifdef __cplusplus
734 /* Needed on some windows machines---since MS plays funny games with the header files under C++ */
735 #include <math.h>
736 #include <stdlib.h>
737 extern "C" {
738 #endif
739 #include "EXTERN.h"
740 #include "perl.h"
741 #include "XSUB.h"
742 
743 /* Add in functionality missing in older versions of Perl. Much of this is based on Devel-PPPort on cpan. */
744 
745 /* Add PERL_REVISION, PERL_VERSION, PERL_SUBVERSION if missing */
746 #ifndef PERL_REVISION
747 #  if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION))
748 #    define PERL_PATCHLEVEL_H_IMPLICIT
749 #    include <patchlevel.h>
750 #  endif
751 #  if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL)))
752 #    include <could_not_find_Perl_patchlevel.h>
753 #  endif
754 #  ifndef PERL_REVISION
755 #    define PERL_REVISION       (5)
756 #    define PERL_VERSION        PATCHLEVEL
757 #    define PERL_SUBVERSION     SUBVERSION
758 #  endif
759 #endif
760 
761 #if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE)
762 #define PerlIO_exportFILE(fh,fl) (FILE*)(fh)
763 #endif
764 
765 #ifndef SvIOK_UV
766 # define SvIOK_UV(sv)       (SvIOK(sv) && (SvUVX(sv) == SvIVX(sv)))
767 #endif
768 
769 #ifndef SvUOK
770 # define SvUOK(sv)           SvIOK_UV(sv)
771 #endif
772 
773 #if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5)))
774 #  define PL_sv_undef               sv_undef
775 #  define PL_na	                    na
776 #  define PL_errgv                  errgv
777 #  define PL_sv_no                  sv_no
778 #  define PL_sv_yes                 sv_yes
779 #  define PL_markstack_ptr          markstack_ptr
780 #endif
781 
782 #ifndef IVSIZE
783 #  ifdef LONGSIZE
784 #    define IVSIZE LONGSIZE
785 #  else
786 #    define IVSIZE 4 /* A bold guess, but the best we can make. */
787 #  endif
788 #endif
789 
790 #ifndef INT2PTR
791 #  if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
792 #    define PTRV                  UV
793 #    define INT2PTR(any,d)        (any)(d)
794 #  else
795 #    if PTRSIZE == LONGSIZE
796 #      define PTRV                unsigned long
797 #    else
798 #      define PTRV                unsigned
799 #    endif
800 #    define INT2PTR(any,d)        (any)(PTRV)(d)
801 #  endif
802 
803 #  define NUM2PTR(any,d)  (any)(PTRV)(d)
804 #  define PTR2IV(p)       INT2PTR(IV,p)
805 #  define PTR2UV(p)       INT2PTR(UV,p)
806 #  define PTR2NV(p)       NUM2PTR(NV,p)
807 
808 #  if PTRSIZE == LONGSIZE
809 #    define PTR2ul(p)     (unsigned long)(p)
810 #  else
811 #    define PTR2ul(p)     INT2PTR(unsigned long,p)
812 #  endif
813 #endif /* !INT2PTR */
814 
815 #ifndef SvPV_nolen
816 # define SvPV_nolen(x) SvPV(x,PL_na)
817 #endif
818 
819 #ifndef get_sv
820 #  define get_sv perl_get_sv
821 #endif
822 
823 #ifndef ERRSV
824 #  define ERRSV get_sv("@",FALSE)
825 #endif
826 
827 #ifndef pTHX_
828 #define pTHX_
829 #endif
830 
831 #include <string.h>
832 #ifdef __cplusplus
833 }
834 #endif
835 
836 /* -----------------------------------------------------------------------------
837  * error manipulation
838  * ----------------------------------------------------------------------------- */
839 
840 SWIGINTERN const char*
SWIG_Perl_ErrorType(int code)841 SWIG_Perl_ErrorType(int code) {
842   switch(code) {
843   case SWIG_MemoryError:
844     return "MemoryError";
845   case SWIG_IOError:
846     return "IOError";
847   case SWIG_RuntimeError:
848     return "RuntimeError";
849   case SWIG_IndexError:
850     return "IndexError";
851   case SWIG_TypeError:
852     return "TypeError";
853   case SWIG_DivisionByZero:
854     return "ZeroDivisionError";
855   case SWIG_OverflowError:
856     return "OverflowError";
857   case SWIG_SyntaxError:
858     return "SyntaxError";
859   case SWIG_ValueError:
860     return "ValueError";
861   case SWIG_SystemError:
862     return "SystemError";
863   case SWIG_AttributeError:
864     return "AttributeError";
865   default:
866     return "RuntimeError";
867   }
868 }
869 
870 
871 /* -----------------------------------------------------------------------------
872  * perlrun.swg
873  *
874  * This file contains the runtime support for Perl modules
875  * and includes code for managing global variables and pointer
876  * type checking.
877  * ----------------------------------------------------------------------------- */
878 
879 #ifdef PERL_OBJECT
880 #define SWIG_PERL_OBJECT_DECL CPerlObj *SWIGUNUSEDPARM(pPerl),
881 #define SWIG_PERL_OBJECT_CALL pPerl,
882 #else
883 #define SWIG_PERL_OBJECT_DECL
884 #define SWIG_PERL_OBJECT_CALL
885 #endif
886 
887 /* Common SWIG API */
888 
889 /* for raw pointers */
890 #define SWIG_ConvertPtr(obj, pp, type, flags)           SWIG_Perl_ConvertPtr(SWIG_PERL_OBJECT_CALL obj, pp, type, flags)
891 #define SWIG_ConvertPtrAndOwn(obj, pp, type, flags,own) SWIG_Perl_ConvertPtrAndOwn(SWIG_PERL_OBJECT_CALL obj, pp, type, flags, own)
892 #define SWIG_NewPointerObj(p, type, flags)              SWIG_Perl_NewPointerObj(SWIG_PERL_OBJECT_CALL p, type, flags)
893 #define SWIG_AcquirePtr(ptr, src)                       SWIG_Perl_AcquirePtr(ptr, src)
894 #define swig_owntype                                    int
895 
896 /* for raw packed data */
897 #define SWIG_ConvertPacked(obj, p, s, type)             SWIG_Perl_ConvertPacked(SWIG_PERL_OBJECT_CALL obj, p, s, type)
898 #define SWIG_NewPackedObj(p, s, type)	                SWIG_Perl_NewPackedObj(SWIG_PERL_OBJECT_CALL p, s, type)
899 
900 /* for class or struct pointers */
901 #define SWIG_ConvertInstance(obj, pptr, type, flags)    SWIG_ConvertPtr(obj, pptr, type, flags)
902 #define SWIG_NewInstanceObj(ptr, type, flags)           SWIG_NewPointerObj(ptr, type, flags)
903 
904 /* for C or C++ function pointers */
905 #define SWIG_ConvertFunctionPtr(obj, pptr, type)        SWIG_ConvertPtr(obj, pptr, type, 0)
906 #define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_NewPointerObj(ptr, type, 0)
907 
908 /* for C++ member pointers, ie, member methods */
909 #define SWIG_ConvertMember(obj, ptr, sz, ty)            SWIG_ConvertPacked(obj, ptr, sz, ty)
910 #define SWIG_NewMemberObj(ptr, sz, type)                SWIG_NewPackedObj(ptr, sz, type)
911 
912 
913 /* Runtime API */
914 
915 #define SWIG_GetModule(clientdata)                      SWIG_Perl_GetModule(clientdata)
916 #define SWIG_SetModule(clientdata, pointer)             SWIG_Perl_SetModule(pointer)
917 
918 
919 /* Error manipulation */
920 
921 #define SWIG_ErrorType(code)                            SWIG_Perl_ErrorType(code)
922 #define SWIG_Error(code, msg)            		sv_setpvf(get_sv("@", GV_ADD), "%s %s", SWIG_ErrorType(code), msg)
923 #define SWIG_fail                        		goto fail
924 
925 /* Perl-specific SWIG API */
926 
927 #define SWIG_MakePtr(sv, ptr, type, flags)              SWIG_Perl_MakePtr(SWIG_PERL_OBJECT_CALL sv, ptr, type, flags)
928 #define SWIG_MakePackedObj(sv, p, s, type)	        SWIG_Perl_MakePackedObj(SWIG_PERL_OBJECT_CALL sv, p, s, type)
929 #define SWIG_SetError(str)                              SWIG_Error(SWIG_RuntimeError, str)
930 
931 
932 #define SWIG_PERL_DECL_ARGS_1(arg1)                     (SWIG_PERL_OBJECT_DECL arg1)
933 #define SWIG_PERL_CALL_ARGS_1(arg1)                     (SWIG_PERL_OBJECT_CALL arg1)
934 #define SWIG_PERL_DECL_ARGS_2(arg1, arg2)               (SWIG_PERL_OBJECT_DECL arg1, arg2)
935 #define SWIG_PERL_CALL_ARGS_2(arg1, arg2)               (SWIG_PERL_OBJECT_CALL arg1, arg2)
936 
937 /* -----------------------------------------------------------------------------
938  * pointers/data manipulation
939  * ----------------------------------------------------------------------------- */
940 
941 /* For backward compatibility only */
942 #define SWIG_POINTER_EXCEPTION  0
943 
944 #ifdef __cplusplus
945 extern "C" {
946 #endif
947 
948 #define SWIG_OWNER   SWIG_POINTER_OWN
949 #define SWIG_SHADOW  SWIG_OWNER << 1
950 
951 #define SWIG_MAYBE_PERL_OBJECT SWIG_PERL_OBJECT_DECL
952 
953 /* SWIG Perl macros */
954 
955 /* Macro to declare an XS function */
956 #ifndef XSPROTO
957 #   define XSPROTO(name) void name(pTHX_ CV* cv)
958 #endif
959 
960 /* Macro to call an XS function */
961 #ifdef PERL_OBJECT
962 #  define SWIG_CALLXS(_name) _name(cv,pPerl)
963 #else
964 #  ifndef MULTIPLICITY
965 #    define SWIG_CALLXS(_name) _name(cv)
966 #  else
967 #    define SWIG_CALLXS(_name) _name(PERL_GET_THX, cv)
968 #  endif
969 #endif
970 
971 #ifdef PERL_OBJECT
972 #define MAGIC_PPERL  CPerlObj *pPerl = (CPerlObj *) this;
973 
974 #ifdef __cplusplus
975 extern "C" {
976 #endif
977 typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *);
978 #ifdef __cplusplus
979 }
980 #endif
981 
982 #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
983 #define SWIGCLASS_STATIC
984 
985 #else /* PERL_OBJECT */
986 
987 #define MAGIC_PPERL
988 #define SWIGCLASS_STATIC static SWIGUNUSED
989 
990 #ifndef MULTIPLICITY
991 #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
992 
993 #ifdef __cplusplus
994 extern "C" {
995 #endif
996 typedef int (*SwigMagicFunc)(SV *, MAGIC *);
997 #ifdef __cplusplus
998 }
999 #endif
1000 
1001 #else /* MULTIPLICITY */
1002 
1003 #define SWIG_MAGIC(a,b) (struct interpreter *interp, SV *a, MAGIC *b)
1004 
1005 #ifdef __cplusplus
1006 extern "C" {
1007 #endif
1008 typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *);
1009 #ifdef __cplusplus
1010 }
1011 #endif
1012 
1013 #endif /* MULTIPLICITY */
1014 #endif /* PERL_OBJECT */
1015 
1016 #  ifdef PERL_OBJECT
1017 #    define SWIG_croak_null() SWIG_Perl_croak_null(pPerl)
SWIG_Perl_croak_null(CPerlObj * pPerl)1018 static void SWIGUNUSED SWIG_Perl_croak_null(CPerlObj *pPerl)
1019 #  else
1020 static void SWIGUNUSED SWIG_croak_null()
1021 #  endif
1022 {
1023   SV *err = get_sv("@", GV_ADD);
1024 #  if (PERL_VERSION < 6)
1025   croak("%_", err);
1026 #  else
1027   if (sv_isobject(err))
1028     croak(0);
1029   else
1030     croak("%s", SvPV_nolen(err));
1031 #  endif
1032 }
1033 
1034 
1035 /*
1036    Define how strict is the cast between strings and integers/doubles
1037    when overloading between these types occurs.
1038 
1039    The default is making it as strict as possible by using SWIG_AddCast
1040    when needed.
1041 
1042    You can use -DSWIG_PERL_NO_STRICT_STR2NUM at compilation time to
1043    disable the SWIG_AddCast, making the casting between string and
1044    numbers less strict.
1045 
1046    In the end, we try to solve the overloading between strings and
1047    numerical types in the more natural way, but if you can avoid it,
1048    well, avoid it using %rename, for example.
1049 */
1050 #ifndef SWIG_PERL_NO_STRICT_STR2NUM
1051 # ifndef SWIG_PERL_STRICT_STR2NUM
1052 #  define SWIG_PERL_STRICT_STR2NUM
1053 # endif
1054 #endif
1055 #ifdef SWIG_PERL_STRICT_STR2NUM
1056 /* string takes precedence */
1057 #define SWIG_Str2NumCast(x) SWIG_AddCast(x)
1058 #else
1059 /* number takes precedence */
1060 #define SWIG_Str2NumCast(x) x
1061 #endif
1062 
1063 
1064 
1065 #include <stdlib.h>
1066 
1067 SWIGRUNTIME const char *
SWIG_Perl_TypeProxyName(const swig_type_info * type)1068 SWIG_Perl_TypeProxyName(const swig_type_info *type) {
1069   if (!type) return NULL;
1070   if (type->clientdata != NULL) {
1071     return (const char*) type->clientdata;
1072   }
1073   else {
1074     return type->name;
1075   }
1076 }
1077 
1078 /* Identical to SWIG_TypeCheck, except for strcmp comparison */
1079 SWIGRUNTIME swig_cast_info *
SWIG_TypeProxyCheck(const char * c,swig_type_info * ty)1080 SWIG_TypeProxyCheck(const char *c, swig_type_info *ty) {
1081   if (ty) {
1082     swig_cast_info *iter = ty->cast;
1083     while (iter) {
1084       if (strcmp(SWIG_Perl_TypeProxyName(iter->type), c) == 0) {
1085         if (iter == ty->cast)
1086           return iter;
1087         /* Move iter to the top of the linked list */
1088         iter->prev->next = iter->next;
1089         if (iter->next)
1090           iter->next->prev = iter->prev;
1091         iter->next = ty->cast;
1092         iter->prev = 0;
1093         if (ty->cast) ty->cast->prev = iter;
1094         ty->cast = iter;
1095         return iter;
1096       }
1097       iter = iter->next;
1098     }
1099   }
1100   return 0;
1101 }
1102 
1103 /* Acquire a pointer value */
1104 
1105 SWIGRUNTIME int
SWIG_Perl_AcquirePtr(SWIG_MAYBE_PERL_OBJECT SV * sv,int own)1106 SWIG_Perl_AcquirePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, int own) {
1107   /* TODO */
1108   return 0;
1109 }
1110 
1111 /* Function for getting a pointer value */
1112 
1113 SWIGRUNTIME int
SWIG_Perl_ConvertPtrAndOwn(SWIG_MAYBE_PERL_OBJECT SV * sv,void ** ptr,swig_type_info * _t,int flags,int * own)1114 SWIG_Perl_ConvertPtrAndOwn(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags, int *own) {
1115   swig_cast_info *tc;
1116   void *voidptr = (void *)0;
1117   SV *tsv = 0;
1118 
1119   if (own)
1120     *own = 0;
1121 
1122   /* If magical, apply more magic */
1123   if (SvGMAGICAL(sv))
1124     mg_get(sv);
1125 
1126   /* Check to see if this is an object */
1127   if (sv_isobject(sv)) {
1128     IV tmp = 0;
1129     tsv = (SV*) SvRV(sv);
1130     if ((SvTYPE(tsv) == SVt_PVHV)) {
1131       MAGIC *mg;
1132       if (SvMAGICAL(tsv)) {
1133         mg = mg_find(tsv,'P');
1134         if (mg) {
1135           sv = mg->mg_obj;
1136           if (sv_isobject(sv)) {
1137 	    tsv = (SV*)SvRV(sv);
1138             tmp = SvIV(tsv);
1139           }
1140         }
1141       } else {
1142         return SWIG_ERROR;
1143       }
1144     } else {
1145       tmp = SvIV(tsv);
1146     }
1147     voidptr = INT2PTR(void *,tmp);
1148   } else if (! SvOK(sv)) {            /* Check for undef */
1149     *(ptr) = (void *) 0;
1150     return (flags & SWIG_POINTER_NO_NULL) ? SWIG_NullReferenceError : SWIG_OK;
1151   } else if (SvTYPE(sv) == SVt_RV) {  /* Check for NULL pointer */
1152     if (!SvROK(sv)) {
1153       /* In Perl 5.12 and later, SVt_RV == SVt_IV, so sv could be a valid integer value.  */
1154       if (SvIOK(sv)) {
1155         return SWIG_ERROR;
1156       } else {
1157         /* NULL pointer (reference to undef). */
1158         *(ptr) = (void *) 0;
1159         return SWIG_OK;
1160       }
1161     } else {
1162       return SWIG_ERROR;
1163     }
1164   } else {                            /* Don't know what it is */
1165     return SWIG_ERROR;
1166   }
1167   if (_t) {
1168     /* Now see if the types match */
1169     char *_c = HvNAME(SvSTASH(SvRV(sv)));
1170     tc = SWIG_TypeProxyCheck(_c,_t);
1171 #ifdef SWIG_DIRECTORS
1172     if (!tc && !sv_derived_from(sv,SWIG_Perl_TypeProxyName(_t))) {
1173 #else
1174     if (!tc) {
1175 #endif
1176       return SWIG_ERROR;
1177     }
1178     {
1179       int newmemory = 0;
1180       *ptr = SWIG_TypeCast(tc,voidptr,&newmemory);
1181       if (newmemory == SWIG_CAST_NEW_MEMORY) {
1182         assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */
1183         if (own)
1184           *own = *own | SWIG_CAST_NEW_MEMORY;
1185       }
1186     }
1187   } else {
1188     *ptr = voidptr;
1189   }
1190 
1191   /*
1192    *  DISOWN implementation: we need a perl guru to check this one.
1193    */
1194   if (tsv && (flags & SWIG_POINTER_DISOWN)) {
1195     /*
1196      *  almost copy paste code from below SWIG_POINTER_OWN setting
1197      */
1198     SV *obj = sv;
1199     HV *stash = SvSTASH(SvRV(obj));
1200     GV *gv = *(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
1201     if (isGV(gv)) {
1202       HV *hv = GvHVn(gv);
1203       /*
1204        * To set ownership (see below), a newSViv(1) entry is added.
1205        * Hence, to remove ownership, we delete the entry.
1206        */
1207       if (hv_exists_ent(hv, obj, 0)) {
1208 	hv_delete_ent(hv, obj, 0, 0);
1209       }
1210     }
1211   }
1212   return SWIG_OK;
1213 }
1214 
1215 SWIGRUNTIME int
1216 SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags) {
1217   return SWIG_Perl_ConvertPtrAndOwn(sv, ptr, _t, flags, 0);
1218 }
1219 
1220 SWIGRUNTIME void
1221 SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, int flags) {
1222   if (ptr && (flags & (SWIG_SHADOW | SWIG_POINTER_OWN))) {
1223     SV *self;
1224     SV *obj=newSV(0);
1225     HV *hash=newHV();
1226     HV *stash;
1227     sv_setref_pv(obj, SWIG_Perl_TypeProxyName(t), ptr);
1228     stash=SvSTASH(SvRV(obj));
1229     if (flags & SWIG_POINTER_OWN) {
1230       HV *hv;
1231       GV *gv = *(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
1232       if (!isGV(gv))
1233         gv_init(gv, stash, "OWNER", 5, FALSE);
1234       hv=GvHVn(gv);
1235       hv_store_ent(hv, obj, newSViv(1), 0);
1236     }
1237     sv_magic((SV *)hash, (SV *)obj, 'P', Nullch, 0);
1238     SvREFCNT_dec(obj);
1239     self=newRV_noinc((SV *)hash);
1240     sv_setsv(sv, self);
1241     SvREFCNT_dec((SV *)self);
1242     sv_bless(sv, stash);
1243   }
1244   else {
1245     sv_setref_pv(sv, SWIG_Perl_TypeProxyName(t), ptr);
1246   }
1247 }
1248 
1249 SWIGRUNTIMEINLINE SV *
1250 SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT void *ptr, swig_type_info *t, int flags) {
1251   SV *result = sv_newmortal();
1252   SWIG_MakePtr(result, ptr, t, flags);
1253   return result;
1254 }
1255 
1256 SWIGRUNTIME void
1257 SWIG_Perl_MakePackedObj(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, int sz, swig_type_info *type) {
1258   char result[1024];
1259   char *r = result;
1260   if ((2*sz + 1 + strlen(SWIG_Perl_TypeProxyName(type))) > 1000) return;
1261   *(r++) = '_';
1262   r = SWIG_PackData(r,ptr,sz);
1263   strcpy(r,SWIG_Perl_TypeProxyName(type));
1264   sv_setpv(sv, result);
1265 }
1266 
1267 SWIGRUNTIME SV *
1268 SWIG_Perl_NewPackedObj(SWIG_MAYBE_PERL_OBJECT void *ptr, int sz, swig_type_info *type) {
1269   SV *result = sv_newmortal();
1270   SWIG_Perl_MakePackedObj(result, ptr, sz, type);
1271   return result;
1272 }
1273 
1274 /* Convert a packed pointer value */
1275 SWIGRUNTIME int
1276 SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_OBJECT SV *obj, void *ptr, int sz, swig_type_info *ty) {
1277   swig_cast_info *tc;
1278   const char  *c = 0;
1279 
1280   if ((!obj) || (!SvOK(obj))) return SWIG_ERROR;
1281   c = SvPV_nolen(obj);
1282   /* Pointer values must start with leading underscore */
1283   if (*c != '_') return SWIG_ERROR;
1284   c++;
1285   c = SWIG_UnpackData(c,ptr,sz);
1286   if (ty) {
1287     tc = SWIG_TypeCheck(c,ty);
1288     if (!tc) return SWIG_ERROR;
1289   }
1290   return SWIG_OK;
1291 }
1292 
1293 
1294 /* Macros for low-level exception handling */
1295 #define SWIG_croak(x)    { SWIG_Error(SWIG_RuntimeError, x); SWIG_fail; }
1296 
1297 
1298 typedef XSPROTO(SwigPerlWrapper);
1299 typedef SwigPerlWrapper *SwigPerlWrapperPtr;
1300 
1301 /* Structure for command table */
1302 typedef struct {
1303   const char         *name;
1304   SwigPerlWrapperPtr  wrapper;
1305 } swig_command_info;
1306 
1307 /* Information for constant table */
1308 
1309 #define SWIG_INT     1
1310 #define SWIG_FLOAT   2
1311 #define SWIG_STRING  3
1312 #define SWIG_POINTER 4
1313 #define SWIG_BINARY  5
1314 
1315 /* Constant information structure */
1316 typedef struct swig_constant_info {
1317     int              type;
1318     const char      *name;
1319     long             lvalue;
1320     double           dvalue;
1321     void            *pvalue;
1322     swig_type_info **ptype;
1323 } swig_constant_info;
1324 
1325 
1326 /* Structure for variable table */
1327 typedef struct {
1328   const char   *name;
1329   SwigMagicFunc   set;
1330   SwigMagicFunc   get;
1331   swig_type_info  **type;
1332 } swig_variable_info;
1333 
1334 /* Magic variable code */
1335 #ifndef PERL_OBJECT
1336 # ifdef __cplusplus
1337 #  define swig_create_magic(s,a,b,c) _swig_create_magic(s,const_cast<char*>(a),b,c)
1338 # else
1339 #  define swig_create_magic(s,a,b,c) _swig_create_magic(s,(char*)(a),b,c)
1340 # endif
1341 # ifndef MULTIPLICITY
1342 SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *))
1343 # else
1344 SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *))
1345 # endif
1346 #else
1347 #  define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c)
1348 SWIGRUNTIME void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *))
1349 #endif
1350 {
1351   MAGIC *mg;
1352   sv_magic(sv,sv,'U',name,strlen(name));
1353   mg = mg_find(sv,'U');
1354   mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
1355   mg->mg_virtual->svt_get = (SwigMagicFunc) get;
1356   mg->mg_virtual->svt_set = (SwigMagicFunc) set;
1357   mg->mg_virtual->svt_len = 0;
1358   mg->mg_virtual->svt_clear = 0;
1359   mg->mg_virtual->svt_free = 0;
1360 }
1361 
1362 
1363 SWIGRUNTIME swig_module_info *
1364 SWIG_Perl_GetModule(void *SWIGUNUSEDPARM(clientdata)) {
1365   static void *type_pointer = (void *)0;
1366   SV *pointer;
1367 
1368   /* first check if pointer already created */
1369   if (!type_pointer) {
1370     pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, FALSE | GV_ADDMULTI);
1371     if (pointer && SvOK(pointer)) {
1372       type_pointer = INT2PTR(swig_type_info **, SvIV(pointer));
1373     }
1374   }
1375 
1376   return (swig_module_info *) type_pointer;
1377 }
1378 
1379 SWIGRUNTIME void
1380 SWIG_Perl_SetModule(swig_module_info *module) {
1381   SV *pointer;
1382 
1383   /* create a new pointer */
1384   pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TRUE | GV_ADDMULTI);
1385   sv_setiv(pointer, PTR2IV(module));
1386 }
1387 
1388 #ifdef __cplusplus
1389 }
1390 #endif
1391 
1392 /* Workaround perl5 global namespace pollution. Note that undefining library
1393  * functions like fopen will not solve the problem on all platforms as fopen
1394  * might be a macro on Windows but not necessarily on other operating systems. */
1395 #ifdef do_open
1396   #undef do_open
1397 #endif
1398 #ifdef do_close
1399   #undef do_close
1400 #endif
1401 #ifdef do_exec
1402   #undef do_exec
1403 #endif
1404 #ifdef scalar
1405   #undef scalar
1406 #endif
1407 #ifdef list
1408   #undef list
1409 #endif
1410 #ifdef apply
1411   #undef apply
1412 #endif
1413 #ifdef convert
1414   #undef convert
1415 #endif
1416 #ifdef Error
1417   #undef Error
1418 #endif
1419 #ifdef form
1420   #undef form
1421 #endif
1422 #ifdef vform
1423   #undef vform
1424 #endif
1425 #ifdef LABEL
1426   #undef LABEL
1427 #endif
1428 #ifdef METHOD
1429   #undef METHOD
1430 #endif
1431 #ifdef Move
1432   #undef Move
1433 #endif
1434 #ifdef yylex
1435   #undef yylex
1436 #endif
1437 #ifdef yyparse
1438   #undef yyparse
1439 #endif
1440 #ifdef yyerror
1441   #undef yyerror
1442 #endif
1443 #ifdef invert
1444   #undef invert
1445 #endif
1446 #ifdef ref
1447   #undef ref
1448 #endif
1449 #ifdef read
1450   #undef read
1451 #endif
1452 #ifdef write
1453   #undef write
1454 #endif
1455 #ifdef eof
1456   #undef eof
1457 #endif
1458 #ifdef close
1459   #undef close
1460 #endif
1461 #ifdef rewind
1462   #undef rewind
1463 #endif
1464 #ifdef free
1465   #undef free
1466 #endif
1467 #ifdef malloc
1468   #undef malloc
1469 #endif
1470 #ifdef calloc
1471   #undef calloc
1472 #endif
1473 #ifdef Stat
1474   #undef Stat
1475 #endif
1476 #ifdef check
1477   #undef check
1478 #endif
1479 #ifdef seekdir
1480   #undef seekdir
1481 #endif
1482 #ifdef open
1483   #undef open
1484 #endif
1485 #ifdef readdir
1486   #undef readdir
1487 #endif
1488 #ifdef bind
1489   #undef bind
1490 #endif
1491 #ifdef access
1492   #undef access
1493 #endif
1494 #ifdef stat
1495   #undef stat
1496 #endif
1497 #ifdef seed
1498   #undef seed
1499 #endif
1500 
1501 #ifdef bool
1502   /* Leave if macro is from C99 stdbool.h */
1503   #ifndef __bool_true_false_are_defined
1504     #undef bool
1505   #endif
1506 #endif
1507 
1508 
1509 
1510 
1511 #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
1512 
1513 #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else
1514 
1515 
1516 
1517 /* -------- TYPES TABLE (BEGIN) -------- */
1518 
1519 #define SWIGTYPE_p_FILE swig_types[0]
1520 #define SWIGTYPE_p_char swig_types[1]
1521 #define SWIGTYPE_p_double swig_types[2]
1522 #define SWIGTYPE_p_f_double_a___double_p_void__int swig_types[3]
1523 #define SWIGTYPE_p_f_double_p_void__double swig_types[4]
1524 #define SWIGTYPE_p_f_double_p_void_p_double_p_double__void swig_types[5]
1525 #define SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_int__void swig_types[6]
1526 #define SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_q_const__char__void swig_types[7]
1527 #define SWIGTYPE_p_gsl_bspline_workspace swig_types[8]
1528 #define SWIGTYPE_p_gsl_function_fdf_struct swig_types[9]
1529 #define SWIGTYPE_p_gsl_function_struct swig_types[10]
1530 #define SWIGTYPE_p_gsl_function_vec_struct swig_types[11]
1531 #define SWIGTYPE_p_gsl_matrix swig_types[12]
1532 #define SWIGTYPE_p_gsl_vector swig_types[13]
1533 #define SWIGTYPE_p_size_t swig_types[14]
1534 #define SWIGTYPE_p_void swig_types[15]
1535 static swig_type_info *swig_types[17];
1536 static swig_module_info swig_module = {swig_types, 16, 0, 0, 0, 0};
1537 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
1538 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
1539 
1540 /* -------- TYPES TABLE (END) -------- */
1541 
1542 #define SWIG_init    boot_Math__GSL__BSpline
1543 
1544 #define SWIG_name   "Math::GSL::BSplinec::boot_Math__GSL__BSpline"
1545 #define SWIG_prefix "Math::GSL::BSplinec::"
1546 
1547 #define SWIGVERSION 0x040001
1548 #define SWIG_VERSION SWIGVERSION
1549 
1550 
1551 #define SWIG_as_voidptr(a) (void *)((const void *)(a))
1552 #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a))
1553 
1554 
1555 #ifdef __cplusplus
1556 extern "C"
1557 #endif
1558 #ifndef PERL_OBJECT
1559 #ifndef MULTIPLICITY
1560 SWIGEXPORT void SWIG_init (CV* cv);
1561 #else
1562 SWIGEXPORT void SWIG_init (pTHXo_ CV* cv);
1563 #endif
1564 #else
1565 SWIGEXPORT void SWIG_init (CV *cv, CPerlObj *);
1566 #endif
1567 
1568 
1569 SWIGINTERNINLINE SV *
SWIG_PERL_DECL_ARGS_1(double value)1570 SWIG_From_double  SWIG_PERL_DECL_ARGS_1(double value)
1571 {
1572   return sv_2mortal(newSVnv(value));
1573 }
1574 
1575 
1576 SWIGINTERNINLINE SV *
SWIG_PERL_DECL_ARGS_1(long value)1577 SWIG_From_long  SWIG_PERL_DECL_ARGS_1(long value)
1578 {
1579   SV *sv;
1580   if (IVSIZE >= sizeof(value) || (value >= IV_MIN && value <= IV_MAX))
1581     sv = newSViv(value);
1582   else
1583     sv = newSVpvf("%ld", value);
1584   return sv_2mortal(sv);
1585 }
1586 
1587 
1588 SWIGINTERNINLINE SV *
SWIG_PERL_DECL_ARGS_1(int value)1589 SWIG_From_int  SWIG_PERL_DECL_ARGS_1(int value)
1590 {
1591   return SWIG_From_long  SWIG_PERL_CALL_ARGS_1(value);
1592 }
1593 
1594 
1595 SWIGINTERN swig_type_info*
SWIG_pchar_descriptor(void)1596 SWIG_pchar_descriptor(void)
1597 {
1598   static int init = 0;
1599   static swig_type_info* info = 0;
1600   if (!init) {
1601     info = SWIG_TypeQuery("_p_char");
1602     init = 1;
1603   }
1604   return info;
1605 }
1606 
1607 
1608 SWIGINTERN int
SWIG_AsCharPtrAndSize(SV * obj,char ** cptr,size_t * psize,int * alloc)1609 SWIG_AsCharPtrAndSize(SV *obj, char** cptr, size_t* psize, int *alloc)
1610 {
1611   if (SvMAGICAL(obj)) {
1612      SV *tmp = sv_newmortal();
1613      SvSetSV(tmp, obj);
1614      obj = tmp;
1615   }
1616   if (SvPOK(obj)) {
1617     STRLEN len = 0;
1618     char *cstr = SvPV(obj, len);
1619     size_t size = len + 1;
1620     if (cptr)  {
1621       if (alloc) {
1622 	if (*alloc == SWIG_NEWOBJ) {
1623 	  *cptr = (char *)memcpy(malloc((size)*sizeof(char)), cstr, sizeof(char)*(size));
1624 	} else {
1625 	  *cptr = cstr;
1626 	  *alloc = SWIG_OLDOBJ;
1627 	}
1628       }
1629     }
1630     if (psize) *psize = size;
1631     return SWIG_OK;
1632   } else {
1633     swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
1634     if (pchar_descriptor) {
1635       char* vptr = 0;
1636       if (SWIG_ConvertPtr(obj, (void**)&vptr, pchar_descriptor, 0) == SWIG_OK) {
1637 	if (cptr) *cptr = vptr;
1638 	if (psize) *psize = vptr ? (strlen(vptr) + 1) : 0;
1639 	if (alloc) *alloc = SWIG_OLDOBJ;
1640 	return SWIG_OK;
1641       }
1642     }
1643   }
1644   return SWIG_TypeError;
1645 }
1646 
1647 
1648 
1649 
1650 
1651 #include <limits.h>
1652 #if !defined(SWIG_NO_LLONG_MAX)
1653 # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
1654 #   define LLONG_MAX __LONG_LONG_MAX__
1655 #   define LLONG_MIN (-LLONG_MAX - 1LL)
1656 #   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
1657 # endif
1658 #endif
1659 
1660 
1661 #include <stdlib.h>
1662 #ifdef _MSC_VER
1663 # ifndef strtoull
1664 #  define strtoull _strtoui64
1665 # endif
1666 # ifndef strtoll
1667 #  define strtoll _strtoi64
1668 # endif
1669 #endif
1670 
1671 
1672 SWIGINTERN int
SWIG_PERL_DECL_ARGS_2(SV * obj,double * val)1673 SWIG_AsVal_double SWIG_PERL_DECL_ARGS_2(SV *obj, double *val)
1674 {
1675   if (SvNIOK(obj)) {
1676     if (val) *val = SvNV(obj);
1677     return SWIG_OK;
1678   } else if (SvIOK(obj)) {
1679     if (val) *val = (double) SvIV(obj);
1680     return SWIG_AddCast(SWIG_OK);
1681   } else {
1682     const char *nptr = SvPV_nolen(obj);
1683     if (nptr) {
1684       char *endptr;
1685       double v;
1686       errno = 0;
1687       v = strtod(nptr, &endptr);
1688       if (errno == ERANGE) {
1689 	errno = 0;
1690 	return SWIG_OverflowError;
1691       } else {
1692 	if (*endptr == '\0') {
1693 	  if (val) *val = v;
1694 	  return SWIG_Str2NumCast(SWIG_OK);
1695 	}
1696       }
1697     }
1698   }
1699   return SWIG_TypeError;
1700 }
1701 
1702 
1703 #include <float.h>
1704 
1705 
1706 #include <math.h>
1707 
1708 
1709 SWIGINTERNINLINE int
SWIG_CanCastAsInteger(double * d,double min,double max)1710 SWIG_CanCastAsInteger(double *d, double min, double max) {
1711   double x = *d;
1712   if ((min <= x && x <= max)) {
1713    double fx = floor(x);
1714    double cx = ceil(x);
1715    double rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
1716    if ((errno == EDOM) || (errno == ERANGE)) {
1717      errno = 0;
1718    } else {
1719      double summ, reps, diff;
1720      if (rd < x) {
1721        diff = x - rd;
1722      } else if (rd > x) {
1723        diff = rd - x;
1724      } else {
1725        return 1;
1726      }
1727      summ = rd + x;
1728      reps = diff/summ;
1729      if (reps < 8*DBL_EPSILON) {
1730        *d = rd;
1731        return 1;
1732      }
1733    }
1734   }
1735   return 0;
1736 }
1737 
1738 
1739 SWIGINTERN int
SWIG_PERL_DECL_ARGS_2(SV * obj,long * val)1740 SWIG_AsVal_long SWIG_PERL_DECL_ARGS_2(SV *obj, long* val)
1741 {
1742   if (SvUOK(obj)) {
1743     UV v = SvUV(obj);
1744     if (UVSIZE < sizeof(*val) || v <= LONG_MAX) {
1745       if (val) *val = v;
1746       return SWIG_OK;
1747     }
1748     return SWIG_OverflowError;
1749   } else if (SvIOK(obj)) {
1750     IV v = SvIV(obj);
1751     if (IVSIZE <= sizeof(*val) || (v >= LONG_MIN && v <= LONG_MAX)) {
1752       if(val) *val = v;
1753       return SWIG_OK;
1754     }
1755     return SWIG_OverflowError;
1756   } else {
1757     int dispatch = 0;
1758     const char *nptr = SvPV_nolen(obj);
1759     if (nptr) {
1760       char *endptr;
1761       long v;
1762       errno = 0;
1763       v = strtol(nptr, &endptr,0);
1764       if (errno == ERANGE) {
1765 	errno = 0;
1766 	return SWIG_OverflowError;
1767       } else {
1768 	if (*endptr == '\0') {
1769 	  if (val) *val = v;
1770 	  return SWIG_Str2NumCast(SWIG_OK);
1771 	}
1772       }
1773     }
1774     if (!dispatch) {
1775       double d;
1776       int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d));
1777       if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
1778 	if (val) *val = (long)(d);
1779 	return res;
1780       }
1781     }
1782   }
1783   return SWIG_TypeError;
1784 }
1785 
1786 
1787 SWIGINTERN int
SWIG_PERL_DECL_ARGS_2(SV * obj,int * val)1788 SWIG_AsVal_int SWIG_PERL_DECL_ARGS_2(SV * obj, int *val)
1789 {
1790   long v;
1791   int res = SWIG_AsVal_long SWIG_PERL_CALL_ARGS_2(obj, &v);
1792   if (SWIG_IsOK(res)) {
1793     if ((v < INT_MIN || v > INT_MAX)) {
1794       return SWIG_OverflowError;
1795     } else {
1796       if (val) *val = (int)(v);
1797     }
1798   }
1799   return res;
1800 }
1801 
1802 
1803 SWIGINTERNINLINE SV *
SWIG_FromCharPtrAndSize(const char * carray,size_t size)1804 SWIG_FromCharPtrAndSize(const char* carray, size_t size)
1805 {
1806   SV *obj = sv_newmortal();
1807   if (carray) {
1808     sv_setpvn(obj, carray, size);
1809   } else {
1810     sv_setsv(obj, &PL_sv_undef);
1811   }
1812   return obj;
1813 }
1814 
1815 
1816 SWIGINTERNINLINE SV *
SWIG_FromCharPtr(const char * cptr)1817 SWIG_FromCharPtr(const char *cptr)
1818 {
1819   return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
1820 }
1821 
1822 
1823     #include "gsl/gsl_nan.h"
1824     #include "gsl/gsl_errno.h"
1825     #include "gsl/gsl_math.h"
1826     #include "gsl/gsl_monte.h"
1827 
1828 
1829     struct perl_array {
1830         I32 len;
1831         AV *array;
1832     };
1833 
1834 
1835 
1836 enum awType { awDouble, awFloat, awInt, awUnsigned };
1837 
1838 typedef struct {
1839     I32 size;
1840     enum awType type;
1841     void * data;
1842 } array_wrapper;
1843 
array_wrapper_alloc(int numelem,enum awType type)1844 array_wrapper * array_wrapper_alloc(int numelem, enum awType type){
1845     array_wrapper * rv =  malloc(sizeof(array_wrapper));
1846 
1847     if (rv == NULL)
1848         croak("array_wrapper_alloc: can't malloc wrapper\n");
1849 
1850     switch (type){
1851         case awDouble:
1852             rv->data = malloc(sizeof(double) * numelem);
1853             break;
1854         case awFloat:
1855             rv->data = malloc(sizeof(float) * numelem);
1856             break;
1857         case awInt:
1858             rv->data = malloc(sizeof(int) * numelem);
1859             break;
1860         case awUnsigned:
1861             rv->data = malloc(sizeof(unsigned int) * numelem);
1862             break;
1863         default:
1864             croak("array_wrapper_alloc: type should be awDouble, awFloat, awInt, or awUnsigned");
1865     }
1866 
1867     if (rv->data == NULL)
1868         croak("array_wrapper_alloc: can't malloc data");
1869 
1870     rv->size = numelem;
1871     rv->type = type;
1872     return rv;
1873 }
1874 
array_wrapper_free(array_wrapper * daw)1875 void array_wrapper_free(array_wrapper * daw){
1876     free(daw->data);
1877     free(daw);
1878 }
1879 
1880 
1881     /* structure to hold required information while the gsl function call
1882        for each callback
1883      */
1884     struct gsl_function_perl {
1885         gsl_function C_gsl_function;
1886         SV * function;
1887         SV * params;
1888     };
1889 
1890     struct gsl_function_fdf_perl {
1891         gsl_function_fdf C_gsl_function_fdf;
1892         SV * f;
1893         SV * df;
1894         SV * fdf;
1895         SV * params;
1896     };
1897 
1898     struct gsl_monte_function_perl {
1899         gsl_monte_function C_gsl_monte_function;
1900         SV * f;
1901         SV * dim;
1902         SV * params;
1903     };
1904 
gsl_function_perl_free(struct gsl_function_perl * perl_f)1905     void gsl_function_perl_free(struct gsl_function_perl * perl_f){
1906         if (perl_f != NULL) {
1907             SvREFCNT_dec(perl_f->function);
1908             SvREFCNT_dec(perl_f->params);
1909             Safefree(perl_f);
1910         }
1911     }
1912 
gsl_function_fdf_perl_free(struct gsl_function_fdf_perl * perl_fdf)1913     void gsl_function_fdf_perl_free(struct gsl_function_fdf_perl * perl_fdf){
1914         if (perl_fdf != NULL) {
1915 	  SvREFCNT_dec(perl_fdf->f);
1916 	  SvREFCNT_dec(perl_fdf->df);
1917 	  SvREFCNT_dec(perl_fdf->fdf);
1918 	  SvREFCNT_dec(perl_fdf->params);
1919 	  Safefree(perl_fdf);
1920         }
1921     }
1922 
1923     /* These functions (C callbacks) calls the perl callbacks.
1924        Info for perl callback can be found using the 'void*params' parameter
1925     */
call_gsl_function_x_params(SV * function,double x,SV * params)1926     double call_gsl_function_x_params(SV* function, double x, SV *params){
1927         unsigned int count;
1928         double y;
1929         dSP;
1930 
1931         //fprintf(stderr, "LOOKUP CALLBACK\n");
1932         ENTER;
1933         SAVETMPS;
1934 
1935         PUSHMARK(SP);
1936         XPUSHs(sv_2mortal(newSVnv((double)x)));
1937         XPUSHs(params);
1938         PUTBACK;                                /* make local stack pointer global */
1939 
1940         count = call_sv(function, G_SCALAR);
1941         SPAGAIN;
1942 
1943         if (count != 1)
1944                 croak("Expected to call subroutine in scalar context!");
1945 
1946         y = POPn;
1947 
1948         PUTBACK;                                /* make local stack pointer global */
1949         FREETMPS;
1950         LEAVE;
1951 
1952         return y;
1953     }
1954 
call_gsl_function(double x,void * params)1955     double call_gsl_function(double x , void *params){
1956         struct gsl_function_perl *F=(struct gsl_function_perl*)params;
1957 	return call_gsl_function_x_params( F->function, x, F->params );
1958     }
1959 
call_gsl_function_fdf_f(double x,void * params)1960     double call_gsl_function_fdf_f(double x , void *params){
1961         struct gsl_function_fdf_perl *F=(struct gsl_function_fdf_perl*)params;
1962 	return call_gsl_function_x_params( F->f, x, F->params );
1963     }
1964 
call_gsl_function_fdf_df(double x,void * params)1965     double call_gsl_function_fdf_df(double x , void *params){
1966         struct gsl_function_fdf_perl *F=(struct gsl_function_fdf_perl*)params;
1967 	return call_gsl_function_x_params( F->df, x, F->params );
1968     }
1969 
call_gsl_function_fdf_fdf(double x,void * params,double * f,double * df)1970     void call_gsl_function_fdf_fdf(double x , void *params, double *f, double *df ){
1971         struct gsl_function_fdf_perl *F=(struct gsl_function_fdf_perl*)params;
1972 
1973         dSP;
1974 
1975         ENTER;
1976         SAVETMPS;
1977 
1978         PUSHMARK(SP);
1979 	EXTEND(SP, 2);
1980         PUSHs(sv_2mortal(newSVnv((double)x)));
1981         PUSHs(F->params);
1982         PUTBACK;                                /* make local stack pointer global */
1983 
1984 	{
1985 	  unsigned int count = call_sv(F->fdf, G_ARRAY);
1986 	  SPAGAIN;
1987 
1988 	  if (count != 2)
1989 	    croak( "Expected two return values, got %d", count );
1990 	}
1991 
1992 	*df = POPn;
1993         *f = POPn;
1994 
1995         PUTBACK;                                /* make local stack pointer global */
1996         FREETMPS;
1997         LEAVE;
1998     }
1999 
call_gsl_monte_function(double * x_array,size_t dim,void * params)2000     double call_gsl_monte_function(double *x_array , size_t dim, void *params){
2001         struct gsl_monte_function_perl *F=(struct gsl_monte_function_perl*)params;
2002         unsigned int count;
2003         unsigned int i;
2004         AV* perl_array;
2005         double y;
2006         dSP;
2007 
2008         //fprintf(stderr, "LOOKUP CALLBACK\n");
2009         ENTER;
2010         SAVETMPS;
2011 
2012         PUSHMARK(SP);
2013         perl_array=newAV();
2014         sv_2mortal((SV*)perl_array);
2015         XPUSHs(sv_2mortal(newRV((SV *)perl_array)));
2016         for(i=0; i<dim; i++) {
2017                 /* no mortal : it is referenced by the array */
2018                 av_push(perl_array, newSVnv(x_array[i]));
2019         }
2020         XPUSHs(sv_2mortal(newSViv(dim)));
2021         XPUSHs(F->params);
2022         PUTBACK;                                /* make local stack pointer global */
2023 
2024         count = call_sv(F->f, G_SCALAR);
2025         SPAGAIN;
2026 
2027         if (count != 1)
2028                 croak("Expected to call subroutine in scalar context!");
2029 
2030         y = POPn;
2031 
2032         PUTBACK;                                /* make local stack pointer global */
2033         FREETMPS;
2034         LEAVE;
2035 
2036         return y;
2037     }
2038 
2039 
gsl_function_fdf_extract(char * param_name,HV * hash,SV * func[])2040   void gsl_function_fdf_extract( char* param_name, HV* hash, SV* func[] ) {
2041     static const char *keys[3] = { "f", "df", "fdf" };
2042 
2043     int ikey;
2044 
2045     for ( ikey = 0 ; ikey < 3 ; ++ikey ) {
2046       func[ikey] = 0;
2047       const char* key = keys[ikey];
2048       /* it just so happens that strlen(keys[ikey]) == ikey + 1 */
2049       SV** pp_sv = hv_fetch( hash, key, ikey+1, 0 );
2050       SV* function;
2051 
2052       if ( !pp_sv )
2053 	croak("Math::GSL : %s: missing key %s!", param_name, key);
2054 
2055       function = *pp_sv;
2056 
2057       if ( SvPOK(function) || ( SvROK( function ) && SvTYPE(SvRV(function)) == SVt_PVCV ) ) {
2058         /* hold on to SV after the enclosing hash goes away */
2059         SvREFCNT_inc( function );
2060 	func[ikey] = function;
2061       }
2062       else {
2063 	croak( "Math::GSL : %s:  key %s is not a reference to code!", param_name, key);
2064       }
2065     }
2066   }
2067 
2068 
2069 
2070 SWIGINTERN int
SWIG_PERL_DECL_ARGS_2(SV * obj,unsigned long * val)2071 SWIG_AsVal_unsigned_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, unsigned long *val)
2072 {
2073   if (SvUOK(obj)) {
2074     UV v = SvUV(obj);
2075     if (UVSIZE <= sizeof(*val) || v <= ULONG_MAX) {
2076       if (val) *val = v;
2077       return SWIG_OK;
2078     }
2079     return SWIG_OverflowError;
2080   } else if (SvIOK(obj)) {
2081     IV v = SvIV(obj);
2082     if (v >= 0 && (IVSIZE <= sizeof(*val) || v <= ULONG_MAX)) {
2083       if (val) *val = v;
2084       return SWIG_OK;
2085     }
2086     return SWIG_OverflowError;
2087   } else {
2088     int dispatch = 0;
2089     const char *nptr = SvPV_nolen(obj);
2090     if (nptr) {
2091       char *endptr;
2092       unsigned long v;
2093       errno = 0;
2094       v = strtoul(nptr, &endptr,0);
2095       if (errno == ERANGE) {
2096 	errno = 0;
2097 	return SWIG_OverflowError;
2098       } else {
2099 	if (*endptr == '\0') {
2100 	  if (val) *val = v;
2101 	  return SWIG_Str2NumCast(SWIG_OK);
2102 	}
2103       }
2104     }
2105     if (!dispatch) {
2106       double d;
2107       int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d));
2108       if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) {
2109 	if (val) *val = (unsigned long)(d);
2110 	return res;
2111       }
2112     }
2113   }
2114   return SWIG_TypeError;
2115 }
2116 
2117 
2118 #if defined(LLONG_MAX) && !defined(SWIG_LONG_LONG_AVAILABLE)
2119 #  define SWIG_LONG_LONG_AVAILABLE
2120 #endif
2121 
2122 
2123 #ifdef SWIG_LONG_LONG_AVAILABLE
2124 SWIGINTERN int
SWIG_PERL_DECL_ARGS_2(SV * obj,unsigned long long * val)2125 SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, unsigned long long *val)
2126 {
2127   if (SvUOK(obj)) {
2128     /* pretty sure this should be conditional on
2129      * (UVSIZE <= sizeof(*val) || v <= ULLONG_MAX) */
2130     if (val) *val = SvUV(obj);
2131     return SWIG_OK;
2132   } else  if (SvIOK(obj)) {
2133     IV v = SvIV(obj);
2134     if (v >= 0 && (IVSIZE <= sizeof(*val) || v <= ULLONG_MAX)) {
2135       if (val) *val = v;
2136       return SWIG_OK;
2137     } else {
2138       return SWIG_OverflowError;
2139     }
2140   } else {
2141     int dispatch = 0;
2142     const char *nptr = SvPV_nolen(obj);
2143     if (nptr) {
2144       char *endptr;
2145       unsigned long long v;
2146       errno = 0;
2147       v = strtoull(nptr, &endptr,0);
2148       if (errno == ERANGE) {
2149 	errno = 0;
2150 	return SWIG_OverflowError;
2151       } else {
2152 	if (*endptr == '\0') {
2153 	  if (val) *val = v;
2154 	  return SWIG_Str2NumCast(SWIG_OK);
2155 	}
2156       }
2157     }
2158     if (!dispatch) {
2159       const double mant_max = 1LL << DBL_MANT_DIG;
2160       double d;
2161       int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d));
2162       if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, mant_max)) {
2163 	if (val) *val = (unsigned long long)(d);
2164 	return res;
2165       }
2166     }
2167   }
2168   return SWIG_TypeError;
2169 }
2170 #endif
2171 
2172 
2173 SWIGINTERNINLINE int
SWIG_PERL_DECL_ARGS_2(SV * obj,size_t * val)2174 SWIG_AsVal_size_t SWIG_PERL_DECL_ARGS_2(SV * obj, size_t *val)
2175 {
2176   int res = SWIG_TypeError;
2177 #ifdef SWIG_LONG_LONG_AVAILABLE
2178   if (sizeof(size_t) <= sizeof(unsigned long)) {
2179 #endif
2180     unsigned long v;
2181     res = SWIG_AsVal_unsigned_SS_long SWIG_PERL_CALL_ARGS_2(obj, val ? &v : 0);
2182     if (SWIG_IsOK(res) && val) *val = (size_t)(v);
2183 #ifdef SWIG_LONG_LONG_AVAILABLE
2184   } else if (sizeof(size_t) <= sizeof(unsigned long long)) {
2185     unsigned long long v;
2186     res = SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_CALL_ARGS_2(obj, val ? &v : 0);
2187     if (SWIG_IsOK(res) && val) *val = (size_t)(v);
2188   }
2189 #endif
2190   return res;
2191 }
2192 
2193 
2194 SWIGINTERNINLINE SV *
SWIG_PERL_DECL_ARGS_1(unsigned long value)2195 SWIG_From_unsigned_SS_long  SWIG_PERL_DECL_ARGS_1(unsigned long value)
2196 {
2197   SV *sv;
2198   if (UVSIZE >= sizeof(value) || value <= UV_MAX)
2199     sv = newSVuv(value);
2200   else
2201     sv = newSVpvf("%lu", value);
2202   return sv_2mortal(sv);
2203 }
2204 
2205 
2206 #include <stdio.h>
2207 #if (defined(_MSC_VER) && (_MSC_VER < 1900)) || defined(__BORLANDC__) || defined(_WATCOM)
2208 # ifndef snprintf
2209 #  define snprintf _snprintf
2210 # endif
2211 #endif
2212 
2213 
2214 #ifdef SWIG_LONG_LONG_AVAILABLE
2215 SWIGINTERNINLINE SV *
SWIG_PERL_DECL_ARGS_1(unsigned long long value)2216 SWIG_From_unsigned_SS_long_SS_long  SWIG_PERL_DECL_ARGS_1(unsigned long long value)
2217 {
2218   SV *sv;
2219   if (UVSIZE >= sizeof(value) || value <= UV_MAX)
2220     sv = newSVuv((UV)(value));
2221   else {
2222     //sv = newSVpvf("%llu", value); doesn't work in non 64bit Perl
2223     char temp[256];
2224     sprintf(temp, "%llu", value);
2225     sv = newSVpv(temp, 0);
2226   }
2227   return sv_2mortal(sv);
2228 }
2229 #endif
2230 
2231 
2232 SWIGINTERNINLINE SV *
SWIG_PERL_DECL_ARGS_1(size_t value)2233 SWIG_From_size_t  SWIG_PERL_DECL_ARGS_1(size_t value)
2234 {
2235 #ifdef SWIG_LONG_LONG_AVAILABLE
2236   if (sizeof(size_t) <= sizeof(unsigned long)) {
2237 #endif
2238     return SWIG_From_unsigned_SS_long  SWIG_PERL_CALL_ARGS_1((unsigned long)(value));
2239 #ifdef SWIG_LONG_LONG_AVAILABLE
2240   } else {
2241     /* assume sizeof(size_t) <= sizeof(unsigned long long) */
2242     return SWIG_From_unsigned_SS_long_SS_long  SWIG_PERL_CALL_ARGS_1((unsigned long long)(value));
2243   }
2244 #endif
2245 }
2246 
2247 
2248     #include "gsl/gsl_math.h"
2249     #include "gsl/gsl_vector.h"
2250     #include "gsl/gsl_bspline.h"
2251 
2252 #ifdef __cplusplus
2253 extern "C" {
2254 #endif
2255 
2256 #ifdef PERL_OBJECT
2257 #define MAGIC_CLASS _wrap_Math__GSL__BSpline_var::
2258 class _wrap_Math__GSL__BSpline_var : public CPerlObj {
2259 public:
2260 #else
2261 #define MAGIC_CLASS
2262 #endif
swig_magic_readonly(pTHX_ SV * SWIGUNUSEDPARM (sv),MAGIC * SWIGUNUSEDPARM (mg))2263 SWIGCLASS_STATIC int swig_magic_readonly(pTHX_ SV *SWIGUNUSEDPARM(sv), MAGIC *SWIGUNUSEDPARM(mg)) {
2264     MAGIC_PPERL
2265     croak("Value is read-only.");
2266     return 0;
2267 }
2268 
2269 
2270 #ifdef PERL_OBJECT
2271 };
2272 #endif
2273 
2274 #ifdef __cplusplus
2275 }
2276 #endif
2277 
2278 #ifdef __cplusplus
2279 extern "C" {
2280 #endif
XS(_wrap_gsl_error)2281 XS(_wrap_gsl_error) {
2282   {
2283     char *arg1 = (char *) 0 ;
2284     char *arg2 = (char *) 0 ;
2285     int arg3 ;
2286     int arg4 ;
2287     int res1 ;
2288     char *buf1 = 0 ;
2289     int alloc1 = 0 ;
2290     int res2 ;
2291     char *buf2 = 0 ;
2292     int alloc2 = 0 ;
2293     int val3 ;
2294     int ecode3 = 0 ;
2295     int val4 ;
2296     int ecode4 = 0 ;
2297     int argvi = 0;
2298     dXSARGS;
2299 
2300     if ((items < 4) || (items > 4)) {
2301       SWIG_croak("Usage: gsl_error(reason,file,line,gsl_errno);");
2302     }
2303     res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
2304     if (!SWIG_IsOK(res1)) {
2305       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_error" "', argument " "1"" of type '" "char const *""'");
2306     }
2307     arg1 = (char *)(buf1);
2308     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
2309     if (!SWIG_IsOK(res2)) {
2310       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_error" "', argument " "2"" of type '" "char const *""'");
2311     }
2312     arg2 = (char *)(buf2);
2313     ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3);
2314     if (!SWIG_IsOK(ecode3)) {
2315       SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "gsl_error" "', argument " "3"" of type '" "int""'");
2316     }
2317     arg3 = (int)(val3);
2318     ecode4 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(3), &val4);
2319     if (!SWIG_IsOK(ecode4)) {
2320       SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "gsl_error" "', argument " "4"" of type '" "int""'");
2321     }
2322     arg4 = (int)(val4);
2323     gsl_error((char const *)arg1,(char const *)arg2,arg3,arg4);
2324     ST(argvi) = &PL_sv_undef;
2325     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
2326     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2327 
2328 
2329     XSRETURN(argvi);
2330   fail:
2331     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
2332     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2333 
2334 
2335     SWIG_croak_null();
2336   }
2337 }
2338 
2339 
XS(_wrap_gsl_stream_printf)2340 XS(_wrap_gsl_stream_printf) {
2341   {
2342     char *arg1 = (char *) 0 ;
2343     char *arg2 = (char *) 0 ;
2344     int arg3 ;
2345     char *arg4 = (char *) 0 ;
2346     int res1 ;
2347     char *buf1 = 0 ;
2348     int alloc1 = 0 ;
2349     int res2 ;
2350     char *buf2 = 0 ;
2351     int alloc2 = 0 ;
2352     int val3 ;
2353     int ecode3 = 0 ;
2354     int res4 ;
2355     char *buf4 = 0 ;
2356     int alloc4 = 0 ;
2357     int argvi = 0;
2358     dXSARGS;
2359 
2360     if ((items < 4) || (items > 4)) {
2361       SWIG_croak("Usage: gsl_stream_printf(label,file,line,reason);");
2362     }
2363     res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
2364     if (!SWIG_IsOK(res1)) {
2365       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_stream_printf" "', argument " "1"" of type '" "char const *""'");
2366     }
2367     arg1 = (char *)(buf1);
2368     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
2369     if (!SWIG_IsOK(res2)) {
2370       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_stream_printf" "', argument " "2"" of type '" "char const *""'");
2371     }
2372     arg2 = (char *)(buf2);
2373     ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3);
2374     if (!SWIG_IsOK(ecode3)) {
2375       SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "gsl_stream_printf" "', argument " "3"" of type '" "int""'");
2376     }
2377     arg3 = (int)(val3);
2378     res4 = SWIG_AsCharPtrAndSize(ST(3), &buf4, NULL, &alloc4);
2379     if (!SWIG_IsOK(res4)) {
2380       SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "gsl_stream_printf" "', argument " "4"" of type '" "char const *""'");
2381     }
2382     arg4 = (char *)(buf4);
2383     gsl_stream_printf((char const *)arg1,(char const *)arg2,arg3,(char const *)arg4);
2384     ST(argvi) = &PL_sv_undef;
2385     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
2386     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2387 
2388     if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
2389     XSRETURN(argvi);
2390   fail:
2391     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
2392     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2393 
2394     if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
2395     SWIG_croak_null();
2396   }
2397 }
2398 
2399 
XS(_wrap_gsl_strerror)2400 XS(_wrap_gsl_strerror) {
2401   {
2402     int arg1 ;
2403     int val1 ;
2404     int ecode1 = 0 ;
2405     int argvi = 0;
2406     char *result = 0 ;
2407     dXSARGS;
2408 
2409     if ((items < 1) || (items > 1)) {
2410       SWIG_croak("Usage: gsl_strerror(gsl_errno);");
2411     }
2412     ecode1 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
2413     if (!SWIG_IsOK(ecode1)) {
2414       SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "gsl_strerror" "', argument " "1"" of type '" "int""'");
2415     }
2416     arg1 = (int)(val1);
2417     result = (char *)gsl_strerror(arg1);
2418     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2419 
2420     XSRETURN(argvi);
2421   fail:
2422 
2423     SWIG_croak_null();
2424   }
2425 }
2426 
2427 
XS(_wrap_gsl_set_error_handler)2428 XS(_wrap_gsl_set_error_handler) {
2429   {
2430     gsl_error_handler_t *arg1 = (gsl_error_handler_t *) 0 ;
2431     int argvi = 0;
2432     gsl_error_handler_t *result = 0 ;
2433     dXSARGS;
2434 
2435     if ((items < 1) || (items > 1)) {
2436       SWIG_croak("Usage: gsl_set_error_handler(new_handler);");
2437     }
2438     {
2439       int res = SWIG_ConvertFunctionPtr(ST(0), (void**)(&arg1), SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_int__void);
2440       if (!SWIG_IsOK(res)) {
2441         SWIG_exception_fail(SWIG_ArgError(res), "in method '" "gsl_set_error_handler" "', argument " "1"" of type '" "gsl_error_handler_t *""'");
2442       }
2443     }
2444     result = (gsl_error_handler_t *)gsl_set_error_handler(arg1);
2445     ST(argvi) = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_int__void); argvi++ ;
2446 
2447     XSRETURN(argvi);
2448   fail:
2449 
2450     SWIG_croak_null();
2451   }
2452 }
2453 
2454 
XS(_wrap_gsl_set_error_handler_off)2455 XS(_wrap_gsl_set_error_handler_off) {
2456   {
2457     int argvi = 0;
2458     gsl_error_handler_t *result = 0 ;
2459     dXSARGS;
2460 
2461     if ((items < 0) || (items > 0)) {
2462       SWIG_croak("Usage: gsl_set_error_handler_off();");
2463     }
2464     result = (gsl_error_handler_t *)gsl_set_error_handler_off();
2465     ST(argvi) = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_int__void); argvi++ ;
2466     XSRETURN(argvi);
2467   fail:
2468     SWIG_croak_null();
2469   }
2470 }
2471 
2472 
XS(_wrap_gsl_set_stream_handler)2473 XS(_wrap_gsl_set_stream_handler) {
2474   {
2475     gsl_stream_handler_t *arg1 = (gsl_stream_handler_t *) 0 ;
2476     int argvi = 0;
2477     gsl_stream_handler_t *result = 0 ;
2478     dXSARGS;
2479 
2480     if ((items < 1) || (items > 1)) {
2481       SWIG_croak("Usage: gsl_set_stream_handler(new_handler);");
2482     }
2483     {
2484       int res = SWIG_ConvertFunctionPtr(ST(0), (void**)(&arg1), SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_q_const__char__void);
2485       if (!SWIG_IsOK(res)) {
2486         SWIG_exception_fail(SWIG_ArgError(res), "in method '" "gsl_set_stream_handler" "', argument " "1"" of type '" "gsl_stream_handler_t *""'");
2487       }
2488     }
2489     result = (gsl_stream_handler_t *)gsl_set_stream_handler(arg1);
2490     ST(argvi) = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_q_const__char__void); argvi++ ;
2491 
2492     XSRETURN(argvi);
2493   fail:
2494 
2495     SWIG_croak_null();
2496   }
2497 }
2498 
2499 
XS(_wrap_gsl_set_stream)2500 XS(_wrap_gsl_set_stream) {
2501   {
2502     FILE *arg1 = (FILE *) 0 ;
2503     void *argp1 = 0 ;
2504     int res1 = 0 ;
2505     int argvi = 0;
2506     FILE *result = 0 ;
2507     dXSARGS;
2508 
2509     if ((items < 1) || (items > 1)) {
2510       SWIG_croak("Usage: gsl_set_stream(new_stream);");
2511     }
2512     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_FILE, 0 |  0 );
2513     if (!SWIG_IsOK(res1)) {
2514       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_set_stream" "', argument " "1"" of type '" "FILE *""'");
2515     }
2516     arg1 = (FILE *)(argp1);
2517     result = (FILE *)gsl_set_stream(arg1);
2518     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FILE, 0 | 0); argvi++ ;
2519 
2520     XSRETURN(argvi);
2521   fail:
2522 
2523     SWIG_croak_null();
2524   }
2525 }
2526 
2527 
XS(_wrap_gsl_function_struct_function_set)2528 XS(_wrap_gsl_function_struct_function_set) {
2529   {
2530     struct gsl_function_struct *arg1 = (struct gsl_function_struct *) 0 ;
2531     double (*arg2)(double,void *) = (double (*)(double,void *)) 0 ;
2532     void *argp1 = 0 ;
2533     int res1 = 0 ;
2534     int argvi = 0;
2535     dXSARGS;
2536 
2537     if ((items < 2) || (items > 2)) {
2538       SWIG_croak("Usage: gsl_function_struct_function_set(self,function);");
2539     }
2540     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_struct, 0 |  0 );
2541     if (!SWIG_IsOK(res1)) {
2542       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_struct_function_set" "', argument " "1"" of type '" "struct gsl_function_struct *""'");
2543     }
2544     arg1 = (struct gsl_function_struct *)(argp1);
2545     {
2546       int res = SWIG_ConvertFunctionPtr(ST(1), (void**)(&arg2), SWIGTYPE_p_f_double_p_void__double);
2547       if (!SWIG_IsOK(res)) {
2548         SWIG_exception_fail(SWIG_ArgError(res), "in method '" "gsl_function_struct_function_set" "', argument " "2"" of type '" "double (*)(double,void *)""'");
2549       }
2550     }
2551     if (arg1) (arg1)->function = arg2;
2552     ST(argvi) = &PL_sv_undef;
2553 
2554 
2555     XSRETURN(argvi);
2556   fail:
2557 
2558 
2559     SWIG_croak_null();
2560   }
2561 }
2562 
2563 
XS(_wrap_gsl_function_struct_function_get)2564 XS(_wrap_gsl_function_struct_function_get) {
2565   {
2566     struct gsl_function_struct *arg1 = (struct gsl_function_struct *) 0 ;
2567     void *argp1 = 0 ;
2568     int res1 = 0 ;
2569     int argvi = 0;
2570     double (*result)(double,void *) = 0 ;
2571     dXSARGS;
2572 
2573     if ((items < 1) || (items > 1)) {
2574       SWIG_croak("Usage: gsl_function_struct_function_get(self);");
2575     }
2576     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_struct, 0 |  0 );
2577     if (!SWIG_IsOK(res1)) {
2578       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_struct_function_get" "', argument " "1"" of type '" "struct gsl_function_struct *""'");
2579     }
2580     arg1 = (struct gsl_function_struct *)(argp1);
2581     result = (double (*)(double,void *)) ((arg1)->function);
2582     ST(argvi) = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_double_p_void__double); argvi++ ;
2583 
2584     XSRETURN(argvi);
2585   fail:
2586 
2587     SWIG_croak_null();
2588   }
2589 }
2590 
2591 
XS(_wrap_gsl_function_struct_params_set)2592 XS(_wrap_gsl_function_struct_params_set) {
2593   {
2594     struct gsl_function_struct *arg1 = (struct gsl_function_struct *) 0 ;
2595     void *arg2 = (void *) 0 ;
2596     void *argp1 = 0 ;
2597     int res1 = 0 ;
2598     int res2 ;
2599     int argvi = 0;
2600     dXSARGS;
2601 
2602     if ((items < 2) || (items > 2)) {
2603       SWIG_croak("Usage: gsl_function_struct_params_set(self,params);");
2604     }
2605     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_struct, 0 |  0 );
2606     if (!SWIG_IsOK(res1)) {
2607       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_struct_params_set" "', argument " "1"" of type '" "struct gsl_function_struct *""'");
2608     }
2609     arg1 = (struct gsl_function_struct *)(argp1);
2610     res2 = SWIG_ConvertPtr(ST(1),SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN);
2611     if (!SWIG_IsOK(res2)) {
2612       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_function_struct_params_set" "', argument " "2"" of type '" "void *""'");
2613     }
2614     if (arg1) (arg1)->params = arg2;
2615     ST(argvi) = &PL_sv_undef;
2616 
2617 
2618     XSRETURN(argvi);
2619   fail:
2620 
2621 
2622     SWIG_croak_null();
2623   }
2624 }
2625 
2626 
XS(_wrap_gsl_function_struct_params_get)2627 XS(_wrap_gsl_function_struct_params_get) {
2628   {
2629     struct gsl_function_struct *arg1 = (struct gsl_function_struct *) 0 ;
2630     void *argp1 = 0 ;
2631     int res1 = 0 ;
2632     int argvi = 0;
2633     void *result = 0 ;
2634     dXSARGS;
2635 
2636     if ((items < 1) || (items > 1)) {
2637       SWIG_croak("Usage: gsl_function_struct_params_get(self);");
2638     }
2639     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_struct, 0 |  0 );
2640     if (!SWIG_IsOK(res1)) {
2641       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_struct_params_get" "', argument " "1"" of type '" "struct gsl_function_struct *""'");
2642     }
2643     arg1 = (struct gsl_function_struct *)(argp1);
2644     result = (void *) ((arg1)->params);
2645     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0); argvi++ ;
2646 
2647     XSRETURN(argvi);
2648   fail:
2649 
2650     SWIG_croak_null();
2651   }
2652 }
2653 
2654 
XS(_wrap_new_gsl_function_struct)2655 XS(_wrap_new_gsl_function_struct) {
2656   {
2657     int argvi = 0;
2658     struct gsl_function_struct *result = 0 ;
2659     dXSARGS;
2660 
2661     if ((items < 0) || (items > 0)) {
2662       SWIG_croak("Usage: new_gsl_function_struct();");
2663     }
2664     result = (struct gsl_function_struct *)calloc(1, sizeof(struct gsl_function_struct));
2665     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_gsl_function_struct, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
2666     XSRETURN(argvi);
2667   fail:
2668     SWIG_croak_null();
2669   }
2670 }
2671 
2672 
XS(_wrap_delete_gsl_function_struct)2673 XS(_wrap_delete_gsl_function_struct) {
2674   {
2675     struct gsl_function_struct *arg1 = (struct gsl_function_struct *) 0 ;
2676     void *argp1 = 0 ;
2677     int res1 = 0 ;
2678     int argvi = 0;
2679     dXSARGS;
2680 
2681     if ((items < 1) || (items > 1)) {
2682       SWIG_croak("Usage: delete_gsl_function_struct(self);");
2683     }
2684     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_struct, SWIG_POINTER_DISOWN |  0 );
2685     if (!SWIG_IsOK(res1)) {
2686       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_gsl_function_struct" "', argument " "1"" of type '" "struct gsl_function_struct *""'");
2687     }
2688     arg1 = (struct gsl_function_struct *)(argp1);
2689     free((char *) arg1);
2690     ST(argvi) = &PL_sv_undef;
2691 
2692     XSRETURN(argvi);
2693   fail:
2694 
2695     SWIG_croak_null();
2696   }
2697 }
2698 
2699 
XS(_wrap_gsl_function_fdf_struct_f_set)2700 XS(_wrap_gsl_function_fdf_struct_f_set) {
2701   {
2702     struct gsl_function_fdf_struct *arg1 = (struct gsl_function_fdf_struct *) 0 ;
2703     double (*arg2)(double,void *) = (double (*)(double,void *)) 0 ;
2704     void *argp1 = 0 ;
2705     int res1 = 0 ;
2706     int argvi = 0;
2707     dXSARGS;
2708 
2709     if ((items < 2) || (items > 2)) {
2710       SWIG_croak("Usage: gsl_function_fdf_struct_f_set(self,f);");
2711     }
2712     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_fdf_struct, 0 |  0 );
2713     if (!SWIG_IsOK(res1)) {
2714       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_fdf_struct_f_set" "', argument " "1"" of type '" "struct gsl_function_fdf_struct *""'");
2715     }
2716     arg1 = (struct gsl_function_fdf_struct *)(argp1);
2717     {
2718       int res = SWIG_ConvertFunctionPtr(ST(1), (void**)(&arg2), SWIGTYPE_p_f_double_p_void__double);
2719       if (!SWIG_IsOK(res)) {
2720         SWIG_exception_fail(SWIG_ArgError(res), "in method '" "gsl_function_fdf_struct_f_set" "', argument " "2"" of type '" "double (*)(double,void *)""'");
2721       }
2722     }
2723     if (arg1) (arg1)->f = arg2;
2724     ST(argvi) = &PL_sv_undef;
2725 
2726 
2727     XSRETURN(argvi);
2728   fail:
2729 
2730 
2731     SWIG_croak_null();
2732   }
2733 }
2734 
2735 
XS(_wrap_gsl_function_fdf_struct_f_get)2736 XS(_wrap_gsl_function_fdf_struct_f_get) {
2737   {
2738     struct gsl_function_fdf_struct *arg1 = (struct gsl_function_fdf_struct *) 0 ;
2739     void *argp1 = 0 ;
2740     int res1 = 0 ;
2741     int argvi = 0;
2742     double (*result)(double,void *) = 0 ;
2743     dXSARGS;
2744 
2745     if ((items < 1) || (items > 1)) {
2746       SWIG_croak("Usage: gsl_function_fdf_struct_f_get(self);");
2747     }
2748     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_fdf_struct, 0 |  0 );
2749     if (!SWIG_IsOK(res1)) {
2750       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_fdf_struct_f_get" "', argument " "1"" of type '" "struct gsl_function_fdf_struct *""'");
2751     }
2752     arg1 = (struct gsl_function_fdf_struct *)(argp1);
2753     result = (double (*)(double,void *)) ((arg1)->f);
2754     ST(argvi) = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_double_p_void__double); argvi++ ;
2755 
2756     XSRETURN(argvi);
2757   fail:
2758 
2759     SWIG_croak_null();
2760   }
2761 }
2762 
2763 
XS(_wrap_gsl_function_fdf_struct_df_set)2764 XS(_wrap_gsl_function_fdf_struct_df_set) {
2765   {
2766     struct gsl_function_fdf_struct *arg1 = (struct gsl_function_fdf_struct *) 0 ;
2767     double (*arg2)(double,void *) = (double (*)(double,void *)) 0 ;
2768     void *argp1 = 0 ;
2769     int res1 = 0 ;
2770     int argvi = 0;
2771     dXSARGS;
2772 
2773     if ((items < 2) || (items > 2)) {
2774       SWIG_croak("Usage: gsl_function_fdf_struct_df_set(self,df);");
2775     }
2776     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_fdf_struct, 0 |  0 );
2777     if (!SWIG_IsOK(res1)) {
2778       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_fdf_struct_df_set" "', argument " "1"" of type '" "struct gsl_function_fdf_struct *""'");
2779     }
2780     arg1 = (struct gsl_function_fdf_struct *)(argp1);
2781     {
2782       int res = SWIG_ConvertFunctionPtr(ST(1), (void**)(&arg2), SWIGTYPE_p_f_double_p_void__double);
2783       if (!SWIG_IsOK(res)) {
2784         SWIG_exception_fail(SWIG_ArgError(res), "in method '" "gsl_function_fdf_struct_df_set" "', argument " "2"" of type '" "double (*)(double,void *)""'");
2785       }
2786     }
2787     if (arg1) (arg1)->df = arg2;
2788     ST(argvi) = &PL_sv_undef;
2789 
2790 
2791     XSRETURN(argvi);
2792   fail:
2793 
2794 
2795     SWIG_croak_null();
2796   }
2797 }
2798 
2799 
XS(_wrap_gsl_function_fdf_struct_df_get)2800 XS(_wrap_gsl_function_fdf_struct_df_get) {
2801   {
2802     struct gsl_function_fdf_struct *arg1 = (struct gsl_function_fdf_struct *) 0 ;
2803     void *argp1 = 0 ;
2804     int res1 = 0 ;
2805     int argvi = 0;
2806     double (*result)(double,void *) = 0 ;
2807     dXSARGS;
2808 
2809     if ((items < 1) || (items > 1)) {
2810       SWIG_croak("Usage: gsl_function_fdf_struct_df_get(self);");
2811     }
2812     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_fdf_struct, 0 |  0 );
2813     if (!SWIG_IsOK(res1)) {
2814       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_fdf_struct_df_get" "', argument " "1"" of type '" "struct gsl_function_fdf_struct *""'");
2815     }
2816     arg1 = (struct gsl_function_fdf_struct *)(argp1);
2817     result = (double (*)(double,void *)) ((arg1)->df);
2818     ST(argvi) = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_double_p_void__double); argvi++ ;
2819 
2820     XSRETURN(argvi);
2821   fail:
2822 
2823     SWIG_croak_null();
2824   }
2825 }
2826 
2827 
XS(_wrap_gsl_function_fdf_struct_fdf_set)2828 XS(_wrap_gsl_function_fdf_struct_fdf_set) {
2829   {
2830     struct gsl_function_fdf_struct *arg1 = (struct gsl_function_fdf_struct *) 0 ;
2831     void (*arg2)(double,void *,double *,double *) = (void (*)(double,void *,double *,double *)) 0 ;
2832     void *argp1 = 0 ;
2833     int res1 = 0 ;
2834     int argvi = 0;
2835     dXSARGS;
2836 
2837     if ((items < 2) || (items > 2)) {
2838       SWIG_croak("Usage: gsl_function_fdf_struct_fdf_set(self,fdf);");
2839     }
2840     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_fdf_struct, 0 |  0 );
2841     if (!SWIG_IsOK(res1)) {
2842       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_fdf_struct_fdf_set" "', argument " "1"" of type '" "struct gsl_function_fdf_struct *""'");
2843     }
2844     arg1 = (struct gsl_function_fdf_struct *)(argp1);
2845     {
2846       int res = SWIG_ConvertFunctionPtr(ST(1), (void**)(&arg2), SWIGTYPE_p_f_double_p_void_p_double_p_double__void);
2847       if (!SWIG_IsOK(res)) {
2848         SWIG_exception_fail(SWIG_ArgError(res), "in method '" "gsl_function_fdf_struct_fdf_set" "', argument " "2"" of type '" "void (*)(double,void *,double *,double *)""'");
2849       }
2850     }
2851     if (arg1) (arg1)->fdf = arg2;
2852     ST(argvi) = &PL_sv_undef;
2853 
2854 
2855     XSRETURN(argvi);
2856   fail:
2857 
2858 
2859     SWIG_croak_null();
2860   }
2861 }
2862 
2863 
XS(_wrap_gsl_function_fdf_struct_fdf_get)2864 XS(_wrap_gsl_function_fdf_struct_fdf_get) {
2865   {
2866     struct gsl_function_fdf_struct *arg1 = (struct gsl_function_fdf_struct *) 0 ;
2867     void *argp1 = 0 ;
2868     int res1 = 0 ;
2869     int argvi = 0;
2870     void (*result)(double,void *,double *,double *) = 0 ;
2871     dXSARGS;
2872 
2873     if ((items < 1) || (items > 1)) {
2874       SWIG_croak("Usage: gsl_function_fdf_struct_fdf_get(self);");
2875     }
2876     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_fdf_struct, 0 |  0 );
2877     if (!SWIG_IsOK(res1)) {
2878       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_fdf_struct_fdf_get" "', argument " "1"" of type '" "struct gsl_function_fdf_struct *""'");
2879     }
2880     arg1 = (struct gsl_function_fdf_struct *)(argp1);
2881     result = (void (*)(double,void *,double *,double *)) ((arg1)->fdf);
2882     ST(argvi) = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_double_p_void_p_double_p_double__void); argvi++ ;
2883 
2884     XSRETURN(argvi);
2885   fail:
2886 
2887     SWIG_croak_null();
2888   }
2889 }
2890 
2891 
XS(_wrap_gsl_function_fdf_struct_params_set)2892 XS(_wrap_gsl_function_fdf_struct_params_set) {
2893   {
2894     struct gsl_function_fdf_struct *arg1 = (struct gsl_function_fdf_struct *) 0 ;
2895     void *arg2 = (void *) 0 ;
2896     void *argp1 = 0 ;
2897     int res1 = 0 ;
2898     int res2 ;
2899     int argvi = 0;
2900     dXSARGS;
2901 
2902     if ((items < 2) || (items > 2)) {
2903       SWIG_croak("Usage: gsl_function_fdf_struct_params_set(self,params);");
2904     }
2905     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_fdf_struct, 0 |  0 );
2906     if (!SWIG_IsOK(res1)) {
2907       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_fdf_struct_params_set" "', argument " "1"" of type '" "struct gsl_function_fdf_struct *""'");
2908     }
2909     arg1 = (struct gsl_function_fdf_struct *)(argp1);
2910     res2 = SWIG_ConvertPtr(ST(1),SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN);
2911     if (!SWIG_IsOK(res2)) {
2912       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_function_fdf_struct_params_set" "', argument " "2"" of type '" "void *""'");
2913     }
2914     if (arg1) (arg1)->params = arg2;
2915     ST(argvi) = &PL_sv_undef;
2916 
2917 
2918     XSRETURN(argvi);
2919   fail:
2920 
2921 
2922     SWIG_croak_null();
2923   }
2924 }
2925 
2926 
XS(_wrap_gsl_function_fdf_struct_params_get)2927 XS(_wrap_gsl_function_fdf_struct_params_get) {
2928   {
2929     struct gsl_function_fdf_struct *arg1 = (struct gsl_function_fdf_struct *) 0 ;
2930     void *argp1 = 0 ;
2931     int res1 = 0 ;
2932     int argvi = 0;
2933     void *result = 0 ;
2934     dXSARGS;
2935 
2936     if ((items < 1) || (items > 1)) {
2937       SWIG_croak("Usage: gsl_function_fdf_struct_params_get(self);");
2938     }
2939     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_fdf_struct, 0 |  0 );
2940     if (!SWIG_IsOK(res1)) {
2941       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_fdf_struct_params_get" "', argument " "1"" of type '" "struct gsl_function_fdf_struct *""'");
2942     }
2943     arg1 = (struct gsl_function_fdf_struct *)(argp1);
2944     result = (void *) ((arg1)->params);
2945     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0); argvi++ ;
2946 
2947     XSRETURN(argvi);
2948   fail:
2949 
2950     SWIG_croak_null();
2951   }
2952 }
2953 
2954 
XS(_wrap_new_gsl_function_fdf_struct)2955 XS(_wrap_new_gsl_function_fdf_struct) {
2956   {
2957     int argvi = 0;
2958     struct gsl_function_fdf_struct *result = 0 ;
2959     dXSARGS;
2960 
2961     if ((items < 0) || (items > 0)) {
2962       SWIG_croak("Usage: new_gsl_function_fdf_struct();");
2963     }
2964     result = (struct gsl_function_fdf_struct *)calloc(1, sizeof(struct gsl_function_fdf_struct));
2965     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_gsl_function_fdf_struct, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
2966     XSRETURN(argvi);
2967   fail:
2968     SWIG_croak_null();
2969   }
2970 }
2971 
2972 
XS(_wrap_delete_gsl_function_fdf_struct)2973 XS(_wrap_delete_gsl_function_fdf_struct) {
2974   {
2975     struct gsl_function_fdf_struct *arg1 = (struct gsl_function_fdf_struct *) 0 ;
2976     void *argp1 = 0 ;
2977     int res1 = 0 ;
2978     int argvi = 0;
2979     dXSARGS;
2980 
2981     if ((items < 1) || (items > 1)) {
2982       SWIG_croak("Usage: delete_gsl_function_fdf_struct(self);");
2983     }
2984     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_fdf_struct, SWIG_POINTER_DISOWN |  0 );
2985     if (!SWIG_IsOK(res1)) {
2986       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_gsl_function_fdf_struct" "', argument " "1"" of type '" "struct gsl_function_fdf_struct *""'");
2987     }
2988     arg1 = (struct gsl_function_fdf_struct *)(argp1);
2989     free((char *) arg1);
2990     ST(argvi) = &PL_sv_undef;
2991 
2992     XSRETURN(argvi);
2993   fail:
2994 
2995     SWIG_croak_null();
2996   }
2997 }
2998 
2999 
XS(_wrap_gsl_function_vec_struct_function_set)3000 XS(_wrap_gsl_function_vec_struct_function_set) {
3001   {
3002     struct gsl_function_vec_struct *arg1 = (struct gsl_function_vec_struct *) 0 ;
3003     int (*arg2)(double,double [],void *) = (int (*)(double,double [],void *)) 0 ;
3004     void *argp1 = 0 ;
3005     int res1 = 0 ;
3006     int argvi = 0;
3007     dXSARGS;
3008 
3009     if ((items < 2) || (items > 2)) {
3010       SWIG_croak("Usage: gsl_function_vec_struct_function_set(self,function);");
3011     }
3012     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_vec_struct, 0 |  0 );
3013     if (!SWIG_IsOK(res1)) {
3014       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_vec_struct_function_set" "', argument " "1"" of type '" "struct gsl_function_vec_struct *""'");
3015     }
3016     arg1 = (struct gsl_function_vec_struct *)(argp1);
3017     {
3018       int res = SWIG_ConvertFunctionPtr(ST(1), (void**)(&arg2), SWIGTYPE_p_f_double_a___double_p_void__int);
3019       if (!SWIG_IsOK(res)) {
3020         SWIG_exception_fail(SWIG_ArgError(res), "in method '" "gsl_function_vec_struct_function_set" "', argument " "2"" of type '" "int (*)(double,double [],void *)""'");
3021       }
3022     }
3023     if (arg1) (arg1)->function = arg2;
3024     ST(argvi) = &PL_sv_undef;
3025 
3026 
3027     XSRETURN(argvi);
3028   fail:
3029 
3030 
3031     SWIG_croak_null();
3032   }
3033 }
3034 
3035 
XS(_wrap_gsl_function_vec_struct_function_get)3036 XS(_wrap_gsl_function_vec_struct_function_get) {
3037   {
3038     struct gsl_function_vec_struct *arg1 = (struct gsl_function_vec_struct *) 0 ;
3039     void *argp1 = 0 ;
3040     int res1 = 0 ;
3041     int argvi = 0;
3042     int (*result)(double,double [],void *) = 0 ;
3043     dXSARGS;
3044 
3045     if ((items < 1) || (items > 1)) {
3046       SWIG_croak("Usage: gsl_function_vec_struct_function_get(self);");
3047     }
3048     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_vec_struct, 0 |  0 );
3049     if (!SWIG_IsOK(res1)) {
3050       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_vec_struct_function_get" "', argument " "1"" of type '" "struct gsl_function_vec_struct *""'");
3051     }
3052     arg1 = (struct gsl_function_vec_struct *)(argp1);
3053     result = (int (*)(double,double [],void *)) ((arg1)->function);
3054     ST(argvi) = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_double_a___double_p_void__int); argvi++ ;
3055 
3056     XSRETURN(argvi);
3057   fail:
3058 
3059     SWIG_croak_null();
3060   }
3061 }
3062 
3063 
XS(_wrap_gsl_function_vec_struct_params_set)3064 XS(_wrap_gsl_function_vec_struct_params_set) {
3065   {
3066     struct gsl_function_vec_struct *arg1 = (struct gsl_function_vec_struct *) 0 ;
3067     void *arg2 = (void *) 0 ;
3068     void *argp1 = 0 ;
3069     int res1 = 0 ;
3070     int res2 ;
3071     int argvi = 0;
3072     dXSARGS;
3073 
3074     if ((items < 2) || (items > 2)) {
3075       SWIG_croak("Usage: gsl_function_vec_struct_params_set(self,params);");
3076     }
3077     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_vec_struct, 0 |  0 );
3078     if (!SWIG_IsOK(res1)) {
3079       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_vec_struct_params_set" "', argument " "1"" of type '" "struct gsl_function_vec_struct *""'");
3080     }
3081     arg1 = (struct gsl_function_vec_struct *)(argp1);
3082     res2 = SWIG_ConvertPtr(ST(1),SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN);
3083     if (!SWIG_IsOK(res2)) {
3084       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_function_vec_struct_params_set" "', argument " "2"" of type '" "void *""'");
3085     }
3086     if (arg1) (arg1)->params = arg2;
3087     ST(argvi) = &PL_sv_undef;
3088 
3089 
3090     XSRETURN(argvi);
3091   fail:
3092 
3093 
3094     SWIG_croak_null();
3095   }
3096 }
3097 
3098 
XS(_wrap_gsl_function_vec_struct_params_get)3099 XS(_wrap_gsl_function_vec_struct_params_get) {
3100   {
3101     struct gsl_function_vec_struct *arg1 = (struct gsl_function_vec_struct *) 0 ;
3102     void *argp1 = 0 ;
3103     int res1 = 0 ;
3104     int argvi = 0;
3105     void *result = 0 ;
3106     dXSARGS;
3107 
3108     if ((items < 1) || (items > 1)) {
3109       SWIG_croak("Usage: gsl_function_vec_struct_params_get(self);");
3110     }
3111     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_vec_struct, 0 |  0 );
3112     if (!SWIG_IsOK(res1)) {
3113       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_function_vec_struct_params_get" "', argument " "1"" of type '" "struct gsl_function_vec_struct *""'");
3114     }
3115     arg1 = (struct gsl_function_vec_struct *)(argp1);
3116     result = (void *) ((arg1)->params);
3117     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0); argvi++ ;
3118 
3119     XSRETURN(argvi);
3120   fail:
3121 
3122     SWIG_croak_null();
3123   }
3124 }
3125 
3126 
XS(_wrap_new_gsl_function_vec_struct)3127 XS(_wrap_new_gsl_function_vec_struct) {
3128   {
3129     int argvi = 0;
3130     struct gsl_function_vec_struct *result = 0 ;
3131     dXSARGS;
3132 
3133     if ((items < 0) || (items > 0)) {
3134       SWIG_croak("Usage: new_gsl_function_vec_struct();");
3135     }
3136     result = (struct gsl_function_vec_struct *)calloc(1, sizeof(struct gsl_function_vec_struct));
3137     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_gsl_function_vec_struct, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
3138     XSRETURN(argvi);
3139   fail:
3140     SWIG_croak_null();
3141   }
3142 }
3143 
3144 
XS(_wrap_delete_gsl_function_vec_struct)3145 XS(_wrap_delete_gsl_function_vec_struct) {
3146   {
3147     struct gsl_function_vec_struct *arg1 = (struct gsl_function_vec_struct *) 0 ;
3148     void *argp1 = 0 ;
3149     int res1 = 0 ;
3150     int argvi = 0;
3151     dXSARGS;
3152 
3153     if ((items < 1) || (items > 1)) {
3154       SWIG_croak("Usage: delete_gsl_function_vec_struct(self);");
3155     }
3156     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_function_vec_struct, SWIG_POINTER_DISOWN |  0 );
3157     if (!SWIG_IsOK(res1)) {
3158       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_gsl_function_vec_struct" "', argument " "1"" of type '" "struct gsl_function_vec_struct *""'");
3159     }
3160     arg1 = (struct gsl_function_vec_struct *)(argp1);
3161     free((char *) arg1);
3162     ST(argvi) = &PL_sv_undef;
3163 
3164     XSRETURN(argvi);
3165   fail:
3166 
3167     SWIG_croak_null();
3168   }
3169 }
3170 
3171 
XS(_wrap_gsl_bspline_workspace_k_set)3172 XS(_wrap_gsl_bspline_workspace_k_set) {
3173   {
3174     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3175     size_t arg2 ;
3176     void *argp1 = 0 ;
3177     int res1 = 0 ;
3178     size_t val2 ;
3179     int ecode2 = 0 ;
3180     int argvi = 0;
3181     dXSARGS;
3182 
3183     if ((items < 2) || (items > 2)) {
3184       SWIG_croak("Usage: gsl_bspline_workspace_k_set(self,k);");
3185     }
3186     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3187     if (!SWIG_IsOK(res1)) {
3188       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_k_set" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3189     }
3190     arg1 = (gsl_bspline_workspace *)(argp1);
3191     ecode2 = SWIG_AsVal_size_t SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
3192     if (!SWIG_IsOK(ecode2)) {
3193       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "gsl_bspline_workspace_k_set" "', argument " "2"" of type '" "size_t""'");
3194     }
3195     arg2 = (size_t)(val2);
3196     if (arg1) (arg1)->k = arg2;
3197     ST(argvi) = &PL_sv_undef;
3198 
3199 
3200     XSRETURN(argvi);
3201   fail:
3202 
3203 
3204     SWIG_croak_null();
3205   }
3206 }
3207 
3208 
XS(_wrap_gsl_bspline_workspace_k_get)3209 XS(_wrap_gsl_bspline_workspace_k_get) {
3210   {
3211     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3212     void *argp1 = 0 ;
3213     int res1 = 0 ;
3214     int argvi = 0;
3215     size_t result;
3216     dXSARGS;
3217 
3218     if ((items < 1) || (items > 1)) {
3219       SWIG_croak("Usage: gsl_bspline_workspace_k_get(self);");
3220     }
3221     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3222     if (!SWIG_IsOK(res1)) {
3223       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_k_get" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3224     }
3225     arg1 = (gsl_bspline_workspace *)(argp1);
3226     result =  ((arg1)->k);
3227     ST(argvi) = SWIG_From_size_t  SWIG_PERL_CALL_ARGS_1((size_t)(result)); argvi++ ;
3228 
3229     XSRETURN(argvi);
3230   fail:
3231 
3232     SWIG_croak_null();
3233   }
3234 }
3235 
3236 
XS(_wrap_gsl_bspline_workspace_km1_set)3237 XS(_wrap_gsl_bspline_workspace_km1_set) {
3238   {
3239     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3240     size_t arg2 ;
3241     void *argp1 = 0 ;
3242     int res1 = 0 ;
3243     size_t val2 ;
3244     int ecode2 = 0 ;
3245     int argvi = 0;
3246     dXSARGS;
3247 
3248     if ((items < 2) || (items > 2)) {
3249       SWIG_croak("Usage: gsl_bspline_workspace_km1_set(self,km1);");
3250     }
3251     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3252     if (!SWIG_IsOK(res1)) {
3253       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_km1_set" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3254     }
3255     arg1 = (gsl_bspline_workspace *)(argp1);
3256     ecode2 = SWIG_AsVal_size_t SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
3257     if (!SWIG_IsOK(ecode2)) {
3258       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "gsl_bspline_workspace_km1_set" "', argument " "2"" of type '" "size_t""'");
3259     }
3260     arg2 = (size_t)(val2);
3261     if (arg1) (arg1)->km1 = arg2;
3262     ST(argvi) = &PL_sv_undef;
3263 
3264 
3265     XSRETURN(argvi);
3266   fail:
3267 
3268 
3269     SWIG_croak_null();
3270   }
3271 }
3272 
3273 
XS(_wrap_gsl_bspline_workspace_km1_get)3274 XS(_wrap_gsl_bspline_workspace_km1_get) {
3275   {
3276     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3277     void *argp1 = 0 ;
3278     int res1 = 0 ;
3279     int argvi = 0;
3280     size_t result;
3281     dXSARGS;
3282 
3283     if ((items < 1) || (items > 1)) {
3284       SWIG_croak("Usage: gsl_bspline_workspace_km1_get(self);");
3285     }
3286     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3287     if (!SWIG_IsOK(res1)) {
3288       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_km1_get" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3289     }
3290     arg1 = (gsl_bspline_workspace *)(argp1);
3291     result =  ((arg1)->km1);
3292     ST(argvi) = SWIG_From_size_t  SWIG_PERL_CALL_ARGS_1((size_t)(result)); argvi++ ;
3293 
3294     XSRETURN(argvi);
3295   fail:
3296 
3297     SWIG_croak_null();
3298   }
3299 }
3300 
3301 
XS(_wrap_gsl_bspline_workspace_l_set)3302 XS(_wrap_gsl_bspline_workspace_l_set) {
3303   {
3304     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3305     size_t arg2 ;
3306     void *argp1 = 0 ;
3307     int res1 = 0 ;
3308     size_t val2 ;
3309     int ecode2 = 0 ;
3310     int argvi = 0;
3311     dXSARGS;
3312 
3313     if ((items < 2) || (items > 2)) {
3314       SWIG_croak("Usage: gsl_bspline_workspace_l_set(self,l);");
3315     }
3316     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3317     if (!SWIG_IsOK(res1)) {
3318       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_l_set" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3319     }
3320     arg1 = (gsl_bspline_workspace *)(argp1);
3321     ecode2 = SWIG_AsVal_size_t SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
3322     if (!SWIG_IsOK(ecode2)) {
3323       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "gsl_bspline_workspace_l_set" "', argument " "2"" of type '" "size_t""'");
3324     }
3325     arg2 = (size_t)(val2);
3326     if (arg1) (arg1)->l = arg2;
3327     ST(argvi) = &PL_sv_undef;
3328 
3329 
3330     XSRETURN(argvi);
3331   fail:
3332 
3333 
3334     SWIG_croak_null();
3335   }
3336 }
3337 
3338 
XS(_wrap_gsl_bspline_workspace_l_get)3339 XS(_wrap_gsl_bspline_workspace_l_get) {
3340   {
3341     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3342     void *argp1 = 0 ;
3343     int res1 = 0 ;
3344     int argvi = 0;
3345     size_t result;
3346     dXSARGS;
3347 
3348     if ((items < 1) || (items > 1)) {
3349       SWIG_croak("Usage: gsl_bspline_workspace_l_get(self);");
3350     }
3351     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3352     if (!SWIG_IsOK(res1)) {
3353       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_l_get" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3354     }
3355     arg1 = (gsl_bspline_workspace *)(argp1);
3356     result =  ((arg1)->l);
3357     ST(argvi) = SWIG_From_size_t  SWIG_PERL_CALL_ARGS_1((size_t)(result)); argvi++ ;
3358 
3359     XSRETURN(argvi);
3360   fail:
3361 
3362     SWIG_croak_null();
3363   }
3364 }
3365 
3366 
XS(_wrap_gsl_bspline_workspace_nbreak_set)3367 XS(_wrap_gsl_bspline_workspace_nbreak_set) {
3368   {
3369     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3370     size_t arg2 ;
3371     void *argp1 = 0 ;
3372     int res1 = 0 ;
3373     size_t val2 ;
3374     int ecode2 = 0 ;
3375     int argvi = 0;
3376     dXSARGS;
3377 
3378     if ((items < 2) || (items > 2)) {
3379       SWIG_croak("Usage: gsl_bspline_workspace_nbreak_set(self,nbreak);");
3380     }
3381     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3382     if (!SWIG_IsOK(res1)) {
3383       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_nbreak_set" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3384     }
3385     arg1 = (gsl_bspline_workspace *)(argp1);
3386     ecode2 = SWIG_AsVal_size_t SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
3387     if (!SWIG_IsOK(ecode2)) {
3388       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "gsl_bspline_workspace_nbreak_set" "', argument " "2"" of type '" "size_t""'");
3389     }
3390     arg2 = (size_t)(val2);
3391     if (arg1) (arg1)->nbreak = arg2;
3392     ST(argvi) = &PL_sv_undef;
3393 
3394 
3395     XSRETURN(argvi);
3396   fail:
3397 
3398 
3399     SWIG_croak_null();
3400   }
3401 }
3402 
3403 
XS(_wrap_gsl_bspline_workspace_nbreak_get)3404 XS(_wrap_gsl_bspline_workspace_nbreak_get) {
3405   {
3406     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3407     void *argp1 = 0 ;
3408     int res1 = 0 ;
3409     int argvi = 0;
3410     size_t result;
3411     dXSARGS;
3412 
3413     if ((items < 1) || (items > 1)) {
3414       SWIG_croak("Usage: gsl_bspline_workspace_nbreak_get(self);");
3415     }
3416     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3417     if (!SWIG_IsOK(res1)) {
3418       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_nbreak_get" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3419     }
3420     arg1 = (gsl_bspline_workspace *)(argp1);
3421     result =  ((arg1)->nbreak);
3422     ST(argvi) = SWIG_From_size_t  SWIG_PERL_CALL_ARGS_1((size_t)(result)); argvi++ ;
3423 
3424     XSRETURN(argvi);
3425   fail:
3426 
3427     SWIG_croak_null();
3428   }
3429 }
3430 
3431 
XS(_wrap_gsl_bspline_workspace_n_set)3432 XS(_wrap_gsl_bspline_workspace_n_set) {
3433   {
3434     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3435     size_t arg2 ;
3436     void *argp1 = 0 ;
3437     int res1 = 0 ;
3438     size_t val2 ;
3439     int ecode2 = 0 ;
3440     int argvi = 0;
3441     dXSARGS;
3442 
3443     if ((items < 2) || (items > 2)) {
3444       SWIG_croak("Usage: gsl_bspline_workspace_n_set(self,n);");
3445     }
3446     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3447     if (!SWIG_IsOK(res1)) {
3448       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_n_set" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3449     }
3450     arg1 = (gsl_bspline_workspace *)(argp1);
3451     ecode2 = SWIG_AsVal_size_t SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
3452     if (!SWIG_IsOK(ecode2)) {
3453       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "gsl_bspline_workspace_n_set" "', argument " "2"" of type '" "size_t""'");
3454     }
3455     arg2 = (size_t)(val2);
3456     if (arg1) (arg1)->n = arg2;
3457     ST(argvi) = &PL_sv_undef;
3458 
3459 
3460     XSRETURN(argvi);
3461   fail:
3462 
3463 
3464     SWIG_croak_null();
3465   }
3466 }
3467 
3468 
XS(_wrap_gsl_bspline_workspace_n_get)3469 XS(_wrap_gsl_bspline_workspace_n_get) {
3470   {
3471     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3472     void *argp1 = 0 ;
3473     int res1 = 0 ;
3474     int argvi = 0;
3475     size_t result;
3476     dXSARGS;
3477 
3478     if ((items < 1) || (items > 1)) {
3479       SWIG_croak("Usage: gsl_bspline_workspace_n_get(self);");
3480     }
3481     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3482     if (!SWIG_IsOK(res1)) {
3483       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_n_get" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3484     }
3485     arg1 = (gsl_bspline_workspace *)(argp1);
3486     result =  ((arg1)->n);
3487     ST(argvi) = SWIG_From_size_t  SWIG_PERL_CALL_ARGS_1((size_t)(result)); argvi++ ;
3488 
3489     XSRETURN(argvi);
3490   fail:
3491 
3492     SWIG_croak_null();
3493   }
3494 }
3495 
3496 
XS(_wrap_gsl_bspline_workspace_knots_set)3497 XS(_wrap_gsl_bspline_workspace_knots_set) {
3498   {
3499     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3500     gsl_vector *arg2 = (gsl_vector *) 0 ;
3501     void *argp1 = 0 ;
3502     int res1 = 0 ;
3503     void *argp2 = 0 ;
3504     int res2 = 0 ;
3505     int argvi = 0;
3506     dXSARGS;
3507 
3508     if ((items < 2) || (items > 2)) {
3509       SWIG_croak("Usage: gsl_bspline_workspace_knots_set(self,knots);");
3510     }
3511     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3512     if (!SWIG_IsOK(res1)) {
3513       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_knots_set" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3514     }
3515     arg1 = (gsl_bspline_workspace *)(argp1);
3516     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_gsl_vector, SWIG_POINTER_DISOWN |  0 );
3517     if (!SWIG_IsOK(res2)) {
3518       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_bspline_workspace_knots_set" "', argument " "2"" of type '" "gsl_vector *""'");
3519     }
3520     arg2 = (gsl_vector *)(argp2);
3521     if (arg1) (arg1)->knots = arg2;
3522     ST(argvi) = &PL_sv_undef;
3523 
3524 
3525     XSRETURN(argvi);
3526   fail:
3527 
3528 
3529     SWIG_croak_null();
3530   }
3531 }
3532 
3533 
XS(_wrap_gsl_bspline_workspace_knots_get)3534 XS(_wrap_gsl_bspline_workspace_knots_get) {
3535   {
3536     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3537     void *argp1 = 0 ;
3538     int res1 = 0 ;
3539     int argvi = 0;
3540     gsl_vector *result = 0 ;
3541     dXSARGS;
3542 
3543     if ((items < 1) || (items > 1)) {
3544       SWIG_croak("Usage: gsl_bspline_workspace_knots_get(self);");
3545     }
3546     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3547     if (!SWIG_IsOK(res1)) {
3548       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_knots_get" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3549     }
3550     arg1 = (gsl_bspline_workspace *)(argp1);
3551     result = (gsl_vector *) ((arg1)->knots);
3552     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_gsl_vector, 0 | 0); argvi++ ;
3553 
3554     XSRETURN(argvi);
3555   fail:
3556 
3557     SWIG_croak_null();
3558   }
3559 }
3560 
3561 
XS(_wrap_gsl_bspline_workspace_deltal_set)3562 XS(_wrap_gsl_bspline_workspace_deltal_set) {
3563   {
3564     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3565     gsl_vector *arg2 = (gsl_vector *) 0 ;
3566     void *argp1 = 0 ;
3567     int res1 = 0 ;
3568     void *argp2 = 0 ;
3569     int res2 = 0 ;
3570     int argvi = 0;
3571     dXSARGS;
3572 
3573     if ((items < 2) || (items > 2)) {
3574       SWIG_croak("Usage: gsl_bspline_workspace_deltal_set(self,deltal);");
3575     }
3576     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3577     if (!SWIG_IsOK(res1)) {
3578       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_deltal_set" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3579     }
3580     arg1 = (gsl_bspline_workspace *)(argp1);
3581     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_gsl_vector, SWIG_POINTER_DISOWN |  0 );
3582     if (!SWIG_IsOK(res2)) {
3583       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_bspline_workspace_deltal_set" "', argument " "2"" of type '" "gsl_vector *""'");
3584     }
3585     arg2 = (gsl_vector *)(argp2);
3586     if (arg1) (arg1)->deltal = arg2;
3587     ST(argvi) = &PL_sv_undef;
3588 
3589 
3590     XSRETURN(argvi);
3591   fail:
3592 
3593 
3594     SWIG_croak_null();
3595   }
3596 }
3597 
3598 
XS(_wrap_gsl_bspline_workspace_deltal_get)3599 XS(_wrap_gsl_bspline_workspace_deltal_get) {
3600   {
3601     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3602     void *argp1 = 0 ;
3603     int res1 = 0 ;
3604     int argvi = 0;
3605     gsl_vector *result = 0 ;
3606     dXSARGS;
3607 
3608     if ((items < 1) || (items > 1)) {
3609       SWIG_croak("Usage: gsl_bspline_workspace_deltal_get(self);");
3610     }
3611     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3612     if (!SWIG_IsOK(res1)) {
3613       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_deltal_get" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3614     }
3615     arg1 = (gsl_bspline_workspace *)(argp1);
3616     result = (gsl_vector *) ((arg1)->deltal);
3617     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_gsl_vector, 0 | 0); argvi++ ;
3618 
3619     XSRETURN(argvi);
3620   fail:
3621 
3622     SWIG_croak_null();
3623   }
3624 }
3625 
3626 
XS(_wrap_gsl_bspline_workspace_deltar_set)3627 XS(_wrap_gsl_bspline_workspace_deltar_set) {
3628   {
3629     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3630     gsl_vector *arg2 = (gsl_vector *) 0 ;
3631     void *argp1 = 0 ;
3632     int res1 = 0 ;
3633     void *argp2 = 0 ;
3634     int res2 = 0 ;
3635     int argvi = 0;
3636     dXSARGS;
3637 
3638     if ((items < 2) || (items > 2)) {
3639       SWIG_croak("Usage: gsl_bspline_workspace_deltar_set(self,deltar);");
3640     }
3641     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3642     if (!SWIG_IsOK(res1)) {
3643       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_deltar_set" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3644     }
3645     arg1 = (gsl_bspline_workspace *)(argp1);
3646     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_gsl_vector, SWIG_POINTER_DISOWN |  0 );
3647     if (!SWIG_IsOK(res2)) {
3648       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_bspline_workspace_deltar_set" "', argument " "2"" of type '" "gsl_vector *""'");
3649     }
3650     arg2 = (gsl_vector *)(argp2);
3651     if (arg1) (arg1)->deltar = arg2;
3652     ST(argvi) = &PL_sv_undef;
3653 
3654 
3655     XSRETURN(argvi);
3656   fail:
3657 
3658 
3659     SWIG_croak_null();
3660   }
3661 }
3662 
3663 
XS(_wrap_gsl_bspline_workspace_deltar_get)3664 XS(_wrap_gsl_bspline_workspace_deltar_get) {
3665   {
3666     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3667     void *argp1 = 0 ;
3668     int res1 = 0 ;
3669     int argvi = 0;
3670     gsl_vector *result = 0 ;
3671     dXSARGS;
3672 
3673     if ((items < 1) || (items > 1)) {
3674       SWIG_croak("Usage: gsl_bspline_workspace_deltar_get(self);");
3675     }
3676     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3677     if (!SWIG_IsOK(res1)) {
3678       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_deltar_get" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3679     }
3680     arg1 = (gsl_bspline_workspace *)(argp1);
3681     result = (gsl_vector *) ((arg1)->deltar);
3682     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_gsl_vector, 0 | 0); argvi++ ;
3683 
3684     XSRETURN(argvi);
3685   fail:
3686 
3687     SWIG_croak_null();
3688   }
3689 }
3690 
3691 
XS(_wrap_gsl_bspline_workspace_B_set)3692 XS(_wrap_gsl_bspline_workspace_B_set) {
3693   {
3694     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3695     gsl_vector *arg2 = (gsl_vector *) 0 ;
3696     void *argp1 = 0 ;
3697     int res1 = 0 ;
3698     void *argp2 = 0 ;
3699     int res2 = 0 ;
3700     int argvi = 0;
3701     dXSARGS;
3702 
3703     if ((items < 2) || (items > 2)) {
3704       SWIG_croak("Usage: gsl_bspline_workspace_B_set(self,B);");
3705     }
3706     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3707     if (!SWIG_IsOK(res1)) {
3708       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_B_set" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3709     }
3710     arg1 = (gsl_bspline_workspace *)(argp1);
3711     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_gsl_vector, SWIG_POINTER_DISOWN |  0 );
3712     if (!SWIG_IsOK(res2)) {
3713       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_bspline_workspace_B_set" "', argument " "2"" of type '" "gsl_vector *""'");
3714     }
3715     arg2 = (gsl_vector *)(argp2);
3716     if (arg1) (arg1)->B = arg2;
3717     ST(argvi) = &PL_sv_undef;
3718 
3719 
3720     XSRETURN(argvi);
3721   fail:
3722 
3723 
3724     SWIG_croak_null();
3725   }
3726 }
3727 
3728 
XS(_wrap_gsl_bspline_workspace_B_get)3729 XS(_wrap_gsl_bspline_workspace_B_get) {
3730   {
3731     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3732     void *argp1 = 0 ;
3733     int res1 = 0 ;
3734     int argvi = 0;
3735     gsl_vector *result = 0 ;
3736     dXSARGS;
3737 
3738     if ((items < 1) || (items > 1)) {
3739       SWIG_croak("Usage: gsl_bspline_workspace_B_get(self);");
3740     }
3741     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3742     if (!SWIG_IsOK(res1)) {
3743       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_B_get" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3744     }
3745     arg1 = (gsl_bspline_workspace *)(argp1);
3746     result = (gsl_vector *) ((arg1)->B);
3747     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_gsl_vector, 0 | 0); argvi++ ;
3748 
3749     XSRETURN(argvi);
3750   fail:
3751 
3752     SWIG_croak_null();
3753   }
3754 }
3755 
3756 
XS(_wrap_gsl_bspline_workspace_A_set)3757 XS(_wrap_gsl_bspline_workspace_A_set) {
3758   {
3759     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3760     gsl_matrix *arg2 = (gsl_matrix *) 0 ;
3761     void *argp1 = 0 ;
3762     int res1 = 0 ;
3763     void *argp2 = 0 ;
3764     int res2 = 0 ;
3765     int argvi = 0;
3766     dXSARGS;
3767 
3768     if ((items < 2) || (items > 2)) {
3769       SWIG_croak("Usage: gsl_bspline_workspace_A_set(self,A);");
3770     }
3771     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3772     if (!SWIG_IsOK(res1)) {
3773       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_A_set" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3774     }
3775     arg1 = (gsl_bspline_workspace *)(argp1);
3776     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_gsl_matrix, SWIG_POINTER_DISOWN |  0 );
3777     if (!SWIG_IsOK(res2)) {
3778       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_bspline_workspace_A_set" "', argument " "2"" of type '" "gsl_matrix *""'");
3779     }
3780     arg2 = (gsl_matrix *)(argp2);
3781     if (arg1) (arg1)->A = arg2;
3782     ST(argvi) = &PL_sv_undef;
3783 
3784 
3785     XSRETURN(argvi);
3786   fail:
3787 
3788 
3789     SWIG_croak_null();
3790   }
3791 }
3792 
3793 
XS(_wrap_gsl_bspline_workspace_A_get)3794 XS(_wrap_gsl_bspline_workspace_A_get) {
3795   {
3796     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3797     void *argp1 = 0 ;
3798     int res1 = 0 ;
3799     int argvi = 0;
3800     gsl_matrix *result = 0 ;
3801     dXSARGS;
3802 
3803     if ((items < 1) || (items > 1)) {
3804       SWIG_croak("Usage: gsl_bspline_workspace_A_get(self);");
3805     }
3806     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3807     if (!SWIG_IsOK(res1)) {
3808       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_A_get" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3809     }
3810     arg1 = (gsl_bspline_workspace *)(argp1);
3811     result = (gsl_matrix *) ((arg1)->A);
3812     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_gsl_matrix, 0 | 0); argvi++ ;
3813 
3814     XSRETURN(argvi);
3815   fail:
3816 
3817     SWIG_croak_null();
3818   }
3819 }
3820 
3821 
XS(_wrap_gsl_bspline_workspace_dB_set)3822 XS(_wrap_gsl_bspline_workspace_dB_set) {
3823   {
3824     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3825     gsl_matrix *arg2 = (gsl_matrix *) 0 ;
3826     void *argp1 = 0 ;
3827     int res1 = 0 ;
3828     void *argp2 = 0 ;
3829     int res2 = 0 ;
3830     int argvi = 0;
3831     dXSARGS;
3832 
3833     if ((items < 2) || (items > 2)) {
3834       SWIG_croak("Usage: gsl_bspline_workspace_dB_set(self,dB);");
3835     }
3836     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3837     if (!SWIG_IsOK(res1)) {
3838       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_dB_set" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3839     }
3840     arg1 = (gsl_bspline_workspace *)(argp1);
3841     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_gsl_matrix, SWIG_POINTER_DISOWN |  0 );
3842     if (!SWIG_IsOK(res2)) {
3843       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_bspline_workspace_dB_set" "', argument " "2"" of type '" "gsl_matrix *""'");
3844     }
3845     arg2 = (gsl_matrix *)(argp2);
3846     if (arg1) (arg1)->dB = arg2;
3847     ST(argvi) = &PL_sv_undef;
3848 
3849 
3850     XSRETURN(argvi);
3851   fail:
3852 
3853 
3854     SWIG_croak_null();
3855   }
3856 }
3857 
3858 
XS(_wrap_gsl_bspline_workspace_dB_get)3859 XS(_wrap_gsl_bspline_workspace_dB_get) {
3860   {
3861     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3862     void *argp1 = 0 ;
3863     int res1 = 0 ;
3864     int argvi = 0;
3865     gsl_matrix *result = 0 ;
3866     dXSARGS;
3867 
3868     if ((items < 1) || (items > 1)) {
3869       SWIG_croak("Usage: gsl_bspline_workspace_dB_get(self);");
3870     }
3871     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3872     if (!SWIG_IsOK(res1)) {
3873       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_workspace_dB_get" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3874     }
3875     arg1 = (gsl_bspline_workspace *)(argp1);
3876     result = (gsl_matrix *) ((arg1)->dB);
3877     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_gsl_matrix, 0 | 0); argvi++ ;
3878 
3879     XSRETURN(argvi);
3880   fail:
3881 
3882     SWIG_croak_null();
3883   }
3884 }
3885 
3886 
XS(_wrap_new_gsl_bspline_workspace)3887 XS(_wrap_new_gsl_bspline_workspace) {
3888   {
3889     int argvi = 0;
3890     gsl_bspline_workspace *result = 0 ;
3891     dXSARGS;
3892 
3893     if ((items < 0) || (items > 0)) {
3894       SWIG_croak("Usage: new_gsl_bspline_workspace();");
3895     }
3896     result = (gsl_bspline_workspace *)calloc(1, sizeof(gsl_bspline_workspace));
3897     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_gsl_bspline_workspace, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
3898     XSRETURN(argvi);
3899   fail:
3900     SWIG_croak_null();
3901   }
3902 }
3903 
3904 
XS(_wrap_delete_gsl_bspline_workspace)3905 XS(_wrap_delete_gsl_bspline_workspace) {
3906   {
3907     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3908     void *argp1 = 0 ;
3909     int res1 = 0 ;
3910     int argvi = 0;
3911     dXSARGS;
3912 
3913     if ((items < 1) || (items > 1)) {
3914       SWIG_croak("Usage: delete_gsl_bspline_workspace(self);");
3915     }
3916     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, SWIG_POINTER_DISOWN |  0 );
3917     if (!SWIG_IsOK(res1)) {
3918       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_gsl_bspline_workspace" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3919     }
3920     arg1 = (gsl_bspline_workspace *)(argp1);
3921     free((char *) arg1);
3922     ST(argvi) = &PL_sv_undef;
3923 
3924     XSRETURN(argvi);
3925   fail:
3926 
3927     SWIG_croak_null();
3928   }
3929 }
3930 
3931 
XS(_wrap_gsl_bspline_alloc)3932 XS(_wrap_gsl_bspline_alloc) {
3933   {
3934     size_t arg1 ;
3935     size_t arg2 ;
3936     size_t val1 ;
3937     int ecode1 = 0 ;
3938     size_t val2 ;
3939     int ecode2 = 0 ;
3940     int argvi = 0;
3941     gsl_bspline_workspace *result = 0 ;
3942     dXSARGS;
3943 
3944     if ((items < 2) || (items > 2)) {
3945       SWIG_croak("Usage: gsl_bspline_alloc(k,nbreak);");
3946     }
3947     ecode1 = SWIG_AsVal_size_t SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
3948     if (!SWIG_IsOK(ecode1)) {
3949       SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "gsl_bspline_alloc" "', argument " "1"" of type '" "size_t""'");
3950     }
3951     arg1 = (size_t)(val1);
3952     ecode2 = SWIG_AsVal_size_t SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
3953     if (!SWIG_IsOK(ecode2)) {
3954       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "gsl_bspline_alloc" "', argument " "2"" of type '" "size_t""'");
3955     }
3956     arg2 = (size_t)(val2);
3957     result = (gsl_bspline_workspace *)gsl_bspline_alloc(arg1,arg2);
3958     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_gsl_bspline_workspace, 0 | SWIG_SHADOW); argvi++ ;
3959 
3960 
3961     XSRETURN(argvi);
3962   fail:
3963 
3964 
3965     SWIG_croak_null();
3966   }
3967 }
3968 
3969 
XS(_wrap_gsl_bspline_free)3970 XS(_wrap_gsl_bspline_free) {
3971   {
3972     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
3973     void *argp1 = 0 ;
3974     int res1 = 0 ;
3975     int argvi = 0;
3976     dXSARGS;
3977 
3978     if ((items < 1) || (items > 1)) {
3979       SWIG_croak("Usage: gsl_bspline_free(w);");
3980     }
3981     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
3982     if (!SWIG_IsOK(res1)) {
3983       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_free" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
3984     }
3985     arg1 = (gsl_bspline_workspace *)(argp1);
3986     gsl_bspline_free(arg1);
3987     ST(argvi) = &PL_sv_undef;
3988 
3989     XSRETURN(argvi);
3990   fail:
3991 
3992     SWIG_croak_null();
3993   }
3994 }
3995 
3996 
XS(_wrap_gsl_bspline_ncoeffs)3997 XS(_wrap_gsl_bspline_ncoeffs) {
3998   {
3999     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
4000     void *argp1 = 0 ;
4001     int res1 = 0 ;
4002     int argvi = 0;
4003     size_t result;
4004     dXSARGS;
4005 
4006     if ((items < 1) || (items > 1)) {
4007       SWIG_croak("Usage: gsl_bspline_ncoeffs(w);");
4008     }
4009     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
4010     if (!SWIG_IsOK(res1)) {
4011       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_ncoeffs" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
4012     }
4013     arg1 = (gsl_bspline_workspace *)(argp1);
4014     result = gsl_bspline_ncoeffs(arg1);
4015     ST(argvi) = SWIG_From_size_t  SWIG_PERL_CALL_ARGS_1((size_t)(result)); argvi++ ;
4016 
4017     XSRETURN(argvi);
4018   fail:
4019 
4020     SWIG_croak_null();
4021   }
4022 }
4023 
4024 
XS(_wrap_gsl_bspline_order)4025 XS(_wrap_gsl_bspline_order) {
4026   {
4027     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
4028     void *argp1 = 0 ;
4029     int res1 = 0 ;
4030     int argvi = 0;
4031     size_t result;
4032     dXSARGS;
4033 
4034     if ((items < 1) || (items > 1)) {
4035       SWIG_croak("Usage: gsl_bspline_order(w);");
4036     }
4037     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
4038     if (!SWIG_IsOK(res1)) {
4039       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_order" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
4040     }
4041     arg1 = (gsl_bspline_workspace *)(argp1);
4042     result = gsl_bspline_order(arg1);
4043     ST(argvi) = SWIG_From_size_t  SWIG_PERL_CALL_ARGS_1((size_t)(result)); argvi++ ;
4044 
4045     XSRETURN(argvi);
4046   fail:
4047 
4048     SWIG_croak_null();
4049   }
4050 }
4051 
4052 
XS(_wrap_gsl_bspline_nbreak)4053 XS(_wrap_gsl_bspline_nbreak) {
4054   {
4055     gsl_bspline_workspace *arg1 = (gsl_bspline_workspace *) 0 ;
4056     void *argp1 = 0 ;
4057     int res1 = 0 ;
4058     int argvi = 0;
4059     size_t result;
4060     dXSARGS;
4061 
4062     if ((items < 1) || (items > 1)) {
4063       SWIG_croak("Usage: gsl_bspline_nbreak(w);");
4064     }
4065     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
4066     if (!SWIG_IsOK(res1)) {
4067       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_nbreak" "', argument " "1"" of type '" "gsl_bspline_workspace *""'");
4068     }
4069     arg1 = (gsl_bspline_workspace *)(argp1);
4070     result = gsl_bspline_nbreak(arg1);
4071     ST(argvi) = SWIG_From_size_t  SWIG_PERL_CALL_ARGS_1((size_t)(result)); argvi++ ;
4072 
4073     XSRETURN(argvi);
4074   fail:
4075 
4076     SWIG_croak_null();
4077   }
4078 }
4079 
4080 
XS(_wrap_gsl_bspline_breakpoint)4081 XS(_wrap_gsl_bspline_breakpoint) {
4082   {
4083     size_t arg1 ;
4084     gsl_bspline_workspace *arg2 = (gsl_bspline_workspace *) 0 ;
4085     size_t val1 ;
4086     int ecode1 = 0 ;
4087     void *argp2 = 0 ;
4088     int res2 = 0 ;
4089     int argvi = 0;
4090     double result;
4091     dXSARGS;
4092 
4093     if ((items < 2) || (items > 2)) {
4094       SWIG_croak("Usage: gsl_bspline_breakpoint(i,w);");
4095     }
4096     ecode1 = SWIG_AsVal_size_t SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
4097     if (!SWIG_IsOK(ecode1)) {
4098       SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "gsl_bspline_breakpoint" "', argument " "1"" of type '" "size_t""'");
4099     }
4100     arg1 = (size_t)(val1);
4101     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
4102     if (!SWIG_IsOK(res2)) {
4103       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_bspline_breakpoint" "', argument " "2"" of type '" "gsl_bspline_workspace *""'");
4104     }
4105     arg2 = (gsl_bspline_workspace *)(argp2);
4106     result = (double)gsl_bspline_breakpoint(arg1,arg2);
4107     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
4108 
4109 
4110     XSRETURN(argvi);
4111   fail:
4112 
4113 
4114     SWIG_croak_null();
4115   }
4116 }
4117 
4118 
XS(_wrap_gsl_bspline_greville_abscissa)4119 XS(_wrap_gsl_bspline_greville_abscissa) {
4120   {
4121     size_t arg1 ;
4122     gsl_bspline_workspace *arg2 = (gsl_bspline_workspace *) 0 ;
4123     size_t val1 ;
4124     int ecode1 = 0 ;
4125     void *argp2 = 0 ;
4126     int res2 = 0 ;
4127     int argvi = 0;
4128     double result;
4129     dXSARGS;
4130 
4131     if ((items < 2) || (items > 2)) {
4132       SWIG_croak("Usage: gsl_bspline_greville_abscissa(i,w);");
4133     }
4134     ecode1 = SWIG_AsVal_size_t SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
4135     if (!SWIG_IsOK(ecode1)) {
4136       SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "gsl_bspline_greville_abscissa" "', argument " "1"" of type '" "size_t""'");
4137     }
4138     arg1 = (size_t)(val1);
4139     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
4140     if (!SWIG_IsOK(res2)) {
4141       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_bspline_greville_abscissa" "', argument " "2"" of type '" "gsl_bspline_workspace *""'");
4142     }
4143     arg2 = (gsl_bspline_workspace *)(argp2);
4144     result = (double)gsl_bspline_greville_abscissa(arg1,arg2);
4145     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
4146 
4147 
4148     XSRETURN(argvi);
4149   fail:
4150 
4151 
4152     SWIG_croak_null();
4153   }
4154 }
4155 
4156 
XS(_wrap_gsl_bspline_knots)4157 XS(_wrap_gsl_bspline_knots) {
4158   {
4159     gsl_vector *arg1 = (gsl_vector *) 0 ;
4160     gsl_bspline_workspace *arg2 = (gsl_bspline_workspace *) 0 ;
4161     void *argp1 = 0 ;
4162     int res1 = 0 ;
4163     void *argp2 = 0 ;
4164     int res2 = 0 ;
4165     int argvi = 0;
4166     int result;
4167     dXSARGS;
4168 
4169     if ((items < 2) || (items > 2)) {
4170       SWIG_croak("Usage: gsl_bspline_knots(breakpts,w);");
4171     }
4172     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_vector, 0 |  0 );
4173     if (!SWIG_IsOK(res1)) {
4174       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_knots" "', argument " "1"" of type '" "gsl_vector const *""'");
4175     }
4176     arg1 = (gsl_vector *)(argp1);
4177     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
4178     if (!SWIG_IsOK(res2)) {
4179       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_bspline_knots" "', argument " "2"" of type '" "gsl_bspline_workspace *""'");
4180     }
4181     arg2 = (gsl_bspline_workspace *)(argp2);
4182     result = (int)gsl_bspline_knots((gsl_vector const *)arg1,arg2);
4183     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
4184 
4185 
4186     XSRETURN(argvi);
4187   fail:
4188 
4189 
4190     SWIG_croak_null();
4191   }
4192 }
4193 
4194 
XS(_wrap_gsl_bspline_knots_uniform)4195 XS(_wrap_gsl_bspline_knots_uniform) {
4196   {
4197     double arg1 ;
4198     double arg2 ;
4199     gsl_bspline_workspace *arg3 = (gsl_bspline_workspace *) 0 ;
4200     double val1 ;
4201     int ecode1 = 0 ;
4202     double val2 ;
4203     int ecode2 = 0 ;
4204     void *argp3 = 0 ;
4205     int res3 = 0 ;
4206     int argvi = 0;
4207     int result;
4208     dXSARGS;
4209 
4210     if ((items < 3) || (items > 3)) {
4211       SWIG_croak("Usage: gsl_bspline_knots_uniform(a,b,w);");
4212     }
4213     ecode1 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
4214     if (!SWIG_IsOK(ecode1)) {
4215       SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "gsl_bspline_knots_uniform" "', argument " "1"" of type '" "double""'");
4216     }
4217     arg1 = (double)(val1);
4218     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
4219     if (!SWIG_IsOK(ecode2)) {
4220       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "gsl_bspline_knots_uniform" "', argument " "2"" of type '" "double""'");
4221     }
4222     arg2 = (double)(val2);
4223     res3 = SWIG_ConvertPtr(ST(2), &argp3,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
4224     if (!SWIG_IsOK(res3)) {
4225       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "gsl_bspline_knots_uniform" "', argument " "3"" of type '" "gsl_bspline_workspace *""'");
4226     }
4227     arg3 = (gsl_bspline_workspace *)(argp3);
4228     result = (int)gsl_bspline_knots_uniform(arg1,arg2,arg3);
4229     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
4230 
4231 
4232 
4233     XSRETURN(argvi);
4234   fail:
4235 
4236 
4237 
4238     SWIG_croak_null();
4239   }
4240 }
4241 
4242 
XS(_wrap_gsl_bspline_knots_greville)4243 XS(_wrap_gsl_bspline_knots_greville) {
4244   {
4245     gsl_vector *arg1 = (gsl_vector *) 0 ;
4246     gsl_bspline_workspace *arg2 = (gsl_bspline_workspace *) 0 ;
4247     double *arg3 = (double *) 0 ;
4248     void *argp1 = 0 ;
4249     int res1 = 0 ;
4250     void *argp2 = 0 ;
4251     int res2 = 0 ;
4252     double temp3 ;
4253     int res3 = SWIG_TMPOBJ ;
4254     int argvi = 0;
4255     int result;
4256     dXSARGS;
4257 
4258     arg3 = &temp3;
4259     if ((items < 2) || (items > 2)) {
4260       SWIG_croak("Usage: gsl_bspline_knots_greville(abscissae,w);");
4261     }
4262     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_gsl_vector, 0 |  0 );
4263     if (!SWIG_IsOK(res1)) {
4264       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "gsl_bspline_knots_greville" "', argument " "1"" of type '" "gsl_vector const *""'");
4265     }
4266     arg1 = (gsl_vector *)(argp1);
4267     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
4268     if (!SWIG_IsOK(res2)) {
4269       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_bspline_knots_greville" "', argument " "2"" of type '" "gsl_bspline_workspace *""'");
4270     }
4271     arg2 = (gsl_bspline_workspace *)(argp2);
4272     result = (int)gsl_bspline_knots_greville((gsl_vector const *)arg1,arg2,arg3);
4273     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
4274     if (SWIG_IsTmpObj(res3)) {
4275       if (argvi >= items) EXTEND(sp, argvi+1);  ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((*arg3)); argvi++  ;
4276     } else {
4277       int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0) : 0;
4278       if (argvi >= items) EXTEND(sp, argvi+1);  ST(argvi) = SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_double, new_flags); argvi++  ;
4279     }
4280 
4281 
4282 
4283     XSRETURN(argvi);
4284   fail:
4285 
4286 
4287 
4288     SWIG_croak_null();
4289   }
4290 }
4291 
4292 
XS(_wrap_gsl_bspline_eval)4293 XS(_wrap_gsl_bspline_eval) {
4294   {
4295     double arg1 ;
4296     gsl_vector *arg2 = (gsl_vector *) 0 ;
4297     gsl_bspline_workspace *arg3 = (gsl_bspline_workspace *) 0 ;
4298     double val1 ;
4299     int ecode1 = 0 ;
4300     void *argp2 = 0 ;
4301     int res2 = 0 ;
4302     void *argp3 = 0 ;
4303     int res3 = 0 ;
4304     int argvi = 0;
4305     int result;
4306     dXSARGS;
4307 
4308     if ((items < 3) || (items > 3)) {
4309       SWIG_croak("Usage: gsl_bspline_eval(x,B,w);");
4310     }
4311     ecode1 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
4312     if (!SWIG_IsOK(ecode1)) {
4313       SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "gsl_bspline_eval" "', argument " "1"" of type '" "double""'");
4314     }
4315     arg1 = (double)(val1);
4316     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_gsl_vector, 0 |  0 );
4317     if (!SWIG_IsOK(res2)) {
4318       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_bspline_eval" "', argument " "2"" of type '" "gsl_vector *""'");
4319     }
4320     arg2 = (gsl_vector *)(argp2);
4321     res3 = SWIG_ConvertPtr(ST(2), &argp3,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
4322     if (!SWIG_IsOK(res3)) {
4323       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "gsl_bspline_eval" "', argument " "3"" of type '" "gsl_bspline_workspace *""'");
4324     }
4325     arg3 = (gsl_bspline_workspace *)(argp3);
4326     result = (int)gsl_bspline_eval(arg1,arg2,arg3);
4327     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
4328 
4329 
4330 
4331     XSRETURN(argvi);
4332   fail:
4333 
4334 
4335 
4336     SWIG_croak_null();
4337   }
4338 }
4339 
4340 
XS(_wrap_gsl_bspline_eval_nonzero)4341 XS(_wrap_gsl_bspline_eval_nonzero) {
4342   {
4343     double arg1 ;
4344     gsl_vector *arg2 = (gsl_vector *) 0 ;
4345     size_t *arg3 = (size_t *) 0 ;
4346     size_t *arg4 = (size_t *) 0 ;
4347     gsl_bspline_workspace *arg5 = (gsl_bspline_workspace *) 0 ;
4348     double val1 ;
4349     int ecode1 = 0 ;
4350     void *argp2 = 0 ;
4351     int res2 = 0 ;
4352     void *argp3 = 0 ;
4353     int res3 = 0 ;
4354     void *argp4 = 0 ;
4355     int res4 = 0 ;
4356     void *argp5 = 0 ;
4357     int res5 = 0 ;
4358     int argvi = 0;
4359     int result;
4360     dXSARGS;
4361 
4362     if ((items < 5) || (items > 5)) {
4363       SWIG_croak("Usage: gsl_bspline_eval_nonzero(x,Bk,istart,iend,w);");
4364     }
4365     ecode1 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
4366     if (!SWIG_IsOK(ecode1)) {
4367       SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "gsl_bspline_eval_nonzero" "', argument " "1"" of type '" "double""'");
4368     }
4369     arg1 = (double)(val1);
4370     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_gsl_vector, 0 |  0 );
4371     if (!SWIG_IsOK(res2)) {
4372       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "gsl_bspline_eval_nonzero" "', argument " "2"" of type '" "gsl_vector *""'");
4373     }
4374     arg2 = (gsl_vector *)(argp2);
4375     res3 = SWIG_ConvertPtr(ST(2), &argp3,SWIGTYPE_p_size_t, 0 |  0 );
4376     if (!SWIG_IsOK(res3)) {
4377       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "gsl_bspline_eval_nonzero" "', argument " "3"" of type '" "size_t *""'");
4378     }
4379     arg3 = (size_t *)(argp3);
4380     res4 = SWIG_ConvertPtr(ST(3), &argp4,SWIGTYPE_p_size_t, 0 |  0 );
4381     if (!SWIG_IsOK(res4)) {
4382       SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "gsl_bspline_eval_nonzero" "', argument " "4"" of type '" "size_t *""'");
4383     }
4384     arg4 = (size_t *)(argp4);
4385     res5 = SWIG_ConvertPtr(ST(4), &argp5,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
4386     if (!SWIG_IsOK(res5)) {
4387       SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "gsl_bspline_eval_nonzero" "', argument " "5"" of type '" "gsl_bspline_workspace *""'");
4388     }
4389     arg5 = (gsl_bspline_workspace *)(argp5);
4390     result = (int)gsl_bspline_eval_nonzero(arg1,arg2,arg3,arg4,arg5);
4391     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
4392 
4393 
4394 
4395 
4396 
4397     XSRETURN(argvi);
4398   fail:
4399 
4400 
4401 
4402 
4403 
4404     SWIG_croak_null();
4405   }
4406 }
4407 
4408 
XS(_wrap_gsl_bspline_deriv_eval)4409 XS(_wrap_gsl_bspline_deriv_eval) {
4410   {
4411     double arg1 ;
4412     size_t arg2 ;
4413     gsl_matrix *arg3 = (gsl_matrix *) 0 ;
4414     gsl_bspline_workspace *arg4 = (gsl_bspline_workspace *) 0 ;
4415     double val1 ;
4416     int ecode1 = 0 ;
4417     size_t val2 ;
4418     int ecode2 = 0 ;
4419     void *argp3 = 0 ;
4420     int res3 = 0 ;
4421     void *argp4 = 0 ;
4422     int res4 = 0 ;
4423     int argvi = 0;
4424     int result;
4425     dXSARGS;
4426 
4427     if ((items < 4) || (items > 4)) {
4428       SWIG_croak("Usage: gsl_bspline_deriv_eval(x,nderiv,dB,w);");
4429     }
4430     ecode1 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
4431     if (!SWIG_IsOK(ecode1)) {
4432       SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "gsl_bspline_deriv_eval" "', argument " "1"" of type '" "double""'");
4433     }
4434     arg1 = (double)(val1);
4435     ecode2 = SWIG_AsVal_size_t SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
4436     if (!SWIG_IsOK(ecode2)) {
4437       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "gsl_bspline_deriv_eval" "', argument " "2"" of type '" "size_t""'");
4438     }
4439     arg2 = (size_t)(val2);
4440     res3 = SWIG_ConvertPtr(ST(2), &argp3,SWIGTYPE_p_gsl_matrix, 0 |  0 );
4441     if (!SWIG_IsOK(res3)) {
4442       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "gsl_bspline_deriv_eval" "', argument " "3"" of type '" "gsl_matrix *""'");
4443     }
4444     arg3 = (gsl_matrix *)(argp3);
4445     res4 = SWIG_ConvertPtr(ST(3), &argp4,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
4446     if (!SWIG_IsOK(res4)) {
4447       SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "gsl_bspline_deriv_eval" "', argument " "4"" of type '" "gsl_bspline_workspace *""'");
4448     }
4449     arg4 = (gsl_bspline_workspace *)(argp4);
4450     result = (int)gsl_bspline_deriv_eval(arg1,arg2,arg3,arg4);
4451     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
4452 
4453 
4454 
4455 
4456     XSRETURN(argvi);
4457   fail:
4458 
4459 
4460 
4461 
4462     SWIG_croak_null();
4463   }
4464 }
4465 
4466 
XS(_wrap_gsl_bspline_deriv_eval_nonzero)4467 XS(_wrap_gsl_bspline_deriv_eval_nonzero) {
4468   {
4469     double arg1 ;
4470     size_t arg2 ;
4471     gsl_matrix *arg3 = (gsl_matrix *) 0 ;
4472     size_t *arg4 = (size_t *) 0 ;
4473     size_t *arg5 = (size_t *) 0 ;
4474     gsl_bspline_workspace *arg6 = (gsl_bspline_workspace *) 0 ;
4475     double val1 ;
4476     int ecode1 = 0 ;
4477     size_t val2 ;
4478     int ecode2 = 0 ;
4479     void *argp3 = 0 ;
4480     int res3 = 0 ;
4481     void *argp4 = 0 ;
4482     int res4 = 0 ;
4483     void *argp5 = 0 ;
4484     int res5 = 0 ;
4485     void *argp6 = 0 ;
4486     int res6 = 0 ;
4487     int argvi = 0;
4488     int result;
4489     dXSARGS;
4490 
4491     if ((items < 6) || (items > 6)) {
4492       SWIG_croak("Usage: gsl_bspline_deriv_eval_nonzero(x,nderiv,dB,istart,iend,w);");
4493     }
4494     ecode1 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
4495     if (!SWIG_IsOK(ecode1)) {
4496       SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "gsl_bspline_deriv_eval_nonzero" "', argument " "1"" of type '" "double""'");
4497     }
4498     arg1 = (double)(val1);
4499     ecode2 = SWIG_AsVal_size_t SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
4500     if (!SWIG_IsOK(ecode2)) {
4501       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "gsl_bspline_deriv_eval_nonzero" "', argument " "2"" of type '" "size_t""'");
4502     }
4503     arg2 = (size_t)(val2);
4504     res3 = SWIG_ConvertPtr(ST(2), &argp3,SWIGTYPE_p_gsl_matrix, 0 |  0 );
4505     if (!SWIG_IsOK(res3)) {
4506       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "gsl_bspline_deriv_eval_nonzero" "', argument " "3"" of type '" "gsl_matrix *""'");
4507     }
4508     arg3 = (gsl_matrix *)(argp3);
4509     res4 = SWIG_ConvertPtr(ST(3), &argp4,SWIGTYPE_p_size_t, 0 |  0 );
4510     if (!SWIG_IsOK(res4)) {
4511       SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "gsl_bspline_deriv_eval_nonzero" "', argument " "4"" of type '" "size_t *""'");
4512     }
4513     arg4 = (size_t *)(argp4);
4514     res5 = SWIG_ConvertPtr(ST(4), &argp5,SWIGTYPE_p_size_t, 0 |  0 );
4515     if (!SWIG_IsOK(res5)) {
4516       SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "gsl_bspline_deriv_eval_nonzero" "', argument " "5"" of type '" "size_t *""'");
4517     }
4518     arg5 = (size_t *)(argp5);
4519     res6 = SWIG_ConvertPtr(ST(5), &argp6,SWIGTYPE_p_gsl_bspline_workspace, 0 |  0 );
4520     if (!SWIG_IsOK(res6)) {
4521       SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "gsl_bspline_deriv_eval_nonzero" "', argument " "6"" of type '" "gsl_bspline_workspace *""'");
4522     }
4523     arg6 = (gsl_bspline_workspace *)(argp6);
4524     result = (int)gsl_bspline_deriv_eval_nonzero(arg1,arg2,arg3,arg4,arg5,arg6);
4525     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
4526 
4527 
4528 
4529 
4530 
4531 
4532     XSRETURN(argvi);
4533   fail:
4534 
4535 
4536 
4537 
4538 
4539 
4540     SWIG_croak_null();
4541   }
4542 }
4543 
4544 
4545 
4546 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
4547 
4548 static swig_type_info _swigt__p_FILE = {"_p_FILE", "FILE *", 0, 0, (void*)0, 0};
4549 static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
4550 static swig_type_info _swigt__p_double = {"_p_double", "double *", 0, 0, (void*)0, 0};
4551 static swig_type_info _swigt__p_f_double_a___double_p_void__int = {"_p_f_double_a___double_p_void__int", "int (*)(double,double [],void *)", 0, 0, (void*)0, 0};
4552 static swig_type_info _swigt__p_f_double_p_void__double = {"_p_f_double_p_void__double", "double (*)(double,void *)", 0, 0, (void*)0, 0};
4553 static swig_type_info _swigt__p_f_double_p_void_p_double_p_double__void = {"_p_f_double_p_void_p_double_p_double__void", "void (*)(double,void *,double *,double *)", 0, 0, (void*)0, 0};
4554 static swig_type_info _swigt__p_f_p_q_const__char_p_q_const__char_int_int__void = {"_p_f_p_q_const__char_p_q_const__char_int_int__void", "void (*)(char const *,char const *,int,int)|gsl_error_handler_t *", 0, 0, (void*)0, 0};
4555 static swig_type_info _swigt__p_f_p_q_const__char_p_q_const__char_int_p_q_const__char__void = {"_p_f_p_q_const__char_p_q_const__char_int_p_q_const__char__void", "gsl_stream_handler_t *|void (*)(char const *,char const *,int,char const *)", 0, 0, (void*)0, 0};
4556 static swig_type_info _swigt__p_gsl_bspline_workspace = {"_p_gsl_bspline_workspace", "gsl_bspline_workspace *", 0, 0, (void*)"Math::GSL::BSpline::gsl_bspline_workspace", 0};
4557 static swig_type_info _swigt__p_gsl_function_fdf_struct = {"_p_gsl_function_fdf_struct", "struct gsl_function_fdf_struct *|gsl_function_fdf_struct *|gsl_function_fdf *", 0, 0, (void*)"Math::GSL::BSpline::gsl_function_fdf_struct", 0};
4558 static swig_type_info _swigt__p_gsl_function_struct = {"_p_gsl_function_struct", "gsl_function *|struct gsl_function_struct *|gsl_function_struct *", 0, 0, (void*)"Math::GSL::BSpline::gsl_function_struct", 0};
4559 static swig_type_info _swigt__p_gsl_function_vec_struct = {"_p_gsl_function_vec_struct", "gsl_function_vec *|struct gsl_function_vec_struct *|gsl_function_vec_struct *", 0, 0, (void*)"Math::GSL::BSpline::gsl_function_vec_struct", 0};
4560 static swig_type_info _swigt__p_gsl_matrix = {"_p_gsl_matrix", "gsl_matrix *", 0, 0, (void*)0, 0};
4561 static swig_type_info _swigt__p_gsl_vector = {"_p_gsl_vector", "gsl_vector *", 0, 0, (void*)0, 0};
4562 static swig_type_info _swigt__p_size_t = {"_p_size_t", "size_t *", 0, 0, (void*)0, 0};
4563 static swig_type_info _swigt__p_void = {"_p_void", "void *", 0, 0, (void*)0, 0};
4564 
4565 static swig_type_info *swig_type_initial[] = {
4566   &_swigt__p_FILE,
4567   &_swigt__p_char,
4568   &_swigt__p_double,
4569   &_swigt__p_f_double_a___double_p_void__int,
4570   &_swigt__p_f_double_p_void__double,
4571   &_swigt__p_f_double_p_void_p_double_p_double__void,
4572   &_swigt__p_f_p_q_const__char_p_q_const__char_int_int__void,
4573   &_swigt__p_f_p_q_const__char_p_q_const__char_int_p_q_const__char__void,
4574   &_swigt__p_gsl_bspline_workspace,
4575   &_swigt__p_gsl_function_fdf_struct,
4576   &_swigt__p_gsl_function_struct,
4577   &_swigt__p_gsl_function_vec_struct,
4578   &_swigt__p_gsl_matrix,
4579   &_swigt__p_gsl_vector,
4580   &_swigt__p_size_t,
4581   &_swigt__p_void,
4582 };
4583 
4584 static swig_cast_info _swigc__p_FILE[] = {  {&_swigt__p_FILE, 0, 0, 0},{0, 0, 0, 0}};
4585 static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
4586 static swig_cast_info _swigc__p_double[] = {  {&_swigt__p_double, 0, 0, 0},{0, 0, 0, 0}};
4587 static swig_cast_info _swigc__p_f_double_a___double_p_void__int[] = {  {&_swigt__p_f_double_a___double_p_void__int, 0, 0, 0},{0, 0, 0, 0}};
4588 static swig_cast_info _swigc__p_f_double_p_void__double[] = {  {&_swigt__p_f_double_p_void__double, 0, 0, 0},{0, 0, 0, 0}};
4589 static swig_cast_info _swigc__p_f_double_p_void_p_double_p_double__void[] = {  {&_swigt__p_f_double_p_void_p_double_p_double__void, 0, 0, 0},{0, 0, 0, 0}};
4590 static swig_cast_info _swigc__p_f_p_q_const__char_p_q_const__char_int_int__void[] = {  {&_swigt__p_f_p_q_const__char_p_q_const__char_int_int__void, 0, 0, 0},{0, 0, 0, 0}};
4591 static swig_cast_info _swigc__p_f_p_q_const__char_p_q_const__char_int_p_q_const__char__void[] = {  {&_swigt__p_f_p_q_const__char_p_q_const__char_int_p_q_const__char__void, 0, 0, 0},{0, 0, 0, 0}};
4592 static swig_cast_info _swigc__p_gsl_bspline_workspace[] = {  {&_swigt__p_gsl_bspline_workspace, 0, 0, 0},{0, 0, 0, 0}};
4593 static swig_cast_info _swigc__p_gsl_function_fdf_struct[] = {  {&_swigt__p_gsl_function_fdf_struct, 0, 0, 0},{0, 0, 0, 0}};
4594 static swig_cast_info _swigc__p_gsl_function_struct[] = {  {&_swigt__p_gsl_function_struct, 0, 0, 0},{0, 0, 0, 0}};
4595 static swig_cast_info _swigc__p_gsl_function_vec_struct[] = {  {&_swigt__p_gsl_function_vec_struct, 0, 0, 0},{0, 0, 0, 0}};
4596 static swig_cast_info _swigc__p_gsl_matrix[] = {  {&_swigt__p_gsl_matrix, 0, 0, 0},{0, 0, 0, 0}};
4597 static swig_cast_info _swigc__p_gsl_vector[] = {  {&_swigt__p_gsl_vector, 0, 0, 0},{0, 0, 0, 0}};
4598 static swig_cast_info _swigc__p_size_t[] = {  {&_swigt__p_size_t, 0, 0, 0},{0, 0, 0, 0}};
4599 static swig_cast_info _swigc__p_void[] = {  {&_swigt__p_void, 0, 0, 0},{0, 0, 0, 0}};
4600 
4601 static swig_cast_info *swig_cast_initial[] = {
4602   _swigc__p_FILE,
4603   _swigc__p_char,
4604   _swigc__p_double,
4605   _swigc__p_f_double_a___double_p_void__int,
4606   _swigc__p_f_double_p_void__double,
4607   _swigc__p_f_double_p_void_p_double_p_double__void,
4608   _swigc__p_f_p_q_const__char_p_q_const__char_int_int__void,
4609   _swigc__p_f_p_q_const__char_p_q_const__char_int_p_q_const__char__void,
4610   _swigc__p_gsl_bspline_workspace,
4611   _swigc__p_gsl_function_fdf_struct,
4612   _swigc__p_gsl_function_struct,
4613   _swigc__p_gsl_function_vec_struct,
4614   _swigc__p_gsl_matrix,
4615   _swigc__p_gsl_vector,
4616   _swigc__p_size_t,
4617   _swigc__p_void,
4618 };
4619 
4620 
4621 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
4622 
4623 static swig_constant_info swig_constants[] = {
4624 {0,0,0,0,0,0}
4625 };
4626 #ifdef __cplusplus
4627 }
4628 #endif
4629 static swig_variable_info swig_variables[] = {
4630 {0,0,0,0}
4631 };
4632 static swig_command_info swig_commands[] = {
4633 {"Math::GSL::BSplinec::gsl_error", _wrap_gsl_error},
4634 {"Math::GSL::BSplinec::gsl_stream_printf", _wrap_gsl_stream_printf},
4635 {"Math::GSL::BSplinec::gsl_strerror", _wrap_gsl_strerror},
4636 {"Math::GSL::BSplinec::gsl_set_error_handler", _wrap_gsl_set_error_handler},
4637 {"Math::GSL::BSplinec::gsl_set_error_handler_off", _wrap_gsl_set_error_handler_off},
4638 {"Math::GSL::BSplinec::gsl_set_stream_handler", _wrap_gsl_set_stream_handler},
4639 {"Math::GSL::BSplinec::gsl_set_stream", _wrap_gsl_set_stream},
4640 {"Math::GSL::BSplinec::gsl_function_struct_function_set", _wrap_gsl_function_struct_function_set},
4641 {"Math::GSL::BSplinec::gsl_function_struct_function_get", _wrap_gsl_function_struct_function_get},
4642 {"Math::GSL::BSplinec::gsl_function_struct_params_set", _wrap_gsl_function_struct_params_set},
4643 {"Math::GSL::BSplinec::gsl_function_struct_params_get", _wrap_gsl_function_struct_params_get},
4644 {"Math::GSL::BSplinec::new_gsl_function_struct", _wrap_new_gsl_function_struct},
4645 {"Math::GSL::BSplinec::delete_gsl_function_struct", _wrap_delete_gsl_function_struct},
4646 {"Math::GSL::BSplinec::gsl_function_fdf_struct_f_set", _wrap_gsl_function_fdf_struct_f_set},
4647 {"Math::GSL::BSplinec::gsl_function_fdf_struct_f_get", _wrap_gsl_function_fdf_struct_f_get},
4648 {"Math::GSL::BSplinec::gsl_function_fdf_struct_df_set", _wrap_gsl_function_fdf_struct_df_set},
4649 {"Math::GSL::BSplinec::gsl_function_fdf_struct_df_get", _wrap_gsl_function_fdf_struct_df_get},
4650 {"Math::GSL::BSplinec::gsl_function_fdf_struct_fdf_set", _wrap_gsl_function_fdf_struct_fdf_set},
4651 {"Math::GSL::BSplinec::gsl_function_fdf_struct_fdf_get", _wrap_gsl_function_fdf_struct_fdf_get},
4652 {"Math::GSL::BSplinec::gsl_function_fdf_struct_params_set", _wrap_gsl_function_fdf_struct_params_set},
4653 {"Math::GSL::BSplinec::gsl_function_fdf_struct_params_get", _wrap_gsl_function_fdf_struct_params_get},
4654 {"Math::GSL::BSplinec::new_gsl_function_fdf_struct", _wrap_new_gsl_function_fdf_struct},
4655 {"Math::GSL::BSplinec::delete_gsl_function_fdf_struct", _wrap_delete_gsl_function_fdf_struct},
4656 {"Math::GSL::BSplinec::gsl_function_vec_struct_function_set", _wrap_gsl_function_vec_struct_function_set},
4657 {"Math::GSL::BSplinec::gsl_function_vec_struct_function_get", _wrap_gsl_function_vec_struct_function_get},
4658 {"Math::GSL::BSplinec::gsl_function_vec_struct_params_set", _wrap_gsl_function_vec_struct_params_set},
4659 {"Math::GSL::BSplinec::gsl_function_vec_struct_params_get", _wrap_gsl_function_vec_struct_params_get},
4660 {"Math::GSL::BSplinec::new_gsl_function_vec_struct", _wrap_new_gsl_function_vec_struct},
4661 {"Math::GSL::BSplinec::delete_gsl_function_vec_struct", _wrap_delete_gsl_function_vec_struct},
4662 {"Math::GSL::BSplinec::gsl_bspline_workspace_k_set", _wrap_gsl_bspline_workspace_k_set},
4663 {"Math::GSL::BSplinec::gsl_bspline_workspace_k_get", _wrap_gsl_bspline_workspace_k_get},
4664 {"Math::GSL::BSplinec::gsl_bspline_workspace_km1_set", _wrap_gsl_bspline_workspace_km1_set},
4665 {"Math::GSL::BSplinec::gsl_bspline_workspace_km1_get", _wrap_gsl_bspline_workspace_km1_get},
4666 {"Math::GSL::BSplinec::gsl_bspline_workspace_l_set", _wrap_gsl_bspline_workspace_l_set},
4667 {"Math::GSL::BSplinec::gsl_bspline_workspace_l_get", _wrap_gsl_bspline_workspace_l_get},
4668 {"Math::GSL::BSplinec::gsl_bspline_workspace_nbreak_set", _wrap_gsl_bspline_workspace_nbreak_set},
4669 {"Math::GSL::BSplinec::gsl_bspline_workspace_nbreak_get", _wrap_gsl_bspline_workspace_nbreak_get},
4670 {"Math::GSL::BSplinec::gsl_bspline_workspace_n_set", _wrap_gsl_bspline_workspace_n_set},
4671 {"Math::GSL::BSplinec::gsl_bspline_workspace_n_get", _wrap_gsl_bspline_workspace_n_get},
4672 {"Math::GSL::BSplinec::gsl_bspline_workspace_knots_set", _wrap_gsl_bspline_workspace_knots_set},
4673 {"Math::GSL::BSplinec::gsl_bspline_workspace_knots_get", _wrap_gsl_bspline_workspace_knots_get},
4674 {"Math::GSL::BSplinec::gsl_bspline_workspace_deltal_set", _wrap_gsl_bspline_workspace_deltal_set},
4675 {"Math::GSL::BSplinec::gsl_bspline_workspace_deltal_get", _wrap_gsl_bspline_workspace_deltal_get},
4676 {"Math::GSL::BSplinec::gsl_bspline_workspace_deltar_set", _wrap_gsl_bspline_workspace_deltar_set},
4677 {"Math::GSL::BSplinec::gsl_bspline_workspace_deltar_get", _wrap_gsl_bspline_workspace_deltar_get},
4678 {"Math::GSL::BSplinec::gsl_bspline_workspace_B_set", _wrap_gsl_bspline_workspace_B_set},
4679 {"Math::GSL::BSplinec::gsl_bspline_workspace_B_get", _wrap_gsl_bspline_workspace_B_get},
4680 {"Math::GSL::BSplinec::gsl_bspline_workspace_A_set", _wrap_gsl_bspline_workspace_A_set},
4681 {"Math::GSL::BSplinec::gsl_bspline_workspace_A_get", _wrap_gsl_bspline_workspace_A_get},
4682 {"Math::GSL::BSplinec::gsl_bspline_workspace_dB_set", _wrap_gsl_bspline_workspace_dB_set},
4683 {"Math::GSL::BSplinec::gsl_bspline_workspace_dB_get", _wrap_gsl_bspline_workspace_dB_get},
4684 {"Math::GSL::BSplinec::new_gsl_bspline_workspace", _wrap_new_gsl_bspline_workspace},
4685 {"Math::GSL::BSplinec::delete_gsl_bspline_workspace", _wrap_delete_gsl_bspline_workspace},
4686 {"Math::GSL::BSplinec::gsl_bspline_alloc", _wrap_gsl_bspline_alloc},
4687 {"Math::GSL::BSplinec::gsl_bspline_free", _wrap_gsl_bspline_free},
4688 {"Math::GSL::BSplinec::gsl_bspline_ncoeffs", _wrap_gsl_bspline_ncoeffs},
4689 {"Math::GSL::BSplinec::gsl_bspline_order", _wrap_gsl_bspline_order},
4690 {"Math::GSL::BSplinec::gsl_bspline_nbreak", _wrap_gsl_bspline_nbreak},
4691 {"Math::GSL::BSplinec::gsl_bspline_breakpoint", _wrap_gsl_bspline_breakpoint},
4692 {"Math::GSL::BSplinec::gsl_bspline_greville_abscissa", _wrap_gsl_bspline_greville_abscissa},
4693 {"Math::GSL::BSplinec::gsl_bspline_knots", _wrap_gsl_bspline_knots},
4694 {"Math::GSL::BSplinec::gsl_bspline_knots_uniform", _wrap_gsl_bspline_knots_uniform},
4695 {"Math::GSL::BSplinec::gsl_bspline_knots_greville", _wrap_gsl_bspline_knots_greville},
4696 {"Math::GSL::BSplinec::gsl_bspline_eval", _wrap_gsl_bspline_eval},
4697 {"Math::GSL::BSplinec::gsl_bspline_eval_nonzero", _wrap_gsl_bspline_eval_nonzero},
4698 {"Math::GSL::BSplinec::gsl_bspline_deriv_eval", _wrap_gsl_bspline_deriv_eval},
4699 {"Math::GSL::BSplinec::gsl_bspline_deriv_eval_nonzero", _wrap_gsl_bspline_deriv_eval_nonzero},
4700 {0,0}
4701 };
4702 /* -----------------------------------------------------------------------------
4703  * Type initialization:
4704  * This problem is tough by the requirement that no dynamic
4705  * memory is used. Also, since swig_type_info structures store pointers to
4706  * swig_cast_info structures and swig_cast_info structures store pointers back
4707  * to swig_type_info structures, we need some lookup code at initialization.
4708  * The idea is that swig generates all the structures that are needed.
4709  * The runtime then collects these partially filled structures.
4710  * The SWIG_InitializeModule function takes these initial arrays out of
4711  * swig_module, and does all the lookup, filling in the swig_module.types
4712  * array with the correct data and linking the correct swig_cast_info
4713  * structures together.
4714  *
4715  * The generated swig_type_info structures are assigned statically to an initial
4716  * array. We just loop through that array, and handle each type individually.
4717  * First we lookup if this type has been already loaded, and if so, use the
4718  * loaded structure instead of the generated one. Then we have to fill in the
4719  * cast linked list. The cast data is initially stored in something like a
4720  * two-dimensional array. Each row corresponds to a type (there are the same
4721  * number of rows as there are in the swig_type_initial array). Each entry in
4722  * a column is one of the swig_cast_info structures for that type.
4723  * The cast_initial array is actually an array of arrays, because each row has
4724  * a variable number of columns. So to actually build the cast linked list,
4725  * we find the array of casts associated with the type, and loop through it
4726  * adding the casts to the list. The one last trick we need to do is making
4727  * sure the type pointer in the swig_cast_info struct is correct.
4728  *
4729  * First off, we lookup the cast->type name to see if it is already loaded.
4730  * There are three cases to handle:
4731  *  1) If the cast->type has already been loaded AND the type we are adding
4732  *     casting info to has not been loaded (it is in this module), THEN we
4733  *     replace the cast->type pointer with the type pointer that has already
4734  *     been loaded.
4735  *  2) If BOTH types (the one we are adding casting info to, and the
4736  *     cast->type) are loaded, THEN the cast info has already been loaded by
4737  *     the previous module so we just ignore it.
4738  *  3) Finally, if cast->type has not already been loaded, then we add that
4739  *     swig_cast_info to the linked list (because the cast->type) pointer will
4740  *     be correct.
4741  * ----------------------------------------------------------------------------- */
4742 
4743 #ifdef __cplusplus
4744 extern "C" {
4745 #if 0
4746 } /* c-mode */
4747 #endif
4748 #endif
4749 
4750 #if 0
4751 #define SWIGRUNTIME_DEBUG
4752 #endif
4753 
4754 
4755 SWIGRUNTIME void
SWIG_InitializeModule(void * clientdata)4756 SWIG_InitializeModule(void *clientdata) {
4757   size_t i;
4758   swig_module_info *module_head, *iter;
4759   int init;
4760 
4761   /* check to see if the circular list has been setup, if not, set it up */
4762   if (swig_module.next==0) {
4763     /* Initialize the swig_module */
4764     swig_module.type_initial = swig_type_initial;
4765     swig_module.cast_initial = swig_cast_initial;
4766     swig_module.next = &swig_module;
4767     init = 1;
4768   } else {
4769     init = 0;
4770   }
4771 
4772   /* Try and load any already created modules */
4773   module_head = SWIG_GetModule(clientdata);
4774   if (!module_head) {
4775     /* This is the first module loaded for this interpreter */
4776     /* so set the swig module into the interpreter */
4777     SWIG_SetModule(clientdata, &swig_module);
4778   } else {
4779     /* the interpreter has loaded a SWIG module, but has it loaded this one? */
4780     iter=module_head;
4781     do {
4782       if (iter==&swig_module) {
4783         /* Our module is already in the list, so there's nothing more to do. */
4784         return;
4785       }
4786       iter=iter->next;
4787     } while (iter!= module_head);
4788 
4789     /* otherwise we must add our module into the list */
4790     swig_module.next = module_head->next;
4791     module_head->next = &swig_module;
4792   }
4793 
4794   /* When multiple interpreters are used, a module could have already been initialized in
4795        a different interpreter, but not yet have a pointer in this interpreter.
4796        In this case, we do not want to continue adding types... everything should be
4797        set up already */
4798   if (init == 0) return;
4799 
4800   /* Now work on filling in swig_module.types */
4801 #ifdef SWIGRUNTIME_DEBUG
4802   printf("SWIG_InitializeModule: size %lu\n", (unsigned long)swig_module.size);
4803 #endif
4804   for (i = 0; i < swig_module.size; ++i) {
4805     swig_type_info *type = 0;
4806     swig_type_info *ret;
4807     swig_cast_info *cast;
4808 
4809 #ifdef SWIGRUNTIME_DEBUG
4810     printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name);
4811 #endif
4812 
4813     /* if there is another module already loaded */
4814     if (swig_module.next != &swig_module) {
4815       type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name);
4816     }
4817     if (type) {
4818       /* Overwrite clientdata field */
4819 #ifdef SWIGRUNTIME_DEBUG
4820       printf("SWIG_InitializeModule: found type %s\n", type->name);
4821 #endif
4822       if (swig_module.type_initial[i]->clientdata) {
4823         type->clientdata = swig_module.type_initial[i]->clientdata;
4824 #ifdef SWIGRUNTIME_DEBUG
4825         printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
4826 #endif
4827       }
4828     } else {
4829       type = swig_module.type_initial[i];
4830     }
4831 
4832     /* Insert casting types */
4833     cast = swig_module.cast_initial[i];
4834     while (cast->type) {
4835       /* Don't need to add information already in the list */
4836       ret = 0;
4837 #ifdef SWIGRUNTIME_DEBUG
4838       printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
4839 #endif
4840       if (swig_module.next != &swig_module) {
4841         ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name);
4842 #ifdef SWIGRUNTIME_DEBUG
4843         if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
4844 #endif
4845       }
4846       if (ret) {
4847         if (type == swig_module.type_initial[i]) {
4848 #ifdef SWIGRUNTIME_DEBUG
4849           printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
4850 #endif
4851           cast->type = ret;
4852           ret = 0;
4853         } else {
4854           /* Check for casting already in the list */
4855           swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
4856 #ifdef SWIGRUNTIME_DEBUG
4857           if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
4858 #endif
4859           if (!ocast) ret = 0;
4860         }
4861       }
4862 
4863       if (!ret) {
4864 #ifdef SWIGRUNTIME_DEBUG
4865         printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
4866 #endif
4867         if (type->cast) {
4868           type->cast->prev = cast;
4869           cast->next = type->cast;
4870         }
4871         type->cast = cast;
4872       }
4873       cast++;
4874     }
4875     /* Set entry in modules->types array equal to the type */
4876     swig_module.types[i] = type;
4877   }
4878   swig_module.types[i] = 0;
4879 
4880 #ifdef SWIGRUNTIME_DEBUG
4881   printf("**** SWIG_InitializeModule: Cast List ******\n");
4882   for (i = 0; i < swig_module.size; ++i) {
4883     int j = 0;
4884     swig_cast_info *cast = swig_module.cast_initial[i];
4885     printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name);
4886     while (cast->type) {
4887       printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
4888       cast++;
4889       ++j;
4890     }
4891     printf("---- Total casts: %d\n",j);
4892   }
4893   printf("**** SWIG_InitializeModule: Cast List ******\n");
4894 #endif
4895 }
4896 
4897 /* This function will propagate the clientdata field of type to
4898 * any new swig_type_info structures that have been added into the list
4899 * of equivalent types.  It is like calling
4900 * SWIG_TypeClientData(type, clientdata) a second time.
4901 */
4902 SWIGRUNTIME void
SWIG_PropagateClientData(void)4903 SWIG_PropagateClientData(void) {
4904   size_t i;
4905   swig_cast_info *equiv;
4906   static int init_run = 0;
4907 
4908   if (init_run) return;
4909   init_run = 1;
4910 
4911   for (i = 0; i < swig_module.size; i++) {
4912     if (swig_module.types[i]->clientdata) {
4913       equiv = swig_module.types[i]->cast;
4914       while (equiv) {
4915         if (!equiv->converter) {
4916           if (equiv->type && !equiv->type->clientdata)
4917           SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata);
4918         }
4919         equiv = equiv->next;
4920       }
4921     }
4922   }
4923 }
4924 
4925 #ifdef __cplusplus
4926 #if 0
4927 {
4928   /* c-mode */
4929 #endif
4930 }
4931 #endif
4932 
4933 
4934 
4935 #if defined(__cplusplus) && ! defined(XSPROTO)
4936 extern "C"
4937 #endif
4938 
XS(SWIG_init)4939 XS(SWIG_init) {
4940   dXSARGS;
4941   int i;
4942   (void)items;
4943 
4944   SWIG_InitializeModule(0);
4945 
4946   /* Install commands */
4947   for (i = 0; swig_commands[i].name; i++) {
4948     /* Casts only needed for Perl < 5.10. */
4949 #ifdef __cplusplus
4950     newXS(const_cast<char*>(swig_commands[i].name), swig_commands[i].wrapper, const_cast<char*>(__FILE__));
4951 #else
4952     newXS((char*)swig_commands[i].name, swig_commands[i].wrapper, (char*)__FILE__);
4953 #endif
4954   }
4955 
4956   /* Install variables */
4957   for (i = 0; swig_variables[i].name; i++) {
4958     SV *sv;
4959     sv = get_sv(swig_variables[i].name, TRUE | 0x2 | GV_ADDMULTI);
4960     if (swig_variables[i].type) {
4961       SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0);
4962     } else {
4963       sv_setiv(sv,(IV) 0);
4964     }
4965     swig_create_magic(sv, swig_variables[i].name, swig_variables[i].set, swig_variables[i].get);
4966   }
4967 
4968   /* Install constant */
4969   for (i = 0; swig_constants[i].type; i++) {
4970     SV *sv;
4971     sv = get_sv(swig_constants[i].name, TRUE | 0x2 | GV_ADDMULTI);
4972     switch(swig_constants[i].type) {
4973     case SWIG_INT:
4974       sv_setiv(sv, (IV) swig_constants[i].lvalue);
4975       break;
4976     case SWIG_FLOAT:
4977       sv_setnv(sv, (double) swig_constants[i].dvalue);
4978       break;
4979     case SWIG_STRING:
4980       sv_setpv(sv, (const char *) swig_constants[i].pvalue);
4981       break;
4982     case SWIG_POINTER:
4983       SWIG_MakePtr(sv, swig_constants[i].pvalue, *(swig_constants[i].ptype),0);
4984       break;
4985     case SWIG_BINARY:
4986       SWIG_MakePackedObj(sv, swig_constants[i].pvalue, swig_constants[i].lvalue, *(swig_constants[i].ptype));
4987       break;
4988     default:
4989       break;
4990     }
4991     SvREADONLY_on(sv);
4992   }
4993 
4994   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
4995     SV *sv = get_sv((char*) SWIG_prefix "GSL_VERSION", TRUE | 0x2 | GV_ADDMULTI);
4996     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(2.7)));
4997     SvREADONLY_on(sv);
4998   } while(0) /*@SWIG@*/;
4999   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5000     SV *sv = get_sv((char*) SWIG_prefix "GSL_MAJOR_VERSION", TRUE | 0x2 | GV_ADDMULTI);
5001     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(2)));
5002     SvREADONLY_on(sv);
5003   } while(0) /*@SWIG@*/;
5004   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5005     SV *sv = get_sv((char*) SWIG_prefix "GSL_MINOR_VERSION", TRUE | 0x2 | GV_ADDMULTI);
5006     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(7)));
5007     SvREADONLY_on(sv);
5008   } while(0) /*@SWIG@*/;
5009   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5010     SV *sv = get_sv((char*) SWIG_prefix "GSL_POSZERO", TRUE | 0x2 | GV_ADDMULTI);
5011     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)((+0.0))));
5012     SvREADONLY_on(sv);
5013   } while(0) /*@SWIG@*/;
5014   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5015     SV *sv = get_sv((char*) SWIG_prefix "GSL_NEGZERO", TRUE | 0x2 | GV_ADDMULTI);
5016     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)((-0.0))));
5017     SvREADONLY_on(sv);
5018   } while(0) /*@SWIG@*/;
5019   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5020     SV *sv = get_sv((char*) SWIG_prefix "GSL_SUCCESS", TRUE | 0x2 | GV_ADDMULTI);
5021     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_SUCCESS)));
5022     SvREADONLY_on(sv);
5023   } while(0) /*@SWIG@*/;
5024   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5025     SV *sv = get_sv((char*) SWIG_prefix "GSL_FAILURE", TRUE | 0x2 | GV_ADDMULTI);
5026     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_FAILURE)));
5027     SvREADONLY_on(sv);
5028   } while(0) /*@SWIG@*/;
5029   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5030     SV *sv = get_sv((char*) SWIG_prefix "GSL_CONTINUE", TRUE | 0x2 | GV_ADDMULTI);
5031     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_CONTINUE)));
5032     SvREADONLY_on(sv);
5033   } while(0) /*@SWIG@*/;
5034   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5035     SV *sv = get_sv((char*) SWIG_prefix "GSL_EDOM", TRUE | 0x2 | GV_ADDMULTI);
5036     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EDOM)));
5037     SvREADONLY_on(sv);
5038   } while(0) /*@SWIG@*/;
5039   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5040     SV *sv = get_sv((char*) SWIG_prefix "GSL_ERANGE", TRUE | 0x2 | GV_ADDMULTI);
5041     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ERANGE)));
5042     SvREADONLY_on(sv);
5043   } while(0) /*@SWIG@*/;
5044   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5045     SV *sv = get_sv((char*) SWIG_prefix "GSL_EFAULT", TRUE | 0x2 | GV_ADDMULTI);
5046     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EFAULT)));
5047     SvREADONLY_on(sv);
5048   } while(0) /*@SWIG@*/;
5049   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5050     SV *sv = get_sv((char*) SWIG_prefix "GSL_EINVAL", TRUE | 0x2 | GV_ADDMULTI);
5051     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EINVAL)));
5052     SvREADONLY_on(sv);
5053   } while(0) /*@SWIG@*/;
5054   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5055     SV *sv = get_sv((char*) SWIG_prefix "GSL_EFAILED", TRUE | 0x2 | GV_ADDMULTI);
5056     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EFAILED)));
5057     SvREADONLY_on(sv);
5058   } while(0) /*@SWIG@*/;
5059   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5060     SV *sv = get_sv((char*) SWIG_prefix "GSL_EFACTOR", TRUE | 0x2 | GV_ADDMULTI);
5061     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EFACTOR)));
5062     SvREADONLY_on(sv);
5063   } while(0) /*@SWIG@*/;
5064   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5065     SV *sv = get_sv((char*) SWIG_prefix "GSL_ESANITY", TRUE | 0x2 | GV_ADDMULTI);
5066     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ESANITY)));
5067     SvREADONLY_on(sv);
5068   } while(0) /*@SWIG@*/;
5069   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5070     SV *sv = get_sv((char*) SWIG_prefix "GSL_ENOMEM", TRUE | 0x2 | GV_ADDMULTI);
5071     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ENOMEM)));
5072     SvREADONLY_on(sv);
5073   } while(0) /*@SWIG@*/;
5074   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5075     SV *sv = get_sv((char*) SWIG_prefix "GSL_EBADFUNC", TRUE | 0x2 | GV_ADDMULTI);
5076     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EBADFUNC)));
5077     SvREADONLY_on(sv);
5078   } while(0) /*@SWIG@*/;
5079   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5080     SV *sv = get_sv((char*) SWIG_prefix "GSL_ERUNAWAY", TRUE | 0x2 | GV_ADDMULTI);
5081     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ERUNAWAY)));
5082     SvREADONLY_on(sv);
5083   } while(0) /*@SWIG@*/;
5084   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5085     SV *sv = get_sv((char*) SWIG_prefix "GSL_EMAXITER", TRUE | 0x2 | GV_ADDMULTI);
5086     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EMAXITER)));
5087     SvREADONLY_on(sv);
5088   } while(0) /*@SWIG@*/;
5089   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5090     SV *sv = get_sv((char*) SWIG_prefix "GSL_EZERODIV", TRUE | 0x2 | GV_ADDMULTI);
5091     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EZERODIV)));
5092     SvREADONLY_on(sv);
5093   } while(0) /*@SWIG@*/;
5094   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5095     SV *sv = get_sv((char*) SWIG_prefix "GSL_EBADTOL", TRUE | 0x2 | GV_ADDMULTI);
5096     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EBADTOL)));
5097     SvREADONLY_on(sv);
5098   } while(0) /*@SWIG@*/;
5099   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5100     SV *sv = get_sv((char*) SWIG_prefix "GSL_ETOL", TRUE | 0x2 | GV_ADDMULTI);
5101     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ETOL)));
5102     SvREADONLY_on(sv);
5103   } while(0) /*@SWIG@*/;
5104   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5105     SV *sv = get_sv((char*) SWIG_prefix "GSL_EUNDRFLW", TRUE | 0x2 | GV_ADDMULTI);
5106     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EUNDRFLW)));
5107     SvREADONLY_on(sv);
5108   } while(0) /*@SWIG@*/;
5109   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5110     SV *sv = get_sv((char*) SWIG_prefix "GSL_EOVRFLW", TRUE | 0x2 | GV_ADDMULTI);
5111     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EOVRFLW)));
5112     SvREADONLY_on(sv);
5113   } while(0) /*@SWIG@*/;
5114   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5115     SV *sv = get_sv((char*) SWIG_prefix "GSL_ELOSS", TRUE | 0x2 | GV_ADDMULTI);
5116     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ELOSS)));
5117     SvREADONLY_on(sv);
5118   } while(0) /*@SWIG@*/;
5119   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5120     SV *sv = get_sv((char*) SWIG_prefix "GSL_EROUND", TRUE | 0x2 | GV_ADDMULTI);
5121     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EROUND)));
5122     SvREADONLY_on(sv);
5123   } while(0) /*@SWIG@*/;
5124   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5125     SV *sv = get_sv((char*) SWIG_prefix "GSL_EBADLEN", TRUE | 0x2 | GV_ADDMULTI);
5126     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EBADLEN)));
5127     SvREADONLY_on(sv);
5128   } while(0) /*@SWIG@*/;
5129   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5130     SV *sv = get_sv((char*) SWIG_prefix "GSL_ENOTSQR", TRUE | 0x2 | GV_ADDMULTI);
5131     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ENOTSQR)));
5132     SvREADONLY_on(sv);
5133   } while(0) /*@SWIG@*/;
5134   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5135     SV *sv = get_sv((char*) SWIG_prefix "GSL_ESING", TRUE | 0x2 | GV_ADDMULTI);
5136     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ESING)));
5137     SvREADONLY_on(sv);
5138   } while(0) /*@SWIG@*/;
5139   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5140     SV *sv = get_sv((char*) SWIG_prefix "GSL_EDIVERGE", TRUE | 0x2 | GV_ADDMULTI);
5141     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EDIVERGE)));
5142     SvREADONLY_on(sv);
5143   } while(0) /*@SWIG@*/;
5144   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5145     SV *sv = get_sv((char*) SWIG_prefix "GSL_EUNSUP", TRUE | 0x2 | GV_ADDMULTI);
5146     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EUNSUP)));
5147     SvREADONLY_on(sv);
5148   } while(0) /*@SWIG@*/;
5149   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5150     SV *sv = get_sv((char*) SWIG_prefix "GSL_EUNIMPL", TRUE | 0x2 | GV_ADDMULTI);
5151     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EUNIMPL)));
5152     SvREADONLY_on(sv);
5153   } while(0) /*@SWIG@*/;
5154   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5155     SV *sv = get_sv((char*) SWIG_prefix "GSL_ECACHE", TRUE | 0x2 | GV_ADDMULTI);
5156     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ECACHE)));
5157     SvREADONLY_on(sv);
5158   } while(0) /*@SWIG@*/;
5159   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5160     SV *sv = get_sv((char*) SWIG_prefix "GSL_ETABLE", TRUE | 0x2 | GV_ADDMULTI);
5161     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ETABLE)));
5162     SvREADONLY_on(sv);
5163   } while(0) /*@SWIG@*/;
5164   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5165     SV *sv = get_sv((char*) SWIG_prefix "GSL_ENOPROG", TRUE | 0x2 | GV_ADDMULTI);
5166     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ENOPROG)));
5167     SvREADONLY_on(sv);
5168   } while(0) /*@SWIG@*/;
5169   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5170     SV *sv = get_sv((char*) SWIG_prefix "GSL_ENOPROGJ", TRUE | 0x2 | GV_ADDMULTI);
5171     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ENOPROGJ)));
5172     SvREADONLY_on(sv);
5173   } while(0) /*@SWIG@*/;
5174   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5175     SV *sv = get_sv((char*) SWIG_prefix "GSL_ETOLF", TRUE | 0x2 | GV_ADDMULTI);
5176     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ETOLF)));
5177     SvREADONLY_on(sv);
5178   } while(0) /*@SWIG@*/;
5179   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5180     SV *sv = get_sv((char*) SWIG_prefix "GSL_ETOLX", TRUE | 0x2 | GV_ADDMULTI);
5181     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ETOLX)));
5182     SvREADONLY_on(sv);
5183   } while(0) /*@SWIG@*/;
5184   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5185     SV *sv = get_sv((char*) SWIG_prefix "GSL_ETOLG", TRUE | 0x2 | GV_ADDMULTI);
5186     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_ETOLG)));
5187     SvREADONLY_on(sv);
5188   } while(0) /*@SWIG@*/;
5189   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5190     SV *sv = get_sv((char*) SWIG_prefix "GSL_EOF", TRUE | 0x2 | GV_ADDMULTI);
5191     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(GSL_EOF)));
5192     SvREADONLY_on(sv);
5193   } while(0) /*@SWIG@*/;
5194   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5195     SV *sv = get_sv((char*) SWIG_prefix "GSL_DISABLE_DEPRECATED", TRUE | 0x2 | GV_ADDMULTI);
5196     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(1)));
5197     SvREADONLY_on(sv);
5198   } while(0) /*@SWIG@*/;
5199   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5200     SV *sv = get_sv((char*) SWIG_prefix "M_E", TRUE | 0x2 | GV_ADDMULTI);
5201     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(2.71828182845904523536028747135)));
5202     SvREADONLY_on(sv);
5203   } while(0) /*@SWIG@*/;
5204   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5205     SV *sv = get_sv((char*) SWIG_prefix "M_LOG2E", TRUE | 0x2 | GV_ADDMULTI);
5206     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(1.44269504088896340735992468100)));
5207     SvREADONLY_on(sv);
5208   } while(0) /*@SWIG@*/;
5209   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5210     SV *sv = get_sv((char*) SWIG_prefix "M_LOG10E", TRUE | 0x2 | GV_ADDMULTI);
5211     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(0.43429448190325182765112891892)));
5212     SvREADONLY_on(sv);
5213   } while(0) /*@SWIG@*/;
5214   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5215     SV *sv = get_sv((char*) SWIG_prefix "M_SQRT2", TRUE | 0x2 | GV_ADDMULTI);
5216     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(1.41421356237309504880168872421)));
5217     SvREADONLY_on(sv);
5218   } while(0) /*@SWIG@*/;
5219   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5220     SV *sv = get_sv((char*) SWIG_prefix "M_SQRT1_2", TRUE | 0x2 | GV_ADDMULTI);
5221     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(0.70710678118654752440084436210)));
5222     SvREADONLY_on(sv);
5223   } while(0) /*@SWIG@*/;
5224   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5225     SV *sv = get_sv((char*) SWIG_prefix "M_SQRT3", TRUE | 0x2 | GV_ADDMULTI);
5226     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(1.73205080756887729352744634151)));
5227     SvREADONLY_on(sv);
5228   } while(0) /*@SWIG@*/;
5229   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5230     SV *sv = get_sv((char*) SWIG_prefix "M_PI", TRUE | 0x2 | GV_ADDMULTI);
5231     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(3.14159265358979323846264338328)));
5232     SvREADONLY_on(sv);
5233   } while(0) /*@SWIG@*/;
5234   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5235     SV *sv = get_sv((char*) SWIG_prefix "M_PI_2", TRUE | 0x2 | GV_ADDMULTI);
5236     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(1.57079632679489661923132169164)));
5237     SvREADONLY_on(sv);
5238   } while(0) /*@SWIG@*/;
5239   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5240     SV *sv = get_sv((char*) SWIG_prefix "M_PI_4", TRUE | 0x2 | GV_ADDMULTI);
5241     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(0.78539816339744830961566084582)));
5242     SvREADONLY_on(sv);
5243   } while(0) /*@SWIG@*/;
5244   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5245     SV *sv = get_sv((char*) SWIG_prefix "M_SQRTPI", TRUE | 0x2 | GV_ADDMULTI);
5246     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(1.77245385090551602729816748334)));
5247     SvREADONLY_on(sv);
5248   } while(0) /*@SWIG@*/;
5249   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5250     SV *sv = get_sv((char*) SWIG_prefix "M_2_SQRTPI", TRUE | 0x2 | GV_ADDMULTI);
5251     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(1.12837916709551257389615890312)));
5252     SvREADONLY_on(sv);
5253   } while(0) /*@SWIG@*/;
5254   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5255     SV *sv = get_sv((char*) SWIG_prefix "M_1_PI", TRUE | 0x2 | GV_ADDMULTI);
5256     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(0.31830988618379067153776752675)));
5257     SvREADONLY_on(sv);
5258   } while(0) /*@SWIG@*/;
5259   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5260     SV *sv = get_sv((char*) SWIG_prefix "M_2_PI", TRUE | 0x2 | GV_ADDMULTI);
5261     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(0.63661977236758134307553505349)));
5262     SvREADONLY_on(sv);
5263   } while(0) /*@SWIG@*/;
5264   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5265     SV *sv = get_sv((char*) SWIG_prefix "M_LN10", TRUE | 0x2 | GV_ADDMULTI);
5266     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(2.30258509299404568401799145468)));
5267     SvREADONLY_on(sv);
5268   } while(0) /*@SWIG@*/;
5269   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5270     SV *sv = get_sv((char*) SWIG_prefix "M_LN2", TRUE | 0x2 | GV_ADDMULTI);
5271     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(0.69314718055994530941723212146)));
5272     SvREADONLY_on(sv);
5273   } while(0) /*@SWIG@*/;
5274   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5275     SV *sv = get_sv((char*) SWIG_prefix "M_LNPI", TRUE | 0x2 | GV_ADDMULTI);
5276     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(1.14472988584940017414342735135)));
5277     SvREADONLY_on(sv);
5278   } while(0) /*@SWIG@*/;
5279   /*@SWIG:/usr/share/swig4.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
5280     SV *sv = get_sv((char*) SWIG_prefix "M_EULER", TRUE | 0x2 | GV_ADDMULTI);
5281     sv_setsv(sv, SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(0.57721566490153286060651209008)));
5282     SvREADONLY_on(sv);
5283   } while(0) /*@SWIG@*/;
5284   SWIG_TypeClientData(SWIGTYPE_p_gsl_function_struct, (void*) "Math::GSL::BSpline::gsl_function_struct");
5285   SWIG_TypeClientData(SWIGTYPE_p_gsl_function_fdf_struct, (void*) "Math::GSL::BSpline::gsl_function_fdf_struct");
5286   SWIG_TypeClientData(SWIGTYPE_p_gsl_function_vec_struct, (void*) "Math::GSL::BSpline::gsl_function_vec_struct");
5287   SWIG_TypeClientData(SWIGTYPE_p_gsl_bspline_workspace, (void*) "Math::GSL::BSpline::gsl_bspline_workspace");
5288   ST(0) = &PL_sv_yes;
5289   XSRETURN(1);
5290 }
5291 
5292