OR-Tools  9.0
init_python_wrap.cc
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2  * This file was automatically generated by SWIG (http://www.swig.org).
3  * Version 4.0.2
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 SWIGPYTHON
13 #define SWIGPYTHON
14 #endif
15 
16 #define SWIG_PYTHON_DIRECTOR_NO_VTABLE
17 
18 
19 #ifdef __cplusplus
20 /* SwigValueWrapper is described in swig.swg */
21 template<typename T> class SwigValueWrapper {
22  struct SwigMovePointer {
23  T *ptr;
24  SwigMovePointer(T *p) : ptr(p) { }
25  ~SwigMovePointer() { delete ptr; }
26  SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
27  } pointer;
28  SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
29  SwigValueWrapper(const SwigValueWrapper<T>& rhs);
30 public:
31  SwigValueWrapper() : pointer(0) { }
32  SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
33  operator T&() const { return *pointer.ptr; }
34  T *operator&() { return pointer.ptr; }
35 };
36 
37 template <typename T> T SwigValueInit() {
38  return T();
39 }
40 #endif
41 
42 /* -----------------------------------------------------------------------------
43  * This section contains generic SWIG labels for method/variable
44  * declarations/attributes, and other compiler dependent labels.
45  * ----------------------------------------------------------------------------- */
46 
47 /* template workaround for compilers that cannot correctly implement the C++ standard */
48 #ifndef SWIGTEMPLATEDISAMBIGUATOR
49 # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
50 # define SWIGTEMPLATEDISAMBIGUATOR template
51 # elif defined(__HP_aCC)
52 /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
53 /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
54 # define SWIGTEMPLATEDISAMBIGUATOR template
55 # else
56 # define SWIGTEMPLATEDISAMBIGUATOR
57 # endif
58 #endif
59 
60 /* inline attribute */
61 #ifndef SWIGINLINE
62 # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
63 # define SWIGINLINE inline
64 # else
65 # define SWIGINLINE
66 # endif
67 #endif
68 
69 /* attribute recognised by some compilers to avoid 'unused' warnings */
70 #ifndef SWIGUNUSED
71 # if defined(__GNUC__)
72 # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
73 # define SWIGUNUSED __attribute__ ((__unused__))
74 # else
75 # define SWIGUNUSED
76 # endif
77 # elif defined(__ICC)
78 # define SWIGUNUSED __attribute__ ((__unused__))
79 # else
80 # define SWIGUNUSED
81 # endif
82 #endif
83 
84 #ifndef SWIG_MSC_UNSUPPRESS_4505
85 # if defined(_MSC_VER)
86 # pragma warning(disable : 4505) /* unreferenced local function has been removed */
87 # endif
88 #endif
89 
90 #ifndef SWIGUNUSEDPARM
91 # ifdef __cplusplus
92 # define SWIGUNUSEDPARM(p)
93 # else
94 # define SWIGUNUSEDPARM(p) p SWIGUNUSED
95 # endif
96 #endif
97 
98 /* internal SWIG method */
99 #ifndef SWIGINTERN
100 # define SWIGINTERN static SWIGUNUSED
101 #endif
102 
103 /* internal inline SWIG method */
104 #ifndef SWIGINTERNINLINE
105 # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
106 #endif
107 
108 /* exporting methods */
109 #if defined(__GNUC__)
110 # if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
111 # ifndef GCC_HASCLASSVISIBILITY
112 # define GCC_HASCLASSVISIBILITY
113 # endif
114 # endif
115 #endif
116 
117 #ifndef SWIGEXPORT
118 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
119 # if defined(STATIC_LINKED)
120 # define SWIGEXPORT
121 # else
122 # define SWIGEXPORT __declspec(dllexport)
123 # endif
124 # else
125 # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
126 # define SWIGEXPORT __attribute__ ((visibility("default")))
127 # else
128 # define SWIGEXPORT
129 # endif
130 # endif
131 #endif
132 
133 /* calling conventions for Windows */
134 #ifndef SWIGSTDCALL
135 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
136 # define SWIGSTDCALL __stdcall
137 # else
138 # define SWIGSTDCALL
139 # endif
140 #endif
141 
142 /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
143 #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
144 # define _CRT_SECURE_NO_DEPRECATE
145 #endif
146 
147 /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
148 #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
149 # define _SCL_SECURE_NO_DEPRECATE
150 #endif
151 
152 /* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
153 #if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
154 # define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
155 #endif
156 
157 /* Intel's compiler complains if a variable which was never initialised is
158  * cast to void, which is a common idiom which we use to indicate that we
159  * are aware a variable isn't used. So we just silence that warning.
160  * See: https://github.com/swig/swig/issues/192 for more discussion.
161  */
162 #ifdef __INTEL_COMPILER
163 # pragma warning disable 592
164 #endif
165 
166 
167 #if defined(__GNUC__) && defined(_WIN32) && !defined(SWIG_PYTHON_NO_HYPOT_WORKAROUND)
168 /* Workaround for '::hypot' has not been declared', see https://bugs.python.org/issue11566 */
169 # include <math.h>
170 #endif
171 
172 #if defined(_DEBUG) && defined(SWIG_PYTHON_INTERPRETER_NO_DEBUG)
173 /* Use debug wrappers with the Python release dll */
174 # undef _DEBUG
175 # include <Python.h>
176 # define _DEBUG 1
177 #else
178 # include <Python.h>
179 #endif
180 
181 /* -----------------------------------------------------------------------------
182  * swigrun.swg
183  *
184  * This file contains generic C API SWIG runtime support for pointer
185  * type checking.
186  * ----------------------------------------------------------------------------- */
187 
188 /* This should only be incremented when either the layout of swig_type_info changes,
189  or for whatever reason, the runtime changes incompatibly */
190 #define SWIG_RUNTIME_VERSION "4"
191 
192 /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
193 #ifdef SWIG_TYPE_TABLE
194 # define SWIG_QUOTE_STRING(x) #x
195 # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
196 # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
197 #else
198 # define SWIG_TYPE_TABLE_NAME
199 #endif
200 
201 /*
202  You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
203  creating a static or dynamic library from the SWIG runtime code.
204  In 99.9% of the cases, SWIG just needs to declare them as 'static'.
205 
206  But only do this if strictly necessary, ie, if you have problems
207  with your compiler or suchlike.
208 */
209 
210 #ifndef SWIGRUNTIME
211 # define SWIGRUNTIME SWIGINTERN
212 #endif
213 
214 #ifndef SWIGRUNTIMEINLINE
215 # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
216 #endif
217 
218 /* Generic buffer size */
219 #ifndef SWIG_BUFFER_SIZE
220 # define SWIG_BUFFER_SIZE 1024
221 #endif
222 
223 /* Flags for pointer conversions */
224 #define SWIG_POINTER_DISOWN 0x1
225 #define SWIG_CAST_NEW_MEMORY 0x2
226 #define SWIG_POINTER_NO_NULL 0x4
227 
228 /* Flags for new pointer objects */
229 #define SWIG_POINTER_OWN 0x1
230 
231 
232 /*
233  Flags/methods for returning states.
234 
235  The SWIG conversion methods, as ConvertPtr, return an integer
236  that tells if the conversion was successful or not. And if not,
237  an error code can be returned (see swigerrors.swg for the codes).
238 
239  Use the following macros/flags to set or process the returning
240  states.
241 
242  In old versions of SWIG, code such as the following was usually written:
243 
244  if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
245  // success code
246  } else {
247  //fail code
248  }
249 
250  Now you can be more explicit:
251 
252  int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
253  if (SWIG_IsOK(res)) {
254  // success code
255  } else {
256  // fail code
257  }
258 
259  which is the same really, but now you can also do
260 
261  Type *ptr;
262  int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
263  if (SWIG_IsOK(res)) {
264  // success code
265  if (SWIG_IsNewObj(res) {
266  ...
267  delete *ptr;
268  } else {
269  ...
270  }
271  } else {
272  // fail code
273  }
274 
275  I.e., now SWIG_ConvertPtr can return new objects and you can
276  identify the case and take care of the deallocation. Of course that
277  also requires SWIG_ConvertPtr to return new result values, such as
278 
279  int SWIG_ConvertPtr(obj, ptr,...) {
280  if (<obj is ok>) {
281  if (<need new object>) {
282  *ptr = <ptr to new allocated object>;
283  return SWIG_NEWOBJ;
284  } else {
285  *ptr = <ptr to old object>;
286  return SWIG_OLDOBJ;
287  }
288  } else {
289  return SWIG_BADOBJ;
290  }
291  }
292 
293  Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
294  more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
295  SWIG errors code.
296 
297  Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
298  allows to return the 'cast rank', for example, if you have this
299 
300  int food(double)
301  int fooi(int);
302 
303  and you call
304 
305  food(1) // cast rank '1' (1 -> 1.0)
306  fooi(1) // cast rank '0'
307 
308  just use the SWIG_AddCast()/SWIG_CheckState()
309 */
310 
311 #define SWIG_OK (0)
312 #define SWIG_ERROR (-1)
313 #define SWIG_IsOK(r) (r >= 0)
314 #define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError)
315 
316 /* The CastRankLimit says how many bits are used for the cast rank */
317 #define SWIG_CASTRANKLIMIT (1 << 8)
318 /* The NewMask denotes the object was created (using new/malloc) */
319 #define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1)
320 /* The TmpMask is for in/out typemaps that use temporal objects */
321 #define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1)
322 /* Simple returning values */
323 #define SWIG_BADOBJ (SWIG_ERROR)
324 #define SWIG_OLDOBJ (SWIG_OK)
325 #define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK)
326 #define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK)
327 /* Check, add and del mask methods */
328 #define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
329 #define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
330 #define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
331 #define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
332 #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
333 #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
334 
335 /* Cast-Rank Mode */
336 #if defined(SWIG_CASTRANK_MODE)
337 # ifndef SWIG_TypeRank
338 # define SWIG_TypeRank unsigned long
339 # endif
340 # ifndef SWIG_MAXCASTRANK /* Default cast allowed */
341 # define SWIG_MAXCASTRANK (2)
342 # endif
343 # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1)
344 # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK)
345 SWIGINTERNINLINE int SWIG_AddCast(int r) {
346  return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
347 }
349  return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
350 }
351 #else /* no cast-rank mode */
352 # define SWIG_AddCast(r) (r)
353 # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
354 #endif
355 
356 
357 #include <string.h>
358 
359 #ifdef __cplusplus
360 extern "C" {
361 #endif
362 
363 typedef void *(*swig_converter_func)(void *, int *);
364 typedef struct swig_type_info *(*swig_dycast_func)(void **);
365 
366 /* Structure to store information on one type */
367 typedef struct swig_type_info {
368  const char *name; /* mangled name of this type */
369  const char *str; /* human readable name of this type */
370  swig_dycast_func dcast; /* dynamic cast function down a hierarchy */
371  struct swig_cast_info *cast; /* linked list of types that can cast into this type */
372  void *clientdata; /* language specific type data */
373  int owndata; /* flag if the structure owns the clientdata */
375 
376 /* Structure to store a type and conversion function used for casting */
377 typedef struct swig_cast_info {
378  swig_type_info *type; /* pointer to type that is equivalent to this type */
379  swig_converter_func converter; /* function to cast the void pointers */
380  struct swig_cast_info *next; /* pointer to next cast in linked list */
381  struct swig_cast_info *prev; /* pointer to the previous cast */
383 
384 /* Structure used to store module information
385  * Each module generates one structure like this, and the runtime collects
386  * all of these structures and stores them in a circularly linked list.*/
387 typedef struct swig_module_info {
388  swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */
389  size_t size; /* Number of types in this module */
390  struct swig_module_info *next; /* Pointer to next element in circularly linked list */
391  swig_type_info **type_initial; /* Array of initially generated type structures */
392  swig_cast_info **cast_initial; /* Array of initially generated casting structures */
393  void *clientdata; /* Language specific module data */
395 
396 /*
397  Compare two type names skipping the space characters, therefore
398  "char*" == "char *" and "Class<int>" == "Class<int >", etc.
399 
400  Return 0 when the two name types are equivalent, as in
401  strncmp, but skipping ' '.
402 */
403 SWIGRUNTIME int
404 SWIG_TypeNameComp(const char *f1, const char *l1,
405  const char *f2, const char *l2) {
406  for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
407  while ((*f1 == ' ') && (f1 != l1)) ++f1;
408  while ((*f2 == ' ') && (f2 != l2)) ++f2;
409  if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
410  }
411  return (int)((l1 - f1) - (l2 - f2));
412 }
413 
414 /*
415  Check type equivalence in a name list like <name1>|<name2>|...
416  Return 0 if equal, -1 if nb < tb, 1 if nb > tb
417 */
418 SWIGRUNTIME int
419 SWIG_TypeCmp(const char *nb, const char *tb) {
420  int equiv = 1;
421  const char* te = tb + strlen(tb);
422  const char* ne = nb;
423  while (equiv != 0 && *ne) {
424  for (nb = ne; *ne; ++ne) {
425  if (*ne == '|') break;
426  }
427  equiv = SWIG_TypeNameComp(nb, ne, tb, te);
428  if (*ne) ++ne;
429  }
430  return equiv;
431 }
432 
433 /*
434  Check type equivalence in a name list like <name1>|<name2>|...
435  Return 0 if not equal, 1 if equal
436 */
437 SWIGRUNTIME int
438 SWIG_TypeEquiv(const char *nb, const char *tb) {
439  return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0;
440 }
441 
442 /*
443  Check the typename
444 */
446 SWIG_TypeCheck(const char *c, swig_type_info *ty) {
447  if (ty) {
448  swig_cast_info *iter = ty->cast;
449  while (iter) {
450  if (strcmp(iter->type->name, c) == 0) {
451  if (iter == ty->cast)
452  return iter;
453  /* Move iter to the top of the linked list */
454  iter->prev->next = iter->next;
455  if (iter->next)
456  iter->next->prev = iter->prev;
457  iter->next = ty->cast;
458  iter->prev = 0;
459  if (ty->cast) ty->cast->prev = iter;
460  ty->cast = iter;
461  return iter;
462  }
463  iter = iter->next;
464  }
465  }
466  return 0;
467 }
468 
469 /*
470  Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
471 */
474  if (ty) {
475  swig_cast_info *iter = ty->cast;
476  while (iter) {
477  if (iter->type == from) {
478  if (iter == ty->cast)
479  return iter;
480  /* Move iter to the top of the linked list */
481  iter->prev->next = iter->next;
482  if (iter->next)
483  iter->next->prev = iter->prev;
484  iter->next = ty->cast;
485  iter->prev = 0;
486  if (ty->cast) ty->cast->prev = iter;
487  ty->cast = iter;
488  return iter;
489  }
490  iter = iter->next;
491  }
492  }
493  return 0;
494 }
495 
496 /*
497  Cast a pointer up an inheritance hierarchy
498 */
499 SWIGRUNTIMEINLINE void *
500 SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
501  return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
502 }
503 
504 /*
505  Dynamic pointer casting. Down an inheritance hierarchy
506 */
509  swig_type_info *lastty = ty;
510  if (!ty || !ty->dcast) return ty;
511  while (ty && (ty->dcast)) {
512  ty = (*ty->dcast)(ptr);
513  if (ty) lastty = ty;
514  }
515  return lastty;
516 }
517 
518 /*
519  Return the name associated with this type
520 */
521 SWIGRUNTIMEINLINE const char *
523  return ty->name;
524 }
525 
526 /*
527  Return the pretty name associated with this type,
528  that is an unmangled type name in a form presentable to the user.
529 */
530 SWIGRUNTIME const char *
532  /* The "str" field contains the equivalent pretty names of the
533  type, separated by vertical-bar characters. We choose
534  to print the last name, as it is often (?) the most
535  specific. */
536  if (!type) return NULL;
537  if (type->str != NULL) {
538  const char *last_name = type->str;
539  const char *s;
540  for (s = type->str; *s; s++)
541  if (*s == '|') last_name = s+1;
542  return last_name;
543  }
544  else
545  return type->name;
546 }
547 
548 /*
549  Set the clientdata field for a type
550 */
551 SWIGRUNTIME void
553  swig_cast_info *cast = ti->cast;
554  /* if (ti->clientdata == clientdata) return; */
555  ti->clientdata = clientdata;
556 
557  while (cast) {
558  if (!cast->converter) {
559  swig_type_info *tc = cast->type;
560  if (!tc->clientdata) {
562  }
563  }
564  cast = cast->next;
565  }
566 }
567 SWIGRUNTIME void
570  ti->owndata = 1;
571 }
572 
573 /*
574  Search for a swig_type_info structure only by mangled name
575  Search is a O(log #types)
576 
577  We start searching at module start, and finish searching when start == end.
578  Note: if start == end at the beginning of the function, we go all the way around
579  the circular list.
580 */
583  swig_module_info *end,
584  const char *name) {
585  swig_module_info *iter = start;
586  do {
587  if (iter->size) {
588  size_t l = 0;
589  size_t r = iter->size - 1;
590  do {
591  /* since l+r >= 0, we can (>> 1) instead (/ 2) */
592  size_t i = (l + r) >> 1;
593  const char *iname = iter->types[i]->name;
594  if (iname) {
595  int compare = strcmp(name, iname);
596  if (compare == 0) {
597  return iter->types[i];
598  } else if (compare < 0) {
599  if (i) {
600  r = i - 1;
601  } else {
602  break;
603  }
604  } else if (compare > 0) {
605  l = i + 1;
606  }
607  } else {
608  break; /* should never happen */
609  }
610  } while (l <= r);
611  }
612  iter = iter->next;
613  } while (iter != end);
614  return 0;
615 }
616 
617 /*
618  Search for a swig_type_info structure for either a mangled name or a human readable name.
619  It first searches the mangled names of the types, which is a O(log #types)
620  If a type is not found it then searches the human readable names, which is O(#types).
621 
622  We start searching at module start, and finish searching when start == end.
623  Note: if start == end at the beginning of the function, we go all the way around
624  the circular list.
625 */
628  swig_module_info *end,
629  const char *name) {
630  /* STEP 1: Search the name field using binary search */
631  swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
632  if (ret) {
633  return ret;
634  } else {
635  /* STEP 2: If the type hasn't been found, do a complete search
636  of the str field (the human readable name) */
637  swig_module_info *iter = start;
638  do {
639  size_t i = 0;
640  for (; i < iter->size; ++i) {
641  if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
642  return iter->types[i];
643  }
644  iter = iter->next;
645  } while (iter != end);
646  }
647 
648  /* neither found a match */
649  return 0;
650 }
651 
652 /*
653  Pack binary data into a string
654 */
655 SWIGRUNTIME char *
656 SWIG_PackData(char *c, void *ptr, size_t sz) {
657  static const char hex[17] = "0123456789abcdef";
658  const unsigned char *u = (unsigned char *) ptr;
659  const unsigned char *eu = u + sz;
660  for (; u != eu; ++u) {
661  unsigned char uu = *u;
662  *(c++) = hex[(uu & 0xf0) >> 4];
663  *(c++) = hex[uu & 0xf];
664  }
665  return c;
666 }
667 
668 /*
669  Unpack binary data from a string
670 */
671 SWIGRUNTIME const char *
672 SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
673  unsigned char *u = (unsigned char *) ptr;
674  const unsigned char *eu = u + sz;
675  for (; u != eu; ++u) {
676  char d = *(c++);
677  unsigned char uu;
678  if ((d >= '0') && (d <= '9'))
679  uu = (unsigned char)((d - '0') << 4);
680  else if ((d >= 'a') && (d <= 'f'))
681  uu = (unsigned char)((d - ('a'-10)) << 4);
682  else
683  return (char *) 0;
684  d = *(c++);
685  if ((d >= '0') && (d <= '9'))
686  uu |= (unsigned char)(d - '0');
687  else if ((d >= 'a') && (d <= 'f'))
688  uu |= (unsigned char)(d - ('a'-10));
689  else
690  return (char *) 0;
691  *u = uu;
692  }
693  return c;
694 }
695 
696 /*
697  Pack 'void *' into a string buffer.
698 */
699 SWIGRUNTIME char *
700 SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
701  char *r = buff;
702  if ((2*sizeof(void *) + 2) > bsz) return 0;
703  *(r++) = '_';
704  r = SWIG_PackData(r,&ptr,sizeof(void *));
705  if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
706  strcpy(r,name);
707  return buff;
708 }
709 
710 SWIGRUNTIME const char *
711 SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
712  if (*c != '_') {
713  if (strcmp(c,"NULL") == 0) {
714  *ptr = (void *) 0;
715  return name;
716  } else {
717  return 0;
718  }
719  }
720  return SWIG_UnpackData(++c,ptr,sizeof(void *));
721 }
722 
723 SWIGRUNTIME char *
724 SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
725  char *r = buff;
726  size_t lname = (name ? strlen(name) : 0);
727  if ((2*sz + 2 + lname) > bsz) return 0;
728  *(r++) = '_';
729  r = SWIG_PackData(r,ptr,sz);
730  if (lname) {
731  strncpy(r,name,lname+1);
732  } else {
733  *r = 0;
734  }
735  return buff;
736 }
737 
738 SWIGRUNTIME const char *
739 SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
740  if (*c != '_') {
741  if (strcmp(c,"NULL") == 0) {
742  memset(ptr,0,sz);
743  return name;
744  } else {
745  return 0;
746  }
747  }
748  return SWIG_UnpackData(++c,ptr,sz);
749 }
750 
751 #ifdef __cplusplus
752 }
753 #endif
754 
755 /* Errors in SWIG */
756 #define SWIG_UnknownError -1
757 #define SWIG_IOError -2
758 #define SWIG_RuntimeError -3
759 #define SWIG_IndexError -4
760 #define SWIG_TypeError -5
761 #define SWIG_DivisionByZero -6
762 #define SWIG_OverflowError -7
763 #define SWIG_SyntaxError -8
764 #define SWIG_ValueError -9
765 #define SWIG_SystemError -10
766 #define SWIG_AttributeError -11
767 #define SWIG_MemoryError -12
768 #define SWIG_NullReferenceError -13
769 
770 
771 
772 /* Compatibility macros for Python 3 */
773 #if PY_VERSION_HEX >= 0x03000000
774 
775 #define PyClass_Check(obj) PyObject_IsInstance(obj, (PyObject *)&PyType_Type)
776 #define PyInt_Check(x) PyLong_Check(x)
777 #define PyInt_AsLong(x) PyLong_AsLong(x)
778 #define PyInt_FromLong(x) PyLong_FromLong(x)
779 #define PyInt_FromSize_t(x) PyLong_FromSize_t(x)
780 #define PyString_Check(name) PyBytes_Check(name)
781 #define PyString_FromString(x) PyUnicode_FromString(x)
782 #define PyString_Format(fmt, args) PyUnicode_Format(fmt, args)
783 #define PyString_AsString(str) PyBytes_AsString(str)
784 #define PyString_Size(str) PyBytes_Size(str)
785 #define PyString_InternFromString(key) PyUnicode_InternFromString(key)
786 #define Py_TPFLAGS_HAVE_CLASS Py_TPFLAGS_BASETYPE
787 #define PyString_AS_STRING(x) PyUnicode_AS_STRING(x)
788 #define _PyLong_FromSsize_t(x) PyLong_FromSsize_t(x)
789 
790 #endif
791 
792 #ifndef Py_TYPE
793 # define Py_TYPE(op) ((op)->ob_type)
794 #endif
795 
796 /* SWIG APIs for compatibility of both Python 2 & 3 */
797 
798 #if PY_VERSION_HEX >= 0x03000000
799 # define SWIG_Python_str_FromFormat PyUnicode_FromFormat
800 #else
801 # define SWIG_Python_str_FromFormat PyString_FromFormat
802 #endif
803 
804 
805 /* Warning: This function will allocate a new string in Python 3,
806  * so please call SWIG_Python_str_DelForPy3(x) to free the space.
807  */
808 SWIGINTERN char*
810 {
811 #if PY_VERSION_HEX >= 0x03030000
812  return (char *)PyUnicode_AsUTF8(str);
813 #elif PY_VERSION_HEX >= 0x03000000
814  char *newstr = 0;
815  str = PyUnicode_AsUTF8String(str);
816  if (str) {
817  char *cstr;
818  Py_ssize_t len;
819  if (PyBytes_AsStringAndSize(str, &cstr, &len) != -1) {
820  newstr = (char *) malloc(len+1);
821  if (newstr)
822  memcpy(newstr, cstr, len+1);
823  }
824  Py_XDECREF(str);
825  }
826  return newstr;
827 #else
828  return PyString_AsString(str);
829 #endif
830 }
831 
832 #if PY_VERSION_HEX >= 0x03030000 || PY_VERSION_HEX < 0x03000000
833 # define SWIG_Python_str_DelForPy3(x)
834 #else
835 # define SWIG_Python_str_DelForPy3(x) free( (void*) (x) )
836 #endif
837 
838 
839 SWIGINTERN PyObject*
841 {
842 #if PY_VERSION_HEX >= 0x03000000
843  return PyUnicode_FromString(c);
844 #else
845  return PyString_FromString(c);
846 #endif
847 }
848 
849 #ifndef PyObject_DEL
850 # define PyObject_DEL PyObject_Del
851 #endif
852 
853 // SWIGPY_USE_CAPSULE is no longer used within SWIG itself, but some user
854 // interface files check for it.
855 # define SWIGPY_USE_CAPSULE
856 # define SWIGPY_CAPSULE_NAME ("swig_runtime_data" SWIG_RUNTIME_VERSION ".type_pointer_capsule" SWIG_TYPE_TABLE_NAME)
857 
858 #if PY_VERSION_HEX < 0x03020000
859 #define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type)
860 #define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name)
861 #define Py_hash_t long
862 #endif
863 
864 /* -----------------------------------------------------------------------------
865  * error manipulation
866  * ----------------------------------------------------------------------------- */
867 
868 SWIGRUNTIME PyObject*
870  PyObject* type = 0;
871  switch(code) {
872  case SWIG_MemoryError:
873  type = PyExc_MemoryError;
874  break;
875  case SWIG_IOError:
876  type = PyExc_IOError;
877  break;
878  case SWIG_RuntimeError:
879  type = PyExc_RuntimeError;
880  break;
881  case SWIG_IndexError:
882  type = PyExc_IndexError;
883  break;
884  case SWIG_TypeError:
885  type = PyExc_TypeError;
886  break;
887  case SWIG_DivisionByZero:
888  type = PyExc_ZeroDivisionError;
889  break;
890  case SWIG_OverflowError:
891  type = PyExc_OverflowError;
892  break;
893  case SWIG_SyntaxError:
894  type = PyExc_SyntaxError;
895  break;
896  case SWIG_ValueError:
897  type = PyExc_ValueError;
898  break;
899  case SWIG_SystemError:
900  type = PyExc_SystemError;
901  break;
902  case SWIG_AttributeError:
903  type = PyExc_AttributeError;
904  break;
905  default:
906  type = PyExc_RuntimeError;
907  }
908  return type;
909 }
910 
911 
912 SWIGRUNTIME void
913 SWIG_Python_AddErrorMsg(const char* mesg)
914 {
915  PyObject *type = 0;
916  PyObject *value = 0;
917  PyObject *traceback = 0;
918 
919  if (PyErr_Occurred())
920  PyErr_Fetch(&type, &value, &traceback);
921  if (value) {
922  PyObject *old_str = PyObject_Str(value);
923  const char *tmp = SWIG_Python_str_AsChar(old_str);
924  PyErr_Clear();
925  Py_XINCREF(type);
926  if (tmp)
927  PyErr_Format(type, "%s %s", tmp, mesg);
928  else
929  PyErr_Format(type, "%s", mesg);
931  Py_DECREF(old_str);
932  Py_DECREF(value);
933  } else {
934  PyErr_SetString(PyExc_RuntimeError, mesg);
935  }
936 }
937 
938 SWIGRUNTIME int
940 {
941  PyObject *error;
942  if (obj)
943  return 0;
944  error = PyErr_Occurred();
945  return error && PyErr_GivenExceptionMatches(error, PyExc_TypeError);
946 }
947 
948 SWIGRUNTIME void
950 {
951  if (SWIG_Python_TypeErrorOccurred(NULL)) {
952  /* Use existing TypeError to preserve stacktrace and enhance with given message */
953  PyObject *newvalue;
954  PyObject *type = NULL, *value = NULL, *traceback = NULL;
955  PyErr_Fetch(&type, &value, &traceback);
956 #if PY_VERSION_HEX >= 0x03000000
957  newvalue = PyUnicode_FromFormat("%S\nAdditional information:\n%s", value, message);
958 #else
959  newvalue = PyString_FromFormat("%s\nAdditional information:\n%s", PyString_AsString(value), message);
960 #endif
961  Py_XDECREF(value);
962  PyErr_Restore(type, newvalue, traceback);
963  } else {
964  /* Raise TypeError using given message */
965  PyErr_SetString(PyExc_TypeError, message);
966  }
967 }
968 
969 #if defined(SWIG_PYTHON_NO_THREADS)
970 # if defined(SWIG_PYTHON_THREADS)
971 # undef SWIG_PYTHON_THREADS
972 # endif
973 #endif
974 #if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */
975 # if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL)
976 # define SWIG_PYTHON_USE_GIL
977 # endif
978 # if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */
979 # ifndef SWIG_PYTHON_INITIALIZE_THREADS
980 # define SWIG_PYTHON_INITIALIZE_THREADS PyEval_InitThreads()
981 # endif
982 # ifdef __cplusplus /* C++ code */
983  class SWIG_Python_Thread_Block {
984  bool status;
985  PyGILState_STATE state;
986  public:
987  void end() { if (status) { PyGILState_Release(state); status = false;} }
988  SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {}
989  ~SWIG_Python_Thread_Block() { end(); }
990  };
991  class SWIG_Python_Thread_Allow {
992  bool status;
993  PyThreadState *save;
994  public:
995  void end() { if (status) { PyEval_RestoreThread(save); status = false; }}
996  SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {}
997  ~SWIG_Python_Thread_Allow() { end(); }
998  };
999 # define SWIG_PYTHON_THREAD_BEGIN_BLOCK SWIG_Python_Thread_Block _swig_thread_block
1000 # define SWIG_PYTHON_THREAD_END_BLOCK _swig_thread_block.end()
1001 # define SWIG_PYTHON_THREAD_BEGIN_ALLOW SWIG_Python_Thread_Allow _swig_thread_allow
1002 # define SWIG_PYTHON_THREAD_END_ALLOW _swig_thread_allow.end()
1003 # else /* C code */
1004 # define SWIG_PYTHON_THREAD_BEGIN_BLOCK PyGILState_STATE _swig_thread_block = PyGILState_Ensure()
1005 # define SWIG_PYTHON_THREAD_END_BLOCK PyGILState_Release(_swig_thread_block)
1006 # define SWIG_PYTHON_THREAD_BEGIN_ALLOW PyThreadState *_swig_thread_allow = PyEval_SaveThread()
1007 # define SWIG_PYTHON_THREAD_END_ALLOW PyEval_RestoreThread(_swig_thread_allow)
1008 # endif
1009 # else /* Old thread way, not implemented, user must provide it */
1010 # if !defined(SWIG_PYTHON_INITIALIZE_THREADS)
1011 # define SWIG_PYTHON_INITIALIZE_THREADS
1012 # endif
1013 # if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK)
1014 # define SWIG_PYTHON_THREAD_BEGIN_BLOCK
1015 # endif
1016 # if !defined(SWIG_PYTHON_THREAD_END_BLOCK)
1017 # define SWIG_PYTHON_THREAD_END_BLOCK
1018 # endif
1019 # if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW)
1020 # define SWIG_PYTHON_THREAD_BEGIN_ALLOW
1021 # endif
1022 # if !defined(SWIG_PYTHON_THREAD_END_ALLOW)
1023 # define SWIG_PYTHON_THREAD_END_ALLOW
1024 # endif
1025 # endif
1026 #else /* No thread support */
1027 # define SWIG_PYTHON_INITIALIZE_THREADS
1028 # define SWIG_PYTHON_THREAD_BEGIN_BLOCK
1029 # define SWIG_PYTHON_THREAD_END_BLOCK
1030 # define SWIG_PYTHON_THREAD_BEGIN_ALLOW
1031 # define SWIG_PYTHON_THREAD_END_ALLOW
1032 #endif
1033 
1034 /* -----------------------------------------------------------------------------
1035  * Python API portion that goes into the runtime
1036  * ----------------------------------------------------------------------------- */
1037 
1038 #ifdef __cplusplus
1039 extern "C" {
1040 #endif
1041 
1042 /* -----------------------------------------------------------------------------
1043  * Constant declarations
1044  * ----------------------------------------------------------------------------- */
1045 
1046 /* Constant Types */
1047 #define SWIG_PY_POINTER 4
1048 #define SWIG_PY_BINARY 5
1049 
1050 /* Constant information structure */
1051 typedef struct swig_const_info {
1052  int type;
1053  const char *name;
1054  long lvalue;
1055  double dvalue;
1056  void *pvalue;
1059 
1060 #ifdef __cplusplus
1061 }
1062 #endif
1063 
1064 
1065 /* -----------------------------------------------------------------------------
1066  * pyrun.swg
1067  *
1068  * This file contains the runtime support for Python modules
1069  * and includes code for managing global variables and pointer
1070  * type checking.
1071  *
1072  * ----------------------------------------------------------------------------- */
1073 
1074 #if PY_VERSION_HEX < 0x02070000 /* 2.7.0 */
1075 # error "This version of SWIG only supports Python >= 2.7"
1076 #endif
1077 
1078 #if PY_VERSION_HEX >= 0x03000000 && PY_VERSION_HEX < 0x03020000
1079 # error "This version of SWIG only supports Python 3 >= 3.2"
1080 #endif
1081 
1082 /* Common SWIG API */
1083 
1084 /* for raw pointers */
1085 #define SWIG_Python_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
1086 #define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtr(obj, pptr, type, flags)
1087 #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own)
1088 
1089 #ifdef SWIGPYTHON_BUILTIN
1090 #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(self, ptr, type, flags)
1091 #else
1092 #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
1093 #endif
1094 
1095 #define SWIG_InternalNewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
1096 
1097 #define SWIG_CheckImplicit(ty) SWIG_Python_CheckImplicit(ty)
1098 #define SWIG_AcquirePtr(ptr, src) SWIG_Python_AcquirePtr(ptr, src)
1099 #define swig_owntype int
1100 
1101 /* for raw packed data */
1102 #define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
1103 #define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type)
1104 
1105 /* for class or struct pointers */
1106 #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags)
1107 #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags)
1108 
1109 /* for C or C++ function pointers */
1110 #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_Python_ConvertFunctionPtr(obj, pptr, type)
1111 #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_Python_NewPointerObj(NULL, ptr, type, 0)
1112 
1113 /* for C++ member pointers, ie, member methods */
1114 #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
1115 #define SWIG_NewMemberObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type)
1116 
1117 
1118 /* Runtime API */
1119 
1120 #define SWIG_GetModule(clientdata) SWIG_Python_GetModule(clientdata)
1121 #define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer)
1122 #define SWIG_NewClientData(obj) SwigPyClientData_New(obj)
1123 
1124 #define SWIG_SetErrorObj SWIG_Python_SetErrorObj
1125 #define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg
1126 #define SWIG_ErrorType(code) SWIG_Python_ErrorType(code)
1127 #define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg)
1128 #define SWIG_fail goto fail
1129 
1130 
1131 /* Runtime API implementation */
1132 
1133 /* Error manipulation */
1134 
1135 SWIGINTERN void
1136 SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) {
1138  PyErr_SetObject(errtype, obj);
1139  Py_DECREF(obj);
1141 }
1142 
1143 SWIGINTERN void
1144 SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) {
1146  PyErr_SetString(errtype, msg);
1148 }
1149 
1150 #define SWIG_Python_Raise(obj, type, desc) SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj)
1151 
1152 /* Set a constant value */
1153 
1154 #if defined(SWIGPYTHON_BUILTIN)
1155 
1156 SWIGINTERN void
1157 SwigPyBuiltin_AddPublicSymbol(PyObject *seq, const char *key) {
1158  PyObject *s = PyString_InternFromString(key);
1159  PyList_Append(seq, s);
1160  Py_DECREF(s);
1161 }
1162 
1163 SWIGINTERN void
1164 SWIG_Python_SetConstant(PyObject *d, PyObject *public_interface, const char *name, PyObject *obj) {
1165  PyDict_SetItemString(d, name, obj);
1166  Py_DECREF(obj);
1167  if (public_interface)
1168  SwigPyBuiltin_AddPublicSymbol(public_interface, name);
1169 }
1170 
1171 #else
1172 
1173 SWIGINTERN void
1174 SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) {
1175  PyDict_SetItemString(d, name, obj);
1176  Py_DECREF(obj);
1177 }
1178 
1179 #endif
1180 
1181 /* Append a value to the result obj */
1182 
1183 SWIGINTERN PyObject*
1184 SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) {
1185  if (!result) {
1186  result = obj;
1187  } else if (result == Py_None) {
1188  Py_DECREF(result);
1189  result = obj;
1190  } else {
1191  if (!PyList_Check(result)) {
1192  PyObject *o2 = result;
1193  result = PyList_New(1);
1194  PyList_SetItem(result, 0, o2);
1195  }
1196  PyList_Append(result,obj);
1197  Py_DECREF(obj);
1198  }
1199  return result;
1200 }
1201 
1202 /* Unpack the argument tuple */
1203 
1204 SWIGINTERN Py_ssize_t
1205 SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
1206 {
1207  if (!args) {
1208  if (!min && !max) {
1209  return 1;
1210  } else {
1211  PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none",
1212  name, (min == max ? "" : "at least "), (int)min);
1213  return 0;
1214  }
1215  }
1216  if (!PyTuple_Check(args)) {
1217  if (min <= 1 && max >= 1) {
1218  Py_ssize_t i;
1219  objs[0] = args;
1220  for (i = 1; i < max; ++i) {
1221  objs[i] = 0;
1222  }
1223  return 2;
1224  }
1225  PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple");
1226  return 0;
1227  } else {
1228  Py_ssize_t l = PyTuple_GET_SIZE(args);
1229  if (l < min) {
1230  PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
1231  name, (min == max ? "" : "at least "), (int)min, (int)l);
1232  return 0;
1233  } else if (l > max) {
1234  PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
1235  name, (min == max ? "" : "at most "), (int)max, (int)l);
1236  return 0;
1237  } else {
1238  Py_ssize_t i;
1239  for (i = 0; i < l; ++i) {
1240  objs[i] = PyTuple_GET_ITEM(args, i);
1241  }
1242  for (; l < max; ++l) {
1243  objs[l] = 0;
1244  }
1245  return i + 1;
1246  }
1247  }
1248 }
1249 
1250 SWIGINTERN int
1251 SWIG_Python_CheckNoKeywords(PyObject *kwargs, const char *name) {
1252  int no_kwargs = 1;
1253  if (kwargs) {
1254  assert(PyDict_Check(kwargs));
1255  if (PyDict_Size(kwargs) > 0) {
1256  PyErr_Format(PyExc_TypeError, "%s() does not take keyword arguments", name);
1257  no_kwargs = 0;
1258  }
1259  }
1260  return no_kwargs;
1261 }
1262 
1263 /* A functor is a function object with one single object argument */
1264 #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunctionObjArgs(functor, obj, NULL);
1265 
1266 /*
1267  Helper for static pointer initialization for both C and C++ code, for example
1268  static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...);
1269 */
1270 #ifdef __cplusplus
1271 #define SWIG_STATIC_POINTER(var) var
1272 #else
1273 #define SWIG_STATIC_POINTER(var) var = 0; if (!var) var
1274 #endif
1275 
1276 /* -----------------------------------------------------------------------------
1277  * Pointer declarations
1278  * ----------------------------------------------------------------------------- */
1279 
1280 /* Flags for new pointer objects */
1281 #define SWIG_POINTER_NOSHADOW (SWIG_POINTER_OWN << 1)
1282 #define SWIG_POINTER_NEW (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN)
1283 
1284 #define SWIG_POINTER_IMPLICIT_CONV (SWIG_POINTER_DISOWN << 1)
1285 
1286 #define SWIG_BUILTIN_TP_INIT (SWIG_POINTER_OWN << 2)
1287 #define SWIG_BUILTIN_INIT (SWIG_BUILTIN_TP_INIT | SWIG_POINTER_OWN)
1288 
1289 #ifdef __cplusplus
1290 extern "C" {
1291 #endif
1292 
1293 /* The python void return value */
1294 
1295 SWIGRUNTIMEINLINE PyObject *
1297 {
1298  PyObject *none = Py_None;
1299  Py_INCREF(none);
1300  return none;
1301 }
1302 
1303 /* SwigPyClientData */
1304 
1305 typedef struct {
1306  PyObject *klass;
1307  PyObject *newraw;
1308  PyObject *newargs;
1309  PyObject *destroy;
1310  int delargs;
1311  int implicitconv;
1312  PyTypeObject *pytype;
1314 
1315 SWIGRUNTIMEINLINE int
1317 {
1319  int fail = data ? data->implicitconv : 0;
1320  if (fail)
1321  PyErr_SetString(PyExc_TypeError, "Implicit conversion is prohibited for explicit constructors.");
1322  return fail;
1323 }
1324 
1325 SWIGRUNTIMEINLINE PyObject *
1327  SwigPyClientData *data = desc ? (SwigPyClientData *) desc->clientdata : 0;
1328  PyObject *klass = data ? data->klass : 0;
1329  return (klass ? klass : PyExc_RuntimeError);
1330 }
1331 
1332 
1334 SwigPyClientData_New(PyObject* obj)
1335 {
1336  if (!obj) {
1337  return 0;
1338  } else {
1340  /* the klass element */
1341  data->klass = obj;
1342  Py_INCREF(data->klass);
1343  /* the newraw method and newargs arguments used to create a new raw instance */
1344  if (PyClass_Check(obj)) {
1345  data->newraw = 0;
1346  data->newargs = obj;
1347  Py_INCREF(obj);
1348  } else {
1349  data->newraw = PyObject_GetAttrString(data->klass, "__new__");
1350  if (data->newraw) {
1351  Py_INCREF(data->newraw);
1352  data->newargs = PyTuple_New(1);
1353  PyTuple_SetItem(data->newargs, 0, obj);
1354  } else {
1355  data->newargs = obj;
1356  }
1357  Py_INCREF(data->newargs);
1358  }
1359  /* the destroy method, aka as the C++ delete method */
1360  data->destroy = PyObject_GetAttrString(data->klass, "__swig_destroy__");
1361  if (PyErr_Occurred()) {
1362  PyErr_Clear();
1363  data->destroy = 0;
1364  }
1365  if (data->destroy) {
1366  int flags;
1367  Py_INCREF(data->destroy);
1368  flags = PyCFunction_GET_FLAGS(data->destroy);
1369  data->delargs = !(flags & (METH_O));
1370  } else {
1371  data->delargs = 0;
1372  }
1373  data->implicitconv = 0;
1374  data->pytype = 0;
1375  return data;
1376  }
1377 }
1378 
1379 SWIGRUNTIME void
1381  Py_XDECREF(data->newraw);
1382  Py_XDECREF(data->newargs);
1383  Py_XDECREF(data->destroy);
1384 }
1385 
1386 /* =============== SwigPyObject =====================*/
1387 
1388 typedef struct {
1389  PyObject_HEAD
1390  void *ptr;
1391  swig_type_info *ty;
1392  int own;
1393  PyObject *next;
1394 #ifdef SWIGPYTHON_BUILTIN
1395  PyObject *dict;
1396 #endif
1397 } SwigPyObject;
1398 
1399 
1400 #ifdef SWIGPYTHON_BUILTIN
1401 
1402 SWIGRUNTIME PyObject *
1403 SwigPyObject_get___dict__(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
1404 {
1405  SwigPyObject *sobj = (SwigPyObject *)v;
1406 
1407  if (!sobj->dict)
1408  sobj->dict = PyDict_New();
1409 
1410  Py_INCREF(sobj->dict);
1411  return sobj->dict;
1412 }
1413 
1414 #endif
1415 
1416 SWIGRUNTIME PyObject *
1418 {
1419  return PyLong_FromVoidPtr(v->ptr);
1420 }
1421 
1422 SWIGRUNTIME PyObject *
1423 SwigPyObject_format(const char* fmt, SwigPyObject *v)
1424 {
1425  PyObject *res = NULL;
1426  PyObject *args = PyTuple_New(1);
1427  if (args) {
1428  if (PyTuple_SetItem(args, 0, SwigPyObject_long(v)) == 0) {
1429  PyObject *ofmt = SWIG_Python_str_FromChar(fmt);
1430  if (ofmt) {
1431 #if PY_VERSION_HEX >= 0x03000000
1432  res = PyUnicode_Format(ofmt,args);
1433 #else
1434  res = PyString_Format(ofmt,args);
1435 #endif
1436  Py_DECREF(ofmt);
1437  }
1438  Py_DECREF(args);
1439  }
1440  }
1441  return res;
1442 }
1443 
1444 SWIGRUNTIME PyObject *
1446 {
1447  return SwigPyObject_format("%o",v);
1448 }
1449 
1450 SWIGRUNTIME PyObject *
1452 {
1453  return SwigPyObject_format("%x",v);
1454 }
1455 
1456 SWIGRUNTIME PyObject *
1458 {
1459  const char *name = SWIG_TypePrettyName(v->ty);
1460  PyObject *repr = SWIG_Python_str_FromFormat("<Swig Object of type '%s' at %p>", (name ? name : "unknown"), (void *)v);
1461  if (v->next) {
1462  PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next);
1463 # if PY_VERSION_HEX >= 0x03000000
1464  PyObject *joined = PyUnicode_Concat(repr, nrep);
1465  Py_DecRef(repr);
1466  Py_DecRef(nrep);
1467  repr = joined;
1468 # else
1469  PyString_ConcatAndDel(&repr,nrep);
1470 # endif
1471  }
1472  return repr;
1473 }
1474 
1475 /* We need a version taking two PyObject* parameters so it's a valid
1476  * PyCFunction to use in swigobject_methods[]. */
1477 SWIGRUNTIME PyObject *
1478 SwigPyObject_repr2(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
1479 {
1480  return SwigPyObject_repr((SwigPyObject*)v);
1481 }
1482 
1483 SWIGRUNTIME int
1485 {
1486  void *i = v->ptr;
1487  void *j = w->ptr;
1488  return (i < j) ? -1 : ((i > j) ? 1 : 0);
1489 }
1490 
1491 /* Added for Python 3.x, would it also be useful for Python 2.x? */
1492 SWIGRUNTIME PyObject*
1494 {
1495  PyObject* res;
1496  if( op != Py_EQ && op != Py_NE ) {
1497  Py_INCREF(Py_NotImplemented);
1498  return Py_NotImplemented;
1499  }
1500  res = PyBool_FromLong( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ? 1 : 0);
1501  return res;
1502 }
1503 
1504 
1505 SWIGRUNTIME PyTypeObject* SwigPyObject_TypeOnce(void);
1506 
1507 #ifdef SWIGPYTHON_BUILTIN
1508 static swig_type_info *SwigPyObject_stype = 0;
1509 SWIGRUNTIME PyTypeObject*
1510 SwigPyObject_type(void) {
1511  SwigPyClientData *cd;
1512  assert(SwigPyObject_stype);
1513  cd = (SwigPyClientData*) SwigPyObject_stype->clientdata;
1514  assert(cd);
1515  assert(cd->pytype);
1516  return cd->pytype;
1517 }
1518 #else
1519 SWIGRUNTIME PyTypeObject*
1521  static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyObject_TypeOnce();
1522  return type;
1523 }
1524 #endif
1525 
1527 SwigPyObject_Check(PyObject *op) {
1528 #ifdef SWIGPYTHON_BUILTIN
1529  PyTypeObject *target_tp = SwigPyObject_type();
1530  if (PyType_IsSubtype(op->ob_type, target_tp))
1531  return 1;
1532  return (strcmp(op->ob_type->tp_name, "SwigPyObject") == 0);
1533 #else
1534  return (Py_TYPE(op) == SwigPyObject_type())
1535  || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0);
1536 #endif
1537 }
1538 
1539 SWIGRUNTIME PyObject *
1540 SwigPyObject_New(void *ptr, swig_type_info *ty, int own);
1541 
1542 SWIGRUNTIME void
1544 {
1545  SwigPyObject *sobj = (SwigPyObject *) v;
1546  PyObject *next = sobj->next;
1547  if (sobj->own == SWIG_POINTER_OWN) {
1548  swig_type_info *ty = sobj->ty;
1549  SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0;
1550  PyObject *destroy = data ? data->destroy : 0;
1551  if (destroy) {
1552  /* destroy is always a VARARGS method */
1553  PyObject *res;
1554 
1555  /* PyObject_CallFunction() has the potential to silently drop
1556  the active exception. In cases of unnamed temporary
1557  variable or where we just finished iterating over a generator
1558  StopIteration will be active right now, and this needs to
1559  remain true upon return from SwigPyObject_dealloc. So save
1560  and restore. */
1561 
1562  PyObject *type = NULL, *value = NULL, *traceback = NULL;
1563  PyErr_Fetch(&type, &value, &traceback);
1564 
1565  if (data->delargs) {
1566  /* we need to create a temporary object to carry the destroy operation */
1567  PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0);
1568  res = SWIG_Python_CallFunctor(destroy, tmp);
1569  Py_DECREF(tmp);
1570  } else {
1571  PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
1572  PyObject *mself = PyCFunction_GET_SELF(destroy);
1573  res = ((*meth)(mself, v));
1574  }
1575  if (!res)
1576  PyErr_WriteUnraisable(destroy);
1577 
1578  PyErr_Restore(type, value, traceback);
1579 
1580  Py_XDECREF(res);
1581  }
1582 #if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
1583  else {
1584  const char *name = SWIG_TypePrettyName(ty);
1585  printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown"));
1586  }
1587 #endif
1588  }
1589  Py_XDECREF(next);
1590  PyObject_DEL(v);
1591 }
1592 
1593 SWIGRUNTIME PyObject*
1594 SwigPyObject_append(PyObject* v, PyObject* next)
1595 {
1596  SwigPyObject *sobj = (SwigPyObject *) v;
1597  if (!SwigPyObject_Check(next)) {
1598  PyErr_SetString(PyExc_TypeError, "Attempt to append a non SwigPyObject");
1599  return NULL;
1600  }
1601  sobj->next = next;
1602  Py_INCREF(next);
1603  return SWIG_Py_Void();
1604 }
1605 
1606 SWIGRUNTIME PyObject*
1607 SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1608 {
1609  SwigPyObject *sobj = (SwigPyObject *) v;
1610  if (sobj->next) {
1611  Py_INCREF(sobj->next);
1612  return sobj->next;
1613  } else {
1614  return SWIG_Py_Void();
1615  }
1616 }
1617 
1618 SWIGINTERN PyObject*
1619 SwigPyObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1620 {
1621  SwigPyObject *sobj = (SwigPyObject *)v;
1622  sobj->own = 0;
1623  return SWIG_Py_Void();
1624 }
1625 
1626 SWIGINTERN PyObject*
1627 SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1628 {
1629  SwigPyObject *sobj = (SwigPyObject *)v;
1630  sobj->own = SWIG_POINTER_OWN;
1631  return SWIG_Py_Void();
1632 }
1633 
1634 SWIGINTERN PyObject*
1635 SwigPyObject_own(PyObject *v, PyObject *args)
1636 {
1637  PyObject *val = 0;
1638  if (!PyArg_UnpackTuple(args, "own", 0, 1, &val)) {
1639  return NULL;
1640  } else {
1641  SwigPyObject *sobj = (SwigPyObject *)v;
1642  PyObject *obj = PyBool_FromLong(sobj->own);
1643  if (val) {
1644  if (PyObject_IsTrue(val)) {
1645  SwigPyObject_acquire(v,args);
1646  } else {
1647  SwigPyObject_disown(v,args);
1648  }
1649  }
1650  return obj;
1651  }
1652 }
1653 
1654 static PyMethodDef
1656  {"disown", SwigPyObject_disown, METH_NOARGS, "releases ownership of the pointer"},
1657  {"acquire", SwigPyObject_acquire, METH_NOARGS, "acquires ownership of the pointer"},
1658  {"own", SwigPyObject_own, METH_VARARGS, "returns/sets ownership of the pointer"},
1659  {"append", SwigPyObject_append, METH_O, "appends another 'this' object"},
1660  {"next", SwigPyObject_next, METH_NOARGS, "returns the next 'this' object"},
1661  {"__repr__",SwigPyObject_repr2, METH_NOARGS, "returns object representation"},
1662  {0, 0, 0, 0}
1663 };
1664 
1665 SWIGRUNTIME PyTypeObject*
1667  static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer";
1668 
1669  static PyNumberMethods SwigPyObject_as_number = {
1670  (binaryfunc)0, /*nb_add*/
1671  (binaryfunc)0, /*nb_subtract*/
1672  (binaryfunc)0, /*nb_multiply*/
1673  /* nb_divide removed in Python 3 */
1674 #if PY_VERSION_HEX < 0x03000000
1675  (binaryfunc)0, /*nb_divide*/
1676 #endif
1677  (binaryfunc)0, /*nb_remainder*/
1678  (binaryfunc)0, /*nb_divmod*/
1679  (ternaryfunc)0,/*nb_power*/
1680  (unaryfunc)0, /*nb_negative*/
1681  (unaryfunc)0, /*nb_positive*/
1682  (unaryfunc)0, /*nb_absolute*/
1683  (inquiry)0, /*nb_nonzero*/
1684  0, /*nb_invert*/
1685  0, /*nb_lshift*/
1686  0, /*nb_rshift*/
1687  0, /*nb_and*/
1688  0, /*nb_xor*/
1689  0, /*nb_or*/
1690 #if PY_VERSION_HEX < 0x03000000
1691  0, /*nb_coerce*/
1692 #endif
1693  (unaryfunc)SwigPyObject_long, /*nb_int*/
1694 #if PY_VERSION_HEX < 0x03000000
1695  (unaryfunc)SwigPyObject_long, /*nb_long*/
1696 #else
1697  0, /*nb_reserved*/
1698 #endif
1699  (unaryfunc)0, /*nb_float*/
1700 #if PY_VERSION_HEX < 0x03000000
1701  (unaryfunc)SwigPyObject_oct, /*nb_oct*/
1702  (unaryfunc)SwigPyObject_hex, /*nb_hex*/
1703 #endif
1704 #if PY_VERSION_HEX >= 0x03050000 /* 3.5 */
1705  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_matrix_multiply */
1706 #elif PY_VERSION_HEX >= 0x03000000 /* 3.0 */
1707  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */
1708 #else
1709  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */
1710 #endif
1711  };
1712 
1713  static PyTypeObject swigpyobject_type;
1714  static int type_init = 0;
1715  if (!type_init) {
1716  const PyTypeObject tmp = {
1717 #if PY_VERSION_HEX >= 0x03000000
1718  PyVarObject_HEAD_INIT(NULL, 0)
1719 #else
1720  PyObject_HEAD_INIT(NULL)
1721  0, /* ob_size */
1722 #endif
1723  "SwigPyObject", /* tp_name */
1724  sizeof(SwigPyObject), /* tp_basicsize */
1725  0, /* tp_itemsize */
1726  (destructor)SwigPyObject_dealloc, /* tp_dealloc */
1727  0, /* tp_print */
1728  (getattrfunc)0, /* tp_getattr */
1729  (setattrfunc)0, /* tp_setattr */
1730 #if PY_VERSION_HEX >= 0x03000000
1731  0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */
1732 #else
1733  (cmpfunc)SwigPyObject_compare, /* tp_compare */
1734 #endif
1735  (reprfunc)SwigPyObject_repr, /* tp_repr */
1736  &SwigPyObject_as_number, /* tp_as_number */
1737  0, /* tp_as_sequence */
1738  0, /* tp_as_mapping */
1739  (hashfunc)0, /* tp_hash */
1740  (ternaryfunc)0, /* tp_call */
1741  0, /* tp_str */
1742  PyObject_GenericGetAttr, /* tp_getattro */
1743  0, /* tp_setattro */
1744  0, /* tp_as_buffer */
1745  Py_TPFLAGS_DEFAULT, /* tp_flags */
1746  swigobject_doc, /* tp_doc */
1747  0, /* tp_traverse */
1748  0, /* tp_clear */
1749  (richcmpfunc)SwigPyObject_richcompare,/* tp_richcompare */
1750  0, /* tp_weaklistoffset */
1751  0, /* tp_iter */
1752  0, /* tp_iternext */
1753  swigobject_methods, /* tp_methods */
1754  0, /* tp_members */
1755  0, /* tp_getset */
1756  0, /* tp_base */
1757  0, /* tp_dict */
1758  0, /* tp_descr_get */
1759  0, /* tp_descr_set */
1760  0, /* tp_dictoffset */
1761  0, /* tp_init */
1762  0, /* tp_alloc */
1763  0, /* tp_new */
1764  0, /* tp_free */
1765  0, /* tp_is_gc */
1766  0, /* tp_bases */
1767  0, /* tp_mro */
1768  0, /* tp_cache */
1769  0, /* tp_subclasses */
1770  0, /* tp_weaklist */
1771  0, /* tp_del */
1772  0, /* tp_version_tag */
1773 #if PY_VERSION_HEX >= 0x03040000
1774  0, /* tp_finalize */
1775 #endif
1776 #if PY_VERSION_HEX >= 0x03080000
1777  0, /* tp_vectorcall */
1778 #endif
1779 #if (PY_VERSION_HEX >= 0x03080000) && (PY_VERSION_HEX < 0x03090000)
1780  0, /* tp_print */
1781 #endif
1782 #ifdef COUNT_ALLOCS
1783  0, /* tp_allocs */
1784  0, /* tp_frees */
1785  0, /* tp_maxalloc */
1786  0, /* tp_prev */
1787  0 /* tp_next */
1788 #endif
1789  };
1790  swigpyobject_type = tmp;
1791  type_init = 1;
1792  if (PyType_Ready(&swigpyobject_type) < 0)
1793  return NULL;
1794  }
1795  return &swigpyobject_type;
1796 }
1797 
1798 SWIGRUNTIME PyObject *
1799 SwigPyObject_New(void *ptr, swig_type_info *ty, int own)
1800 {
1801  SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type());
1802  if (sobj) {
1803  sobj->ptr = ptr;
1804  sobj->ty = ty;
1805  sobj->own = own;
1806  sobj->next = 0;
1807  }
1808  return (PyObject *)sobj;
1809 }
1810 
1811 /* -----------------------------------------------------------------------------
1812  * Implements a simple Swig Packed type, and use it instead of string
1813  * ----------------------------------------------------------------------------- */
1814 
1815 typedef struct {
1816  PyObject_HEAD
1817  void *pack;
1818  swig_type_info *ty;
1819  size_t size;
1820 } SwigPyPacked;
1821 
1822 SWIGRUNTIME PyObject *
1824 {
1825  char result[SWIG_BUFFER_SIZE];
1826  if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
1827  return SWIG_Python_str_FromFormat("<Swig Packed at %s%s>", result, v->ty->name);
1828  } else {
1829  return SWIG_Python_str_FromFormat("<Swig Packed %s>", v->ty->name);
1830  }
1831 }
1832 
1833 SWIGRUNTIME PyObject *
1835 {
1836  char result[SWIG_BUFFER_SIZE];
1837  if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){
1838  return SWIG_Python_str_FromFormat("%s%s", result, v->ty->name);
1839  } else {
1840  return SWIG_Python_str_FromChar(v->ty->name);
1841  }
1842 }
1843 
1844 SWIGRUNTIME int
1846 {
1847  size_t i = v->size;
1848  size_t j = w->size;
1849  int s = (i < j) ? -1 : ((i > j) ? 1 : 0);
1850  return s ? s : strncmp((const char *)v->pack, (const char *)w->pack, 2*v->size);
1851 }
1852 
1853 SWIGRUNTIME PyTypeObject* SwigPyPacked_TypeOnce(void);
1854 
1855 SWIGRUNTIME PyTypeObject*
1857  static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyPacked_TypeOnce();
1858  return type;
1859 }
1860 
1862 SwigPyPacked_Check(PyObject *op) {
1863  return ((op)->ob_type == SwigPyPacked_TypeOnce())
1864  || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0);
1865 }
1866 
1867 SWIGRUNTIME void
1869 {
1870  if (SwigPyPacked_Check(v)) {
1871  SwigPyPacked *sobj = (SwigPyPacked *) v;
1872  free(sobj->pack);
1873  }
1874  PyObject_DEL(v);
1875 }
1876 
1877 SWIGRUNTIME PyTypeObject*
1879  static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer";
1880  static PyTypeObject swigpypacked_type;
1881  static int type_init = 0;
1882  if (!type_init) {
1883  const PyTypeObject tmp = {
1884 #if PY_VERSION_HEX>=0x03000000
1885  PyVarObject_HEAD_INIT(NULL, 0)
1886 #else
1887  PyObject_HEAD_INIT(NULL)
1888  0, /* ob_size */
1889 #endif
1890  "SwigPyPacked", /* tp_name */
1891  sizeof(SwigPyPacked), /* tp_basicsize */
1892  0, /* tp_itemsize */
1893  (destructor)SwigPyPacked_dealloc, /* tp_dealloc */
1894  0, /* tp_print */
1895  (getattrfunc)0, /* tp_getattr */
1896  (setattrfunc)0, /* tp_setattr */
1897 #if PY_VERSION_HEX>=0x03000000
1898  0, /* tp_reserved in 3.0.1 */
1899 #else
1900  (cmpfunc)SwigPyPacked_compare, /* tp_compare */
1901 #endif
1902  (reprfunc)SwigPyPacked_repr, /* tp_repr */
1903  0, /* tp_as_number */
1904  0, /* tp_as_sequence */
1905  0, /* tp_as_mapping */
1906  (hashfunc)0, /* tp_hash */
1907  (ternaryfunc)0, /* tp_call */
1908  (reprfunc)SwigPyPacked_str, /* tp_str */
1909  PyObject_GenericGetAttr, /* tp_getattro */
1910  0, /* tp_setattro */
1911  0, /* tp_as_buffer */
1912  Py_TPFLAGS_DEFAULT, /* tp_flags */
1913  swigpacked_doc, /* tp_doc */
1914  0, /* tp_traverse */
1915  0, /* tp_clear */
1916  0, /* tp_richcompare */
1917  0, /* tp_weaklistoffset */
1918  0, /* tp_iter */
1919  0, /* tp_iternext */
1920  0, /* tp_methods */
1921  0, /* tp_members */
1922  0, /* tp_getset */
1923  0, /* tp_base */
1924  0, /* tp_dict */
1925  0, /* tp_descr_get */
1926  0, /* tp_descr_set */
1927  0, /* tp_dictoffset */
1928  0, /* tp_init */
1929  0, /* tp_alloc */
1930  0, /* tp_new */
1931  0, /* tp_free */
1932  0, /* tp_is_gc */
1933  0, /* tp_bases */
1934  0, /* tp_mro */
1935  0, /* tp_cache */
1936  0, /* tp_subclasses */
1937  0, /* tp_weaklist */
1938  0, /* tp_del */
1939  0, /* tp_version_tag */
1940 #if PY_VERSION_HEX >= 0x03040000
1941  0, /* tp_finalize */
1942 #endif
1943 #if PY_VERSION_HEX >= 0x03080000
1944  0, /* tp_vectorcall */
1945 #endif
1946 #if (PY_VERSION_HEX >= 0x03080000) && (PY_VERSION_HEX < 0x03090000)
1947  0, /* tp_print */
1948 #endif
1949 #ifdef COUNT_ALLOCS
1950  0, /* tp_allocs */
1951  0, /* tp_frees */
1952  0, /* tp_maxalloc */
1953  0, /* tp_prev */
1954  0 /* tp_next */
1955 #endif
1956  };
1957  swigpypacked_type = tmp;
1958  type_init = 1;
1959  if (PyType_Ready(&swigpypacked_type) < 0)
1960  return NULL;
1961  }
1962  return &swigpypacked_type;
1963 }
1964 
1965 SWIGRUNTIME PyObject *
1966 SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty)
1967 {
1968  SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type());
1969  if (sobj) {
1970  void *pack = malloc(size);
1971  if (pack) {
1972  memcpy(pack, ptr, size);
1973  sobj->pack = pack;
1974  sobj->ty = ty;
1975  sobj->size = size;
1976  } else {
1977  PyObject_DEL((PyObject *) sobj);
1978  sobj = 0;
1979  }
1980  }
1981  return (PyObject *) sobj;
1982 }
1983 
1985 SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
1986 {
1987  if (SwigPyPacked_Check(obj)) {
1988  SwigPyPacked *sobj = (SwigPyPacked *)obj;
1989  if (sobj->size != size) return 0;
1990  memcpy(ptr, sobj->pack, size);
1991  return sobj->ty;
1992  } else {
1993  return 0;
1994  }
1995 }
1996 
1997 /* -----------------------------------------------------------------------------
1998  * pointers/data manipulation
1999  * ----------------------------------------------------------------------------- */
2000 
2001 static PyObject *Swig_This_global = NULL;
2002 
2003 SWIGRUNTIME PyObject *
2005 {
2006  if (Swig_This_global == NULL)
2008  return Swig_This_global;
2009 }
2010 
2011 /* #define SWIG_PYTHON_SLOW_GETSET_THIS */
2012 
2013 /* TODO: I don't know how to implement the fast getset in Python 3 right now */
2014 #if PY_VERSION_HEX>=0x03000000
2015 #define SWIG_PYTHON_SLOW_GETSET_THIS
2016 #endif
2017 
2019 SWIG_Python_GetSwigThis(PyObject *pyobj)
2020 {
2021  PyObject *obj;
2022 
2023  if (SwigPyObject_Check(pyobj))
2024  return (SwigPyObject *) pyobj;
2025 
2026 #ifdef SWIGPYTHON_BUILTIN
2027  (void)obj;
2028 # ifdef PyWeakref_CheckProxy
2029  if (PyWeakref_CheckProxy(pyobj)) {
2030  pyobj = PyWeakref_GET_OBJECT(pyobj);
2031  if (pyobj && SwigPyObject_Check(pyobj))
2032  return (SwigPyObject*) pyobj;
2033  }
2034 # endif
2035  return NULL;
2036 #else
2037 
2038  obj = 0;
2039 
2040 #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
2041  if (PyInstance_Check(pyobj)) {
2042  obj = _PyInstance_Lookup(pyobj, SWIG_This());
2043  } else {
2044  PyObject **dictptr = _PyObject_GetDictPtr(pyobj);
2045  if (dictptr != NULL) {
2046  PyObject *dict = *dictptr;
2047  obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0;
2048  } else {
2049 #ifdef PyWeakref_CheckProxy
2050  if (PyWeakref_CheckProxy(pyobj)) {
2051  PyObject *wobj = PyWeakref_GET_OBJECT(pyobj);
2052  return wobj ? SWIG_Python_GetSwigThis(wobj) : 0;
2053  }
2054 #endif
2055  obj = PyObject_GetAttr(pyobj,SWIG_This());
2056  if (obj) {
2057  Py_DECREF(obj);
2058  } else {
2059  if (PyErr_Occurred()) PyErr_Clear();
2060  return 0;
2061  }
2062  }
2063  }
2064 #else
2065  obj = PyObject_GetAttr(pyobj,SWIG_This());
2066  if (obj) {
2067  Py_DECREF(obj);
2068  } else {
2069  if (PyErr_Occurred()) PyErr_Clear();
2070  return 0;
2071  }
2072 #endif
2073  if (obj && !SwigPyObject_Check(obj)) {
2074  /* a PyObject is called 'this', try to get the 'real this'
2075  SwigPyObject from it */
2076  return SWIG_Python_GetSwigThis(obj);
2077  }
2078  return (SwigPyObject *)obj;
2079 #endif
2080 }
2081 
2082 /* Acquire a pointer value */
2083 
2084 SWIGRUNTIME int
2085 SWIG_Python_AcquirePtr(PyObject *obj, int own) {
2086  if (own == SWIG_POINTER_OWN) {
2088  if (sobj) {
2089  int oldown = sobj->own;
2090  sobj->own = own;
2091  return oldown;
2092  }
2093  }
2094  return 0;
2095 }
2096 
2097 /* Convert a pointer value */
2098 
2099 SWIGRUNTIME int
2100 SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) {
2101  int res;
2102  SwigPyObject *sobj;
2103  int implicit_conv = (flags & SWIG_POINTER_IMPLICIT_CONV) != 0;
2104 
2105  if (!obj)
2106  return SWIG_ERROR;
2107  if (obj == Py_None && !implicit_conv) {
2108  if (ptr)
2109  *ptr = 0;
2111  }
2112 
2113  res = SWIG_ERROR;
2114 
2115  sobj = SWIG_Python_GetSwigThis(obj);
2116  if (own)
2117  *own = 0;
2118  while (sobj) {
2119  void *vptr = sobj->ptr;
2120  if (ty) {
2121  swig_type_info *to = sobj->ty;
2122  if (to == ty) {
2123  /* no type cast needed */
2124  if (ptr) *ptr = vptr;
2125  break;
2126  } else {
2127  swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
2128  if (!tc) {
2129  sobj = (SwigPyObject *)sobj->next;
2130  } else {
2131  if (ptr) {
2132  int newmemory = 0;
2133  *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
2134  if (newmemory == SWIG_CAST_NEW_MEMORY) {
2135  assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */
2136  if (own)
2137  *own = *own | SWIG_CAST_NEW_MEMORY;
2138  }
2139  }
2140  break;
2141  }
2142  }
2143  } else {
2144  if (ptr) *ptr = vptr;
2145  break;
2146  }
2147  }
2148  if (sobj) {
2149  if (own)
2150  *own = *own | sobj->own;
2151  if (flags & SWIG_POINTER_DISOWN) {
2152  sobj->own = 0;
2153  }
2154  res = SWIG_OK;
2155  } else {
2156  if (implicit_conv) {
2157  SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0;
2158  if (data && !data->implicitconv) {
2159  PyObject *klass = data->klass;
2160  if (klass) {
2161  PyObject *impconv;
2162  data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/
2163  impconv = SWIG_Python_CallFunctor(klass, obj);
2164  data->implicitconv = 0;
2165  if (PyErr_Occurred()) {
2166  PyErr_Clear();
2167  impconv = 0;
2168  }
2169  if (impconv) {
2170  SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv);
2171  if (iobj) {
2172  void *vptr;
2173  res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0);
2174  if (SWIG_IsOK(res)) {
2175  if (ptr) {
2176  *ptr = vptr;
2177  /* transfer the ownership to 'ptr' */
2178  iobj->own = 0;
2179  res = SWIG_AddCast(res);
2180  res = SWIG_AddNewMask(res);
2181  } else {
2182  res = SWIG_AddCast(res);
2183  }
2184  }
2185  }
2186  Py_DECREF(impconv);
2187  }
2188  }
2189  }
2190  if (!SWIG_IsOK(res) && obj == Py_None) {
2191  if (ptr)
2192  *ptr = 0;
2193  if (PyErr_Occurred())
2194  PyErr_Clear();
2195  res = SWIG_OK;
2196  }
2197  }
2198  }
2199  return res;
2200 }
2201 
2202 /* Convert a function ptr value */
2203 
2204 SWIGRUNTIME int
2205 SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
2206  if (!PyCFunction_Check(obj)) {
2207  return SWIG_ConvertPtr(obj, ptr, ty, 0);
2208  } else {
2209  void *vptr = 0;
2210  swig_cast_info *tc;
2211 
2212  /* here we get the method pointer for callbacks */
2213  const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
2214  const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
2215  if (desc)
2216  desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
2217  if (!desc)
2218  return SWIG_ERROR;
2219  tc = SWIG_TypeCheck(desc,ty);
2220  if (tc) {
2221  int newmemory = 0;
2222  *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
2223  assert(!newmemory); /* newmemory handling not yet implemented */
2224  } else {
2225  return SWIG_ERROR;
2226  }
2227  return SWIG_OK;
2228  }
2229 }
2230 
2231 /* Convert a packed pointer value */
2232 
2233 SWIGRUNTIME int
2234 SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) {
2235  swig_type_info *to = SwigPyPacked_UnpackData(obj, ptr, sz);
2236  if (!to) return SWIG_ERROR;
2237  if (ty) {
2238  if (to != ty) {
2239  /* check type cast? */
2240  swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
2241  if (!tc) return SWIG_ERROR;
2242  }
2243  }
2244  return SWIG_OK;
2245 }
2246 
2247 /* -----------------------------------------------------------------------------
2248  * Create a new pointer object
2249  * ----------------------------------------------------------------------------- */
2250 
2251 /*
2252  Create a new instance object, without calling __init__, and set the
2253  'this' attribute.
2254 */
2255 
2256 SWIGRUNTIME PyObject*
2258 {
2259  PyObject *inst = 0;
2260  PyObject *newraw = data->newraw;
2261  if (newraw) {
2262  inst = PyObject_Call(newraw, data->newargs, NULL);
2263  if (inst) {
2264 #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
2265  PyObject **dictptr = _PyObject_GetDictPtr(inst);
2266  if (dictptr != NULL) {
2267  PyObject *dict = *dictptr;
2268  if (dict == NULL) {
2269  dict = PyDict_New();
2270  *dictptr = dict;
2271  PyDict_SetItem(dict, SWIG_This(), swig_this);
2272  }
2273  }
2274 #else
2275  if (PyObject_SetAttr(inst, SWIG_This(), swig_this) == -1) {
2276  Py_DECREF(inst);
2277  inst = 0;
2278  }
2279 #endif
2280  }
2281  } else {
2282 #if PY_VERSION_HEX >= 0x03000000
2283  PyObject *empty_args = PyTuple_New(0);
2284  if (empty_args) {
2285  PyObject *empty_kwargs = PyDict_New();
2286  if (empty_kwargs) {
2287  inst = ((PyTypeObject *)data->newargs)->tp_new((PyTypeObject *)data->newargs, empty_args, empty_kwargs);
2288  Py_DECREF(empty_kwargs);
2289  if (inst) {
2290  if (PyObject_SetAttr(inst, SWIG_This(), swig_this) == -1) {
2291  Py_DECREF(inst);
2292  inst = 0;
2293  } else {
2294  Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG;
2295  }
2296  }
2297  }
2298  Py_DECREF(empty_args);
2299  }
2300 #else
2301  PyObject *dict = PyDict_New();
2302  if (dict) {
2303  PyDict_SetItem(dict, SWIG_This(), swig_this);
2304  inst = PyInstance_NewRaw(data->newargs, dict);
2305  Py_DECREF(dict);
2306  }
2307 #endif
2308  }
2309  return inst;
2310 }
2311 
2312 SWIGRUNTIME int
2313 SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
2314 {
2315 #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
2316  PyObject **dictptr = _PyObject_GetDictPtr(inst);
2317  if (dictptr != NULL) {
2318  PyObject *dict = *dictptr;
2319  if (dict == NULL) {
2320  dict = PyDict_New();
2321  *dictptr = dict;
2322  }
2323  return PyDict_SetItem(dict, SWIG_This(), swig_this);
2324  }
2325 #endif
2326  return PyObject_SetAttr(inst, SWIG_This(), swig_this);
2327 }
2328 
2329 
2330 SWIGINTERN PyObject *
2332  PyObject *obj[2];
2333  if (!SWIG_Python_UnpackTuple(args, "swiginit", 2, 2, obj)) {
2334  return NULL;
2335  } else {
2336  SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]);
2337  if (sthis) {
2338  SwigPyObject_append((PyObject*) sthis, obj[1]);
2339  } else {
2340  if (SWIG_Python_SetSwigThis(obj[0], obj[1]) != 0)
2341  return NULL;
2342  }
2343  return SWIG_Py_Void();
2344  }
2345 }
2346 
2347 /* Create a new pointer object */
2348 
2349 SWIGRUNTIME PyObject *
2350 SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int flags) {
2351  SwigPyClientData *clientdata;
2352  PyObject * robj;
2353  int own;
2354 
2355  if (!ptr)
2356  return SWIG_Py_Void();
2357 
2358  clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0;
2359  own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0;
2360  if (clientdata && clientdata->pytype) {
2361  SwigPyObject *newobj;
2362  if (flags & SWIG_BUILTIN_TP_INIT) {
2363  newobj = (SwigPyObject*) self;
2364  if (newobj->ptr) {
2365  PyObject *next_self = clientdata->pytype->tp_alloc(clientdata->pytype, 0);
2366  while (newobj->next)
2367  newobj = (SwigPyObject *) newobj->next;
2368  newobj->next = next_self;
2369  newobj = (SwigPyObject *)next_self;
2370 #ifdef SWIGPYTHON_BUILTIN
2371  newobj->dict = 0;
2372 #endif
2373  }
2374  } else {
2375  newobj = PyObject_New(SwigPyObject, clientdata->pytype);
2376 #ifdef SWIGPYTHON_BUILTIN
2377  newobj->dict = 0;
2378 #endif
2379  }
2380  if (newobj) {
2381  newobj->ptr = ptr;
2382  newobj->ty = type;
2383  newobj->own = own;
2384  newobj->next = 0;
2385  return (PyObject*) newobj;
2386  }
2387  return SWIG_Py_Void();
2388  }
2389 
2390  assert(!(flags & SWIG_BUILTIN_TP_INIT));
2391 
2392  robj = SwigPyObject_New(ptr, type, own);
2393  if (robj && clientdata && !(flags & SWIG_POINTER_NOSHADOW)) {
2394  PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj);
2395  Py_DECREF(robj);
2396  robj = inst;
2397  }
2398  return robj;
2399 }
2400 
2401 /* Create a new packed object */
2402 
2403 SWIGRUNTIMEINLINE PyObject *
2404 SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) {
2405  return ptr ? SwigPyPacked_New((void *) ptr, sz, type) : SWIG_Py_Void();
2406 }
2407 
2408 /* -----------------------------------------------------------------------------*
2409  * Get type list
2410  * -----------------------------------------------------------------------------*/
2411 
2412 #ifdef SWIG_LINK_RUNTIME
2413 void *SWIG_ReturnGlobalTypeList(void *);
2414 #endif
2415 
2418  static void *type_pointer = (void *)0;
2419  /* first check if module already created */
2420  if (!type_pointer) {
2421 #ifdef SWIG_LINK_RUNTIME
2422  type_pointer = SWIG_ReturnGlobalTypeList((void *)0);
2423 #else
2424  type_pointer = PyCapsule_Import(SWIGPY_CAPSULE_NAME, 0);
2425  if (PyErr_Occurred()) {
2426  PyErr_Clear();
2427  type_pointer = (void *)0;
2428  }
2429 #endif
2430  }
2431  return (swig_module_info *) type_pointer;
2432 }
2433 
2434 SWIGRUNTIME void
2436 {
2437  swig_module_info *swig_module = (swig_module_info *) PyCapsule_GetPointer(obj, SWIGPY_CAPSULE_NAME);
2438  swig_type_info **types = swig_module->types;
2439  size_t i;
2440  for (i =0; i < swig_module->size; ++i) {
2441  swig_type_info *ty = types[i];
2442  if (ty->owndata) {
2444  if (data) SwigPyClientData_Del(data);
2445  }
2446  }
2447  Py_DECREF(SWIG_This());
2448  Swig_This_global = NULL;
2449 }
2450 
2451 SWIGRUNTIME void
2453 #if PY_VERSION_HEX >= 0x03000000
2454  /* Add a dummy module object into sys.modules */
2455  PyObject *module = PyImport_AddModule("swig_runtime_data" SWIG_RUNTIME_VERSION);
2456 #else
2457  static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} }; /* Sentinel */
2458  PyObject *module = Py_InitModule("swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table);
2459 #endif
2460  PyObject *pointer = PyCapsule_New((void *) swig_module, SWIGPY_CAPSULE_NAME, SWIG_Python_DestroyModule);
2461  if (pointer && module) {
2462  PyModule_AddObject(module, "type_pointer_capsule" SWIG_TYPE_TABLE_NAME, pointer);
2463  } else {
2464  Py_XDECREF(pointer);
2465  }
2466 }
2467 
2468 /* The python cached type query */
2469 SWIGRUNTIME PyObject *
2471  static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New();
2472  return cache;
2473 }
2474 
2476 SWIG_Python_TypeQuery(const char *type)
2477 {
2478  PyObject *cache = SWIG_Python_TypeCache();
2479  PyObject *key = SWIG_Python_str_FromChar(type);
2480  PyObject *obj = PyDict_GetItem(cache, key);
2481  swig_type_info *descriptor;
2482  if (obj) {
2483  descriptor = (swig_type_info *) PyCapsule_GetPointer(obj, NULL);
2484  } else {
2486  descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type);
2487  if (descriptor) {
2488  obj = PyCapsule_New((void*) descriptor, NULL, NULL);
2489  PyDict_SetItem(cache, key, obj);
2490  Py_DECREF(obj);
2491  }
2492  }
2493  Py_DECREF(key);
2494  return descriptor;
2495 }
2496 
2497 /*
2498  For backward compatibility only
2499 */
2500 #define SWIG_POINTER_EXCEPTION 0
2501 #define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg)
2502 #define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags)
2503 
2504 SWIGRUNTIME int
2505 SWIG_Python_AddErrMesg(const char* mesg, int infront)
2506 {
2507  if (PyErr_Occurred()) {
2508  PyObject *type = 0;
2509  PyObject *value = 0;
2510  PyObject *traceback = 0;
2511  PyErr_Fetch(&type, &value, &traceback);
2512  if (value) {
2513  PyObject *old_str = PyObject_Str(value);
2514  const char *tmp = SWIG_Python_str_AsChar(old_str);
2515  const char *errmesg = tmp ? tmp : "Invalid error message";
2516  Py_XINCREF(type);
2517  PyErr_Clear();
2518  if (infront) {
2519  PyErr_Format(type, "%s %s", mesg, errmesg);
2520  } else {
2521  PyErr_Format(type, "%s %s", errmesg, mesg);
2522  }
2524  Py_DECREF(old_str);
2525  }
2526  return 1;
2527  } else {
2528  return 0;
2529  }
2530 }
2531 
2532 SWIGRUNTIME int
2534 {
2535  if (PyErr_Occurred()) {
2536  /* add information about failing argument */
2537  char mesg[256];
2538  PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum);
2539  return SWIG_Python_AddErrMesg(mesg, 1);
2540  } else {
2541  return 0;
2542  }
2543 }
2544 
2545 SWIGRUNTIMEINLINE const char *
2546 SwigPyObject_GetDesc(PyObject *self)
2547 {
2548  SwigPyObject *v = (SwigPyObject *)self;
2549  swig_type_info *ty = v ? v->ty : 0;
2550  return ty ? ty->str : "";
2551 }
2552 
2553 SWIGRUNTIME void
2554 SWIG_Python_TypeError(const char *type, PyObject *obj)
2555 {
2556  if (type) {
2557 #if defined(SWIG_COBJECT_TYPES)
2558  if (obj && SwigPyObject_Check(obj)) {
2559  const char *otype = (const char *) SwigPyObject_GetDesc(obj);
2560  if (otype) {
2561  PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'SwigPyObject(%s)' is received",
2562  type, otype);
2563  return;
2564  }
2565  } else
2566 #endif
2567  {
2568  const char *otype = (obj ? obj->ob_type->tp_name : 0);
2569  if (otype) {
2570  PyObject *str = PyObject_Str(obj);
2571  const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0;
2572  if (cstr) {
2573  PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received",
2574  type, otype, cstr);
2576  } else {
2577  PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received",
2578  type, otype);
2579  }
2580  Py_XDECREF(str);
2581  return;
2582  }
2583  }
2584  PyErr_Format(PyExc_TypeError, "a '%s' is expected", type);
2585  } else {
2586  PyErr_Format(PyExc_TypeError, "unexpected type is received");
2587  }
2588 }
2589 
2590 
2591 /* Convert a pointer value, signal an exception on a type mismatch */
2592 SWIGRUNTIME void *
2593 SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int SWIGUNUSEDPARM(argnum), int flags) {
2594  void *result;
2595  if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) {
2596  PyErr_Clear();
2597 #if SWIG_POINTER_EXCEPTION
2598  if (flags) {
2600  SWIG_Python_ArgFail(argnum);
2601  }
2602 #endif
2603  }
2604  return result;
2605 }
2606 
2607 #ifdef SWIGPYTHON_BUILTIN
2608 SWIGRUNTIME int
2609 SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
2610  PyTypeObject *tp = obj->ob_type;
2611  PyObject *descr;
2612  PyObject *encoded_name;
2613  descrsetfunc f;
2614  int res = -1;
2615 
2616 # ifdef Py_USING_UNICODE
2617  if (PyString_Check(name)) {
2618  name = PyUnicode_Decode(PyString_AsString(name), PyString_Size(name), NULL, NULL);
2619  if (!name)
2620  return -1;
2621  } else if (!PyUnicode_Check(name))
2622 # else
2623  if (!PyString_Check(name))
2624 # endif
2625  {
2626  PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", name->ob_type->tp_name);
2627  return -1;
2628  } else {
2629  Py_INCREF(name);
2630  }
2631 
2632  if (!tp->tp_dict) {
2633  if (PyType_Ready(tp) < 0)
2634  goto done;
2635  }
2636 
2637  descr = _PyType_Lookup(tp, name);
2638  f = NULL;
2639  if (descr != NULL)
2640  f = descr->ob_type->tp_descr_set;
2641  if (!f) {
2642  if (PyString_Check(name)) {
2643  encoded_name = name;
2644  Py_INCREF(name);
2645  } else {
2646  encoded_name = PyUnicode_AsUTF8String(name);
2647  if (!encoded_name)
2648  return -1;
2649  }
2650  PyErr_Format(PyExc_AttributeError, "'%.100s' object has no attribute '%.200s'", tp->tp_name, PyString_AsString(encoded_name));
2651  Py_DECREF(encoded_name);
2652  } else {
2653  res = f(descr, obj, value);
2654  }
2655 
2656  done:
2657  Py_DECREF(name);
2658  return res;
2659 }
2660 #endif
2661 
2662 
2663 #ifdef __cplusplus
2664 }
2665 #endif
2666 
2667 
2668 
2669 #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
2670 
2671 #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else
2672 
2673 
2674 
2675 #ifdef __cplusplus
2676 extern "C" {
2677 #endif
2678 
2679 /* Method creation and docstring support functions */
2680 
2681 SWIGINTERN PyMethodDef *SWIG_PythonGetProxyDoc(const char *name);
2682 SWIGINTERN PyObject *SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func);
2683 SWIGINTERN PyObject *SWIG_PyStaticMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func);
2684 
2685 #ifdef __cplusplus
2686 }
2687 #endif
2688 
2689 
2690  #define SWIG_exception(code, msg) do { SWIG_Error(code, msg); SWIG_fail;; } while(0)
2691 
2692 
2693 /* -------- TYPES TABLE (BEGIN) -------- */
2694 
2695 #define SWIGTYPE_p_char swig_types[0]
2696 #define SWIGTYPE_p_int swig_types[1]
2697 #define SWIGTYPE_p_long swig_types[2]
2698 #define SWIGTYPE_p_operations_research__CppBridge swig_types[3]
2699 #define SWIGTYPE_p_operations_research__CppFlags swig_types[4]
2700 #define SWIGTYPE_p_short swig_types[5]
2701 #define SWIGTYPE_p_signed_char swig_types[6]
2702 #define SWIGTYPE_p_unsigned_char swig_types[7]
2703 #define SWIGTYPE_p_unsigned_int swig_types[8]
2704 #define SWIGTYPE_p_unsigned_long swig_types[9]
2705 #define SWIGTYPE_p_unsigned_short swig_types[10]
2707 static swig_module_info swig_module = {swig_types, 11, 0, 0, 0, 0};
2708 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
2709 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
2710 
2711 /* -------- TYPES TABLE (END) -------- */
2712 
2713 #ifdef SWIG_TypeQuery
2714 # undef SWIG_TypeQuery
2715 #endif
2716 #define SWIG_TypeQuery SWIG_Python_TypeQuery
2717 
2718 /*-----------------------------------------------
2719  @(target):= _pywrapinit.so
2720  ------------------------------------------------*/
2721 #if PY_VERSION_HEX >= 0x03000000
2722 # define SWIG_init PyInit__pywrapinit
2723 
2724 #else
2725 # define SWIG_init init_pywrapinit
2726 
2727 #endif
2728 #define SWIG_name "_pywrapinit"
2729 
2730 #define SWIGVERSION 0x040002
2731 #define SWIG_VERSION SWIGVERSION
2732 
2733 
2734 #define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a))
2735 #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a))
2736 
2737 
2738 #include <stdexcept>
2739 
2740 
2741 namespace swig {
2742  class SwigPtr_PyObject {
2743  protected:
2744  PyObject *_obj;
2745 
2746  public:
2748  {
2749  }
2750 
2752  {
2754  Py_XINCREF(_obj);
2756  }
2757 
2758  SwigPtr_PyObject(PyObject *obj, bool initial_ref = true) :_obj(obj)
2759  {
2760  if (initial_ref) {
2762  Py_XINCREF(_obj);
2764  }
2765  }
2766 
2768  {
2770  Py_XINCREF(item._obj);
2771  Py_XDECREF(_obj);
2772  _obj = item._obj;
2774  return *this;
2775  }
2776 
2778  {
2780  Py_XDECREF(_obj);
2782  }
2783 
2784  operator PyObject *() const
2785  {
2786  return _obj;
2787  }
2788 
2789  PyObject *operator->() const
2790  {
2791  return _obj;
2792  }
2793  };
2794 }
2795 
2796 
2797 namespace swig {
2798  struct SwigVar_PyObject : SwigPtr_PyObject {
2799  SwigVar_PyObject(PyObject* obj = 0) : SwigPtr_PyObject(obj, false) { }
2800 
2802  {
2803  Py_XDECREF(_obj);
2804  _obj = obj;
2805  return *this;
2806  }
2807  };
2808 }
2809 
2810 
2811 #include <cstdint>
2812 #include <string>
2813 #include <vector>
2814 
2815 #include "ortools/base/basictypes.h"
2816 
2817 
2818 #include <stdint.h> // Use the C99 official header
2819 
2820 
2821 #define SWIGWORDSIZE64
2822 #ifndef LONG_MAX
2823 #include <limits.h>
2824 #endif
2825 #if (__WORDSIZE == 32) || (LONG_MAX == INT_MAX)
2826 # error "SWIG wrapped code invalid in 32 bit architecture, regenerate code using -DSWIGWORDSIZE32"
2827 #endif
2828 
2829 
2830 #include <string>
2831 
2832 
2833 #include "ortools/base/python-swig.h"
2834 
2835 
2836 #include "ortools/init/init.h"
2837 
2838 
2839 SWIGINTERN int
2840 SWIG_AsVal_double (PyObject *obj, double *val)
2841 {
2842  int res = SWIG_TypeError;
2843  if (PyFloat_Check(obj)) {
2844  if (val) *val = PyFloat_AsDouble(obj);
2845  return SWIG_OK;
2846 #if PY_VERSION_HEX < 0x03000000
2847  } else if (PyInt_Check(obj)) {
2848  if (val) *val = (double) PyInt_AsLong(obj);
2849  return SWIG_OK;
2850 #endif
2851  } else if (PyLong_Check(obj)) {
2852  double v = PyLong_AsDouble(obj);
2853  if (!PyErr_Occurred()) {
2854  if (val) *val = v;
2855  return SWIG_OK;
2856  } else {
2857  PyErr_Clear();
2858  }
2859  }
2860 #ifdef SWIG_PYTHON_CAST_MODE
2861  {
2862  int dispatch = 0;
2863  double d = PyFloat_AsDouble(obj);
2864  if (!PyErr_Occurred()) {
2865  if (val) *val = d;
2866  return SWIG_AddCast(SWIG_OK);
2867  } else {
2868  PyErr_Clear();
2869  }
2870  if (!dispatch) {
2871  long v = PyLong_AsLong(obj);
2872  if (!PyErr_Occurred()) {
2873  if (val) *val = v;
2875  } else {
2876  PyErr_Clear();
2877  }
2878  }
2879  }
2880 #endif
2881  return res;
2882 }
2883 
2884 
2885 #include <float.h>
2886 
2887 
2888 #include <math.h>
2889 
2890 
2891 SWIGINTERNINLINE int
2892 SWIG_CanCastAsInteger(double *d, double min, double max) {
2893  double x = *d;
2894  if ((min <= x && x <= max)) {
2895  double fx = floor(x);
2896  double cx = ceil(x);
2897  double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */
2898  if ((errno == EDOM) || (errno == ERANGE)) {
2899  errno = 0;
2900  } else {
2901  double summ, reps, diff;
2902  if (rd < x) {
2903  diff = x - rd;
2904  } else if (rd > x) {
2905  diff = rd - x;
2906  } else {
2907  return 1;
2908  }
2909  summ = rd + x;
2910  reps = diff/summ;
2911  if (reps < 8*DBL_EPSILON) {
2912  *d = rd;
2913  return 1;
2914  }
2915  }
2916  }
2917  return 0;
2918 }
2919 
2920 
2921 SWIGINTERN int
2922 SWIG_AsVal_long (PyObject *obj, long* val)
2923 {
2924 #if PY_VERSION_HEX < 0x03000000
2925  if (PyInt_Check(obj)) {
2926  if (val) *val = PyInt_AsLong(obj);
2927  return SWIG_OK;
2928  } else
2929 #endif
2930  if (PyLong_Check(obj)) {
2931  long v = PyLong_AsLong(obj);
2932  if (!PyErr_Occurred()) {
2933  if (val) *val = v;
2934  return SWIG_OK;
2935  } else {
2936  PyErr_Clear();
2937  return SWIG_OverflowError;
2938  }
2939  }
2940 #ifdef SWIG_PYTHON_CAST_MODE
2941  {
2942  int dispatch = 0;
2943  long v = PyInt_AsLong(obj);
2944  if (!PyErr_Occurred()) {
2945  if (val) *val = v;
2946  return SWIG_AddCast(SWIG_OK);
2947  } else {
2948  PyErr_Clear();
2949  }
2950  if (!dispatch) {
2951  double d;
2952  int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
2953  if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
2954  if (val) *val = (long)(d);
2955  return res;
2956  }
2957  }
2958  }
2959 #endif
2960  return SWIG_TypeError;
2961 }
2962 
2963 
2964 SWIGINTERN int
2965 SWIG_AsVal_bool (PyObject *obj, bool *val)
2966 {
2967  int r;
2968  if (!PyBool_Check(obj))
2969  return SWIG_ERROR;
2970  r = PyObject_IsTrue(obj);
2971  if (r == -1)
2972  return SWIG_ERROR;
2973  if (val) *val = r ? true : false;
2974  return SWIG_OK;
2975 }
2976 
2977 
2978 SWIGINTERNINLINE PyObject*
2980 {
2981  return PyBool_FromLong(value ? 1 : 0);
2982 }
2983 
2984 
2987 {
2988  static int init = 0;
2989  static swig_type_info* info = 0;
2990  if (!init) {
2991  info = SWIG_TypeQuery("_p_char");
2992  init = 1;
2993  }
2994  return info;
2995 }
2996 
2997 
2998 SWIGINTERN int
2999 SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
3000 {
3001 #if PY_VERSION_HEX>=0x03000000
3002 #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
3003  if (PyBytes_Check(obj))
3004 #else
3005  if (PyUnicode_Check(obj))
3006 #endif
3007 #else
3008  if (PyString_Check(obj))
3009 #endif
3010  {
3011  char *cstr; Py_ssize_t len;
3012  int ret = SWIG_OK;
3013 #if PY_VERSION_HEX>=0x03000000
3014 #if !defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
3015  if (!alloc && cptr) {
3016  /* We can't allow converting without allocation, since the internal
3017  representation of string in Python 3 is UCS-2/UCS-4 but we require
3018  a UTF-8 representation.
3019  TODO(bhy) More detailed explanation */
3020  return SWIG_RuntimeError;
3021  }
3022  obj = PyUnicode_AsUTF8String(obj);
3023  if (!obj)
3024  return SWIG_TypeError;
3025  if (alloc)
3026  *alloc = SWIG_NEWOBJ;
3027 #endif
3028  if (PyBytes_AsStringAndSize(obj, &cstr, &len) == -1)
3029  return SWIG_TypeError;
3030 #else
3031  if (PyString_AsStringAndSize(obj, &cstr, &len) == -1)
3032  return SWIG_TypeError;
3033 #endif
3034  if (cptr) {
3035  if (alloc) {
3036  if (*alloc == SWIG_NEWOBJ) {
3037  *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1)));
3038  *alloc = SWIG_NEWOBJ;
3039  } else {
3040  *cptr = cstr;
3041  *alloc = SWIG_OLDOBJ;
3042  }
3043  } else {
3044 #if PY_VERSION_HEX>=0x03000000
3045 #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
3046  *cptr = PyBytes_AsString(obj);
3047 #else
3048  assert(0); /* Should never reach here with Unicode strings in Python 3 */
3049 #endif
3050 #else
3051  *cptr = SWIG_Python_str_AsChar(obj);
3052  if (!*cptr)
3053  ret = SWIG_TypeError;
3054 #endif
3055  }
3056  }
3057  if (psize) *psize = len + 1;
3058 #if PY_VERSION_HEX>=0x03000000 && !defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
3059  Py_XDECREF(obj);
3060 #endif
3061  return ret;
3062  } else {
3063 #if defined(SWIG_PYTHON_2_UNICODE)
3064 #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
3065 #error "Cannot use both SWIG_PYTHON_2_UNICODE and SWIG_PYTHON_STRICT_BYTE_CHAR at once"
3066 #endif
3067 #if PY_VERSION_HEX<0x03000000
3068  if (PyUnicode_Check(obj)) {
3069  char *cstr; Py_ssize_t len;
3070  if (!alloc && cptr) {
3071  return SWIG_RuntimeError;
3072  }
3073  obj = PyUnicode_AsUTF8String(obj);
3074  if (!obj)
3075  return SWIG_TypeError;
3076  if (PyString_AsStringAndSize(obj, &cstr, &len) != -1) {
3077  if (cptr) {
3078  if (alloc) *alloc = SWIG_NEWOBJ;
3079  *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1)));
3080  }
3081  if (psize) *psize = len + 1;
3082 
3083  Py_XDECREF(obj);
3084  return SWIG_OK;
3085  } else {
3086  Py_XDECREF(obj);
3087  }
3088  }
3089 #endif
3090 #endif
3091 
3092  swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
3093  if (pchar_descriptor) {
3094  void* vptr = 0;
3095  if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
3096  if (cptr) *cptr = (char *) vptr;
3097  if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0;
3098  if (alloc) *alloc = SWIG_OLDOBJ;
3099  return SWIG_OK;
3100  }
3101  }
3102  }
3103  return SWIG_TypeError;
3104 }
3105 
3106 
3107 SWIGINTERN int
3108 SWIG_AsPtr_std_string (PyObject * obj, std::string **val)
3109 {
3110  char* buf = 0 ; size_t size = 0; int alloc = SWIG_OLDOBJ;
3111  if (SWIG_IsOK((SWIG_AsCharPtrAndSize(obj, &buf, &size, &alloc)))) {
3112  if (buf) {
3113  if (val) *val = new std::string(buf, size - 1);
3114  if (alloc == SWIG_NEWOBJ) delete[] buf;
3115  return SWIG_NEWOBJ;
3116  } else {
3117  if (val) *val = 0;
3118  return SWIG_OLDOBJ;
3119  }
3120  } else {
3121  static int init = 0;
3122  static swig_type_info* descriptor = 0;
3123  if (!init) {
3124  descriptor = SWIG_TypeQuery("std::string" " *");
3125  init = 1;
3126  }
3127  if (descriptor) {
3128  std::string *vptr;
3129  int res = SWIG_ConvertPtr(obj, (void**)&vptr, descriptor, 0);
3130  if (SWIG_IsOK(res) && val) *val = vptr;
3131  return res;
3132  }
3133  }
3134  return SWIG_ERROR;
3135 }
3136 
3137 
3138 SWIGINTERNINLINE PyObject *
3139 SWIG_FromCharPtrAndSize(const char* carray, size_t size)
3140 {
3141  if (carray) {
3142  if (size > INT_MAX) {
3143  swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
3144  return pchar_descriptor ?
3145  SWIG_InternalNewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void();
3146  } else {
3147 #if PY_VERSION_HEX >= 0x03000000
3148 #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
3149  return PyBytes_FromStringAndSize(carray, static_cast< Py_ssize_t >(size));
3150 #else
3151  return PyUnicode_DecodeUTF8(carray, static_cast< Py_ssize_t >(size), "surrogateescape");
3152 #endif
3153 #else
3154  return PyString_FromStringAndSize(carray, static_cast< Py_ssize_t >(size));
3155 #endif
3156  }
3157  } else {
3158  return SWIG_Py_Void();
3159  }
3160 }
3161 
3162 
3163 SWIGINTERNINLINE PyObject *
3164 SWIG_From_std_string (const std::string& s)
3165 {
3166  return SWIG_FromCharPtrAndSize(s.data(), s.size());
3167 }
3168 
3169 #ifdef __cplusplus
3170 extern "C" {
3171 #endif
3172 SWIGINTERN PyObject *_wrap_CppFlags_logtostderr_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3173  PyObject *resultobj = 0;
3175  bool arg2 ;
3176  void *argp1 = 0 ;
3177  int res1 = 0 ;
3178  bool val2 ;
3179  int ecode2 = 0 ;
3180  PyObject *swig_obj[2] ;
3181 
3182  if (!SWIG_Python_UnpackTuple(args, "CppFlags_logtostderr_set", 2, 2, swig_obj)) SWIG_fail;
3183  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_operations_research__CppFlags, 0 | 0 );
3184  if (!SWIG_IsOK(res1)) {
3185  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppFlags_logtostderr_set" "', argument " "1"" of type '" "operations_research::CppFlags *""'");
3186  }
3187  arg1 = reinterpret_cast< operations_research::CppFlags * >(argp1);
3188  ecode2 = SWIG_AsVal_bool(swig_obj[1], &val2);
3189  if (!SWIG_IsOK(ecode2)) {
3190  SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CppFlags_logtostderr_set" "', argument " "2"" of type '" "bool""'");
3191  }
3192  arg2 = static_cast< bool >(val2);
3193  if (arg1) (arg1)->logtostderr = arg2;
3194  resultobj = SWIG_Py_Void();
3195  return resultobj;
3196 fail:
3197  return NULL;
3198 }
3199 
3200 
3201 SWIGINTERN PyObject *_wrap_CppFlags_logtostderr_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3202  PyObject *resultobj = 0;
3204  void *argp1 = 0 ;
3205  int res1 = 0 ;
3206  PyObject *swig_obj[1] ;
3207  bool result;
3208 
3209  if (!args) SWIG_fail;
3210  swig_obj[0] = args;
3211  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_operations_research__CppFlags, 0 | 0 );
3212  if (!SWIG_IsOK(res1)) {
3213  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppFlags_logtostderr_get" "', argument " "1"" of type '" "operations_research::CppFlags *""'");
3214  }
3215  arg1 = reinterpret_cast< operations_research::CppFlags * >(argp1);
3216  result = (bool) ((arg1)->logtostderr);
3217  resultobj = SWIG_From_bool(static_cast< bool >(result));
3218  return resultobj;
3219 fail:
3220  return NULL;
3221 }
3222 
3223 
3224 SWIGINTERN PyObject *_wrap_CppFlags_log_prefix_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3225  PyObject *resultobj = 0;
3227  bool arg2 ;
3228  void *argp1 = 0 ;
3229  int res1 = 0 ;
3230  bool val2 ;
3231  int ecode2 = 0 ;
3232  PyObject *swig_obj[2] ;
3233 
3234  if (!SWIG_Python_UnpackTuple(args, "CppFlags_log_prefix_set", 2, 2, swig_obj)) SWIG_fail;
3235  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_operations_research__CppFlags, 0 | 0 );
3236  if (!SWIG_IsOK(res1)) {
3237  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppFlags_log_prefix_set" "', argument " "1"" of type '" "operations_research::CppFlags *""'");
3238  }
3239  arg1 = reinterpret_cast< operations_research::CppFlags * >(argp1);
3240  ecode2 = SWIG_AsVal_bool(swig_obj[1], &val2);
3241  if (!SWIG_IsOK(ecode2)) {
3242  SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CppFlags_log_prefix_set" "', argument " "2"" of type '" "bool""'");
3243  }
3244  arg2 = static_cast< bool >(val2);
3245  if (arg1) (arg1)->log_prefix = arg2;
3246  resultobj = SWIG_Py_Void();
3247  return resultobj;
3248 fail:
3249  return NULL;
3250 }
3251 
3252 
3253 SWIGINTERN PyObject *_wrap_CppFlags_log_prefix_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3254  PyObject *resultobj = 0;
3256  void *argp1 = 0 ;
3257  int res1 = 0 ;
3258  PyObject *swig_obj[1] ;
3259  bool result;
3260 
3261  if (!args) SWIG_fail;
3262  swig_obj[0] = args;
3263  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_operations_research__CppFlags, 0 | 0 );
3264  if (!SWIG_IsOK(res1)) {
3265  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppFlags_log_prefix_get" "', argument " "1"" of type '" "operations_research::CppFlags *""'");
3266  }
3267  arg1 = reinterpret_cast< operations_research::CppFlags * >(argp1);
3268  result = (bool) ((arg1)->log_prefix);
3269  resultobj = SWIG_From_bool(static_cast< bool >(result));
3270  return resultobj;
3271 fail:
3272  return NULL;
3273 }
3274 
3275 
3276 SWIGINTERN PyObject *_wrap_CppFlags_cp_model_dump_prefix_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3277  PyObject *resultobj = 0;
3279  std::string *arg2 = 0 ;
3280  void *argp1 = 0 ;
3281  int res1 = 0 ;
3282  int res2 = SWIG_OLDOBJ ;
3283  PyObject *swig_obj[2] ;
3284 
3285  if (!SWIG_Python_UnpackTuple(args, "CppFlags_cp_model_dump_prefix_set", 2, 2, swig_obj)) SWIG_fail;
3286  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_operations_research__CppFlags, 0 | 0 );
3287  if (!SWIG_IsOK(res1)) {
3288  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppFlags_cp_model_dump_prefix_set" "', argument " "1"" of type '" "operations_research::CppFlags *""'");
3289  }
3290  arg1 = reinterpret_cast< operations_research::CppFlags * >(argp1);
3291  {
3292  std::string *ptr = (std::string *)0;
3293  res2 = SWIG_AsPtr_std_string(swig_obj[1], &ptr);
3294  if (!SWIG_IsOK(res2)) {
3295  SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CppFlags_cp_model_dump_prefix_set" "', argument " "2"" of type '" "std::string const &""'");
3296  }
3297  if (!ptr) {
3298  SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CppFlags_cp_model_dump_prefix_set" "', argument " "2"" of type '" "std::string const &""'");
3299  }
3300  arg2 = ptr;
3301  }
3302  if (arg1) (arg1)->cp_model_dump_prefix = *arg2;
3303  resultobj = SWIG_Py_Void();
3304  if (SWIG_IsNewObj(res2)) delete arg2;
3305  return resultobj;
3306 fail:
3307  if (SWIG_IsNewObj(res2)) delete arg2;
3308  return NULL;
3309 }
3310 
3311 
3312 SWIGINTERN PyObject *_wrap_CppFlags_cp_model_dump_prefix_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3313  PyObject *resultobj = 0;
3315  void *argp1 = 0 ;
3316  int res1 = 0 ;
3317  PyObject *swig_obj[1] ;
3318  std::string *result = 0 ;
3319 
3320  if (!args) SWIG_fail;
3321  swig_obj[0] = args;
3322  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_operations_research__CppFlags, 0 | 0 );
3323  if (!SWIG_IsOK(res1)) {
3324  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppFlags_cp_model_dump_prefix_get" "', argument " "1"" of type '" "operations_research::CppFlags *""'");
3325  }
3326  arg1 = reinterpret_cast< operations_research::CppFlags * >(argp1);
3327  result = (std::string *) & ((arg1)->cp_model_dump_prefix);
3328  resultobj = SWIG_From_std_string(static_cast< std::string >(*result));
3329  return resultobj;
3330 fail:
3331  return NULL;
3332 }
3333 
3334 
3335 SWIGINTERN PyObject *_wrap_CppFlags_cp_model_dump_models_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3336  PyObject *resultobj = 0;
3338  bool arg2 ;
3339  void *argp1 = 0 ;
3340  int res1 = 0 ;
3341  bool val2 ;
3342  int ecode2 = 0 ;
3343  PyObject *swig_obj[2] ;
3344 
3345  if (!SWIG_Python_UnpackTuple(args, "CppFlags_cp_model_dump_models_set", 2, 2, swig_obj)) SWIG_fail;
3346  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_operations_research__CppFlags, 0 | 0 );
3347  if (!SWIG_IsOK(res1)) {
3348  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppFlags_cp_model_dump_models_set" "', argument " "1"" of type '" "operations_research::CppFlags *""'");
3349  }
3350  arg1 = reinterpret_cast< operations_research::CppFlags * >(argp1);
3351  ecode2 = SWIG_AsVal_bool(swig_obj[1], &val2);
3352  if (!SWIG_IsOK(ecode2)) {
3353  SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CppFlags_cp_model_dump_models_set" "', argument " "2"" of type '" "bool""'");
3354  }
3355  arg2 = static_cast< bool >(val2);
3356  if (arg1) (arg1)->cp_model_dump_models = arg2;
3357  resultobj = SWIG_Py_Void();
3358  return resultobj;
3359 fail:
3360  return NULL;
3361 }
3362 
3363 
3364 SWIGINTERN PyObject *_wrap_CppFlags_cp_model_dump_models_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3365  PyObject *resultobj = 0;
3367  void *argp1 = 0 ;
3368  int res1 = 0 ;
3369  PyObject *swig_obj[1] ;
3370  bool result;
3371 
3372  if (!args) SWIG_fail;
3373  swig_obj[0] = args;
3374  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_operations_research__CppFlags, 0 | 0 );
3375  if (!SWIG_IsOK(res1)) {
3376  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppFlags_cp_model_dump_models_get" "', argument " "1"" of type '" "operations_research::CppFlags *""'");
3377  }
3378  arg1 = reinterpret_cast< operations_research::CppFlags * >(argp1);
3379  result = (bool) ((arg1)->cp_model_dump_models);
3380  resultobj = SWIG_From_bool(static_cast< bool >(result));
3381  return resultobj;
3382 fail:
3383  return NULL;
3384 }
3385 
3386 
3387 SWIGINTERN PyObject *_wrap_CppFlags_cp_model_dump_lns_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3388  PyObject *resultobj = 0;
3390  bool arg2 ;
3391  void *argp1 = 0 ;
3392  int res1 = 0 ;
3393  bool val2 ;
3394  int ecode2 = 0 ;
3395  PyObject *swig_obj[2] ;
3396 
3397  if (!SWIG_Python_UnpackTuple(args, "CppFlags_cp_model_dump_lns_set", 2, 2, swig_obj)) SWIG_fail;
3398  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_operations_research__CppFlags, 0 | 0 );
3399  if (!SWIG_IsOK(res1)) {
3400  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppFlags_cp_model_dump_lns_set" "', argument " "1"" of type '" "operations_research::CppFlags *""'");
3401  }
3402  arg1 = reinterpret_cast< operations_research::CppFlags * >(argp1);
3403  ecode2 = SWIG_AsVal_bool(swig_obj[1], &val2);
3404  if (!SWIG_IsOK(ecode2)) {
3405  SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CppFlags_cp_model_dump_lns_set" "', argument " "2"" of type '" "bool""'");
3406  }
3407  arg2 = static_cast< bool >(val2);
3408  if (arg1) (arg1)->cp_model_dump_lns = arg2;
3409  resultobj = SWIG_Py_Void();
3410  return resultobj;
3411 fail:
3412  return NULL;
3413 }
3414 
3415 
3416 SWIGINTERN PyObject *_wrap_CppFlags_cp_model_dump_lns_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3417  PyObject *resultobj = 0;
3419  void *argp1 = 0 ;
3420  int res1 = 0 ;
3421  PyObject *swig_obj[1] ;
3422  bool result;
3423 
3424  if (!args) SWIG_fail;
3425  swig_obj[0] = args;
3426  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_operations_research__CppFlags, 0 | 0 );
3427  if (!SWIG_IsOK(res1)) {
3428  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppFlags_cp_model_dump_lns_get" "', argument " "1"" of type '" "operations_research::CppFlags *""'");
3429  }
3430  arg1 = reinterpret_cast< operations_research::CppFlags * >(argp1);
3431  result = (bool) ((arg1)->cp_model_dump_lns);
3432  resultobj = SWIG_From_bool(static_cast< bool >(result));
3433  return resultobj;
3434 fail:
3435  return NULL;
3436 }
3437 
3438 
3439 SWIGINTERN PyObject *_wrap_CppFlags_cp_model_dump_response_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3440  PyObject *resultobj = 0;
3442  bool arg2 ;
3443  void *argp1 = 0 ;
3444  int res1 = 0 ;
3445  bool val2 ;
3446  int ecode2 = 0 ;
3447  PyObject *swig_obj[2] ;
3448 
3449  if (!SWIG_Python_UnpackTuple(args, "CppFlags_cp_model_dump_response_set", 2, 2, swig_obj)) SWIG_fail;
3450  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_operations_research__CppFlags, 0 | 0 );
3451  if (!SWIG_IsOK(res1)) {
3452  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppFlags_cp_model_dump_response_set" "', argument " "1"" of type '" "operations_research::CppFlags *""'");
3453  }
3454  arg1 = reinterpret_cast< operations_research::CppFlags * >(argp1);
3455  ecode2 = SWIG_AsVal_bool(swig_obj[1], &val2);
3456  if (!SWIG_IsOK(ecode2)) {
3457  SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CppFlags_cp_model_dump_response_set" "', argument " "2"" of type '" "bool""'");
3458  }
3459  arg2 = static_cast< bool >(val2);
3460  if (arg1) (arg1)->cp_model_dump_response = arg2;
3461  resultobj = SWIG_Py_Void();
3462  return resultobj;
3463 fail:
3464  return NULL;
3465 }
3466 
3467 
3468 SWIGINTERN PyObject *_wrap_CppFlags_cp_model_dump_response_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3469  PyObject *resultobj = 0;
3471  void *argp1 = 0 ;
3472  int res1 = 0 ;
3473  PyObject *swig_obj[1] ;
3474  bool result;
3475 
3476  if (!args) SWIG_fail;
3477  swig_obj[0] = args;
3478  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_operations_research__CppFlags, 0 | 0 );
3479  if (!SWIG_IsOK(res1)) {
3480  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppFlags_cp_model_dump_response_get" "', argument " "1"" of type '" "operations_research::CppFlags *""'");
3481  }
3482  arg1 = reinterpret_cast< operations_research::CppFlags * >(argp1);
3483  result = (bool) ((arg1)->cp_model_dump_response);
3484  resultobj = SWIG_From_bool(static_cast< bool >(result));
3485  return resultobj;
3486 fail:
3487  return NULL;
3488 }
3489 
3490 
3491 SWIGINTERN PyObject *_wrap_new_CppFlags(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3492  PyObject *resultobj = 0;
3493  operations_research::CppFlags *result = 0 ;
3494 
3495  if (!SWIG_Python_UnpackTuple(args, "new_CppFlags", 0, 0, 0)) SWIG_fail;
3498  return resultobj;
3499 fail:
3500  return NULL;
3501 }
3502 
3503 
3504 SWIGINTERN PyObject *_wrap_delete_CppFlags(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3505  PyObject *resultobj = 0;
3507  void *argp1 = 0 ;
3508  int res1 = 0 ;
3509  PyObject *swig_obj[1] ;
3510 
3511  if (!args) SWIG_fail;
3512  swig_obj[0] = args;
3514  if (!SWIG_IsOK(res1)) {
3515  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_CppFlags" "', argument " "1"" of type '" "operations_research::CppFlags *""'");
3516  }
3517  arg1 = reinterpret_cast< operations_research::CppFlags * >(argp1);
3518  delete arg1;
3519  resultobj = SWIG_Py_Void();
3520  return resultobj;
3521 fail:
3522  return NULL;
3523 }
3524 
3525 
3526 SWIGINTERN PyObject *CppFlags_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3527  PyObject *obj;
3528  if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL;
3530  return SWIG_Py_Void();
3531 }
3532 
3533 SWIGINTERN PyObject *CppFlags_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3534  return SWIG_Python_InitShadowInstance(args);
3535 }
3536 
3537 SWIGINTERN PyObject *_wrap_CppBridge_InitLogging(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3538  PyObject *resultobj = 0;
3539  std::string *arg1 = 0 ;
3540  int res1 = SWIG_OLDOBJ ;
3541  PyObject *swig_obj[1] ;
3542 
3543  if (!args) SWIG_fail;
3544  swig_obj[0] = args;
3545  {
3546  std::string *ptr = (std::string *)0;
3547  res1 = SWIG_AsPtr_std_string(swig_obj[0], &ptr);
3548  if (!SWIG_IsOK(res1)) {
3549  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppBridge_InitLogging" "', argument " "1"" of type '" "std::string const &""'");
3550  }
3551  if (!ptr) {
3552  SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CppBridge_InitLogging" "', argument " "1"" of type '" "std::string const &""'");
3553  }
3554  arg1 = ptr;
3555  }
3556  operations_research::CppBridge::InitLogging((std::string const &)*arg1);
3557  resultobj = SWIG_Py_Void();
3558  if (SWIG_IsNewObj(res1)) delete arg1;
3559  return resultobj;
3560 fail:
3561  if (SWIG_IsNewObj(res1)) delete arg1;
3562  return NULL;
3563 }
3564 
3565 
3566 SWIGINTERN PyObject *_wrap_CppBridge_ShutdownLogging(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3567  PyObject *resultobj = 0;
3568 
3569  if (!SWIG_Python_UnpackTuple(args, "CppBridge_ShutdownLogging", 0, 0, 0)) SWIG_fail;
3571  resultobj = SWIG_Py_Void();
3572  return resultobj;
3573 fail:
3574  return NULL;
3575 }
3576 
3577 
3578 SWIGINTERN PyObject *_wrap_CppBridge_SetFlags(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3579  PyObject *resultobj = 0;
3580  operations_research::CppFlags *arg1 = 0 ;
3581  void *argp1 = 0 ;
3582  int res1 = 0 ;
3583  PyObject *swig_obj[1] ;
3584 
3585  if (!args) SWIG_fail;
3586  swig_obj[0] = args;
3587  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_operations_research__CppFlags, 0 | 0);
3588  if (!SWIG_IsOK(res1)) {
3589  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppBridge_SetFlags" "', argument " "1"" of type '" "operations_research::CppFlags const &""'");
3590  }
3591  if (!argp1) {
3592  SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CppBridge_SetFlags" "', argument " "1"" of type '" "operations_research::CppFlags const &""'");
3593  }
3594  arg1 = reinterpret_cast< operations_research::CppFlags * >(argp1);
3596  resultobj = SWIG_Py_Void();
3597  return resultobj;
3598 fail:
3599  return NULL;
3600 }
3601 
3602 
3603 SWIGINTERN PyObject *_wrap_CppBridge_LoadGurobiSharedLibrary(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3604  PyObject *resultobj = 0;
3605  std::string *arg1 = 0 ;
3606  int res1 = SWIG_OLDOBJ ;
3607  PyObject *swig_obj[1] ;
3608  bool result;
3609 
3610  if (!args) SWIG_fail;
3611  swig_obj[0] = args;
3612  {
3613  std::string *ptr = (std::string *)0;
3614  res1 = SWIG_AsPtr_std_string(swig_obj[0], &ptr);
3615  if (!SWIG_IsOK(res1)) {
3616  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CppBridge_LoadGurobiSharedLibrary" "', argument " "1"" of type '" "std::string const &""'");
3617  }
3618  if (!ptr) {
3619  SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CppBridge_LoadGurobiSharedLibrary" "', argument " "1"" of type '" "std::string const &""'");
3620  }
3621  arg1 = ptr;
3622  }
3623  result = (bool)operations_research::CppBridge::LoadGurobiSharedLibrary((std::string const &)*arg1);
3624  resultobj = SWIG_From_bool(static_cast< bool >(result));
3625  if (SWIG_IsNewObj(res1)) delete arg1;
3626  return resultobj;
3627 fail:
3628  if (SWIG_IsNewObj(res1)) delete arg1;
3629  return NULL;
3630 }
3631 
3632 
3633 SWIGINTERN PyObject *_wrap_new_CppBridge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3634  PyObject *resultobj = 0;
3635  operations_research::CppBridge *result = 0 ;
3636 
3637  if (!SWIG_Python_UnpackTuple(args, "new_CppBridge", 0, 0, 0)) SWIG_fail;
3640  return resultobj;
3641 fail:
3642  return NULL;
3643 }
3644 
3645 
3646 SWIGINTERN PyObject *_wrap_delete_CppBridge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3647  PyObject *resultobj = 0;
3649  void *argp1 = 0 ;
3650  int res1 = 0 ;
3651  PyObject *swig_obj[1] ;
3652 
3653  if (!args) SWIG_fail;
3654  swig_obj[0] = args;
3656  if (!SWIG_IsOK(res1)) {
3657  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_CppBridge" "', argument " "1"" of type '" "operations_research::CppBridge *""'");
3658  }
3659  arg1 = reinterpret_cast< operations_research::CppBridge * >(argp1);
3660  delete arg1;
3661  resultobj = SWIG_Py_Void();
3662  return resultobj;
3663 fail:
3664  return NULL;
3665 }
3666 
3667 
3668 SWIGINTERN PyObject *CppBridge_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3669  PyObject *obj;
3670  if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL;
3672  return SWIG_Py_Void();
3673 }
3674 
3675 SWIGINTERN PyObject *CppBridge_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3676  return SWIG_Python_InitShadowInstance(args);
3677 }
3678 
3679 static PyMethodDef SwigMethods[] = {
3680  { "SWIG_PyInstanceMethod_New", SWIG_PyInstanceMethod_New, METH_O, NULL},
3681  { "CppFlags_logtostderr_set", _wrap_CppFlags_logtostderr_set, METH_VARARGS, "If true, all logging message will be sent to stderr."},
3682  { "CppFlags_logtostderr_get", _wrap_CppFlags_logtostderr_get, METH_O, "If true, all logging message will be sent to stderr."},
3683  { "CppFlags_log_prefix_set", _wrap_CppFlags_log_prefix_set, METH_VARARGS, "Controls is time and source code info are used to prefix logging messages."},
3684  { "CppFlags_log_prefix_get", _wrap_CppFlags_log_prefix_get, METH_O, "Controls is time and source code info are used to prefix logging messages."},
3685  { "CppFlags_cp_model_dump_prefix_set", _wrap_CppFlags_cp_model_dump_prefix_set, METH_VARARGS, "Prefix filename for all dumped files (models, solutions, lns sub-models)."},
3686  { "CppFlags_cp_model_dump_prefix_get", _wrap_CppFlags_cp_model_dump_prefix_get, METH_O, "Prefix filename for all dumped files (models, solutions, lns sub-models)."},
3687  { "CppFlags_cp_model_dump_models_set", _wrap_CppFlags_cp_model_dump_models_set, METH_VARARGS, "\n"
3688  "DEBUG ONLY: Dump CP-SAT models during solve.\n"
3689  "\n"
3690  " When set to true, SolveCpModel() will dump its model protos\n"
3691  "(original model, presolved model, mapping model) in text format to\n"
3692  "'FLAGS_cp_model_dump_prefix'{model|presolved_model|mapping_model}.pbtxt.\n"
3693  ""},
3694  { "CppFlags_cp_model_dump_models_get", _wrap_CppFlags_cp_model_dump_models_get, METH_O, "\n"
3695  "DEBUG ONLY: Dump CP-SAT models during solve.\n"
3696  "\n"
3697  " When set to true, SolveCpModel() will dump its model protos\n"
3698  "(original model, presolved model, mapping model) in text format to\n"
3699  "'FLAGS_cp_model_dump_prefix'{model|presolved_model|mapping_model}.pbtxt.\n"
3700  ""},
3701  { "CppFlags_cp_model_dump_lns_set", _wrap_CppFlags_cp_model_dump_lns_set, METH_VARARGS, "\n"
3702  "DEBUG ONLY: Dump CP-SAT LNS models during solve.\n"
3703  "\n"
3704  "When set to true, solve will dump all lns models proto in text format to\n"
3705  "'FLAGS_cp_model_dump_prefix'lns_xxx.pbtxt.\n"
3706  ""},
3707  { "CppFlags_cp_model_dump_lns_get", _wrap_CppFlags_cp_model_dump_lns_get, METH_O, "\n"
3708  "DEBUG ONLY: Dump CP-SAT LNS models during solve.\n"
3709  "\n"
3710  "When set to true, solve will dump all lns models proto in text format to\n"
3711  "'FLAGS_cp_model_dump_prefix'lns_xxx.pbtxt.\n"
3712  ""},
3713  { "CppFlags_cp_model_dump_response_set", _wrap_CppFlags_cp_model_dump_response_set, METH_VARARGS, "\n"
3714  "DEBUG ONLY: Dump the CP-SAT final response found during solve.\n"
3715  "\n"
3716  "If true, the final response of each solve will be dumped to\n"
3717  "'FLAGS_cp_model_dump_prefix'response.pbtxt.\n"
3718  ""},
3719  { "CppFlags_cp_model_dump_response_get", _wrap_CppFlags_cp_model_dump_response_get, METH_O, "\n"
3720  "DEBUG ONLY: Dump the CP-SAT final response found during solve.\n"
3721  "\n"
3722  "If true, the final response of each solve will be dumped to\n"
3723  "'FLAGS_cp_model_dump_prefix'response.pbtxt.\n"
3724  ""},
3725  { "new_CppFlags", _wrap_new_CppFlags, METH_NOARGS, NULL},
3726  { "delete_CppFlags", _wrap_delete_CppFlags, METH_O, NULL},
3727  { "CppFlags_swigregister", CppFlags_swigregister, METH_O, NULL},
3728  { "CppFlags_swiginit", CppFlags_swiginit, METH_VARARGS, NULL},
3729  { "CppBridge_InitLogging", _wrap_CppBridge_InitLogging, METH_O, "\n"
3730  "Initialize the C++ logging layer.\n"
3731  "\n"
3732  "This must be called once before any other library from OR-Tools are used.\n"
3733  ""},
3734  { "CppBridge_ShutdownLogging", _wrap_CppBridge_ShutdownLogging, METH_NOARGS, "\n"
3735  "Shutdown the C++ logging layer.\n"
3736  "\n"
3737  "This can be called to shutdown the C++ logging layer from OR-Tools.\n"
3738  "It should only be called once.\n"
3739  ""},
3740  { "CppBridge_SetFlags", _wrap_CppBridge_SetFlags, METH_O, "Sets all the C++ flags contained in the CppFlags structure."},
3741  { "CppBridge_LoadGurobiSharedLibrary", _wrap_CppBridge_LoadGurobiSharedLibrary, METH_O, "\n"
3742  "Load the gurobi shared library.\n"
3743  "\n"
3744  "This is necessary if the library is installed in a non canonical\n"
3745  "directory, or if for any reason, it is not found.\n"
3746  "You need to pass the full path, including the shared library file.\n"
3747  "It returns true if the library was found and correctly loaded.\n"
3748  ""},
3749  { "new_CppBridge", _wrap_new_CppBridge, METH_NOARGS, NULL},
3750  { "delete_CppBridge", _wrap_delete_CppBridge, METH_O, NULL},
3751  { "CppBridge_swigregister", CppBridge_swigregister, METH_O, NULL},
3752  { "CppBridge_swiginit", CppBridge_swiginit, METH_VARARGS, NULL},
3753  { NULL, NULL, 0, NULL }
3754 };
3755 
3756 static PyMethodDef SwigMethods_proxydocs[] = {
3757  { NULL, NULL, 0, NULL }
3758 };
3759 
3760 
3761 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
3762 
3763 static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
3764 static swig_type_info _swigt__p_int = {"_p_int", "int *|int_least32_t *|int32_t *", 0, 0, (void*)0, 0};
3765 static swig_type_info _swigt__p_long = {"_p_long", "intptr_t *|int_least64_t *|int_fast32_t *|int_fast64_t *|int64_t *|long *|int_fast16_t *|intmax_t *", 0, 0, (void*)0, 0};
3766 static swig_type_info _swigt__p_operations_research__CppBridge = {"_p_operations_research__CppBridge", "operations_research::CppBridge *", 0, 0, (void*)0, 0};
3767 static swig_type_info _swigt__p_operations_research__CppFlags = {"_p_operations_research__CppFlags", "operations_research::CppFlags *", 0, 0, (void*)0, 0};
3768 static swig_type_info _swigt__p_short = {"_p_short", "short *|int_least16_t *|int16_t *", 0, 0, (void*)0, 0};
3769 static swig_type_info _swigt__p_signed_char = {"_p_signed_char", "signed char *|int_least8_t *|int_fast8_t *|int8_t *", 0, 0, (void*)0, 0};
3770 static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "unsigned char *|uint_least8_t *|uint_fast8_t *|uint8_t *", 0, 0, (void*)0, 0};
3771 static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "uint_least32_t *|uint32_t *|unsigned int *", 0, 0, (void*)0, 0};
3772 static swig_type_info _swigt__p_unsigned_long = {"_p_unsigned_long", "uintptr_t *|uint_least64_t *|uint_fast32_t *|uint_fast64_t *|uint64_t *|unsigned long *|uint_fast16_t *|uintmax_t *", 0, 0, (void*)0, 0};
3773 static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "unsigned short *|uint_least16_t *|uint16_t *", 0, 0, (void*)0, 0};
3774 
3776  &_swigt__p_char,
3777  &_swigt__p_int,
3778  &_swigt__p_long,
3781  &_swigt__p_short,
3787 };
3788 
3789 static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
3790 static swig_cast_info _swigc__p_int[] = { {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
3791 static swig_cast_info _swigc__p_long[] = { {&_swigt__p_long, 0, 0, 0},{0, 0, 0, 0}};
3794 static swig_cast_info _swigc__p_short[] = { {&_swigt__p_short, 0, 0, 0},{0, 0, 0, 0}};
3795 static swig_cast_info _swigc__p_signed_char[] = { {&_swigt__p_signed_char, 0, 0, 0},{0, 0, 0, 0}};
3796 static swig_cast_info _swigc__p_unsigned_char[] = { {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}};
3797 static swig_cast_info _swigc__p_unsigned_int[] = { {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}};
3798 static swig_cast_info _swigc__p_unsigned_long[] = { {&_swigt__p_unsigned_long, 0, 0, 0},{0, 0, 0, 0}};
3800 
3803  _swigc__p_int,
3813 };
3814 
3815 
3816 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
3817 
3819 {0, 0, 0, 0.0, 0, 0}};
3820 
3821 #ifdef __cplusplus
3822 }
3823 #endif
3824 /* -----------------------------------------------------------------------------
3825  * Type initialization:
3826  * This problem is tough by the requirement that no dynamic
3827  * memory is used. Also, since swig_type_info structures store pointers to
3828  * swig_cast_info structures and swig_cast_info structures store pointers back
3829  * to swig_type_info structures, we need some lookup code at initialization.
3830  * The idea is that swig generates all the structures that are needed.
3831  * The runtime then collects these partially filled structures.
3832  * The SWIG_InitializeModule function takes these initial arrays out of
3833  * swig_module, and does all the lookup, filling in the swig_module.types
3834  * array with the correct data and linking the correct swig_cast_info
3835  * structures together.
3836  *
3837  * The generated swig_type_info structures are assigned statically to an initial
3838  * array. We just loop through that array, and handle each type individually.
3839  * First we lookup if this type has been already loaded, and if so, use the
3840  * loaded structure instead of the generated one. Then we have to fill in the
3841  * cast linked list. The cast data is initially stored in something like a
3842  * two-dimensional array. Each row corresponds to a type (there are the same
3843  * number of rows as there are in the swig_type_initial array). Each entry in
3844  * a column is one of the swig_cast_info structures for that type.
3845  * The cast_initial array is actually an array of arrays, because each row has
3846  * a variable number of columns. So to actually build the cast linked list,
3847  * we find the array of casts associated with the type, and loop through it
3848  * adding the casts to the list. The one last trick we need to do is making
3849  * sure the type pointer in the swig_cast_info struct is correct.
3850  *
3851  * First off, we lookup the cast->type name to see if it is already loaded.
3852  * There are three cases to handle:
3853  * 1) If the cast->type has already been loaded AND the type we are adding
3854  * casting info to has not been loaded (it is in this module), THEN we
3855  * replace the cast->type pointer with the type pointer that has already
3856  * been loaded.
3857  * 2) If BOTH types (the one we are adding casting info to, and the
3858  * cast->type) are loaded, THEN the cast info has already been loaded by
3859  * the previous module so we just ignore it.
3860  * 3) Finally, if cast->type has not already been loaded, then we add that
3861  * swig_cast_info to the linked list (because the cast->type) pointer will
3862  * be correct.
3863  * ----------------------------------------------------------------------------- */
3864 
3865 #ifdef __cplusplus
3866 extern "C" {
3867 #if 0
3868 } /* c-mode */
3869 #endif
3870 #endif
3871 
3872 #if 0
3873 #define SWIGRUNTIME_DEBUG
3874 #endif
3875 
3876 
3877 SWIGRUNTIME void
3878 SWIG_InitializeModule(void *clientdata) {
3879  size_t i;
3880  swig_module_info *module_head, *iter;
3881  int init;
3882 
3883  /* check to see if the circular list has been setup, if not, set it up */
3884  if (swig_module.next==0) {
3885  /* Initialize the swig_module */
3889  init = 1;
3890  } else {
3891  init = 0;
3892  }
3893 
3894  /* Try and load any already created modules */
3895  module_head = SWIG_GetModule(clientdata);
3896  if (!module_head) {
3897  /* This is the first module loaded for this interpreter */
3898  /* so set the swig module into the interpreter */
3899  SWIG_SetModule(clientdata, &swig_module);
3900  } else {
3901  /* the interpreter has loaded a SWIG module, but has it loaded this one? */
3902  iter=module_head;
3903  do {
3904  if (iter==&swig_module) {
3905  /* Our module is already in the list, so there's nothing more to do. */
3906  return;
3907  }
3908  iter=iter->next;
3909  } while (iter!= module_head);
3910 
3911  /* otherwise we must add our module into the list */
3912  swig_module.next = module_head->next;
3913  module_head->next = &swig_module;
3914  }
3915 
3916  /* When multiple interpreters are used, a module could have already been initialized in
3917  a different interpreter, but not yet have a pointer in this interpreter.
3918  In this case, we do not want to continue adding types... everything should be
3919  set up already */
3920  if (init == 0) return;
3921 
3922  /* Now work on filling in swig_module.types */
3923 #ifdef SWIGRUNTIME_DEBUG
3924  printf("SWIG_InitializeModule: size %lu\n", (unsigned long)swig_module.size);
3925 #endif
3926  for (i = 0; i < swig_module.size; ++i) {
3927  swig_type_info *type = 0;
3928  swig_type_info *ret;
3929  swig_cast_info *cast;
3930 
3931 #ifdef SWIGRUNTIME_DEBUG
3932  printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name);
3933 #endif
3934 
3935  /* if there is another module already loaded */
3936  if (swig_module.next != &swig_module) {
3938  }
3939  if (type) {
3940  /* Overwrite clientdata field */
3941 #ifdef SWIGRUNTIME_DEBUG
3942  printf("SWIG_InitializeModule: found type %s\n", type->name);
3943 #endif
3946 #ifdef SWIGRUNTIME_DEBUG
3947  printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
3948 #endif
3949  }
3950  } else {
3951  type = swig_module.type_initial[i];
3952  }
3953 
3954  /* Insert casting types */
3955  cast = swig_module.cast_initial[i];
3956  while (cast->type) {
3957  /* Don't need to add information already in the list */
3958  ret = 0;
3959 #ifdef SWIGRUNTIME_DEBUG
3960  printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
3961 #endif
3962  if (swig_module.next != &swig_module) {
3964 #ifdef SWIGRUNTIME_DEBUG
3965  if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
3966 #endif
3967  }
3968  if (ret) {
3969  if (type == swig_module.type_initial[i]) {
3970 #ifdef SWIGRUNTIME_DEBUG
3971  printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
3972 #endif
3973  cast->type = ret;
3974  ret = 0;
3975  } else {
3976  /* Check for casting already in the list */
3977  swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
3978 #ifdef SWIGRUNTIME_DEBUG
3979  if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
3980 #endif
3981  if (!ocast) ret = 0;
3982  }
3983  }
3984 
3985  if (!ret) {
3986 #ifdef SWIGRUNTIME_DEBUG
3987  printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
3988 #endif
3989  if (type->cast) {
3990  type->cast->prev = cast;
3991  cast->next = type->cast;
3992  }
3993  type->cast = cast;
3994  }
3995  cast++;
3996  }
3997  /* Set entry in modules->types array equal to the type */
3998  swig_module.types[i] = type;
3999  }
4000  swig_module.types[i] = 0;
4001 
4002 #ifdef SWIGRUNTIME_DEBUG
4003  printf("**** SWIG_InitializeModule: Cast List ******\n");
4004  for (i = 0; i < swig_module.size; ++i) {
4005  int j = 0;
4007  printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name);
4008  while (cast->type) {
4009  printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
4010  cast++;
4011  ++j;
4012  }
4013  printf("---- Total casts: %d\n",j);
4014  }
4015  printf("**** SWIG_InitializeModule: Cast List ******\n");
4016 #endif
4017 }
4018 
4019 /* This function will propagate the clientdata field of type to
4020 * any new swig_type_info structures that have been added into the list
4021 * of equivalent types. It is like calling
4022 * SWIG_TypeClientData(type, clientdata) a second time.
4023 */
4024 SWIGRUNTIME void
4026  size_t i;
4027  swig_cast_info *equiv;
4028  static int init_run = 0;
4029 
4030  if (init_run) return;
4031  init_run = 1;
4032 
4033  for (i = 0; i < swig_module.size; i++) {
4034  if (swig_module.types[i]->clientdata) {
4035  equiv = swig_module.types[i]->cast;
4036  while (equiv) {
4037  if (!equiv->converter) {
4038  if (equiv->type && !equiv->type->clientdata)
4040  }
4041  equiv = equiv->next;
4042  }
4043  }
4044  }
4045 }
4046 
4047 #ifdef __cplusplus
4048 #if 0
4049 {
4050  /* c-mode */
4051 #endif
4052 }
4053 #endif
4054 
4055 
4056 
4057 #ifdef __cplusplus
4058 extern "C" {
4059 #endif
4060 
4061  /* Python-specific SWIG API */
4062 #define SWIG_newvarlink() SWIG_Python_newvarlink()
4063 #define SWIG_addvarlink(p, name, get_attr, set_attr) SWIG_Python_addvarlink(p, name, get_attr, set_attr)
4064 #define SWIG_InstallConstants(d, constants) SWIG_Python_InstallConstants(d, constants)
4065 
4066  /* -----------------------------------------------------------------------------
4067  * global variable support code.
4068  * ----------------------------------------------------------------------------- */
4069 
4070  typedef struct swig_globalvar {
4071  char *name; /* Name of global variable */
4072  PyObject *(*get_attr)(void); /* Return the current value */
4073  int (*set_attr)(PyObject *); /* Set the value */
4074  struct swig_globalvar *next;
4076 
4077  typedef struct swig_varlinkobject {
4078  PyObject_HEAD
4081 
4082  SWIGINTERN PyObject *
4084 #if PY_VERSION_HEX >= 0x03000000
4085  return PyUnicode_InternFromString("<Swig global variables>");
4086 #else
4087  return PyString_FromString("<Swig global variables>");
4088 #endif
4089  }
4090 
4091  SWIGINTERN PyObject *
4093 #if PY_VERSION_HEX >= 0x03000000
4094  PyObject *str = PyUnicode_InternFromString("(");
4095  PyObject *tail;
4096  PyObject *joined;
4098  for (var = v->vars; var; var=var->next) {
4099  tail = PyUnicode_FromString(var->name);
4100  joined = PyUnicode_Concat(str, tail);
4101  Py_DecRef(str);
4102  Py_DecRef(tail);
4103  str = joined;
4104  if (var->next) {
4105  tail = PyUnicode_InternFromString(", ");
4106  joined = PyUnicode_Concat(str, tail);
4107  Py_DecRef(str);
4108  Py_DecRef(tail);
4109  str = joined;
4110  }
4111  }
4112  tail = PyUnicode_InternFromString(")");
4113  joined = PyUnicode_Concat(str, tail);
4114  Py_DecRef(str);
4115  Py_DecRef(tail);
4116  str = joined;
4117 #else
4118  PyObject *str = PyString_FromString("(");
4120  for (var = v->vars; var; var=var->next) {
4121  PyString_ConcatAndDel(&str,PyString_FromString(var->name));
4122  if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", "));
4123  }
4124  PyString_ConcatAndDel(&str,PyString_FromString(")"));
4125 #endif
4126  return str;
4127  }
4128 
4129  SWIGINTERN void
4131  swig_globalvar *var = v->vars;
4132  while (var) {
4133  swig_globalvar *n = var->next;
4134  free(var->name);
4135  free(var);
4136  var = n;
4137  }
4138  }
4139 
4140  SWIGINTERN PyObject *
4142  PyObject *res = NULL;
4143  swig_globalvar *var = v->vars;
4144  while (var) {
4145  if (strcmp(var->name,n) == 0) {
4146  res = (*var->get_attr)();
4147  break;
4148  }
4149  var = var->next;
4150  }
4151  if (res == NULL && !PyErr_Occurred()) {
4152  PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n);
4153  }
4154  return res;
4155  }
4156 
4157  SWIGINTERN int
4158  swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) {
4159  int res = 1;
4160  swig_globalvar *var = v->vars;
4161  while (var) {
4162  if (strcmp(var->name,n) == 0) {
4163  res = (*var->set_attr)(p);
4164  break;
4165  }
4166  var = var->next;
4167  }
4168  if (res == 1 && !PyErr_Occurred()) {
4169  PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n);
4170  }
4171  return res;
4172  }
4173 
4174  SWIGINTERN PyTypeObject*
4176  static char varlink__doc__[] = "Swig var link object";
4177  static PyTypeObject varlink_type;
4178  static int type_init = 0;
4179  if (!type_init) {
4180  const PyTypeObject tmp = {
4181 #if PY_VERSION_HEX >= 0x03000000
4182  PyVarObject_HEAD_INIT(NULL, 0)
4183 #else
4184  PyObject_HEAD_INIT(NULL)
4185  0, /* ob_size */
4186 #endif
4187  "swigvarlink", /* tp_name */
4188  sizeof(swig_varlinkobject), /* tp_basicsize */
4189  0, /* tp_itemsize */
4190  (destructor) swig_varlink_dealloc, /* tp_dealloc */
4191  0, /* tp_print */
4192  (getattrfunc) swig_varlink_getattr, /* tp_getattr */
4193  (setattrfunc) swig_varlink_setattr, /* tp_setattr */
4194  0, /* tp_compare */
4195  (reprfunc) swig_varlink_repr, /* tp_repr */
4196  0, /* tp_as_number */
4197  0, /* tp_as_sequence */
4198  0, /* tp_as_mapping */
4199  0, /* tp_hash */
4200  0, /* tp_call */
4201  (reprfunc) swig_varlink_str, /* tp_str */
4202  0, /* tp_getattro */
4203  0, /* tp_setattro */
4204  0, /* tp_as_buffer */
4205  0, /* tp_flags */
4206  varlink__doc__, /* tp_doc */
4207  0, /* tp_traverse */
4208  0, /* tp_clear */
4209  0, /* tp_richcompare */
4210  0, /* tp_weaklistoffset */
4211  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */
4212  0, /* tp_del */
4213  0, /* tp_version_tag */
4214 #if PY_VERSION_HEX >= 0x03040000
4215  0, /* tp_finalize */
4216 #endif
4217 #if PY_VERSION_HEX >= 0x03080000
4218  0, /* tp_vectorcall */
4219 #endif
4220 #if (PY_VERSION_HEX >= 0x03080000) && (PY_VERSION_HEX < 0x03090000)
4221  0, /* tp_print */
4222 #endif
4223 #ifdef COUNT_ALLOCS
4224  0, /* tp_allocs */
4225  0, /* tp_frees */
4226  0, /* tp_maxalloc */
4227  0, /* tp_prev */
4228  0 /* tp_next */
4229 #endif
4230  };
4231  varlink_type = tmp;
4232  type_init = 1;
4233  if (PyType_Ready(&varlink_type) < 0)
4234  return NULL;
4235  }
4236  return &varlink_type;
4237  }
4238 
4239  /* Create a variable linking object for use later */
4240  SWIGINTERN PyObject *
4242  swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type());
4243  if (result) {
4244  result->vars = 0;
4245  }
4246  return ((PyObject*) result);
4247  }
4248 
4249  SWIGINTERN void
4250  SWIG_Python_addvarlink(PyObject *p, const char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) {
4253  if (gv) {
4254  size_t size = strlen(name)+1;
4255  gv->name = (char *)malloc(size);
4256  if (gv->name) {
4257  memcpy(gv->name, name, size);
4258  gv->get_attr = get_attr;
4259  gv->set_attr = set_attr;
4260  gv->next = v->vars;
4261  }
4262  }
4263  v->vars = gv;
4264  }
4265 
4266  SWIGINTERN PyObject *
4268  static PyObject *globals = 0;
4269  if (!globals) {
4270  globals = SWIG_newvarlink();
4271  }
4272  return globals;
4273  }
4274 
4275  /* -----------------------------------------------------------------------------
4276  * constants/methods manipulation
4277  * ----------------------------------------------------------------------------- */
4278 
4279  /* Install Constants */
4280  SWIGINTERN void
4281  SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) {
4282  PyObject *obj = 0;
4283  size_t i;
4284  for (i = 0; constants[i].type; ++i) {
4285  switch(constants[i].type) {
4286  case SWIG_PY_POINTER:
4287  obj = SWIG_InternalNewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
4288  break;
4289  case SWIG_PY_BINARY:
4290  obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));
4291  break;
4292  default:
4293  obj = 0;
4294  break;
4295  }
4296  if (obj) {
4297  PyDict_SetItemString(d, constants[i].name, obj);
4298  Py_DECREF(obj);
4299  }
4300  }
4301  }
4302 
4303  /* -----------------------------------------------------------------------------*/
4304  /* Fix SwigMethods to carry the callback ptrs when needed */
4305  /* -----------------------------------------------------------------------------*/
4306 
4307  SWIGINTERN void
4308  SWIG_Python_FixMethods(PyMethodDef *methods,
4309  swig_const_info *const_table,
4310  swig_type_info **types,
4311  swig_type_info **types_initial) {
4312  size_t i;
4313  for (i = 0; methods[i].ml_name; ++i) {
4314  const char *c = methods[i].ml_doc;
4315  if (!c) continue;
4316  c = strstr(c, "swig_ptr: ");
4317  if (c) {
4318  int j;
4319  swig_const_info *ci = 0;
4320  const char *name = c + 10;
4321  for (j = 0; const_table[j].type; ++j) {
4322  if (strncmp(const_table[j].name, name,
4323  strlen(const_table[j].name)) == 0) {
4324  ci = &(const_table[j]);
4325  break;
4326  }
4327  }
4328  if (ci) {
4329  void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0;
4330  if (ptr) {
4331  size_t shift = (ci->ptype) - types;
4332  swig_type_info *ty = types_initial[shift];
4333  size_t ldoc = (c - methods[i].ml_doc);
4334  size_t lptr = strlen(ty->name)+2*sizeof(void*)+2;
4335  char *ndoc = (char*)malloc(ldoc + lptr + 10);
4336  if (ndoc) {
4337  char *buff = ndoc;
4338  memcpy(buff, methods[i].ml_doc, ldoc);
4339  buff += ldoc;
4340  memcpy(buff, "swig_ptr: ", 10);
4341  buff += 10;
4342  SWIG_PackVoidPtr(buff, ptr, ty->name, lptr);
4343  methods[i].ml_doc = ndoc;
4344  }
4345  }
4346  }
4347  }
4348  }
4349  }
4350 
4351  /* -----------------------------------------------------------------------------
4352  * Method creation and docstring support functions
4353  * ----------------------------------------------------------------------------- */
4354 
4355  /* -----------------------------------------------------------------------------
4356  * Function to find the method definition with the correct docstring for the
4357  * proxy module as opposed to the low-level API
4358  * ----------------------------------------------------------------------------- */
4359 
4360  SWIGINTERN PyMethodDef *SWIG_PythonGetProxyDoc(const char *name) {
4361  /* Find the function in the modified method table */
4362  size_t offset = 0;
4363  int found = 0;
4364  while (SwigMethods_proxydocs[offset].ml_meth != NULL) {
4365  if (strcmp(SwigMethods_proxydocs[offset].ml_name, name) == 0) {
4366  found = 1;
4367  break;
4368  }
4369  offset++;
4370  }
4371  /* Use the copy with the modified docstring if available */
4372  return found ? &SwigMethods_proxydocs[offset] : NULL;
4373  }
4374 
4375  /* -----------------------------------------------------------------------------
4376  * Wrapper of PyInstanceMethod_New() used in Python 3
4377  * It is exported to the generated module, used for -fastproxy
4378  * ----------------------------------------------------------------------------- */
4379 
4380  SWIGINTERN PyObject *SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func) {
4381  if (PyCFunction_Check(func)) {
4382  PyCFunctionObject *funcobj = (PyCFunctionObject *)func;
4383  PyMethodDef *ml = SWIG_PythonGetProxyDoc(funcobj->m_ml->ml_name);
4384  if (ml)
4385  func = PyCFunction_NewEx(ml, funcobj->m_self, funcobj->m_module);
4386  }
4387 #if PY_VERSION_HEX >= 0x03000000
4388  return PyInstanceMethod_New(func);
4389 #else
4390  return PyMethod_New(func, NULL, NULL);
4391 #endif
4392  }
4393 
4394  /* -----------------------------------------------------------------------------
4395  * Wrapper of PyStaticMethod_New()
4396  * It is exported to the generated module, used for -fastproxy
4397  * ----------------------------------------------------------------------------- */
4398 
4399  SWIGINTERN PyObject *SWIG_PyStaticMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func) {
4400  if (PyCFunction_Check(func)) {
4401  PyCFunctionObject *funcobj = (PyCFunctionObject *)func;
4402  PyMethodDef *ml = SWIG_PythonGetProxyDoc(funcobj->m_ml->ml_name);
4403  if (ml)
4404  func = PyCFunction_NewEx(ml, funcobj->m_self, funcobj->m_module);
4405  }
4406  return PyStaticMethod_New(func);
4407  }
4408 
4409 #ifdef __cplusplus
4410 }
4411 #endif
4412 
4413 /* -----------------------------------------------------------------------------*
4414  * Partial Init method
4415  * -----------------------------------------------------------------------------*/
4416 
4417 #ifdef __cplusplus
4418 extern "C"
4419 #endif
4420 
4421 SWIGEXPORT
4422 #if PY_VERSION_HEX >= 0x03000000
4423 PyObject*
4424 #else
4425 void
4426 #endif
4427 SWIG_init(void) {
4428  PyObject *m, *d, *md, *globals;
4429 
4430 #if PY_VERSION_HEX >= 0x03000000
4431  static struct PyModuleDef SWIG_module = {
4432  PyModuleDef_HEAD_INIT,
4433  SWIG_name,
4434  NULL,
4435  -1,
4436  SwigMethods,
4437  NULL,
4438  NULL,
4439  NULL,
4440  NULL
4441  };
4442 #endif
4443 
4444 #if defined(SWIGPYTHON_BUILTIN)
4445  static SwigPyClientData SwigPyObject_clientdata = {
4446  0, 0, 0, 0, 0, 0, 0
4447  };
4448  static PyGetSetDef this_getset_def = {
4449  (char *)"this", &SwigPyBuiltin_ThisClosure, NULL, NULL, NULL
4450  };
4451  static SwigPyGetSet thisown_getset_closure = {
4454  };
4455  static PyGetSetDef thisown_getset_def = {
4456  (char *)"thisown", SwigPyBuiltin_GetterClosure, SwigPyBuiltin_SetterClosure, NULL, &thisown_getset_closure
4457  };
4458  PyTypeObject *builtin_pytype;
4459  int builtin_base_count;
4460  swig_type_info *builtin_basetype;
4461  PyObject *tuple;
4462  PyGetSetDescrObject *static_getset;
4463  PyTypeObject *metatype;
4464  PyTypeObject *swigpyobject;
4465  SwigPyClientData *cd;
4466  PyObject *public_interface, *public_symbol;
4467  PyObject *this_descr;
4468  PyObject *thisown_descr;
4469  PyObject *self = 0;
4470  int i;
4471 
4472  (void)builtin_pytype;
4473  (void)builtin_base_count;
4474  (void)builtin_basetype;
4475  (void)tuple;
4476  (void)static_getset;
4477  (void)self;
4478 
4479  /* Metaclass is used to implement static member variables */
4480  metatype = SwigPyObjectType();
4481  assert(metatype);
4482 #endif
4483 
4484  (void)globals;
4485 
4486  /* Create singletons now to avoid potential deadlocks with multi-threaded usage after module initialization */
4487  SWIG_This();
4490 #ifndef SWIGPYTHON_BUILTIN
4492 #endif
4493 
4494  /* Fix SwigMethods to carry the callback ptrs when needed */
4496 
4497 #if PY_VERSION_HEX >= 0x03000000
4498  m = PyModule_Create(&SWIG_module);
4499 #else
4500  m = Py_InitModule(SWIG_name, SwigMethods);
4501 #endif
4502 
4503  md = d = PyModule_GetDict(m);
4504  (void)md;
4505 
4507 
4508 #ifdef SWIGPYTHON_BUILTIN
4509  swigpyobject = SwigPyObject_TypeOnce();
4510 
4511  SwigPyObject_stype = SWIG_MangledTypeQuery("_p_SwigPyObject");
4512  assert(SwigPyObject_stype);
4513  cd = (SwigPyClientData*) SwigPyObject_stype->clientdata;
4514  if (!cd) {
4515  SwigPyObject_stype->clientdata = &SwigPyObject_clientdata;
4516  SwigPyObject_clientdata.pytype = swigpyobject;
4517  } else if (swigpyobject->tp_basicsize != cd->pytype->tp_basicsize) {
4518  PyErr_SetString(PyExc_RuntimeError, "Import error: attempted to load two incompatible swig-generated modules.");
4519 # if PY_VERSION_HEX >= 0x03000000
4520  return NULL;
4521 # else
4522  return;
4523 # endif
4524  }
4525 
4526  /* All objects have a 'this' attribute */
4527  this_descr = PyDescr_NewGetSet(SwigPyObject_type(), &this_getset_def);
4528  (void)this_descr;
4529 
4530  /* All objects have a 'thisown' attribute */
4531  thisown_descr = PyDescr_NewGetSet(SwigPyObject_type(), &thisown_getset_def);
4532  (void)thisown_descr;
4533 
4534  public_interface = PyList_New(0);
4535  public_symbol = 0;
4536  (void)public_symbol;
4537 
4538  PyDict_SetItemString(md, "__all__", public_interface);
4539  Py_DECREF(public_interface);
4540  for (i = 0; SwigMethods[i].ml_name != NULL; ++i)
4541  SwigPyBuiltin_AddPublicSymbol(public_interface, SwigMethods[i].ml_name);
4542  for (i = 0; swig_const_table[i].name != 0; ++i)
4543  SwigPyBuiltin_AddPublicSymbol(public_interface, swig_const_table[i].name);
4544 #endif
4545 
4547 
4548 #if PY_VERSION_HEX >= 0x03000000
4549  return m;
4550 #else
4551  return;
4552 #endif
4553 }
4554 
int64_t max
Definition: alldiff_cst.cc:140
int64_t min
Definition: alldiff_cst.cc:139
This class performs various C++ initialization.
Definition: init.h:66
static void InitLogging(const std::string &program_name)
Initialize the C++ logging layer.
Definition: init.h:73
static bool LoadGurobiSharedLibrary(const std::string &full_library_path)
Load the gurobi shared library.
Definition: init.h:109
static void ShutdownLogging()
Shutdown the C++ logging layer.
Definition: init.h:83
static void SetFlags(const CppFlags &flags)
Sets all the C++ flags contained in the CppFlags structure.
Definition: init.h:90
SwigPtr_PyObject(PyObject *obj, bool initial_ref=true)
SwigPtr_PyObject & operator=(const SwigPtr_PyObject &item)
SwigPtr_PyObject(const SwigPtr_PyObject &item)
PyObject * operator->() const
Block * next
const std::string name
int64_t value
IntVar * var
Definition: expr_array.cc:1874
SWIGRUNTIME swig_type_info * SWIG_Python_TypeQuery(const char *type)
SWIGRUNTIME char * SWIG_PackData(char *c, void *ptr, size_t sz)
SWIGRUNTIME int SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty)
static swig_cast_info * swig_cast_initial[]
SWIGINTERN PyObject * _wrap_new_CppBridge(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGINTERN PyObject * SWIG_Python_str_FromChar(const char *c)
#define SWIG_MangledTypeQuery(name)
SWIGINTERN PyObject * _wrap_delete_CppBridge(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGINTERN PyObject * _wrap_CppFlags_cp_model_dump_response_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGRUNTIME char * SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz)
static PyObject * Swig_This_global
SWIGRUNTIME int SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w)
SWIGINTERN int SWIG_AsVal_double(PyObject *obj, double *val)
SWIGINTERN PyObject * swig_varlink_str(swig_varlinkobject *v)
SWIGRUNTIMEINLINE PyObject * SWIG_Python_ExceptionType(swig_type_info *desc)
SWIGINTERN Py_ssize_t SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
#define SWIG_TypeQuery(name)
#define SWIG_POINTER_OWN
SWIGINTERN PyObject * _wrap_CppBridge_InitLogging(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGINTERN PyObject * _wrap_CppFlags_cp_model_dump_prefix_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
#define SWIGTYPE_p_operations_research__CppFlags
#define SWIG_SyntaxError
#define SWIG_POINTER_NEW
#define SWIG_CheckState(r)
static swig_cast_info _swigc__p_int[]
SWIGRUNTIME int SWIG_TypeEquiv(const char *nb, const char *tb)
SWIGINTERN PyObject * swig_varlink_getattr(swig_varlinkobject *v, char *n)
#define SWIG_BUFFER_SIZE
SWIGRUNTIME PyTypeObject * SwigPyPacked_TypeOnce(void)
#define SWIG_TypeError
SWIGRUNTIME int SWIG_Python_AddErrMesg(const char *mesg, int infront)
SWIGINTERN void SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[])
#define SWIG_POINTER_IMPLICIT_CONV
#define SWIG_PY_POINTER
struct swig_cast_info swig_cast_info
SWIGINTERN PyObject * _wrap_CppBridge_SetFlags(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
#define SWIG_init
SWIGINTERN int swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p)
SWIGRUNTIME int SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2)
#define SWIG_Python_ConvertPtr(obj, pptr, type, flags)
SWIGRUNTIME void SwigPyObject_dealloc(PyObject *v)
SWIGINTERN PyObject * CppFlags_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
#define SWIG_PYTHON_THREAD_END_BLOCK
SWIGRUNTIMEINLINE void * SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory)
#define SWIG_RuntimeError
struct swig_varlinkobject swig_varlinkobject
#define SWIG_NewClientData(obj)
#define PyObject_DEL
SWIGRUNTIME const char * SWIG_TypePrettyName(const swig_type_info *type)
static swig_type_info _swigt__p_unsigned_char
SWIGINTERNINLINE int SWIG_CanCastAsInteger(double *d, double min, double max)
#define SWIGRUNTIME
SWIGINTERN PyObject * SwigPyObject_disown(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
#define SWIG_PY_BINARY
#define SWIG_RUNTIME_VERSION
#define SWIG_POINTER_NOSHADOW
SWIGINTERN PyObject * SwigPyObject_own(PyObject *v, PyObject *args)
#define SWIG_OLDOBJ
SWIGRUNTIME void SWIG_TypeClientData(swig_type_info *ti, void *clientdata)
static swig_type_info _swigt__p_short
#define SWIG_ValueError
SWIGINTERN void SWIG_Python_addvarlink(PyObject *p, const char *name, PyObject *(*get_attr)(void), int(*set_attr)(PyObject *p))
SWIGINTERN PyObject * SWIG_Python_newvarlink(void)
static PyMethodDef swigobject_methods[]
#define SWIG_AddCast(r)
#define SWIG_IsNewObj(r)
SWIGRUNTIME PyObject * SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty)
static swig_cast_info _swigc__p_operations_research__CppFlags[]
SWIGRUNTIME PyObject * SWIG_Python_ErrorType(int code)
#define SWIG_InternalNewPointerObj(ptr, type, flags)
SWIGRUNTIMEINLINE PyObject * SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type)
#define SWIG_exception_fail(code, msg)
SWIGINTERNINLINE PyObject * SWIG_From_bool(bool value)
SWIGINTERN PyObject * _wrap_CppFlags_cp_model_dump_prefix_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGRUNTIME PyObject * SwigPyObject_next(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
SWIGINTERN PyObject * _wrap_CppFlags_cp_model_dump_lns_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGRUNTIME PyObject * SwigPyObject_New(void *ptr, swig_type_info *ty, int own)
SWIGRUNTIME swig_type_info * SWIG_TypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name)
#define SWIG_AttributeError
SWIGRUNTIMEINLINE const char * SwigPyObject_GetDesc(PyObject *self)
static swig_type_info _swigt__p_operations_research__CppBridge
static swig_module_info swig_module
static swig_cast_info _swigc__p_unsigned_char[]
static swig_cast_info _swigc__p_short[]
SWIGRUNTIME PyObject * SwigPyObject_hex(SwigPyObject *v)
SWIGINTERN PyObject * SwigPyObject_acquire(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
SWIGRUNTIME int SWIG_Python_TypeErrorOccurred(PyObject *obj)
SWIGRUNTIME void SWIG_Python_DestroyModule(PyObject *obj)
#define SWIG_SetModule(clientdata, pointer)
SWIGRUNTIMEINLINE const char * SWIG_TypeName(const swig_type_info *ty)
SWIGINTERN PyTypeObject * swig_varlink_type(void)
SWIGRUNTIMEINLINE PyObject * SWIG_Py_Void(void)
#define SWIGUNUSEDPARM(p)
SWIGINTERN PyObject * CppBridge_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGRUNTIME PyObject * SWIG_This(void)
SWIGRUNTIME PyObject * SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int flags)
SWIGRUNTIME PyObject * SwigPyObject_format(const char *fmt, SwigPyObject *v)
#define SWIG_as_voidptr(a)
static swig_const_info swig_const_table[]
SWIGRUNTIMEINLINE int SwigPyPacked_Check(PyObject *op)
SWIGRUNTIME PyTypeObject * SwigPyObject_type(void)
SWIGRUNTIME PyObject * SwigPyPacked_repr(SwigPyPacked *v)
#define SWIG_Python_CallFunctor(functor, obj)
SWIGRUNTIME void SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata)
static swig_type_info _swigt__p_unsigned_short
SWIGRUNTIME int SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w)
#define SWIG_ConvertPtr(obj, pptr, type, flags)
SWIGRUNTIME int SWIG_TypeCmp(const char *nb, const char *tb)
SWIGRUNTIME PyObject * SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this)
struct swig_const_info swig_const_info
SWIGINTERNINLINE PyObject * SWIG_From_std_string(const std::string &s)
SWIGINTERN PyObject * _wrap_CppFlags_logtostderr_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGINTERN int SWIG_Python_CheckNoKeywords(PyObject *kwargs, const char *name)
SWIGINTERN PyObject * SWIG_Python_InitShadowInstance(PyObject *args)
SWIGRUNTIME PyObject * SwigPyPacked_str(SwigPyPacked *v)
static swig_type_info * swig_types[12]
SWIGRUNTIME void SWIG_InitializeModule(void *clientdata)
SWIGINTERN PyObject * SWIG_PyStaticMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func)
SWIGRUNTIME const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz)
SWIGINTERN PyObject * _wrap_CppFlags_cp_model_dump_models_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
#define SWIG_newvarlink()
SWIGRUNTIME void SWIG_Python_RaiseOrModifyTypeError(const char *message)
static swig_type_info _swigt__p_unsigned_long
#define SWIG_Python_str_DelForPy3(x)
static swig_cast_info _swigc__p_char[]
SWIGRUNTIME swig_cast_info * SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty)
SWIGINTERN PyObject * _wrap_delete_CppFlags(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
#define SWIGTYPE_p_operations_research__CppBridge
SWIGINTERN PyObject * _wrap_CppBridge_ShutdownLogging(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
#define SWIGINTERN
SWIGINTERN PyObject * swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v))
SWIGRUNTIME SwigPyObject * SWIG_Python_GetSwigThis(PyObject *pyobj)
SWIGRUNTIMEINLINE int SwigPyObject_Check(PyObject *op)
SWIGRUNTIME SwigPyClientData * SwigPyClientData_New(PyObject *obj)
SWIGINTERN PyObject * _wrap_CppFlags_cp_model_dump_models_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGINTERN void SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj)
SWIGINTERN char * SWIG_Python_str_AsChar(PyObject *str)
SWIGINTERN PyObject * CppBridge_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
static swig_cast_info _swigc__p_unsigned_short[]
struct swig_globalvar swig_globalvar
#define SWIGPY_CAPSULE_NAME
#define SWIG_ArgError(r)
SWIGRUNTIME void SWIG_Python_AddErrorMsg(const char *mesg)
#define SWIG_NewPointerObj(ptr, type, flags)
SWIGRUNTIME void SWIG_Python_SetModule(swig_module_info *swig_module)
SWIGRUNTIME const char * SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name)
SWIGINTERN void SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj)
void *(* swig_converter_func)(void *, int *)
#define SWIG_POINTER_NO_NULL
#define SWIG_Python_str_FromFormat
#define SWIG_InstallConstants(d, constants)
#define SWIG_IOError
static PyMethodDef SwigMethods[]
#define SWIG_NullReferenceError
SWIGINTERN PyObject * _wrap_CppFlags_logtostderr_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
#define SWIG_POINTER_DISOWN
#define SWIG_STATIC_POINTER(var)
struct swig_type_info swig_type_info
SWIGRUNTIME void * SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int SWIGUNUSEDPARM(argnum), int flags)
SWIGINTERN PyObject * _wrap_CppFlags_cp_model_dump_lns_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGINTERNINLINE PyObject * SWIG_FromCharPtrAndSize(const char *carray, size_t size)
SWIGRUNTIME int SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty)
SWIGINTERN void SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg)
SWIGINTERN PyObject * _wrap_new_CppFlags(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGINTERN PyMethodDef * SWIG_PythonGetProxyDoc(const char *name)
#define SWIG_NEWOBJ
static swig_type_info _swigt__p_signed_char
SWIGINTERN int SWIG_AsPtr_std_string(PyObject *obj, std::string **val)
SWIGRUNTIME int SWIG_Python_ArgFail(int argnum)
SWIGINTERN PyObject * SWIG_globals(void)
SWIGRUNTIME PyTypeObject * SwigPyObject_TypeOnce(void)
SWIGRUNTIME int SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own)
#define SWIG_NewPackedObj(ptr, sz, type)
SWIGINTERN PyObject * CppFlags_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGRUNTIME PyObject * SwigPyObject_repr(SwigPyObject *v)
#define SWIG_GetModule(clientdata)
SWIGINTERN PyObject * _wrap_CppFlags_cp_model_dump_response_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
static swig_cast_info _swigc__p_unsigned_int[]
#define SWIG_fail
static swig_type_info _swigt__p_int
SWIGRUNTIME void SWIG_PropagateClientData(void)
static swig_cast_info _swigc__p_unsigned_long[]
SWIGRUNTIME PyObject * SwigPyObject_long(SwigPyObject *v)
SWIGRUNTIME swig_cast_info * SWIG_TypeCheck(const char *c, swig_type_info *ty)
SWIGRUNTIME PyObject * SwigPyObject_repr2(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
SWIGINTERN PyObject * _wrap_CppFlags_log_prefix_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGINTERN PyObject * SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func)
SWIGRUNTIME int SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
static swig_type_info _swigt__p_long
SWIGRUNTIME PyObject * SwigPyObject_oct(SwigPyObject *v)
static PyMethodDef SwigMethods_proxydocs[]
SWIGRUNTIME PyTypeObject * SwigPyPacked_type(void)
SWIGRUNTIME void SWIG_Python_TypeError(const char *type, PyObject *obj)
#define SWIG_TYPE_TABLE_NAME
SWIGRUNTIME swig_type_info * SWIG_MangledTypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name)
#define SWIG_BUILTIN_TP_INIT
static swig_type_info _swigt__p_unsigned_int
#define SWIG_CAST_NEW_MEMORY
SWIGRUNTIME swig_module_info * SWIG_Python_GetModule(void *SWIGUNUSEDPARM(clientdata))
SWIGINTERN int SWIG_AsVal_long(PyObject *obj, long *val)
struct swig_module_info swig_module_info
#define SWIG_ERROR
SWIGINTERN int SWIG_AsVal_bool(PyObject *obj, bool *val)
SWIGRUNTIME void SwigPyClientData_Del(SwigPyClientData *data)
#define SWIG_name
SWIGRUNTIME PyObject * SwigPyObject_append(PyObject *v, PyObject *next)
SWIGINTERN void swig_varlink_dealloc(swig_varlinkobject *v)
static swig_cast_info _swigc__p_long[]
static swig_type_info * swig_type_initial[]
SWIGRUNTIME swig_type_info * SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
SWIGRUNTIME void SwigPyPacked_dealloc(PyObject *v)
static swig_type_info _swigt__p_operations_research__CppFlags
SWIGRUNTIMEINLINE int SWIG_Python_CheckImplicit(swig_type_info *ty)
SWIGRUNTIME swig_type_info * SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr)
SWIGINTERN void SWIG_Python_FixMethods(PyMethodDef *methods, swig_const_info *const_table, swig_type_info **types, swig_type_info **types_initial)
SWIGINTERN PyObject * _wrap_CppFlags_log_prefix_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
#define SWIG_MemoryError
SWIGRUNTIME const char * SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name)
#define SWIG_SystemError
#define SWIG_DivisionByZero
static swig_type_info _swigt__p_char
SWIGINTERN swig_type_info * SWIG_pchar_descriptor(void)
SWIGRUNTIME PyObject * SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op)
#define SWIG_OverflowError
#define SWIGEXPORT
#define SWIG_IsOK(r)
static swig_cast_info _swigc__p_operations_research__CppBridge[]
SWIGINTERN int SWIG_AsCharPtrAndSize(PyObject *obj, char **cptr, size_t *psize, int *alloc)
struct swig_type_info *(* swig_dycast_func)(void **)
#define SWIG_IndexError
SWIGRUNTIME PyObject * SWIG_Python_TypeCache(void)
SWIGINTERN PyObject * _wrap_CppBridge_LoadGurobiSharedLibrary(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
#define SWIG_AddNewMask(r)
SWIGRUNTIME char * SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz)
#define SWIG_OK
#define SWIG_PYTHON_THREAD_BEGIN_BLOCK
#define SWIGINTERNINLINE
static swig_cast_info _swigc__p_signed_char[]
#define Py_TYPE(op)
SWIGRUNTIME int SWIG_Python_AcquirePtr(PyObject *obj, int own)
SWIGINTERN PyObject * SWIG_Python_AppendOutput(PyObject *result, PyObject *obj)
#define SWIGRUNTIMEINLINE
void * malloc(YYSIZE_T)
void free(void *)
if(!yyg->yy_init)
Definition: parser.yy.cc:965
int64_t tail
PyObject_HEAD void * ptr
PyObject_HEAD void * pack
Simple structure that holds useful C++ flags to setup from non-C++ languages.
Definition: init.h:20
SwigVar_PyObject(PyObject *obj=0)
SwigVar_PyObject & operator=(PyObject *obj)
struct swig_cast_info * prev
struct swig_cast_info * next
swig_converter_func converter
struct swig_globalvar * next
PyObject *(* get_attr)(void)
struct swig_module_info * next
struct swig_cast_info * cast
PyObject_HEAD swig_globalvar * vars
std::string message
Definition: trace.cc:398